How to fix Secure Settings on Android devices with SuperSU systemless root

Edit at 2017-01-21: see the comments about better ways, especially comment 6.

Secure Settings (Google Play) is a really helpful app to help Tasker (Google Play) do things automatically on your Android device.

However, it has not been updated for quite a while (January 2015 at the time of this writing) and since then SuperSU has changed its way of installing the su binary to your device, by preferring not to install this on the system partition.

As some older apps hardcode the complete path of this binary in their checks, and Secure Settings is one of these, it thinks it can not get root access.

On my quest of a fix for this problem, I found this post on XDA where a comment on Reddit was referenced, stating the following fix, running the commands from a command line (terminal) on your machine, having adb installed:


adb shell
su
mount -o remount,rw /system
touch /sbin/su /system/bin/su /system/xbin/su
mount -o remount,ro /system
exit
reboot

source

This creates some empty files in locations that older (incorrect) apps check for the su binary, so Secure Settings (and likely other applications) are made to believe they can get root (which they actually can, as you can not make those files without being root through su anyway).

You can also do this on your device by just omitting the first line and starting with su in a Terminal app (or for example JuiceSSH in a local session).

I hope this helps other people looking for a solution too.

Comments

2 Posted at by Matt

Thank you, very helpful. It worked for me on my Nexus 6P with Android 6.0.1, with one caveat.

"/sbin" is mounted from the rootfs, "/" and with "/system" as a separate mount point. Simply also mounting "/" re-writable as well solves the problem:


adb shell
su
mount -o remount,rw /system
mount -o remount,rw /
touch /sbin/su /system/bin/su /system/xbin/su
mount -o remount,ro /system
mount -o remount,ro /
exit
reboot


Note this will need to be done after every system update (which is pretty frequent with Nexus devices).

Thanks again!

3 Posted at by Gerd

How can I undo this?

If I login as root from adb again and want to rm the 3 files, I get an error because the files are in use...?

4 Posted at by Jonathan Johnson

This fix worked for me, but I had to add a couple of steps:

I first attempted this fix using both ADB and Terminal Emulator on my Nexus 5X. Both times, when I attempted to mount /system, I got an error message stating "Device or resource busy."

What worked: Booting into TWRP Recovery, mounting /system there, and then entering the Terminal commands from my computer.

5 Posted at by Bill Jenkins

I tried systemless root on my Moto g 4 plus to allow for easier OTA updates. Will this method alter the system partition in a way that undermines that?

6 Posted at by Michiel

Hey, thanks for your patience, I was planning on answering for quite some time, but real life intervened.

Gerd: easiest way to undo this is to flash factory image from Google/your vendor. Be sure not to flash userdata(.img) as you will then loose your data and photos and such.

Bill Jenkins: yes, this method will change system.

A better way to fix this nowadays is to do this:

"echo BINDSYSTEMXBIN=false>>/data/.supersu" in recovery root shell before a SuperSU ZIP flash. This puts SuperSU in compatibility mode for old-style apps like Secure Settings. You only need to do this once. After updates, it retains this mode.

I also recently started using AutoTools, which is a Tasker plugin which does (almost?) everything that Secure Settings does and more. It is paid, but it's worth a look. https://play.google.com/store/apps/details?id=com.joaomgcd.autotools&hl=en

8 Posted at by Conny

Could anybody help me with that.
How does it work?
Do I have to connect my phone to the PC to make the changes?

  • Michiel Scholten
  • Work
  • 🕔

Add comment

You need to provide a valid e-mail address to comment here, but it will not be displayed on this website. HTML will be escaped, so you won't be able to add links. Post the URL instead. Line breaks will be converted to breaks.

Name

E-mail address


Mail me when someone else comments too
Your address won't be shown in your comment

WWW


Leave empty if you don't want to provide a url

Are you a spammer (yes/no)?

Be sure to save your comment after you've previewed it!