We built an initial release of GrapheneOS based on Android 17 (2026061700) but aren't going to release it through our Alpha channel due to discovering a serious upstream bug. Android 17 broke support for sideloading updates via recovery unless the OS images are large enough to exhaust COW space.
The stock Pixel OS is drastically larger than GrapheneOS due to having a massive amount of additional bundled app code for Google Mobile Services, many other Google apps and various Pixel apps. It's always above the threshold triggering the fallback code path for sideloading OS updates in recovery.
Over-the-air updates from both older versions to Android 17 and Android 17 to Android 17 work fine. It's only sideloading impacted by this. We don't want to release an OS version with broken OS update sideloading so we've cancelled 2026061700 and are building 2026061800 with a workaround for it.
Our current workaround is to force enable the fallback code path triggered by large OS images. This will fix sideloading an Android 17 version of GrapheneOS to another Android 17 version of GrapheneOS. However, sideloading Android 17 updates to older versions won't work without a further workaround.
We've tried making a build with a randomly generated 1GiB file included to make GrapheneOS about as large as the stock Pixel OS which fully works around the issue. We're not actually going to do that but rather we'll use the workaround forcing the fallback path for now and we'll find a proper fix.
Our workaround will provide working sideloading from our initial Android 17 release to a future release. However, it isn't currently possible to sideload from 16 QPR2. We could make an extra 16 QPR2 update for people who only sideload updates with the workaround to use until we make a proper fix.
Google didn't run into this because they add so much bloat to the OS for Google Mobile Services including Google Play services along with a bunch of other Google and Pixel apps. Pixel OS is a lot smaller than the OS on most Android devices but it's drastically larger than AOSP and even GrapheneOS.
GrapheneOS uses ahead-of-time compilation for Java/Kotlin code which greatly increases the size of the apps in the OS images. Despite this, it's still drastically smaller than the Pixel OS. It would be substantially larger if we bundled as much code as they do but instead it's the opposite...
@GrapheneOS are you sure it's a bug in Google's eyes, too... 🫣
@GrapheneOS when you mean sideload update, do you mean using the computer for update or the OTA ?

@skyblitz There isn't any issue with over-the-air updates. Sideloading an OS update to recovery refers to using ADB sideload to upload an update to the recovery boot mode of the OS. We don't want to release an update without working update sideloading.

The initial post provides context explaining it:

> Android 17 broke support for sideloading updates via recovery

The 3rd post says this:

> Over-the-air updates from both older versions to Android 17 and Android 17 to Android 17 work fine.

@GrapheneOS okay thanks (didn't understood what it was) thanks for the answer.
@GrapheneOS I only update by adb sideload. I really need a 16qpr2 version that could update by adb sideload
@mio We plan to resolve the issue and if we can't quickly figure that out then we'll provide another 16 QPR2 release with the same workaround.
@GrapheneOS Good luck the GrapheneOS team, i believe in you. You are the reason i spent my money on a pixel