微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android ioctl – root权限和用法

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

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

解决方法

非root进程无法成为root(超出漏洞利用),所以是的,您需要一个单独的进程.

这是从linux继承的未改变 – 不同之处在于没有直接的方法从启动器以root身份启动Android应用程序进程,因为它向zygote发送了一个意图,该fory关闭并且特权 – 减少专门用于应用程序进程的子进程. (可能有一种迂回的方法来手动创建一个应用程序进程,但你必须有一个应用程序进程来执行它,因此根据定义它将是一个辅助进程.并且它作为一个不是一个应用程序是低效的zygote的子节点不会继承系统库的共享映射,因此必须将自己独特的副本加载到内存中)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐