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