Android -- 程序判断手机ROOT状态,获取ROOT权限

时间:2021-11-09 14:06:47

判断手机是否具有ROOT权限                                                           

/**
* 判断手机是否ROOT
*/
public boolean isRoot() { boolean root = false; try {
if ((!new File("/system/bin/su").exists())
&& (!new File("/system/xbin/su").exists())) {
root = false;
} else {
root = true;
} } catch (Exception e) {
} return root;
}

上面返回的参数就知道手机是否具有ROOT权限了。

向ROOT权限发送请求信息,以获取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; } }

我是天王盖地虎的分割线                                                                 

参考:http://blog.csdn.net/fm9333/article/details/12752415