如果测试手机是植根[复制](Testing if a phone is rooted [duplic

2019-09-22 12:01发布

可能重复:
确定是否有根设备上运行

我想知道一个电话只是是否被根深蒂固,不要求root权限。 我怎样才能做到这一点?

  1. 测试如果File.Exists("/system/bin/su") 不知道,我想我不能由于权限
  2. 如果安装了超级用户的应用程序测试? 嗯,我想我需要使用特殊权限PackageManager 超级用户是不是onlu苏经理(我知道SuperSU为例)
  3. 试图运行su是不是一种选择,因为它触发苏提示,这是我不希望在非root程序

任何想法? 我的目的是要获得多少设备是植根匿名的统计数据,显然与用户的同意:)

Answer 1:

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

选项2根植手机可能不附带任何超级用户管理器应用程序。

选项3正如你所说,这是不检测的好办法。

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

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



Answer 2:

你不能可靠地做到这一点,因为它意味着对于要“扎根”电话并不总是相同的。 什么所有的建议,你会得到做的是测试一些流行的根源相关的工具。 但它无法检测,如果手机一直扎根在不使用这些工具的方法。



文章来源: Testing if a phone is rooted [duplicate]
标签: android root