
1. OpenHarmony系统属性修改实战指南在OpenHarmony设备开发过程中我们经常需要定制设备的基础信息。最近我在移植OpenHarmony到某款开发板时就遇到了需要修改设备厂家名称、版本号和设备名称的需求。这些系统属性不仅关系到设备标识还会影响OTA升级、设备互联等核心功能。2. 系统属性基础解析2.1 关键系统属性说明OpenHarmony的系统属性主要存储在以下几个关键位置vendor目录包含厂商定制信息system目录基础系统配置product目录产品级配置这三个目录下的配置文件共同决定了设备最终呈现的系统属性。其中最重要的几个属性包括ro.product.manufacturer设备厂家名称ro.product.model设备型号ro.build.display.id版本显示名称ro.build.version.incremental版本号2.2 属性修改的影响范围修改这些属性会产生多方面影响系统识别影响设备在分布式组网中的标识应用兼容性某些应用会检查这些属性升级机制版本号直接影响OTA升级判断日志分析问题排查时依赖这些信息3. 具体修改方法详解3.1 修改设备厂家名称厂家名称通常定义在vendor/{company}/{product}/config.json文件中{ product_name: my_product, device_company: MyCompany, ... }同时需要检查以下文件vendor/{company}/{product}/BUILD.gnvendor/{company}/{product}/hals/build.gn修改后需要重新编译vendor镜像./build.sh --product-name my_product --build-target vendor_image3.2 调整版本号信息版本号主要在build目录下定义build/rootfs/usr/etc/version基础版本信息build/tools/build_profile构建配置关键参数示例ro.build.version.release3.1 ro.build.version.incremental20230815 ro.build.display.idOpenHarmony 3.1.0修改后需要重新生成system镜像./build.sh --product-name my_product --build-target system_image3.3 自定义设备名称设备名称主要通过以下方式定义在config.json中设置{ product_name: my_custom_device, ... }在device/{company}/{board}/build.prop中添加ro.product.modelMy Custom Device ro.product.namemy_custom_device4. 完整修改流程示例4.1 准备工作获取OpenHarmony源码repo init -u https://gitee.com/openharmony/manifest.git -b master repo sync -c安装编译工具链./build/prebuilts_download.sh4.2 分步修改流程修改厂家名称vim vendor/mycompany/myproduct/config.json # 修改device_company字段调整版本号vim build/rootfs/usr/etc/version # 更新版本信息自定义设备名称vim device/mycompany/myboard/build.prop # 修改ro.product.model等字段全量编译./build.sh --product-name myproduct --ccache5. 常见问题与解决方案5.1 修改后属性未生效可能原因修改了错误的配置文件没有清理旧编译产物镜像打包时配置未更新解决方案确认修改的文件路径正确执行clean操作rm -rf out检查编译日志确认修改被应用5.2 版本号格式问题OpenHarmony对版本号有严格校验必须符合x.y.z格式增量版本号应为日期格式显示名称不能包含特殊字符建议格式ro.build.version.release3.1.0 ro.build.version.incremental20230815 ro.build.display.idOpenHarmony-3.1.05.3 多设备兼容问题当需要支持多个设备时在product目录下创建不同配置使用PRODUCT_MODEL变量区分设备在编译时指定不同product-name示例目录结构product/ ├── device1/ │ └── config.json └── device2/ └── config.json6. 高级定制技巧6.1 动态属性设置可以通过init服务动态设置属性创建.rc文件on init setprop ro.product.manufacturer MyCompany在vendor/etc/init/下放置该文件6.2 属性继承机制OpenHarmony的属性继承顺序系统默认值device目录配置product目录配置vendor目录配置后加载的配置会覆盖前面的配置。6.3 属性调试方法查看当前所有属性hdc shell param list监控属性变化hdc shell param watch ro.7. 版本兼容性注意事项不同OpenHarmony版本有差异版本配置文件位置关键变化3.0vendor/目录初始版本3.1新增product/目录支持多产品配置3.2配置合并到system简化配置结构建议在修改前确认目标版本的具体要求。8. 最佳实践建议版本管理将配置变更纳入版本控制变更记录维护属性修改日志测试验证修改后全面测试以下功能设备识别分布式能力OTA升级文档同步更新相关技术文档在实际项目中我建议建立一个属性配置矩阵表记录每个属性的定义位置修改方法影响范围测试用例这样可以确保修改时不会遗漏关键环节。