zoukankan      html  css  js  c++  java
  • 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:/

     

      

  • 相关阅读:
    Design Pattern: Gof
    ZT --- extern "C"用法详解 2010-08-21 19:14:12
    OCR
    Linux strace命令
    wireshark esp
    https://sourceware.org/gdb/onlinedocs/gdb/Forks.html
    12306网上买火车票选择上中下铺的方法
    gdb调试有fork的程序
    named piped tcp proxy
    bash 提示用户输入 choice
  • 原文地址:https://www.cnblogs.com/cq-jiang/p/7988678.html
Copyright © 2011-2022 走看看