RunTime.exec如何以root权限执行多条指令

Android11、12 修改系统获取root权限(su权限) 在系统开发中,有时需要用到cmd的方式,即getRuntime().exec();大多数情况下,没有root权限都能实现大部分功能。但是有些是需要root权限的,系统源码中对某些命令做了权限判断,需要root权限才能使用。提示权限缺失。下面针对如何在系统中配置root权限(su权限),做一个记录分享。 阅读详情

原文地址:https://blog.youkuaiyun.com/mafei852213034/article/details/52217840

RunTime.exec()这个接口可以说是给我们开发者提供了一个很好的直观操作底层操作系统的机会,但是这个接口的使用还有很多需要注意的问题。由于要完整的介绍这个接口需要较大的篇幅,我在这里只针对一点进行介绍“如何以root权限执行多条指令”

1.这里首先面对的是root权限,这个需要将手机进行root,具体方法可以通过360一键root来搞定。

2.先来看一下这段代码

[java]  view plain  copy
  1. Runtime runtime = Runtime.getRuntime();  
  2. Process proc = runtime.exec("su");  
  3. runtime.exec("cmd1");  
  4. runtime.exec("cmd2");  
这里,执行su是向系统请求root权限,proc是返回执行su的这个独立进程。

下面来看一下cmd1和cmd2,我们假设这两个命令都需要root权限,那么按照上述方法写的话会发现cmd1和cmd2都会出现permission denied。

这是为什么呢?

因为su命令只会使得当前的进程获得root权限,也就是使得proc获得root权限,而不是让整个应用都具有root权限,又由于后面cmd1和cmd2进行runtime.exec的时候又各自存在于一个独立的进程中,所以不具备root权限。

那么应该怎么来解决呢?往下看

3.让所有指令处在一个进程中

[java]  view plain  copy
  1. Runtime runtime = Runtime.getRuntime();  
  2. Process proc = runtime.exec("su;cmd1;cmd2");  
我满怀欢喜地执行上述代码,首先我是知道“cmd_a;cmd_b;cmd_c”这样的写法是正确的,而且经过诸如runtime("cd /mnt;ls -l") 这样的测试证明是可以执行的。

但是上述代码执行后就卡住了,貌似是进程挂起了,个人觉得是su指令的问题,但是确切原因还不清楚,在这里希望哪位大牛知道原因可以告知一下~先谢过!

4.继续探寻

既然proc这个进程已经具有了root权限,那么我们就要想办法怎么在这个线程的前提下进行一些操作,经过查询,终于求的真经,如下:


[html]  view plain  copy
  1. Process proc = runtime.exec("su");  
  2.         DataOutputStream os = new DataOutputStream(proc.getOutputStream());  
  3.         os.writeBytes("cmd1\n");  
  4.         os.writeBytes("cmd2\n");  
  5.         os.writeBytes("exit\n");  
  6.         os.flush();  
这里一定要注意cmd1和cmd2后面的“\n”是不可缺少的,由于DataOutputStream这个接口并不能直接操作底层shell,所以需要"\n"来标志一条命令的结束。

ok,搞定。

尽情享受随心所欲的操作操作系统的快感吧~


超越图灵机——论人工智能实现的可能性(一) 超越图灵机——论人工智能实现的可能性(一)我认为人工智能是可以实现到逻辑思维这一步的,因为逻辑思维可以完全用字符串来表示,图灵机可以把任意单元置成任意值,在这一点上是完备的,这就足以描述逻辑思维了,所以用图灵机完全可以实现到逻辑思维。当然图灵机会受到哥德尔不完备性的制约,但是逻辑系统也会受到同样的制约,所以我认为完全可以用图灵机实现逻辑思维。那么逻辑思维的本质机理与图灵机是什么关系?逻辑思 阅读详情

相关推荐

手把手教你用LTspice仿真TVS二极管:从选型验证到波形分析全流程

本文详细介绍了如何使用LTspice仿真TVS二极管,从选型验证到波形分析的全流程。通过搭建仿真环境、核心参数验证和系统级防护策略,帮助工程师低成本评估TVS性能,优化电路设计。特别适用于电源设计和接口防护领域,提升工作效率和设计准确性。

weixin_29234239的博客 643

[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?

RunTime.exec()这个接口可以说是给我们开发者提供了一个很好的直观操作底层操作系统的机会,但是这个接口的使用还有很多需要注意的问题。由于要完整的介绍这个接口需要较大的篇幅,我在这里只针对一点进行介绍“如何以root权限执行多条指令” 1.这里首先面对的是root权限,这个需要将手机进行root,具体方法可以通过360一键root来搞定。 2.先来看一下这段代码 Runtim

石圣的专栏 1万+

外贸英文函电第三版张梅英课后习题答案解析

我参加了一些外贸模拟竞赛,将所学知识运用到实际工作中,取得了不错的成绩。此外,我还积极参与了一些外贸实践活动,如参加实习、担任志愿者等,从中积累更多的经验。在这个过程中,我逐渐摸索出了一套适合自己的学习方法,不仅提高了学习效果,还增强了自信心。通过学习这本书,我们可以提高自己在外贸领域的沟通能力,更好地应对未来的工作挑战。在学习这本书的过程中,我遇到了一些困难,比如对某些专业术语的理解不够透彻,对信件的结构和格式掌握不够熟练。出版社: 高等教育出版社。上传者: ʚ河西撒手没ɞ。

weixin_58833001的博客 1423

JAVA Runtime.getRuntime().exec 执行多条

中间加上 & 或者 && 就可以执行多条了. Runtime.getRuntime().exec("cmd1 && " + "cmd2 && " + "cmd3 && " );

MAIMIHO的博客 8188

内网开发必备:银河麒麟V10离线安装全流程(含镜像挂载+yum源配置)

本文详细介绍了在内网隔离环境下,银河麒麟V10操作系统的离线安装与部署全流程。核心内容包括官方镜像的获取与校验、使用mount命令进行镜像挂载的详细步骤与问题排查,以及构建稳定、可维护的本地Yum软件仓库的完整方法论。通过实战案例演示了如何基于本地源部署LNMP环境,并提供了高级配置技巧与常见故障排除指南,旨在帮助运维人员系统性地构建高可用的内网软件供应链。

weixin_29268637的博客 555

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 485

2022-05-27 Android Android getRuntime()、exec 执行命令(linux 下的bin文件等)并解得到返回值、执行ping命令

一、形式一:只执行命令不获取返回值。 public static String execute_command(String cmd) { try { //String keyCommand = "setprop " + propName; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(cmd); }..

海月汐辰 3578

独立游戏开发者的新武器:实测腾讯混元3D自动绑骨,搭配Mixamo让角色动画制作效率翻倍

本文实测腾讯混元3D自动绑骨功能与Mixamo动画库的协同使用,显著提升独立游戏开发者的角色动画制作效率。通过解决卡通角色绑骨偏差、优化骨骼权重及动画状态机配置,使原本两周的流程缩短至三天,并分享Unity中的性能优化与版权合规要点。

weixin_42662605的博客 488

Android Runtime exec接口使用的一些注意事项

Android exec No such file or directory解决方法

MasterC的博客 697

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4453

Python爬虫实战:高德地图POI信息爬取(餐馆/加油站等),附选址分析技巧

高德API配置AMAP_KEY = "你的高德API Key" # 替换成自己的Key# 爬取参数CITY = "成都" # 城市DISTRICTS = ["锦江区"] # 区域,可添加多个(比如["锦江区", "武侯区"])KEYWORDS_LIST = ["川菜馆", "加油站"] # 要爬取的POI类型TYPES = {"川菜馆": "050101", # 餐饮服务→中餐→川菜馆(高德POI分类编码)"加油站": "110100" # 交通设施→加油站。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2467

获取su权限,并执行多条命令

工程代码:http://download.csdn.net/detail/victoryckl/4610617     在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。    关键点在于下面这句,通过执行su产生一个具有root权限

1万+

【Codecs系列】x265编码器(十二):子像素运动搜索

在基于块运动补偿的视频编码框架中,运动搜索是最为重要的环节之一,同时也是编码端最为耗时的模块。运动搜索包括整像素运动搜索和子像素运动搜索,其中整像素运动搜索已经有很多快速算法,比如经典的三步搜索法、菱形搜索、六边形搜索以及TZSearch等等;但子像素搜索的快速算法却比较少,本文主要讲解x265编码器中的子像素搜索方法以及相关的快速搜索方法。

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 744

android runtime.exec 权限,[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?...

转:http://blog.csdn.net/alexander_xfl/article/details/9150971RunTime.exec()这个接口可以说是给我们开发者提供了一个很好的直观操作底层操作系统的机会,但是这个接口的使用还有很多需要注意的问题。由于要完整的介绍这个接口需要较大的篇幅,我在这里只针对一点进行介绍“如何以root权限执行多条指令”1.这里首先面对的是root权限,这个...

weixin_39556064的博客 1096

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RunTime.exec 如何以root权限执行多条指令

/ 经过Root处理的android系统即有su命令。// 经过Root处理的android系统即有su命令。

chenxy80的博客 972

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RunTime.exec()如何以root权限执行多条指令?

RunTime.exec()这个接口可以说是给我们开发者提供了一个很好的直观操作底层操作系统的机会,但是这个接口的使用还有很多需要注意的问题。由于要完整的介绍这个接口需要较大的篇幅,我在这里只针对一点进行介绍“如何以root权限执行多条指令” 1.这里首先面对的是root权限,这个需要将手机进行root,具体方法可以通过360一键root来搞定。 2.先来看一下这段代码

纸上得来终觉浅,绝知此事要躬行 9488

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

权限执行[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?

每日一贴,今天的内容关键字为权限执行     RunTime.exec()这个接口可以说是给我们开发者供给了一个很好的直观操纵底层操纵系统的机遇,但是这个接口的使用还有很多需要注意的问题。由于要完全的分析这个接口需要较大的篇幅,我在这里只针对一点停止分析“如何故root权限执行多条指令”     1.这里首先面临的是root权限,这个需要将手机停止root,具体方法可以通过360一键root来...

weixin_34392843的博客 332

在Android app中调用shell脚本

本文的Demo源代码已在新浪微盘发布:Hi,推荐文件给你 "ShellProject.zip"http://vdisk.weibo.com/s/mg606 新浪分享也已上传,http://ishare.iask.sina.com.cn/f/35304183.html 。 ----------------------------------------------------------

qq_22266217的博客 5188

android runtime.exec 权限,Runtime.getRuntime().exec获取root权限,并执行命令

public String execRootCmd(String cmd) {String result = "";DataOutputStream dos = null;DataInputStream dis = null;try {Process p = Runtime.getRuntime().exec("su");// 经过Root处理的android系统即有su命令dos = new D...

weixin_42628573的博客 3641

在android执行有root权限的java程序

手机ROOT后通过adb是可以访问目录的,然而java程序却不可以 比如下面这段代码为了获取根目录下所有文件和文件夹的名称,如果封装成apk安装到手机里面,则运行的时候listFiles();这个方法会返回Null,app会直接闪退。 import java.io.File; public class Woo { public static void main(String args...

txwdzxq的博客 1072

android root权限命令行,android在apk中获取root权限,并执行命令

在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。关键点在于下面这句,通过执行su产生一个具有root权限的进程:Process p = Runtime.getRuntime().exec("su");然后,在向这个进程的写入要执行的命令,即可达...

weixin_39989215的博客 1830

Android应用请求获取Root权限

要让Android应用获得Root权限,首先Android设备必须已经获得Root权限。 应用获取Root权限的原理:让应用的代码执行目录获取最高权限。在Linux中通过chmod 777 [代码执行目录] 代码如下: /** * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限) * * @return 应用程序是/否获取Root权限 */ pu...

weixin_34355559的博客 1330

android apk获取root权限

一般linux 获取root权限是通过执行su命令,那能不能在apk程序中也同样执行一下该命令呢,我们知道在linux编程中,有exec函数族:   int execl(cONst char *path, const char *arg, ...);   int execlp(const char *file, const char *arg, ...);   int execle(cons

freexuejin_business的专栏 923

android在apk中获取root权限,并执行命令

在apk中,有时候需要root权限,例如通过apk更新系统库等system的文件等,避免升级固件,或者在apk中需要直接访问某些设备等。下面是在apk中获取root权限的方法,前提是设备已经root过了。 //通过执行su产生一个具有root权限的进程 Process p = Runtime.getRuntime().exec("su"); //然后,在向这个进程的写入要执行的命令,即可达到以ro...

热爱不止,前行不息 1万+
上一篇: Android Root设备中的su权限获取和使用详解
下一篇: Go语言图形界面开发:Go版GTK
dodod2012
博客等级 码龄15年 244粉丝 98原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值