My custom build of LineageOS for the OnePlus 7 Pro (Guacamole). These steps are completed in CI/CD once a month.
Why?
LineageOS is great, but its desire to not rock the corporate boat leaves out several ‘hacks’ that I find very valuable. The main Android repo is here on github, where you can see some of these changes being pulled in.
Here are the customizations I make to my phone’s OS:
- Uses iOS emojis (from AppleColorEmoji).
- Adds custom apps to /system, such as Lawnchair, Google Photos, and the Play Store.
- Install the WireGuard kernel backend (This includes my OP7P kernel repo)
- Enable MicroG, a lightweight privacy focused replacement for Google Play Services. It also enables FDroid as a system app.
- Patches CTS key attestation.
- Enables signature spoofing for the Play Store.
- Enables call recording in the stock dialer.
Much of this comes from lineageos4microg.
Build Process
The main repos I have modified can be found on github:
- https://github.com/qcasey/android
- https://github.com/qcasey/android_vendor_partner_gms
- https://github.com/qcasey/android_kernel_oneplus_sm8150
The repo doing builds in CI is on my gitlab:
https://git.quinncasey.com/qcasey/lineageos-patches/-/tree/main
Helpful Links
- KeyStore: Block key attestation for Google Play Services · ProtonAOSP/android_frameworks_base@7f7a9b1
- GitHub - LSPosed/LSPosed: LSPosed Framework
- android_kernel_wireguard - Android ROM directory for WireGuard inclusion
- GitHub - kdrag0n/safetynet-fix: Universal fix for Google SafetyNet on Android devices with hardware attestation and unlocked bootloaders.
Old signature spoofing attempts
- NanoDroid/DeodexServices.md at master · Nanolx/NanoDroid · GitHub
- NanoDroid/Issues.md at master · Nanolx/NanoDroid · GitHub
- How can I pass safety net on Android 11? | XDA Developers Forums
- Files · 11-attempt · oF2pks / Haystack · GitLab
- Custom ROM development - Android Kitchen
Results
LineageOS gets 6hrs screen on time on a 2yo OnePlus 7 pro
Works (that I’ve seen not working before)
- Mobile Data
- Smooth launcher transitions and task switching (via QuickSwitch)
- WireGuard via kernel module (root still required)
- Play Store, signed in within Android Work profile
- Location services (Google Maps, location EXIF data in Camera)
- Yubikey / U2F / Fido2 (thanks, ale5000)
Doesn’t Work
All of these are due to missing APIs in Microg.
- Google Pay
- Ebay / other apps’ “Barcode Scanning” feature