这里指的是app能利用Runtime.getRuntime().exec("su")或者ProcessBuilder()等创建一个新的具有root权限的shell终端进程,而不是app本身拥有root权限。使得app自身具有root权限这个我没有研究过,但使得app自身具有system权限则可以使用签名,在Android Framework 之HelloWorld(三)里有描述。

我是参考了[九鼎RK3399Pro] Android 8.1 系统定制给用户root权限这篇文章,对NanoPC-T4开发板进行修改的,不过还要修改system/core/adb/set_verity_enable_state_service.cpp->set_verity_enabled_state_service(),这样运行adb disable-verity才正常,adb remount后也能读写/system和/vendor分区了,有点投机取巧,调试阶段应该还有其他办法直接让/system和/vendor在系统起来时就挂载成可读写分区,毕竟adb disable-verity需要重启生效:

if (!android::base::GetBoolProperty("ro.secure", false)) {

WriteFdFmt(fd, "verity not enabled - ENG build\n");

//return; //不返回

}

下面是修改后su程序的other用户权限是x,能够执行。在root和shell用户下能临时修改到其他用户去,譬如 su u0_a58等。文章中还屏蔽了SElinux,同时把一些工具(如su和adb等)的判断自身是否具有相应权限的代码注释掉了。

su工具修改前

ls -l /system/xbin/su

-rwsr-x--- 1 root shell 11064 2020-08-07 10:42 /system/xbin/su

su工具修改后

ls -l /system/xbin/su

-rwsr-sr-x 1 root root 11064 2020-08-20 13:17 /system/xbin/su

所以,无论当前app运行在哪个用户(如u0_a58之类的)里,都能在app上运行root权限的命令。

private void rootRun(String cmd)

{

try {

// 申请获取root权限

Process process = Runtime.getRuntime().exec("su"); //"/system/xbin/su"

// 获取输出流

OutputStream outputStream = process.getOutputStream();

InputStream is = process.getInputStream();

InputStream es = process.getErrorStream();

DataOutputStream dataOutputStream = new DataOutputStream(outputStream);

dataOutputStream.writeBytes(cmd);

dataOutputStream.flush();

dataOutputStream.close();

outputStream.close();

int code = process.waitFor();

Log.d("TAG", "Run:\"" + cmd +"\", "+"process.waitFor() = " + code);

String line;

BufferedReader br;

br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

while ((line = br.readLine()) != null) {

Log.d("TAG", line);

}

br = new BufferedReader(new InputStreamReader(es, "UTF-8"));

while ((line = br.readLine()) != null) {

Log.e("TAG", line);

}

} catch (Throwable t) {

Log.e("TAG", "Throwable = " + t.getMessage());

t.printStackTrace();

}

}

...

...

rootRun("reboot"); //运行shell命令,在app里重启android系统

3399 android root,RK3399 android8.1 app获取root权限相关推荐

  1. app调用root权限,安卓app获取root权限

    请教如何提升app的权限,root权限 方法如下: 方法一: 1.在手机的应用中心搜索一键ROOT工具. 2.挑选后进行下载. 3.下载安装完毕后运行软件,点击一键获取ROOT. 方法二: 1.数据线 ...

  2. 手机定向root,指定APP获取root权限

    安卓手机定向root,指定APP获取root权限,# su 只让自己的APP有root 防检测 定向root权限,指定root获取root权限.编译supersu或者magsik源码 目的是有效避免系 ...

  3. 一加五root+Android8.0,一加5 root教程 一加5获取root权限的方法

    2017-09-13 09:41:00 一加5 root教程 一加5获取root权限的方法 来源:刷机之家 标签:一加5,root教程 刷机之家小编下面是咱们的一加5手机也就是OnePlus5的roo ...

  4. 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法

    2017-09-12 16:14:42 华为Nova2 root图文教程 华为Nova2获取root权限的方法 来源:刷机之家 标签:华为Nova2,华为Nova2root教程,华为Nova2获取ro ...

  5. 一加手机怎么root权限_一加手机3 root教程 一加3获取root权限的方法

    2017-09-14 14:13:24 一加手机3 root教程 一加3获取root权限的方法 来源:刷机之家 标签:一加手机3,root教程,获取root 刷机之家小编看到网上有一些机友说了一下有关 ...

  6. android 执行shell root权限,Android App 获取root权限后,执行shell命令

    背景: 做一个应用,需求是获取root权限后可以停用/启用某些应用,包括系统应用!停用的应用将不在设置-->应用中展示,大部分系统自带的桌面应该也不会再显示! 如果是用menifest.xml中 ...

  7. 安卓APP获取ROOT权限

    我们在app的开发过程中会遇到些需要系统支持的权限,这里有些是需要向系统申请的.写入这些申请的前提是该app安装的设备已经被破解了. /*** 应用程序运行命令获取 Root权限,设备必须已破解(获得 ...

  8. oppo版root软件获取,oppo如何获取root

    oppo手机怎样获得root权限 oppo手机获得root权限的方法及步骤: 工具/原料:手机端应用[小欧工程师],OPPO手机(这里我们以OPPOr9为例做以演示,其他机型类似) 1.首先,需要在软 ...

  9. Android破取某漫画app获得VIP权限

    0.前言 昨天去公司加班,写业务代码写的我是心烦意乱,今天本打算再继续写的,但是就像肉吃多了也腻一样,想搞点新花样试试,最近对写外挂和破解app很有兴趣,想到最近某漫画app里的某部漫画需要用vip权 ...

  10. linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看

    小辣椒M2 (LA-M2)如何获取ROOT权限?用什么ROOT工具最简单?请跟着小编一起来看看如何用奇兔刷机对小辣椒M2 (LA-M2)进行一键ROOT,小编特别亲手制作了详细的小辣椒M2 (LA-M ...

最新文章

  1. linux下查看最消耗CPU、内存的进程
  2. linux下搭建基于python的vim,Linux下搭建基于python的VIM-Go语言中文社区
  3. Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面
  4. 浅析从小米造车背后探索小米集团的企业网络推广策略会有怎样的灿烂
  5. ST新一代烧写工具 STM32CubeProgrammer
  6. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)
  7. 八杯水微博程序演示及下载
  8. 两千内给力的大屏手机(二)
  9. SpringBoot2 集成 skywalking 实现链路追踪
  10. HDU 4873 ZCC Loves Intersection(可能性)
  11. TCP洪水攻击(SYN Flood)的诊断和处理
  12. struts2校验框架之Visitor校验器
  13. LeetCode(476)——数字的补数(JavaScript)
  14. 手机如何利用IP地址定位城市
  15. 服务器运维软硬件维护月报,运维月报ppt
  16. 针对单个网站的渗透思路(精)
  17. 简洁404页面源码 | 自适应404页面HTML源代码下载
  18. Android APP漏洞自动化静态扫描检测工具-Qark
  19. Linux里get命令,Linux apt-get 命令用法详解-Linux命令大全(手册)
  20. 杂七杂八的网络安全知识

热门文章

  1. Windows10安装报错 由于存在受损的安装文件
  2. 加州大学戴维斯分校 计算机科学,UCDavis的Computer Science「加州大学戴维斯分校计算机科学专业」...
  3. 21 个人所得税计算
  4. 电影院订票选座小程序,电影购票小程序,微信小程序电影院订票系统毕设作品
  5. Java学习笔记-Lambda表达式
  6. 80和443端口的区别
  7. PIL (Python Imaging Library) 教程
  8. 美通社日历 | 媒体关注、会展信息、企业财报发布,节假日备忘(8月17日—8月23日)...
  9. ftm模块linux驱动,飞思卡尔K60 FTM模块详解【二】
  10. 数据结构——克鲁斯卡尔(Kruskal)算法