Android API:如何使用root设备以编程方式访问系统文件?

Android API: How to access system file programmatically with rooted device?

提问人:Ray Liu 提问时间:11/11/2023 更新时间:11/11/2023 访问量:46

问:

在授予我的应用程序超级用户权限后Runtime.getRuntime().exec("su");

我仍然无法访问系统文件,例如 /bin 中的文件

File file = new File("/bin");
File[] fileList = file.listFiles(); // fileList is a null array

有什么解决办法吗?

Android

评论


答:

0赞 Robert 11/11/2023 #1

应用程序本身(您在 Java/Kotlin 中开发的代码)永远不会获得 root 权限。只有在应用打开的 root shell 中,才能执行标准的 Linux 命令行工具来执行 root 操作。

因此,执行对您的应用程序绝对没有影响。它只是启动一个 root shell,并且由于没有要执行的命令直接关闭它。Runtime.getRuntime().exec("su");

在您的情况下,我只会假设该文件夹不存在。您很可能正在搜索 或 。列出其中一个文件夹不需要 root 权限。此外,列出不需要 root 权限。您可以使用 Java 代码或列出文件系统中的文件来查看实际存在的目录。/bin/system/bin/system/sbin/adb shell ls -la /

评论

0赞 Ray Liu 11/11/2023
感谢您的回复!所以你的意思是没有官方的 API 支持 root 权限,我能做的就是使用 shell 获得 root 权限,对吧?
0赞 Robert 11/11/2023
@RayLiu 有一些可用的库可以简化使用 root 权限执行命令的过程,例如 github.com/topjohnwu/libsu。顺便说一句:如果有帮助,请随时投票和/或接受我的问题。