Sailfish on a foldable? Its more likely than you think! SailfishOS for Google Pixel 9 Pro Fold (comet)

Hey y’all I did share this on Mastodon before but I’ve been told I should share this with the Forum as well :slight_smile:

Back in July I got the Jolla Phone 2026 and I instantly fell in love with the software! Sadly I had to abandon my Z Fold 7- I really love the foldable. Last week I traded that Z Fold in for a Pixel 9 Pro Fold. Why? It has an unlockable bootloader!

You know where this is heading to. I started to port SailfishOS to the Pixel 9 Pro Fold!

It’s based on LineageOS 23.2 (Android 16 QPR2) with a self-built GKI 6.1 kernel, using the hybris-23.2 adaptation. And it boots into the UI now! :tada:

What works

  • Boots on its own into Sailfish OS, including the first-run setup
  • Inner and outer display, including touch on both
  • Folding/unfolding switches between the displays (more on that below)
  • Kernel modules for Wi-Fi, speaker amps and haptics load (but they’re not usable yet)
  • USB Developer Mode via NCM instead of RNDIS
  • Audio

What doesn’t (yet)

  • Wifi, cellular, camera, sensors, Bluetooth

Folding
I extended the hwcomposer QPA plugin so it can switch between built-in displays at runtime, driven by the hall sensor. That part works, but the UI doesn’t re-layout afterwards. Silica’s Screen reads the screen size once at startup, it’s read-only, and it doesn’t follow QScreen geometry changes. Since Silica is closed source, I can’t fix that on my end. For now the shell restarts on fold/unfold, which closes open apps. :frowning:

@Jolla: if Silica’s Screen followed QScreen::geometryChanged (width, height, sizeCategory, widthRatio), foldables could switch seamlessly! Maybe something to consider :upside_down_face:

Anyway here is the “demo” you probably wanted to see before I started yapping:

57 Likes

Impressive work, congratulations!

1 Like

Just stunning work!!

1 Like

Wow, i really like this community so much! Good work so far!

3 Likes

Got audio working yesterday! Can probably only work on this on the weekends, due to uni and work

12 Likes

Wow amazing work! Really impressing :slight_smile:

Some hints for porting, the cellular side probably needs a config file with the first 4 lines of this s19mps-droid-configs/sparse/etc/ofono/binder.d/s19mps.conf at master · mer-hybris/s19mps-droid-configs · GitHub. For bluetooth make sure you have added bluebinder to patterns and that you have enabled CONFIG_BT_HCIVHCI=y in your kernel defconfig. Also I did some work on camera support for hybris-23.2 base but didn’t yet have time to test the fixes on any device but cameras should be possible soon. If you want to join IRC porter channel #sailfishos-porters on OFTC network (or via Matrix, not sure how exactly) then you can get more help for the remaining issues.

16 Likes

Oh, yes, I have that phone too. :grin:

1 Like

Looks amazing how do the apps work on it? Sailfish?