Tested with Lollipop and Marshmallow. Some file path had been changed since ICS/KK 1.
When you activate an Xposed module and produces a bootloop, there are three options to recover it:
-
Restore a nandroid
-
Disable Xposed
-
Disable only problematic module
-
Disable Xposed
Xposed framework has a self-feature to auto-disable it. It can be reached from command prompt (example: adb).
Just create empty file called disabled by typing:
touch /data/data/de.robv.android.xposed.installer/conf/disabled
Simple "install zip from recovery" is also possible 2 -- thaks to AK1149.
- Disable only problematic module
You can also remove single module from recovery.
Active modules can be found at:
/data/data/de.robv.android.xposed.installer/conf/modules.list
Update: new file to do this trick at
/data/data/de.robv.android.xposed.installer/conf/enabled_modules.xml
. Officially supported, no more UI drawbacks.
From adb you can:
adb pull /data/data/de.robv.android.xposed.installer/conf/modules.list .
nano modules.list
# Delete problematic module's line
adb push modules.list /data/data/de.robv.android.xposed.installer/conf/modules.list
# Check
adb shell
cat /data/data/de.robv.android.xposed.installer/conf/modules.list
- If you do it from recovery, notice that data partition should be mounted.
- Regret edit files from Windows because it will include \r special character
- Git Bash (git-scm) do NOT work with adb because it modify paths.
- By editing modules.list, module is deactivate but retain Xposed Installer "tic", so you must deactivate and reactivate it again to synchronize data.
You can safely uninstall a module without root, and without any special recovery image, simply with ADB in user mode:
In my case I was trying to uninstall GravityBox because it boot-looped after I activated image-blur for lock screen (wtf...) :
Anyway, I think your fail-safe mechanism would be much much more useful if you looked for a file called something like "xposed.disabled" in the root of all partitions, so we don't need root privileges to be able to create it in case of an emergency. I lost many hours because of this...