My Nexus 5x phone died from the “bootloop” syndrome. I had unlocked bootloader on it and TWRP recovery image was installed, so I was trying hard to get at least some data off the phone. Most of the time it would not boot at all, but I managed to boot into TWRP recovery after leaving the phone in the freezer for a few hours.
Once in TWRP, I was able to pull some data using “adb pull”. This included a file that contains the SMS and MMS messages. On my Nexus 5x the path to that file was /data/user_de/0/com.android.providers.telephony/databases/mmssms.db. My plan was to restore that file onto my temporary phone running LineageOS (CyanogenMod 14). I was going to overwrite the file using “adb push” while booted into TWRP recovery.
I bought a couple of second-hand Moto X (XT1096) phones and discovered that I cannot sign into the Play Store using the stock firmware. Something must have become incompatible since the latest firmware was released, and I was left in a vicious circle when Google Play Store and services could not be updated because I am not signed in, and I could not add a Google account because Google Play services were crashing.
I figured that I would install Cyanogenmod 14 on the phones, which was pretty straight forward to do after unlocking the bootloader (and, from the first looks at it, seems to be pretty responsive on these older phones). However, CM comes rooted by default, and applications using SafetyNet check refuse to run. I don’t really need root on these phones, so here is a quick procedure I figured out to unroot CM to a condition that SafetyNet validation passes.