I have no responsibility whatsoever if this guideline causes any harm to your device. The intention of these posts are solely as personal notes for myself. Follow them at your own risk.
Through these steps I will unlock the phone’s bootloader, erasing all data. This includes the DRM keys stored in the Trim Area (TA) partition. I’ll attempt backing them up but, as of today, there is no way of restoring them to the previous state nor knowing if the actual backup is usable at all.
Without these DRM keys, several audio and video proprietary functionality provided by Sony won’t be available including some camera post-processing features, color gamut profiles, white balance, noise reduction, X-Reality Video Enhancement, DSEE HX, ClearAudio+, and Widevine L1 support for HD Netflix.
Previously, we downgraded Sony’s Stock firmware, backed up the Trim Area, installed LineageOS, and, finally, bring back Sony’s stock camera app.
The installation had some bumps, so here a list of the things I could comment about …
I wanted to install the TWRP recovery tool just because I have experience with it and like it better. I did and used it successfully in the first installation of the LineageOS that I did. However, the LineageOS installation also installed the Lineage Recovery so I lost TWRP and, funnily enough, the steps I followed to install TWRP won’t work any more. Hence, I’m stack with the Lineage Recovery and that’s why I explain how to directly install Lineage Recovery in the previous post.
For the curious, these are the steps I followed.
First, we need to download the Unofficial TWRP recovery and extract it in a folder. After this I rebooted the device in fastboot mode via software. This is important. Don’t do it using the hard keys.
Once in fastboot mode:
root$ fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img [...] root$ fastboot boot twrp-apollo.img
This will boot temporarily into TWRP. Now, we need to do the actual flash of TWRP. First, we need to copy the image:
root$ adb push twrp-apollo.img /tmp
And, from TWRP: Advanced menu -> Install recovery ramdisk -> Choose /tmp/twrp-apollo.img. After finishing installing TWRP, we can reboot into Recovery using the newly installed TWRP.
From there, you can also wipe the system and data and install LineageOS, Open GApps and Magisk. Interestingly, TWRP provides the possibility of pushing these files and installing without using
adb sideload. This is interesting because it will make also easier to install a customized Open GApps package using the gapps-config file.
Notice that, more often than not, when booting into TWRP recovery the touchscreen wouldn’t work. This is a random behavior and rebooting again into Recovery may fix it in the next try.
Installing the Android System Webview from the Open GApps
As mentioned, I wanted to customize Open GApps to install the Android System Webview.
However, choosing this will only install a Google WebView Stub. What this means is that you won’t really have a WebView and, hence, when booting in the system, anything which makes use of a WebView will just crash (including registering into Google for using Google Play).
In other words, you need to install the real package but you won’t have an easy way of doing that. You will have to manually download the real APK from some 3rd party site and install it, for example, with
In the end I just reinstalled without it after reading that the WebView used by LineageOS is based in Chromium. So far so good.
Migration from my older phone
In order to move all my data from my Xiaomi Redmi 2 running LineageOS 14.1 I used the OAndBackupX application. It needs root rights but, fortunately, I had them in both systems and devices.
- Make sure of using the exact same version of OAndBackupX in both devices.
- The app suggests to use encryption when creating the backups. I didn’t use it since it was doing things more complicated.
- I only did back ups of the user applications. First I also did back ups of the special cases (user accounts, for example) and after restoring, that caused me a headache with NextCloud and DavX⁵. Of course, jumping from 14.1 to 17.1 could cause these kind of troubles.
I initially used a SD Card to move the back ups. I wouldn’t recommend it now. If you have limited memory just create the back ups in steps and move them in batches using adb. With both devices plugged with USB cables and in developer mode:
root$ adb devices List of devices attached origin device destination device root$ adb -s origin root restarting adbd as root root$ adb -s destination root restarting adbd as root root$ # Create some backups in the origin device root$ adb -s origin pull /storage/emulated/0/OABX . [...] root$ adb -s destination push OABX/* /storage/emulated/0/OABX/ [...] root$ # Restore the backups in the destination device root$ adb -s origin shell origin:/ $ rm -rf /storage/emulated/0/OABX/* origin:/ $ exit root$ adb -s destination shell destination:/ $ rm -rf /storage/emulated/0/OABX/* destination:/ $ exit root$ # Create some more backups in the origin device and repeat the process
Of course, no need to delete the back ups if you don’t need to.