提问人:Ray Liu 提问时间:11/11/2023 更新时间:11/11/2023 访问量:46
Android API:如何使用root设备以编程方式访问系统文件?
Android API: How to access system file programmatically with rooted device?
问:
在授予我的应用程序超级用户权限后Runtime.getRuntime().exec("su");
我仍然无法访问系统文件,例如 /bin 中的文件
File file = new File("/bin");
File[] fileList = file.listFiles(); // fileList is a null array
有什么解决办法吗?
答:
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。顺便说一句:如果有帮助,请随时投票和/或接受我的问题。
评论