A KernelSU / Magisk module that prevents Google Play System Update (GPSU) APEX modules from staging and causing bootloops on legacy Exynos devices.
Google's Play System Updates deliver APEX module updates silently through Google Play Services. On devices running custom ROMs beyond their official support (e.g., Galaxy S9/S9+/Note9 on One UI 7), these APEX updates can be incompatible with the device's vendor blobs and kernel, causing bootloops — especially if interrupted by a power loss.
Two layers of protection:
post-fs-data.sh— Runs early on every boot, beforeapexdactivates. Wipes/data/apex/sessions/*so even if an update gets staged, it never activates.service.sh— Runs after boot complete. Disablescom.google.android.modulemetadataso Google Play stops delivering APEX updates entirely.
Tested on:
- Samsung Galaxy S9+ (G965F) — Exynos 9810, Duhan ROM One UI 7, KSU Next
Should work on any rooted Android device experiencing GPSU-related bootloops.
- Download the latest release zip from Releases
- Open KernelSU Manager or Magisk Manager
- Install the module zip
- Reboot
If you're already bootlooping:
- Boot into TWRP recovery
- Connect via USB
- Run:
adb shell rm -rf /data/apex adb shell mkdir -p /data/adb/modules/disable-gpsu adb push module.prop /data/adb/modules/disable-gpsu/ adb push post-fs-data.sh /data/adb/modules/disable-gpsu/ adb push service.sh /data/adb/modules/disable-gpsu/ adb shell chmod 755 /data/adb/modules/disable-gpsu/post-fs-data.sh adb shell chmod 755 /data/adb/modules/disable-gpsu/service.sh - Reboot:
adb reboot
If you just need to boot once without installing the module:
adb shell rm -rf /data/apex
adb reboot
This clears the corrupted APEX cache. The system will regenerate it from the system partition. Note: without the module, GPSU will re-stage the bad update eventually.
Remove the module from KernelSU/Magisk Manager, or:
adb shell rm -rf /data/adb/modules/disable-gpsu
adb reboot
This re-enables GPSU APEX updates.
MIT