GrapheneOS Rewrites Its Messaging App: A Jetpack Compose Interface and a Focus on Privacy
Translated by a model; the original is in Russian.
The GrapheneOS project, which develops a security-focused Android-based OS, has released the 13th version of its own messaging app. The release was signed by developer Daniel Micay (thestinger). This is not a cosmetic update but effectively an app rewritten from scratch: the dated interface has been replaced with Jetpack Compose and Material 3 design, and every screen has been rebuilt from the ground up.
What's New in the Interface
Features familiar from modern messengers have arrived: pinning conversations, snoozing notifications (for 1, 8 or 24 hours, or indefinitely), marking chats as unread, and archiving with a swipe. On large screens, a two-pane layout works with the list on the left and the conversation on the right. The message bubbles have been updated, and an SMS segment and character counter, captions for attachments, and a full-screen card with copyable message details — sender, recipients, timestamp, delivery status and size — have been added.
The media picker with photo and video capture, the image viewer with pinch-to-zoom, and the vCard viewer with the ability to save to contacts have all been reworked.
Privacy as a Priority
As befits the project, the main focus is on security. YouTube link previews are now disabled by default and are only enabled manually. The app vets shared content, rejecting file: links and other apps' private files, and the widget's receivers are no longer exported externally. Limits have been added on memory allocation when parsing EXIF, MMS packets and content types, null pointer dereferences in GIF handling and color corruption caused by signed characters have been fixed — all typical sources of vulnerabilities when parsing untrusted data.
The honesty of the onboarding deserves a special mention: on first launch the app plainly warns that SMS is not encrypted and recommends using end-to-end encryption for sensitive correspondence. Emergency numbers, incidentally, can no longer be dialed directly from a conversation.
Reliability and the Little Things
Numerous crashes have been fixed — in the widget, on a failed insertion of an SMS into the database, and in quick replies to declined calls. Incoming SMS messages are imported immediately, unread notifications survive a reboot, and messages that arrive while a conversation is being deleted are no longer lost. Labels for screen readers and spoken feedback for sending have been added.
The technical bar has been set high: the minimum Android version is API 36, and the target and compile versions are 37, with Kotlin 2.4.10 and the latest Compose libraries in use. Every pull request is checked with tests and static analysis.
Source: Hacker News
Comments
Sign in, to comment.