同步操作将从 OpenHarmony/update_updater 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
升级包安装组件运行在updater分区,其功能主要包括读取misc分区信息获取升级包状态,对升级包进行校验,确保升级包合法有效;然后从升级包中解析出升级的可执行程序,创建子进程并启动升级程序。具体升级的动作由升级脚本控制。
更多升级子系统相关概念,请参考:升级子系统
图 1 升级子系统架构图
base/update/updater/
├── resources # 升级子系统用户界面图片资源目录
├── services # 组件服务层代码目录
│ ├── applypatch # 升级包数据更新代码目录
│ ├── diffpatch # 差分还原代码目录
│ ├── etc # 启动相关配置文件目录
│ ├── flashd # flashd模式镜像写入和升级功代码目录
│ ├── fs_manager # 文件系统和分区管理代码目录
│ ├── hdi # 硬件相关接口定义
│ ├── include # 升级子系统头文件目录
│ ├── log # 升级子系统日志模块目录
│ ├── package # 升级包管理模块目录
│ ├── ptable_parse # 分区表解析代码目录
│ ├── script # 升级脚本管理目录
│ ├── ui # 升级ui界面代码目录
│ └── updater_binary # 升级可执行程序目录
├── interfaces
│ └── kits # 对外模块接口定义
└── utils # 升级子系统通用代码目录
└── include # 升级子系统通用函数头文件目录
升级包安装组件运行在updater分区里,需要如下的操作
1、创建updater分区
updater是一个独立的分区,分区大小建议不小于20MB。updater分区镜像是ext4 格式文件系统。确保系统内核ext4 文件系统的config 是打开状态。
2、创建misc分区
misc 分区中存储了升级子系统在升级过程中需要的元数据(metadata),如升级命令,掉电续传记录等。 misc 分区的大小约1MB,是一个裸分区,无需制作文件系统, 升级子系统直接访问。
3、分区配置表
升级包安装组件在运行过程中,需要通过分区配置表操作分区。默认的分区配置表文件名是fstab.updater,在编译的时候,打包到升级包安装组件中。
4、升级包安装组件启动
updater分区的init 进程有单独的配置文件 init.cfg,升级包安装进程启动配置在该文件中。
5、升级包安装组件编译
a、在build/subsystem_config.json文件添加配置。
如下:
"updater": {
"project": "hmf/updater",
"path": "base/update/updater",
"name": "updater",
"dir": "base/update"
},
b、 产品中添加需要编译的组件
以Hi3516DV300为例,在productdefine/common/products/Hi3516DV300.json 中添加updater:
"updater:updater":{},
6、updater分区镜像编译
编译配置在build仓下,build_updater_image.sh 脚本中,该脚本由OHOS 编译系统调用。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。