aosp 版本 android-8.1.0_r18 电话联系5x 工程系统 我的应用是系统签名 image
shell没有问题
# adb shell
# getenforce selinux status is disabled
Permissive
# su system
$ su
没有任何错误
su的权限说明
-rwsrwsrwx 1 root shell 11080 2021-06-07 17:14 /system/xbin/su
我修改了 su.cpp
if (current_uid != AID_ROOT && current_uid != AID_SHELL && current_uid != AID_SYSTEM) error(1, 0, "not allowed");
应用代码
process = Runtime.getRuntime().exec("su");
BufferedReader resultReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
result = new StringBuffer();
error = new StringBuffer();
DataOutputStream os = new DataOutputStream(process.getOutputStream());
process.waitFor();
String line;
while ((line = resultReader.readLine()) != null) {
line += "\n";
result.append(line);
Log.d("AC", line);
}
resultReader.close();
while ((line = errorReader.readLine()) != null) {
line += "\n";
error.append(line);
Log.e("AC", "exec err:" + line);
}
我得到 su: setgid failed: Operation not allowed 错误
答案 0 :(得分:0)
@Yong 我设置了 su 文件的 cap_setgid 功能,运行我得到的应用程序
java.io.IOException: Cannot run program "su": error=1, Operation not permitted
bullhead:/ # getcap /system/xbin/su
/system/xbin/su = cap_setgid+eip
bullhead:/ #