让Android应用程序申请获取ROOT权限
自定义一个类
条目创建于 2015-01-02 4217 views
服务器君一共花费
10.574 ms 进行了
4 次数据库查询,努力地为您提供了这个页面。
有时候我们写 Android APP,需要让它获取 ROOT 权限,那么如何让 APP 去向系统申请呢?下面提供一个方法,前提是系统是已经 ROOT 权限了,能够执行能 su 命令。如果不能,可以参考上一篇: 获取Android系统的ROOT权限 。
1. 首先编写一个 SystemManager 类。
01 | package net.nowamagic.magicapp_v17; |
03 | import java.io.DataOutputStream; |
05 | import android.app.Activity; |
06 | import android.util.Log; |
08 | public class SystemManager extends Activity { |
11 | * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限) |
12 | * @param command 命令:String apkRoot="chmod 777 "+getPackageCodePath(); RootCommand(apkRoot); |
13 | * @return 应用程序是/否获取Root权限 |
15 | public static boolean RootCommand(String command) |
17 | Process process = null ; |
18 | DataOutputStream os = null ; |
21 | process = Runtime.getRuntime().exec( "su" ); |
22 | os = new DataOutputStream(process.getOutputStream()); |
23 | os.writeBytes(command + "\n" ); |
24 | os.writeBytes( "exit\n" ); |
29 | Log.d( "*** DEBUG ***" , "ROOT REE" + e.getMessage()); |
44 | Log.d( "*** DEBUG ***" , "Root SUC " ); |
2. 然后在 MainActivity 中加入这么两句:
01 | public class MainActivity extends Activity |
03 | public void onCreate(Bundle savedInstanceState) |
05 | super .onCreate(savedInstanceState); |
06 | setContentView(R.layout.main); |
07 | String apkRoot= "chmod 777 " +getPackageCodePath(); |
08 | SystemManager.RootCommand(apkRoot); |
运行 APP,即可向系统申请 ROOT 权限了。