测试手机是否植根

时间:2012-09-16 20:50:32

标签: android root

  

可能重复:
  Determine if running on a rooted device

我想知道是否手机是否已植根,而无需请求root权限。我怎么能这样做?

  1. 测试是否File.Exists("/system/bin/su")?不确定,我认为我不能因为权限而
  2. 测试是否安装了超级用户应用程序?嗯,我想我需要特殊许可才能使用PackageManager 超级用户不是onlu su经理(例如我知道SuperSU)
  3. 尝试运行su不是一个选项,因为它会触发su提示符,这是我在非root应用程序中不需要的内容
  4. 有什么想法吗?我的目的是获取有关有多少设备被植根的匿名统计信息,显然是经用户同意:)

2 个答案:

答案 0 :(得分:0)

选项1.可能,它不需要任何特殊许可。

选项2.有根电话可能没有任何超级用户管理器应用程序。

选项3.如你所说,这不是一个好的检测方法。

此外,还有一个选项是检查ro.build.tag(使用getprop | grep ro.buil.tagandroid.os.Build.TAG),如果它包含testkeys字符串。

编辑:对于选项1,我建议你通过setuid / setgid权限找到(即find / -perm -2000 -o -perm -4000,并检查su是否在列表中)

答案 1 :(得分:-3)

你无法可靠地做到这一点,因为手机“扎根”的含义并不总是一样的。你要做的所有提议都是测试一些流行的与root相关的工具。但是,无法检测手机是否以不使用这些工具的方式植入。