car*_*ris 5 c permissions android native
我需要一些帮助.我有一个主要用本机C代码编写的应用程序.我用这个__system_property_get(const char * name, char * value)方法来读取序列号.我的本机代码中各个点的设备.使用Android 8,我现在总是收到"拒绝访问"消息.
libc:访问被拒绝查找属性"ro.serialno"
有没有办法让我仍然能够读取序列号.在Android 8?我尝试切换到targetSDKversion <26但它仍然给我一个"拒绝访问"的消息.如果我使用Java Build.SERIAL(不管SDK版本),我会得到正确的值,Build.getSerial()如果我授予READ_PHONE_STATE权限,我会在SDK版本26中得到正确的值.但我无法在Java中读取这些值并将它们传递给本机代码,而无需重写本机代码.
有帮助吗?
小智 4
我也遇到了这个问题。最后我找到了问题的根本原因。在Android O中,SELinux在系统属性上设置了很多限制。在这种情况下,除了白名单中的某些域之外,有一个永远不允许限制读取序列号。
有关更具体的信息,您可以阅读以下代码system/sepolicy/public/domain.te:
neverallow {
domain
-adbd
-dumpstate
-hal_drm
-init
-mediadrmserver
-recovery
-shell
-system_server
} serialno_prop:file r_file_perms;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2978 次 |
| 最近记录: |