码迷,mamicode.com
首页 > 移动开发 > 详细

Android应用申请ROOT权限

时间:2016-05-10 16:39:29      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

runtime = Runtime.getRuntime();

这句话在java中的效果为获取电脑终端,比如在window下面就是dos窗口, 如: runtime.exec("color 2D") 与直接在dos下面直接输入color 2D的效果一样。

在安卓中相当于获取到Linux终端。

 

 要让Android应用获得Root权限,首先Android设备必须已经获得Root权限。

应用获取Root权限的原理:让应用的代码执行目录获取最高权限。在Linux中通过chmod 777 [代码执行目录]

/**
* 应用程序运行命令获取 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 .writeChars(cmd+"\n");
      os .writeChars("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;
}

 

其中pkgCodePath可通过getPackageCodePath()获得

 

不需要root权限,只需要声明 :<uses-permission android:name="android.permission.READ_LOGS"/>

就可以拿到手机所有的日志信息,也就是在开发中logcat里面显示的内容,这部分内容由windowmanager 维护。

  1. 可以看到用户安装了什么应用。

     2. 可以看到自己应用的错误,便于后期软件维护的日志抓取。

Android应用申请ROOT权限

标签:

原文地址:http://www.cnblogs.com/android-er/p/5478298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!