trying lineageOS in 2021
I’ve been looking forward to try LineageOS for a long time, but my device was not supported until recently, all thanks to Linux4 from XDA, so I decided to give it a try and write here my experience after a couple of months.
My First Time (Bricking a Phone)#
I started tinkering with Android a few years back because my phone stopped
getting updates and I wanted to make some changes, so I needed root privileges.
The very first thing I did was bricking my device installing SuperSU.
I was stuck in a bootloop and I couldn’t boot into recovery, I was terrified,
but after 2 days of despair I managed to restore the stock ROM in download mode
using a tool provided by the phone manufacturer.
After the brick incident
I still wanted to try some custom ROMs. It was 2015 and there were some good
ROMs around (LineageOS, Paranoid Android, Resurrection Remix, etc.), but
everyone I tried had problems and performed sensibly slower than the stock one,
so I just went back thanks to a Nandroid
backup
I made.
I was not satisfied at all, so I tried to tweak my phone with another root
method: Magisk. This was the
breakthrough, and I got to root my phone with little effort, simply flashing a
zip file from my recovery. Magisk installed without any issue and I loved the
power it gave me over my phone: I could browse the whole filesystem, uninstall
applications I didn’t need, install modules to improve battery life, install
applications to automate various tasks and so on. Finally I got what I wanted,
at least until my battery started to last less than an hour of screen time.
It’s Time to Get a New Phone#
After 4 years of service, I retired my old device and bought a new one. The
difference in performance, features, build quality and components was
remarkable, so I didn’t feel like rooting it. But months passed, the stock ROM
started to feel cluttered and the invasion of privacy started to worry me. Oh,
yes, as you might have figured it’s a Samsung device (not that MIUI is any
better).
I wanted to flash LineageOS.
When I bricked my old phone I was an absolute beginner and I didn’t know
anything about Android. Don’t get me wrong, I’m still completely ignorant, but
using Linux as my main OS for the last few years helped me grasp the basic
concept of how Android works and gave me confidence in fixing things if anything
goes wrong.
The only problem was LineageOS support: my device was not officially
supported, and unofficial ROMs didn’t have encryption.
I promised myself I would have waited for my warranty to expire, and then I
would have flashed even an unofficial ROM. The moment arrived and fortunately
LineageOS released an official build for my device, developed by
Linux4.
Flashing LineageOS#
The first thing I did was researching any possible pro and con to this process: the biggest cons were the step back in camera quality and losing all the features provided by Samsung, but I was running away exactly from those so I had no regret (except for Samsung DeX which I never used but though it was cool). The pros were obvious:
- LineageOS is open source
- it’s customizable
- long-term updates
- bugs are fixed quickly
- no Samsung spyware
- completely de-googled by default
The decision had been made.
I went to LineageOS wiki and followed the instructions. The steps are more or less the same for every device:
- Unlock the bootloader
- Flash LineageOS custom recovery
- Install LineageOS from recovery
- Optionally install add-ons (e.g. Gapps)
Unlocking the bootloader really depends on the manufacturer, for my old device I had to get a developer key to unlock it, but for my new phone I could unlock it by myself. Be aware that unlocking the bootloader and rooting or flashing a new ROM on Samsung devices means that it will trip an e-fuse, preventing you from using Knox, a framework developed by Samsung to manage work devices. I never really used its features apart from the secure folder. Obviously tripping the e-fuse will also void your warranty.
For the flashing process you have to enable USB debugging and you have to use either heimdall for Samsung devices, an open source substitute to Odin (which is not officially released), or more commonly fastboot. Use the LineageOS recovery specified in the installation instruction, if you want to install an alternative custom recovery do so at your own risk. LineageOS recovery is designed to update together with the system and it’s very stable because it has only the necessary features, in contrast to TWRP which can cause unexpected behaviours.
The whole process is pretty straightforward, and following the instructions was easier than expected. From the recovery you sideload the main .zip package and you’re done.
Now I had to make a choice:
- give up Google Apps, with A LOT of features I use daily as Google Pay, casting to other devices, Android Auto, applications that require GMS to work, COVID-19 exposure notifications, etc.
- installing MicroG, an open-source implementation of Google libraries
- installing Gapps (MindTheGapps version).
About MicroG, I checked and I noticed it doesn’t support some of the features I use yet (Google Pay for example), and anyway it has to depend on Google to adapt to its API. I don’t think that this is a real solution, but more of a patch.
After giving it some thought, I think that I’m not ready yet to give up so many features. Sadly, I realized the main problem: you may install the most privacy respecting ROM, but if Google owns many of the services you use and there are no alternatives, your decision is more forced than you might think.
My goal is to balance privacy and convenience the best I can, so I will install many applications from F-Droid, while installing a minimal set of Gapps and being cautious with the permissions I grant.
Booting it for the fist time I noticed that Google Play detected my phone as
uncertified, so I was forced to root. I then flashed the Magisk zip from the
recovery and enabled MagiskHide for Google Play services (com.google.android.gms
,
com.google.android.gms.unstable
) and for apps that could detected my device
was rooted, as Google Pay, banking apps, etc. Flashing Magisk from recovery is a
deprecated method, but it works without issue for my device with this setup,
and it’s way easier to install if you’re updating your OS frequently, but be
sure to check the discussions about this topic for your case on XDA forums.
Anyway my device still wasn’t passing SafetyNet, in particular the ctsProfile check was
failing because Google didn’t accept the custom ROM fingerprint. I did some
research and installed a couple Magisk modules: Busybox for Android
NDK to get some command
line tools for root and MagiskHide Props
Config to set a certified
fingerprint. After that you just open a terminal emulator (I use Termux from
F-Droid), run su
to elevate privileges and props
to start MagiskHide
Props Config.
Now follow these steps:
- Select 1 - “Edit device fingerprint”
- Select f - “Pick a certified fingerprint”
- Pick a fingerprint from the list, every fingerprint is fine, but there could be problems if you’re running an Android version much newer than what is officially available for your device.
- reboot the device by typing
reboot
After that my device was certified and I could use Netflix, pay with GPay and open banking apps.
The next thing I had to fix was the camera. The default camera is awful, so I looked for a good GCam port. Here you can find all the mods, I liked particularly BSG’s mods because they had less bugs and worked well. The photos are really good now, but without the proprietary stock software the wide-angle camera has a lot of noise at the edges and the zoom camera isn’t working at all. Too bad, I wasn’t using them at all, but you have to take that into account if you’re willing to install a custom ROM.
I solved every problem I had on Lineage, but the warning signs shown during boot
were really annoying me:
YES I KNOW I’M NOT RUNNING SAMSUNG’S SHITTY SOFTWARE.
I found the solution on a XDA thread. To change those images I had to:
- Download the official firmware with Frija
- Extract the BL file
- Extract up_param.bin
- Modify the .jpg files, in particular booting_warning.jpg and svb_orange.jpg
- Put the new images in the up_param.bin archive and overwrite the old ones (the name is obviously important)
- Change archive type to tar (you can rename up_param.tar to whatever you want as long as it hasn’t spaces and ends with .tar)
- Flash the file with Odin, treating it as BL (I don’t know if it’s possible to do the same on heimdall)
The device rebooted with the new images.
Yes, this was a really minor problem, but it annoyed me a lot.
My Experience#
I’ve been using LineageOS for 3 months now and I’m really glad I moved away from
OneUI. I find the new OS much cleaner and the battery life even improved. The
stability of this ROM is amazing, I was surprised by how few bugs I
encountered, everything performed perfectly fine and I noticed just a couple
bugs which were quickly fixed. The changes for each device are visible in
https://download.lineageos.org/your-device/changes/ and they are included in
weekly builds.
The fingerprint scanner performs quite like on the stock ROM, maybe marginally
slower, the Bixby button can be remapped to perform certain actions, file-based
encryption is enabled and features like Wireless PowerShare and Hotspot are
working perfectly. I found the stock apps to be a bit feature poor, but you can
find good alternatives on F-Droid, like Simple Mobile
Tools. Personally I use Simple Calendar
and Simple Gallery and I’m happy with them, they have all the features I need.
My usage hasn’t changed much after the switch, which is a good thing,
but I surely noticed the improvement in privacy, battery and control over the
device.
I can’t tell if you should make the switch too, there are many things to take into account, for example you will give up some proprietary features, camera quality and your bootloader will be unlocked, allowing anyone with physical access to flash malware, but for me it was worth it.
Oh, and consider donating to these projects if they prove to be useful to you, they could really use some support.