- Edited
Hi, please don't bring out the "It's not a Pixel" pitchfork yet.
I'm starting a discussion to potentially consider a device from an alternative vendor. Unfortunately, the dire state of custom OS development on Android leaves only OnePlus as a major vendor besides Google that has a implementation of Android Verified Boot with support for avb_custom_key, and thus potential first-class support for custom OSs. (Samsung and Motorola blow eFuses at the thought of unlocking bootloaders...)
Having support for an alternate vendor, or at least some research towards it, while not a goal for GrapheneOS, would also help the broader community on the security of the devices being considered. I know this is a Chinese vendor. Part of the research I am thinking would be if the harm may be mitigated by minimizing the use of vendor blobs at the cost of reduced feature parity with the stock OS.
I'm sharing some of my findings on whether the device can possibly meet the requirements to start a discussion and see if there is at all any interest from the project and the community. If this passes the smell test and there is interest, I am willing to fund a test device and/or some time of a developer for a more detailed assessment.
I rearranged the requirements from the FAQ a little based on big themes.
Android Verified Boot / OS Support
- Support for using alternate operating systems including full hardware security functionality
- Support for A/B updates of both the firmware and OS images with automatic rollback if the initial boot fails one or more times
- Verified boot with rollback protection for firmware
- Verified boot with rollback protection for the OS (Android Verified Boot)
- Verified boot key fingerprint for yellow boot state displayed with a secure hash (non-truncated SHA-256 or better)
Very likely. Tested that avb_custom_key can be provisioned. To be tested, but board support isn't there yet so I can't build to test.
Vendor updates, ASB patching
- Complete monthly Android Security Bulletin patches without any regular delays longer than a week
Maybe? Questionable support globally, but certain regions get ASB patched earlier than others. To be observed.
- At least 5 years of updates from launch for phones (Pixels now have 7) and 7 years for tablets
Yes. Vendor pledges 5 years of security updates and 4 major updates.
- Vendor code updated to new monthly, quarterly and yearly releases of AOSP within several months to provide new security improvements (Pixels receive these in the month they're released)
Maybe. With QPR2 starting the trend of quarterly releases being bundled with ASBs, it is more likely.
- Linux 5.15 or Linux 6.1 Generic Kernel Image (GKI) support
Likely. Device launched with 6.1 (https://github.com/OnePlusOSS/android_kernel_oneplus_sm8650). To verify GKI.
Architectural features
- Hardware accelerated virtualization usable by GrapheneOS (ideally pKVM to match Pixels but another usable implementation may be acceptable)
- Hardware memory tagging (ARM MTE or equivalent)
- BTI/PAC, CET or equivalent
- PXN, SMEP or equivalent
- PAN, SMAP or equivalent
Depends on what 8Gen3 supports and what is exposed. I know Qualcomm messes with ELs for virtualization, so maybe not.
- 64-bit-only device support code
Very likely, as SD 8Gen3 is 64-bit only.
TEE
- StrongBox keystore provided by secure element
- Hardware key attestation support for the StrongBox keystore
- Attest key support for hardware key attestation to provide pinning support
- Weaver disk encryption key derivation throttling provided by secure element
- Insider attack resistance for updates to the secure element (Owner user authentication required before updates are accepted)
- Inline disk encryption acceleration with wrapped key support
OnePlus press releases claim "Strong Box4powered by Built-in eSE (embedded Secure Element)" via their "Device Security Engine 3.0, which is based on the Trusted Execution Environment (TEE)". How much is exposed to custom OSs is unknown.
Grab bag - no idea about those
- Isolated radios (cellular, Wi-Fi, Bluetooth, NFC, etc.), GPU, SSD, media encode / decode, image processor and other components
- Wi-Fi anonymity support including MAC address randomization, probe sequence number randomization and no other leaked identifiers
- Support for disabling USB data and also USB as a whole at a hardware level in the USB controller