我们可以下载一个R.E管理器看看能否卸载掉一些系统自带的一些自己用不到的应用等。
我们可以将手机连接电脑,然后打开电脑中的一些手机辅助工具,如卓大师、豌豆荚、91手机助手、刷机精灵等任何一款电脑终端手机辅助工具即可直观的看到手机是否Root了,如下图我们将手机通过USB数据线后连接电脑,然后打开电脑上的卓大师软件,之后安卓软件即可成功被卓大师软件识别,在显示信息中即可看到手机有没Root了。
如何判定手机是否获取到完整Root 权限
1.su文件判定
市面上绝大部分针对Root权限的获取都是根据开源的su.c进行的修改,甚至某些软件只是进行了界面重构。所以判定智能手机是否Root,可以先通过该款手机中是否存在su文件,进行第一步筛选。
a:判断su文件是否存在
su文件一般存在于智能手机系统目录即system目录下,只是由于使用不同的Root工具,造成su文件存放的子文件夹不同。大部分情况下,su文件都存在于bin目录下;小部分情况下,存在xbin,sbin目录下;其他特殊情况是,不存在system目录下,而直接存在"/sbin/","/vendor/bin/"目录下。
b:判定su是否具有执行权限
如果通过以上步骤判定到su文件已经存在,开启Process进程,执行ls -l权限,通过Process.getInputStream,输出Process中的结果,这个结果就是关于su文件的所有权限。在手机没有Root时是-rw-rw-rw- ,Root之后将会开放给用户可执行的权限,当第四个位置的字符是x或者s时,代表设备具有su文件的执行权限。
通过以上步骤,便完成了Root权限的初步判定。但这只是确认了智能手机拥有最高权限的可能性,需要通过第二步完成权限判定的优化。
2.Root权限优化判定
a:权限修改
权限优化判定是在第一步判定了手机拥有su文件之后,对手机做进一步检测。同样开启Process进程,执行权限修改指令 chmod 777 data,执行列表展示指令ls -l data。
chmod 指令是一个权限修改指令,这个指令是将目标文件修改777,这代表该目录对所有用户开放。ls -l data指令将会将data目录下面所有的文件或者文件夹展示出来,同时展示这些目标的权限。
b:结果获取
通过执行指令process.waitFor(),获取到执行以上指令后的结果值,记为result。这个值将会是判定智能手机是否获取到Root权限的标志。同时,读取结果输入流process.getInputStream(),结果记为successResult,以及读取错误输出流process.getErrorStream(),结果记为errorResult。并将result、successResultc、errorResult返回给数据处理界面。
c:逻辑处理
判断result结果,当是0时,代表该智能设备具备最高权限,这时需要进一步判定是否开放了权限。
判断errorMessage是否为空,是空时,代表已经授权,对第三方开放了最高权限;当errorMessage不为空时,代表虽然获取到了最高权限,但是却并没有授权给该应用。这时需要提示用户手动同意,允许目标应用使用最高权限。
当result结果不是0的时候,代表该智能设备没有获取到Root权限,或者没有对该应用授权。
注意:当result结果不是0时,它的返回值无法精确判定,是因为经过对多个Root工具的测试,当没有授权或者没有Root时各个工具返回的值都是不一样的。就现在的结果而言,kingRoot在没有授权给应用时,返回值是固定的;其他工具并没有完全确认,因此要进一步优化的话,可以从这一方面继续优化。