android app root或系统权限

时间:2015-06-03 01:24:56

标签: android system root su

我正在尝试构建一个可以访问/ data dir(例如)的Android应用程序,而无需在执行su后解析在shell上运行的命令的输出。

我的意思是,经过大量的研究,并查看了一些根浏览器的代码,他们在需要root权限时所做的是在执行su之后解析命令的输出。

我想做的事情是:

File file = new File("/data");
File[] files = file.listFiles();// get the list array of file
for (int i = 0; i < files.length; i++) {
    File fileItem = files[i];
    System.out.println("FILE NAME: "+fileItem.getName().toString()) {
}

为了实现这一点,我认为应用程序进程必须从执行开始时以root身份运行。

我这样做后尝试从shell运行APP:

$su
#am start -n com.example.test/.ui.Activity

但在查看ps命令的输出之后,我看到应用程序以“u0_a110”用户身份运行而不是root用户。

此外,我尝试使用参数--user 0和--user 1000,结果相同......我认为dalvik虚拟机会从父进程中删除权限。

我还试图将应用程序转换为系统应用程序,将其移动到/ system / priv-app,结果相同,(应用程序的运行用户不是root用户,也不是系统)

可以与:

android:sharedUserId="android.uid.system"

在清单中,应用程序至少作为用户系统运行,我试图以这种方式运行应用程序,并且还放在/ system / priv-app中,并且手机没有完成启动。

我认为该错误是因为应用需要使用制造商的系统密钥进行签名。

可以以root用户身份运行某些Android应用程序,至少可以运行系统吗?

我知道如果我为ARM(或手机的架构)交叉编译Linux应用程序并以root身份在shell中运行该应用程序,该应用程序将具有root访问权限,但是,这是唯一的方法吗?我想用android java app实现它。

2 个答案:

答案 0 :(得分:2)

据我所知,Java应用程序无法实现此目的。即使将系统uid分配给应用程序并使用平台认证进行签名,它仍然无法获得root权限。 systemuid的想法是访问一些系统级api,如控制飞机模式,获取帧缓冲,强制停止包等,但不控制具有root权限的文件系统。

答案 1 :(得分:0)

Android Rooting如今非常普遍。每个人在询问Root他们的Android设备时都感到神圣,但现在互联网上有很多应用程序可以帮助你在几秒钟内完成你的Android。无需了解Coding等等。也不需要PC

据我们所知,没有办法在此处添加Java。您只需要从应用商店的Play商店安装一些best root apps并开始构建您的应用即可。

通过出色的用户界面和人工智能,让您的应用程序更具吸引力可能会对您有所帮助 对于Root Permission,请尝试以下代码

try {

String[] reboot = new String[] { "su", "-c", "reboot" };
//-c will cause the next argument to be treated as a command

Process process = Runtime.getRuntime().exec(reboot);

process.waitFor();  //wait for the native process to finish executing.

  } catch (Exception e) {

Toast.makeText(getApplicationContext()," Device not rooted.\n Could not reboot...",Toast.LENGTH_SHORT).show();

}

非常感谢!