android - 文件资源管理器中的根访问权限

标签 android root file-manager

我正在编写一个文件浏览器,它将能够使用 root 访问权限修改系统文件,但我遇到了一些问题。

我现在正在做的是授予我的应用程序根访问权限,但执行“su”不起作用。 如果我在 adb shell 中设置文件夹的权限,该应用程序可以正常工作,但我认为 root 浏览不依赖于 chmod。

谁能告诉我是否有一种正确的方法可以让我的应用程序像具有root权限一样工作?

最佳答案

以 root 身份运行 Android 应用程序进程(其 dalvik VM 和 native 库)是极其难以实现的,并且出于多种原因而不建议,这不仅包括安全性,还包括由于必须加载系统库的私有(private)副本而不是加载系统库而导致的内存浪费。当您像正常应用程序启动一样从 zygote 继承非特权进程时,使用可用的共享只读副本。

某些 root 手机上的非官方“su”黑客功能可以让您启动一个帮助程序进程,该进程以 root 身份运行,而您的应用程序进程仍处于非特权状态。它不会更改调用它的应用程序的用户 ID - 事实上,在设计上确实没有任何机制可以在类 UNIX 操作系统上执行此操作。

一旦您拥有特权帮助进程,您就需要通过某种进程间通信方式(例如 stdin/stdout 或 unix 域套接字)与其进行通信,以让它代表您执行文件操作。手机上的 shell 甚至可以用作辅助应用程序 - 文件管理器需要执行的大部分操作都可以使用“cat”命令来实现。官方地说,这些都不是稳定的 API,但无论如何,应用程序可访问的“su” hack 并不在官方 Android 中,因此整个项目一开始就深陷“不受支持”的领域。

关于android - 文件资源管理器中的根访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571258/

相关文章:

python - 是否可以在 PyQt 应用程序中预览 pdf?

C# 文件 - 在剪贴板中如何设置/读取调用哪个操作 - 剪切或复制

android - 如何将 SherlockFragmentActivity 与 SlidingMenu 一起使用?

java - JSON 解析后小部件未更新

linux下不同用户下的java系统偏好设置

android - 将文件写入/系统

docker - Composer 容器内的根用户

swift - 在 Vapor 中使用临时文件响应请求的正确方法

Android 应用初始启动时间慢

Android录音和播放+免提电话作为选项