GrapheneOS [Unofficial]

1687 readers
14 users here now

Welcome to the GrapheneOS (Unofficial) community

This feed is currently only used for announcements and news.

Official support available on our forum and matrix chat rooms

GrapheneOS is a privacy and security focused mobile OS with Android app compatibility.

Links

More Site links

Social Media

This is a community based around the GrapheneOS projects including the hardened Android Open Source Project fork, Auditor, AttestationServer, the hardened malloc implementation and other projects.

founded 3 years ago
MODERATORS
1
15
App compatibility with GrapheneOS (discuss.grapheneos.org)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

A step-by-step troubleshooting guide for problematic apps with possible workaround solutions.

https://discuss.grapheneos.org/d/8330-app-compatibility-with-grapheneos

2
2
submitted 3 years ago* (last edited 3 years ago) by [email protected] to c/[email protected]
 
 

Hello and welcome to [email protected] !

Our Lemmy GrapheneOS community is currently unofficial, reserved, and used for announcements/news.

GrapheneOS is a privacy and security focused mobile OS with Android app compatibility.

https://grapheneos.org/

https://attestation.app/

https://github.com/GrapheneOS

Official chat rooms: #grapheneos:grapheneos.org and #offtopic:grapheneos.org

This is a community based around the GrapheneOS projects including the hardened Android Open Source Project fork, Auditor, AttestationServer, the hardened malloc implementation and other projects.


All installs should follow the Official Install Guide. No other guides are recommended or supported.

If your question is related to device support, please see the Which devices will be supported in the future? for criteria and the Which devices are recommended? for recommend devices from the FAQ section of the official site.

If your question is related to app support, please check the Usage Guide. Sections like Bugs uncovered by security features should help if you have a native app with a security issue uncovered by hardening. If you want to know what browser to use please reference Web browsing. In general, Vanadium is almost always the recommendation for security and privacy.

If your question is related to a feature request, please check the issue trackers. OS issue tracker, Vanadium for other GrapheneOS project check the Reporting issue.


GrapheneOS has a very active community primarily based around the official chat rooms on Matrix and where most of the core community, including contributors, to the project have discussions. Most of those people are not active here on Lemmy's [email protected] community.

The official GrapheneOS space groups together all of the official rooms along with members of the community who join the space. You can join the space at #community:grapheneos.org

Links to join our new official chat rooms via the Element web client:

Matrix Room Description
#grapheneos:grapheneos.org Best place to request support, ask questions or get involved in the project
#offtopic:grapheneos.org Discuss topics not strictly related to GrapheneOS
#dev:grapheneos.org Discuss GrapheneOS app and OS development
#testing:grapheneos.org Provide feedback on Beta channel releases
#releases:grapheneos.org Release announcements
#infra:grapheneos.org Infrastructure monitoring and discussion

You can use the client and home server of your choice. For new users, the Element web app or mobile app with matrix.org as your home server is a sensible choice.

Please contact the moderators of this community if you have any questions or concerns.

3
 
 

Tags:

  • 2024103100 (Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, Pixel 8, Pixel 8 Pro, Pixel 8a, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold, emulator, generic, other targets)

Changes since the 2024102400 release:

  • improve our existing fix for an upstream Android bug impacting apps using the telephony service in secondary users to fix support for disabling re-routing of Google Play location requests to the OS for fresh installs of sandboxed Google Play since the release of Android 15
  • Sandboxed Google Play compatibility layer: extend wired Android Auto toggle to additional methods used in edge cases
  • fix changing USB-C port control setting to a lower security level not fully applying until after locking and unlocking
  • Settings: fix per-app exploit protection toggles for Private Space
  • Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold: disable Wi-Fi HAL debug logging to avoid memory corruption caught by hardware memory tagging on GrapheneOS
  • raise system log buffer size from 256KiB to 512KiB to make logs obtained by users reporting issues more useful
  • enable stamp configuration for microdroid kernel builds to set LOCALVERSION based on version control information as expected
  • kernel (6.6): disable unused hibernation support
  • kernel (6.6): disable unused TIOCSTI ioctl (already blocked via standard Android SELinux ioctl filtering)
  • kernel (6.6): disable unused cachestat system call (already blocked for apps via standard Android seccomp-bpf policy)
  • kernel (6.6): enable random kmalloc caches for x86_64 and microdroid too, not only bare metal arm64
  • kernel (6.6): enable full struct randomization for x86_64 and microdroid too, not only bare metal arm64
  • kernel (6.6): enable DEBUG_SG for microdroid too, not only bare metal
  • kernel (6.6): enable FORTIFY_SOURCE for microdroid too, not only bare metal
  • kernel (6.6): disable BINFMT_MISC for microdroid too, not only bare metal
  • kernel (6.6): disable RSEQ for microdroid too, not only bare metal
  • kernel (6.6): add SYSRQ restrictions for microdroid too, not only bare metal
  • kernel (6.6): use the same KFENCE configuration for microdroid as bare metal
  • mark Sensors permission as implicitly added
  • avoid adding Sensors permission to hasCode=false packages
  • improve our implementation of extending verified boot to out-of-band shared library APK updates
  • Log Viewer: add userType line to header in non-Owner users
  • Log Viewer: add targetSdk and sharedUid to package info header
  • System Updater: update minimum and target API level to 35 (Android 15)
  • adevtool: update carrier settings
  • Vanadium: update to version 130.0.6723.86.0
  • Info: update to version 5
  • Auditor: update to version 87
  • Sandboxed Google Play compatibility layer: fix development support in OS debug builds
4
 
 

Changes in version 146:

  • update max supported version of Play services to 24.44
  • update max supported version of Play Store to 43.3

A full list of changes from the previous release (version 145) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

GmsCompatConfig is the text-based configuration for the GrapheneOS sandboxed Google Play compatibility layer. It provides a large portion of the compatibility shims and sets the maximum supported versions for Play services and the Play Store.

5
 
 

Changes in version 130.0.6723.86.0:

  • update to Chromium 130.0.6723.86

A full list of changes from the previous release (version 130.0.6723.73.0) is available through the Git commit log between the releases.

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release. Vanadium isn't yet officially available for users outside GrapheneOS, although we plan to do that eventually. It won't be able to provide the WebView outside GrapheneOS and will have missing hardening and other features.

6
 
 

Notable changes in version 87:

  • update Android SDK to 35 (Android 15)
  • update target SDK to 35 (Android 15)
  • use new attestation.app API with /auditor/ prefix and JSON response for verify API
  • remove subscribe key for attestation.app account after successful verification
  • update Gradle to 8.10.2
  • update Android Gradle plugin to 8.7.1
  • update Kotlin to 2.0.21
  • update Android NDK to 27.2.12479018
  • minor performance and robustness improvements

A full list of changes from the previous release (version 86) is available through the Git commit log between the releases.

The Auditor app uses hardware security features on supported devices to validate the integrity of the operating system from another Android device. It will verify that the device is running the stock operating system with the bootloader locked and that no tampering with the operating system has occurred. It will also detect downgrades to a previous version.

It cannot be bypassed by modifying or tampering with the operating system (OS) because it receives signed device information from the device's Trusted Execution Environment (TEE) or Hardware Security Module (HSM) including the verified boot state, operating system variant and operating system version. The verification is much more meaningful after the initial pairing as the app primarily relies on Trust On First Use via pinning. It also verifies the identity of the device after the initial verification. Trust is chained through the verified OS to the app to bootstrap software checks with results displayed in a separate section.

This app is available through the Play Store with the app.attestation.auditor.play app id. Play Store releases go through review and it usually takes around 1 to 3 days before the Play Store pushes out the update to users. Play Store releases use Play Signing, so we use a separate app id from the releases we publish ourselves to avoid conflicts and to distinguish between them. Each release is initially pushed out through the Beta channel followed by the Stable channel.

Releases of the app signed by GrapheneOS with the app.attestation.auditor app id are published in the GrapheneOS App Store which provides fully automatic updates. Each release is initially pushed out through the Alpha channel, followed by the Beta channel and then finally the Stable channel. These releases are also bundled as part of GrapheneOS and published on GitHub.

GrapheneOS users must obtain GrapheneOS app updates through our App Store since verified boot metadata is required for out-of-band system app updates on GrapheneOS as part of extending verified boot to them.

7
 
 

Notable changes in version 5:

  • improve appearance of cards
  • mark headings semantically for accessibility
  • show error message when lacking a browser to handle opening links
  • add info button with link to about the releases to Release Notes top bar
  • implement adaptive navigation for improved support across window sizes and better animations
  • add full support for edge-to-edge
  • update Android SDK to 35 (Android 15)
  • update target SDK to 35 (Android 15)
  • update Gradle to 8.10.2
  • update Android Gradle plugin to 8.7.1
  • update Android NDK to 27.2.12479018
  • update Kotlin to 2.0.21
  • update AndroidX Compose BOM libraries to 2024.10.00
  • update AndroidX Navigation Compose library to 2.8.3
  • update AndroidX Activity Compose library to 1.9.3
  • update AndroidX Lifecycle libraries to 2.8.6

A full list of changes from the previous release (version 4) is available through the Git commit log between the releases.

Releases of the app are published in the GrapheneOS App Store. These releases are also bundled as part of GrapheneOS. You can use the GrapheneOS App Store on Android 12 or later for automatic updates. Each release is initially pushed out through the Alpha channel, followed by the Beta channel and then finally the Stable channel.

8
18
submitted 1 week ago* (last edited 18 hours ago) by [email protected] to c/[email protected]
 
 

Notice which will not impact most users: apps which were only installed in secondary users but not Owner before updating to Android 15 and which were then installed in Owner after updating to Android 15 will have a one-time revocation of their Network/Sensors permissions after updating to this release as a minor consequence of migrating them from Android 14 again.

Tags:

  • 2024102400 (Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, Pixel 8, Pixel 8 Pro, Pixel 8a, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold, emulator, generic, other targets)

Changes since the 2024102100 release:

  • switch back our original stricter approach to DNS leak blocking from our 2024050900 release with an additional fix for an Android DNS routing bug causing requests to the VPN DNS servers to be routed incorrectly, which should avoid the compatibility issues experienced with certain VPN apps when we tried to ship it before
  • avoid resetting Network or Sensors back to the global default after app updates in a specific case when migrating the state from Android 14 or earlier
  • add an extra one-time migration of Network and Sensors being disabled in Android 14 to Android 15 to work around an issue with the previous migration of the permission state which occurred for some users with some of their apps
  • fix ancient Android bug causing widgets to disappear from the user's home screen when the user stops, which was a major usability issue for secondary users
  • Keyboard: extend fix for upstream layout bug in landscape mode to fully fix it for 3-button navigation in addition to the default gesture navigation
  • Gallery: fix upstream cropping activity bug when both the input and output URI is the same to fix setting profile pictures for user profiles
  • raise backup service transport (Seedvault) timeout from 10 minutes / 5 minutes to 60 minutes / 30 minutes to handle very large backups, particularly for the device-to-device mode which includes nearly all app data
  • temporarily revert enforcing minimum 64kiB stack guard size for arm64 since Facebook recently included a buggy stack overflow check for the React Native Hermes runtime that's incompatible with larger gap sizes and beginning to be shipped by apps (revert was not applied for Android 15 port)
  • Sandboxed Google Play compatibility layer: add stubs for update_engine wrapper API to avoid potential Play services crashes if the existing approaches to disable the update service fail
  • Pixel 8, Pixel 8 Pro, Pixel 8a: disable Wi-Fi HAL debug logging to avoid memory corruption caught by hardware memory tagging on GrapheneOS
  • kernel (6.1): update to latest GKI LTS branch revision
  • use hardened GrapheneOS 6.6 LTS kernel for microdroid virtual machines for both arm64 and x86_64
  • Vanadium: update to version 130.0.6723.73.0
  • GmsCompatConfig: update to version 144
  • GmsCompatConfig: update to version 145
9
 
 

We're working on fixing a regression in the GrapheneOS releases based on Android 15 which resulted in a subset of users having a subset of their Network and Sensors toggle settings not migrated over from the Android 14 permission database to the Android 15 permission database.

The Network and Sensors toggles added by GrapheneOS still work fine on Android 15. Android 15 changed how permissions are stored and the way we're migrating settings from Android 14 is the problem. In a specific case, the values are being reset back to the current global default.

Android 15 includes a huge amount of important privacy and security fixes itself along with being required for the Pixel firmware/driver patches for October. Their release was on October 15th, our first public release was October 16th and we had 8 public releases before Stable.

For each of our 7 public releases based on Android 15 after our first one, we fixed every major reported issue not present on the stock Pixel OS and some of the issues impacting the stock OS too. Not much else we can do. We need more testers to catch subtle issues like this.

Our next release will also fix 2 more minor upstream bugs impacting AOSP apps and an upstream issue impacting every Android-based OS with secondary users causing widgets to be lost repeatedly. A compatibility workaround has also been added back for apps catching stack overflows.

We'll also be upgrading our current DNS leak blocking to the stricter version we shipped in May 2024 shortly after the Android DNS leaks were discovered by our community. We had to roll that back because of another Android bug which we've now finally figured out how to resolve.

Our initial strict Android DNS leak blocking in May 2024 was correct. Certain apps like ProtonVPN try to send their VPN DNS queries without an explicit network ID and relying on Android guessing they want the VPN tunnel which it handles incorrectly and broke with leak blocking.

10
 
 

Changes in version 145:

  • update max supported version of Play services to 24.42

A full list of changes from the previous release (version 144) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

GmsCompatConfig is the text-based configuration for the GrapheneOS sandboxed Google Play compatibility layer. It provides a large portion of the compatibility shims and sets the maximum supported versions for Play services and the Play Store.

11
 
 

Changes in version 130.0.6723.73.0:

  • update to Chromium 130.0.6723.73

A full list of changes from the previous release (version 130.0.6723.58.0) is available through the Git commit log between the releases.

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release. Vanadium isn't yet officially available for users outside GrapheneOS, although we plan to do that eventually. It won't be able to provide the WebView outside GrapheneOS and will have missing hardening and other features.

12
 
 

We've finally fixed the ancient Android bug causing widgets/shortcuts to disappear in secondary users when switching away from them. It will be included in our next release. This issue impacts every Android-based OS with secondary user support and was a major usability issue.

We've also fixed 2 more Android 15 regressions in AOSP. AOSP Gallery had a long time bug in the cropping activity which started breaking setting profile pictures for users in Android 15. We also extended our AOSP keyboard landscape layout fix for the legacy 3 button navigation.

13
 
 

GrapheneOS fully supports the Private Space feature in Android 15, which is essentially a separate user nested inside of the Owner user.

We strongly recommend it as a replacement for a work profile managed by a local profile admin app. It has better OS integration and isolation.

Private Space is an isolated workspace (profile) for apps and data similar to both user profiles and work profiles. All 3 forms of profiles also have entirely separate VPN configuration which is very useful even if you connected to the same VPN, since exit IPs can be separate.

All forms of profiles have separate encryption keys. You can keep a Private Space at rest while the Owner user is logged in just as you can with a secondary user.

Private Space makes it easier to share data than users. The clipboard is shared, but we could add a setting for it.

GrapheneOS users choose to use the OS in different ways. A lot of people largely use open source apps and not sandboxed Google Play. Others use sandboxed Google Play in their main profile. Many use sandboxed Google Play in a dedicated profile to choose which apps use it.

Regardless of how people choose to use sandboxed Google Play, they're regular sandboxed apps without special access. Private Space makes it easier to use a dedicated profile for sandboxed Google Play though.

It's also worth noting you can still use a work profile alongside it.

All of our features including Contact Scopes, Storage Scopes and sandboxed Google Play have full support for Private Space. We added support for it significantly before the release of Android 15, even before the initial early release of the source code was published in September.

14
 
 

Changes in version 144:

  • update max supported version of Play Store to 43.2

A full list of changes from the previous release (version 143) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

GmsCompatConfig is the text-based configuration for the GrapheneOS sandboxed Google Play compatibility layer. It provides a large portion of the compatibility shims and sets the maximum supported versions for Play services and the Play Store.

15
 
 

Changes in version 143:

  • revert temporary Bluetooth stub changes from the previous Android 15 only release
  • revert minimum SDK level temporarily changed for the previous release back to 32 (Android 12)

A full list of changes from the previous release (version 142) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

GmsCompatConfig is the text-based configuration for the GrapheneOS sandboxed Google Play compatibility layer. It provides a large portion of the compatibility shims and sets the maximum supported versions for Play services and the Play Store.

16
 
 

This is an Android 15 exclusive release with a temporary workaround to enable us to move our 2024101600 release to the Alpha channel for broader public testing.

Changes in version 142:

  • update Bluetooth stubs for 15
  • temporarily raise minimum SDK version to 35 (Android 15) for this release

A full list of changes from the previous release (version 141) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

GmsCompatConfig is the text-based configuration for the GrapheneOS sandboxed Google Play compatibility layer. It provides a large portion of the compatibility shims and sets the maximum supported versions for Play services and the Play Store.

17
19
submitted 2 weeks ago* (last edited 19 hours ago) by [email protected] to c/[email protected]
 
 

This is the initial release of GrapheneOS based on Android 15 based on the October 15th stable release of Android 15. We had previously ported all of our features to Android 15 based on the Beta releases and have been finishing it up based on the early September release of the source code for Android 15. Our initial port of all our features was completed on September 3rd and we've been polishing it up while we've been working on regular development.

Tags:

  • 2024101600 (Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, Pixel 8, Pixel 8 Pro, Pixel 8a, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold, emulator, generic, other targets)

Changes since the 2024101200 release:

  • full 2024-10-05 security patch level since the Pixel patches were disclosed in the Pixel Update Bulletin today
  • rebased onto AP3A.241005.015 Android Open Source Project release (Android 15)
  • full port of GrapheneOS features to Android 15 including integration of our features with the new Android 15 features including Private Space
  • Sandboxed Google Play compatibility layer: add stubs to fully remove the need for the Google Services Framework (GSF) app for fresh installs of sandboxed Google Play, which has been removed as a dependency in our app repository for Android 15+, but it should still be kept for existing installs to avoid potential issues
  • Pixel 9 Pro Fold: add assorted device-specific Settings and SystemUI changes to better match the stock OS
  • disable Bluetooth auto-on feature by default
  • temporarily enable system crash notifications unconditionally for the initial release based on Android 15 release
  • kernel (6.6): update to latest GKI LTS branch revision including update to 6.6.56
  • Seedvault: update to a newer revision (will be replaced with a better backup implementation in the future)
  • Seedvault: minor changes to prepare for a complete fork and overhaul in the future
  • Vanadium: update to version 130.0.6723.58.0
  • GmsCompatConfig: update to version 141
18
 
 

Our initial release based on Android 15 is now available for early testing for technical users willing to sideload the release to their device. It's a regular production release and this can be done on a locked device with USB debugging disabled, but it's not heavily tested yet.

If you're interested in helping with either the early testing via sideloading or regular public testing via our Alpha and Beta channels, join our public testing chat:

https://grapheneos.org/contact#community-chat

You can choose between Matrix, Discord or Telegram. Most people use Matrix or Discord.

19
 
 

Changes in version 130.0.6723.58.0:

  • update to Chromium 130.0.6723.58

A full list of changes from the previous release (version 129.0.6668.100.0) is available through the Git commit log between the releases.

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release. Vanadium isn't yet officially available for users outside GrapheneOS, although we plan to do that eventually. It won't be able to provide the WebView outside GrapheneOS and will have missing hardening and other features.

20
 
 

Android 15 is being released today and we should be ready to quickly ship a release based on it as if this is a monthly update, not even a quarterly one.

We already put together builds working well across all supported devices based on the Android 15 Beta and September sources.

Source code tags are currently in the process of being pushed to the Android Open Source Project repositories. In a few hours, those should be fully pushed and we can build official releases of GrapheneOS based on Android 15. We'll push it out via Alpha quite quickly for testing.

We shipped October Android Security Bulletin patches significantly before stock Pixel OS:

https://grapheneos.org/releases#2024100800

Android 15 is required for full Android security patches now. Android Security Bulletin only covers a subset of the patches they deem important enough to backport.

In addition to Android 15 being required for the full set of Android Open Source Project patches, it's also now needed for even the basic set of hardware-related patches for Pixels since they're on Android 15. Pixel Update Bulletin was published today:

https://source.android.com/docs/security/bulletin/pixel/2024-10-01

We've been working hard on preparing for the release of Android 15 and it should be the smoothest yearly release we've had so far largely due to them providing an early source code release in September. That was unusual and we won't plan around it being repeated for Android 16.

We built an initial experimental release based on Android 15 (2024101500) which worked well but we were missing some of the intended kernel changes. We've thrown that out and we're building a new release (2024101600) which should be the first one able to reach the Alpha channel.

We've been testing our port since September 3rd using Android 15 source code published in September. We were testing builds for Pixels prior to today's release via Beta releases. We planned to do public testing of experimental builds but people would have needed a spare device...

This yearly Android release happened a lot differently than previous years: trunk-based quarterly releases since QPR2 making it much smaller and allowing earlier testing even before September, and then the early source code release not actually shipped in production to devices.

Overall, both of these things eliminated most time pressure and stress for us. However, we had to keep developing our Android 14 QPR3 stable branch despite having a 99.9% complete port to Android 15 since September 3rd and they didn't quite publish enough for public testing.

21
 
 

Changes in version 141:

  • update max supported version of Play services to 24.41
  • update max supported version of Play Store to 43.1
  • update Android Gradle plugin to 8.7.1

A full list of changes from the previous release (version 140) is available through the Git commit log between the releases (only changes to the gmscompat_config text file and config-holder/ directory are part of GmsCompatConfig).

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release.

22
 
 

Changes in version 13:

  • add support for ARM hardware memory tagging (MTE) which has been shipped in production on GrapheneOS for the past year (see the README section on memory tagging for details)
  • Android: implement fatal_error() via async_safe_fatal() for improved logging
  • Android: restore the default SIGABRT handler in fatal_error() before aborting to avoid deadlocks with crashlytics
  • Android: remove redundant warning switches for Android
  • fix -Wimplicit-function-declaration warning with GCC 14
  • update libdivide to 5.1

A full list of changes from the previous release (version 12) is available through the Git commit log between the releases.

See the README for this release for an overview of the project and many details about the design goals and implementation.

This is a standalone release for use outside of GrapheneOS. GrapheneOS ships these changes shortly after they're implemented as part of our OS releases rather than waiting for these releases.

These integer tags are the standalone releases, while date style tags such as 2024101200 and 2024101200-caimito are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.

23
 
 

Pixel 4a (5G), Pixel 5 and Pixel 5a are end-of-life and shouldn't be used anymore due to lack of security patches for firmware and drivers. We provide extended support for harm reduction.

Tags:

  • 2024101200-redfin (Pixel 4a (5G), Pixel 5)
  • 2024101200 (Pixel 5a, Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, Pixel 8, Pixel 8 Pro, Pixel 8a, emulator, generic, other targets)
  • 2024101200-caimito (Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold)

Changes since the 2024100800 release:

  • hardened_malloc: preserve hardware memory tagging enforcement flag for slab mappings when releasing free slabs
  • hardened_malloc: improve accuracy of probability hint for hardware memory tagging branches
  • temporarily revert enforcing minimum 64kiB stack guard size for arm64 since Facebook recently included a buggy stack overflow check for the React Native Hermes runtime that's incompatible with larger gap sizes and beginning to be shipped by apps
  • Log Viewer: add "bootloader unlocked" and "dev options enabled" flags to header
  • Log Viewer: add "More info" button to native crash reports
  • Log Viewer: include contents of App Not Responding (ANR) stack traces file in ANR error reports
  • Log Viewer: omit processUptime header line when it's unknown
  • Settings Intelligence (Settings search): fix upstream bug resulting in corruption of the query history database which leads to the search crashing
  • Launcher: mark 2x2 workspace option as being for phones
  • kernel (6.6): update to latest GKI LTS branch revision including update to 6.6.54
  • adevtool: update out-of-band carrier settings
  • Vanadium: update to version 129.0.6668.100.0
24
 
 

We've improved the layout of the list of releases on our site and added the Alpha channel to the list. The overall changes should make it more useful and easier to understand:

https://grapheneos.org/releases#devices

Each official release of GrapheneOS goes through Alpha and Beta before Stable.

25
 
 

Facebook shipped buggy stack overflow detection in the Hermes JavaScript engine used by React Native:

https://github.com/facebook/hermes/issues/1535

It breaks when the default stack guard is 64k instead of 4k. The standard 64-bit ARM Linux ABI requires 64k. So far only 1 person noticed a broken app.

We're going to be temporarily reverting our change in today's release before Facebook's broken code reaches more apps. We tried lying to apps about the stack layout to hide this change but that breaks compatibility much more. We'll have to detect the Facebook library instead.

Not particularly important since we weren't planning on switching to standard 64k stack probes instead of 4k stack probes to avoid risk. However, it's nicer if it's larger to cover 3rd party code without stack probes. Very minor compared to other things blocked by app compat.

The main feature that's blocked due to third party app bugs is enabling hardware memory tagging by default for all user installed apps. That works fine but catches many memory corruption bugs. We might put the toggle into the setup wizard so that most users end up enabling it.

We want to disable the 32-bit ARM system call ABI in the kernel config on devices without 32-bit app support. Certain widespread anti-tampering frameworks use it even on devices like the Pixel 8 without CPU level support for 32-bit. We'll have to extend the seccomp filters.

Enabling ShadowCallStack for Vanadium worked well but caused issues with WebView-based apps, likely due to anti-tampering code. This would be nice even on the recent devices with PAC and MTE until we have stack allocation MTE enabled... which is blocked due to app bugs for now.

view more: next ›