Zel*_*luX 16 java-native-interface android dalvik
如果我socket()在JNI C方法中调用函数,应用程序仍将失败并出现权限错误.如果我在AndroidManifest.xml中放置一个uses-permission行,问题就解决了.
所以似乎在Dalvik虚拟机中没有实现Android权限检查,因为我正在调用本机C函数并且仍然会被检查.我想知道在Android内核中执行检查的方式,或者跟踪应用程序的方式是ptrace拦截每个系统调用,或者任何其他方式.非常感谢.
fad*_*den 19
检查由Linux内核执行,使用组成员身份来确定访问权限.
如果您查看VM 中的zygote fork代码,您可以使用setgroups()来设置补充组ID.如果你在app框架代码中追逐它,你可以看到它确定权限的位置并将它们传递给forkAndSpecialize().
本机代码在SDK应用程序使用的相同沙箱中运行,因此与SDK应用程序具有相同的安全模型.
请参阅下载Android NDK:
如果您编写本机代码,您的应用程序仍然打包成.apk文件,它们仍然在设备上的虚拟机内运行.基本的Android应用程序模型不会改变.
| 归档时间: |
|
| 查看次数: |
4647 次 |
| 最近记录: |