我将此行添加到我的代码
Process process = Runtime.getRuntime().exec("su -c");
或
Process process = Runtime.getRuntime().exec("su");
尝试运行“su”命令,
process.exitValue()返回1表示失败。
这发生在我的一个Android设备上,而我的另一个root用户设备与此命令完美配合。 (process.exitValue()返回0)
有人可以教我如何追踪错误或如何解决错误吗?
当我的两个设备几乎处于相同状态时,我对此错误感到困惑。
感谢您的回复。
大家好,
感谢您与我讨论这个问题。你的回复告诉我一个线索,我已经删除了我的旧su并放置了一个新的su。幸运的是,返回值现在为0,我想这意味着正确。但是,您是否有人知道.exec(“su -c”)和.exec(“su”)之间的区别是什么?如果你知道区别,请告诉我。
答案 0 :(得分:1)
命令su
(表示超级用户)仅在 rooted 手机上有效。这就是你的root手机识别它并按预期工作的原因。因此,要么根据您的其他设备,要么将这个想法放在非根电话上:)
答案 1 :(得分:1)
我怀疑你在问题手机上缺少超级用户,对吗? 或者至少有关于超级用户的事情可能是错误的(版本,二进制文件......)
su
调用超级用户,允许root权限访问。
最新版本的超级用户似乎出现了许多问题。
尝试删除并安装其他版本:
另一个注意事项:如果您尝试获取root访问权限或以root身份执行命令,则不应仅使用exec("su")
。通过stericson自己查看 RootTools 库;)
答案 2 :(得分:0)
由于这是我搜索短语的唯一结果,我想我会为其他人发布更新。
按照安装Cyanogenmod的说明进行操作。我的问题通过在设备上禁用大容量存储模式解决(将其更改为其他选项之一)。