LineageOS is a free, community built, aftermarket firmware distribution of Android 8.1 (Oreo), which is designed to increase performance and reliability over stock Android for your device.
LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.
All the source code for LineageOS is available in the LineageOS Github repo. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.
What's special about my build:
- Sometimes I pick a few patches from the Lineage Gerrit before they are approved and merged into our trees.
- The kernel is based on Lineage's one, but I have upstreamed with the latest patches from linux-stable, added a few things such as performance and battery tweaks, security and stability fixes, SafetyNet spoofing, additional kernel controls.... This kind of things
- The device trees will also be improved overtime with various improvements from mixed sources (for example better presets, different HAL solutions and so on).
- All the rest is kept as recommended in the maintainer's manifest (including the optional patches).
- RIL (Calls, SMS, Data)
- Video Playback
- Audio (Record and Playback)
- Fingerprint (with gestures)
- Notification LED
- VoLTE calls are currently not working
- With February security patches, TWRP is unable to decrypt data. The only way to be able to access it is removing any lockscreen PIN or password before entering recovery. This will be addressed by the TWRP guys soon.
- Before instaling, make sure you are running the latest Open Beta 3 firmware.
- If you are unencrypted take a full backup of all your data, because this ROM enforces encryption and so you will have to format your phone.
If you are encrypted and running an AOSP ROM (8.0 or newer) you're fine. If you come from OOS (both Nougat and Oreo)
take a full backup of all your data as there's currently not way to change masterkey without formatting, sorryyou should be able to go ahead and flash without formatting the internal storage, just make sure to remove any screen lock before switching ROM.
- Download the latest build and GApps (both links are below).
- Reboot to a custom recovery (latest unified codeworkx's build works perfectly and supports masterkey3 encryption).
- If you are coming from any other ROM (even LineageOS 15.0 or 15.1) wiping /data is strongly recommended
- Flash the latest build and GApps.
- If you want root, flash it afterwards. If you plan to use Magisk, let the first boot happen and flash it later!
- Reboot and enjoy
- Grab a logcat right after the problem has occurred (please include at least a few pages of the log, not just the last few lines, unless you know what you're doing).
- If it is a random reboot, grab /proc/last_kmsg (do not bother getting a logcat unless you can get it just before the reboot, a logcat after a reboot is useless).
- If the problem disappears after running "setenforce 0" from a root shell, grab /data/misc/audit/audit.log (only applies to SELinux enforcing builds).
This is a very important note: I am NOT the original developer of the device trees I'm using. Despite I do my best to fix bugs, improve security, stabilty and the performance of the ROM, it's not thanks to me that this is up and running now.
Please, be sure to thank and donate to the developers behind the device trees.
Huge thanks and credits to the NastyAndroidDevs team (https://github.com/NastyAndroidDevs).
- @amartinz: https://github.com/amartinz
- @codeworkx: https://github.com/codeworkx
- @jrizzoli: https://github.com/jrizzoli
- @jumoog: https://github.com/jumoog
- Device Trees (Reference): LineageOS
- Kernel Tree (Reference): LineageOS
- Manifest (Reference): NastyAndroidDevs