应用正常运行但反复报ro.vendor.pref_scale_resolution访问拒绝错误
报错原因
E/libc: Access denied finding property "ro.vendor.pref_scale_resolution"是安卓系统层抛出的权限拦截日志,和应用自身代码逻辑无关:
- 该日志触发逻辑是系统渲染、UI适配相关模块运行时,尝试读取厂商预置的分辨率缩放只读属性
ro.vendor.pref_scale_resolution,被系统SELinux安全策略拦截拒绝。 - 该属性读取失败后系统会自动 fallback 到默认分辨率配置,完全不会影响应用正常功能运行,部分定制ROM、安卓模拟器环境下该问题出现概率极高。
- 如果应用内使用了WebView、游戏渲染引擎、视频播放这类会频繁触发系统分辨率查询的组件,该日志会反复打印。
对应处理方式
- 普通应用开发者无需修改任何业务代码,该报错不属于应用自身缺陷,直接忽略即可。
- 如果觉得日志频繁打印干扰调试,可以在Logcat中配置过滤规则,屏蔽tag为
libc、内容匹配pref_scale_resolution的日志。 - 如果你是ROM定制开发人员需要彻底消除该报错,可调整SELinux策略:
- 先定位触发属性读取的进程对应的SELinux域
- 在对应策略配置文件中开放该属性的读权限,参考配置:
allow <对应进程域> vendor_default_prop:file read;,也可以给ro.vendor.pref_scale_resolution单独配置安全上下文后做精细化权限授权。
内容的提问来源于stack exchange,提问作者Praveen Kumar
相关产品推荐
相关产品推荐

