# update_updater **Repository Path**: openharmony/update_updater ## Basic Information - **Project Name**: update_updater - **Description**: Updater module | 升级安装组件 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 424 - **Created**: 2021-06-01 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: harmonyos-components **Tags**: None ## README # 升级包安装组件 - [简介](#section184mcpsimp) - [目录](#section198mcpsimp) - [说明](#section218mcpsimp) - [使用说明](#section220mcpsimp) - [相关仓](#section247mcpsimp) ## 简介 升级包安装组件运行在updater分区,其功能主要包括读取misc分区信息获取升级包状态,对升级包进行校验,确保升级包合法有效;然后从升级包中解析出升级的可执行程序,创建子进程并启动升级程序。具体升级的动作由升级脚本控制。 更多升级子系统相关概念,请参考:[升级子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%8D%87%E7%BA%A7%E5%AD%90%E7%B3%BB%E7%BB%9F.md) **图 1** 升级子系统架构图 ![](figures/Openharmony-updater-升级子系统架构图.png) ## 目录 ``` 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 编译系统调用。 ## 相关仓 [升级子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%8D%87%E7%BA%A7%E5%AD%90%E7%B3%BB%E7%BB%9F.md) [**update\_updater**](https://gitee.com/openharmony/update_updater) [build](https://gitee.com/openharmony/build) [productdefine\_common](https://gitee.com/openharmony/productdefine_common)