要让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权限”,此时选择允许即可。