1# Updater<a name="EN-US_TOPIC_0000001148614629"></a> 2 3- [Introduction](#section184mcpsimp) 4- [Directory Structure](#section198mcpsimp) 5- [Usage](#section218mcpsimp) 6 - [Usage Guidelines](#section220mcpsimp) 7 8- [Repositories Involved](#section247mcpsimp) 9 10## Introduction<a name="section184mcpsimp"></a> 11 12The updater runs in the recovery partition. It reads the misc partition information to obtain the update package status and verifies the update package to ensure that the update package is valid. Then, the updater parses the executable program from the update package, creates a subprocess, and starts the update program. After that, update operations will be automatically implemented by the update script. 13 14## Directory Structure<a name="section198mcpsimp"></a> 15 16``` 17base/update/updater/ 18├── resources # UI image resources of the update subsystem 19├── services # Service code of the updater 20│ ├── applypatch # Update package data update code 21│ ├── fs_manager # File system and partition management code 22│ ├── include # Header files for the update subsystem 23│ ├── log # Log module of the update subsystem 24│ ├── package # Update packages 25│ ├── script # Update scripts 26│ ├── diffpatch # Differential package restore code 27│ ├── sparse_image # Sparse image parsing code 28│ ├── ui # UI code 29│ └── updater_binary # Executable programs 30├── interfaces 31│ └── kits # External APIs 32└── utils # Common utilities of the update subsystem 33 └── include # Header files for general functions of the update subsystem 34``` 35 36## Usage<a name="section218mcpsimp"></a> 37 38### Usage Guidelines<a name="section220mcpsimp"></a> 39 40The updater runs in the recovery partition. To ensure proper functioning of the updater, perform the following operations: 41 421. Create a recovery partition. 43 44The recovery partition is independent of other partitions. It is recommended that the size of the recovery partition be greater than or equal to 20 MB. The recovery partition image is an ext4 file system. Ensure that the **config** option of the ext4 file system in the system kernel is enabled. 45 462. Create the misc partition. 47 48The misc partition stores metadata required by the update subsystem during the update process. Such data includes update commands and records of resumable data transfer upon power-off. This partition is a raw partition and its size is about 1 MB. You do not need to create a file system for the misc partition, because the update subsystem can directly access this partition. 49 503. Prepare the partition configuration table. 51 52During the update process, the updater needs to operate the partitions through the partition configuration table. The default file name of the partition configuration table is **fstab.updater**. You need to pack the **fstab.updater** file into the updater during compilation. 53 544. Start the updater. 55 56The init process in the recovery partition has an independent configuration file named **init.cfg**. The startup configuration of the updater is stored in this file. 57 585. Compile the updater. 59 60a. Add the updater configurations to the **build/subsystem\_config.json** file. 61 62Example configuration: 63 64``` 65"updater": { 66"project": "hmf/updater", 67"path": "base/update/updater", 68"name": "updater", 69"dir": "base/update" 70}, 71``` 72 73b. Add the updater for the desired product. 74 75For example, to add the updater for Hi3516D V300, add the following code to the **productdefine/common/products/Hi3516DV300.json** file. 76 77``` 78 "updater:updater":{}, 79``` 80 816. Compile the recovery partition image. 82 83Add the compilation configuration to the **build\_updater\_image.sh** script, which is stored in the **build** repository and called by the OpenHarmony compilation system. 84 85## Repositories Involved<a name="section247mcpsimp"></a> 86 87Update subsystem 88 89**update\_updater** 90 91build 92 93productdefine\_common 94 95