【发布时间】:2011-03-01 13:04:14
【问题描述】:
如果我在 JNI C 方法中调用 socket() 函数,应用程序仍然会失败并出现权限错误。如果我在 AndroidManifest.xml 中添加了 uses-permission 行,问题就解决了。
所以似乎在 Dalvik 虚拟机中没有实现 Android 权限检查,因为我正在调用本机 C 函数并且仍然被检查。我想知道如何在 Android 内核中执行检查,或者使用 ptrace 之类的东西跟踪应用程序以拦截每个系统调用或任何其他方式。非常感谢。
【问题讨论】:
-
从技术上讲,这仅适用于 Internet 域套接字。 Unix 域套接字使用具有不同常量的相同 socket() 调用没有通过 android“偏执网络”内核修改强制执行组 ID。
标签: android java-native-interface dalvik