时间:2021-05-21
一:问题描述
在已经root过的android设备下,app执行一个linux命令,app需要获取su权限,在某些android主板下会出现异常, Command: [su] Working Directory: null Environment: null,代码如下:
private void execLinuxCommand(String cmd){ Runtime runtime = Runtime.getRuntime(); try { Process localProcess = runtime.exec("su"); OutputStream localOutputStream = localProcess.getOutputStream(); DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream); localDataOutputStream.writeBytes(cmd); localDataOutputStream.flush(); } catch (IOException e) { Logger.i(TAG+"strLine:"+e.getMessage()); e.printStackTrace(); } }由于确认设备已经root,并且上个月测试的时候,没有任何问题,然后今天换新设备测试时(新设备,旧设备android版本一致,均为5.1,并且都已经root),却出现如下异常:
java.io.IOException: Error running exec(). Command: [su] Working Directory: null Environment: null12-02 10:00:08.685 W/System.err: Caused by: java.io.IOException: Permission denied12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(Native Method)12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(ProcessManager.java:209)12-02 10:00:08.687 W/System.err: ... 17 more通过异常信息判断,Process localProcess = runtime.exec("su");执行这句代码,没有权限,都root了还没权限,我去。。。ls -al /system/xbin/su信息如下:
二:解决办法
出现这种问题,一般有三个原因
1 /system/xbin/su 不存在
通过adb命令,看到是有su这个文件的,所以排除这个原因。
2 /system/xbin/su 权限问题,
解决办法是执行如下命令,前提是android主板给予了执行chmod 06755命令的权限
chmod 06755 /system/xbin/su 如果执行以上命令,出现如下问题,请联系设备厂商
3 /system/xbin/su 不允许第三方应用获取root权限
网上的解决办法是:
root@android:/ $ susu: uid 10061 not allowed to suroot@android:/总结
以上所述是小编给大家介绍的Android 程序执行Linux命令的解决方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
linux下执行xhost命令报错:unabletoopendisplay,解决方法,linux下通过xhost进入图形界面,经常会出现报错“una
根据专利的特性、评估目的及外部市场环境等各方面因素,专利评估可采用成本法、收益法、及市场法三种。 三种评估方法的注意事项: 1、成本法的注意事项 (1)专
注意事项微信开放标签有最低的微信版本要求,以及最低的系统版本要求。微信版本要求为:7.0.12及以上。系统版本要求为:iOS10.3及以上、Android5.0
以下是使用微盛提供在小程序内创建门店流程及注意事项,帮助各位轻松开店。工具/原料微信小程序微盛微商城方法/步骤一、登陆微信公众平台,进入你的小程序管理后台。(h
佳能相机一直显示储存卡锁起的解决方法:在SD卡边缘有一个很小的拨动开关,将这个开关移到LOCK位置时存储卡锁定,反向拨动即可解锁。 设备使用注意事项∶ 1、