Android怎么判断当前应用是否有root权限?

发布网友 发布时间:2022-04-22 18:56

我来回答

1个回答

热心网友 时间:2023-08-23 06:10

需要使用代码来验证。看能否在data分区创建文件,如果能够在data分区创建文件,那么应用具有root权限。

1、判断代码

public static boolean upgradeRootPermission( ) {
Process process = null;
DataOutputStream os = null;
try {  

Log.i("roottest", "try it");
String cmd = "touch /data/roottest.txt";
process = Runtime.getRuntime().exec("su"); //切换到root帐号
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
}
return true;  
}

2、获取root权限:

public class MainActivity extends Activity {

/**
* 创建
*/
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 返回系统包名
String apkRoot = "chmod 777 " + getPackageCodePath();
RootCommand(apkRoot);

}

/**
* 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限)
*
* @param command
*            命令: String apkRoot="chmod 777 "+getPackageCodePath();
*            RootCommand(apkRoot);
* @return 应用程序是/否获取Root权限
*/
public static boolean RootCommand(String command) {

Process process = null;
DataOutputStream os = null;

try {

process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();

} catch (Exception e) {
Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());
return false;

} finally {

try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
}

Log.d("*** DEBUG ***", "Root SUC ");
return true;

}

}

3、root权限

Root是android系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权利,系统中的所有对象他都可以操作。

但是为了手机的安全性和稳定性,防止用户误操作导致系统崩溃,系统默认是没有开启root权限的,这就需要我们来进行获取。取得root就是取得android手机的最高控制权,很类似symbian上的xx(破解)。

4、root权限作用:

root的权限主要是因为我们很多东西是受*的,我们只能利用这些权限来做我们被*的去做的事情,比如Google禁止我们看到市场里很多免费或付费软件,我们可以用Marketenabler进去看。

很多朋友只能看不能下,不能绑定gmail,我们可以修改hosts来搞定他们,但这些都需要root权限(由于Root权限对于系统具有最高的统治权,便可方便的对于系统的部件进行删除或更改。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com