2017-09-01 124 views
1

我在自定义设备上运行android 7.1.1,并且在'userdebug'配置中从源代码编译了AOSP,它提供了根访问和调试功能。adb root works Runtime.GetRuntime().exec(“su”);不是

我可以使用android设备桥连接到设备。

adb root 
adb shell 
device_name:/ # su 

所有这些命令工作正常,我可以作为超级用户进行更改。 我有从一个应用程序运行相同的“苏”命令的问题

Java.Lang.Process suProcess = Runtime.GetRuntime().Exec("su"); 

我收到的错误是:

产生java.io.IOException:不能运行程序“苏”:错误= 13,权限被拒绝

adb root/shell su命令与从应用程序中运行的命令之间有区别吗?

回答

1

看起来好像linux DAC和SE-Android正在阻止你的应用程序的进程访问'su'可执行文件。

检查您的系统是否在强制模式下运行,这意味着SE-Android已启用。如果这是事实确实如此,你可以暂时运行禁用它:

adb root 

adb shell setenfoerce 0 

这将禁用SE-的Android并不会从执行“苏”屏蔽的应用程序。

此外,您的应用可能没有以root身份启动'su'所需的DAC权限。您可以执行以下命令:

adb shell ps 

有关设备上所有正在运行的进程的列表。找到您的应用程序(通过搜索其软件包名称),并检查其组和uid。最有可能他们都不会成为根。

请注意,构建一个自定义userdebug图像不像植根于标准的Android设备。调试版旨在允许访问设备的内部,同时仍然模拟启用了其所有默认安全机制的实际功能设备。

相关问题