Android应用申请ROOT权限

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. 可以看到自己应用的错误,便于后期软件维护的日志抓取。

时间: 2024-08-07 17:24:57

Android应用申请ROOT权限的相关文章

android 应用使用Root权限执行linux命令

要让Android应用使用Root权限,首先Android设备必须已经获得Root权限.之后可以通过下面的代码取得process对象. Process process = Runtime.getRuntime().exec("su"); Process对象包含可以取得输入输出流及错误流对象,使用OutputStream对象,可以向Linux写入命令,其中getInputStream将取得命令返回的数据,如果出错getErrorStream将返回错误信息. public abstract

android中获取root权限的方法以及原理(转)

一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等. 2. Root的原理介绍 谷歌的android系统管理员用户就叫做root,该帐户拥有整个系统至高无上的权利,它可以访问和修改你手机几乎所有的文件,只有root才具备最高级别的管理权限

android apk 的root 权限和USB adb 权限的区别

USB adb 权限是指,当adb 连接手机时,手机中的守护进程adbd 的权限为root 权限,从而它的子进程也具有root 权限,通常如果adb shell 看到是: Android 4.0 以后版本: C:\Users\mtk29\Desktop>adb shell [email protected]:/ # Android 2.3 版本: C:\Users\mtk29\Desktop>adb shell 即表明adb 的连接是root 权限的,相反如果看到是$ 即表明是shell 权限

申请root权限

1 public boolean getRootPermission(String pkgCodePath) { 2 Log.d(TAG, "pkgCodePath=" + pkgCodePath); 3 Process process = null; 4 DataOutputStream os = null; 5 try { 6 String cmd = "chmod 777 " + pkgCodePath; 7 process = Runtime.getRunt

Android 模拟器 获得 root权限

启动一个模拟器,开始-运行-输入cmd,打开dos,依次输入 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system cd /system/bin cat sh > su chmod 4755 su su 即可获得root权限

Android下免Root权限截屏

/** * 返回的 bitmap就是屏幕的内容 */ private static Bitmap takeScreenShot(Activity activity) { View view = activity.getWindow().getDecorView(); // Enables or disables the drawing cache view.setDrawingCacheEnabled(true); // will draw the view in a bitmap view.b

Android 请求root权限实现静默安装

这几天在做一个新的功能,需要用到静默安装,所以在网上找了一些静默安装的资料就在这里记录一下吧.其实实现静默安装的原理就是请求Android手机的root权限,通过执行Linux命令来安装APK到手机系统,其实代码不是很多,就在这里列一下吧,以后用的时候可以直接翻出来: 1 public class MyThread extends Thread { 2 private String path; 3 4 public MyThread(String path) { 5 // TODO Auto-g

Android 二:root 手机的原理

前面讲如何利用adb 命令获取root权限,是基于手机已经被root过.如果手机,还没被root,则可用一下方法root 转载:http://www.juapk.com/thread-2000-1-1.html 轻描淡写编辑 一. 概述本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的“越狱”有一个更深层次的认识. 二. Root的介绍1.       Root 的目的可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换

android avd sdk root

网上的方式都失败了... 网上的方式据说是 用于 2.0 左右版本的. 而我们现在主流都用的是  4.0 以上的. 这个http://quantoubao.blog.163.com/blog/static/2083211702013870501987/ 说的是4.0以上的 可是我还是没成功. 于是我决定看看 root 原理自己搞一下: 参考: http://www.myhack58.com/Article/html/3/92/2013/36574.htm 先看这段描述: 一. 概述 本文介绍了a