要讓Android應用獲得Root許可權,首先Android裝置必須已經獲得Root許可權。
應用擷取Root許可權的原理:讓應用的代碼執行目錄擷取最高許可權。在Linux中通過chmod 777 [代碼執行目錄]
代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/** * 應用程式運行命令擷取 Root許可權,裝置必須已破解(獲得ROOT許可權) * * @return 應用程式是/否擷取Root許可權 */ public static boolean upgradeRootPermission(String pkgCodePath) { Process process = null; DataOutputStream os = null; try { String cmd="chmod 777 " + pkgCodePath; 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; } |
調用代碼:
1 2 3 4 5 6 7 |
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //當前應用的代碼執行目錄 upgradeRootPermission(getPackageCodePath()); } |
執行上述代碼後,系統會彈出對話方塊“是否允許擷取Root許可權”,此時選擇允許即可。