当我使用adb来访问我的设备(制造商直接使用其自定义rom的Android 4.4.2-它不是常规设备-它内置了2D条形码扫描仪)时,会直接获得一个#,这表示我已经读过具有root访问权限。如果我运行“ id”,则会得到以下信息:

uid=0(root) gid=0(root) context=u:r:adbd:s0


但是,当我从应用程序中运行“ su”然后运行“ id”时,我得到以下信息:

uid=10079(u0_a79) gid=10079(u0_a79) groups=50079(all_a79) context=u:r:untrusted_app:s0n


因此,显然它不是以root身份运行。
我是否认为应该以root身份从应用程序内部运行而理解全部错误,还是需要做一些其他事情才能使此工作正常进行?

任何建议将不胜感激。

这是我当前用于运行su和id命令的代码:

p = Runtime.getRuntime().exec("su");
            p.waitFor();
            BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

            String line = "";
            while ((line = reader.readLine())!= null) {
                output.append(line + "n");
            }


            p = Runtime.getRuntime().exec("id");
            p.waitFor();
            reader = new BufferedReader(new InputStreamReader(p.getInputStream()));

            line = "";
            while ((line = reader.readLine())!= null) {
                output.append(line + "n");
            }


我忘记提及的另一件事-我将应用程序复制到/ system / priv-app并从那里运行。仍然没有运气。

最佳答案

我的中文平板电脑有这样的问题。只需重新root(替换su二进制文件)。应该管用。

附言看到任何代码也有帮助。

08-18 06:28
查看更多