gpt4 book ai didi

android应用程序root或系统权限

转载 作者:行者123 更新时间:2023-11-29 20:43:59 27 4
gpt4 key购买 nike

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

我的意思是,经过大量研究并查看了一些 root 浏览器的代码后,他们在需要 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 身份运行。

我尝试通过这种方式执行 su 后从 shell 运行应用程序:

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

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

我还尝试使用参数 --user 0 和 --user 1000,结果相同...我认为 dalvik 虚拟机会放弃父进程的特权。

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

可能与:

android:sharedUserId="android.uid.system"

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

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

是否可以以 root 或至少系统运行某些 android 应用程序?

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

最佳答案

据我所知,java 应用程序无法实现这一点。即使给app分配了system uid并进行了平台认证签名,依然无法获得root权限。 systemuid的思想是访问一些系统级的api,如控制飞行模式、获取帧缓冲区、强制停止包等,但不是以root权限控制文件系统。

关于android应用程序root或系统权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609310/

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