14d5ea236Sopenharmony_ci# OTA<a name="EN-US_TOPIC_0000001078451366"></a> 24d5ea236Sopenharmony_ci 34d5ea236Sopenharmony_ci- [Introduction](#section11660541593) 44d5ea236Sopenharmony_ci- [Directory Structure](#section1464106163817) 54d5ea236Sopenharmony_ci- [Constraints](#section1718733212019) 64d5ea236Sopenharmony_ci- [Usage](#section18867101215181) 74d5ea236Sopenharmony_ci- [Repositories Involved](#section68521336131912) 84d5ea236Sopenharmony_ci 94d5ea236Sopenharmony_ci## Introduction<a name="section11660541593"></a> 104d5ea236Sopenharmony_ci 114d5ea236Sopenharmony_ciOver the Air \(OTA\) provides the remote device update capability. Your devices will be able to support OTA update after secondary development based on the provided APIs. By providing unified update APIs externally, the update subsystem shields the differences of underlying chips. 124d5ea236Sopenharmony_ci 134d5ea236Sopenharmony_ci## Directory Structure<a name="section1464106163817"></a> 144d5ea236Sopenharmony_ci 154d5ea236Sopenharmony_ci``` 164d5ea236Sopenharmony_ci/base/update/sys_installer_lite 174d5ea236Sopenharmony_ci. 184d5ea236Sopenharmony_ci├── frameworks # OTA update implementation, including update package parsing, verification, writing, and updating 194d5ea236Sopenharmony_ci│ ├── source # updater module source code 204d5ea236Sopenharmony_ci│ │ ├── updater # updater module code 214d5ea236Sopenharmony_ci│ │ └── verify # Verification algorithm code 224d5ea236Sopenharmony_ci│ └── test # Self-test code 234d5ea236Sopenharmony_ci│ └── unittest # Unit test code 244d5ea236Sopenharmony_ci├── hals # Chip adaptation code 254d5ea236Sopenharmony_ci└── interfaces # External APIs 264d5ea236Sopenharmony_ci └── kits # OTA update APIs 274d5ea236Sopenharmony_ci``` 284d5ea236Sopenharmony_ci 294d5ea236Sopenharmony_ci## Constraints<a name="section1718733212019"></a> 304d5ea236Sopenharmony_ci 314d5ea236Sopenharmony_ciThe update subsystem is compiled using the C language. Currently, only the Hi3518EV300, Hi3516DV300, and Hi3861 development boards are supported. If you want to support devices that use other chips, you can implement the OpenHarmony integration APIs in the **vendor** directory. Currently, only the full-package update is supported. 324d5ea236Sopenharmony_ci 334d5ea236Sopenharmony_ci## Usage<a name="section18867101215181"></a> 344d5ea236Sopenharmony_ci 354d5ea236Sopenharmony_ciAdd the dependency on the update subsystem. The following uses the Hi3516D V300 development board as an example. 364d5ea236Sopenharmony_ci 374d5ea236Sopenharmony_ci- Add **update** to the **subsystem\_list field in the vendor\\hisilicon\\ipcamera\_hi3516dv300\_liteos\\config.json** file, and add the following code under **subsystem\_list**: 384d5ea236Sopenharmony_ci 394d5ea236Sopenharmony_ci ``` 404d5ea236Sopenharmony_ci { 414d5ea236Sopenharmony_ci "subsystem": "update", 424d5ea236Sopenharmony_ci "components": [ 434d5ea236Sopenharmony_ci { "component": "hota", "features": [] } 444d5ea236Sopenharmony_ci ] 454d5ea236Sopenharmony_ci }, 464d5ea236Sopenharmony_ci ``` 474d5ea236Sopenharmony_ci 484d5ea236Sopenharmony_ci 494d5ea236Sopenharmony_ci- Add the **update.json** file to the **build\\lite\\components** directory. 504d5ea236Sopenharmony_ci 514d5ea236Sopenharmony_ci ``` 524d5ea236Sopenharmony_ci "components": [ 534d5ea236Sopenharmony_ci { 544d5ea236Sopenharmony_ci "component": "hota", 554d5ea236Sopenharmony_ci "description": "", 564d5ea236Sopenharmony_ci "optional": "false", 574d5ea236Sopenharmony_ci "dirs": [ 584d5ea236Sopenharmony_ci "base/update/sys_installer_lite/frameworks", 594d5ea236Sopenharmony_ci "base/update/sys_installer_lite/interfaces/kits" 604d5ea236Sopenharmony_ci ], 614d5ea236Sopenharmony_ci "targets": [ 624d5ea236Sopenharmony_ci "//base/update/sys_installer_lite/frameworks:sys_installer_lite" 634d5ea236Sopenharmony_ci ], 644d5ea236Sopenharmony_ci ... 654d5ea236Sopenharmony_ci ``` 664d5ea236Sopenharmony_ci 674d5ea236Sopenharmony_ci 684d5ea236Sopenharmony_ci- Add test code. For example, add **subsystem\_test** to the **base\\update\\ota\_lite\\frameworks\\BUILD.gn** file. 694d5ea236Sopenharmony_ci 704d5ea236Sopenharmony_ci- Run the following commands to compile the system. You can experience the OTA update function after flashing the system to the Hi3516 chip. 714d5ea236Sopenharmony_ci 724d5ea236Sopenharmony_ci ``` 734d5ea236Sopenharmony_ci hb set 744d5ea236Sopenharmony_ci hb build 754d5ea236Sopenharmony_ci ``` 764d5ea236Sopenharmony_ci 774d5ea236Sopenharmony_ci 784d5ea236Sopenharmony_ci## Repositories Involved<a name="section68521336131912"></a> 794d5ea236Sopenharmony_ci 804d5ea236Sopenharmony_ci[Update subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/update.md) 814d5ea236Sopenharmony_ci 824d5ea236Sopenharmony_ci**update\_ota\_lite** 834d5ea236Sopenharmony_ci 844d5ea236Sopenharmony_ci[device\_hisilicon\_hardware](https://gitee.com/openharmony/device_hisilicon_hardware/blob/master/README.md) 854d5ea236Sopenharmony_ci 86