android linux,android程序执行linux命令获取权限异常的解决方

时间:2021-06-21 15:17 作者:IIS7 admin

    一、问题描述
    在已经root过的android设备下,app执行一个linux命令,app需要获取su权限,在某些android主板下会出现异常,Command:[su]WorkingDirectory:nullEnvironment:null,代码如下:
    由于确认设备已经root,并且上个月测试的时候,没有任何问题,然后今天换新设备测试时(新设备,旧设备android版本一致,均为5.1,并且都已经root),却出现如下异常:
    java.io.IOException:Errorrunningexec().Command:[su]WorkingDirectory:nullEnvironment:null
    12-0210:00:08.685W/System.err:Causedby:java.io.IOException:Permissiondenied
    12-0210:00:08.686W/System.err:atjava.lang.ProcessManager.exec(NativeMethod)
    12-0210:00:08.686W/System.err:atjava.lang.ProcessManager.exec(ProcessManager.java:209)
    12-0210:00:08.687W/System.err:...17more
    通过异常信息判断,ProcesslocalProcess=runtime.exec("su");执行这句代码,没有权限,都root了还没权限,我去。。。ls-al/system/xbin/su信息如下:
    二、解决办法
    出现这种问题,一般有三个原因
    1、system/xbin/su不存在
    root@rk3288:/system/xbin#ls-alsu
    -rwsr-x---rootshell671602017-10-1615:01su
    通过adb命令,看到是有su这个文件的,所以排除这个原因。
    2、system/xbin/su权限问题
    解决办法是执行如下命令,前提是android主板给予了执行chmod06755命令的权限
    chmod06755/system/xbin/su
    如果执行以上命令,出现如下问题,请联系设备厂商
    root@rk3288:/system/xbin#chmod06755/system/xbin/su
    Unabletochmod/system/xbin/su:Read-onlyfilesystem
   3、system/xbin/su不允许第三方应用获取root权限
    网上的解决办法是:
    root@android:/$su
    su:uid10061notallowedtosu
    root@android:/
    原文链接:https://www.jb51.net/article/129835.html