admin管理员组文章数量:1542771
什么是Root权限?
当你买了一台Android 手机回来的时候,并不意味着你拥有了对这台手机的绝对支配权,因为当你想要删除系统自带的软件,却无能为力。原因很简单:手机厂商处于自身利益,绑定了一些软件,不允许我们删除;有一些手机依赖的软件,不能随意删除。
Android手机只有两种账户类型:一种是普通账户,另一个是超级管理员。手机默认开机进入的就是普通用户对应的界面,如果要进入超级管理员页面,则需要对手机进行root权限。root 其实就是Linux系统下的超级管理员的账户名称,我们可以把它理解成是Windows系统下的administrator,即:root权限 = root的权限 = 管理员权限。
如何判断手机是否有root权限?
当手头上有一台Android手机,如何知道它有没有被root过呢?除了用XXX助手/工具来判断外,也可以通过adb 命令判断
命令行输入 adb shell,#代表已经root过,$代表没有root权限。
注意:能执行adb shell,表示进入到手机系统,但不代表有root权限。
如何root?
以下是切换到手机的root账户的示例:
可以看到root失败,解决方案:BD教程root 手机系统
示例2:
有一些机器root的方法是:su root
su是linux下的一个切换账户命令,普通账户要密码参数,root是最高级别的管理员,不需要密码。
代码判断是否有root权限
public class RootUtil {
public static boolean isDeviceRooted() {
return checkRootMethod1() || checkRootMethod2() || checkRootMethod3();
}
private static boolean checkRootMethod1() {
String buildTags = android.os.Build.TAGS;
return buildTags != null && buildTags.contains("test-keys");
}
private static boolean checkRootMethod2() {
String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
"/system/bin/failsafe/su", "/data/local/su", "/su/bin/su"};
for (String path : paths) {
if (new File(path).exists()) return true;
}
return false;
}
private static boolean checkRootMethod3() {
Process process = null;
try {
process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" });
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
if (in.readLine() != null) return true;
return false;
} catch (Throwable t) {
return false;
} finally {
if (process != null) process.destroy();
}
}
}
版权声明:本文标题:Android之判断手机是否有root权限 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727082173a1096970.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论