gpt4 book ai didi

Android ioctl - root权限和使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:07 26 4
gpt4 key购买 nike

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

有没有办法在不构建单独的可执行文件的情况下从 Android 中的 JNI 访问 root 权限?构建可执行文件是访问 ioctl 的最佳方法吗?

最佳答案

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

这是从 linux 继承而来的——不同之处在于没有直接的方法以 root 身份从启动器启动 android 应用程序进程,因为它向 zygote 发送了一个 Intent ,它 fork 并减少了一个专门从事申请流程。 (可能有一个迂回的方法来手动创建一个应用程序进程,但你必须有一个应用程序进程来做它,所以根据定义它是一个辅助进程。而且作为一个不是一个应用程序的应用程序效率会很低zygote 的 child 不会继承系统库的共享映射,因此必须将自己唯一的副本加载到内存中)

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

关于Android ioctl - root权限和使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com