可能重复:
Determine if running on a rooted device我的Android应用程序是否在根设备上运行?
我创建一个Android应用程序,我想知道如果我的应用程序是一个根深蒂固的设备上运行。
我在Google上做了一些挖掘工作,但却找不到一个可靠的解决方案。
以前在stackoverflow上有类似的问题,但没有任何解决方案。 这些链接中提供的解决方案不适用于我的设备。 即使Runtime.exec(“su”)也不起作用。
Determining if an Android device is rooted programatically?
Determine if running on a rooted device
有没有办法找出设备植根?如果我们无法做到这一点,Google如何发现设备是否已经植根?当我执行Runtime.exec(“su”)时,我收到异常10-15 18:36:36.445:W/System.err(668):java.io.IOException:运行exec()的错误。命令:[苏]工作目录:空环境:空
public static boolean isDeviceRooted_BySu() {
try {
Log.d("BySu", "BySu");
Process p = Runtime.getRuntime().exec("su");
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
我从亚行外壳检查,它给了我一个“#”提示符,所以我可以肯定的是,设备至少壳牌扎根。 鉴于它是以外壳为根源的,那么Determine if running on a rooted device上提供的解决方案应该至少可以工作,但这也不起作用。
你能提供一些关于'Runtime.exec(“su”)'不起作用的相关日志输出吗?任何例外? – dumbfingers
有一些谷歌播放应用程序可以帮助您确定您的手机是否已经植入。让我们来看看这里:https://play.google.com/store/search?q=root+checker&c=apps –
@ ss1271:我已更新该帖子。我得到一个异常10-15 18:36:36.445:W/System.err(668):java.io.IOException:运行exec()的错误。命令:[su]工作目录:null环境:null – user1746693