授予Android应用程序根权限

授予Android应用程序根权限,android,permissions,Android,Permissions,使用Android SDK附带的adb.exe,我可以获得Android设备的root访问权限。 出于测试目的,我还想授予Android应用程序根权限。 我知道该应用程序是在一个名为app_68的特定帐户下运行的。 是否有adb shell命令将app_68添加到“根组” 提前感谢您的评论/解决方案。您需要超级用户(su)二进制文件以root用户身份运行应用程序。 要以root用户身份运行,请执行以下操作: Process p = Runtime.getRuntime().exec("su");

使用Android SDK附带的adb.exe,我可以获得Android设备的root访问权限。 出于测试目的,我还想授予Android应用程序根权限。 我知道该应用程序是在一个名为app_68的特定帐户下运行的。 是否有adb shell命令将app_68添加到“根组”


提前感谢您的评论/解决方案。

您需要超级用户(
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二进制文件

还可以查看是否需要一个完整详细的工作源代码。只需查看以下代码:

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


我认为唯一的方法是使用命令行,比如:
Runtime.getRuntime().exec(“su”)
将应用程序的UID更改为0,使其具有根权限。(当然,必须已经安装了正确的二进制文件)。如果你在应用程序中使用root,这会有很大帮助。我试图从测试Android应用程序中执行“Runtime.getRuntime().exec(“su”);”并收到错误消息“su:uid 10069不允许su”。我猜这个应用程序不能改变自己在su帐户下运行。你必须安装SuperUser和BusyBox。如果您已经完成了这两个步骤,那么可能是您意外地在中拒绝了您的测试应用程序SuperUser@Jakar:如果不安装超级用户和BusyBox,是否可以完成此操作,这将是一个有趣的问题。应用程序没有root权限,因为应用程序不能以root身份执行。各种定制变更可能有一个系统,用于以root用户身份运行助手任务或可执行文件,这些系统可能有您可以针对的授权方案,但它们对于这些扩展是唯一的—它们不是“android”的一部分。