Latest release addresses the privacy issue brought to our attention by NitroKey with Qualcomm SoC devices by stopping xtra-daemon from sending the SoC serial number in the HTTPS User-Agent header:

https://grapheneos.social/@GrapheneOS/110284380098624253

We'll be removing the User-Agent header completely later.

#grapheneos #qualcomm #xtra #psds #privacy

GrapheneOS (@[email protected])

GrapheneOS version 2023042900 released: https://grapheneos.org/releases#2023042900. See the linked release notes for a summary of the improvements over the previous release. Forum discussion thread: https://discuss.grapheneos.org/d/4749-grapheneos-version-2023042900-released #grapheneos #privacy #security

GrapheneOS Mastodon

@GrapheneOS why was it doing that in the first place

Why would someone program that

@Byte Qualcomm uses XTRA to gather statistics on the devices using their SoC. They use the hardware ID and a random ID to count unique users per device model, etc.
@GrapheneOS Why is that turned on in the first place though? Is xtra-daemon written by Qualcomm or what?
@Byte Yes.
@GrapheneOS I see. Does xtra-daemon do anything useful for GrapheneOS?
@Byte Yes, it retrieves GNSS almanacs via HTTPS GET requests to provide much faster GNSS-based location lock. We document it at https://grapheneos.org/faq#default-connections. 6th/7th generation Pixels (which are the recommended devices) use the open source AOSP PSDS downloader and we provide our own PSDS cache. We're working on doing the same thing for Qualcomm PSDS but it's more difficult due to using xtra-daemon instead of standard AOSP PSDS support. Qualcomm likes doing things their own way...
GrapheneOS Frequently Asked Questions

Answers to frequently asked questions about GrapheneOS.

GrapheneOS
@GrapheneOS ah, of course. Maybe in the meantime it could be sandboxed? You know what things it’s *supposed* to access in theory? Or is it a problem of not being able to distinguish between appropriate use and inappropriate use of the network?
@Byte It is sandboxed and always was. That's how we removed access to SoC serial number. We just removed access to it rather than changing the code to stop reading it. We can also still read the code and see what it does but it's too painful to modify the code and maintain that. Removing User-Agent and using our proxy will both be done by hooking the calls it makes into the OS libraries.
@GrapheneOS makes sense. Thanks for explaining it