最近学习Android的时候写个小程序需要用到获取ROOT权限,在网上找了好久,发现这种方法可行,前提时设备必须已经破解过!能执行su命令。

一、建一个方法:代码如下:

Java代码

  1. package cn.ycmoon.utility;
  2. import java.io.DataOutputStream;
  3. import android.app.Activity;
  4. import android.util.Log;
  5. public class SystemManager extends Activity
  6. {
  7. /**
  8. * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限)
  9. * @param command 命令:String apkRoot="chmod 777 "+getPackageCodePath(); RootCommand(apkRoot);
  10. * @return 应用程序是/否获取Root权限
  11. */
  12. public static boolean RootCommand(String command)
  13. {
  14. Process process = null;
  15. DataOutputStream os = null;
  16. try
  17. {
  18. process = Runtime.getRuntime().exec("su");
  19. os = new DataOutputStream(process.getOutputStream());
  20. os.writeBytes(command + "\n");
  21. os.writeBytes("exit\n");
  22. os.flush();
  23. process.waitFor();
  24. } catch (Exception e)
  25. {
  26. Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());
  27. return false;
  28. } finally
  29. {
  30. try
  31. {
  32. if (os != null)
  33. {
  34. os.close();
  35. }
  36. process.destroy();
  37. } catch (Exception e)
  38. {
  39. }
  40. }
  41. Log.d("*** DEBUG ***", "Root SUC ");
  42. return true;
  43. }
  44. }
package cn.ycmoon.utility; import java.io.DataOutputStream; import android.app.Activity; import android.util.Log; public class SystemManager extends Activity { /** * 应用程序运行命令获取 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; } }

二、在应用程序的MainActivity方法中:

Java代码

  1. public class MainActivity extends Activity
  2. {
  3. public void onCreate(Bundle savedInstanceState)
  4. {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. String apkRoot="chmod 777 "+getPackageCodePath();
  8. SystemManager.RootCommand(apkRoot);
  9. }
  10. }
public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String apkRoot="chmod 777 "+getPackageCodePath(); SystemManager.RootCommand(apkRoot); } }

这样,在应用程序运行的时候,会弹出消息对话框“应用程序已获取root权限”

更多相关文章

  1. 【MarsChen】D03_Say_Hello_to_Android
  2. android 系统资源的加载和获取
  3. android 权限大全
  4. Unity3D 调用Android原生方法
  5. Android权限设置大全
  6. Eclipse开发Android应用程序入门
  7. Android(安卓)新手常见的10个误区(上)
  8. Android下uptime获取系统启动和运行时间
  9. Android流量统计

随机推荐

  1. android mainfest 属性详解
  2. Android点滴累计
  3. android后台服务service全解析(上)--serv
  4. Android(安卓)学习 之 Canvas (一)
  5. Android学习心得(二)——短信服务
  6. android shelves
  7. Android最实用的各种技能点的网址链接(每
  8. Android(安卓)5.0以上Button去掉阴影
  9. Windows 下的Android NDK开发
  10. Android Studio 创建第一个项目应用