Android ioctl - root权限和使用

2024-02-08

我正在 Android 应用程序中开发一些路由功能,并且需要访问 ioctl。由于使用 ioctl 的应用程序需要 root 权限才能运行,因此我能够调用它们的唯一方法是链接一个单独的可执行文件并从 Java 调用它Runtime.getRuntime().exec().

有没有一种方法可以从 Android 中的 JNI 访问 root 权限,而无需构建单独的可执行文件?构建可执行文件是访问 ioctl 的最佳方法吗?


非根进程无法成为根进程(除了漏洞利用之外),所以是的,您需要一个单独的进程。

这是从 Linux 继承下来的,没有改变 - 区别在于,没有直接的方法可以从启动器以 root 身份启动 Android 应用程序进程,因为这会向 zygote 发送意图,从而分叉并减少专门从事应用程序进程的子进程。 (可能有一种迂回方法来手动创建应用程序进程,但是您必须有一个应用程序进程来执行此操作,因此根据定义,它是一个辅助进程。并且,作为一个不是应用程序的应用程序,它的效率会很低。 zygote 的子进程不会继承系统库的共享映射,因此必须将其自己的唯一副本加载到内存中)

ioctl() 只是另一个系统调用,并且仅当对该 fd(来自其设备文件)的访问权限需要 root 时才需要。显然,对于您想要使用的那些来说就是这种情况,但其他人则没有特权。例如,大多数Android框架IPC最终都是通过Binder ioctl来实现的,它们通常用于控制网络套接字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ioctl - root权限和使用 的相关文章

随机推荐