The problem
After Google Play Services auto-updated, the phone would boot, briefly show the home screen, then immediately reboot in a loop. Even Safe Mode rebooted, which ruled out a simple third-party app conflict — Play Services itself (or its cached state) was the culprit.
Why the usual fixes didn't work
Normally you'd go to Settings > Apps > Google Play Services > Uninstall updates, but you can't reach Settings if the phone reboots the moment it hits the home screen. ADB shell also wasn't an option here since pm disable-user requires root, and a stock (non-rooted) shell returns a SecurityException when you try to touch a protected system package like com.google.android.gms.
Getting fastboot to actually see the device
Before any of this worked, Windows needed to actually recognize the phone in bootloader mode. Running fastboot devices returned nothing and fastboot boot just hung on "waiting for any device" until the HTC_Mobile_Driver_v4.17.0.001 was installed. Once that driver was in place, Device Manager showed the phone properly and fastboot commands started working.
The fix: TWRP, booted temporarily (no flash needed)
- Downloaded a TWRP image matching my M8 variant.
- Installed HTC_Mobile_Driver_v4.17.0.001 so Windows would recognize the phone in fastboot mode.
- Booted the phone into the bootloader (Power + Volume Down).
- Booted TWRP without flashing it, keeping the stock recovery untouched:
Code:fastboot boot twrp-3.7.0_9-0-m8.img - Inside TWRP, opened the built-in File Manager and navigated to:
Code:/data/data/com.google.android.gms - Renamed that folder (e.g. to com.google.android.gms.bak) instead of deleting it, just in case.
- Rebooted to System.
Result
The reboot loop was gone immediately. Interestingly, the Play Store still worked fine afterward and even kicked off some pending app updates on its own — so nothing else needed to be reinstalled or reconfigured.
Why this works
Renaming the data folder wipes out whatever corrupted local state was crashing the app on load, without disabling or uninstalling Play Services as a system component. Android just rebuilds a fresh data directory for it on next launch, similar to what "Clear Data" would do in Settings — you're just doing it manually from recovery since the OS itself is unreachable.
Why fastboot boot instead of flashing TWRP
fastboot boot loads TWRP into RAM for a single session only — your actual recovery partition (stock or otherwise) is never overwritten. Handy if you don't have a stock recovery image handy to restore later, since you never touch the real one in the first place.
TL;DR
- Fastboot not detecting the device on Windows → install HTC_Mobile_Driver_v4.17.0.001
- Can't reach Settings due to reboot loop → boot TWRP temporarily via fastboot boot
- adb shell pm disable-user needs root and will fail on a stock non-rooted shell
- Instead, use TWRP's own File Manager to rename /data/data/com.google.android.gms
- Reboot to System — no data loss, no permanent recovery change, no factory reset needed
Attachments
Last edited: