android 程序执行linux命令注意事项

cq-jiang 2017-12-05 原文

一:问题描述

    在已经root过的android设备下,app执行一个linux命令,app需要获取su权限,在某些android主板下会出现异常, Command: [su] Working Directory: null Environment: null,代码如下:

  1. private void execLinuxCommand(String cmd){
  2. Runtime runtime = Runtime.getRuntime();
  3. try {
  4. Process localProcess = runtime.exec("su");
  5. OutputStream localOutputStream = localProcess.getOutputStream();
  6. DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream);
  7. localDataOutputStream.writeBytes(cmd);
  8. localDataOutputStream.flush();
  9. } catch (IOException e) {
  10. Logger.i(TAG+"strLine:"+e.getMessage());
  11. e.printStackTrace();
  12. }
  13. }

  由于确认设备已经root,并且上个月测试的时候,没有任何问题,然后今天换新设备测试时(新设备,旧设备android版本一致,均为5.1,并且都已经root),却出现如下异常:

  1. java.io.IOException: Error running exec(). Command: [su] Working Directory: null Environment: null
  2. 12-02 10:00:08.685 W/System.err: Caused by: java.io.IOException: Permission denied
  3. 12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(Native Method)
  4. 12-02 10:00:08.686 W/System.err: at java.lang.ProcessManager.exec(ProcessManager.java:209)
  5. 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   不存在

  1. root@rk3288:/system/xbin # ls -al su
  2. -rwsr-x--- root shell 67160 2017-10-16 15:01 su

   通过adb命令,看到是有su这个文件的,所以排除这个原因。

       2 /system/xbin/su 权限问题,

  

  解决办法是执行如下命令,前提是android主板给予了执行chmod 06755命令的权限

  1. chmod 06755 /system/xbin/su

  如果执行以上命令,出现如下问题,请联系设备厂商

  1. root@rk3288:/system/xbin # chmod 06755 /system/xbin/su
  2. Unable to chmod /system/xbin/su: Read-only file system

  3 /system/xbin/su 不允许第三方应用获取root权限

  1. 网上的解决办法是:
    root@android:/ $ su
  2. su: uid 10061 not allowed to su
  3. root@android:/

 

  

 

发表于 2017-12-05 18:15 喝着啤酒敲代码 阅读() 评论() 编辑 收藏

 

版权声明:本文为cq-jiang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/cq-jiang/p/7988678.html

android 程序执行linux命令注意事项的更多相关文章

  1. Android studio界面相关设置 Android studio界面相关设置

    原文出自 http://www.cnblogs.com/justinzhang/p/4274839.html […]...

  2. React Native之通知栏消息提示(android)

    React Native之通知栏消息提示(android)   一,需求分析与概述 1.1,推送作为手机应用的 […]...

  3. Android、IOS的Fiddler证书安装教程

    通过手机连接fiddler实现代理访问,其中必须得安装证书才能生效,那么针对不同的手机连接方式也不一样,分为两 […]...

  4. Xamarin 打包生成 Android apk 文件

      Visual Studio 支持 apk 发布    Xamarin.Forms项目或Xamarin.An […]...

  5. 一个老鸟发的公司内部整理的 Android 学习路线图 Android学习路线总结,绝对干货

    一个老鸟发的公司内部整理的 Android 学习路线图 2017年09月12日 17:13:27 阅读数:20 […]...

  6. Android 计时应用 之 爱相随 V0.1

    女朋友一直钟情于Android手机,前段时间不幸丢了陪伴多年的手机,便买了中兴U880。 也和她聊起过Andr […]...

  7. Android 布局巧用之include、merge、ViewStub

    Android 布局巧用之include、merge、ViewStub 原文链接:https://mp.wei […]...

  8. Android 自定义组件,自定义LinearLayout,ListView等样式的组件

    今天讲的其实以前自己用过,就是在网上拿下来的把图片裁剪成圆形的方法,之前的随笔也介绍过的, 用法就是,在布局里 […]...

随机推荐

  1. Sqlserver2012 使用sql语句增加(或删除)表一个字段

    前言 Mark在SqlServer 2012 的数据库使用sql语句增加(或删除)一张表的一个字段。 使用Sq […]...

  2. 树形dp①

    树形dp大概是在树上的dp,可以有一些父亲节点和儿子节点的关系来dp 一道经典例题: 没有上司的舞会Ural […]...

  3. iOS岗位招聘标准水涨船高,五年iOS程序员表示面试太难了

    人才济济的iOS开发者,你凭什么脱颖而出? 与岗位要求相去甚远,如何挑战极限? 想去心怡公司,如何马到成功? […]...

  4. Java生成验证码并进行验证(转)

    本文转自http://blog.csdn.net/worm0527/article/details/51030 […]...

  5. T117897 七步洗手法 / PJT1(洛谷)

    T117897 七步洗手法 / PJT1(洛谷) 题目:现在有n个人需要依次使用1个洗手池洗手,进行一步洗手需 […]...

  6. 三菱FX3U PLC转以太网通过兴达易控CHNet-FX实现PLC转以太网通信配置方法

    兴达易控CHNetS7-FX是一款经济型的以太网通讯处理器,是为满足日益增多的工厂设备信息化需求(设备网络监控 […]...

  7. Android实现模拟时钟(简单+漂亮)–时针、分针、秒针

             前言                      前不久在网上看见Android实现的模拟时钟 […]...

  8. Html5简单描述(优点与缺点)

    什么是HTML5 HTML5指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少 […]...