[Xposed General] BBRecon:
Samsung Xposed Safe Mode script v1.0

What does it do?

This is an init.d script which emulates the xposed safe mode where you can press any button during boot, get a vibrate (to know it detected you), and it will disable all your xposed modules. To be used in case of bootloops because of incompatible modules.

This only disables all modules so that you can boot. It does NOT actually uninstall or disable xposed itself.

Why would I need this?

I talked with the developer of xposed for Samsung, wanam, and apparently, xposed safe mode was disabled for Samsung devices due to a Knox issue (if you disabled xposed, Knox will hate you and refuse to boot the phone). This is good, but if you have a bootloop, AND you're on a bootloader locked device, you have NO CHOICE but to wipe your data. Ouch!! That's a heavy penalty for accidentally installing one malfunctioning module!

Or maybe your phone still is bootloader unlocked, but you're running Samsung xposed and safemode is still disabled for you. Then you'd rather have xposed safemode back just for the ease of not having to go through recovery to fix things.

How does it work?

1. Press any of three buttons during boot (volume keys, or home button). You have 10 seconds from bootup to choose to do this.

2. System will give you 2 short vibrates to tell you it detected it.

3. Press any button 4 more times, each time will give you another short vibration.

4. One long vibration will signal to you that xposed has been disabled.

5. The script will automatically reboot your device in 6 seconds. This is because we can't disable xposed, so xposed will STILL load modules on this bootup, which means you'll still see the bootloop momentarily until you reboot.

Great! How do I install it?

This is an init.d script, so you need init.d support in your phone. Obviously, if you have a bootlocked device, you probably don't have init.d support. This is not a guide on how to get init.d support, but I'll offer you a few tips you can use to search yourself.

- install-recovery.sh, since it's called by init.rc during boot, can be hijacked in order to create an init.d system.

- If install-recovery didn't work, SuperSU also includes an su.d directory which is executed at a similar time. Just throw a script in there, or throw a script in there which enables use of the init.d folder (run-parts /system/etc/init.d).

Anyways, here's how you install it:

- Place the script you downloaded into

/system/etc/init.d

OR

/system/su.d

Give the script proper permissions for the folder it's in

- For su.d folder, it is root:root 0700 (rwx------)

- For init.d folder, it could be a variety of permissions. My init.d folder runs as a result of su.d, so I gave it same permissions as su.d. If yours doesn't, then you might want to try root:root 0755 (rwxr-xr-x)

- The important point here is to make sure it's at least root user and group, readable and executable, rwxr-xr-x

Will it work on my device?

It should work on any device really, if you follow the simple instructions. But I've only tested it on the ATT S4 (Lollipop 5.0.1), so I can't guarantee it will work on your device. Test it out and see if it works for you! It probably will!

You saved me!

I'm glad to hear that! :) I love to hear and see a thanks, so make sure to click the thanks button and maybe write a post too! ;)

Bugs and problems

You know how to report bugs and issues. State all relevant information related to the problem; device, problem in clear detail, with reproducible steps, and anything else you might need.

Related custom xposed builds

Here are a list of Samsung custom xposed builds I know this "safe mode problem" to be present in. (Don't forget, this problem is likely to be in any and all Samsung xposed custom builds due to the nature of the Knox problem).

[UNOFFICIAL] Xposed for Samsung Lollipop by arter97

[UNOFFICIAL][5.0][v87.1][03 Dec] Xposed for Samsung Lollipop 5.0.x

[UNOFFICIAL][5.1/6][v87.1][28 Nov]Xposed for Samsung Lollipop/Marshmallow

Disclaimer: As usual, while I've made every attempt to make it perfect, there are no guarantee it will work for you. By using this, you agree not to hold me accountable in case something bad happens to you (or it didn't save your device)!

Do your own testing to make sure it works before you actually need to use it in an emergency!