xmikos / SnooperStopper

Android device ecryption password manager and failed unlock attempts monitor
GNU General Public License v3.0
48 stars 7 forks source link

"cannot get superuser access,exiting" #2

Closed raubwaldy closed 8 years ago

raubwaldy commented 9 years ago

I use Cyanogenmod Version 12-20150830-NIGHTLY-tsubasa on a Xperia V. (Android 5.0.2). On CM root -access is there by default.

But whenever I hit the button "change encryption password" I get the error: "cannot get superuser access,exiting"

xmikos commented 9 years ago

I am not sure if this is your problem (right now I don't have device with CM 12 to test it), but generally on Android 5 you need to install sepolicy-inject tool because of more strict SELinux policy (you can build it by yourself with Android NDK or download prebuild binaries from GitHub or XDA-Developers.com). Let me know if it helped...

raubwaldy commented 9 years ago

I'm a User and got almost no Idea how thinks work on a technical level. I'm not able to build anything by my self. I don't know how to install the binaries. - Is there any .apk file i could download from F-droid or any other safe source?

xmikos commented 9 years ago

You can just copy sepolicy-inject executable from right folder in the archive (depends on your device architecture, most probably armeabi-v7a or if you have really old device then armeabi) to /system/xbin folder on your device. You need root for this and remount your /system partition RW (read-write) before copying.

If you have USB debugging enabled on your device, just connect it to your computer and issue these commands:

adb push /path/to/sepolicy-inject /sdcard/sepolicy-inject
adb shell

You will enter into shell on your device, while you are there issue these commands:

su
mount -o remount,rw /system
cp /sdcard/sepolicy-inject /system/xbin/sepolicy-inject
chmod 755 /system/xbin/sepolicy-inject
sync
mount -o remount,ro /system

And you are done! SnooperStopper now should work.

I will include sepolicy-inject binary into SnooperStopper in the future, so you will not have to do this, but it will take some time...

xmikos commented 9 years ago

If you are going to do this, please let me know if it worked for you. I would like to know if it is really this issue (missing sepolicy-inject) or if there is some other problem on CM 12...

raubwaldy commented 9 years ago

Thanks for your replay, but to be honest I feel uncomfortable to copy any files in to my system. Its my working system and I would rather prefer to wait for a working release.

xmikos commented 9 years ago

I have published new version 1.1 which includes sepolicy-inject. Could you try it?

raubwaldy commented 9 years ago

Now I can open the "change encryption password" section. Unfortunately I have a pattern instead of a password. It looks like that the app does not support paterns for the "current password"

xmikos commented 9 years ago

You can translate pattern to number. Enter the dots as a sequence of numbers, where 1 is top left and 9 is bottom right. Please try it and let me know if it worked. I want to add pattern input method to SnooperStopper in the future, but it will not be soon...

Btw. CM 12 doesn't have system UI for changing encryption password anymore? It has been included in CM 11. That's a shame :-(

jficz commented 9 years ago

I believe this is caused by SnooperStopper not declaring permission

android.permission.ACCESS_SUPERUSER

as per CM's SuperUser framework: https://plus.google.com/103583939320326217147/posts/T9xnMJEnzf1

xmikos commented 9 years ago

@cptMikky According to http://su.chainfire.eu/#updates-permission ACCESS_SUPERUSER permission is deprecated and completely ignored in Android >= 5.0. SuperSU is closed source (and I don't like it for this reason), but it is still most widespread su framework on Android. Are you sure that su in CM is now enforcing it?

jficz commented 9 years ago

CM uses it's own open source SuperUser framework, not chainfire's SuperSU. I didn't notice the deprecation for Lollipop and I have yet to find out what changes made this happen. A quick search shows deprecation only in SuperSU, not in SuperUser (but I will look into this further).

Nevertheless, at least in CM11 enforcement is on by default but can still be turned off. I had the exact same problem and I can confirm that disabling the option in SuperUser settings root rights are not revoked instantly but instead a SuperUser dialog is presented with red warning that SnooperStopper does not declare the permission.

xmikos commented 9 years ago

@cptMikky Can you please test it on CM12?

jficz commented 9 years ago

I'm afraid I can't - don't have a CM12-compatible device :(

Findus23 commented 9 years ago

I am using cm12.1 on an oneplus one and the app is working with and without superSU. I have not tested the changing of the password, but the phone does reboot after wrong attempts. image

Szalacinski commented 8 years ago

I can confirm that this is still an issue on CyanogenMod 13.0-20160110-NIGHTLY-shamu (Nexus 6) with version 1.2 of SnooperStopper from the F-Droid repo. It was previously working with CM 12.1 nightlies for my phone. When I upgraded from the 12.1 nightly to the 13.0 nightly, my phone was set to require the encryption password to boot and the pattern to unlock. After the upgrade, my phone needed the password to boot, but had no security on the lockscreen. When I run the application, it asks for superuser permissions, which I grant it, and tell it to remember my choice. When I hit "Change encryption password", it tells me that it can't get superuser access, and aborts the operation.

xmikos commented 8 years ago

New version 1.3 supports CyanogenMod 13 (I have tested it on Nexus 5). Sorry that it took that long...