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.
- Install suitable CM image and Google Apps. I used the following files: cm-14.1-20161218-NIGHTLY-victara.zip and open_gapps-arm-7.1-nano-20161217.zip.
- Boot the phone and go through the initialization (add network and a Google account).
- Install SuperSu and SafetyNet tester apps from the Play Store.
- Go to the Android settings and enable Developer mode by tapping seven times on the build number in the About Phone screen.
- Go to Developer options in configuration, and set Root access to Apps only.
- Start the SuperSU app, choose Expert mode, and decline updating the SU binary. Go to Settings and tap on Full unroot. Once it’s done, uninstall the SuperSU app using the Play Store.
- Go to the Developer options again and change the Root access to “Disabled”.
- Restart the phone, open the SafetyNet application and run the test. It should now pass the test (present you with a green screen).
Note that there are some guides on the Internet about installing systemless root. I did not try to configure that, but it seems that it may be possible to have root and SafetyNet validation at the same time.