Android 程序执行Linux命令的解决方法及注意事项
一:问题描述
在已经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: null 12-02 10:00:08.685 W/System.err: Caused by: java.io.IOException: Permission denied 12-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 不存在
root@rk3288:/system/xbin # ls -al su -rwsr-x--- root shell 67160 2017-10-16 15:01 su
通过adb命令,看到是有su这个文件的,所以排除这个原因。
2 /system/xbin/su 权限问题,
解决办法是执行如下命令,前提是android主板给予了执行chmod 06755命令的权限
chmod 06755 /system/xbin/su
如果执行以上命令,出现如下问题,请联系设备厂商
root@rk3288:/system/xbin # chmod 06755 /system/xbin/su Unable to chmod /system/xbin/su: Read-only file system
3 /system/xbin/su 不允许第三方应用获取root权限
网上的解决办法是:
root@android:/ $ su su: uid 10061 not allowed to su root@android:/
总结
以上所述是小编给大家介绍的Android 程序执行Linux命令的解决方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
基于Manifest.xml中不要出现重复的uses permission的说明
本篇文章对Manifest.xml中不要出现重复的uses permission进行了介绍。需要的朋友参考下2013-05-05Android自定义RecyclerView Item头部悬浮吸顶
这篇文章主要为大家详细介绍了Android自定义RecyclerView Item头部悬浮吸顶,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-08-08Android TV开发:实现3D仿Gallery效果的实例代码
这篇文章主要介绍了Android TV开发:实现3D仿Gallery效果的实例代码,效果:滚动翻页+ 页面点击+页码指示器+焦点控制,主要为了移植到电视上做了按键事件和焦点控制。2018-05-05android AsynTask处理返回数据和AsynTask使用get,post请求
本文主要介绍了android AsynTask处理返回数据和AsynTask使用get,post请求方法。具有一定的参考价值,下面跟着小编一起来看下吧2017-01-01Android中Xposed框架篇---修改系统位置信息实现自身隐藏功能实例
本篇文章介绍了Android中Xposed框架的使用,详细的介绍了修改系统位置信息实现自身隐藏功能实例,有需要的朋友可以了解一下。2016-11-11
最新评论