在 API 31 + / 文件系统访问上以 root 身份执行命令

问题描述 投票:0回答:1

我目前正在尝试通过工作应用程序获得对文件系统的完全访问权限。 我在 API 级别为 26、27、31、32 的 root AVD 上进行了测试 虽然通过终端手动执行命令没有问题(也可以在 apis 26/27 上以编程方式执行),但当我从应用程序调用相同命令时,似乎无法访问 apis 31 / 32 上的文件系统。 即使 'whoami' 明显返回 'root'

所以:

//Fails
val command = "su -c 'touch /data/data/something.../ 
//Succeeds
val cmd = "su -c 'touch /storage/something.../ 
//Also succeeds 
val cmd = "su -c 'ps -ef'

我猜这是高 API 上的文件系统的问题。有什么解决办法吗?

可能不是权限问题。只是我的应用程序无法看到整个文件系统。上面的命令“su -c 'touch /data/data/something.../ 返回'没有这样的文件或目录'。当你从终端运行命令时,情况并非如此

android linux-kernel sdk adb root-access
1个回答
0
投票

如果有人想知道,su 进程将使用 --mount-master 选项查看整个文件系统。 正如 su --help 所说,该选项是“强制在全局挂载命名空间中运行”

© www.soinside.com 2019 - 2024. All rights reserved.