GrapheneOS

GrapheneOS

@grapheneos.org

Open source privacy and security focused mobile OS with Android app compatibility. https://grapheneos.org/

20.2K followers0 following6.3K posts

GrapheneOS TalkBack version 23 released: github.com/GrapheneOS/T... See the linked release notes for a summary of the improvements over the previous release and a link to the full changelog. Forum discussion thread: discuss.grapheneos.org/d/43100-grap... #GrapheneOS #privacy #security

github.comRelease 23 · GrapheneOS/TalkBackThis is a major update to the GrapheneOS fork of the TalkBack screen reader for blind and low vision users. We migrated it to the latest upstream release of the TalkBack source code which is in a c...

GrapheneOS Messaging version 17 released: github.com/GrapheneOS/M... See the linked release notes for a summary of the improvements over the previous release and a link to the full changelog. Forum discussion thread: discuss.grapheneos.org/d/43079-grap... #GrapheneOS #privacy #security #android

github.comRelease 17 · GrapheneOS/MessagingVersion 17 is a bugfix and polish release. It stops old unread messages from bringing back a "more conversations with new messages" notification, brings spell-checking back to the message field, ke...

Google made a change to their RCS service breaking using it for a small number of users. It's likely in the process of being rolled out and is gradually causing issues for more users. We're already working on resolving it. It isn't caused by the OS update about to move to Stable.

Resolving this before it impacts a much larger number of users is one of our highest priorities. It's likely only going to be possible to resolve it with an OS update rather than a GmsCompatConfig release. We've only just started working on it so we don't know the cause yet.

Most of the people reporting RCS no longer working were able to resolve it by enabling the ICC authentication toggle. It's likely the requirement to have it enabled was rolled out to more carriers. The remaining reports may all be non-GrapheneOS-related. grapheneos.org/usage#rcs

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

View full thread

We've successful made an initial port for using the upstream LTS branch for Pixels. We need to do a massive amount of code review and fixing regressions. Once we have it shipped, it will become trivial to ship each upstream revision, although those do often introduce regressions.

Shipping this requires a long term commitment to porting all the relevant Pixel and Motorola/Snapdragon kernel drivers to the latest upstream LTS code. We've determined that's much easier than expected. The hard part is making the device independent LTS with all the backports.

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

View full thread

Google wasted an enormous amount of resources to develop GKI. It was supposed to make it much easier to keep Android devices on an up-to-date kernel. It's a disastrous failure. It does not make it substantially easier because updating kernel drivers for LTS ABI changes is easy.

GKI makes it extremely hard to maintain the Linux kernel LTS branch for Android. It serves no real purpose and yet requires a massive amount of work to keep it going. It's adding months of delays to the stock Pixel OS kernel updates and doesn't help any Android OEM in practice.

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

View full thread

The main purpose of the Android GKI branch is to implement a stable ABI for kernel drivers. The ABI is only stable within an LTS branch. It has no practical use case and a massive maintainability cost. This system collapsed under the massive increase in Linux kernel patches.

All of the kernel drivers for any devices we'll support are open source. It would be an egregious violation of the GPL to ship driver code specific to Linux without providing all the source code. The drivers are updated alongside the kernel so there's no actual use case for GKI.

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

View full thread

The changes required to move the Pixel drivers from 6.1, 6.6 and 6.12 to 6.18 are tiny. The changes needed to use the upstream 6.18 LTS ABI instead of the stable 6.18 GKI LTS ABI are larger but quite manageable. It's preserving all the extra improvements which is extremely hard.

The upstream Linux kernel LTS branches backport a enormous amount of bug fixes including a massive number of security fixes. Android backports much more because they want to ship many of the performance improvements, new features and additional fixes with older LTS branches.

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

View full thread

We have a Pixel 7 working with the upstream Linux 6.18.58 release. We'll be getting all supported devices fully working with all hardware functionality. The upcoming Motorola flagship uses a fork of the 6.18 GKI LTS branch and we'll need to port it to the upstream kernel too.

Porting from the 6.1, 6.6 and 6.12 GKI LTS branches to the 6.18 GKI LTS branch is relatively simple and doesn't require a large number of changes. Porting from GKI LTS to the upstream LTS branch is much harder. Android has thousands of extra backported fixes and improvements.

Our latest OS release moved to using the Linux 6.18 LTS branch for both arm64 and x86_64 for the emulator, Cuttlefish and microdroid targets. We've made a highly experimental port of the Pixel kernel drivers to 6.18 and are planning on moving to it across all supported devices.

In the past several months, Android's official Generic Kernel Image (GKI) branches have fallen behind the upstream LTS revisions. We're resolving this by moving all of the devices we support to the latest LTS branch and making a GKI replacement for the latest upstream release.

View full thread

We deployed these mitigations but decided to turn it off anyway: 1) session.upload_progress.enabled = Off 2) blocking requests with multipart/form-data in Content-Type (case insensitive) 3) ZEND_MM_DEBUG=poison_free=0x00,poison_alloc=0x00,padding=16,check_freelists_on_shutdown=1

This is the new GrapheneOS boot animation. It's generated frame-by-frame using a script. It has a minimum 3.5s total runtime for the intro including a small pause. The rest of the animation gets interrupted once the device is booted to avoid any delay so there can't be an outro.

View full thread

The animation included in 2026101600 holds the logo for 0.8s rather than 2.0s in the video above since the new zips weren't committed to the OS yet. We've reduced that to 1.6s though. For the Pixel Tablet, we've reduced the size of the logo to 30% of the screen height from 40%.

This is the new GrapheneOS boot animation. It's generated frame-by-frame using a script. It has a minimum 3.5s total runtime for the intro including a small pause. The rest of the animation gets interrupted once the device is booted to avoid any delay so there can't be an outro.

Intro 0.00-1.90: Atoms appear one-by-one and gather 1.90-2.70: Bonds expand; name fades in from 2.20 2.70-3.50: Hold Transition 0.00-1.20: Hold 0.00-0.80: Outer and split inner bonds retract; name fades 0.80-1.40: Ease into spin Loop 0.00-4.00: One rotation from initial offset

Android Security Bulletins have been twisted into a way to mislead the public about security. Patches are only listed in the bulletins 2-6 months after they're disclosed to each Android OEM and allowed to be shipped. Patches listed in the September 2026 bulletin were available to ship for months.

View full thread

Each Android Security Bulletin also has a 2nd section with listing an extraordinarily small subset of the vulnerabilities patched in the upstream Linux kernel along with a small subset of vulnerabilities patched in drivers/firmware shared by many devices. This is deliberate to keep the bar very low.

Google wants Android users to feel safe due to believing they have the latest privacy and security patches. Therefore, they delay patches being listed in the bulletins for months and don't list a substantial portion of Linux, driver and firmware patches. It's a very low bar so devices can keep up.

Android Security Bulletins have been twisted into a way to mislead the public about security. Patches are only listed in the bulletins 2-6 months after they're disclosed to each Android OEM and allowed to be shipped. Patches listed in the September 2026 bulletin were available to ship for months.

View full thread

In 2026, Google has been completely overwhelmed by the volume of vulnerabilities being discovered by AI models both internally and externally. They recently announced to OEMs that the full set of High and Critical severity patches will only be available through the latest yearly and QPR2 releases.

Their announcement explains the massive number of vulnerabilities discovered by AI models internally will only be patched in the latest major releases. A subset deemed to pose an imminent risk to users will be backported to the most recent releases but not to older releases with security support.

Android Security Bulletins have been twisted into a way to mislead the public about security. Patches are only listed in the bulletins 2-6 months after they're disclosed to each Android OEM and allowed to be shipped. Patches listed in the September 2026 bulletin were available to ship for months.

View full thread

The security preview patches aren't only for Android projects but rather also include patches to external projects. Some of these external patches are already publicly disclosed while others are not. As one example, there have been non-publicly-disclosed security preview patches for wpa_supplicant.

GrapheneOS provides security preview releases providing early access to all of the security preview patches. It's the only OS quickly shipping all of these patches. A subset of these patches are shipped early by the stock OS on Pixels and Samsung flagships but far from all and it comes weeks later.

Android Security Bulletins have been twisted into a way to mislead the public about security. Patches are only listed in the bulletins 2-6 months after they're disclosed to each Android OEM and allowed to be shipped. Patches listed in the September 2026 bulletin were available to ship for months.

Android Security Bulletins are divided into two sections. The first section contains High and Critical severity Android Open Source Project (AOSP) patches backported to older releases. For years already, Low and Moderate severity AOSP patches have required updating to the latest major releases.

The first section is the main portion of the patches and gets provided 2-6 months in advance as security preview patches. The security preview patches are allowed to be shipped right away, which is sensible. The horrific part is delaying disclosure of the vulnerabilities and patches for months.