private boolean isRoot(String command){
Process process = null;
DataOutputStream os = null;
try {
/*Executes the specified program in a separate native process.
* The new process inherits the environment of the caller.
* Calling this method is equivalent to calling exec(prog, null, null).
*/
//如果设备获取了root权限,那么程序执行su命令时,就会提示用户进行授权
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) {
//如果已经root,但是用户选择拒绝授权,e.getMessage() = write failed: EPIPE (Broken pipe)
//如果没有root,,e.getMessage()= Error running exec(). Command: [su] Working Directory: null Environment: null
Logger.d("Unexpected error - Here is what I know: "+e.getMessage());
return false;
}
finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
// nothing
}
}
return true;
}
Android应用程序获取ROOT权限的方法(android中如何通过代码检测是否有root权限?)
最新推荐文章于 2023-04-25 10:43:15 发布