gpt4 book ai didi

android - 在 RunTime.exec "uid 1000 not allowed to su"上出现错误 (“su”)

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:56 26 4
gpt4 key购买 nike

当我尝试从具有系统权限的程序运行 su 命令时,我在 stderr 上返回了这个错误:

uid 1000 not allowed to su

我将共享 uid 设置为 android.uid.system 或 android.uid.shell 但它没有改变任何东西。该设备应该是 Root过的。我真的不明白发生了什么。

代码如下:

private boolean runAsRoot(String cmd, File workdir) throws IOException {
Log.i(LOG_TAG, "Execute command as root: " + cmd);
Process p = Runtime.getRuntime().exec(new String[] {"su", "-c", cmd});
if (p == null) {
Log.e(LOG_TAG, "cannot create process for " + cmd);
return false;
}

int exit = -1;
try {
exit = p.waitFor();

InputStreamReader isr;
if (exit == 0) {
isr = new InputStreamReader(p.getInputStream());
} else {
isr = new InputStreamReader(p.getErrorStream());
}

BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();

String line;
while ((line = br.readLine()) != null) {
if (sb.length() > 0) {
sb.append('\n');
}
sb.append(line);
}

String string = sb.toString();

Log.l(LOG_TAG, exit == 0 ? Level.INFO : Level.SEVERE, string);

} catch (InterruptedException e) {
Log.e(LOG_TAG, e);
}

return exit == 0;
}

最佳答案

你有一个标准/官方的 android 'su' 程序,它不是为了这个目的而设计的,而不是像 superuser.apk 这样的东西,它已经被修改为允许这样做。

您不能(从普通的第 3 方应用程序)将共享 UID 设置为特权用户(例如 system),甚至是半特权用户(例如 shell)。

您的设备可能还没有被修改为允许 root 访问。

关于android - 在 RunTime.exec "uid 1000 not allowed to su"上出现错误 (“su”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com