给Android应用程序授予root权限

8
使用随Android SDK提供的adb.exe,我可以获取Android设备的root访问权限。为了测试目的,我希望给一个Android应用程序也赋予root权限。我知道该应用程序正在以一个名为app_68的特定帐户下运行。是否有一种adb shell命令可以将app_68添加到“root组”中呢?
非常感谢您提前的评论/解决方案。

1
我相信唯一的方法是使用命令行,例如:Runtime.getRuntime().exec("su"); 这将把应用程序的UID更改为0,因此它具有root权限。(当然,正确的二进制文件必须已经安装)。如果您在应用程序中使用root,则这个非常有帮助。 - Reed
我尝试在一个测试的Android应用程序中执行“Runtime.getRuntime().exec("su");”,但是收到了一个错误消息“su: uid 10069 not allowed to su”。我猜测该应用程序无法更改自身以在su帐户下运行。 - ytw
3
你需要安装SuperUser和BusyBox。如果你都已经完成了,那么可能你意外地在SuperUser中拒绝了你的测试应用程序。 - Reed
1
@Jakar:如果不安装SuperUser和BusyBox,是否可以完成这个操作呢? - PCoder
应用程序不存在 root 权限,因为应用程序无法作为 root 执行。各种定制的修改可能具有运行帮助器任务或可执行文件的系统权限,这些权限可能具有您可以针对的授权方案,但它们是这些扩展的独特部分 - 它们不是 "Android" 的一部分。 - Chris Stratton
1个回答

1
你需要超级用户(su)二进制文件以root用户身份运行你的应用程序。 要作为root运行,请实现以下内容:
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());

os.writeBytes("yourCommand\n");

os.writeBytes("exit\n");

os.flush();
os.close();
try { p.waitFor(); } catch (InterruptedException e) {}

如果您收到类似于su:uid xxxx not allowed的内容,则需要使用SuperSU更新您的su-binary。

如果您想要一个完整详细且可行的源代码,请参见https://dev59.com/aWEi5IYBdhLWcg3w0O-Q#26654728。只需查看下面的代码:

更新:要获取结果(标准输出),请使用:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接