Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
背景:
由于手动焊接的HDMI线信号传输不太稳定,所以想测试直接在system.prop中添加设置默认HDMI分低分辨率(默认开机选择了最高分辨率),修改属性persist.sys.resolution.aux。
验证的时候是直接替换/system/build.prop,之后发现不起作用.
原因:
之前按照文档验证命令行设置HDMI分辨率,这时的property会被保存在/data/property目录下,
而system.prop的值是被最终生成到/system/build.prop文件中。
另一方面,系统在开机对system.prop和/data/property是分开按顺序加载的。
加载system和persist对应函数
property_service.cpp:
void load_system_props() {
load_properties_from_file(PROP_PATH_SYSTEM_BUILD, NULL);
load_properties_from_file(PROP_PATH_VENDOR_BUILD, NULL);
load_properties_from_file(PROP_PATH_FACTORY, "ro.*");
load_recovery_id_prop();
}
void load_persist_props(void) {
load_override_properties();
/* Read persistent properties after all default values have been loaded. */
load_persistent_proper