我试图从我添加到AOSP(7.1.1)的system / priv-app运行
shell命令
我试图运行的命令是:ip link add dev can0 type可以打开can总线.
我已将图像构建为-eng& -userdebug发布.
该命令在adb shell中运行良好,并按预期成功打开CAN总线.
我的问题是我收到以下错误:
Cannot run program “su”: error=13, Permission denied
当我在系统特权java应用程序中尝试以下代码时:
//ArrayList commands is passed into the method
try {
if (null != commands && commands.size() > 0) {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
for (String currCommand : commands) {
os.writeBytes(currCommand + "\n");
os.flush();
}
os.writeBytes("exit\n");
os.flush();
BufferedReader stderr = new BufferedReader(new InputStreamReader(suProcess.getErrorStream()));
String line = "";
String errString = "";
while ((line = stderr.readLine()) != null) errString += line + "\n";
suProcess.waitFor();
if (suProcess.exitValue() != 0)
throw new Exception(errString);
} //Handle exception
博主在尝试在AOSP 7.1.1的system/priv-app中通过Java应用程序运行shell命令'su'以打开CAN总线,但在执行过程中遇到了权限被拒绝的错误(Error=13, Permission denied)。虽然命令在adb shell中能正常运行,但在系统应用中使用Runtime.getRuntime().exec(su)时出现了问题。博主分享了尝试运行的代码,并附上了错误输出,寻求解决方案。

被折叠的 条评论
为什么被折叠?



