su:setgid 失败:aosp 中不允许操作错误

时间:2021-06-07 10:28:40

标签: android android-source

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 错误

1 个答案:

答案 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:/ #