Final's avatar
Final
final@stacker.news
npub1hxx7...g75y
Security specialist and member of the GrapheneOS Foundation. Posts my own and not endorsed by my employer. AI slop and Nostr DMs ignored. Email: final@grapheneos.org Matrix: f1nal:grapheneos.org
Final's avatar
Final 9 months ago
Keyboards and switches used by project team members when I asked: 1. "Keychron K2 Max" (Keychron Super Banana switches) 2. Weikav D75 with Kailh BOX Royals 3. (Photo of a split keyboard with palm rests) 4. "MMD Princess switches" / "Cherry MX2A Speed Silvers are my favourite" 5. "Waiting for my Hyper 7 to arrive" View quoted note →
Final's avatar
Final 9 months ago
Build your own keyboard. That's all. You won't regret it
Final's avatar
Final 9 months ago
Accrescent is an early alpha app store made by a sole developer. It is designed for security and privacy. The application has a hardcoded key that checks for a cryptographically signed app repository. If the repository is compromised, it would not be able to deliver anything malicious due to them not having access to the cryptographic keys to sign new repository metadata. The metadata is downgrade protected with a minimum version pinned to the app to prevent old repositories being used. In the signed repo metadata, the application ID, signing key hash, and minimum expected version for each app are available. This ensures a legitimate app install and prevents first installing an insecure outdated version. View quoted note →
Final's avatar
Final 9 months ago
Android applications are cryptographically signed by the developer of the application when they are packaged. When you install an application, the signing certificate is pinned by the operating system and trusted on first use (TOFU). This prevents an app with the same app ID (domain.company.application) having a different certificate be installed. This has a few benefits: - You ensure updates are only able to be delivered by the same entity, providing the signing certificates isn't compromised. - An app can't be tampered with since it will require being re-signed. - You can use the hash of the certificates as a form of app / developer verification. Outside of signing, apps are also protected by downgrade protections to prevent downgrade attacks. A limitation with TOFU is that it doesn't verify it an app is legitimate, only that it is different from the original install. App stores provide far more verification on an application being listed and are more likely to assure you getting a legitimate app than getting a random APK file off the internet. AppVerifier is an app by one of our app developers that lets you check the signing certificate hashes of an app. You can compare the signing hash with one the developer publishes with your own install to validate you have an authentic package. #GrapheneOS will eventually add this as a UI feature (e.g. in the install dialog) in the later future to not necessitate having an additional app. This information is heavily used to verify apps in an Alpha build app store called Accrescent which we'd like other app store apps to follow the model of. I will explain further about the workings of it later. Other app stores like F-Droid and recently Google Play compile the apps and/or sign them. The former only allowing own signings certificates if there is reproducible builds (a minimal amount). This is problematic, as it adds an additional trusted party. Apps should be exclusively signed by developers as a compromise of a shared signing certificate means a pwn of every app using that certificate. It also makes updates impossible should the apps be exited from the app store or if you want to get from another source. It is even more telling as F-Droid builds apps on extremely old infrastructure that missed features from processors added in the late 2000s - early 2010s.
Final's avatar
Final 9 months ago
One of our full time devs are working their resources on building our own text-to-speech and speech-to-text integration for GrapheneOS. None of the available apps are suitable for inclusion. None are modern enough aside from Sherpa and it has issues including high latency making it unsuitable for use with TalkBack. Our own implementation is going to be significantly better.
Final's avatar
Final 10 months ago
We have slightly updated our features page to document new protections against VPN leaks that are not fixed in stock Android. > #GrapheneOS closes a hole in Android's eBPF-based firewall system which made it possible to bypass the VPN by specifying a specific interface with a special system call.
Final's avatar
Final 1 year ago
#GrapheneOS version 2025032100 released. This update enables the new, improved Desktop Mode as a developer option. Feel free to try it all out. • Sandboxed Google Play compatibility layer: improve support for overriding Gservices flags to avoid situations where our overrides aren't used leading to compatibility issues (this should fix a recent Play services crash that's being reported) • Sandboxed Google Play compatibility layer: improve support for overriding phenotype flags and fix flag overrides not being applied in some cases • fix 2 upstream lockscreen layout bugs with split shade used on folding phones (for the inner screen) and tablets • fix upstream lockscreen layout bug with placement of alarm and Do Not Disturb information • fix upstream lockscreen layout bug hiding date text when media is playing • enable support for the new desktop mode as an additional developer option toggle (Pixel Tablet already has this as the main toggle) • Terminal (virtual machine management app): backport upstream improvements • System Updater: raise download buffer size • System Updater: delete update package immediately after completion • System Updater: fall back to downloading and installing a full update if an incremental (delta) update fails initialization which occurs when a firmware or OS image has been corrupted (extremely rare edge case due to verified boot) • System Updater: retry faster if installation fails • System Updater: improve error checking to provide better error messages • System Updater: close update package zip file earlier • Network Location: require TLSv1.3 for GrapheneOS services instead of either TLSv1.2 or TLSv1.3 • kernel (6.6): update to latest GKI LTS branch revision • Seedvault: update to 15-5.4 (will be replaced with a better backup implementation in the future) • stop disabling inclusion of device diagnostics functionality now that it's available in the Android Open Source Project
Final's avatar
Final 1 year ago
Latest #GrapheneOS release (it's out) has a fix for an upstream Android security bug causing Bluetooth contact sharing to be enabled for hands-free calling devices even though the dialog shows it will be disabled. GrapheneOS disables Bluetooth contact sharing by default instead of enabling it for pairing requests made by the user in the foreground.