To detect rooting status of device, an app issues su
command. If exit status is 0
, it means device is rooted.. otherwise, not.
To prevent this, you can simply Deny
the root access using SuperUser's pop-up (Provided its allowed from SuperUser settings, a pop-up appears when an app issues su
command). After this, the app will get non-zero
exit status & it can't determine rooting status.
Update:
Some apps can use other ways to check root status (like checking the su
binary file existence). I'd like to admit that none are perfect methods without false-positive result, but sometimes they are successful with luck.
The best universal method to prevent detection: Restrict the permission of app's daemon. I can't suggest exact permission limitations because I don't know functions of the app. It can mess up with app's functionalities.
In the last, I'd like to say: Technically, there's no way to prevent detection by 100% success rate. In case of permission limitations, the app can still suspect that something is wrong.
/system/xbin/su
if it exists - that is actually a bit "quieter" then attempting to executesu
, sneaky I know :) – t0mm13b Sep 19 '12 at 20:09su
text file at that location by temporary root, the app will tell false result. – iOS Sep 20 '12 at 05:19Always Allow
option of SuperUser isn't active. You can prevent detection byAlways Deny
orDeny All
too (option texts may vary depending on version). – iOS Sep 20 '12 at 11:58su
binary, as t0mm13b already suggested. If I cannot find any, there's not even the reason to invokesu
: As it obviously is not in the$PATH
, the call has to fail. Unless someone set up something more tricky (e.g. using an alias, but that my check could cover as well). I doubt any serious developer would rely on being allowed root access by default on a rooted device. – Izzy Sep 21 '12 at 06:47