提交 1e8be39f 编写于 作者: O openharmony_ci 提交者: Gitee

!285 master更新同步release分支

Merge pull request !285 from NEEN/master
...@@ -53,7 +53,7 @@ This layer provides with what you need to develop OpenHarmony applications: appl ...@@ -53,7 +53,7 @@ This layer provides with what you need to develop OpenHarmony applications: appl
**Application layer** **Application layer**
This layer consists of system applications and third-party applications. Each OpenHarmony application is powered by one or more Feature Abilities \(FAs\) or Particle Abilities \(PA\). An FA provides a UI for user interaction. A PA has no UI and provides background task processing as well as data access. Applications developed based on FAs and PAs provide specific service characteristics and enable cross-device scheduling and distribution, delighting users with consistent and efficient experience. This layer consists of system applications and third-party applications. Each OpenHarmony application is powered by one or more Feature Abilities \(FAs\) or Particle Abilities \(PAs\). An FA provides a UI for user interaction. A PA has no UI and provides background task processing as well as data access. Applications developed based on FAs and PAs provide specific service characteristics and enable cross-device scheduling and distribution, delighting users with consistent and efficient experience.
## Technical Features<a name="section12212842173518"></a> ## Technical Features<a name="section12212842173518"></a>
...@@ -218,7 +218,7 @@ For details about the subsystems in the following table, see [https://gitee.com ...@@ -218,7 +218,7 @@ For details about the subsystems in the following table, see [https://gitee.com
</tr> </tr>
<tr id="row198318945311"><td class="cellrowborder" align="left" valign="top" width="13%" headers="mcps1.1.4.1.1 "><p id="p25014935113"><a name="p25014935113"></a><a name="p25014935113"></a>Testing</p> <tr id="row198318945311"><td class="cellrowborder" align="left" valign="top" width="13%" headers="mcps1.1.4.1.1 "><p id="p25014935113"><a name="p25014935113"></a><a name="p25014935113"></a>Testing</p>
</td> </td>
<td class="cellrowborder" align="left" valign="top" width="75%" headers="mcps1.1.4.1.2 "><p id="p1950149205111"><a name="p1950149205111"></a><a name="p1950149205111"></a>The development process is tset driven. You can develop new cases or modify existing cases to test new or enhanced system features. The test helps you develop high-quality code in the development phase.</p> <td class="cellrowborder" align="left" valign="top" width="75%" headers="mcps1.1.4.1.2 "><p id="p1950149205111"><a name="p1950149205111"></a><a name="p1950149205111"></a>The development process is test driven. You can develop new cases or modify existing cases to test new or enhanced system features. The test helps you develop high-quality code in the development phase.</p>
</td> </td>
<td class="cellrowborder" align="left" valign="top" width="12%" headers="mcps1.1.4.1.3 "><p id="p450117935113"><a name="p450117935113"></a><a name="p450117935113"></a><a href="https://gitee.com/openharmony/docs/blob/master/en/readme/testing-subsystem.md" target="_blank" rel="noopener noreferrer">README</a></p> <td class="cellrowborder" align="left" valign="top" width="12%" headers="mcps1.1.4.1.3 "><p id="p450117935113"><a name="p450117935113"></a><a name="p450117935113"></a><a href="https://gitee.com/openharmony/docs/blob/master/en/readme/testing-subsystem.md" target="_blank" rel="noopener noreferrer">README</a></p>
</td> </td>
...@@ -248,7 +248,7 @@ For details about the subsystems in the following table, see [https://gitee.com ...@@ -248,7 +248,7 @@ For details about the subsystems in the following table, see [https://gitee.com
</td> </td>
<td class="cellrowborder" align="left" valign="top" width="75%" headers="mcps1.1.4.1.2 "><p id="p050219175120"><a name="p050219175120"></a><a name="p050219175120"></a>The power management subsystem provides capabilities such as querying the battery charging/discharging status and managing the system power. Currently, available capabilities include querying the battery level and keeping the device screen always on.</p> <td class="cellrowborder" align="left" valign="top" width="75%" headers="mcps1.1.4.1.2 "><p id="p050219175120"><a name="p050219175120"></a><a name="p050219175120"></a>The power management subsystem provides capabilities such as querying the battery charging/discharging status and managing the system power. Currently, available capabilities include querying the battery level and keeping the device screen always on.</p>
</td> </td>
<td class="cellrowborder" align="left" valign="top" width="12%" headers="mcps1.1.4.1.3 "><p id="p20502119175116"><a name="p20502119175116"></a><a name="p20502119175116"></a><a href="https://gitee.com/openharmony/docs/blob/master/en/readme/lite-power-management.md" target="_blank" rel="noopener noreferrer">README</a></p> <td class="cellrowborder" align="left" valign="top" width="12%" headers="mcps1.1.4.1.3 "><p id="p20502119175116"><a name="p20502119175116"></a><a name="p20502119175116"></a><a href="https://gitee.com/openharmony/docs/blob/master/en/readme/power-management.md" target="_blank" rel="noopener noreferrer">README</a></p>
</td> </td>
</tr> </tr>
<tr id="row163116577176"><td class="cellrowborder" align="left" valign="top" width="13%" headers="mcps1.1.4.1.1 "><p id="p185021915120"><a name="p185021915120"></a><a name="p185021915120"></a>Update</p> <tr id="row163116577176"><td class="cellrowborder" align="left" valign="top" width="13%" headers="mcps1.1.4.1.1 "><p id="p185021915120"><a name="p185021915120"></a><a name="p185021915120"></a>Update</p>
...@@ -331,13 +331,13 @@ For details about how to obtain the source code of OpenHarmony, see [Source Cod ...@@ -331,13 +331,13 @@ For details about how to obtain the source code of OpenHarmony, see [Source Cod
## How to Participate<a name="section19611528174215"></a> ## How to Participate<a name="section19611528174215"></a>
For details about how to join in the OpenHarmony community, see [OpenHarmony Community](https://gitee.com/openharmony/community/blob/master/README.md). For details about how to join the OpenHarmony community, see [OpenHarmony Community](https://gitee.com/openharmony/community/blob/master/README.md).
For details about how to contribute, see [Contribution](https://gitee.com/openharmony/docs/blob/master/en/contribute/contribution.md). For details about how to contribute, see [Contribution](https://gitee.com/openharmony/docs/blob/master/en/contribute/contribution.md).
## License Agreement<a name="section1245517472115"></a> ## License Agreement<a name="section1245517472115"></a>
OpenHarmony is open-source. For details, see the LICENSE in each repository. OpenHarmony mainly complies with Apache License v2.0. For details, see the LICENSE in each repository.
## Contact Info<a name="section61728335424"></a> ## Contact Info<a name="section61728335424"></a>
......
...@@ -235,7 +235,7 @@ OpenHarmony支持如下几种设备类型: ...@@ -235,7 +235,7 @@ OpenHarmony支持如下几种设备类型:
</td> </td>
<td class="cellrowborder" valign="top" width="75.85758575857585%" headers="mcps1.2.4.1.2 "><p id="p13967237151716"><a name="p13967237151716"></a><a name="p13967237151716"></a>电源管理子系统主要提供了电池、充放电状态查询能力和系统电源管理服务能力,目前主要包括电量查询和亮灭屏控制锁的能力。</p> <td class="cellrowborder" valign="top" width="75.85758575857585%" headers="mcps1.2.4.1.2 "><p id="p13967237151716"><a name="p13967237151716"></a><a name="p13967237151716"></a>电源管理子系统主要提供了电池、充放电状态查询能力和系统电源管理服务能力,目前主要包括电量查询和亮灭屏控制锁的能力。</p>
</td> </td>
<td class="cellrowborder" valign="top" width="10.76107610761076%" headers="mcps1.2.4.1.3 "><p id="p782825121818"><a name="p782825121818"></a><a name="p782825121818"></a><a href="https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/轻量级电源管理子系统.md" target="_blank" rel="noopener noreferrer">README</a></p> <td class="cellrowborder" valign="top" width="10.76107610761076%" headers="mcps1.2.4.1.3 "><p id="p782825121818"><a name="p782825121818"></a><a name="p782825121818"></a><a href="https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/电源管理子系统.md" target="_blank" rel="noopener noreferrer">README</a></p>
</td> </td>
</tr> </tr>
<tr id="row163116577176"><td class="cellrowborder" valign="top" width="13.381338133813381%" headers="mcps1.2.4.1.1 "><p id="p143265731720"><a name="p143265731720"></a><a name="p143265731720"></a>升级服务</p> <tr id="row163116577176"><td class="cellrowborder" valign="top" width="13.381338133813381%" headers="mcps1.2.4.1.1 "><p id="p143265731720"><a name="p143265731720"></a><a name="p143265731720"></a>升级服务</p>
...@@ -321,9 +321,13 @@ English Version:[OpenHarmony Documentation](https://gitee.com/openharmony/docs ...@@ -321,9 +321,13 @@ English Version:[OpenHarmony Documentation](https://gitee.com/openharmony/docs
参与贡献:[如何贡献链接](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md) 参与贡献:[如何贡献链接](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md)
参与API治理:[OpenHarmony API治理章程](https://gitee.com/openharmony/docs/tree/master/zh-cn/design/OpenHarmony-API-governance.md)
## 许可协议<a name="section1245517472115"></a> ## 许可协议<a name="section1245517472115"></a>
OpenHarmony是一种开源软件,参考各仓下LICENSE文本。 OpenHarmony主要遵循Apache License V2.0协议,详情请参考各代码仓LICENSE声明。
OpenHarmony引用三方开源软件及许可证说明,参考[第三方开源软件说明](https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E5%8F%8A%E8%AE%B8%E5%8F%AF%E8%AF%81%E8%AF%B4%E6%98%8E.md)
## 联系方式<a name="section61728335424"></a> ## 联系方式<a name="section61728335424"></a>
......
...@@ -25,7 +25,7 @@ OpenHarmony is an open-source community and encourages everyone in the community ...@@ -25,7 +25,7 @@ OpenHarmony is an open-source community and encourages everyone in the community
- [Contributing to the Code](en/contribute/contributing-code.md) - [Contributing to the Code](en/contribute/contributing-code.md)
- [Contributing to the Documentation](en/contribute/documentation-contribution.md) - [Contributing to the Documentation](en/contribute/documentation-contribution.md)
For more details on how to contribute, see [Contributing Documents](en/contibute). For more details on how to contribute, see [Contributing Documents](en/contribute).
## Get Source Code and Tools ## Get Source Code and Tools
To download the source code and tools required for the project, click the following links: To download the source code and tools required for the project, click the following links:
- [Source Code Acquisition](en/device-dev/get-code/source-code-acquisition.md) - [Source Code Acquisition](en/device-dev/get-code/source-code-acquisition.md)
......
...@@ -17,8 +17,8 @@ For details, see [Contribution Process](contribution-process.md). ...@@ -17,8 +17,8 @@ For details, see [Contribution Process](contribution-process.md).
## Security Issue Disclosure<a name="en-us_topic_0000001051566732_section725624119448"></a> ## Security Issue Disclosure<a name="en-us_topic_0000001051566732_section725624119448"></a>
- Security handling procedure - [Security Issue Handling and Release Processes](https://gitee.com/openharmony/security/blob/master/en/security-process/README.md)
- Security disclosure information - [OpenHarmony Security and Disclosure Statement](https://gitee.com/openharmony/security/blob/master/en/security-process/security-disclosure.md)
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
## Preparations<a name="section124971410183614"></a> ## Preparations<a name="section124971410183614"></a>
- Install, configure, and use Git. For details, visit [https://gitee.com/help/categories/43](https://gitee.com/help/categories/43). - Install, configure, and use Git. For details, visit [https://gitee.com/help/categories/43](https://gitee.com/help/categories/43).
- Register an SSH public key. For details, visit [https://gitee.com/help/articles/4181](https://gitee.com/help/articles/4181). - Register an SSH public key. For details, visit [https://gitee.com/help/articles/4191](https://gitee.com/help/articles/4191).
- Find the repository that you are interested in on the code hosting platform of OpenHarmony. - Find the repository that you are interested in on the code hosting platform of OpenHarmony.
## Downloading Code<a name="section6125202333611"></a> ## Downloading Code<a name="section6125202333611"></a>
...@@ -122,7 +122,7 @@ Perform the following steps to download the code in the repository to your compu ...@@ -122,7 +122,7 @@ Perform the following steps to download the code in the repository to your compu
repo config --global repo.token {TOKEN} repo config --global repo.token {TOKEN}
``` ```
The token is generated by choosing **Settings** \> **Security Settings** \> **Private Token** on Gitee. Example: The token is generated by choosing **Settings** \> **Security Settings** \> [**Private Token**](https://gitee.com/profile/personal_access_tokens) on Gitee. Example:
``` ```
repo config --global repo.token 211XXXXXXXXXXXXXXXXXXXXXXXX repo config --global repo.token 211XXXXXXXXXXXXXXXXXXXXXXXX
......
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
- [HPM-based Docker](#en-us_topic_0000001055701144_section580016182283) - [HPM-based Docker](#en-us_topic_0000001055701144_section580016182283)
- [Standalone Docker Environment](#en-us_topic_0000001055701144_section319412277287) - [Standalone Docker Environment](#en-us_topic_0000001055701144_section319412277287)
- [Setting Up the Docker Environment](#en-us_topic_0000001055701144_section436042904715) - [Setting Up the Docker Environment](#en-us_topic_0000001055701144_section436042904715)
- [Building for and](#en-us_topic_0000001055701144_section19121250134716) - [Building](#en-us_topic_0000001055701144_section19121250134716)
- [Setting Up the Docker Environment for](#en-us_topic_0000001055701144_section776616712419)
- [Acquiring the Device Development Tool \(HUAWEI DevEco Device Tool\)](#en-us_topic_0000001055701144_section2452141120244) - [Acquiring the Device Development Tool \(HUAWEI DevEco Device Tool\)](#en-us_topic_0000001055701144_section2452141120244)
- [Acquiring the Application Development Tool \(HUAWEI DevEco Studio\)](#en-us_topic_0000001055701144_section0904101019258) - [Acquiring the Application Development Tool \(HUAWEI DevEco Studio\)](#en-us_topic_0000001055701144_section0904101019258)
...@@ -103,7 +102,7 @@ Start building. The following takes ip\_camera\_hi3518ev300 as an example. Docke ...@@ -103,7 +102,7 @@ Start building. The following takes ip\_camera\_hi3518ev300 as an example. Docke
The following will be displayed if the building is successful: The following will be displayed if the building is successful:
``` ```
...... ...
ohos ipcamera_hi3518 build success! ohos ipcamera_hi3518 build success!
@ohos/ip_camera_hi3518ev300: distribution building completed. @ohos/ip_camera_hi3518ev300: distribution building completed.
``` ```
...@@ -128,7 +127,7 @@ Start building. The following takes ip\_camera\_hi3518ev300 as an example. Docke ...@@ -128,7 +127,7 @@ Start building. The following takes ip\_camera\_hi3518ev300 as an example. Docke
The Docker image of OpenHarmony is hosted on [HUAWEI Cloud SWR](https://auth.huaweicloud.com/authui/login.html?service=https%3A%2F%2Fconsole.huaweicloud.com%2Fswr%2F%3Fregion%3Dcn-south-1%26cloud_route_state%3D%2Fapp%2Fwarehouse%2FwarehouseMangeDetail%2Fgoldensir%2Fopenharmony-docker%2Fopenharmony-docker%3Ftype%3DownImage&locale=en-us#/login). Using the Docker image will help simplify environment configurations needed for the building. After configuring the development environments, perform the steps below to access the Docker environment. The following steps use Ubuntu as an example \(Windows is also supported\). The Docker image of OpenHarmony is hosted on [HUAWEI Cloud SWR](https://auth.huaweicloud.com/authui/login.html?service=https%3A%2F%2Fconsole.huaweicloud.com%2Fswr%2F%3Fregion%3Dcn-south-1%26cloud_route_state%3D%2Fapp%2Fwarehouse%2FwarehouseMangeDetail%2Fgoldensir%2Fopenharmony-docker%2Fopenharmony-docker%3Ftype%3DownImage&locale=en-us#/login). Using the Docker image will help simplify environment configurations needed for the building. After configuring the development environments, perform the steps below to access the Docker environment. The following steps use Ubuntu as an example \(Windows is also supported\).
### Setting Up the Docker Environment<a name="en-us_topic_0000001055701144_section436042904715"></a> ### Setting Up the Docker Environment for Mini-System Devices \(reference memory ≥ 128 KB\) and Small-System Devices \(reference memory ≥ 1 MB\)<a name="en-us_topic_0000001055701144_section436042904715"></a>
**Method 1: Obtaining the Docker image from HuaweiCloud SWR** **Method 1: Obtaining the Docker image from HuaweiCloud SWR**
...@@ -207,50 +206,11 @@ The following uses the Hi3516 platform as an example to describe the build proce ...@@ -207,50 +206,11 @@ The following uses the Hi3516 platform as an example to describe the build proce
The files will be generated in the **out/hispark\_taurus/ipcamera\_hispark\_taurus** directory. The files will be generated in the **out/hispark\_taurus/ipcamera\_hispark\_taurus** directory.
### Setting Up the Docker Environment for Large-System Devices \(reference memory ≥ 1 GB\)<a name="en-us_topic_0000001055701144_section776616712419"></a>
**Method 1: Obtaining the Docker image from HuaweiCloud SWR**
1. Obtain the Docker image.
```
docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
```
2. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment:
```
docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.3
```
**Method 2: Using the Dockerfile to Build a Local Docker Image**
1. Obtain the Dockerfile script for a local Docker image.
```
git clone https://gitee.com/openharmony/docs.git
```
2. Go to the directory of the Dockerfile code and run the following command to build the Docker image:
```
cd docs/docker
./build.sh
```
3. Go to the root directory of OpenHarmony code and run the following command to access the Docker build environment:
```
docker run -it -v $(pwd):/home/openharmony openharmony-docker:0.0.3
```
## Acquiring the Device Development Tool \(HUAWEI DevEco Device Tool\)<a name="en-us_topic_0000001055701144_section2452141120244"></a> ## Acquiring the Device Development Tool \(HUAWEI DevEco Device Tool\)<a name="en-us_topic_0000001055701144_section2452141120244"></a>
HUAWEI DevEco Device Tool is a one-stop integrated development environment \(IDE\) provided to develop applications for HarmonyOS-based smart devices. It allows on-demand customization of HarmonyOS components, code editing, compilation, burning, and debugging, and supports C and C++ languages. This tool is installed in Visual Studio Code as a plug-in. For details, see [Tool Acquisition](https://device.harmonyos.com/en/ide) and [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905). HUAWEI DevEco Device Tool is a one-stop integrated development environment \(IDE\) provided to develop applications for OpenHarmony-based smart devices. It allows on-demand customization of OpenHarmony components, code editing, compilation, burning, and debugging, and supports C and C++ languages. This tool is installed in Visual Studio Code as a plug-in. For details, see [Tool Acquisition](https://device.harmonyos.com/en/ide) and [HUAWEI DevEco Device Tool User Guide](https://device.harmonyos.com/en/docs/ide/user-guides/service_introduction-0000001050166905).
## Acquiring the Application Development Tool \(HUAWEI DevEco Studio\)<a name="en-us_topic_0000001055701144_section0904101019258"></a> ## Acquiring the Application Development Tool \(HUAWEI DevEco Studio\)<a name="en-us_topic_0000001055701144_section0904101019258"></a>
HUAWEI DevEco Studio \(DevEco Studio for short\) is a one-stop IDE oriented to Huawei devices in all scenarios. It provides E2E HarmonyOS application development services, ranging from project template creation to development, compilation, debugging, and release. With DevEco Studio, you will be able to efficiently develop HarmonyOS applications with distributed capabilities while speeding up innovation. For details, see [Tool Acquisition](https://developer.harmonyos.com/en/develop/deveco-studio) and [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387). HUAWEI DevEco Studio \(DevEco Studio for short\) is a one-stop IDE oriented to Huawei devices in all scenarios. It provides E2E OpenHarmony application development services, ranging from project template creation to development, compilation, debugging, and release. With DevEco Studio, you will be able to efficiently develop OpenHarmony applications with distributed capabilities while speeding up innovation. For details, see [Tool Acquisition](https://developer.harmonyos.com/en/develop/deveco-studio) and [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387).
...@@ -5,12 +5,9 @@ ...@@ -5,12 +5,9 @@
- [Method 1: Acquiring Source Code from Image Sites](#section1186691118430) - [Method 1: Acquiring Source Code from Image Sites](#section1186691118430)
- [Method 2: Acquiring Source Code from the Bundle-specific HPM](#section463013147412) - [Method 2: Acquiring Source Code from the Bundle-specific HPM](#section463013147412)
- [When to Use](#section123926431441) - [When to Use](#section123926431441)
- [Prerequisites](#section42627508156)
- [How to Use](#section1781916234118) - [How to Use](#section1781916234118)
- [Method 3: Acquiring Source Code with a hpm-cli Tool](#section9459261856) - [Method 3: Acquiring Source Code from a Code Repository](#section537312010229)
- [When to Use](#section1854923620139)
- [Preparations](#section4451113551114)
- [Operations](#section1445143510117)
- [Method 4: Acquiring Source Code from a Code Repository](#section537312010229)
- [When to Use](#section1492115412228) - [When to Use](#section1492115412228)
- [Preparations](#section1076962313239) - [Preparations](#section1076962313239)
- [Operations](#section17162735266) - [Operations](#section17162735266)
...@@ -31,71 +28,127 @@ Access code repositories at [https://openharmony.gitee.com](https://openharmony ...@@ -31,71 +28,127 @@ Access code repositories at [https://openharmony.gitee.com](https://openharmony
This document describes how to acquire OpenHarmony source code and provides its directory structure. The OpenHarmony code is open to you as [bundles](../bundles/overview.md), which can be obtained in any of the following ways: This document describes how to acquire OpenHarmony source code and provides its directory structure. The OpenHarmony code is open to you as [bundles](../bundles/overview.md), which can be obtained in any of the following ways:
- **Method 1 \(recommended\)**: Download compressed files from an image site. - **Method 1**: Download the compressed file of a distribution from an image site. To obtain the source code of an earlier version, you are also advised to use this method.
- **Method 2**: Visit the HarmonyOS Package Manager \([HPM](https://hpm.harmonyos.com/#/en/home)\) platform, search for your desired solution, select or exclude bundles from the solution, and download it. - **Method 2**: Obtain the source code from the HarmonyOS Package Manager \(HPM\). Visit the [HPM](https://hpm.harmonyos.com/#/en/home) website, search for your desired open-source distribution, and download the bundle list \(or customize bundles and download the bundle list\). Then use **hpm-cli** to download and install the bundles and compilation toolchain on your local PC.
- **Method 3**: Use an hpm-cli tool available on the [HPM](https://hpm.harmonyos.com/#/en/home) platform, and run related HPM commands to download your desired code. - **Method 3**: Use the **repo** or **git** tool to download your desired code from the code repository.
- **Method 4**: Use the **repo** or **git** tool to download your desired code from the code repository.
## Method 1: Acquiring Source Code from Image Sites<a name="section1186691118430"></a> ## Method 1: Acquiring Source Code from Image Sites<a name="section1186691118430"></a>
You can download the source code or the corresponding solutions from the image library at the sites listed below. To ensure the download performance, you are advised to download the source code or the corresponding solution from the image library of the respective site listed in the table below.
**Table 1** Acquiring source code from image sites >![](public_sys-resources/icon-note.gif) **NOTE:**
>- The table below provides only the sites for downloading the source code of the latest OpenHarmony Master and LTS versions. For details about how to obtain the source code of other versions, see the [Release Notes](https://gitee.com/openharmony/docs/tree/master/en/release-notes).
>- Currently, Master 1.0 is no longer maintained. You are advised to use the LTS version.
<a name="table91984129177"></a> **Table 1** Sites for acquiring source code from image sites
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p16618172471719"><a name="p16618172471719"></a><a name="p16618172471719"></a>Content</p>
</th> <a name="table17735923173912"></a>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p46181224161718"><a name="p46181224161718"></a><a name="p46181224161718"></a>Version Information</p> <table><tbody><tr id="row1073515237392"><td class="cellrowborder" valign="top" width="25%"><p id="p5109183611392"><a name="p5109183611392"></a><a name="p5109183611392"></a><strong id="b1024917372278"><a name="b1024917372278"></a><a name="b1024917372278"></a>LTS Code</strong></p>
</th> </td>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p1461814241177"><a name="p1461814241177"></a><a name="p1461814241177"></a>Site</p> <td class="cellrowborder" valign="top" width="25%"><p id="p13109436103916"><a name="p13109436103916"></a><a name="p13109436103916"></a><strong id="b178520552564"><a name="b178520552564"></a><a name="b178520552564"></a>Version Information</strong></p>
</th> </td>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p12618192481716"><a name="p12618192481716"></a><a name="p12618192481716"></a>SHA-256 Verification Code</p> <td class="cellrowborder" valign="top" width="25%"><p id="p610923616398"><a name="p610923616398"></a><a name="p610923616398"></a><strong id="b1571518441579"><a name="b1571518441579"></a><a name="b1571518441579"></a>Site</strong></p>
</th> </td>
<td class="cellrowborder" valign="top" width="25%"><p id="p2109736133914"><a name="p2109736133914"></a><a name="p2109736133914"></a><strong id="b1777314471977"><a name="b1777314471977"></a><a name="b1777314471977"></a>SHA-256 Verification Code</strong></p>
</td>
</tr> </tr>
</thead> <tr id="row17736152318398"><td class="cellrowborder" valign="top" width="25%"><p id="p1110983610395"><a name="p1110983610395"></a><a name="p1110983610395"></a>Full code base</p>
<tbody><tr id="row11198111281715"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p161822419172"><a name="p161822419172"></a><a name="p161822419172"></a><span id="text958012347463"><a name="text958012347463"></a><a name="text958012347463"></a>XX</span> full code base</p> </td>
<td class="cellrowborder" valign="top" width="25%"><p id="p151091536143915"><a name="p151091536143915"></a><a name="p151091536143915"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p17110133653913"><a name="p17110133653913"></a><a name="p17110133653913"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1911083643914"><a name="p1911083643914"></a><a name="p1911083643914"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row473612318396"><td class="cellrowborder" valign="top" width="25%"><p id="p511014369394"><a name="p511014369394"></a><a name="p511014369394"></a>Hi3861 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p0110036193911"><a name="p0110036193911"></a><a name="p0110036193911"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p101106361397"><a name="p101106361397"></a><a name="p101106361397"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/wifiiot-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p7110183617391"><a name="p7110183617391"></a><a name="p7110183617391"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row873614239395"><td class="cellrowborder" valign="top" width="25%"><p id="p11110113633913"><a name="p11110113633913"></a><a name="p11110113633913"></a>Hi3518 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p18110193613391"><a name="p18110193613391"></a><a name="p18110193613391"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p611013618398"><a name="p611013618398"></a><a name="p611013618398"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p411023616393"><a name="p411023616393"></a><a name="p411023616393"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row1273682343914"><td class="cellrowborder" valign="top" width="25%"><p id="p15110123693919"><a name="p15110123693919"></a><a name="p15110123693919"></a>Hi3516 solution (binary)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p361810245170"><a name="p361810245170"></a><a name="p361810245170"></a>1.0</p> <td class="cellrowborder" valign="top" width="25%"><p id="p1211012362396"><a name="p1211012362396"></a><a name="p1211012362396"></a>1.1.0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p11618112416174"><a name="p11618112416174"></a><a name="p11618112416174"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p6110163613918"><a name="p6110163613918"></a><a name="p6110163613918"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p2619182441717"><a name="p2619182441717"></a><a name="p2619182441717"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 Verification Code</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p10110183620394"><a name="p10110183620394"></a><a name="p10110183620394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
</tr> </tr>
<tr id="row1019861220171"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1619102471714"><a name="p1619102471714"></a><a name="p1619102471714"></a>Hi3861 solutions (binary)</p> <tr id="row167371123163914"><td class="cellrowborder" valign="top" width="25%"><p id="p10110143610393"><a name="p10110143610393"></a><a name="p10110143610393"></a>RELEASE-NOTES</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1361982418176"><a name="p1361982418176"></a><a name="p1361982418176"></a>1.0</p> <td class="cellrowborder" valign="top" width="25%"><p id="p141101436193911"><a name="p141101436193911"></a><a name="p141101436193911"></a>1.1.0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p6619122411710"><a name="p6619122411710"></a><a name="p6619122411710"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p10111636193919"><a name="p10111636193919"></a><a name="p10111636193919"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/OpenHarmony_Release_Notes_zh_cn.zip" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p86198245173"><a name="p86198245173"></a><a name="p86198245173"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 Verification Code</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p20111163663918"><a name="p20111163663918"></a><a name="p20111163663918"></a>-</p>
</td> </td>
</tr> </tr>
<tr id="row419901210176"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1461992491711"><a name="p1461992491711"></a><a name="p1461992491711"></a>Hi3518 solutions (binary)</p> <tr id="row573719239393"><td class="cellrowborder" valign="top" width="25%"><p id="p104146493390"><a name="p104146493390"></a><a name="p104146493390"></a><strong id="b16812121192918"><a name="b16812121192918"></a><a name="b16812121192918"></a>Master Code</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p0619122471719"><a name="p0619122471719"></a><a name="p0619122471719"></a>1.0</p> <td class="cellrowborder" valign="top" width="25%"><p id="p194141849163919"><a name="p194141849163919"></a><a name="p194141849163919"></a><strong id="b1094411391670"><a name="b1094411391670"></a><a name="b1094411391670"></a>Version Information</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p13619112431714"><a name="p13619112431714"></a><a name="p13619112431714"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p8414649193919"><a name="p8414649193919"></a><a name="p8414649193919"></a><strong id="b1438499929"><a name="b1438499929"></a><a name="b1438499929"></a>Site</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p6619224191719"><a name="p6619224191719"></a><a name="p6619224191719"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 Verification Code</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p13415149133914"><a name="p13415149133914"></a><a name="p13415149133914"></a><strong id="b590440592"><a name="b590440592"></a><a name="b590440592"></a>SHA-256 Verification Code</strong></p>
</td> </td>
</tr> </tr>
<tr id="row1019901219170"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p2619142411713"><a name="p2619142411713"></a><a name="p2619142411713"></a>Hi3516 solutions (binary)</p> <tr id="row273762316398"><td class="cellrowborder" valign="top" width="25%"><p id="p54150491393"><a name="p54150491393"></a><a name="p54150491393"></a>Full code base</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p10619182441718"><a name="p10619182441718"></a><a name="p10619182441718"></a>1.0</p> <td class="cellrowborder" valign="top" width="25%"><p id="p16415124923914"><a name="p16415124923914"></a><a name="p16415124923914"></a>1.0 (no longer maintained)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p176194245176"><a name="p176194245176"></a><a name="p176194245176"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p44151449203917"><a name="p44151449203917"></a><a name="p44151449203917"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p196193246171"><a name="p196193246171"></a><a name="p196193246171"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 Verification Code</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p1441515495392"><a name="p1441515495392"></a><a name="p1441515495392"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
</tr> </tr>
<tr id="row151991912161714"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p116191324121716"><a name="p116191324121716"></a><a name="p116191324121716"></a>RELEASE-NOTES</p> <tr id="row107374239397"><td class="cellrowborder" valign="top" width="25%"><p id="p5415949123910"><a name="p5415949123910"></a><a name="p5415949123910"></a>Hi3861 solution (binary)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p176191824181712"><a name="p176191824181712"></a><a name="p176191824181712"></a>1.0</p> <td class="cellrowborder" valign="top" width="25%"><p id="p15415949183914"><a name="p15415949183914"></a><a name="p15415949183914"></a>1.0 (no longer maintained)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p66190245178"><a name="p66190245178"></a><a name="p66190245178"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/RELEASE-NOTES.txt" target="_blank" rel="noopener noreferrer">Site</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p1415649123916"><a name="p1415649123916"></a><a name="p1415649123916"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p1161982411713"><a name="p1161982411713"></a><a name="p1161982411713"></a>-</p> <td class="cellrowborder" valign="top" width="25%"><p id="p11415549153913"><a name="p11415549153913"></a><a name="p11415549153913"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row9738182319392"><td class="cellrowborder" valign="top" width="25%"><p id="p241524910391"><a name="p241524910391"></a><a name="p241524910391"></a>Hi3518 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p6415849193915"><a name="p6415849193915"></a><a name="p6415849193915"></a>1.0 (no longer maintained)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p841584919394"><a name="p841584919394"></a><a name="p841584919394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p9415124983911"><a name="p9415124983911"></a><a name="p9415124983911"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row17381233399"><td class="cellrowborder" valign="top" width="25%"><p id="p44151149153918"><a name="p44151149153918"></a><a name="p44151149153918"></a>Hi3516 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p15415164917397"><a name="p15415164917397"></a><a name="p15415164917397"></a>1.0 (no longer maintained)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p154151049113914"><a name="p154151049113914"></a><a name="p154151049113914"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p164164491394"><a name="p164164491394"></a><a name="p164164491394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
</tr>
<tr id="row1873817234394"><td class="cellrowborder" valign="top" width="25%"><p id="p1341618491393"><a name="p1341618491393"></a><a name="p1341618491393"></a>RELEASE-NOTES</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p7416184953916"><a name="p7416184953916"></a><a name="p7416184953916"></a>1.0 (no longer maintained)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p194161849133911"><a name="p194161849133911"></a><a name="p194161849133911"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/RELEASE-NOTES.txt" target="_blank" rel="noopener noreferrer">Download</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1841619490395"><a name="p1841619490395"></a><a name="p1841619490395"></a>-</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -105,59 +158,13 @@ You can download the source code or the corresponding solutions from the image l ...@@ -105,59 +158,13 @@ You can download the source code or the corresponding solutions from the image l
## When to Use<a name="section123926431441"></a> ## When to Use<a name="section123926431441"></a>
If OpenHarmony is new to you, sample solutions are helpful to your development. The [HPM](https://hpm.harmonyos.com/#/en/home) platform provides a recommended solution. You can add or exclude bundles to quickly customize your system. If OpenHarmony is new to you, sample solutions are helpful to your development. You can obtain an open-source distribution from the [HPM](https://hpm.harmonyos.com/#/en/home) platform, or customize a distribution by adding or deleting bundles of an open-source distribution.
## How to Use<a name="section1781916234118"></a>
1. Search for a proper solution.
1. Access the [HPM](https://hpm.harmonyos.com/#/en/home) page, and click the **Solution** tab, as shown in the following figure.
2. Enter a keyword \("camera" as an example\) in the search box. All matched solutions are found.
3. Specify filter criteria, such as the bundle type \(example: **Board support** and **Kernel support**\), to further filter the solutions.
4. Click the solution you need to view its details.
**Figure 1** HPM page<a name="fig838103114320"></a>
![](figures/en-us_image_0000001054919529.png)
2. Customize the solution.
1. Read the information under **Readme** to learn about the solution \(application scenarios, features, usage, and customization\), as shown in the following figure.
2. Click **Download** to download the solution to your local PC.
3. Click **Log in to custom** to customize the bundles for the solution.
**Figure 2** Solution example<a name="fig1329851510414"></a> Then use **hpm-cli** to download and install the bundles and compilation toolchain on your local PC.
## Prerequisites<a name="section42627508156"></a>
![](figures/en-us_image_0000001054719501.png) You must install **Node.js** and HPM on your local PC. The installation procedure is as follows:
3. Customize bundles.
1. Access the **Custom solution** page, as shown in the following figure.
2. Set the toggle switch next to a specific optional bundle to exclude it from the solution, or click **Add bundle** to add new bundles.
3. Enter the basic information about your project, including the bundle name, version, and description, on the right pane.
4. Click **Download**. The system then generates the OpenHarmony code structure file \(for example, **name.zip**\) and saves it to your local PC.
- The downloaded compressed package does not contain the original file of source code. You can import the package to the IDE, decompress it, and run the **hpm install** command to download all required bundles.
- The downloaded bundles are stored in the **ohos\_bundles** folder in the project directory.
**Figure 3** Customizing bundles<a name="fig2448349749"></a>
![](figures/en-us_image_0000001055679464.png)
## Method 3: Acquiring Source Code with a hpm-cli Tool<a name="section9459261856"></a>
## When to Use<a name="section1854923620139"></a>
- You have obtained bundle-specific source code from the HPM website, and want to independently upgrade one or more bundles in the source code.
- You are familiar with OpenHarmony development and **hpm-cli** tools.
## Preparations<a name="section4451113551114"></a>
You need to install the **Node.js** and hpm-cli tool as follows:
1. Install **Node.js**. 1. Install **Node.js**.
...@@ -186,35 +193,50 @@ You need to install the **Node.js** and hpm-cli tool as follows: ...@@ -186,35 +193,50 @@ You need to install the **Node.js** and hpm-cli tool as follows:
``` ```
## Operations<a name="section1445143510117"></a> ## How to Use<a name="section1781916234118"></a>
Add the bundle \(**@ohos/demo** as an example\) to your project as follows: 1. Search for distributions.
1. Access the [HPM](https://hpm.harmonyos.com/#/en/home) page, and click the **Distribution** tab, as shown in the following figure.
2. Enter a keyword \("camera" as an example\) in the search box. All matched distributions are found.
3. Specify filter criteria, such as the bundle type \(example: **Board support** and **Kernel support**\), to further filter the distributions.
4. Locate your desired distribution and click it to view details.
1. Go to the development directory and run the following command to create a development project using the default template: **Figure 1** HPM page<a name="fig838103114320"></a>
```
hpm init -t default
```
2. Run the following command to install the bundle \(**@ohos/demo** as an example\): ![](figures/en-us_image_0000001086781056.png)
```
hpm install @ohos/demo
```
3. Verify that the **hpm-cli** tool automatically downloads all dependent bundles from the server. If the download is successful, the message "Install successfully!" is displayed. 2. Learn more about the distribution.
``` 1. Read carefully the information about the distribution to learn its application scenarios, features, bundles, usage, and customization methods, as shown in the following figure.
$ hpm install @ohos/demo 2. Click **Download** to download the distribution to your local PC.
Requesting: https://url.foo.bar/hpm/registry/api/bundles/@ohos/demo 3. Click **Custom** to add or delete bundles of the distribution.
downloading @ohos/demo
Requesting: https://lfcontentcenterdev....../bMAlLrYISLqdUTFFFCdgzA.tgz
extract D:\demo\ohos_bundles\@ohos\demo\@ohos-demo-1.0.7.tgz
Install successfully!
```
**Figure 2** Example distribution<a name="fig1329851510414"></a>
## Method 4: Acquiring Source Code from a Code Repository<a name="section537312010229"></a>
![](figures/en-us_image_0000001086461836.png)
3. Customize bundles.
1. Access the **Custom solution** page, as shown in the following figure.
2. Set the toggle switch next to a specific optional bundle to delete it from the distribution, or click **Add bundle** to add new bundles.
3. Enter the basic information about your project, including the bundle name, version, and description, on the right pane.
4. Click **Download**. The system then generates the OpenHarmony code structure file \(for example, **my\_cust\_dist.zip**\) and saves it to your local PC.
**Figure 3** Customizing bundles<a name="fig05036599014"></a>
![](figures/en-us_image_0000001133359093.png)
4. Download and install bundles.
1. Decompress the downloaded file using the CLI tool CMD \(shell in Linux\).
2. In the generated directory, run the **hpm install** command.
3. The downloaded bundles are stored in the **ohos\_bundles** folder under the project directory. \(The source code of some bundles will be copied to a specified directory after the bundles are installed.\)
## Method 3: Acquiring Source Code from a Code Repository<a name="section537312010229"></a>
## When to Use<a name="section1492115412228"></a> ## When to Use<a name="section1492115412228"></a>
...@@ -232,7 +254,7 @@ Add the bundle \(**@ohos/demo** as an example\) to your project as follows: ...@@ -232,7 +254,7 @@ Add the bundle \(**@ohos/demo** as an example\) to your project as follows:
## Preparations<a name="section1076962313239"></a> ## Preparations<a name="section1076962313239"></a>
1. Register your account with gitee. 1. Register your account with gitee.
2. Register an SSH public key. 2. Register an SSH public key. For details, visit [https://gitee.com/help/articles/4181](https://gitee.com/help/articles/4181).
3. Install the git client and configure basic information. 3. Install the git client and configure basic information.
``` ```
...@@ -252,20 +274,40 @@ Add the bundle \(**@ohos/demo** as an example\) to your project as follows: ...@@ -252,20 +274,40 @@ Add the bundle \(**@ohos/demo** as an example\) to your project as follows:
## Operations<a name="section17162735266"></a> ## Operations<a name="section17162735266"></a>
Method 1 \(recommended\): Use the **repo** tool to download source code. >![](public_sys-resources/icon-note.gif) **NOTE:**
>You can obtain the latest features from the master code, and develop commercial functionalities based on the release code.
- **Obtaining OpenHarmony master code**
Method 1 \(recommended\): Use the **repo** tool to download the master code.
``` ```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c repo sync -c
``` ```
Method 2: Run the **git clone** command to clone a single code repository.
Go to the [code repository homepage](https://gitee.com/openharmony), select the code repository to be cloned, and run the following command:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
- **Obtaining OpenHarmony\_1.0.1\_release code**
Use the **repo** tool to download the release code.
```
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
```
Method 2: Run the **git clone** command to clone a single code repository. - Obtaining the source code of other OpenHarmony releases
Go to https://gitee.com/openharmony, select the code repository to be cloned, and run the following command: For details about how to obtain the source code of other releases, see the [Release Notes](https://gitee.com/openharmony/docs/blob/master/en/release-notes/OpenHarmony-Release-Notes.md).
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
## Source Code Directories<a name="section1072115612811"></a> ## Source Code Directories<a name="section1072115612811"></a>
......
...@@ -68,7 +68,7 @@ static void *ChildThreadFunc(void *arg) ...@@ -68,7 +68,7 @@ static void *ChildThreadFunc(void *arg)
/* Attempt to lock a mutex, which is failed in normal cases. */ /* Attempt to lock a mutex, which is failed in normal cases. */
rc = pthread_mutex_trylock(&g_td.mutex); rc = pthread_mutex_trylock(&g_td.mutex);
if (rc == 0) { if (rc == 0) {
printf("ERROR: mutex gets an abnomal lock!\n"); printf("ERROR: mutex gets an abnormal lock!\n");
goto EXIT; goto EXIT;
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
## Building Process<a name="section1111311235313"></a> ## Building Process<a name="section1111311235313"></a>
The compilation and building subsystem is a building system based on Generate Ninja \(GN\) and Ninja. The following figure shows the building process. The compilation and building subsystem is a building system based on Generate Ninja \(GN\) and Ninja. It supports on-demand configuration, tailoring, and assembly by component to customize desired products. The following figure shows the building process.
**Figure 1** Building process<a name="fig23781931124913"></a> **Figure 1** Building process<a name="fig23781931124913"></a>
![](figures/building-process.png "building-process") ![](figures/building-process.png "building-process")
...@@ -15,7 +15,7 @@ The compilation and building subsystem is a building system based on Generate Ni ...@@ -15,7 +15,7 @@ The compilation and building subsystem is a building system based on Generate Ni
>![](public_sys-resources/icon-note.gif) **NOTE:** >![](public_sys-resources/icon-note.gif) **NOTE:**
>If the building type is debug, XTS will be involved in the building. If the building type is release, the symbol table and debugging information of the file generated after building will be removed. >If the building type is debug, XTS will be involved in the building. If the building type is release, the symbol table and debugging information of the file generated after building will be removed.
- **Read the product configuration**: Read the **vendor/_x\_company_/_x\_product_.json** file that contains the development board, kernel type, kernel version, and components to configure. - **Read the product configuration**: Read the **vendor/_my\_company_/_my\_product_.json** file that contains the development board, kernel type, kernel version, and components to configure.
- **Run the gn gen command to generate the ninja file**: Based on the parsed product configuration, add the selected components to build according to the corresponding building toolchain and configure global building options. - **Run the gn gen command to generate the ninja file**: Based on the parsed product configuration, add the selected components to build according to the corresponding building toolchain and configure global building options.
- **Use Ninja to start building**: Build and link the components one by one. - **Use Ninja to start building**: Build and link the components one by one.
...@@ -29,13 +29,13 @@ You need to create a directory for the development board. Taking the **RTL8720* ...@@ -29,13 +29,13 @@ You need to create a directory for the development board. Taking the **RTL8720*
The **ohos-clang** toolchain is used by default. SoC vendors can also customize the configuration based on their development boards. The building-related variables in the building configuration file of the development board are described as follows: The **ohos-clang** toolchain is used by default. SoC vendors can also customize the configuration based on their development boards. The building-related variables in the building configuration file of the development board are described as follows:
- **kernel\_type**: kernel type used by the development board, for example, **"liteos\_a"**, **"liteos\_m"**, or **"Linux"**. - **kernel\_type**: kernel type used by the development board, for example, **"liteos\_a"**, **"liteos\_m"**, or **"linux"**.
- **kernel\_version**: kernel version used for development, for example, **"4.19"**. - **kernel\_version**: kernel version used for development, for example, **"4.19"**.
- **board\_cpu**: CPU type of the development board, for example, **"cortex-a7"** or **"riscv32"**. - **board\_cpu**: CPU type of the development board, for example, **"cortex-a7"** or **"riscv32"**.
- **board\_arch**: chip architecture of the development board, for example, **"armv7-a"**, or **"rv32imac"**. - **board\_arch**: chip architecture of the development board, for example, **"armv7-a"** or **"rv32imac"**.
- **board\_toolchain**: name of the customized building toolchain used by the development board, for example, **"gcc-arm-none-eabi"**. If this variable is not specified, **ohos-clang** will be used by default. - **board\_toolchain**: name of the customized building toolchain used by the development board, for example, **"gcc-arm-none-eabi"**. If this variable is not specified, **ohos-clang** will be used by default.
- **board\_toolchain\_prefix**: prefix of the building toolchain, for example, **"gcc-arm-none-eabi"**. - **board\_toolchain\_prefix**: prefix of the building toolchain, for example, **"gcc-arm-none-eabi"**.
- **board\_toolchain\_type**: building toolchain type. Currently, GNU compiler collection \(GCC\) and clang are supported, for example, **"gcc"** and **"clang"**. - **board\_toolchain\_type**: building toolchain type. Currently, GNU compiler collection \(GCC\) and clang are supported, for example, **"gcc"** or **"clang"**.
- **board\_cflags**: building options of the **.c** file configured for the development board. - **board\_cflags**: building options of the **.c** file configured for the development board.
- **board\_cxx\_flags**: building options of the **.cpp** file configured for the development board. - **board\_cxx\_flags**: building options of the **.cpp** file configured for the development board.
- **board\_ld\_flags**: link options configured for the development board. - **board\_ld\_flags**: link options configured for the development board.
...@@ -50,7 +50,7 @@ You need to create a directory for the development board. Taking the **RTL8720* ...@@ -50,7 +50,7 @@ You need to create a directory for the development board. Taking the **RTL8720*
kernel_type = "liteos_m" kernel_type = "liteos_m"
# Kernel version. # Kernel version.
kernel_version = "" kernel_version = "3.0.0"
# Board CPU type, e.g. "cortex-a7", "riscv32". # Board CPU type, e.g. "cortex-a7", "riscv32".
board_cpu = "real-m300" board_cpu = "real-m300"
...@@ -80,20 +80,59 @@ You need to create a directory for the development board. Taking the **RTL8720* ...@@ -80,20 +80,59 @@ You need to create a directory for the development board. Taking the **RTL8720*
board_ld_flags = [] board_ld_flags = []
``` ```
2. Compile the development board script. 2. Edit the building script of the development board.
For a newly added development board, the **BUILD.gn** file that functions as the entry for building must be added to the board directory. Taking the RTL8720 development board of Realtek as an example, the content in the **device/realtek/rtl8720/BUILD.gn** file is as follows: For a newly added development board, the **BUILD.gn** file that functions as the entry for building must be added to the board directory. Taking the RTL8720 development board of Realtek as an example, the content in the **device/realtek/rtl8720/BUILD.gn** file is as follows:
``` ```
group("rlt8720") { group("rtl8720") {
... ...
} }
``` ```
3. Start building and debugging 3. Build and debug the development board.
1. Run the **hb set** command in any directory to set the source code path and the product to build. 1. Run the **hb set** command in any directory to set the source code path and the product to build.
2. Run the **hb build** command in the development board directory to start the building. 2. Run the **hb build** command in the development board directory to start the building.
4. Build and debug the product.
Write the development board and component information to the product configuration file. Fields in the configuration file are as follows:
- **product\_name**: product name, which can be customized. It is recommended that the value be the same as the level-3 directory name under the **vendor** directory.
- **ohos\_version**: OpenHarmony version number, which must be the same as the actual version number.
- **device\_company**: name of the chip solution vendor. It is recommended that the value be the same as the level-2 directory name under the **device** directory.
- **board**: name of the development board. It is recommended that the value be the same as the level-3 directory name under the **device** directory.
- **kernel\_type**: kernel type, which must match the kernel type supported by the development board.
- **kernel\_version**: kernel version, which must match the kernel version supported by the development board.
- **subsystem**: OpenHarmony subsystem selected for the product. For details about the subsystems supported by OpenHarmony, see the descriptions of the subsystems in the **build/lite/components** directory.
- **components**: subsystem-specific components selected for the product. For details about the components supported by the selected subsystem, see the **build/lite/components/_Specific subsystem_.json** file.
- **features**: component-specific features configured for the product. For details about the features supported by the selected component, see the **features** field of the component in **build/lite/components/_Specific subsystem_.json** file.
Taking the Wi-Fi IoT module based on the RTL8720 development board as an example, the **vendor/my\_company/wifiiot/config.json** file is as follows:
```
{
"product_name": "wifiiot", # Product name
"ohos_version": "OpenHarmony 1.0", # In-use OS version
"device_company": "realtek", # Name of the chip solution vendor
"board": "rtl8720", # Name of the development board
"kernel_type": "liteos_m", # Selected kernel type
"kernel_version": "3.0.0", # Selected kernel version
"subsystems": [
{
"subsystem": "kernel", # Selected subsystem
"components": [
{ "component": "liteos_m", "features":[] } # Selected component and its features
]
},
...
{
More subsystems and components
}
]
}
```
...@@ -14,7 +14,7 @@ The Utils subsystem provides common basic components that can be used by other s ...@@ -14,7 +14,7 @@ The Utils subsystem provides common basic components that can be used by other s
**Description for HAL APIs of the Utils subsystem** **Description for HAL APIs of the Utils subsystem**
The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the SoC file system APIs, see [HAL Header Files of Utils](https://gitee.com/openharmony/utils_native_lite/tree/master/hals/file). The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the SoC file system APIs, see [HAL header files of Utils](https://gitee.com/openharmony/utils_native_lite/tree/master/hals/file).
## IoT Peripheral Subsystem<a name="section958113200811"></a> ## IoT Peripheral Subsystem<a name="section958113200811"></a>
...@@ -24,7 +24,7 @@ The IoT peripheral subsystem provides dedicated peripheral operation interfaces ...@@ -24,7 +24,7 @@ The IoT peripheral subsystem provides dedicated peripheral operation interfaces
**Description for HAL APIs of the IoT peripheral subsystem** **Description for HAL APIs of the IoT peripheral subsystem**
The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the chip peripheral APIs, see [HAL Header Files of wifiiot](https://gitee.com/openharmony/iothardware_hals_wifiiot_lite/tree/master). The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the chip peripheral APIs, see [HAL header files of IoT peripherals](https://gitee.com/openharmony/iothardware_peripheral/tree/master/interfaces/kits).
## WLAN<a name="section1331917210911"></a> ## WLAN<a name="section1331917210911"></a>
...@@ -70,5 +70,5 @@ vendor/hisi/hi3861/hi3861_adapter/hals/communication/wifi_lite/wifiservice/ ...@@ -70,5 +70,5 @@ vendor/hisi/hi3861/hi3861_adapter/hals/communication/wifi_lite/wifiservice/
└── wifi_hotspot.c └── wifi_hotspot.c
``` ```
The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the chip peripheral APIs, see [Header Files of WLAN](https://gitee.com/openharmony/communication_interfaces_kits_wifi_lite/tree/master/wifiservice). The SoC needs to implement related APIs. For details about the dependency of OpenHarmony on the chip peripheral APIs, see [header files of WLAN](https://gitee.com/openharmony/communication_wifi_lite/tree/master/interfaces/wifiservice).
...@@ -9,16 +9,18 @@ ...@@ -9,16 +9,18 @@
- [Using Docker to Install the Linux Environment](#section107932281315) - [Using Docker to Install the Linux Environment](#section107932281315)
- [Using an Installation Package to Install the Linux Environment](#section497484245614) - [Using an Installation Package to Install the Linux Environment](#section497484245614)
- [Connecting to a Linux Server](#section723115618340) - [Connecting to a Linux Server](#section723115618340)
- [Changing Linux Shell to Bash](#section1715027152617) - [Installing and Configuring Python](#section11255767343)
- [Installing a Python Environment](#section11255767343)
- [Installing gn](#section9262166183410) - [Installing gn](#section9262166183410)
- [Installing ninja](#section02645617348) - [Installing ninja](#section02645617348)
- [Installing LLVM](#section149564754) - [Installing LLVM](#section149564754)
- [Installing hb](#section6201103143120) - [Installing hb](#section6201103143120)
- [Obtaining Source Code](#section1545225464016) - [Obtaining OpenHarmony Source Code](#section1545225464016)
- [FAQ](#section19253140111619) - [FAQ](#section19253140111619)
- [What should I do if garbled characters and segmentation faults occur during hb installation?](#section347685141717) - [What should I do if garbled characters and segmentation faults occur during hb installation?](#section347685141717)
- [What should I do if the message "cannot import 'sysconfig' from 'distutils'" is displayed during hb installation?](#section1996804118553)
- [What should I do if the message "module 'platform' has no attribute 'linux\_distribution'" is displayed during hb Installation?](#section6992181918582)
- [What should I do if the message "ImportError: No module named apt\_pkg" is displayed during the execution of an unidentifiable command?](#section7854153010120)
Before setting up the environment for a development board, you must set up the basic OS environment for OpenHarmony first. The basic OS environment refers to the building environment and development environment of OpenHarmony. You can choose one of the following methods to set up the basic OS environment based on your preference and the hardware and software used. Before setting up the environment for a development board, you must set up the basic OS environment for OpenHarmony first. The basic OS environment refers to the building environment and development environment of OpenHarmony. You can choose one of the following methods to set up the basic OS environment based on your preference and the hardware and software used.
...@@ -142,14 +144,7 @@ The following table describes the tools required for setting up the general envi ...@@ -142,14 +144,7 @@ The following table describes the tools required for setting up the general envi
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p43003270510"><a name="p43003270510"></a><a name="p43003270510"></a>Executes script compilation.</p> <td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p43003270510"><a name="p43003270510"></a><a name="p43003270510"></a>Executes script compilation.</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p18254155164617"><a name="p18254155164617"></a><a name="p18254155164617"></a><a href="https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz" target="_blank" rel="noopener noreferrer">https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz</a></p> <td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p34760459518"><a name="p34760459518"></a><a name="p34760459518"></a>Internet</p>
</td>
</tr>
<tr id="row42668197206"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p426711912014"><a name="p426711912014"></a><a name="p426711912014"></a>bash</p>
</td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p14267131962014"><a name="p14267131962014"></a><a name="p14267131962014"></a>Executes commands.</p>
</td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p14267101962014"><a name="p14267101962014"></a><a name="p14267101962014"></a>Internet</p>
</td> </td>
</tr> </tr>
<tr id="row1711946154018"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p15588165684216"><a name="p15588165684216"></a><a name="p15588165684216"></a>gn</p> <tr id="row1711946154018"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p15588165684216"><a name="p15588165684216"></a><a name="p15588165684216"></a>gn</p>
...@@ -177,7 +172,7 @@ The following table describes the tools required for setting up the general envi ...@@ -177,7 +172,7 @@ The following table describes the tools required for setting up the general envi
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1244114913492"><a name="p1244114913492"></a><a name="p1244114913492"></a>Compiles the source code.</p> <td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1244114913492"><a name="p1244114913492"></a><a name="p1244114913492"></a>Compiles the source code.</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p1244120916499"><a name="p1244120916499"></a><a name="p1244120916499"></a>The <strong id="b146115915482"><a name="b146115915482"></a><a name="b146115915482"></a>build_lite</strong> repository in HarmonyOS source code</p> <td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p1463918124619"><a name="p1463918124619"></a><a name="p1463918124619"></a>Internet</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -218,30 +213,7 @@ Using PuTTY to log in to a Linux server from a PC running Windows ...@@ -218,30 +213,7 @@ Using PuTTY to log in to a Linux server from a PC running Windows
![](figures/successful-login.png "successful-login") ![](figures/successful-login.png "successful-login")
### Changing Linux Shell to Bash<a name="section1715027152617"></a> ### Installing and Configuring Python<a name="section11255767343"></a>
Check whether bash is used as the shell.
```
ls -l /bin/sh
```
If **/bin/sh -\> bash** is not displayed, do as follows to change shell to bash.
**Method 1:** Run the following command on the device and then click **No**.
```
sudo dpkg-reconfigure dash
```
**Method 2:** Run the first command to delete **sh** and then run the second command to create a new soft link.
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### Installing a Python Environment<a name="section11255767343"></a>
1. Start a Linux server. 1. Start a Linux server.
2. Check the Python version \(Python 3.7 or later is required\). 2. Check the Python version \(Python 3.7 or later is required\).
...@@ -265,40 +237,33 @@ sudo ln -s /bin/bash /bin/sh ...@@ -265,40 +237,33 @@ sudo ln -s /bin/bash /bin/sh
sudo apt-get install python3.8 sudo apt-get install python3.8
``` ```
- If the Ubuntu version is **16**, download the installation package and install Python. - If the Ubuntu version is 16, perform the following steps:
1. Install Python environment dependencies \(gcc, g++, make, zlib, libffi\). a. Install dependency packages.
``` ```
sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev sudo apt update && sudo apt install software-properties-common
``` ```
1. Obtain the [Python 3.8.5 installation package](https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz), save it to the Linux server, and run the following command: b. Add the source of deadsnakes PPA and press **Enter**.
``` ```
tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && sudo make && sudo make install sudo add-apt-repository ppa:deadsnakes/ppa
``` ```
c. Install Python 3.8.
3. Link the Python path to **/usr/bin/python** after Python is installed.
Check whether Python is soft linked to Python 3.8.
``` ```
python --version sudo apt upgrade && sudo apt install python3.8
``` ```
If the command output is not **python 3.8.5**, run the following command to check the directory where Python 3.8 is stored:
```
which python3.8
```
Replace **python3.8-path** in the following command with the output path of the **which python3.8** command. 3. Set the soft link of **python** and **python3** to **python3.8**.
``` ```
cd /usr/bin && sudo rm python && sudo rm python3 && sudo ln -s python3.8-path python && sudo ln -s python3.8-path python3 && python3 --version sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
``` ```
4. Install and upgrade the Python package management tool \(pip3\) using either of the following methods: 4. Install and upgrade the Python package management tool \(pip3\) using either of the following methods:
...@@ -317,104 +282,6 @@ sudo ln -s /bin/bash /bin/sh ...@@ -317,104 +282,6 @@ sudo ln -s /bin/bash /bin/sh
``` ```
5. Install setuptools.
```
pip3 install setuptools
```
6. Install the GUI menuconfig tool \(Kconfiglib\). You are advised to install Kconfiglib 13.2.0 or later.
- **Command line:**
```
sudo pip3 install kconfiglib
```
- **Installation package:**
1. Download the **.whl** file, for example, **kconfiglib-13.2.0-py2.py3-none-any.whl**.
Download path: [https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)
1. Install the **.whl** file.
```
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
```
7. <a name="li195884268616"></a>Install **pycryptodome** using either of the following methods:
>![](public_sys-resources/icon-notice.gif) **NOTICE:**
>Steps [7](#li195884268616) to [9](#li125926111510) are required only for the Hi3861 development board.
Install the Python component packages on which the file signature depends, including pycryptodome, six, and ecdsa. As the installation of **ecdsa** depends on that of **six**, install **six** first.
- **Command line:**
```
sudo pip3 install pycryptodome
```
- **Installation package:**
1. Download the **.whl** file \(for example, **pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl**\).
Download path: [https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)
1. Install the **.whl** file.
```
sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
```
8. Install **six** using either of the following methods:
- **Command line:**
```
sudo pip3 install six --upgrade --ignore-installed six
```
- **Installation package:**
1. Download the **.whl** file, for example, **six-1.12.0-py2.py3-none-any.whl**.
Download path: [https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)
1. Install the **.whl** file.
```
sudo pip3 install six-1.12.0-py2.py3-none-any.whl
```
9. <a name="li125926111510"></a>Install **ecdsa** using either of the following methods:
- **Command line:**
```
sudo pip3 install ecdsa
```
- **Installation package:**
1. Download the **.whl** file, for example, **ecdsa-0.14.1-py2.py3-none-any.whl**.
Download path: [https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)
1. Install the **.whl** file.
```
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
```
### Installing gn<a name="section9262166183410"></a> ### Installing gn<a name="section9262166183410"></a>
...@@ -513,15 +380,15 @@ sudo ln -s /bin/bash /bin/sh ...@@ -513,15 +380,15 @@ sudo ln -s /bin/bash /bin/sh
**Prerequisites** **Prerequisites**
- Python 3.7.4 or later has been installed. For details, see steps 1 to 4 in [Installing a Python Environment](#section11255767343). - Python 3.7.4 or later has been installed. For details, see [Installing and Configuring Python](#section11255767343).
- The source code has been downloaded. For details, see [Source Code Acquisition](../get-code/source-code-acquisition.md). - The source code has been downloaded. For details, see [Source Code Acquisition](../get-code/source-code-acquisition.md).
**Installation** **Installation**
1. Run the following command in the root directory of the source code: 1. Install **hb**.
``` ```
python3 -m pip install --user build/lite python3 -m pip install --user ohos-build
``` ```
2. Set an environment variable. 2. Set an environment variable.
...@@ -542,7 +409,7 @@ sudo ln -s /bin/bash /bin/sh ...@@ -542,7 +409,7 @@ sudo ln -s /bin/bash /bin/sh
source ~/.bashrc source ~/.bashrc
``` ```
3. Run the **hb -h** command. The installation is successful until the following information is displayed: 3. Run the **hb -h** command. If the following information is displayed, the installation is successful:
``` ```
usage: hb usage: hb
...@@ -572,7 +439,7 @@ python3 -m pip uninstall ohos-build ...@@ -572,7 +439,7 @@ python3 -m pip uninstall ohos-build
## Obtaining OpenHarmony Source Code<a name="section1545225464016"></a> ## Obtaining OpenHarmony Source Code<a name="section1545225464016"></a>
You need to acquire [OpenHarmony source code](https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz), download it on a Linux server, and decompress it. For more obtaining methods, see [Source Code Acquisition](../get-code/source-code-acquisition.md). You need to acquire OpenHarmony [source code](https://repo.huaweicloud.com/harmonyos/os/1.0.1/code-1.0.1.tar.gz), download it on a Linux server, and decompress it. For more obtaining methods, see [Source Code Acquisition](../get-code/source-code-acquisition.md).
## FAQ<a name="section19253140111619"></a> ## FAQ<a name="section19253140111619"></a>
...@@ -580,7 +447,7 @@ You need to acquire [OpenHarmony source code](https://repo.huaweicloud.com/harm ...@@ -580,7 +447,7 @@ You need to acquire [OpenHarmony source code](https://repo.huaweicloud.com/harm
- **Symptom** - **Symptom**
Garbled characters and segmentation faults occur during execution of the **python3 -m pip install --user build/lite** command. Garbled characters and segmentation faults occur during the execution of the **python3 -m pip install --user ohos-build** command.
- **Possible Causes** - **Possible Causes**
...@@ -589,10 +456,72 @@ You need to acquire [OpenHarmony source code](https://repo.huaweicloud.com/harm ...@@ -589,10 +456,72 @@ You need to acquire [OpenHarmony source code](https://repo.huaweicloud.com/harm
- **Solutions** - **Solutions**
Run the following command to upgrade pip: Upgrade pip.
``` ```
python3 -m pip install -U pip python3 -m pip install -U pip
``` ```
### What should I do if the message "cannot import 'sysconfig' from 'distutils'" is displayed during hb installation?<a name="section1996804118553"></a>
- **Symptom**
The message "cannot import 'sysconfig' from 'distutils'" is displayed during the execution of the **python3 -m pip install --user ohos-build** command.
- **Possible Causes**
The **distutils** module is unavailable.
- **Solutions**
Install **distutils**.
```
sudo apt-get install python3.8-distutils
```
### What should I do if the message "module 'platform' has no attribute 'linux\_distribution'" is displayed during hb Installation?<a name="section6992181918582"></a>
- **Symptom**
The message "module 'platform' has no attribute 'linux\_distribution'" is displayed during the execution of the **python3 -m pip install --user ohos-build** command.
- **Possible Causes**
There is a compatibility issue of python3-pip.
- **Solutions**
Reinstall pip.
```
sudo apt remove python3-pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
```
### What should I do if the message "ImportError: No module named apt\_pkg" is displayed during the execution of an unidentifiable command?<a name="section7854153010120"></a>
- **Symptom**
The message "ImportError: No module named apt\_pkg" is displayed when an unidentifiable command is executed on the Linux server.
- **Possible Causes**
There is a compatibility issue of python3-apt.
- **Solutions**
Reinstall python3-apt.
```
sudo apt-get remove python3-apt
sduo apt-get install python3-apt
```
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
- [Software Requirements](#section965634210501) - [Software Requirements](#section965634210501)
- [Installing the Linux Compilation Environment](#section182916865219) - [Installing the Linux Compilation Environment](#section182916865219)
- [Changing Linux Shell to Bash](#section1715027152617)
- [Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)](#section45512412251)
- [Installing a File Packing Tool](#section8352161417450) - [Installing a File Packing Tool](#section8352161417450)
- [Installing hc-gen](#section2075110583451) - [Installing hc-gen](#section2075110583451)
- [Installing the JVM](#section101989994613) - [Installing the JVM](#section101989994613)
...@@ -47,11 +49,25 @@ The following table describes the tools required for setting up the general envi ...@@ -47,11 +49,25 @@ The following table describes the tools required for setting up the general envi
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row76242594498"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools, mtools, and mtd-utils</p> <tbody><tr id="row167343191518"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p467443191517"><a name="p467443191517"></a><a name="p467443191517"></a>bash</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>Pack files.</p> <td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p0674153114151"><a name="p0674153114151"></a><a name="p0674153114151"></a>Processes CLI commands.</p>
</td> </td>
<td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p1262475944916"><a name="p1262475944916"></a><a name="p1262475944916"></a>apt-get install</p> <td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p116746312151"><a name="p116746312151"></a><a name="p116746312151"></a>System configuration</p>
</td>
</tr>
<tr id="row14885193315201"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>Basic software package for compilation and building (required only for Ubuntu 20+)</p>
</td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>Provides a basic software package for compilation and building.</p>
</td>
<td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>Internet</p>
</td>
</tr>
<tr id="row52253812238"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p28007392236"><a name="p28007392236"></a><a name="p28007392236"></a>dosfstools, mtools, and mtd-utils</p>
</td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p98008390232"><a name="p98008390232"></a><a name="p98008390232"></a>Pack files.</p>
</td>
<td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p280018394233"><a name="p280018394233"></a><a name="p280018394233"></a>apt-get install</p>
</td> </td>
</tr> </tr>
<tr id="row18516509507"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p14521650135017"><a name="p14521650135017"></a><a name="p14521650135017"></a>hc-gen</p> <tr id="row18516509507"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p14521650135017"><a name="p14521650135017"></a><a name="p14521650135017"></a>hc-gen</p>
...@@ -77,6 +93,37 @@ The following table describes the tools required for setting up the general envi ...@@ -77,6 +93,37 @@ The following table describes the tools required for setting up the general envi
>- If you acquire the source code using an HPM component or HPM CLI tool, compilation tools like **LLVM** and **hc-gen** are not required. >- If you acquire the source code using an HPM component or HPM CLI tool, compilation tools like **LLVM** and **hc-gen** are not required.
>- \(Recommended\) If you obtain the source code through an image site or a code repository, install compilation tools like **LLVM** and **hc-gen**. When installing **LLVM** and **hc-gen**, ensure that the environment variable paths of the compilation tools are unique. >- \(Recommended\) If you obtain the source code through an image site or a code repository, install compilation tools like **LLVM** and **hc-gen**. When installing **LLVM** and **hc-gen**, ensure that the environment variable paths of the compilation tools are unique.
### Changing Linux Shell to Bash<a name="section1715027152617"></a>
Check whether bash is used as the shell.
```
ls -l /bin/sh
```
If **/bin/sh -\> bash** is not displayed, do as follows to change shell to bash.
**Method 1:** Run the following command on the device and then click **No**.
```
sudo dpkg-reconfigure dash
```
**Method 2:** Run the first command to delete **sh** and then run the second command to create a new soft link.
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)<a name="section45512412251"></a>
Install the software.
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### Installing a File Packing Tool<a name="section8352161417450"></a> ### Installing a File Packing Tool<a name="section8352161417450"></a>
1. Start a Linux server. 1. Start a Linux server.
......
# Setting Up the Hi3518 Development Environment<a name="EN-US_TOPIC_0000001054022306"></a> # Setting Up the Hi3518 Development Environment<a name="EN-US_TOPIC_0000001054022306"></a>
- [Prerequisites](#section2074878255) - [Prerequisites](#section2074878255)
- [Requirements Specific to the Hi3518 Development Environment](#section1724111409282) - [Setting Up the Hi3518 Development Environment](#section1724111409282)
- [Hardware Requirements](#section487353718276) - [Hardware Requirements](#section487353718276)
- [Software Requirements](#section17315193935817) - [Software Requirements](#section17315193935817)
- [Installing the Linux Compilation Environment](#section8831868501) - [Installing the Linux Compilation Environment](#section8831868501)
- [Changing Linux Shell to Bash](#section1715027152617)
- [Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)](#section45512412251)
- [Installing a File Packing Tool](#section480195453419) - [Installing a File Packing Tool](#section480195453419)
- [Installing hc-gen](#section351420104218) - [Installing hc-gen](#section351420104218)
...@@ -14,7 +16,7 @@ ...@@ -14,7 +16,7 @@
You must complete the settings in [Basic OS Environment Setup](basic-os-environment-setup.md). You must complete the settings in [Basic OS Environment Setup](basic-os-environment-setup.md).
## Requirements Specific to the Hi3518 Development Environment<a name="section1724111409282"></a> ## Setting Up the Hi3518 Development Environment<a name="section1724111409282"></a>
### Hardware Requirements<a name="section487353718276"></a> ### Hardware Requirements<a name="section487353718276"></a>
...@@ -45,7 +47,21 @@ The following table describes the tools required for setting up the general envi ...@@ -45,7 +47,21 @@ The following table describes the tools required for setting up the general envi
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row08231641105420"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools, mtools, and mtd-utils</p> <tbody><tr id="row18630134151917"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p1563113417199"><a name="p1563113417199"></a><a name="p1563113417199"></a>bash</p>
</td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p463193418190"><a name="p463193418190"></a><a name="p463193418190"></a>Processes CLI commands.</p>
</td>
<td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p1063118344191"><a name="p1063118344191"></a><a name="p1063118344191"></a>System configuration</p>
</td>
</tr>
<tr id="row7598468212"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p659815642111"><a name="p659815642111"></a><a name="p659815642111"></a>Basic software package for compilation and building (required only for Ubuntu 20+)</p>
</td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>Provides a basic software package for compilation and building.</p>
</td>
<td class="cellrowborder" valign="top" width="66.996699669967%" headers="mcps1.2.4.1.3 "><p id="p125983652118"><a name="p125983652118"></a><a name="p125983652118"></a>Internet</p>
</td>
</tr>
<tr id="row08231641105420"><td class="cellrowborder" valign="top" width="13.081308130813083%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools, mtools, and mtd-utils</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>Pack files.</p> <td class="cellrowborder" valign="top" width="19.921992199219922%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>Pack files.</p>
</td> </td>
...@@ -68,6 +84,37 @@ The following table describes the tools required for setting up the general envi ...@@ -68,6 +84,37 @@ The following table describes the tools required for setting up the general envi
>- If you acquire the source code using an HPM component or HPM CLI tool, compilation tools like **gn**, **ninja**, **LLVM**, and **hc-gen** are not required. >- If you acquire the source code using an HPM component or HPM CLI tool, compilation tools like **gn**, **ninja**, **LLVM**, and **hc-gen** are not required.
>- \(Recommended\) If you obtain the source code through an image site or a code repository, compilation tools like **LLVM** and **hc-gen** need to be installed. When installing **LLVM** and **hc-gen**, ensure that the environment variable paths of the compilation tools are unique. >- \(Recommended\) If you obtain the source code through an image site or a code repository, compilation tools like **LLVM** and **hc-gen** need to be installed. When installing **LLVM** and **hc-gen**, ensure that the environment variable paths of the compilation tools are unique.
### Changing Linux Shell to Bash<a name="section1715027152617"></a>
Check whether bash is used as the shell.
```
ls -l /bin/sh
```
If **/bin/sh -\> bash** is not displayed, do as follows to change shell to bash.
**Method 1:** Run the following command on the device and then click **No**.
```
sudo dpkg-reconfigure dash
```
**Method 2:** Run the first command to delete **sh** and then run the second command to create a new soft link.
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)<a name="section45512412251"></a>
Install the software.
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### Installing a File Packing Tool<a name="section480195453419"></a> ### Installing a File Packing Tool<a name="section480195453419"></a>
1. Start a Linux server. 1. Start a Linux server.
......
...@@ -3,19 +3,21 @@ ...@@ -3,19 +3,21 @@
- [Prerequisites](#section2074878255) - [Prerequisites](#section2074878255)
- [Requirements Specific to the Hi3861 Development Environment](#section466851916410) - [Requirements Specific to the Hi3861 Development Environment](#section466851916410)
- [Installing the Linux Compilation Environment](#section497484245614) - [Installing the Linux Compilation Environment](#section497484245614)
- [Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)](#section45512412251)
- [Installing Scons](#section13515123015279) - [Installing Scons](#section13515123015279)
- [Installing Python Modules](#section88701892341)
- [Installing gcc\_riscv32 \(Compilation Toolchain for WLAN Module\)](#section1842910288284) - [Installing gcc\_riscv32 \(Compilation Toolchain for WLAN Module\)](#section1842910288284)
>![](public_sys-resources/icon-notice.gif) **NOTICE:**
>This section describes how to use an installation package to set up the compilation and building environment. If you are going to use Docker to set up the environment, the Linux server-related tools SCons 3.0.4+ and build-essential are not required, and you only need to install the Windows workstation.
## Prerequisites<a name="section2074878255"></a> ## Prerequisites<a name="section2074878255"></a>
You must complete the settings in [Basic OS Environment Setup](basic-os-environment-setup.md). You must complete the settings in [Basic OS Environment Setup](basic-os-environment-setup.md).
## Requirements Specific to the Hi3861 Development Environment<a name="section466851916410"></a> ## Requirements Specific to the Hi3861 Development Environment<a name="section466851916410"></a>
>![](public_sys-resources/icon-notice.gif) **NOTICE:**
>This section describes how to use an installation package to set up the compilation and building environment. If you are going to use Docker to set up the environment, the Linux server-related tools in [Table 1](#table6299192712513) are not required, and you only need to install the Windows workstation.
The following table describes the environment configuration requirements specific to the Hi3861 development board. The following table describes the environment configuration requirements specific to the Hi3861 development board.
**Table 1** Hi3861 development environment-specific requirements **Table 1** Hi3861 development environment-specific requirements
...@@ -31,7 +33,16 @@ The following table describes the environment configuration requirements specifi ...@@ -31,7 +33,16 @@ The following table describes the environment configuration requirements specifi
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row1397335913612"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p3711468218"><a name="p3711468218"></a><a name="p3711468218"></a>Linux server</p> <tbody><tr id="row935218593572"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p105554418586"><a name="p105554418586"></a><a name="p105554418586"></a>Linux server</p>
</td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p45551740589"><a name="p45551740589"></a><a name="p45551740589"></a>Basic software package for compilation and building (required only for Ubuntu 20+)</p>
</td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p655594115814"><a name="p655594115814"></a><a name="p655594115814"></a>Provides a basic software package for compilation and building.</p>
</td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p165558415589"><a name="p165558415589"></a><a name="p165558415589"></a>Internet</p>
</td>
</tr>
<tr id="row1397335913612"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p3711468218"><a name="p3711468218"></a><a name="p3711468218"></a>Linux server</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p097355911620"><a name="p097355911620"></a><a name="p097355911620"></a>SCons 3.0.4+</p> <td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p097355911620"><a name="p097355911620"></a><a name="p097355911620"></a>SCons 3.0.4+</p>
</td> </td>
...@@ -40,13 +51,22 @@ The following table describes the environment configuration requirements specifi ...@@ -40,13 +51,22 @@ The following table describes the environment configuration requirements specifi
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p1722663441514"><a name="p1722663441514"></a><a name="p1722663441514"></a>Internet</p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p1722663441514"><a name="p1722663441514"></a><a name="p1722663441514"></a>Internet</p>
</td> </td>
</tr> </tr>
<tr id="row1463517494402"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>Linux server</p> <tr id="row1968013216717"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p2681632977"><a name="p2681632977"></a><a name="p2681632977"></a>Linux server</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>build-essential</p> <td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p1991501391312"><a name="p1991501391312"></a><a name="p1991501391312"></a>Python modules: setuptools, Kconfiglib, PyCryptodome, six, and ecdsa</p>
</td> </td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>Provides basic software package for compilation.</p> <td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p968120325715"><a name="p968120325715"></a><a name="p968120325715"></a>Executes script compilation.</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p8635174916403"><a name="p8635174916403"></a><a name="p8635174916403"></a>Internet</p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p268116326711"><a name="p268116326711"></a><a name="p268116326711"></a>Internet</p>
</td>
</tr>
<tr id="row020914491313"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p20209749103116"><a name="p20209749103116"></a><a name="p20209749103116"></a>Linux server</p>
</td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p7209104910317"><a name="p7209104910317"></a><a name="p7209104910317"></a>gcc riscv32</p>
</td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p102093498311"><a name="p102093498311"></a><a name="p102093498311"></a>Executes script compilation.</p>
</td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p321054953116"><a name="p321054953116"></a><a name="p321054953116"></a>Internet</p>
</td> </td>
</tr> </tr>
<tr id="row1596703610215"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p071946112113"><a name="p071946112113"></a><a name="p071946112113"></a>Windows workstation</p> <tr id="row1596703610215"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p071946112113"><a name="p071946112113"></a><a name="p071946112113"></a>Windows workstation</p>
...@@ -55,7 +75,7 @@ The following table describes the environment configuration requirements specifi ...@@ -55,7 +75,7 @@ The following table describes the environment configuration requirements specifi
</td> </td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p94491342131413"><a name="p94491342131413"></a><a name="p94491342131413"></a>USB-to-Serial adapter driver</p> <td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p94491342131413"><a name="p94491342131413"></a><a name="p94491342131413"></a>USB-to-Serial adapter driver</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="http://www.wch-ic.com/downloads/CH341SER_EXE.html" target="_blank" rel="noopener noreferrer">http://www.wch-ic.com/downloads/CH341SER_EXE.html</a></p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="http://www.wch-ic.com/downloads/CH341SER_EXE.html" target="_blank" rel="noopener noreferrer">http://www.wch.cn/search?q=ch340g&amp;t=downloads</a></p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -67,39 +87,129 @@ The following table describes the environment configuration requirements specifi ...@@ -67,39 +87,129 @@ The following table describes the environment configuration requirements specifi
>- If you acquire the source code using an HPM component or HPM CLI tool, **gcc\_riscv32** is not required. >- If you acquire the source code using an HPM component or HPM CLI tool, **gcc\_riscv32** is not required.
>- \(Recommended\) If you obtain the source code via the mirror site or code repository, install **gcc\_riscv32**. When installing **gcc\_riscv32**, ensure that the environment variable paths of the compilation tools are unique. >- \(Recommended\) If you obtain the source code via the mirror site or code repository, install **gcc\_riscv32**. When installing **gcc\_riscv32**, ensure that the environment variable paths of the compilation tools are unique.
### Installing Basic Software Used for Compilation and Building \(Required Only for Ubuntu 20+\)<a name="section45512412251"></a>
Install the software.
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### Installing Scons<a name="section13515123015279"></a> ### Installing Scons<a name="section13515123015279"></a>
1. Start a Linux server. 1. Start a Linux server.
2. Install the SCons installation package. 2. Install the SCons installation package.
``` ```
sudo apt-get install scons -y python3 -m pip install scons
``` ```
If the installation package cannot be found in the software source, do as follows: 3. Check whether the installation is successful.
1. Download the source code package from [https://scons.org/pages/download.html](https://scons.org/pages/download.html). The recommended SCons version is 3.0.4 or later. ```
2. Decompress the source code package to any directory, for example, scons-3.1.2. scons -v
```
**Figure 1** Successful installation \(SCons version requirement: 3.0.4 or later\)<a name="fig235815252492"></a>
![](figures/successful-installation-(scons-version-requirement-3-0-4-or-later).png "successful-installation-(scons-version-requirement-3-0-4-or-later)")
### Installing Python Modules<a name="section88701892341"></a>
1. Install setuptools.
``` ```
tar -xvf scons-3.1.2.tar.gz pip3 install setuptools
``` ```
3. Go to the source code directory and run the following command to install the source code package: 2. Install the GUI menuconfig tool \(Kconfiglib\). You are advised to install Kconfiglib 13.2.0 or later.
- **Command line:**
``` ```
sudo python3 setup.py install sudo pip3 install kconfiglib
``` ```
3. Check whether the installation is successful. - **Installation package:**
1. Download the **.whl** file \(for example, **kconfiglib-13.2.0-py2.py3-none-any.whl**\).
Download path: [https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)
1. Install the **.whl** file.
``` ```
scons -v sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
```
3. Install **PyCryptodome** using either of the following methods:
Install the Python component packages on which the file signature depends, including PyCryptodome, six, and ecdsa. As the installation of **ecdsa** depends on that of **six**, install **six** first.
- **Command line:**
``` ```
sudo pip3 install pycryptodome
```
- **Installation package:**
1. Download the **.whl** file \(for example, **pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl**\).
Download path: [https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)
1. Install the **.whl** file.
```
sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
```
4. Install **six** using either of the following methods:
- **Command line:**
```
sudo pip3 install six --upgrade --ignore-installed six
```
- **Installation package:**
1. Download the **.whl** file, for example, **six-1.12.0-py2.py3-none-any.whl**.
Download path: [https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)
1. Install the **.whl** file.
```
sudo pip3 install six-1.12.0-py2.py3-none-any.whl
```
5. Install **ecdsa** using either of the following methods:
- **Command line:**
```
sudo pip3 install ecdsa
```
- **Installation package:**
1. Download the **.whl** file, for example, **ecdsa-0.14.1-py2.py3-none-any.whl**.
Download path: [https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)
1. Install the **.whl** file.
```
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
```
**Figure 1** Successful installation<a name="fig235815252492"></a>
![](figures/successful-installation.png "successful-installation")
### Installing gcc\_riscv32 \(Compilation Toolchain for WLAN Module\)<a name="section1842910288284"></a> ### Installing gcc\_riscv32 \(Compilation Toolchain for WLAN Module\)<a name="section1842910288284"></a>
...@@ -172,7 +282,7 @@ The following table describes the environment configuration requirements specifi ...@@ -172,7 +282,7 @@ The following table describes the environment configuration requirements specifi
cd /opt && mkdir gcc_riscv32 cd /opt && mkdir gcc_riscv32
``` ```
13. Build **Bintutils**. 13. Compile **binutils**.
``` ```
mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd .. mkdir build_binutils && cd build_binutils && ../riscv-binutils-gdb/configure --prefix=/opt/gcc_riscv32 --target=riscv32-unknown-elf --with-arch=rv32imc --with-abi=ilp32 --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --enable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-multilib --enable-poison-system-directories --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-system-zlib CFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS="-fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro,-z,now,-z,noexecstack -fPIE" CXXFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" CFLAGS_FOR_TARGET="-Os -mcmodel=medlow -Wall -fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -Wtrampolines -fno-short-enums -fno-short-wchar" --bindir=/opt/gcc_riscv32/bin --libexecdir=/opt/gcc_riscv32/riscv32 --libdir=/opt/gcc_riscv32 --includedir=/opt/gcc_riscv32 && make -j16 && make install && cd ..
......
...@@ -7,7 +7,7 @@ This module implements automatic service initialization. That is, the initializa ...@@ -7,7 +7,7 @@ This module implements automatic service initialization. That is, the initializa
For details about how to include the **zInit** code segment, see the Hi3861 linker script in **vendor/hisi/hi3861/hi3861/build/link/link.ld.S**. For details about how to include the **zInit** code segment, see the Hi3861 linker script in **vendor/hisi/hi3861/hi3861/build/link/link.ld.S**.
For details about the macros used by the bootstrap module to implement automatic service initialization, see [API document](https://gitee.com/openharmony/docs/blob/master/api/api-SmartVision-Devices/OHOS-Init.md) for the startup subsystem. For details about the macros used by the bootstrap module to implement automatic service initialization, see [API document](https://device.harmonyos.com/en/docs/develop/apiref/init-0000001054598113) the startup subsystem.
## Available APIs<a name="section1633115419401"></a> ## Available APIs<a name="section1633115419401"></a>
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
- **Solution** - **Solution**
``` ```
sudo apt-get install dosfstools mtools sudo apt-get install dosfstools mtools
``` ```
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
Permission is required to access files in the **riscv** compiler path. Permission is required to access files in the **riscv** compiler path.
- **Solution** - **Solution**
1. Run the following command to query the directory where **hcc\_riscv32** is located: 1. Run the following command to query the directory where **gcc\_riscv32** is located:
``` ```
which riscv32-unknown-elf-gcc which riscv32-unknown-elf-gcc
......
...@@ -15,7 +15,6 @@ build/lite # Primary directory for compilation and building ...@@ -15,7 +15,6 @@ build/lite # Primary directory for compilation and building
│ ├── kernel # Compilation configuration parameters of the kernel │ ├── kernel # Compilation configuration parameters of the kernel
│ └── subsystem # Subsystem template │ └── subsystem # Subsystem template
├── ndk # NDK-related compilation scripts and configuration parameters ├── ndk # NDK-related compilation scripts and configuration parameters
├── product # Full configuration tables of the product, which contain configuration units, the subsystem list, and the compiler
└── toolchain # Compilation toolchains, which contain the compiler directories, compilation options, and linking options └── toolchain # Compilation toolchains, which contain the compiler directories, compilation options, and linking options
``` ```
......
...@@ -102,17 +102,16 @@ It is considered best practice to learn the following basic concepts before you ...@@ -102,17 +102,16 @@ It is considered best practice to learn the following basic concepts before you
build a specified product with build a specified product with
{product_name}@{company}, eg: ipcamera@hisilcon {product_name}@{company}, eg: ipcamera@hisilcon
-f, --full full code compilation -f, --full full code compilation
-n, --ndk compile ndk
``` ```
- If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the compilation. - If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the compilation. The **-f** option will delete all products to be compiled, which is equivalent to running **hb clean** and **hb build**.
- You can run **hb build** _\{component\_name\}_ to compile product components separately based on the development board and kernel set for the product, for example, **hb build kv\_store**. - You can run **hb build** _\{component\_name\}_ to compile product components separately based on the development board and kernel set for the product, for example, **hb build kv\_store**.
- You can run **hb build -p ipcamera@hisilicon** to skip the setting step and compile the product directly. - You can run **hb build -p ipcamera@hisilicon** to skip the setting step and compile the product directly.
- You can run **hb build** in **device/device\_company/board** to select the kernel and start compilation based on the current development board and the selected kernel to generate an image that contains the kernel and driver only. - You can run **hb build** in **device/device\_company/board** to select the kernel and start compilation based on the current development board and the selected kernel to generate an image that contains the kernel and driver only.
4. **hb clean** 4. **hb clean**
Clear the compilation result of the product in the **out** directory, and leave the **args.gn** and **build.log** files only. To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean** _xxx_**/out/**_xxx_. Clear the compilation result of the product in the **out** directory, and retain the **args.gn** and **build.log** files only. To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean** _xxx_**/out/**_xxx_.
``` ```
......
# Development Example<a name="EN-US_TOPIC_0000001061399563"></a> # Development Example<a name="EN-US_TOPIC_0000001061399563"></a>
For details, see the [example in the open-source project](https://gitee.com/openharmony/aafwk_frameworks_kits_ability_lite/tree/master/example). For details, see the [example in the open-source project](https://gitee.com/openharmony/aafwk_aafwk_lite/tree/master/frameworks/ability_lite/example).
...@@ -3,7 +3,15 @@ ...@@ -3,7 +3,15 @@
- [When to Use](#section18502174174019) - [When to Use](#section18502174174019)
- [Signature Verification Process](#section554632717226) - [Signature Verification Process](#section554632717226)
- [Available APIs](#section1633115419401) - [Available APIs](#section1633115419401)
- [How to Develop](#section4207112818418) - [Development Procedure \(Scenario 1\)](#section4207112818418)
- [Signature Verification](#section11470123816297)
- [Self-signed Application Generation](#section167151429133312)
- [Development Examples](#section174318361353)
- [Development Procedure \(Scenario 2\)](#section81272563427)
- [Signature Verification](#section07028210442)
- [Development Examples](#section1930711345445)
- [Debugging and Verification](#section427316292411) - [Debugging and Verification](#section427316292411)
## When to Use<a name="section18502174174019"></a> ## When to Use<a name="section18502174174019"></a>
...@@ -23,24 +31,23 @@ After the HAP is signed, a signature block is added between the file block and t ...@@ -23,24 +31,23 @@ After the HAP is signed, a signature block is added between the file block and t
The signature verification process consists of three steps: HAP signature verification, signature verification for the profile signature block, and profile content verification. The signature verification process consists of three steps: HAP signature verification, signature verification for the profile signature block, and profile content verification.
- HAP signature verification **HAP signature verification**
The process is as follows:
1. Use the preset root certificate of the device to verify the certificate chain in the file signature block and prove that the leaf certificate is trusted.
2. Use the public key in the leaf certificate to verify the file signature block and prove that this block is not tampered with.
3. Calculate and merge the digests of the file block, central directory, and EOCD. Merge the calculation result with the digest of the profile signature block in the signature block. Then compare the merge result with the digest of the file signature block. If they are the same, the HAP signature verification is successful.
Use the preset root certificate of the device and the certificate chain to prove that the leaf certificate is trusted. Then use the digest obtained by decrypting the public key of the leaf certificate to prove that the HAP is not tampered with.
- Signature verification for the profile signature block The process is as follows:
First of all, check who issued the signature of the profile signature block. If the signature was issued by the application market, the signature is trusted and does not need to be verified. Otherwise, the signature needs to be verified. Next, verify the certificate chain and then use the leaf certificate to verify the signature of the profile signature block to prove that it is not tampered with. 1. Use the preset root certificate of the device to verify the certificate chain in the file signature block and prove that the leaf certificate is trusted.
2. Use the public key in the leaf certificate to verify the file signature block and prove that this block is not tampered with.
3. Calculate and merge the digests of the file block, central directory, and EOCD. Merge the calculation result with the digest of the profile signature block in the signature block. Then compare the merge result with the digest of the file signature block. If they are the same, the HAP signature verification is successful.
**Signature verification for the profile signature block**
- Profile content verification First of all, check who issued the signature of the profile signature block. If the signature was issued by the application market, the signature is trusted and does not need to be verified. Otherwise, the signature needs to be verified. Next, verify the certificate chain and then use the leaf certificate to verify the signature of the profile signature block to prove that it is not tampered with.
Obtain the profile and check the validity of its content. If the HAP is a debugging application, check whether the UDID of the current device is contained in the UDID list in the profile. If yes, the verification is successful. Then compare the certificate in the profile with the leaf certificate used for HAP verification \(this is not required for a released or OpenHarmony self-signed application\). If they are the same, the entire signature verification process is complete. **Profile content verification**
Obtain the profile and check the validity of its content. If the HAP is a debugging application, check whether the UDID of the current device is contained in the UDID list in the profile. If yes, the verification is successful. Then compare the certificate in the profile with the leaf certificate used for HAP verification \(this is not required for a released or OpenHarmony self-signed application\). If they are the same, the entire signature verification process is complete.
## Available APIs<a name="section1633115419401"></a> ## Available APIs<a name="section1633115419401"></a>
...@@ -74,62 +81,81 @@ The following table lists the innerkits APIs provided by the signature verificat ...@@ -74,62 +81,81 @@ The following table lists the innerkits APIs provided by the signature verificat
</tbody> </tbody>
</table> </table>
## How to Develop<a name="section4207112818418"></a> ## Development Procedure \(Scenario 1\)<a name="section4207112818418"></a>
Application signature verification applies to the following scenarios: ### Signature Verification<a name="section11470123816297"></a>
- Verification of applications released in the application market, debugging applications signed with debugging certificates of the application market, and OpenHarmony self-signed applications Verification of applications released in the application market, debugging applications signed with debugging certificates of the application market, and OpenHarmony self-signed applications
- Verification of applications signed with certificates that are based on debugging root keys
The signature verification procedure in the first scenario is as follows: 1. Construct the VerifyResult structure.
1. Construct the **VerifyResult** structure.
``` ```
VerifyResult verifyResult = {0}; VerifyResult verifyResult = {0};
``` ```
2. Call the **APPVERI\_AppVerify** function by specifying the file path and **VerifyResult** to verify the application signature. 2. Call the APPVERI\_AppVerify function by specifying the file path and VerifyResult to verify the application signature.
``` ```
int32_t ret = APPVERI_AppVerify(hapFilepath.c_str(), &verifyResult); int32_t ret = APPVERI_AppVerify(hapFilepath.c_str(), &verifyResult);
``` ```
3. Check the returned result. If the verification is successful, obtain and process the data in **VerifyResult**. 3. Check the returned result. If the verification is successful, obtain and process the data in VerifyResult.
``` ```
signatureInfo.appId = verifyResult.profile.appid; signatureInfo.appId = verifyResult.profile.appid;
signatureInfo.provisionBundleName = verifyResult.profile.bundleInfo.bundleName; signatureInfo.provisionBundleName = verifyResult.profile.bundleInfo.bundleName;
``` ```
4. Call the **APPVERI\_FreeVerifyRst** function to release memory in **VerifyResult**. 4. Call the APPVERI\_FreeVerifyRst function to release memory in VerifyResult.
``` ```
APPVERI_FreeVerifyRst(&verifyResult); APPVERI_FreeVerifyRst(&verifyResult);
``` ```
>![](public_sys-resources/icon-note.gif) **NOTE:** ### OpenHarmony Self-signed Application Generation<a name="section167151429133312"></a>
>To obtain a OpenHarmony self-signed application, prepare the signature tool, system application HAP, system application profile \(\*.p7b\), signing certificate \(\*.cer\), and signing public/private key pair \(\*.jks\).
>After obtaining the preceding materials, perform the following operations: The OpenHarmony self-signed application generation procedure is as follows:
>1. Place all the materials in the same directory and start the shell.
>2. Run the following command in the shell to sign the application: 1. Prepare required materials.
> ```
> java -jar hapsigntoolv2.jar sign -mode localjks -privatekey "OpenHarmony Software Signature" -inputFile camera.hap -outputFile signed_camera.hap -signAlg SHA256withECDSA -keystore OpenHarmony.jks -keystorepasswd 123456 -keyaliaspasswd 123456 -profile camera_release.p7b -certpath OpenHarmony.cer -profileSigned 1 Prepare the signature tool, system application HAP, system application profile \(\*.p7b\), signing certificate \(\*.cer\), and signing public/private key pair \(\*.jks\).
> ```
> Key fields: 2. Place all the materials in the same directory and start the shell.
> **-jar**: signature tool, which is **[hapsigntool](https://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jar)** 3. Run the following command in the shell to sign the application:
> **-mode**: local signature flag, which is fixed at **localjks**
> **-privatekey**: alias of the public/private key pair, which is **OpenHarmony Software Signature** ```
> **-inputFile**: application to be signed, which is generated through compilation java -jar hapsigntoolv2.jar sign -mode localjks -privatekey "OpenHarmony Software Signature" -inputFile camera.hap -outputFile signed_camera.hap -signAlg SHA256withECDSA -keystore OpenHarmony.jks -keystorepasswd 123456 -keyaliaspasswd 123456 -profile camera_release.p7b -certpath OpenHarmony.cer -profileSigned 1
> **-outputFile**: signed application ```
> **-signAlg**: signing algorithm, which is fixed at **SHA256withECDSA**
> **-keystore**: public/private key pair, which is **[OpenHarmony.jks](https://gitee.com/openharmony/security_services_app_verify/blob/master/OpenHarmonyCer/OpenHarmony.jks)** in the **OpenHarmonyCer** directory of the **security\_services\_app\_verify** repository. The default password is **123456**. You can use a tool \(such as keytool\) to change the password. Key fields:
> **-keystorepasswd**: password of the public/private key pair, which is **123456** by default
> **-keyaliaspasswd**: password of the public/private key pair alias, which is **123456** by default **-jar**: signature tool, which is **[hapsigntool](https://repo.huaweicloud.com/harmonyos/develop_tools/hapsigntoolv2.jar)**
> **-profile**: application profile, which is stored in the code directory
> **-certpath**: signing certificate, which is **[OpenHarmony.cer](https://gitee.com/openharmony/security_services_app_verify/blob/master/OpenHarmonyCer/OpenHarmony.cer)** in the **OpenHarmonyCer** directory of the **security\_services\_app\_verify** repository. **-mode**: local signature flag, which is fixed at **localjks**
> **-profileSigned**: whether the signature block contains the profile. The value is fixed at **1**, indicating that the signature block contains the profile.
**-privatekey**: alias of the public/private key pair, which is **OpenHarmony Software Signature**
**-inputFile**: application to be signed, which is generated through compilation
**-outputFile**: signed application
**-signAlg**: signing algorithm, which is fixed at **SHA256withECDSA**
**-keystore**: public/private key pair, which is [OpenHarmony.jks](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.jks) in the **OpenHarmonyCer** directory of the **security\_services\_app\_verify** repository. The default password is **123456**. You can use a tool \(such as keytool\) to change the password.
**-keystorepasswd**: password of the public/private key pair, which is **123456** by default
**-keyaliaspasswd**: password of the public/private key pair alias, which is **123456** by default
**-profile**: application profile, which is stored in the code directory
**-certpath**: signing certificate, which is [OpenHarmony.cer](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.cer) in the **OpenHarmonyCer** directory of the **security\_services\_app\_verify** repository.
**-profileSigned**: whether the signature block contains the profile. The value is fixed at **1**, indicating that the signature block contains the profile.
### Development Examples<a name="section174318361353"></a>
The following example describes how the application management framework component verifies the signature of an application during its installation. The following example describes how the application management framework component verifies the signature of an application during its installation.
...@@ -160,9 +186,13 @@ uint8_t HapSignVerify::VerifySignature(const std::string &hapFilepath, Signature ...@@ -160,9 +186,13 @@ uint8_t HapSignVerify::VerifySignature(const std::string &hapFilepath, Signature
} }
``` ```
The signature verification procedure in the second scenario is as follows: ## Development Procedure \(Scenario 2\)<a name="section81272563427"></a>
1. Call the **APPVERI\_SetDebugMode\(true\)** function to enable debugging mode. ### Signature Verification<a name="section07028210442"></a>
The procedure is as follows:
1. Call the APPVERI\_SetDebugMode\(true\) function to enable the debugging mode.
``` ```
ManagerService::SetDebugMode(true); ManagerService::SetDebugMode(true);
...@@ -181,13 +211,15 @@ The signature verification procedure in the second scenario is as follows: ...@@ -181,13 +211,15 @@ The signature verification procedure in the second scenario is as follows:
``` ```
2. Construct the **VerifyResult** structure, verify the application signature, and release memory in **VerifyResult**. 2. Construct the **VerifyResult** structure, verify the application signature, and release memory in **VerifyResult**.
3. Call the **APPVERI\_SetDebugMode\(false\)** function to disable debugging mode. 3. Call the APPVERI\_SetDebugMode\(false\) function to disable the debugging mode.
``` ```
ManagerService::SetDebugMode(false); ManagerService::SetDebugMode(false);
``` ```
### Development Examples<a name="section1930711345445"></a>
The following is the example code \(supplemented based on the example code for scenario 1\): The following is the example code \(supplemented based on the example code for scenario 1\):
``` ```
......
...@@ -38,23 +38,25 @@ You can use APIs of the distributed communication subsystem to implement fast an ...@@ -38,23 +38,25 @@ You can use APIs of the distributed communication subsystem to implement fast an
1. **Device discovery** 1. **Device discovery**
When using device discovery, ensure that the device to perform a discovery and the device to discover are in the same LAN and the devices can receive packets from each other. When using device discovery, ensure that the device to perform a discovery and the device to discover are in the same LAN and the devices can receive packets from each other.
a. After a device sends a discovery request, it uses Constrained Application Protocol \(CoAP\) to send a broadcast packet in the LAN. a. After a device sends a discovery request, it uses Constrained Application Protocol \(CoAP\) to send a broadcast packet in the LAN.
b. The discovered device uses the **PublishService** API to publish services. After receiving the broadcast packet, the device sends a CoAP unicast packet to the device that performs the discovery. b. The discovered device uses the **PublishService** API to publish services. After receiving the broadcast packet, the device sends a CoAP unicast packet to the device that performs the discovery.
c. After receiving the packet, the device that performs the discovery updates device information. c. After receiving the packet, the device that performs the discovery updates device information.
**2. Transmission** 2. **Transmission**
The soft bus provides unified session-based transmission. Services can receive and send data or obtain basic attributes through **sessionId**. Currently, services can determine whether to accept a received session based on the service requirements and session attributes. Currently, sessions cannot be enabled. The soft bus provides unified session-based transmission. Services can receive and send data or obtain basic attributes through **sessionId**. Currently, services can determine whether to accept a received session based on the service requirements and session attributes. Currently, sessions cannot be enabled.
## Repositories Involved<a name="section4499619123117"></a> ## Repositories Involved<a name="section4499619123117"></a>
communication\_softbus\_lite **Intelligent Soft Bus subsystem**
communication\_ipc\_lite [communication\_softbus\_lite](https://gitee.com/openharmony/communication_softbus_lite/blob/master/README.md)
communication\_wifi\_aware [communication\_ipc\_lite](https://gitee.com/openharmony/communication_ipc_lite/blob/master/README.md)
[communication\_wifi\_aware](https://gitee.com/openharmony/communication_wifi_aware/blob/master/README.md)
# LiteIPC driver
## Overview
LiteIPC is an OpenHarmony extension to the LiteOS(a) kernel which provides a means for processes on the same device to communicate with each other. It is a somewhat higher level mechanism than POSIX IPC methods such as message queues or shared memory, providing automatic management of resources used for IPC and control of access rights to send messages to other processes. IPC messages are exchanged between tasks. An IPC service is a task which has been set up to receive request type messages. Access rights are granted to processes, if a process has access to a service then all tasks in the process are able to send requests to the service.
## API
*Application-layer Interface*
//foundation/communication/ipc_lite/frameworks/liteipc/include/liteipc.h
//foundation/communication/ipc_lite/interfaces/kits/liteipc_adapter.h
*Implementation*
//kernel/liteos_a/kernel/extended/liteipc/hm_liteipc.h
//kernel/liteos_a/kernel/extended/liteipc/hm_liteipc.c
`LITEIPC_DRIVER` specifies the name of the character device used to communicate with the LiteIPC driver (currently /dev/lite_ipc).
Memory mapping allocates a memory area for storing messages received by the process' tasks. ioctl calls to the driver before it has been memory mapped return with error **ENOMEM**.
The IpcMsg structure is the basic unit of transaction for LiteIPC.
| Member | Type | Description |
| --------- | ----------- | ----------- |
| type | MsgType | The message's type. It can be one of the following values **MT_REQUEST**, **MT_REPLY**, **MT_FAILED_REPLY**, **MT_DEATH_NOTIFY**. |
| target | SvcIdentity | Specifies the message's recipient. |
| flag | IpcFlag | Indicates whether the message can be replied to or is one-way. It can be one of the following values **LITEIPC_FLAG_DEFAULT**, **LITEIPC_FLAG_ONEWAY**. |
| dataSz | UINT32 | The size of the message data in bytes pointed to by data (cannot exceed IPC_MSG_DATA_SZ_MAX, currently 1024 bytes). |
| data | void* | Pointer to the message data. |
| spObjNum | UINT32 | The number of special objects contained in the message data (cannot exceed IPC_MSG_OBJECT_NUM_MAX). |
| offsets | void* | An array of offsets relative to data pointing to SpecialObj special objects in data. |
| code | UINT32 | Service function code. |
| timestamp | UINT64 | Timestamp for when the message was sent. Automatically set by the IPC system for requests and death notifications. |
| taskID | UINT32 | Specifies the message's sender. Automatically set by the IPC system. |
| processID | UINT32 | Additional information on the message's sender. Automatically set by the IPC system. |
SpecialObj
| Member | Type | Description |
| ------- | ---------- | ----------- |
| type | ObjType | The type of special object. It can be one of the following values **OBJ_FD**, **OBJ_PTR**, **OBJ_SVC**. |
| content | ObjContent | The special object. |
ObjContent
| SpecialObj type | Member | Type | Description |
| --------------- | ------ | ----------- | ----------- |
| OBJ_FD | fd | UINT32 | Currently does nothing. |
| OBJ_PTR | ptr | BuffPtr | Auxiliary data to be sent (not limited by IPC_MSG_DATA_SZ_MAX). |
| OBJ_SVC | svc | SvcIdentity | A service to give the recipient permission to send requests to. |
`IPC_SEND_RECV_MSG` is the primary request which provides the ability to send and receive IpcMsg messages as well as free memory used by unneeded messages. Its argument is a pointer to an IpcContent structure.
IpcContent
| Member | Type | Description |
| ---------- | ----------- | ----------- |
| flag | UINT32 | Specifies the operation(s) to be performed. It is the bitwise-or of one or more of the following flags **SEND**, **RECV**, **BUFF_FREE**. |
| outMsg | IpcMsg* | Points to a message to be sent. |
| inMsg | IpcMsg* | Points to a message that has been received. |
| buffToFree | void* | Points to IPC memory to be freed (a previously received message which is no longer needed). |
- The **SEND** flag indicates a request to send outMsg. Returns with error **EINVAL** if any member of the message has been given an invalid value.
- Sending a message with type **MT_REQUEST** returns with error **EACCES** if the task doesn't have access rights to the recipient, and **EINVAL** for an invalid recipient. All tasks have access rights to the CMS (see IPC_SET_CMS), and to their own process' IPC services.
- Sending a message with type **MT_REPLY** or **MT_FAILED_REPLY** returns with error **EINVAL** if any of the following are not satisifed:
- buffToFree must point at the message being replied to and the **BUFF_FREE** flag must be set.
- The outMsg recipient (target.handle) must match the buffToFree sender (taskID).
- The outMsg and buffToFree timestamps must match.
- buffToFree must be a **MT_REQUEST** type message and cannot be marked as **LITEIPC_FLAG_ONEWAY**.
- buffToFree must be addressed to a service of the current process.
Trying to reply to a message sent more than LITEIPC_TIMEOUT_NS nanoseconds ago (currently 5 seconds) returns with error **ETIME**.
The message is copied into memory allocated from the IPC memory area of the process for the recipient task specified by target.handle. Returns with error **ENOMEM** if the memory cannot be allocated. Special objects in offsets are then processed. **OBJ_PTR** objects' data is copied into memory allocated from the recipient's IPC memory area, discards the message and returns with error **EINVAL** if unable to allocate enough memory. **OBJ_SVC** objects grant the recipient access rights to the service specified by the object if the sender already has access and the service is set as an IPC task (see IPC_SET_IPC_THREAD), discards the message and returns with error **EACCES** if the sender doesn't have access or **EINVAL** if the service isn't running. Access rights are not revokable, on error any access rights granted before the special object which caused the error will remain. The message is then added to the tail end of the recipient's list of received messages, the recipient is woken and the scheduler is called.
- The **BUFF_FREE** flag indicates a request to free the memory used by the buffToFree message so it can be used again later for receiving messages. Returns with error **EFAULT** if buffToFree doesn't point to a received message. Returns with error **EINVAL** if an invalid address.
- The **RECV** flag indicates a request to receive a message.
- If the **SEND** flag is set the task will wait for a message for up to LITEIPC_TIMEOUT_MS milliseconds (currently 5 seconds). Returns with error **ETIME** on timeout. Messages with a type of **MT_REQUEST** and **MT_REPLY** or **MT_FAILED_REPLY** type messages which don't match outMsg (matching timestamp or matching code and target.token depending on kernel configuration) are discarded (resets timer). Sets inMsg to point at the received message and removes it from the list of received messages for **MT_REPLY** or **MT_DEATH_NOTIFY** type messages. Note that receiving a **MT_DEATH_NOTIFY** makes it impossible to receive the reply so send/receive requests shouldn't be used by services which might receive death notifications. Discards the message and returns with error **ENOENT** without changing inMsg if the received message has type **MT_FAILED_REPLY**.
- If the **SEND** flag is not set, the task will sleep until a message with type **MT_REQUEST** or **MT_DEATH_NOTIFY** is received. Sets inMsg to point at the received message, and removes the message from its list of received messages. Discards **MT_REPLY** or **MT_FAILED_REPLY** type messages received while waiting.
For a single request the operations are processed in the order **SEND**->**BUFF_FREE**->**RECV** with **BUFF_FREE** being processed even if there was an error in **SEND**. Error checking on buffToFree occurs before **SEND**, an error in buffToFree will abort the request without doing anything.
The `IPC_SET_IPC_THREAD` request designates the current task as the IPC task for the current process. It can only be performed once per process. Returns the ID of the task set as IPC task on success, subsequent calls return with error **EINVAL**. The IPC task receives the death notifications from IPC services the process has access rights to when those services terminate. A service which has been set as IPC task can have access rights to itself distributed through special objects without using the CMS.
IPC_SEND_RECV_MSG and IPC_SET_IPC_THREAD both return with error **EINVAL** if the CMS has not been set.
### Internal functions
The first task to use the `IPC_SET_CMS` request sets itself as the system's CMS. OpenHarmony assigns this role to the distributed scheduler's samgr. Once set it cannot be changed. Returns with error **EEXIST** if the CMS has already been set. Messages are sent to the CMS by setting a recipient handle of 0. The argument to the request specifies the maximum size of a message sent to the CMS. Sending a message whose total size including IpcMsg data structure, data size, size of special object offsets, and data in any BuffPtr special objects exceeds the maximum size (currently 256 bytes) returns with error **EINVAL**.
The `IPC_CMS_CMD` request provides various service related utility functions to the CMS. It can only be used by the CMS, any other task making this request will get an **EACCES** error. The argument to the request is a pointer to a CmsCmdContent structure. The cmd member indicates the function to be performed.
- **CMS_GEN_HANDLE** creates a service handle for the task specified by taskID member and stores the handle in the serviceHandle member. The CMS always has access rights to any created IPC services.
- **CMS_REMOVE_HANDLE** unregisters the service handle specified by the serviceHandle member.
- **CMS_ADD_ACCESS** gives the task specified by the taskID member access rights to the service specified by the serviceHandle member.
LiteIPC includes utility functions for the kernel to manage the IPC system.
`LiteIpcInit` initializes the IPC system and must be called before it can be used.
`LiteIpcPoolInit` performs basic initialization of a ProcIpcInfo. Called by the kernel on task creation to initialize the IPC variables in the task's control block.
`LiteIpcPoolReInit` initializes the IPC variables of a child task from it's parent's task. Called by the kernel on the creation of child tasks for basic initialization.
`LiteIpcPoolDelete` removes a process' IPC memory pool allocated by memory mapping and all the process' access rights. Called by the kernel on process deletion for automatic memory and IPC resource management.
`LiteIpcRemoveServiceHandle` deregisters a service, clearing out the service task's message list and the list of processes with access rights to the service and sending death notification messages to any services with a set IPC task which had access. Death notification messages are only sent once, if there is an error in the send (**ENOMEM**) the recipient will not get the death notification. Death notification messages set target.token to the sevice handle of the service which terminated. Called by the kernel on task deletion for automatic IPC resource management.
### Sample code
1. Initialization before we can use LiteIPC.
```
#include "liteipc_adapter.h"
#include "liteipc.h"
int fd = open(LITEIPC_DRIVER, O_RDONLY);
mmap(NULL, 10000, PROT_READ, MAP_PRIVATE, fd, 0);
```
2. Send a message to the CMS. For simplicity let's say we have a primitive CMS which simply gives us access to and returns the handle of the service named in the request we send to it.
```
#define SVCNAME "wakeup service"
IpcMsg msg = {
.type = MT_REQUEST,
.target = { 0, 0, 0 },
.flag = LITEIPC_FLAG_DEFAULT,
.dataSz = sizeof(SVCNAME),
.data = SVCNAME,
.spObjNum = 0,
.offsets = NULL
};
IpcContent content = {
.flag = SEND | RECV,
.outMsg = &msg
};
// Send a message to the CMS
if (ioctl(fd, IPC_SEND_RECV_MSG, &content) < 0) {
goto ERROR;
}
```
3. Set our IPC task and send a message to the wakeup service.
```
// Set ourselves as IPC task so we can distribute access on our own
int myId = ioctl(fd, IPC_SET_IPC_THREAD, 0);
struct {
char summary[20];
SpecialObj command;
SpecialObj svc;
} wakeupData = {
.summary = "one wakeup"
};
char commandStr[100] = "Wake me up at 9:00 in the morning.";
void* wakeupOffsets[2] = {
(void*)((uintptr_t)&wakeupData.command - (uintptr_t)&wakeupData),
(void*)((uintptr_t)&wakeupData.svc - (uintptr_t)&wakeupData)
};
// Send a request to the wakeup service and free the CMS's reply
content.flag = SEND | BUFF_FREE;
content.buffToFree = content.inMsg;
msg.type = MT_REQUEST;
// Set the recipient from the CMS' reply
msg.target.handle = *(uint32_t*)content.inMsg->data;
// Add the auxiliary data.
wakeupData.command.type = OBJ_PTR;
wakeupData.command.content.ptr.buffSz = sizeof(commandStr);
wakeupData.command.content.ptr.buff = commandStr;
// Give the wakeup service access to send us requests.
wakeupData.svc.type = OBJ_SVC;
wakeupData.svc.content.svc.handle = myId;
// Complete the message and send it.
msg.data = &wakeupData;
msg.dataSz = sizeof(wakeupData);
msg.offsets = wakeupOffsets;
msg.spObjNum = 2;
if (ioctl(fd, IPC_SEND_RECV_MSG, &content) < 0) {
goto ERROR;
}
```
4. Wait for wakeup and process the wakeup message.
```
// Enter "server" mode, wait for the service to wake us up.
content.flag = RECV;
ioctl(fd, IPC_SEND_RECV_MSG, &content);
// Free the received message
content.flag = BUFF_FREE;
content.buffToFree = content.inMsg;
ioctl(fd, IPC_SEND_RECV_MSG, &content);
```
5. LiteIPC automatically cleans up our IPC resources when we exit, but closing the file descriptor when we're done using it is a good habit.
```
ERROR:
close(fd);
```
# Lite Power Management<a name="EN-US_TOPIC_0000001083440980"></a> # Power Management<a name="EN-US_TOPIC_0000001083440980"></a>
- [Introduction](#section11660541593) - [Introduction](#section11660541593)
- [Directory Structure](#section19472752217) - [Directory Structure](#section19472752217)
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
## Introduction<a name="section11660541593"></a> ## Introduction<a name="section11660541593"></a>
The lite power management subsystem provides the following capabilities: The power management subsystem provides the following capabilities:
1. Querying the battery level 1. Querying the battery level
2. Keeping the device screen always on using a lock 2. Keeping the device screen always on using a lock
**Figure 1** Lite power management subsystem architecture<a name="fig106301571239"></a> **Figure 1** power management subsystem architecture<a name="fig106301571239"></a>
![](figures/en-us_image_0000001130297625.png) ![](figures/en-us_image_0000001130297625.png)
...@@ -30,5 +30,4 @@ base/powermgr/powermgr_lite ...@@ -30,5 +30,4 @@ base/powermgr/powermgr_lite
## Repositories Involved<a name="section63151229062"></a> ## Repositories Involved<a name="section63151229062"></a>
**hmf/powermgr/powermgr\_lite** [**powermgr_powermgr_lite**](https://gitee.com/openharmony/powermgr_powermgr_lite)
# OpenHarmony 1.0.1 \(2021-03-15\)<a name="EN-US_TOPIC_0000001125880475"></a>
- [Overview](#section1677664815431)
- [Kernel](#section11256141314463)
- [New Features](#section1834713384464)
- [Modified Features](#section6894155811483)
- [Pan-sensor](#section457103914819)
- [New Features](#section1157114391480)
- [Globalization](#section13453154420488)
- [New Features](#section7453174417481)
- [JS Application Framework](#section146946144818)
- [New Features](#section16654654819)
- [Modified Features](#section16114654811)
- [Deleted Features](#section7634619486)
- [Testing](#section5857174710485)
- [New Features](#section4857247154819)
- [Graphics](#section116345457492)
- [New Features](#section526413158501)
- [Modified Features](#section112652156501)
- [Utils](#section981315393543)
- [New Features](#section168131939145418)
- [Driver](#section1793134012548)
- [New Features](#section69313406541)
- [Modified Features](#section10931340175420)
- [Intelligent Soft Bus](#section11286194113540)
- [New Features](#section14286104112546)
- [Security](#section4535841205411)
- [New Features](#section35351941175420)
- [AI](#section11847124175419)
- [New Features](#section148472413546)
- [Update](#section09814210543)
- [New Features](#section7981542105417)
- [XTS](#section429384295416)
- [New Features](#section929316426547)
- [Modified Features](#section829419420543)
- [Compilation and Building](#section104691342105411)
- [New Features](#section34699428546)
- [Modified Features](#section946974210546)
- [Power Management](#section13166639141617)
- [New Features](#section313912368292)
- [Module Repository Optimization](#section13139145855718)
## Overview<a name="section1677664815431"></a>
OpenHarmony 1.0.1 supports more subsystems, including the AI, power management, pan-sensor, and update subsystems, and provides a unified AI engine framework. The LiteOS Cortex-M kernel has been reconstructed for porting third-party chips to OpenHarmony. The driver subsystem provides models for the WLAN, sensor, input, and display drivers. The graphics subsystem has been optimized for an enhanced UI and improved performance and memory for the JS application framework. In addition, the directory structure and module repositories have been significantly improved.
## Kernel<a name="section11256141314463"></a>
### New Features<a name="section1834713384464"></a>
- The LiteOS Cortex-M kernel supports the Cortex-M7, Cortex-M33, and RISC-V chip architecture, and the corresponding samples are provided.
- The LiteOS Cortex-M kernel supports the memory protection unit \(MPU\).
- The LiteOS Cortex-M kernel supports some POSIX APIs.
- The LiteOS Cortex-M kernel supports the FatFS file system.
- The LiteOS Cortex-M kernel supports the registration of exception callbacks.
- The architecture of the LiteOS Cortex-M kernel has been adjusted for third-party chips to adapt to OpenHarmony.
- The LiteOS Cortex-M and LiteOS Cortex-A kernels support the heap memory debugging functionalities, covering memory leakage, illegal access to the memory, and memory statistics.
- The LiteOS Cortex-M and LiteOS Cortex-A kernels support the TLSF heap memory algorithm, which improves the efficiency of memory application and release and reduces the fragmentation rate.
### Modified Features<a name="section6894155811483"></a>
- LiteOS Cortex-A scheduling has been optimized.
## Pan-sensor<a name="section457103914819"></a>
### New Features<a name="section1157114391480"></a>
- A sensor module has been added. You can now query the sensor list, enable or disable a sensor, subscribe to or unsubscribe from sensor data, set the data reporting mode of a sensor, and set sensor options such as the data sampling interval.
## Globalization<a name="section13453154420488"></a>
### New Features<a name="section7453174417481"></a>
- C/C++ APIs have been added for number, date, time, and singular-plural formatting in 79 languages.
## JS Application Framework<a name="section146946144818"></a>
### New Features<a name="section16654654819"></a>
- A global JavaScript UI attribute, **opacity**, has been added.
- A **prompt.showDialog** API has been added.
- A QR code component **qrcode** has been added.
- Event pop-ups have been added.
### Modified Features<a name="section16114654811"></a>
- Internationalization has been improved, with quicker page redirections. Number internationalization and time/date conversions are now available.
- The UI layout has been enhanced, with percentage values supported for some styles.
- The size adaptation capabilities of the **input** and **switch** components have been enhanced.
- The **image** component supports access to images in an application's private directory.
- The **image-animator** component allows you to specify the end frame.
- Some APIs have been made available for the **canvas** component.
- Some return fields have been added for the **device.getInfo** API.
- DFX can trace methods that encounter exceptions and output a list of such methods.
### Deleted Features<a name="section7634619486"></a>
- Backtracking is no longer supported for internationalization functions.
## Testing<a name="section5857174710485"></a>
### New Features<a name="section4857247154819"></a>
- The testing tool can filter test cases to execute based on the case level.
- Demo test cases have been added.
## Graphics<a name="section116345457492"></a>
### New Features<a name="section526413158501"></a>
- Component rotation, scaling, and opacity management have been added.
- Event pop-ups and the crown rotation event have been added.
- There is now GIF image parsing and display, percentage-based width and height layout, and video and QR code controls.
### Modified Features<a name="section112652156501"></a>
- Partial rendering and SIMD performance have been optimized.
## Utils<a name="section981315393543"></a>
### New Features<a name="section168131939145418"></a>
- System attribute dumping is supported.
- Memory pool management APIs have been added for upper-layer modules.
## Driver<a name="section1793134012548"></a>
### New Features<a name="section69313406541"></a>
- The sensor, input, and display driver models have been added.
- The MIPI DSI and pulse width modulation \(PWM\) have been added.
- Hardware Driver Interfaces \(HDIs\) and Wi-Fi flow control have been added.
- The I/O service grouping feature has been added for the Hardware Driver Foundation \(HDF\).
### Modified Features<a name="section10931340175420"></a>
- Driver loading has been optimized. It can now be accomplished in segmented parts.
## Intelligent Soft Bus<a name="section11286194113540"></a>
### New Features<a name="section14286104112546"></a>
- A Wi-Fi Aware module has been added.
- IPC supports non-aligned marshalling.
## Security<a name="section4535841205411"></a>
### New Features<a name="section35351941175420"></a>
- HUKS provides the SHA-256, RSA-3072, RSA-2048, AES-128, and ECC security algorithms and APIs, as well as key management and storage.
- The lightweight HiChain is available for managing and authenticating device groups, and ensuring the communication security based on the Intelligent Soft Bus. It does not require device login using an account. It also provides APIs for system services and applications.
- A unified permission management system has been added to manage permissions for lightweight devices.
## AI<a name="section11847124175419"></a>
### New Features<a name="section148472413546"></a>
- A unified AI engine framework has been added to implement quick integration of AI algorithm plug-ins. The framework consists of plug-in management, module management, and communications management modules. This framework provides lifecycle management and allows for on-demand deployment of AI algorithms.
- A developer guide, and two AI capability plug-ins developed based on the AI engine framework and two AI application samples are provided for you to quickly integrate AI algorithms in the AI engine framework.
## Update<a name="section09814210543"></a>
### New Features<a name="section7981542105417"></a>
- An update capability framework for mini-system devices has been added. It provides APIs for update package verification, parsing, and installation.
## XTS<a name="section429384295416"></a>
### New Features<a name="section929316426547"></a>
- AI, DFX, globalization, and OTA compatibility test cases have been added.
### Modified Features<a name="section829419420543"></a>
- Capabilities for the application framework, Intelligent Soft Bus, distributed scheduler, IoT, and kernel have been enhanced.
## Compilation and Building<a name="section104691342105411"></a>
### New Features<a name="section34699428546"></a>
- The command line tool hb has been added. It provides the **hb set** and **hb build** commands for building in the source code directory or any subdirectory.
- Components provided by independent chip vendors are supported.
- Components can be built independently based on the component name.
- The build toolchain and options can be customized for different development boards.
### Modified Features<a name="section946974210546"></a>
- The product configuration has been decoupled from the **build\_lite** repository and is stored in **vendor/solution vendor/product/config.json**.
## Power Management<a name="section13166639141617"></a>
### New Features<a name="section313912368292"></a>
- Battery level query is now supported.
- Always-on screen functionalities have been added, along with corresponding APIs.
## Module Repository Optimization<a name="section13139145855718"></a>
<a name="table135021051501"></a>
<table><thead align="left"><tr id="row128991056015"><th class="cellrowborder" valign="top" width="33.36%" id="mcps1.1.4.1.1"><p id="p78991551504"><a name="p78991551504"></a><a name="p78991551504"></a>OpenHarmony 1.0</p>
</th>
<th class="cellrowborder" valign="top" width="33.43%" id="mcps1.1.4.1.2"><p id="p11899135701"><a name="p11899135701"></a><a name="p11899135701"></a>OpenHarmony 1.0.1</p>
</th>
<th class="cellrowborder" valign="top" width="33.21%" id="mcps1.1.4.1.3"><p id="p20899554011"><a name="p20899554011"></a><a name="p20899554011"></a>Optimization</p>
</th>
</tr>
</thead>
<tbody><tr id="row18991355019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p38991651802"><a name="p38991651802"></a><a name="p38991651802"></a>ace_lite_jsfwk</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p28991051202"><a name="p28991051202"></a><a name="p28991051202"></a>ace_engine_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4899851503"><a name="p4899851503"></a><a name="p4899851503"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row38991351015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1989910515019"><a name="p1989910515019"></a><a name="p1989910515019"></a>ace_interfaces_innerkits_builtin</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p48991551507"><a name="p48991551507"></a><a name="p48991551507"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row16899454019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p2899351009"><a name="p2899351009"></a><a name="p2899351009"></a>ai_engine</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p58991256010"><a name="p58991256010"></a><a name="p58991256010"></a>New module</p>
</td>
</tr>
<tr id="row14899155409"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1789916520011"><a name="p1789916520011"></a><a name="p1789916520011"></a>hiviewdfx_frameworks_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p9899551909"><a name="p9899551909"></a><a name="p9899551909"></a>hiviewdfx_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18991851203"><a name="p18991851203"></a><a name="p18991851203"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row789911515019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p4900651807"><a name="p4900651807"></a><a name="p4900651807"></a>hiviewdfx_frameworks_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1900151503"><a name="p1900151503"></a><a name="p1900151503"></a>hiviewdfx_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19001258015"><a name="p19001258015"></a><a name="p19001258015"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row090015516018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p189001351400"><a name="p189001351400"></a><a name="p189001351400"></a>hiviewdfx_utils_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p89001953019"><a name="p89001953019"></a><a name="p89001953019"></a>hiviewdfx_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89007519012"><a name="p89007519012"></a><a name="p89007519012"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row8900351206"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p18900185100"><a name="p18900185100"></a><a name="p18900185100"></a>hiviewdfx_frameworks_ddrdump_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490018511020"><a name="p1490018511020"></a><a name="p1490018511020"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row169001451604"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p179001854019"><a name="p179001854019"></a><a name="p179001854019"></a>hiviewdfx_interfaces_innerkits_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p390011512017"><a name="p390011512017"></a><a name="p390011512017"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1990015602"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p129001151404"><a name="p129001151404"></a><a name="p129001151404"></a>hiviewdfx_interfaces_innerkits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p590025106"><a name="p590025106"></a><a name="p590025106"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row09002051508"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p390095603"><a name="p390095603"></a><a name="p390095603"></a>hiviewdfx_interfaces_kits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390025504"><a name="p1390025504"></a><a name="p1390025504"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1900454019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p690013514012"><a name="p690013514012"></a><a name="p690013514012"></a>hiviewdfx_interfaces_kits_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15900956013"><a name="p15900956013"></a><a name="p15900956013"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row13900951602"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p18900051106"><a name="p18900051106"></a><a name="p18900051106"></a>hiviewdfx_services_hilogcat_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p12900155602"><a name="p12900155602"></a><a name="p12900155602"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row59001951809"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1190095906"><a name="p1190095906"></a><a name="p1190095906"></a>hiviewdfx_services_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69001951103"><a name="p69001951103"></a><a name="p69001951103"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row149001453013"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p179001152013"><a name="p179001152013"></a><a name="p179001152013"></a>iothardware_hals_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2901859018"><a name="p2901859018"></a><a name="p2901859018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row199011654015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1490115301"><a name="p1490115301"></a><a name="p1490115301"></a>iothardware_interfaces_kits_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7901653019"><a name="p7901653019"></a><a name="p7901653019"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row2090125101"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p190117513010"><a name="p190117513010"></a><a name="p190117513010"></a>iothardware_frameworks_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p189011351501"><a name="p189011351501"></a><a name="p189011351501"></a>iothardware_peripheral</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1190119515013"><a name="p1190119515013"></a><a name="p1190119515013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row5901175902"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p109011755019"><a name="p109011755019"></a><a name="p109011755019"></a>applications_camera_sample_communication</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p209011455011"><a name="p209011455011"></a><a name="p209011455011"></a>New module</p>
</td>
</tr>
<tr id="row12901251206"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p12901051000"><a name="p12901051000"></a><a name="p12901051000"></a>applications_camera_screensaver_app</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15901758014"><a name="p15901758014"></a><a name="p15901758014"></a>New module</p>
</td>
</tr>
<tr id="row79011551003"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1090111513011"><a name="p1090111513011"></a><a name="p1090111513011"></a>sensors_miscdevice_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19011152018"><a name="p19011152018"></a><a name="p19011152018"></a>New module</p>
</td>
</tr>
<tr id="row18901751205"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p7901051301"><a name="p7901051301"></a><a name="p7901051301"></a>sensors_sensor_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7901252014"><a name="p7901252014"></a><a name="p7901252014"></a>New module</p>
</td>
</tr>
<tr id="row1990114512019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p10901135405"><a name="p10901135405"></a><a name="p10901135405"></a>xts_tools_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p16901551807"><a name="p16901551807"></a><a name="p16901551807"></a>xts_tools</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p169011451706"><a name="p169011451706"></a><a name="p169011451706"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row49019510016"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p390113517013"><a name="p390113517013"></a><a name="p390113517013"></a>security_services_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p590112515010"><a name="p590112515010"></a><a name="p590112515010"></a>security_permission</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p179011251300"><a name="p179011251300"></a><a name="p179011251300"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1190120511014"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p29021551601"><a name="p29021551601"></a><a name="p29021551601"></a>security_interfaces_innerkits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99021751009"><a name="p99021751009"></a><a name="p99021751009"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row15902153011"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1390216512012"><a name="p1390216512012"></a><a name="p1390216512012"></a>security_interfaces_kits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p189021551008"><a name="p189021551008"></a><a name="p189021551008"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row5902757019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p3902750014"><a name="p3902750014"></a><a name="p3902750014"></a>security_services_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p89021451008"><a name="p89021451008"></a><a name="p89021451008"></a>security_itrustee_ree_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p790295805"><a name="p790295805"></a><a name="p790295805"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row13902158011"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p15902185306"><a name="p15902185306"></a><a name="p15902185306"></a>security_interfaces_innerkits_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18902459015"><a name="p18902459015"></a><a name="p18902459015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row2902651507"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p2090295504"><a name="p2090295504"></a><a name="p2090295504"></a>security_frameworks_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4902252003"><a name="p4902252003"></a><a name="p4902252003"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row12902115409"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p390214518017"><a name="p390214518017"></a><a name="p390214518017"></a>security_services_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p159021851709"><a name="p159021851709"></a><a name="p159021851709"></a>security_appverify</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p209021751609"><a name="p209021751609"></a><a name="p209021751609"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row790215515011"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p17902165204"><a name="p17902165204"></a><a name="p17902165204"></a>security_interfaces_innerkits_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p3902145906"><a name="p3902145906"></a><a name="p3902145906"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row189021251020"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p39021051909"><a name="p39021051909"></a><a name="p39021051909"></a>security_services_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p99021551601"><a name="p99021551601"></a><a name="p99021551601"></a>security_deviceauth</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4902755017"><a name="p4902755017"></a><a name="p4902755017"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row69024513016"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p11902151703"><a name="p11902151703"></a><a name="p11902151703"></a>security_interfaces_innerkits_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16902135004"><a name="p16902135004"></a><a name="p16902135004"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row7902751304"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p290217510010"><a name="p290217510010"></a><a name="p290217510010"></a>security_services_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p129030517016"><a name="p129030517016"></a><a name="p129030517016"></a>security_huks</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1590311518017"><a name="p1590311518017"></a><a name="p1590311518017"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row39036518019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p49031354014"><a name="p49031354014"></a><a name="p49031354014"></a>security_interfaces_innerkits_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p159031151900"><a name="p159031151900"></a><a name="p159031151900"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row11903951002"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p119032510018"><a name="p119032510018"></a><a name="p119032510018"></a>security_frameworks_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99031516017"><a name="p99031516017"></a><a name="p99031516017"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row179032052011"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p4903155907"><a name="p4903155907"></a><a name="p4903155907"></a>security_interfaces_innerkits_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39031451709"><a name="p39031451709"></a><a name="p39031451709"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row790305404"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p13903756014"><a name="p13903756014"></a><a name="p13903756014"></a>signcenter_tool</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090355800"><a name="p2090355800"></a><a name="p2090355800"></a>New module</p>
</td>
</tr>
<tr id="row14903155009"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p12903155709"><a name="p12903155709"></a><a name="p12903155709"></a>third_party_cryptsetup</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390315517010"><a name="p1390315517010"></a><a name="p1390315517010"></a>New module</p>
</td>
</tr>
<tr id="row1290315709"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1903951609"><a name="p1903951609"></a><a name="p1903951609"></a>third_party_JSON-C</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18903851808"><a name="p18903851808"></a><a name="p18903851808"></a>New module</p>
</td>
</tr>
<tr id="row169031550016"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1090318516019"><a name="p1090318516019"></a><a name="p1090318516019"></a>third_party_libuuid</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090313517013"><a name="p2090313517013"></a><a name="p2090313517013"></a>New module</p>
</td>
</tr>
<tr id="row1290305509"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p139031053012"><a name="p139031053012"></a><a name="p139031053012"></a>third_party_LVM2</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p119039519019"><a name="p119039519019"></a><a name="p119039519019"></a>New module</p>
</td>
</tr>
<tr id="row189031351503"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p16904652008"><a name="p16904652008"></a><a name="p16904652008"></a>third_party_popt</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p690417513011"><a name="p690417513011"></a><a name="p690417513011"></a>New module</p>
</td>
</tr>
<tr id="row13904135302"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p390410516020"><a name="p390410516020"></a><a name="p390410516020"></a>communication_interfaces_kits_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490425305"><a name="p1490425305"></a><a name="p1490425305"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row59041451107"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p13904145808"><a name="p13904145808"></a><a name="p13904145808"></a>communication_frameworks_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99045513014"><a name="p99045513014"></a><a name="p99045513014"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row179049518012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p13904751702"><a name="p13904751702"></a><a name="p13904751702"></a>communication_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p390410514013"><a name="p390410514013"></a><a name="p390410514013"></a>New module</p>
</td>
</tr>
<tr id="row890412510020"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p99046513011"><a name="p99046513011"></a><a name="p99046513011"></a>powermgr_powermgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1990445707"><a name="p1990445707"></a><a name="p1990445707"></a>New module</p>
</td>
</tr>
<tr id="row1390495903"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1390405403"><a name="p1390405403"></a><a name="p1390405403"></a>distributedschedule_services_dtbschedmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p18904359010"><a name="p18904359010"></a><a name="p18904359010"></a>distributedschedule_dms_fwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59041515012"><a name="p59041515012"></a><a name="p59041515012"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row89041511017"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p4904185205"><a name="p4904185205"></a><a name="p4904185205"></a>distributedschedule_services_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p169041051601"><a name="p169041051601"></a><a name="p169041051601"></a>distributedschedule_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16904558011"><a name="p16904558011"></a><a name="p16904558011"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row129041051309"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1990418519016"><a name="p1990418519016"></a><a name="p1990418519016"></a>distributedschedule_services_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p7904451500"><a name="p7904451500"></a><a name="p7904451500"></a>distributedschedule_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69041515016"><a name="p69041515016"></a><a name="p69041515016"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row29041654012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p6904251409"><a name="p6904251409"></a><a name="p6904251409"></a>distributedschedule_interfaces_innerkits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p49054519014"><a name="p49054519014"></a><a name="p49054519014"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row490519515016"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1590518513015"><a name="p1590518513015"></a><a name="p1590518513015"></a>distributedschedule_interfaces_kits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p590512516020"><a name="p590512516020"></a><a name="p590512516020"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row390515106"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p189051352019"><a name="p189051352019"></a><a name="p189051352019"></a>multimedia_frameworks_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p13905651405"><a name="p13905651405"></a><a name="p13905651405"></a>multimedia_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390511520013"><a name="p1390511520013"></a><a name="p1390511520013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row29051051303"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p2090535308"><a name="p2090535308"></a><a name="p2090535308"></a>multimedia_frameworks_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p6905753013"><a name="p6905753013"></a><a name="p6905753013"></a>multimedia_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090510511013"><a name="p2090510511013"></a><a name="p2090510511013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1890565703"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p69051651509"><a name="p69051651509"></a><a name="p69051651509"></a>multimedia_frameworks_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p89051758015"><a name="p89051758015"></a><a name="p89051758015"></a>multimedia_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p109052513016"><a name="p109052513016"></a><a name="p109052513016"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row19051050015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p139051156020"><a name="p139051156020"></a><a name="p139051156020"></a>multimedia_hals_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1190555805"><a name="p1190555805"></a><a name="p1190555805"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row15905451704"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p20905651702"><a name="p20905651702"></a><a name="p20905651702"></a>multimedia_frameworks_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39051251013"><a name="p39051251013"></a><a name="p39051251013"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row209051950012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p159051559016"><a name="p159051559016"></a><a name="p159051559016"></a>multimedia_interfaces_kits_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p129051653013"><a name="p129051653013"></a><a name="p129051653013"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row7905851019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p109054519019"><a name="p109054519019"></a><a name="p109054519019"></a>multimedia_interfaces_kits_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79063518015"><a name="p79063518015"></a><a name="p79063518015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row79061552006"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p59062516015"><a name="p59062516015"></a><a name="p59062516015"></a>multimedia_interfaces_kits_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p5906195601"><a name="p5906195601"></a><a name="p5906195601"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row9906651205"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1190613512010"><a name="p1190613512010"></a><a name="p1190613512010"></a>multimedia_interfaces_kits_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19061551016"><a name="p19061551016"></a><a name="p19061551016"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row32651402491"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p15265194016496"><a name="p15265194016496"></a><a name="p15265194016496"></a>multimedia_services_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4377165314916"><a name="p4377165314916"></a><a name="p4377165314916"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row19061253012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p6906651108"><a name="p6906651108"></a><a name="p6906651108"></a>kernel_liteos_a_huawei_proprietary_fs_proc</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p190635804"><a name="p190635804"></a><a name="p190635804"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row09064517018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p109061459014"><a name="p109061459014"></a><a name="p109061459014"></a>third_party_mksh</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7906257017"><a name="p7906257017"></a><a name="p7906257017"></a>New module</p>
</td>
</tr>
<tr id="row690635003"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p9906551104"><a name="p9906551104"></a><a name="p9906551104"></a>third_party_optimized_routines</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1690655209"><a name="p1690655209"></a><a name="p1690655209"></a>New module</p>
</td>
</tr>
<tr id="row4906951707"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1290685708"><a name="p1290685708"></a><a name="p1290685708"></a>third_party_toybox</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19062051309"><a name="p19062051309"></a><a name="p19062051309"></a>New module</p>
</td>
</tr>
<tr id="row15906451400"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p990625604"><a name="p990625604"></a><a name="p990625604"></a>vendor_huawei_camera</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p129061251702"><a name="p129061251702"></a><a name="p129061251702"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1490614514010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1190655105"><a name="p1190655105"></a><a name="p1190655105"></a>vendor_huawei_wifi_iot</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p149071354015"><a name="p149071354015"></a><a name="p149071354015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1290715517015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p29071151309"><a name="p29071151309"></a><a name="p29071151309"></a>startup_services_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p119075510011"><a name="p119075510011"></a><a name="p119075510011"></a>startup_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p9907255016"><a name="p9907255016"></a><a name="p9907255016"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row2907165707"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p9907451206"><a name="p9907451206"></a><a name="p9907451206"></a>startup_frameworks_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1490712516010"><a name="p1490712516010"></a><a name="p1490712516010"></a>startup_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59072514018"><a name="p59072514018"></a><a name="p59072514018"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row9907053012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p159076513015"><a name="p159076513015"></a><a name="p159076513015"></a>startup_hals_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p09081451600"><a name="p09081451600"></a><a name="p09081451600"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row17908751903"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p39084514010"><a name="p39084514010"></a><a name="p39084514010"></a>startup_interfaces_kits_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490818519019"><a name="p1490818519019"></a><a name="p1490818519019"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row10908125707"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p990814513015"><a name="p990814513015"></a><a name="p990814513015"></a>graphic_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p15908951808"><a name="p15908951808"></a><a name="p15908951808"></a>graphic_surface</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4908135408"><a name="p4908135408"></a><a name="p4908135408"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row199081551901"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p199081051301"><a name="p199081051301"></a><a name="p199081051301"></a>graphic_ui</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p179086517016"><a name="p179086517016"></a><a name="p179086517016"></a>New module</p>
</td>
</tr>
<tr id="row199086519015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p169081751402"><a name="p169081751402"></a><a name="p169081751402"></a>graphic_utils</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p990815906"><a name="p990815906"></a><a name="p990815906"></a>New module</p>
</td>
</tr>
<tr id="row1908155706"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p12908851907"><a name="p12908851907"></a><a name="p12908851907"></a>graphic_wms</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p139084511017"><a name="p139084511017"></a><a name="p139084511017"></a>New module</p>
</td>
</tr>
<tr id="row13908751904"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p16909151205"><a name="p16909151205"></a><a name="p16909151205"></a>third_party_giflib</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89091851807"><a name="p89091851807"></a><a name="p89091851807"></a>New module</p>
</td>
</tr>
<tr id="row890914518017"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p090913519020"><a name="p090913519020"></a><a name="p090913519020"></a>third_party_qrcodegen</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p8909453015"><a name="p8909453015"></a><a name="p8909453015"></a>New module</p>
</td>
</tr>
<tr id="row14909954015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p5909758010"><a name="p5909758010"></a><a name="p5909758010"></a>drivers_adapter_khdf_linux</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1590975106"><a name="p1590975106"></a><a name="p1590975106"></a>New module</p>
</td>
</tr>
<tr id="row16909251302"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p199097510018"><a name="p199097510018"></a><a name="p199097510018"></a>drivers_hdf_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p790955108"><a name="p790955108"></a><a name="p790955108"></a>drivers_adapter_khdf_liteos</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p20909251301"><a name="p20909251301"></a><a name="p20909251301"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row16909256018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p09101651205"><a name="p09101651205"></a><a name="p09101651205"></a>drivers_adapter_uhdf</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18910251107"><a name="p18910251107"></a><a name="p18910251107"></a>New module</p>
</td>
</tr>
<tr id="row13910559012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1891011517010"><a name="p1891011517010"></a><a name="p1891011517010"></a>drivers_hdf_frameworks</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p6910954011"><a name="p6910954011"></a><a name="p6910954011"></a>drivers_framework</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89102518017"><a name="p89102518017"></a><a name="p89102518017"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row39101851804"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p119101951909"><a name="p119101951909"></a><a name="p119101951909"></a>drivers_peripheral_audio</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79105515016"><a name="p79105515016"></a><a name="p79105515016"></a>New module</p>
</td>
</tr>
<tr id="row49101352014"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p29101751908"><a name="p29101751908"></a><a name="p29101751908"></a>drivers_peripheral_codec</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p29109516013"><a name="p29109516013"></a><a name="p29109516013"></a>New module</p>
</td>
</tr>
<tr id="row69101651604"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p79101552020"><a name="p79101552020"></a><a name="p79101552020"></a>drivers_peripheral_display</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1910756017"><a name="p1910756017"></a><a name="p1910756017"></a>New module</p>
</td>
</tr>
<tr id="row16910125109"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p19911651009"><a name="p19911651009"></a><a name="p19911651009"></a>drivers_peripheral_format</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39113518019"><a name="p39113518019"></a><a name="p39113518019"></a>New module</p>
</td>
</tr>
<tr id="row179119516018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p139111651602"><a name="p139111651602"></a><a name="p139111651602"></a>drivers_peripheral_input</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491114519013"><a name="p1491114519013"></a><a name="p1491114519013"></a>New module</p>
</td>
</tr>
<tr id="row189114517010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p09115513010"><a name="p09115513010"></a><a name="p09115513010"></a>drivers_peripheral_sensor</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59111558013"><a name="p59111558013"></a><a name="p59111558013"></a>New module</p>
</td>
</tr>
<tr id="row159111853017"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p19911555019"><a name="p19911555019"></a><a name="p19911555019"></a>drivers_peripheral_wlan</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791113512014"><a name="p791113512014"></a><a name="p791113512014"></a>New module</p>
</td>
</tr>
<tr id="row99111150015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p09118516019"><a name="p09118516019"></a><a name="p09118516019"></a>global_cust_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p109118512013"><a name="p109118512013"></a><a name="p109118512013"></a>New module</p>
</td>
</tr>
<tr id="row1191135703"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p59111551405"><a name="p59111551405"></a><a name="p59111551405"></a>global_i18n_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491175703"><a name="p1491175703"></a><a name="p1491175703"></a>New module</p>
</td>
</tr>
<tr id="row11911115801"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p159111553016"><a name="p159111553016"></a><a name="p159111553016"></a>global_frameworks_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p149111851608"><a name="p149111851608"></a><a name="p149111851608"></a>global_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16911456013"><a name="p16911456013"></a><a name="p16911456013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row17911257010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1991211515015"><a name="p1991211515015"></a><a name="p1991211515015"></a>third_party_icu</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p17912175808"><a name="p17912175808"></a><a name="p17912175808"></a>New module</p>
</td>
</tr>
<tr id="row69121257015"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p139129511011"><a name="p139129511011"></a><a name="p139129511011"></a>global_interfaces_innerkits_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19121651105"><a name="p19121651105"></a><a name="p19121651105"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row129122051305"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1691295602"><a name="p1691295602"></a><a name="p1691295602"></a>communication_frameworks_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1091210518012"><a name="p1091210518012"></a><a name="p1091210518012"></a>communication_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19912458020"><a name="p19912458020"></a><a name="p19912458020"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row291295508"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p209121510017"><a name="p209121510017"></a><a name="p209121510017"></a>communication_interfaces_kits_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1291217511018"><a name="p1291217511018"></a><a name="p1291217511018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row199121951509"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p119125517016"><a name="p119125517016"></a><a name="p119125517016"></a>communication_interfaces_kits_softbuskit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p199127511014"><a name="p199127511014"></a><a name="p199127511014"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row69127510010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p209129510013"><a name="p209129510013"></a><a name="p209129510013"></a>communication_hals_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p13912851018"><a name="p13912851018"></a><a name="p13912851018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row12912351309"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p16912559013"><a name="p16912559013"></a><a name="p16912559013"></a>communication_services_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p17912151808"><a name="p17912151808"></a><a name="p17912151808"></a>communication_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p20912051904"><a name="p20912051904"></a><a name="p20912051904"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row99128517010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p139126520013"><a name="p139126520013"></a><a name="p139126520013"></a>communication_wifi_aware</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p891385705"><a name="p891385705"></a><a name="p891385705"></a>New module</p>
</td>
</tr>
<tr id="row159139518017"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p391365808"><a name="p391365808"></a><a name="p391365808"></a>update_ota_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69131252020"><a name="p69131252020"></a><a name="p69131252020"></a>New module</p>
</td>
</tr>
<tr id="row139135511018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1691317511019"><a name="p1691317511019"></a><a name="p1691317511019"></a>vendor_hisi_hi35xx_hi35xx_init</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p199131956012"><a name="p199131956012"></a><a name="p199131956012"></a>device_hisilicon_build</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79133512013"><a name="p79133512013"></a><a name="p79133512013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row29131151901"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1913125306"><a name="p1913125306"></a><a name="p1913125306"></a>vendor_hisi_hi35xx_platform</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p15913054011"><a name="p15913054011"></a><a name="p15913054011"></a>device_hisilicon_drivers</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p139139512019"><a name="p139139512019"></a><a name="p139139512019"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row19913251008"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p17913655013"><a name="p17913655013"></a><a name="p17913655013"></a>vendor_hisi_hi35xx_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p16913151004"><a name="p16913151004"></a><a name="p16913151004"></a>device_hisilicon_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1191316520013"><a name="p1191316520013"></a><a name="p1191316520013"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row199135511012"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p179131051804"><a name="p179131051804"></a><a name="p179131051804"></a>vendor_hisi_hi35xx_hi3518ev300</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1291319518016"><a name="p1291319518016"></a><a name="p1291319518016"></a>device_hisilicon_hispark_aries</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p5913125106"><a name="p5913125106"></a><a name="p5913125106"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row139131351308"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p10913457011"><a name="p10913457011"></a><a name="p10913457011"></a>vendor_hisi_hi3861_hi3861</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p16913165403"><a name="p16913165403"></a><a name="p16913165403"></a>device_hisilicon_hispark_pegasus</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1191365602"><a name="p1191365602"></a><a name="p1191365602"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row99131651908"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1191365000"><a name="p1191365000"></a><a name="p1191365000"></a>vendor_hisi_hi35xx_hi3516dv300</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p2913195102"><a name="p2913195102"></a><a name="p2913195102"></a>device_hisilicon_hispark_taurus</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491320518015"><a name="p1491320518015"></a><a name="p1491320518015"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row11913651308"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p19913955017"><a name="p19913955017"></a><a name="p19913955017"></a>vendor_hisi_hi35xx_middleware</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p89132513013"><a name="p89132513013"></a><a name="p89132513013"></a>device_hisilicon_modules</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p17913115909"><a name="p17913115909"></a><a name="p17913115909"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1913252013"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p29141351408"><a name="p29141351408"></a><a name="p29141351408"></a>vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p791420518016"><a name="p791420518016"></a><a name="p791420518016"></a>device_hisilicon_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1391418512014"><a name="p1391418512014"></a><a name="p1391418512014"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row19914251203"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p69141751009"><a name="p69141751009"></a><a name="p69141751009"></a>vendor_hisi_hi35xx_thirdparty_uboot_src</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p12914751907"><a name="p12914751907"></a><a name="p12914751907"></a>device_hisilicon_third_party_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2914350011"><a name="p2914350011"></a><a name="p2914350011"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row791405607"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p1191410510011"><a name="p1191410510011"></a><a name="p1191410510011"></a>vendor_hisilicon</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2914451805"><a name="p2914451805"></a><a name="p2914451805"></a>New module</p>
</td>
</tr>
<tr id="row1491415901"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p8914951407"><a name="p8914951407"></a><a name="p8914951407"></a>vendor_hisi_hi35xx_hi3516dv300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2091415516011"><a name="p2091415516011"></a><a name="p2091415516011"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row119143517013"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1491495903"><a name="p1491495903"></a><a name="p1491495903"></a>vendor_hisi_hi35xx_hi3518ev300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p159141551304"><a name="p159141551304"></a><a name="p159141551304"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row12914651909"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p13914851607"><a name="p13914851607"></a><a name="p13914851607"></a>aafwk_interfaces_innerkits_abilitykit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p12914115109"><a name="p12914115109"></a><a name="p12914115109"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row29141957010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p139141657020"><a name="p139141657020"></a><a name="p139141657020"></a>aafwk_interfaces_innerkits_intent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p2091435204"><a name="p2091435204"></a><a name="p2091435204"></a>aafwk_aafwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p391418514016"><a name="p391418514016"></a><a name="p391418514016"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row19144513010"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p49153516011"><a name="p49153516011"></a><a name="p49153516011"></a>aafwk_interfaces_innerkits_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p9915952001"><a name="p9915952001"></a><a name="p9915952001"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row11915115409"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p11915751906"><a name="p11915751906"></a><a name="p11915751906"></a>appexecfwk_kits_appkit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p159151651909"><a name="p159151651909"></a><a name="p159151651909"></a>appexecfwk_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15915195103"><a name="p15915195103"></a><a name="p15915195103"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row10915551806"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p159152051602"><a name="p159152051602"></a><a name="p159152051602"></a>aafwk_frameworks_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p11915135109"><a name="p11915135109"></a><a name="p11915135109"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row119151456011"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 "><p id="p139151754014"><a name="p139151754014"></a><a name="p139151754014"></a>developtools_packing_tool</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p13915251019"><a name="p13915251019"></a><a name="p13915251019"></a>New module</p>
</td>
</tr>
<tr id="row1291575909"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p79156518010"><a name="p79156518010"></a><a name="p79156518010"></a>aafwk_interfaces_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p189155518018"><a name="p189155518018"></a><a name="p189155518018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row6915155303"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p5915125206"><a name="p5915125206"></a><a name="p5915125206"></a>appexecfwk_frameworks_bundle_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p3915751018"><a name="p3915751018"></a><a name="p3915751018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row209151159020"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p891585809"><a name="p891585809"></a><a name="p891585809"></a>aafwk_services_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791585006"><a name="p791585006"></a><a name="p791585006"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row209156517018"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p09151755010"><a name="p09151755010"></a><a name="p09151755010"></a>appexecfwk_interfaces_innerkits_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p09151551700"><a name="p09151551700"></a><a name="p09151551700"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row491614520017"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p69161151506"><a name="p69161151506"></a><a name="p69161151506"></a>appexecfwk_interfaces_innerkits_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791618511016"><a name="p791618511016"></a><a name="p791618511016"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row59162058016"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p1991645809"><a name="p1991645809"></a><a name="p1991645809"></a>appexecfwk_services_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1091605202"><a name="p1091605202"></a><a name="p1091605202"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row2916054019"><td class="cellrowborder" valign="top" width="33.36%" headers="mcps1.1.4.1.1 "><p id="p169164515019"><a name="p169164515019"></a><a name="p169164515019"></a>aafwk_frameworks_kits_content_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.43%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p991617517013"><a name="p991617517013"></a><a name="p991617517013"></a>Read-only archiving</p>
</td>
</tr>
</tbody>
</table>
\* Read-only archiving means archiving a module repository to the **openharmony-retired** organization and setting the repository to read-only.
\* Code for third-party chips has been decoupled from the OS. HiSilicon chip SDKs have been moved from the **vendor** directory to the **device/hisilicon** directory.
# OpenHarmony 1.0 \(2020-09-10\)<a name="EN-US_TOPIC_0000001079132978"></a> # OpenHarmony 1.0 \(2020-09-10\)<a name="EN-US_TOPIC_0000001079132978"></a>
OpenHarmony 1.0 is the initial release for this product. - [Overview](#section249611124916)
- [Source Code Acquisition](#section127301717165113)
- [Acquiring Source Code from an Image Site](#section157648475298)
- [Acquiring Source Code Using the repo Tool](#section49746186307)
## Overview<a name="section249611124916"></a>
This is the initial release for this product.
## Source Code Acquisition<a name="section127301717165113"></a>
### Acquiring Source Code from an Image Site<a name="section157648475298"></a>
**Table 1** Sites for acquiring source code
<a name="table91984129177"></a>
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p16618172471719"><a name="p16618172471719"></a><a name="p16618172471719"></a>Source Code</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p46181224161718"><a name="p46181224161718"></a><a name="p46181224161718"></a>Version Information</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p1461814241177"><a name="p1461814241177"></a><a name="p1461814241177"></a>Site</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p12618192481716"><a name="p12618192481716"></a><a name="p12618192481716"></a>SHA-256 Verification Code</p>
</th>
</tr>
</thead>
<tbody><tr id="row174961746125013"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p697315226515"><a name="p697315226515"></a><a name="p697315226515"></a>Full code base</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1997312229519"><a name="p1997312229519"></a><a name="p1997312229519"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p1797320223518"><a name="p1797320223518"></a><a name="p1797320223518"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p6973102210516"><a name="p6973102210516"></a><a name="p6973102210516"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row1049714618507"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p14973722165114"><a name="p14973722165114"></a><a name="p14973722165114"></a>Hi3861 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1361982418176"><a name="p1361982418176"></a><a name="p1361982418176"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p797314223515"><a name="p797314223515"></a><a name="p797314223515"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p5973422115112"><a name="p5973422115112"></a><a name="p5973422115112"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row7498114620508"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1097311229513"><a name="p1097311229513"></a><a name="p1097311229513"></a>Hi3518 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p0619122471719"><a name="p0619122471719"></a><a name="p0619122471719"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p19973222165111"><a name="p19973222165111"></a><a name="p19973222165111"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p10973722105113"><a name="p10973722105113"></a><a name="p10973722105113"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row19498194619507"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p8973202285119"><a name="p8973202285119"></a><a name="p8973202285119"></a>Hi3516 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p10619182441718"><a name="p10619182441718"></a><a name="p10619182441718"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p497442295116"><a name="p497442295116"></a><a name="p497442295116"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p1997442295110"><a name="p1997442295110"></a><a name="p1997442295110"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row14989469503"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p997482215517"><a name="p997482215517"></a><a name="p997482215517"></a>RELEASE-NOTES</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p176191824181712"><a name="p176191824181712"></a><a name="p176191824181712"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p697413223518"><a name="p697413223518"></a><a name="p697413223518"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/RELEASE-NOTES.txt" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p15974222165114"><a name="p15974222165114"></a><a name="p15974222165114"></a>N/A</p>
</td>
</tr>
</tbody>
</table>
### Acquiring Source Code Using the repo Tool<a name="section49746186307"></a>
Method 1 \(recommended\): Use the **repo** tool to download the source code.
```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
```
Method 2: Run the **git clone** command to clone a single code repository.
Go to the [code repository homepage](https://gitee.com/openharmony), select the code repository to be cloned, and run the following command:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
# OpenHarmony Release Notes # OpenHarmony Release Notes
- [OpenHarmony 1.0.1 \(2021-03-15\)](OpenHarmony-1-0-1.md) - [OpenHarmony 1.1.0 LTS \(2021-04-27\)](openharmony-1-1-0-lts.md)
- [OpenHarmony 1.0 \(2020-09-10\)](OpenHarmony-1-0.md) - [OpenHarmony 1.0 \(2020-09-10\)](openharmony-1-0.md)
# OpenHarmony 1.1.0 LTS \(2021-04-27\)<a name="EN-US_TOPIC_0000001095652840"></a>
- [Overview](#section1846294912228)
- [Source Code Acquisition](#section84808293211)
- [Acquiring Source Code from Image Sites](#section8394142222113)
- [Acquiring Source Code Using the repo Tool](#section7180193542317)
- [What's New](#section175225345334)
- [Resolved Issues](#section11935243172612)
## Overview<a name="section1846294912228"></a>
This is the first long-term support \(LTS\) version of OpenHarmony. It supports more functions and fixes some bugs in OpenHarmony 1.0.
- OpenHarmony1.1.0 supports more subsystems, including the AI, power management, pan-sensor, and update subsystems.
- OpenHarmony1.1.0 provides a unified AI engine framework.
- The LiteOS Cortex-M kernel has been reconstructed for porting third-party chips to OpenHarmony.
- The driver subsystem provides models for the WLAN, sensor, input, and display drivers.
- The graphics subsystem has been optimized for an enhanced UI and improved performance and memory for the JS application framework.
- The directory structure and module repositories have been significantly improved.
## Source Code Acquisition<a name="section84808293211"></a>
### Acquiring Source Code from Image Sites<a name="section8394142222113"></a>
**Table 1** Sites for acquiring source code
<a name="table14394152217216"></a>
<table><thead align="left"><tr id="row15394132214217"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p15394122214219"><a name="p15394122214219"></a><a name="p15394122214219"></a>Source Code</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p10394112292119"><a name="p10394112292119"></a><a name="p10394112292119"></a>Version Information</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p039562213211"><a name="p039562213211"></a><a name="p039562213211"></a>Site</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p1039572272110"><a name="p1039572272110"></a><a name="p1039572272110"></a>SHA-256 Verification Code</p>
</th>
</tr>
</thead>
<tbody><tr id="row9395722182111"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p039514225215"><a name="p039514225215"></a><a name="p039514225215"></a>Full code base</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p839514220217"><a name="p839514220217"></a><a name="p839514220217"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p339552222120"><a name="p339552222120"></a><a name="p339552222120"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p19395142202117"><a name="p19395142202117"></a><a name="p19395142202117"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row1739512225217"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1839592272117"><a name="p1839592272117"></a><a name="p1839592272117"></a>Hi3861 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p7395722112113"><a name="p7395722112113"></a><a name="p7395722112113"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p53957224215"><a name="p53957224215"></a><a name="p53957224215"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/wifiiot-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p183959226211"><a name="p183959226211"></a><a name="p183959226211"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row16395122262110"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p12395172242118"><a name="p12395172242118"></a><a name="p12395172242118"></a>Hi3518 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p12395182210215"><a name="p12395182210215"></a><a name="p12395182210215"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p133952022162113"><a name="p133952022162113"></a><a name="p133952022162113"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p2039542211214"><a name="p2039542211214"></a><a name="p2039542211214"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA-256 verification code</a></p>
</td>
</tr>
<tr id="row1839592272117"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p8395322182113"><a name="p8395322182113"></a><a name="p8395322182113"></a>Hi3516 solution (binary)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p20395152262114"><a name="p20395152262114"></a><a name="p20395152262114"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p1639552272118"><a name="p1639552272118"></a><a name="p1639552272118"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p12396132216212"><a name="p12396132216212"></a><a name="p12396132216212"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 verification code</a></p>
</td>
</tr>
<tr id="row3396822162120"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p18506191313914"><a name="p18506191313914"></a><a name="p18506191313914"></a>Release Notes</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p10396102282110"><a name="p10396102282110"></a><a name="p10396102282110"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p15396192232119"><a name="p15396192232119"></a><a name="p15396192232119"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/OpenHarmony_Release_Notes_zh_cn.zip" target="_blank" rel="noopener noreferrer">Site</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p039662242117"><a name="p039662242117"></a><a name="p039662242117"></a>N/A</p>
</td>
</tr>
</tbody>
</table>
### Acquiring Source Code Using the repo Tool<a name="section7180193542317"></a>
Run the following commands to download the source code:
```
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony_release_v1.1.0 --no-repo-verify
repo sync -c
```
## What's New<a name="section175225345334"></a>
This version inherits all features of OpenHarmony 1.0, and adds and optimizes features for different modules based on OpenHarmony 1.0. The following table lists the feature updates.
**Table 2** Feature updates
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="13.38%" id="mcps1.2.5.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a>Type</p>
</th>
<th class="cellrowborder" valign="top" width="38.54%" id="mcps1.2.5.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>New Features</p>
</th>
<th class="cellrowborder" valign="top" width="28.410000000000004%" id="mcps1.2.5.1.3"><p id="p162468531345"><a name="p162468531345"></a><a name="p162468531345"></a>Modified Features</p>
</th>
<th class="cellrowborder" valign="top" width="19.67%" id="mcps1.2.5.1.4"><p id="p9985141863716"><a name="p9985141863716"></a><a name="p9985141863716"></a>Deleted Features</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p31751943143520"><a name="p31751943143520"></a><a name="p31751943143520"></a>Kernel</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul4760125719351"></a><a name="ul4760125719351"></a><ul id="ul4760125719351"><li>The LiteOS Cortex-M kernel supports the Cortex-M7, Cortex-M33, and RISC-V chip architecture, and the corresponding samples are provided.</li><li>The LiteOS Cortex-M kernel supports the memory protection unit (MPU).</li><li>The LiteOS Cortex-M kernel supports some POSIX APIs.</li><li>The LiteOS Cortex-M kernel supports the FatFS file system.</li><li>The LiteOS Cortex-M kernel supports the registration of exception callbacks.</li><li>The architecture of the LiteOS Cortex-M kernel has been adjusted for third-party chips to adapt to OpenHarmony.</li><li>The LiteOS Cortex-M and LiteOS Cortex-A kernels support the heap memory debugging functionalities, covering memory leakage, illegal access to the memory, and memory statistics.</li><li>The LiteOS Cortex-M and LiteOS Cortex-A kernels support the TLSF heap memory algorithm, which improves the efficiency of memory application and release and reduces the fragmentation rate.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p207894916364"><a name="p207894916364"></a><a name="p207894916364"></a>LiteOS Cortex-A scheduling has been optimized.</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p2098521893713"><a name="p2098521893713"></a><a name="p2098521893713"></a>None</p>
</td>
</tr>
<tr id="row173335873311"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p8294101513612"><a name="p8294101513612"></a><a name="p8294101513612"></a>Pan-sensor</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p29882273369"><a name="p29882273369"></a><a name="p29882273369"></a>A sensor module has been added. You can now query the sensor list, enable or disable a sensor, subscribe to or unsubscribe from sensor data, set the data reporting mode of a sensor, and set sensor options such as the data sampling interval.</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p175171027115517"><a name="p175171027115517"></a><a name="p175171027115517"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p555482725510"><a name="p555482725510"></a><a name="p555482725510"></a>None</p>
</td>
</tr>
<tr id="row15331058133314"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p135282348360"><a name="p135282348360"></a><a name="p135282348360"></a>Globalization</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p127721442123615"><a name="p127721442123615"></a><a name="p127721442123615"></a>C/C++ APIs have been added for number, date, time, and singular-plural formatting in 79 languages.</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p5589227195515"><a name="p5589227195515"></a><a name="p5589227195515"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p156111127125519"><a name="p156111127125519"></a><a name="p156111127125519"></a>None</p>
</td>
</tr>
<tr id="row1034145820330"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p194507512361"><a name="p194507512361"></a><a name="p194507512361"></a>JS Application Framework</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul156745563613"></a><a name="ul156745563613"></a><ul id="ul156745563613"><li>A global JavaScript UI attribute, <strong id="b40015098265425"><a name="b40015098265425"></a><a name="b40015098265425"></a>opacity</strong>, has been added.</li><li>A <strong id="b139407671265425"><a name="b139407671265425"></a><a name="b139407671265425"></a>prompt.showDialog</strong> API has been added.</li><li>A QR code component <strong id="b114058780865425"><a name="b114058780865425"></a><a name="b114058780865425"></a>qrcode</strong> has been added.</li><li>Event pop-ups have been added.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><a name="ul1521675183713"></a><a name="ul1521675183713"></a><ul id="ul1521675183713"><li>Internationalization has been improved, with quicker page redirections. Number internationalization and time/date conversions are now available.</li><li>The UI layout has been enhanced, with percentage values supported for some styles.</li><li>The size adaptation capabilities of the <strong id="b78224172965425"><a name="b78224172965425"></a><a name="b78224172965425"></a>input</strong> and <strong id="b112869515165425"><a name="b112869515165425"></a><a name="b112869515165425"></a>switch</strong> components have been enhanced.</li><li>The <strong id="b116867139365425"><a name="b116867139365425"></a><a name="b116867139365425"></a>image</strong> component supports access to images in an application's private directory.</li><li>The <strong id="b99826682565425"><a name="b99826682565425"></a><a name="b99826682565425"></a>image-animator</strong> component allows you to specify the end frame.</li><li>Some APIs have been made available for the <strong id="b154107982665425"><a name="b154107982665425"></a><a name="b154107982665425"></a>canvas</strong> component.</li><li>Some return fields have been added for the <strong id="b186271557165425"><a name="b186271557165425"></a><a name="b186271557165425"></a>device.getInfo</strong> API.</li><li>DFX can trace methods that encounter exceptions and output a list of such methods.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p86015315379"><a name="p86015315379"></a><a name="p86015315379"></a>Backtracking is no longer supported for internationalization functions.</p>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p243416212389"><a name="p243416212389"></a><a name="p243416212389"></a>Testing</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul46498614381"></a><a name="ul46498614381"></a><ul id="ul46498614381"><li>The testing tool can filter test cases to execute based on the case level.</li><li>Demo test cases have been added.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p18996183216557"><a name="p18996183216557"></a><a name="p18996183216557"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p153093375512"><a name="p153093375512"></a><a name="p153093375512"></a>None</p>
</td>
</tr>
<tr id="row834358143319"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p104871716123812"><a name="p104871716123812"></a><a name="p104871716123812"></a>Graphics</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul164401121203816"></a><a name="ul164401121203816"></a><ul id="ul164401121203816"><li>Component rotation, scaling, and opacity management have been added.</li><li>Event pop-ups and the crown rotation event have been added.</li><li>There is now GIF image parsing and display, percentage-based width and height layout, and video and QR code components.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p5908129143819"><a name="p5908129143819"></a><a name="p5908129143819"></a>Partial rendering and SIMD performance have been optimized.</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p29561057105519"><a name="p29561057105519"></a><a name="p29561057105519"></a>None</p>
</td>
</tr>
<tr id="row2216639113811"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p11452451173813"><a name="p11452451173813"></a><a name="p11452451173813"></a>Utils</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul139511255113815"></a><a name="ul139511255113815"></a><ul id="ul139511255113815"><li>System attribute dumping is supported.</li><li>Memory pool management APIs have been added for upper-layer modules.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1770461785620"><a name="p1770461785620"></a><a name="p1770461785620"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p998117571553"><a name="p998117571553"></a><a name="p998117571553"></a>None</p>
</td>
</tr>
<tr id="row119944512385"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p20115719395"><a name="p20115719395"></a><a name="p20115719395"></a>Driver</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul100191223919"></a><a name="ul100191223919"></a><ul id="ul100191223919"><li>The sensor, input, and display driver models have been added.</li><li>The MIPI DSI and pulse width modulation (PWM) have been added.</li><li>Hardware Driver Interfaces (HDIs) and Wi-Fi flow control have been added.</li><li>The I/O service grouping feature has been added for the Hardware Driver Foundation (HDF).</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p460532073911"><a name="p460532073911"></a><a name="p460532073911"></a>Driver loading has been optimized. It can now be accomplished in segmented parts.</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p7319581551"><a name="p7319581551"></a><a name="p7319581551"></a>None</p>
</td>
</tr>
<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p185909284392"><a name="p185909284392"></a><a name="p185909284392"></a>Intelligent Soft Bus</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul126884329393"></a><a name="ul126884329393"></a><ul id="ul126884329393"><li>A Wi-Fi Aware module has been added.</li><li>IPC supports non-aligned marshalling.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p114241375617"><a name="p114241375617"></a><a name="p114241375617"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p6261458185513"><a name="p6261458185513"></a><a name="p6261458185513"></a>None</p>
</td>
</tr>
<tr id="row933514718399"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p15353948123912"><a name="p15353948123912"></a><a name="p15353948123912"></a>Security</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul16110105811391"></a><a name="ul16110105811391"></a><ul id="ul16110105811391"><li>HUKS provides the SHA-256, RSA-3072, RSA-2048, AES-128, and ECC security algorithms and APIs, as well as key management and storage.</li><li>The lightweight HiChain is available for managing and authenticating device groups without requiring login to devices using the same account, and for ensuring the communication security based on the Intelligent Soft Bus. It also provides APIs for system services and applications.</li><li>A unified permission management system has been added to manage permissions for lightweight devices.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p10854883569"><a name="p10854883569"></a><a name="p10854883569"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p848858175517"><a name="p848858175517"></a><a name="p848858175517"></a>None</p>
</td>
</tr>
<tr id="row1413119125400"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p57091617134017"><a name="p57091617134017"></a><a name="p57091617134017"></a>AI</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul327962215408"></a><a name="ul327962215408"></a><ul id="ul327962215408"><li>A unified AI engine framework has been added to implement quick integration of AI algorithm plug-ins. The framework consists of plug-in management, module management, and communications management modules. This framework provides lifecycle management and allows for on-demand deployment of AI algorithms.</li><li>A developer guide, and two AI capability plug-ins developed based on the AI engine framework and two AI application samples are provided for you to quickly integrate AI algorithms in the AI engine framework.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p7131191264012"><a name="p7131191264012"></a><a name="p7131191264012"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p1170145845518"><a name="p1170145845518"></a><a name="p1170145845518"></a>None</p>
</td>
</tr>
<tr id="row98001376403"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p16588112824019"><a name="p16588112824019"></a><a name="p16588112824019"></a>Update</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p163773464015"><a name="p163773464015"></a><a name="p163773464015"></a>An update capability framework for mini-system devices has been added. It provides APIs for update package verification, parsing, and installation.</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1080010712403"><a name="p1080010712403"></a><a name="p1080010712403"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p119211587555"><a name="p119211587555"></a><a name="p119211587555"></a>None</p>
</td>
</tr>
<tr id="row3104039184016"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p12573854134019"><a name="p12573854134019"></a><a name="p12573854134019"></a>XTS</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p15893189204113"><a name="p15893189204113"></a><a name="p15893189204113"></a>AI, DFX, globalization, and OTA compatibility test cases have been added.</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1170111714112"><a name="p1170111714112"></a><a name="p1170111714112"></a>Capabilities for the application framework, Intelligent Soft Bus, distributed scheduler, IoT, and kernel have been enhanced.</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p3114115820554"><a name="p3114115820554"></a><a name="p3114115820554"></a>None</p>
</td>
</tr>
<tr id="row95402484401"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p1031291510411"><a name="p1031291510411"></a><a name="p1031291510411"></a>Compilation and Building</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul061324164112"></a><a name="ul061324164112"></a><ul id="ul061324164112"><li>The command line tool hb has been added. It provides the <strong id="b195385132665425"><a name="b195385132665425"></a><a name="b195385132665425"></a>hb set</strong> and <strong id="b174540041565425"><a name="b174540041565425"></a><a name="b174540041565425"></a>hb build</strong> commands for building in the source code directory or any subdirectory.</li><li>Components provided by independent chip vendors are supported.</li><li>Components can be built independently based on the component name.</li><li>The build toolchain and options can be customized for different development boards.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1167916358411"><a name="p1167916358411"></a><a name="p1167916358411"></a>The product configuration has been decoupled from the <strong id="b35679808065425"><a name="b35679808065425"></a><a name="b35679808065425"></a>build_lite</strong> repository and is stored in <strong id="b10419560965425"><a name="b10419560965425"></a><a name="b10419560965425"></a>vendor/solution vendor/product/config.json</strong>.</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p16136758125519"><a name="p16136758125519"></a><a name="p16136758125519"></a>None</p>
</td>
</tr>
<tr id="row16281465401"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p0889841174116"><a name="p0889841174116"></a><a name="p0889841174116"></a>Power Management</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul175961462411"></a><a name="ul175961462411"></a><ul id="ul175961462411"><li>Battery level query is now supported.</li><li>Always-on screen functionalities have been added, along with corresponding APIs.</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p3628746194013"><a name="p3628746194013"></a><a name="p3628746194013"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p3158165885517"><a name="p3158165885517"></a><a name="p3158165885517"></a>None</p>
</td>
</tr>
</tbody>
</table>
The following table describes the optimization of repositories.
>![](public_sys-resources/icon-note.gif) **NOTE:**
>- Read-only archiving means archiving a module repository to the **openharmony-retired** organization and setting the repository to read-only.
>- Code for third-party chips has been decoupled from the OS. HiSilicon chip SDKs have been moved from the **vendor** directory to the **device/hisilicon** directory.
**Table 3** Optimization of repositories
<a name="table91984129177"></a>
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="33.64%" id="mcps1.2.4.1.1"><p id="p194252040214"><a name="p194252040214"></a><a name="p194252040214"></a>OpenHarmony1.0</p>
</th>
<th class="cellrowborder" valign="top" width="37.059999999999995%" id="mcps1.2.4.1.2"><p id="p242515412216"><a name="p242515412216"></a><a name="p242515412216"></a>OpenHarmony1.1.0</p>
</th>
<th class="cellrowborder" valign="top" width="29.299999999999997%" id="mcps1.2.4.1.3"><p id="p5425144729"><a name="p5425144729"></a><a name="p5425144729"></a>Optimization</p>
</th>
</tr>
</thead>
<tbody><tr id="row21528111414"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14614112117"><a name="p14614112117"></a><a name="p14614112117"></a>ace_lite_jsfwk</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p8619114115"><a name="p8619114115"></a><a name="p8619114115"></a>ace_engine_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1661811711"><a name="p1661811711"></a><a name="p1661811711"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1152121117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p57121115112"><a name="p57121115112"></a><a name="p57121115112"></a>ace_interfaces_innerkits_builtin</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1771119118"><a name="p1771119118"></a><a name="p1771119118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p127161115114"><a name="p127161115114"></a><a name="p127161115114"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row191521611211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12711117113"><a name="p12711117113"></a><a name="p12711117113"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9711112118"><a name="p9711112118"></a><a name="p9711112118"></a>ai_engine</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p15714118113"><a name="p15714118113"></a><a name="p15714118113"></a>New module</p>
</td>
</tr>
<tr id="row20151011611"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p2715118118"><a name="p2715118118"></a><a name="p2715118118"></a>hiviewdfx_frameworks_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1751117113"><a name="p1751117113"></a><a name="p1751117113"></a>hiviewdfx_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2710111617"><a name="p2710111617"></a><a name="p2710111617"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row61511511213"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1276111112"><a name="p1276111112"></a><a name="p1276111112"></a>hiviewdfx_frameworks_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p37191115116"><a name="p37191115116"></a><a name="p37191115116"></a>hiviewdfx_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p19711111311"><a name="p19711111311"></a><a name="p19711111311"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row111511011014"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p9713112114"><a name="p9713112114"></a><a name="p9713112114"></a>hiviewdfx_utils_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14718119112"><a name="p14718119112"></a><a name="p14718119112"></a>hiviewdfx_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p579111716"><a name="p579111716"></a><a name="p579111716"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row101511711311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p187711715"><a name="p187711715"></a><a name="p187711715"></a>hiviewdfx_frameworks_ddrdump_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1173111319"><a name="p1173111319"></a><a name="p1173111319"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18741118112"><a name="p18741118112"></a><a name="p18741118112"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row111517117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1385115116"><a name="p1385115116"></a><a name="p1385115116"></a>hiviewdfx_interfaces_innerkits_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1881111212"><a name="p1881111212"></a><a name="p1881111212"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1987112018"><a name="p1987112018"></a><a name="p1987112018"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row015131111115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p128121116110"><a name="p128121116110"></a><a name="p128121116110"></a>hiviewdfx_interfaces_innerkits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17817111017"><a name="p17817111017"></a><a name="p17817111017"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12819111216"><a name="p12819111216"></a><a name="p12819111216"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row215161113114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1981611219"><a name="p1981611219"></a><a name="p1981611219"></a>hiviewdfx_interfaces_kits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p198121115114"><a name="p198121115114"></a><a name="p198121115114"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p20812111817"><a name="p20812111817"></a><a name="p20812111817"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row41513111818"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p58111119112"><a name="p58111119112"></a><a name="p58111119112"></a>hiviewdfx_interfaces_kits_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9812111313"><a name="p9812111313"></a><a name="p9812111313"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p281211415"><a name="p281211415"></a><a name="p281211415"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row71516112112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p287112011"><a name="p287112011"></a><a name="p287112011"></a>hiviewdfx_services_hilogcat_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14813119111"><a name="p14813119111"></a><a name="p14813119111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2817111113"><a name="p2817111113"></a><a name="p2817111113"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row12151611714"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1786119114"><a name="p1786119114"></a><a name="p1786119114"></a>hiviewdfx_services_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p129111112115"><a name="p129111112115"></a><a name="p129111112115"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3991111116"><a name="p3991111116"></a><a name="p3991111116"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row31517113116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p695111118"><a name="p695111118"></a><a name="p695111118"></a>iothardware_hals_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p797111718"><a name="p797111718"></a><a name="p797111718"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p6911119115"><a name="p6911119115"></a><a name="p6911119115"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row815112117113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0941110120"><a name="p0941110120"></a><a name="p0941110120"></a>iothardware_interfaces_kits_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1291711016"><a name="p1291711016"></a><a name="p1291711016"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p79211318"><a name="p79211318"></a><a name="p79211318"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row4151161119118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p6910115120"><a name="p6910115120"></a><a name="p6910115120"></a>iothardware_frameworks_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17961117116"><a name="p17961117116"></a><a name="p17961117116"></a>iothardware_peripheral</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11912117114"><a name="p11912117114"></a><a name="p11912117114"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row31511111415"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p159411316"><a name="p159411316"></a><a name="p159411316"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p09111113114"><a name="p09111113114"></a><a name="p09111113114"></a>applications_camera_sample_communication</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1599111217"><a name="p1599111217"></a><a name="p1599111217"></a>New module</p>
</td>
</tr>
<tr id="row1015115110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p20914113110"><a name="p20914113110"></a><a name="p20914113110"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17917119110"><a name="p17917119110"></a><a name="p17917119110"></a>applications_camera_screensaver_app</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1101911618"><a name="p1101911618"></a><a name="p1101911618"></a>New module</p>
</td>
</tr>
<tr id="row91511211912"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p151017111018"><a name="p151017111018"></a><a name="p151017111018"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1510101119117"><a name="p1510101119117"></a><a name="p1510101119117"></a>sensors_miscdevice_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1910101116115"><a name="p1910101116115"></a><a name="p1910101116115"></a>New module</p>
</td>
</tr>
<tr id="row61519111318"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1108111919"><a name="p1108111919"></a><a name="p1108111919"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1510131119115"><a name="p1510131119115"></a><a name="p1510131119115"></a>sensors_sensor_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4101611813"><a name="p4101611813"></a><a name="p4101611813"></a>New module</p>
</td>
</tr>
<tr id="row121512111715"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1010011814"><a name="p1010011814"></a><a name="p1010011814"></a>xts_tools_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p41018111019"><a name="p41018111019"></a><a name="p41018111019"></a>xts_tools</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5100111114"><a name="p5100111114"></a><a name="p5100111114"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row61512111110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p16101113112"><a name="p16101113112"></a><a name="p16101113112"></a>security_services_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p15106119117"><a name="p15106119117"></a><a name="p15106119117"></a>security_permission</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p141041112120"><a name="p141041112120"></a><a name="p141041112120"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row131518112113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11103112120"><a name="p11103112120"></a><a name="p11103112120"></a>security_interfaces_innerkits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p510011411"><a name="p510011411"></a><a name="p510011411"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p610211215"><a name="p610211215"></a><a name="p610211215"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row101511611812"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14111911619"><a name="p14111911619"></a><a name="p14111911619"></a>security_interfaces_kits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p91121113116"><a name="p91121113116"></a><a name="p91121113116"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p131111111115"><a name="p131111111115"></a><a name="p131111111115"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row6151161119116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p10112111511"><a name="p10112111511"></a><a name="p10112111511"></a>security_services_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p911181119116"><a name="p911181119116"></a><a name="p911181119116"></a>security_itrustee_ree_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p0111111212"><a name="p0111111212"></a><a name="p0111111212"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row7151151116115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p111118115118"><a name="p111118115118"></a><a name="p111118115118"></a>security_interfaces_innerkits_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p141110111714"><a name="p141110111714"></a><a name="p141110111714"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31112111813"><a name="p31112111813"></a><a name="p31112111813"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row3151011618"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p13111411519"><a name="p13111411519"></a><a name="p13111411519"></a>security_frameworks_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3111116118"><a name="p3111116118"></a><a name="p3111116118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p311131113119"><a name="p311131113119"></a><a name="p311131113119"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row315171112116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12111611410"><a name="p12111611410"></a><a name="p12111611410"></a>security_services_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p311161117112"><a name="p311161117112"></a><a name="p311161117112"></a>security_appverify</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1611111412"><a name="p1611111412"></a><a name="p1611111412"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1715116111215"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p101116112118"><a name="p101116112118"></a><a name="p101116112118"></a>security_interfaces_innerkits_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1412141112111"><a name="p1412141112111"></a><a name="p1412141112111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31251119116"><a name="p31251119116"></a><a name="p31251119116"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row61514112110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p201218117114"><a name="p201218117114"></a><a name="p201218117114"></a>security_services_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1512101119119"><a name="p1512101119119"></a><a name="p1512101119119"></a>security_deviceauth</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p612161111119"><a name="p612161111119"></a><a name="p612161111119"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row17151161117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p121217111515"><a name="p121217111515"></a><a name="p121217111515"></a>security_interfaces_innerkits_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p18127113119"><a name="p18127113119"></a><a name="p18127113119"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p121220116110"><a name="p121220116110"></a><a name="p121220116110"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row191501611710"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17121114120"><a name="p17121114120"></a><a name="p17121114120"></a>security_services_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1412811119"><a name="p1412811119"></a><a name="p1412811119"></a>security_huks</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p14129117112"><a name="p14129117112"></a><a name="p14129117112"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row6150191115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p412181117112"><a name="p412181117112"></a><a name="p412181117112"></a>security_interfaces_innerkits_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p191201115110"><a name="p191201115110"></a><a name="p191201115110"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31281110114"><a name="p31281110114"></a><a name="p31281110114"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row16150161113118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p01212110114"><a name="p01212110114"></a><a name="p01212110114"></a>security_frameworks_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p10132115118"><a name="p10132115118"></a><a name="p10132115118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1138111015"><a name="p1138111015"></a><a name="p1138111015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row415015111419"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12131011513"><a name="p12131011513"></a><a name="p12131011513"></a>security_interfaces_innerkits_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p61315112013"><a name="p61315112013"></a><a name="p61315112013"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p413141116112"><a name="p413141116112"></a><a name="p413141116112"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row615012111417"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p613121110118"><a name="p613121110118"></a><a name="p613121110118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p31341114116"><a name="p31341114116"></a><a name="p31341114116"></a>signcenter_tool</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p9136119111"><a name="p9136119111"></a><a name="p9136119111"></a>New module</p>
</td>
</tr>
<tr id="row915021114110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p141381118111"><a name="p141381118111"></a><a name="p141381118111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11331113111"><a name="p11331113111"></a><a name="p11331113111"></a>third_party_cryptsetup</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p101391111113"><a name="p101391111113"></a><a name="p101391111113"></a>New module</p>
</td>
</tr>
<tr id="row1515010111813"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17135111112"><a name="p17135111112"></a><a name="p17135111112"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p41313111116"><a name="p41313111116"></a><a name="p41313111116"></a>third_party_JSON-C</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16134113114"><a name="p16134113114"></a><a name="p16134113114"></a>New module</p>
</td>
</tr>
<tr id="row1815031117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0133113116"><a name="p0133113116"></a><a name="p0133113116"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1014171117120"><a name="p1014171117120"></a><a name="p1014171117120"></a>third_party_libuuid</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p914171117112"><a name="p914171117112"></a><a name="p914171117112"></a>New module</p>
</td>
</tr>
<tr id="row51501611515"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p191418111412"><a name="p191418111412"></a><a name="p191418111412"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0147111618"><a name="p0147111618"></a><a name="p0147111618"></a>third_party_LVM2</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1814181111112"><a name="p1814181111112"></a><a name="p1814181111112"></a>New module</p>
</td>
</tr>
<tr id="row151504111413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15143119111"><a name="p15143119111"></a><a name="p15143119111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p121413112115"><a name="p121413112115"></a><a name="p121413112115"></a>third_party_popt</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1114311312"><a name="p1114311312"></a><a name="p1114311312"></a>New module</p>
</td>
</tr>
<tr id="row1215061120115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p4142114111"><a name="p4142114111"></a><a name="p4142114111"></a>communication_interfaces_kits_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p161441110113"><a name="p161441110113"></a><a name="p161441110113"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p101419116115"><a name="p101419116115"></a><a name="p101419116115"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row131502115117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14141611315"><a name="p14141611315"></a><a name="p14141611315"></a>communication_frameworks_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p514181112117"><a name="p514181112117"></a><a name="p514181112117"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p414151119114"><a name="p414151119114"></a><a name="p414151119114"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row715010118116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p71551114114"><a name="p71551114114"></a><a name="p71551114114"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5151711312"><a name="p5151711312"></a><a name="p5151711312"></a>communication_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p181512118118"><a name="p181512118118"></a><a name="p181512118118"></a>New module</p>
</td>
</tr>
<tr id="row14150121110113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1215711419"><a name="p1215711419"></a><a name="p1215711419"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p151515117117"><a name="p151515117117"></a><a name="p151515117117"></a>powermgr_powermgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1015191116115"><a name="p1015191116115"></a><a name="p1015191116115"></a>New module</p>
</td>
</tr>
<tr id="row12150511311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p8152011815"><a name="p8152011815"></a><a name="p8152011815"></a>distributedschedule_services_dtbschedmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p815811918"><a name="p815811918"></a><a name="p815811918"></a>distributedschedule_dms_fwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18151113120"><a name="p18151113120"></a><a name="p18151113120"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row2015061110115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p191516111514"><a name="p191516111514"></a><a name="p191516111514"></a>distributedschedule_services_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p19151111512"><a name="p19151111512"></a><a name="p19151111512"></a>distributedschedule_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11581116114"><a name="p11581116114"></a><a name="p11581116114"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row51509113120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p111531111115"><a name="p111531111115"></a><a name="p111531111115"></a>distributedschedule_services_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p20151711418"><a name="p20151711418"></a><a name="p20151711418"></a>distributedschedule_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p111541118116"><a name="p111541118116"></a><a name="p111541118116"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1115018112114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p516171112110"><a name="p516171112110"></a><a name="p516171112110"></a>distributedschedule_interfaces_innerkits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4163112118"><a name="p4163112118"></a><a name="p4163112118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p61621110114"><a name="p61621110114"></a><a name="p61621110114"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row13150311413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p416211212"><a name="p416211212"></a><a name="p416211212"></a>distributedschedule_interfaces_kits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1116171111117"><a name="p1116171111117"></a><a name="p1116171111117"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p716161119113"><a name="p716161119113"></a><a name="p716161119113"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1515017111511"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p6162117115"><a name="p6162117115"></a><a name="p6162117115"></a>multimedia_frameworks_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p13166111112"><a name="p13166111112"></a><a name="p13166111112"></a>multimedia_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p0163112120"><a name="p0163112120"></a><a name="p0163112120"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1115081110117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p21619111411"><a name="p21619111411"></a><a name="p21619111411"></a>multimedia_frameworks_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3168113114"><a name="p3168113114"></a><a name="p3168113114"></a>multimedia_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4161011316"><a name="p4161011316"></a><a name="p4161011316"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row415010116114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1161111410"><a name="p1161111410"></a><a name="p1161111410"></a>multimedia_frameworks_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p151691115110"><a name="p151691115110"></a><a name="p151691115110"></a>multimedia_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31720110114"><a name="p31720110114"></a><a name="p31720110114"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row61502116111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p141751114116"><a name="p141751114116"></a><a name="p141751114116"></a>multimedia_hals_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p01720119111"><a name="p01720119111"></a><a name="p01720119111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p81717111213"><a name="p81717111213"></a><a name="p81717111213"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row915010112116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p2177111117"><a name="p2177111117"></a><a name="p2177111117"></a>multimedia_frameworks_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p71712119117"><a name="p71712119117"></a><a name="p71712119117"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p17171111015"><a name="p17171111015"></a><a name="p17171111015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1615019111111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p91710114111"><a name="p91710114111"></a><a name="p91710114111"></a>multimedia_interfaces_kits_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1917411114"><a name="p1917411114"></a><a name="p1917411114"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1173111914"><a name="p1173111914"></a><a name="p1173111914"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1815012111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0171111214"><a name="p0171111214"></a><a name="p0171111214"></a>multimedia_interfaces_kits_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11717111819"><a name="p11717111819"></a><a name="p11717111819"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1017811112"><a name="p1017811112"></a><a name="p1017811112"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row715020117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p71716113114"><a name="p71716113114"></a><a name="p71716113114"></a>multimedia_interfaces_kits_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12189114114"><a name="p12189114114"></a><a name="p12189114114"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p21811111319"><a name="p21811111319"></a><a name="p21811111319"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row8150151118120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17188116110"><a name="p17188116110"></a><a name="p17188116110"></a>multimedia_interfaces_kits_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p81813118110"><a name="p81813118110"></a><a name="p81813118110"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1518111114110"><a name="p1518111114110"></a><a name="p1518111114110"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row201491811815"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p171831118117"><a name="p171831118117"></a><a name="p171831118117"></a>multimedia_services_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p18188111815"><a name="p18188111815"></a><a name="p18188111815"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p71812111316"><a name="p71812111316"></a><a name="p71812111316"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row141493116113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14189112013"><a name="p14189112013"></a><a name="p14189112013"></a>kernel_liteos_a_huawei_proprietary_fs_proc</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p201817111115"><a name="p201817111115"></a><a name="p201817111115"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1918611618"><a name="p1918611618"></a><a name="p1918611618"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row101495114110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1418101116111"><a name="p1418101116111"></a><a name="p1418101116111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p171818117118"><a name="p171818117118"></a><a name="p171818117118"></a>third_party_mksh</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2018121120115"><a name="p2018121120115"></a><a name="p2018121120115"></a>New module</p>
</td>
</tr>
<tr id="row1614917113112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p5191111414"><a name="p5191111414"></a><a name="p5191111414"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1419201115118"><a name="p1419201115118"></a><a name="p1419201115118"></a>third_party_optimized_routines</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18191711211"><a name="p18191711211"></a><a name="p18191711211"></a>New module</p>
</td>
</tr>
<tr id="row7149121120114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p151918117112"><a name="p151918117112"></a><a name="p151918117112"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p181916111611"><a name="p181916111611"></a><a name="p181916111611"></a>third_party_toybox</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p121914111618"><a name="p121914111618"></a><a name="p121914111618"></a>New module</p>
</td>
</tr>
<tr id="row151491117117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p171911112114"><a name="p171911112114"></a><a name="p171911112114"></a>vendor_huawei_camera</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p7191111814"><a name="p7191111814"></a><a name="p7191111814"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p219191115110"><a name="p219191115110"></a><a name="p219191115110"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row614919115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p101919111111"><a name="p101919111111"></a><a name="p101919111111"></a>vendor_huawei_wifi_iot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1119101111111"><a name="p1119101111111"></a><a name="p1119101111111"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1919111114115"><a name="p1919111114115"></a><a name="p1919111114115"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row12149811717"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p10198119114"><a name="p10198119114"></a><a name="p10198119114"></a>startup_services_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p72031119117"><a name="p72031119117"></a><a name="p72031119117"></a>startup_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1320121116111"><a name="p1320121116111"></a><a name="p1320121116111"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row114991110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p420161112113"><a name="p420161112113"></a><a name="p420161112113"></a>startup_frameworks_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p122018111319"><a name="p122018111319"></a><a name="p122018111319"></a>startup_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1420711016"><a name="p1420711016"></a><a name="p1420711016"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1914981112110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p82041113119"><a name="p82041113119"></a><a name="p82041113119"></a>startup_hals_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p8204110113"><a name="p8204110113"></a><a name="p8204110113"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5203116116"><a name="p5203116116"></a><a name="p5203116116"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row714910111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102011112114"><a name="p102011112114"></a><a name="p102011112114"></a>startup_interfaces_kits_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p132081116113"><a name="p132081116113"></a><a name="p132081116113"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p02016111419"><a name="p02016111419"></a><a name="p02016111419"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row614917115119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p02081112120"><a name="p02081112120"></a><a name="p02081112120"></a>graphic_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5201011512"><a name="p5201011512"></a><a name="p5201011512"></a>graphic_surface</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p320111116119"><a name="p320111116119"></a><a name="p320111116119"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row7149101110119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1621711214"><a name="p1621711214"></a><a name="p1621711214"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p32118113119"><a name="p32118113119"></a><a name="p32118113119"></a>graphic_ui</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p152161111110"><a name="p152161111110"></a><a name="p152161111110"></a>New module</p>
</td>
</tr>
<tr id="row121496111617"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1021211311"><a name="p1021211311"></a><a name="p1021211311"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9211611416"><a name="p9211611416"></a><a name="p9211611416"></a>graphic_utils</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p221161120115"><a name="p221161120115"></a><a name="p221161120115"></a>New module</p>
</td>
</tr>
<tr id="row1214911111518"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102112111216"><a name="p102112111216"></a><a name="p102112111216"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2217117111"><a name="p2217117111"></a><a name="p2217117111"></a>graphic_wms</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3211911717"><a name="p3211911717"></a><a name="p3211911717"></a>New module</p>
</td>
</tr>
<tr id="row51493111319"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p9219111514"><a name="p9219111514"></a><a name="p9219111514"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p62116115113"><a name="p62116115113"></a><a name="p62116115113"></a>third_party_giflib</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4214116111"><a name="p4214116111"></a><a name="p4214116111"></a>New module</p>
</td>
</tr>
<tr id="row1714912115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p4211911616"><a name="p4211911616"></a><a name="p4211911616"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p15223111413"><a name="p15223111413"></a><a name="p15223111413"></a>third_party_qrcodegen</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p622811418"><a name="p622811418"></a><a name="p622811418"></a>New module</p>
</td>
</tr>
<tr id="row191496119117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p172251120118"><a name="p172251120118"></a><a name="p172251120118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p42212114119"><a name="p42212114119"></a><a name="p42212114119"></a>drivers_adapter_khdf_linux</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5222111619"><a name="p5222111619"></a><a name="p5222111619"></a>New module</p>
</td>
</tr>
<tr id="row8149911112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p52261114112"><a name="p52261114112"></a><a name="p52261114112"></a>drivers_hdf_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12211113115"><a name="p12211113115"></a><a name="p12211113115"></a>drivers_adapter_khdf_liteos</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p10221811516"><a name="p10221811516"></a><a name="p10221811516"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row201491111616"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1221011413"><a name="p1221011413"></a><a name="p1221011413"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p192216111512"><a name="p192216111512"></a><a name="p192216111512"></a>drivers_adapter_uhdf</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p15221211811"><a name="p15221211811"></a><a name="p15221211811"></a>New module</p>
</td>
</tr>
<tr id="row1414910111413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p142241114118"><a name="p142241114118"></a><a name="p142241114118"></a>drivers_hdf_frameworks</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11222112113"><a name="p11222112113"></a><a name="p11222112113"></a>drivers_framework</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2236111911"><a name="p2236111911"></a><a name="p2236111911"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row17149201118115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p423111617"><a name="p423111617"></a><a name="p423111617"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p123121110114"><a name="p123121110114"></a><a name="p123121110114"></a>drivers_peripheral_audio</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p52317112119"><a name="p52317112119"></a><a name="p52317112119"></a>New module</p>
</td>
</tr>
<tr id="row141491711613"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12236117112"><a name="p12236117112"></a><a name="p12236117112"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182317115110"><a name="p182317115110"></a><a name="p182317115110"></a>drivers_peripheral_codec</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12231311617"><a name="p12231311617"></a><a name="p12231311617"></a>New module</p>
</td>
</tr>
<tr id="row1414916111017"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p5234119116"><a name="p5234119116"></a><a name="p5234119116"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11231411813"><a name="p11231411813"></a><a name="p11231411813"></a>drivers_peripheral_display</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12351119113"><a name="p12351119113"></a><a name="p12351119113"></a>New module</p>
</td>
</tr>
<tr id="row3149511414"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p82315117116"><a name="p82315117116"></a><a name="p82315117116"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p16230111914"><a name="p16230111914"></a><a name="p16230111914"></a>drivers_peripheral_format</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p32313119113"><a name="p32313119113"></a><a name="p32313119113"></a>New module</p>
</td>
</tr>
<tr id="row914981120116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p52412111819"><a name="p52412111819"></a><a name="p52412111819"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p6248114114"><a name="p6248114114"></a><a name="p6248114114"></a>drivers_peripheral_input</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1724191113119"><a name="p1724191113119"></a><a name="p1724191113119"></a>New module</p>
</td>
</tr>
<tr id="row1114961117118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p62471111120"><a name="p62471111120"></a><a name="p62471111120"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182414112011"><a name="p182414112011"></a><a name="p182414112011"></a>drivers_peripheral_sensor</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11243112120"><a name="p11243112120"></a><a name="p11243112120"></a>New module</p>
</td>
</tr>
<tr id="row151491611914"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p16244113118"><a name="p16244113118"></a><a name="p16244113118"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p124171117113"><a name="p124171117113"></a><a name="p124171117113"></a>drivers_peripheral_wlan</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p124151114115"><a name="p124151114115"></a><a name="p124151114115"></a>New module</p>
</td>
</tr>
<tr id="row1314817111011"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p18248111615"><a name="p18248111615"></a><a name="p18248111615"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p10241911211"><a name="p10241911211"></a><a name="p10241911211"></a>global_cust_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16242011718"><a name="p16242011718"></a><a name="p16242011718"></a>New module</p>
</td>
</tr>
<tr id="row101482011311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p122520111815"><a name="p122520111815"></a><a name="p122520111815"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1625181116113"><a name="p1625181116113"></a><a name="p1625181116113"></a>global_i18n_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1725111617"><a name="p1725111617"></a><a name="p1725111617"></a>New module</p>
</td>
</tr>
<tr id="row171486113113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1325191119117"><a name="p1325191119117"></a><a name="p1325191119117"></a>global_frameworks_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p22518111418"><a name="p22518111418"></a><a name="p22518111418"></a>global_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3254112113"><a name="p3254112113"></a><a name="p3254112113"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row111489112012"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0254111118"><a name="p0254111118"></a><a name="p0254111118"></a>third_party_icu</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12571116118"><a name="p12571116118"></a><a name="p12571116118"></a>New module</p>
</td>
</tr>
<tr id="row11148141118119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102581116119"><a name="p102581116119"></a><a name="p102581116119"></a>global_interfaces_innerkits_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4251711817"><a name="p4251711817"></a><a name="p4251711817"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p13251511916"><a name="p13251511916"></a><a name="p13251511916"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row6148151110115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12615112116"><a name="p12615112116"></a><a name="p12615112116"></a>communication_frameworks_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3262011110"><a name="p3262011110"></a><a name="p3262011110"></a>communication_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p326911918"><a name="p326911918"></a><a name="p326911918"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1914816117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p92617119117"><a name="p92617119117"></a><a name="p92617119117"></a>communication_interfaces_kits_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p19262113112"><a name="p19262113112"></a><a name="p19262113112"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p426181116113"><a name="p426181116113"></a><a name="p426181116113"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row014821113115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p92621113111"><a name="p92621113111"></a><a name="p92621113111"></a>communication_interfaces_kits_softbuskit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1926121111115"><a name="p1926121111115"></a><a name="p1926121111115"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p112612115114"><a name="p112612115114"></a><a name="p112612115114"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1914861120118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p8261111817"><a name="p8261111817"></a><a name="p8261111817"></a>communication_hals_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182616115114"><a name="p182616115114"></a><a name="p182616115114"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16262113119"><a name="p16262113119"></a><a name="p16262113119"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row214812111114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p32710114119"><a name="p32710114119"></a><a name="p32710114119"></a>communication_services_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2272116112"><a name="p2272116112"></a><a name="p2272116112"></a>communication_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p172712113120"><a name="p172712113120"></a><a name="p172712113120"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row16148161112119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15271011110"><a name="p15271011110"></a><a name="p15271011110"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12741115115"><a name="p12741115115"></a><a name="p12741115115"></a>communication_wifi_aware</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p527141115118"><a name="p527141115118"></a><a name="p527141115118"></a>New module</p>
</td>
</tr>
<tr id="row111487119113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11274111517"><a name="p11274111517"></a><a name="p11274111517"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1927811318"><a name="p1927811318"></a><a name="p1927811318"></a>update_ota_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16271112014"><a name="p16271112014"></a><a name="p16271112014"></a>New module</p>
</td>
</tr>
<tr id="row20148151117114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1027131119119"><a name="p1027131119119"></a><a name="p1027131119119"></a>vendor_hisi_hi35xx_hi35xx_init</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p102712111813"><a name="p102712111813"></a><a name="p102712111813"></a>device_hisilicon_build</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p152716117114"><a name="p152716117114"></a><a name="p152716117114"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1314861117110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1028511716"><a name="p1028511716"></a><a name="p1028511716"></a>vendor_hisi_hi35xx_platform</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4281411410"><a name="p4281411410"></a><a name="p4281411410"></a>device_hisilicon_drivers</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p8287111119"><a name="p8287111119"></a><a name="p8287111119"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row121481911218"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15281211918"><a name="p15281211918"></a><a name="p15281211918"></a>vendor_hisi_hi35xx_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p128111118119"><a name="p128111118119"></a><a name="p128111118119"></a>device_hisilicon_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p7283111416"><a name="p7283111416"></a><a name="p7283111416"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row11148171116110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p42810113116"><a name="p42810113116"></a><a name="p42810113116"></a>vendor_hisi_hi35xx_hi3518ev300</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1282111814"><a name="p1282111814"></a><a name="p1282111814"></a>device_hisilicon_hispark_aries</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p22817111716"><a name="p22817111716"></a><a name="p22817111716"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row614813111113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p182811116114"><a name="p182811116114"></a><a name="p182811116114"></a>vendor_hisi_hi3861_hi3861</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4285112119"><a name="p4285112119"></a><a name="p4285112119"></a>device_hisilicon_hispark_pegasus</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12821110110"><a name="p12821110110"></a><a name="p12821110110"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row214821119120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p3291811612"><a name="p3291811612"></a><a name="p3291811612"></a>vendor_hisi_hi35xx_hi3516dv300</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p13291811715"><a name="p13291811715"></a><a name="p13291811715"></a>device_hisilicon_hispark_taurus</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11294111615"><a name="p11294111615"></a><a name="p11294111615"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row1314820111319"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p19297115119"><a name="p19297115119"></a><a name="p19297115119"></a>vendor_hisi_hi35xx_middleware</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p202961117117"><a name="p202961117117"></a><a name="p202961117117"></a>device_hisilicon_modules</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p329151119110"><a name="p329151119110"></a><a name="p329151119110"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row214814111719"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p162920111814"><a name="p162920111814"></a><a name="p162920111814"></a>vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12294111112"><a name="p12294111112"></a><a name="p12294111112"></a>device_hisilicon_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18291011915"><a name="p18291011915"></a><a name="p18291011915"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row131486110119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12291611916"><a name="p12291611916"></a><a name="p12291611916"></a>vendor_hisi_hi35xx_thirdparty_uboot_src</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1293111018"><a name="p1293111018"></a><a name="p1293111018"></a>device_hisilicon_third_party_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p22914111616"><a name="p22914111616"></a><a name="p22914111616"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row181487111915"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p43013110113"><a name="p43013110113"></a><a name="p43013110113"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p03019111017"><a name="p03019111017"></a><a name="p03019111017"></a>vendor_hisilicon</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4303114118"><a name="p4303114118"></a><a name="p4303114118"></a>New module</p>
</td>
</tr>
<tr id="row111481411211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11301411119"><a name="p11301411119"></a><a name="p11301411119"></a>vendor_hisi_hi35xx_hi3516dv300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1330151111112"><a name="p1330151111112"></a><a name="p1330151111112"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p20304119111"><a name="p20304119111"></a><a name="p20304119111"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row714841112111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33014114112"><a name="p33014114112"></a><a name="p33014114112"></a>vendor_hisi_hi35xx_hi3518ev300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5303111218"><a name="p5303111218"></a><a name="p5303111218"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1230611911"><a name="p1230611911"></a><a name="p1230611911"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row614841113116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p530811415"><a name="p530811415"></a><a name="p530811415"></a>aafwk_interfaces_innerkits_abilitykit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2030511717"><a name="p2030511717"></a><a name="p2030511717"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p93061110118"><a name="p93061110118"></a><a name="p93061110118"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row181482111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p203191115119"><a name="p203191115119"></a><a name="p203191115119"></a>aafwk_interfaces_innerkits_intent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p831141113117"><a name="p831141113117"></a><a name="p831141113117"></a>aafwk_aafwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3312112015"><a name="p3312112015"></a><a name="p3312112015"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row2147191115115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1331611912"><a name="p1331611912"></a><a name="p1331611912"></a>aafwk_interfaces_innerkits_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1431111419"><a name="p1431111419"></a><a name="p1431111419"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p331911211"><a name="p331911211"></a><a name="p331911211"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1114718115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33191113118"><a name="p33191113118"></a><a name="p33191113118"></a>appexecfwk_kits_appkit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p631151110111"><a name="p631151110111"></a><a name="p631151110111"></a>appexecfwk_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1312111915"><a name="p1312111915"></a><a name="p1312111915"></a>The repository name has been changed.</p>
</td>
</tr>
<tr id="row161475111210"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p7311111417"><a name="p7311111417"></a><a name="p7311111417"></a>aafwk_frameworks_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4311711515"><a name="p4311711515"></a><a name="p4311711515"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p831171111119"><a name="p831171111119"></a><a name="p831171111119"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row14147411211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p163241112114"><a name="p163241112114"></a><a name="p163241112114"></a>developtools_packing_tool</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p432151112116"><a name="p432151112116"></a><a name="p432151112116"></a>New module</p>
</td>
</tr>
<tr id="row4147191110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p23217111112"><a name="p23217111112"></a><a name="p23217111112"></a>aafwk_interfaces_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p183215111713"><a name="p183215111713"></a><a name="p183215111713"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1323111015"><a name="p1323111015"></a><a name="p1323111015"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row16147121116119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1532141113116"><a name="p1532141113116"></a><a name="p1532141113116"></a>appexecfwk_frameworks_bundle_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p153216111015"><a name="p153216111015"></a><a name="p153216111015"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2323113117"><a name="p2323113117"></a><a name="p2323113117"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row914731112115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p632811312"><a name="p632811312"></a><a name="p632811312"></a>aafwk_services_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p93218111018"><a name="p93218111018"></a><a name="p93218111018"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p163231112115"><a name="p163231112115"></a><a name="p163231112115"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row1614741113117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33321115113"><a name="p33321115113"></a><a name="p33321115113"></a>appexecfwk_interfaces_innerkits_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p23313111314"><a name="p23313111314"></a><a name="p23313111314"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1933181110113"><a name="p1933181110113"></a><a name="p1933181110113"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row201471911116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p103316111314"><a name="p103316111314"></a><a name="p103316111314"></a>appexecfwk_interfaces_innerkits_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14339111417"><a name="p14339111417"></a><a name="p14339111417"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p193314114117"><a name="p193314114117"></a><a name="p193314114117"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row121474111718"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p93317112013"><a name="p93317112013"></a><a name="p93317112013"></a>appexecfwk_services_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0331211910"><a name="p0331211910"></a><a name="p0331211910"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p43318111120"><a name="p43318111120"></a><a name="p43318111120"></a>Read-only archiving</p>
</td>
</tr>
<tr id="row61471111819"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p103361113118"><a name="p103361113118"></a><a name="p103361113118"></a>aafwk_frameworks_kits_content_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1133611212"><a name="p1133611212"></a><a name="p1133611212"></a>N/A</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p123411115112"><a name="p123411115112"></a><a name="p123411115112"></a>Read-only archiving</p>
</td>
</tr>
</tbody>
</table>
## Resolved Issues<a name="section11935243172612"></a>
The following table lists the issues known in OpenHarmony 1.0, which have been resolved in this version.
**Table 4** Resolved issues
<a name="table1934113413913"></a>
<table><thead align="left"><tr id="row4341334203914"><th class="cellrowborder" valign="top" width="22.650000000000002%" id="mcps1.2.3.1.1"><p id="p711564410397"><a name="p711564410397"></a><a name="p711564410397"></a>Issue</p>
</th>
<th class="cellrowborder" valign="top" width="77.35%" id="mcps1.2.3.1.2"><p id="p411564416397"><a name="p411564416397"></a><a name="p411564416397"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row934223410393"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p133271454113911"><a name="p133271454113911"></a><a name="p133271454113911"></a><a href="https://gitee.com/openharmony/multimedia_camera_lite/issues/I3EALU" target="_blank" rel="noopener noreferrer">I3EALU</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p1132775483917"><a name="p1132775483917"></a><a name="p1132775483917"></a>[Multimedia] During execution of the cameraActs case, the camera configuration file cannot be found, and the initialization fails.</p>
</td>
</tr>
<tr id="row0342133417396"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p153278540395"><a name="p153278540395"></a><a name="p153278540395"></a><a href="https://gitee.com/openharmony/drivers_adapter_khdf_liteos/issues/I3D71U" target="_blank" rel="noopener noreferrer">I3D71U</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p93271254153915"><a name="p93271254153915"></a><a name="p93271254153915"></a>[Driver] When the system is reset repeatedly before it is started successfully by hmac_main_init, there is a high possibility that it would be suspended after the startup.</p>
</td>
</tr>
<tr id="row8342934173920"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p7328145410392"><a name="p7328145410392"></a><a name="p7328145410392"></a><a href="https://gitee.com/openharmony/community/issues/I3EGUX" target="_blank" rel="noopener noreferrer">I3EGUX</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p9328654193918"><a name="p9328654193918"></a><a name="p9328654193918"></a>[Reliability] When the system is reset repeatedly, and the KIdle process crashes once, the system is suspended and cannot be started.</p>
</td>
</tr>
<tr id="row034213453916"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p132875473912"><a name="p132875473912"></a><a name="p132875473912"></a><a href="https://gitee.com/openharmony/community/issues/I3DHIL" target="_blank" rel="noopener noreferrer">I3DHIL</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p17328105420391"><a name="p17328105420391"></a><a name="p17328105420391"></a>[System] The remaining space of the Hi3518 development board is insufficient, causing a failure in executing a large number of ACTS test cases.</p>
</td>
</tr>
</tbody>
</table>
...@@ -8,7 +8,10 @@ ...@@ -8,7 +8,10 @@
您必须首先签署“贡献者许可协议”(CLA),然后才能参与社区贡献。 您必须首先签署“贡献者许可协议”(CLA),然后才能参与社区贡献。
在“[docs/zh-cn/contribute](https://gitee.com/openharmony/docs/tree/master/zh-cn/contribute)“路径下获取CLA文本,发送邮件至[contact@openharmony.io](mailto:contact@openharmony.io) 。(线上签署待开放) 在“[docs/zh-cn/contribute](https://gitee.com/openharmony/docs/tree/master/zh-cn/contribute)“路径下获取CLA Markdown文件,将签署后的CLA Markdown文件发送邮件至[contact@openharmony.io](mailto:contact@openharmony.io) 。(线上签署待开放)
- 签署CLA--个人独立贡献者:个人名义参与开源,选择CLA协议。
- 签署CLA--法律实体贡献者:以公司、团队或者项目参与开源,代表XX法律实体签署CLA协议。
**行为准则** **行为准则**
......
...@@ -34,5 +34,5 @@ ...@@ -34,5 +34,5 @@
\* 必填。请确保邮箱与你的gitee账号绑定。 \* 必填。请确保邮箱与你的gitee账号绑定。
请将签署后的CLA文件发送邮件至contact@openharmony.io 。(线上签署待开放) 请将签署后的CLA Markdown文件发送邮件至contact@openharmony.io 。(线上签署待开放)
...@@ -40,3 +40,4 @@ ...@@ -40,3 +40,4 @@
\* 必填。请确保邮箱与你的gitee账号绑定。 \* 必填。请确保邮箱与你的gitee账号绑定。
请将签署后的CLA Markdown文件发送邮件至contact@openharmony.io 。(线上签署待开放)
\ No newline at end of file
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
## 社区安全问题披露<a name="section725624119448"></a> ## 社区安全问题披露<a name="section725624119448"></a>
- 安全处理流程 - [安全问题处理和发布流程](https://gitee.com/openharmony/security/blob/master/zh/security-process/README.md)
- 安全披露信息 - [安全和披露说明](https://gitee.com/openharmony/security/blob/master/zh/security-process/security-disclosure.md)
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
## 环境准备<a name="section124971410183614"></a> ## 环境准备<a name="section124971410183614"></a>
- 针对Git的安装、环境配置及使用方法,请参考码云帮助中心的Git知识大全:[https://gitee.com/help/categories/43](https://gitee.com/help/categories/43) - 针对Git的安装、环境配置及使用方法,请参考码云帮助中心的Git知识大全:[https://gitee.com/help/categories/43](https://gitee.com/help/categories/43)
- 注册SSH公钥,请参考码云帮助中心的公钥管理:[https://gitee.com/help/articles/4181](https://gitee.com/help/articles/4181) - 注册SSH公钥,请参考码云帮助中心的公钥管理:[https://gitee.com/help/articles/4191](https://gitee.com/help/articles/4191)
- 在开展Gitee的工作流之前,您需要先在OpenHarmony的代码托管平台上找到您感兴趣的Repository。 - 在开展Gitee的工作流之前,您需要先在OpenHarmony的代码托管平台上找到您感兴趣的Repository。
## 代码下载<a name="section6125202333611"></a> ## 代码下载<a name="section6125202333611"></a>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
## 从云上Fork代码分支<a name="section8365811818"></a> ## 从云上Fork代码分支<a name="section8365811818"></a>
1. 找到并打开对应Repository的首页。 1. 找到并打开对应Repository的首页。
2. 点击右上角的 Fork 按钮,按照指引,建立一个属于**“个人”**的云上Fork分支。 2. 点击右上角的 Fork 按钮,按照指引,建立一个属于**个人**的云上Fork分支。
## 把Fork仓下载到本地<a name="section49051646201819"></a> ## 把Fork仓下载到本地<a name="section49051646201819"></a>
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
repo config --global repo.token {TOKEN} repo config --global repo.token {TOKEN}
``` ```
token码在码云个人设置→安全设置→私人令牌中生成,例如 token码在码云[个人设置→安全设置→私人令牌](https://gitee.com/profile/personal_access_tokens)中生成,例如
``` ```
repo config --global repo.token 211XXXXXXXXXXXXXXXXXXXXXXXX repo config --global repo.token 211XXXXXXXXXXXXXXXXXXXXXXXX
...@@ -212,7 +212,7 @@ repo push --br="20200903" --d="master" --content="#I1TVV4" ...@@ -212,7 +212,7 @@ repo push --br="20200903" --d="master" --content="#I1TVV4"
## 将Issue与PR关联<a name="section5470144853615"></a> ## 将Issue与PR关联<a name="section5470144853615"></a>
创建PR或编已有的PR时,描述框输入\#+I+五位Issue ID,即可将Issue与PR关联。 创建PR或编已有的PR时,描述框输入\#+I+五位Issue ID,即可将Issue与PR关联。
**约束:** **约束:**
......
# OpenHarmony API治理章程
## 总览
为了引导OpenHarmony应用生态健康、有序发展演进,本章程对OpenHarmony API的新增、变更、废弃、删除等生命周期与治理流程进行约束,同时定义了基本的API设计要求。
本章程由API SIG制定,经PMC批准发布;本对章程的修订必须经由API SIG评审后,由PMC批准发布。
## API范围与定义
应用程序接口(API)位于应用层和框架层之间,是由操作系统预定义的、由框架层和系统应用提供给应用(包括系统应用和三方应用)开发使用的类、方法等用户程序编程接口;不包括OEM扩展接口。
![](figures/API-Scope-And-Definition.png)
OpenHarmony API按使用方分类包括:
- PublicApi:公开发布,提供给三方应用开发使用的API。
- SystemApi:非公开发布,仅授权系统应用可使用的API。
- TestApi:受限发布,仅适用于xTS或应用调试阶段可使用的API。
OpenHarmony API按编程语言分类包括:
- Java API:面向应用开放的Java编程语言接口。
- JS API:面向应用开放的JavaScript编程语言接口。
- Native API:面向应用开放的C/C++编程语言接口。
## API治理
### 角色与职责
|**涉及角色**|**API治理中的职责**|
| - | - |
|Contributor|API的设计和交付主体,负责API相关的代码与设计文档提交。|
|Committer|API相关的代码评审,涉及API提交预审。|
|领域SIG|<p>新增API相关的代码提交评审,领域SIG评审通过即可合入。</p><p>变更API相关的代码提交预审。</p>|
|API SIG|变更API相关的代码提交评审。|
|PMC|API Version计划发布、API治理章程修订评审发布等。|
### API评审流程
API评审流程如下:
![](figures/API-Review-Process.png)
主要过程说明:
1. API评审申请、代码提交(Owner:Contributor),除代码提交外,如果涉及API新增或变更需同步提交相应的API设计文档,详细说明API的需求来源、场景与使用方法、权限设计、隐私保护澄清等,详见后面的API评审申请要素。为避免后续的返工,Contributor可以在正式的API评审申请、代码提交之前,先通过邮件方式将API设计文档提交Committer、领域SIG、API SIG等相关人员预审。
1. 代码评审(Owner:Committer),代码评审和API预审,涉及API提交CodeReview通过后,还需要进一步领域SIG评审。如果单次提交同时涉及多个领域的API新增或变更,相应的API评审申请和代码需要同时提交给相关领域的Committer评审,只有所有对应领域的Committer都完成CodeReview后才能进入下一评审环节。
1. API评审(Owner:领域SIG),新增API相关的代码提交评审,领域SIG评审通过即可代码合入;变更API相关的代码提交,领域SIG评审通过后,还需要进一步提交API SIG。如果单次提交同时涉及多个领域的API新增,相应的API评审申请和代码需要同时提交给相关领域的SIG评审,只需一个领域SIG评审通过即可代码合入。如果单次提交同时涉及多个领域的API变更,相应的API评审申请和代码需要同时提交给相关领域的SIG评审,只有所有对应领域的SIG都要评审通过才能进入下一评审环节。
1. API变更评审(Owner:SIG),变更API相关的代码提交评审,评审通过即可代码。
1. 评审完成。
### API评审申请要素
如果涉及API新增或变更需同步提交相应的API设计文档,建议包含如下要素:
1. 需求来源与使用场景(必须)。
1. API现状与差距分析,说明API新增或变更的必要性(必须)。
1. API原型设计与使用方法说明(必须);必要时,可以进一步包含相应的使用样例(可选)。
1. API权限设计(必须)。
1. API隐私保护方案与要求满足情况澄清(必须);
1. 提交代码的同时提交相应的API参考(必须);必要时,可同步提交相应的开发者指南文档(可选)。
1. 针对老接口的处理方式(废弃、隐藏或彻底删除)、替代接口和相应的应用兼容措施(可选,如果涉及API变更,则必须包含)。
1. 兼容性/性能/功耗/可靠性/测试等相关情况说明(可选,如不满足本章程 “4 API设计要求”,则必须包含相关说明)。
## API设计要求
### 一致性要求
1. 概念一致性:基于场景的业务模型抽象,形成OpenHarmony的连贯、一致、自恰的用户程序模型和业务概念。
1. 术语一致性:相应的业务术语必须采用统一名词,不允许使用多个语意接近的名词表示同一个业务对象;同样地,为了避免产生混淆,也不允许针对不同的业务对象使用相同的名词或语言接近的名词。
1. 操作一致性:相同的操作动作必须采用同一动词。
1. 参数顺序一致性:相同参数/参数序列在多个API中的位置和顺序保持一致。
1. 机制及算法一致性:通信机制、调用模式、认证机制、加密算法等保持一致。
1. 帮助、Demo、模板风格一致性:排版、用法等保持一致。
### 易用性要求
以“能力使用者”视角,而不是“能力提供者”视角设计API:
1. 可理解:API命名和功能特性必须容易理解。
1. 易使用:提供简单易用的API,减少API之间不必要的耦合,避免多个无之间关联关系API之间调用顺序的依赖,尽可能使调用者优雅,尽量避免使用单一功能时必须同时组合调用多个包/模块或类中的多方法才能实现。
1. 避免误导:提供使用者期望的能力,避免误导,减少误用。
1. 提供必要的API文档。
### 命名要求
1. 能清晰的表达意图:使用完整的描述性的单词。
1. 避免造成误导:有误导的名字比表达不清的名字还要有危害性。
1. 词义清晰明了,避免使用info,data,object等一般意义的词。
1. 作用域越大,命名应越精确。
1. 不用或少用缩写,业界通用术语遵从行业习惯允许使用缩写。
1. 包名/模块名/命名空间前缀约定:
1. Java API 统一包名: package ohos.\*
2. JS API 统一模块名:@system.\*
3. Native API 统一命名空间:namespace OHOS.\*
4. 引用外部开源代码的,可以保留原包名/模块名/命名空间,也可以按照上述规则统一进行替换。
7. 包名/模块名/命名空间最短不少于2段,最长不超过4段;每一段建议使用一个单词,最长不超过2个单词。
8. 类名、方法名/函数名、成员变量、变量名最多不超过4个单词。
### 权限控制要求
1. 完备性原则:一切穿透应用沙箱的行为都需考虑使用权限来管控。
1. 最优粒度原则:一个权限只保护一类对象;一个接口仅需申请一个权限即可访问。
1. 清晰完整原则:权限定义中必须清晰说明保护对象、开放范围、敏感级别。
1. 最小开放原则:一个权限仅对确有正当业务需求的应用开放,开放控制可通过权限来实现。
### 隐私保护要求
1. API调用的返回仅包含必要的内容, 避免携带额外信息。
1. API调用不允许获取、手机用户个人数据, 除非通过用户权限管控、由用户授权同意。
1. API涉及跨应用调用时,如涉及个人数据向被调用者的披露,由调用方在隐私声明中说明披露的数据类型、数据接收者和数据使用目的。
1. API涉及到用户敏感数据(如电话、通讯录、媒体等)访问时,需要使用system picker的机制,禁止API通过申请敏感权限方式访问。
1. API开放禁止捆绑与所开放能力不相关的功能。
### 文档化要求
1. API参考采用英文方式交付。
1. 模块/包模块的API参考必须包括简要描述和详细描述。
1. 类、方法、“Interface”、枚举或成员变量的API参考必须包括简要描述。
1. 类、方法、“Interface”、枚举或成员变量的API参考可选包括详细描述。
1. 方法、“Interface”的API参考必须包括所有入参的参数描述。
1. 如果方法或“Interface”有返回值,则API参考必须包含返回值描述。
1. 如果执行过程中可能抛出异常,则API参数必须包含相关的异常描述。
1. 必须包含API的起始版本号(使用@since注释标记)。
1. 可选包括本模块或类自己的版本号(使用@version注释标记)。
### 兼容性要求
1. 按严格程度从高到低,API兼容要求包括:契约兼容 > 二进制兼容 > 源码兼容。
1. 源码兼容:指版本演进后,开发者已有的源代码可正常编译通过。
1. 二进制兼容:指版本演进后,开发者已有程序不用重新编译可正常链接、运行。
1. 契约兼容:也称语义兼容,指版本演进后,开发者原有程序行为不发生变化。
1. OpenHarmony API后向兼容必须满足二进制兼容要求,常见破坏二进制兼容的API变更包括:
1. 任何API元素删除;
1. 降低方法的可见性,例如protected修改为了private,或者public修改为protected。
1. 类类型发生变化,例如抽象类变更为非抽象类,或者接口类(“Interface”)变更为非接口类。
1. 方法原型发生变化,例如返回值类型修改,或入参顺序或入参类型发生变化。
1. 成员final/static等属性发生变化,例如非final成员变成final,或者非static的成员变成static。
1. OpenHarmony API在特定目的下,如Bugfix,允许不遵守契约兼容要求。
1. 禁止“原型相同、功能不兼容”的API修改,可受限使用“废弃old-api、新增new-api”的方式进行修改。
1. 根据发布类型不同,API的生命周期和兼容性要求:
![](figures/API-Lifecycle.png)
1. Canary版本:相同API Version的多个Canary版本之间要求保持API兼容,Canary阶段新增的API允许在后续的Canary版本中标记为废弃或隐藏。Canary阶段新增的API允许在后续第一个Beta版本中彻底删除。
2. Beta版本:相同API Version的多个Beta版本之间要求保持API兼容,Beta阶段新增的API允许在后续的Beta版本中标记为废弃或隐藏,API Stable版本发布之后API即冻结,之后再发布的Beta版不允许任何形式的API新增或变更。Beta阶段新增的且在API Stable版本中标记为废弃或隐藏的API允许在后续第一个Release版本中彻底删除。
3. Release版本:通过Release版本对外发布的API,需要遵守对外部开发者的“契约承诺”,原则上不允许对已经Release发布的API进行不兼容修改,受限允许对已发布的API进行废弃。已经Release发布的API废弃基本要求包括:
1. 废弃接口标记。
2. 提供可替代接口。
3. 废弃API至少保留5个API Version版本(对废弃5个API Version的API可以彻底删除,不再支持)。
### 性能/功耗/可靠性要求
1. 应及时响应,避免调用者等待;如果API调用执行时间过长应设计为异步方式。
1. 应关注API调用时机、调用频次对RAM占用的影响。
1. 应关注API调用时机、调用频次对功耗的影响。
1. API内部创建对象的生命周期要闭合,避免对象资源泄漏。
1. 满足幂等性要求,相同业务含义的请求API调用一次或多次重试总能获得相同的效果(API调用依赖外部资源的变化除外)。针对可重入的API调用实现内部应尽量避免引入时变因素,如系统tick、静态变量、没有互斥保护的全局变量等;针对同一客户端的多次重复调用,可以使用contextID、clientToken、squenceNo等作为调用入参。
### 测试要求
1. 新增API必须同步交付API自动化测试用例,用例100%覆盖API接口。
1. 用例场景单一,单条用例覆盖接口单个功能场景,简化单条用例代码逻辑。
1. 用例执行高效,每条用例执行时间控制在毫秒级。
\ No newline at end of file
...@@ -28,7 +28,7 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金 ...@@ -28,7 +28,7 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金
本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以[组件](../bundles/概述.md)的形式开放,开发者可以通过如下其中一种方式获取: 本文档将介绍如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以[组件](../bundles/概述.md)的形式开放,开发者可以通过如下其中一种方式获取:
- **获取方式1**:从镜像站点下载归档后的发行版压缩文件(推荐) - **获取方式1**:从镜像站点下载归档后的发行版压缩文件。如果要获取旧版本的源码,也可通过此方式获取(推荐)
- **获取方式2**:通过HPM包管理器获取。在[HPM](https://hpm.harmonyos.com)网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。 - **获取方式2**:通过HPM包管理器获取。在[HPM](https://hpm.harmonyos.com)网站,查找满足需求的开源发行版,直接下载(或者定制后下载),再通过hpm-cli命令工具将所需的组件及工具链下载、安装到本地。
- **获取方式3**:从代码仓库获取。通过repo或git工具从代码仓库中下载。 - **获取方式3**:从代码仓库获取。通过repo或git工具从代码仓库中下载。
...@@ -36,62 +36,119 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金 ...@@ -36,62 +36,119 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金
为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。 为了获得更好的下载性能,您可以选择从以下站点的镜像库获取源码或者对应的解决方案。
>![](public_sys-resources/icon-note.gif) **说明:**
>- 本部分只提供**OpenHarmony** Master最新版本和LTS最新版本的源码获取方式, 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)
>- 当前Master 1.0版本已经不再维护,推荐使用LTS版本。
**表 1** 源码获取路径 **表 1** 源码获取路径
<a name="table91984129177"></a> <a name="table17735923173912"></a>
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p16618172471719"><a name="p16618172471719"></a><a name="p16618172471719"></a>下载内容</p> <table><tbody><tr id="row1073515237392"><td class="cellrowborder" valign="top" width="25%"><p id="p5109183611392"><a name="p5109183611392"></a><a name="p5109183611392"></a><strong id="b31091936183918"><a name="b31091936183918"></a><a name="b31091936183918"></a>LTS版本源码</strong></p>
</th> </td>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p46181224161718"><a name="p46181224161718"></a><a name="p46181224161718"></a>版本信息</p> <td class="cellrowborder" valign="top" width="25%"><p id="p13109436103916"><a name="p13109436103916"></a><a name="p13109436103916"></a><strong id="b191091936153912"><a name="b191091936153912"></a><a name="b191091936153912"></a>版本信息</strong></p>
</th> </td>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p1461814241177"><a name="p1461814241177"></a><a name="p1461814241177"></a>下载站点</p> <td class="cellrowborder" valign="top" width="25%"><p id="p610923616398"><a name="p610923616398"></a><a name="p610923616398"></a><strong id="b1210920365393"><a name="b1210920365393"></a><a name="b1210920365393"></a>下载站点</strong></p>
</th> </td>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p12618192481716"><a name="p12618192481716"></a><a name="p12618192481716"></a>SHA256校验码</p> <td class="cellrowborder" valign="top" width="25%"><p id="p2109736133914"><a name="p2109736133914"></a><a name="p2109736133914"></a><strong id="b18109113613397"><a name="b18109113613397"></a><a name="b18109113613397"></a>SHA256校验码</strong></p>
</th> </td>
</tr> </tr>
</thead> <tr id="row17736152318398"><td class="cellrowborder" valign="top" width="25%"><p id="p1110983610395"><a name="p1110983610395"></a><a name="p1110983610395"></a>全量代码</p>
<tbody><tr id="row11198111281715"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p161822419172"><a name="p161822419172"></a><a name="p161822419172"></a>全量代码</p> </td>
<td class="cellrowborder" valign="top" width="25%"><p id="p151091536143915"><a name="p151091536143915"></a><a name="p151091536143915"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p17110133653913"><a name="p17110133653913"></a><a name="p17110133653913"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1911083643914"><a name="p1911083643914"></a><a name="p1911083643914"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p361810245170"><a name="p361810245170"></a><a name="p361810245170"></a>1.0.1</p> </tr>
<tr id="row473612318396"><td class="cellrowborder" valign="top" width="25%"><p id="p511014369394"><a name="p511014369394"></a><a name="p511014369394"></a>Hi3861解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p0110036193911"><a name="p0110036193911"></a><a name="p0110036193911"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p101106361397"><a name="p101106361397"></a><a name="p101106361397"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/wifiiot-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p7110183617391"><a name="p7110183617391"></a><a name="p7110183617391"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row873614239395"><td class="cellrowborder" valign="top" width="25%"><p id="p11110113633913"><a name="p11110113633913"></a><a name="p11110113633913"></a>Hi3518解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p18110193613391"><a name="p18110193613391"></a><a name="p18110193613391"></a>1.1.0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p11618112416174"><a name="p11618112416174"></a><a name="p11618112416174"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/code-1.0.1.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p611013618398"><a name="p611013618398"></a><a name="p611013618398"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p2619182441717"><a name="p2619182441717"></a><a name="p2619182441717"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/code-1.0.1.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p411023616393"><a name="p411023616393"></a><a name="p411023616393"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td> </td>
</tr> </tr>
<tr id="row1019861220171"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1619102471714"><a name="p1619102471714"></a><a name="p1619102471714"></a>Hi3861解决方案(二进制)</p> <tr id="row1273682343914"><td class="cellrowborder" valign="top" width="25%"><p id="p15110123693919"><a name="p15110123693919"></a><a name="p15110123693919"></a>Hi3516解决方案(二进制)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p660745105917"><a name="p660745105917"></a><a name="p660745105917"></a>1.0.1</p> <td class="cellrowborder" valign="top" width="25%"><p id="p1211012362396"><a name="p1211012362396"></a><a name="p1211012362396"></a>1.1.0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p6619122411710"><a name="p6619122411710"></a><a name="p6619122411710"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/wifiiot-1.0.1.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p6110163613918"><a name="p6110163613918"></a><a name="p6110163613918"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p86198245173"><a name="p86198245173"></a><a name="p86198245173"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/wifiiot-1.0.1.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p10110183620394"><a name="p10110183620394"></a><a name="p10110183620394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td> </td>
</tr> </tr>
<tr id="row419901210176"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1461992491711"><a name="p1461992491711"></a><a name="p1461992491711"></a>Hi3518解决方案(二进制)</p> <tr id="row167371123163914"><td class="cellrowborder" valign="top" width="25%"><p id="p10110143610393"><a name="p10110143610393"></a><a name="p10110143610393"></a>RELEASE-NOTES</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1219537125917"><a name="p1219537125917"></a><a name="p1219537125917"></a>1.0.1</p> <td class="cellrowborder" valign="top" width="25%"><p id="p141101436193911"><a name="p141101436193911"></a><a name="p141101436193911"></a>1.1.0</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p13619112431714"><a name="p13619112431714"></a><a name="p13619112431714"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/ipcamera_hi3518ev300-1.0.1.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p10111636193919"><a name="p10111636193919"></a><a name="p10111636193919"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/OpenHarmony_Release_Notes_zh_cn.zip" target="_blank" rel="noopener noreferrer">站点</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p6619224191719"><a name="p6619224191719"></a><a name="p6619224191719"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/ipcamera_hi3518ev300-1.0.1.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p20111163663918"><a name="p20111163663918"></a><a name="p20111163663918"></a>-</p>
</td> </td>
</tr> </tr>
<tr id="row1019901219170"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p2619142411713"><a name="p2619142411713"></a><a name="p2619142411713"></a>Hi3516解决方案(二进制)</p> <tr id="row573719239393"><td class="cellrowborder" valign="top" width="25%"><p id="p104146493390"><a name="p104146493390"></a><a name="p104146493390"></a><strong id="b12414104919398"><a name="b12414104919398"></a><a name="b12414104919398"></a>Master版本源码</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p440317815592"><a name="p440317815592"></a><a name="p440317815592"></a>1.0.1</p> <td class="cellrowborder" valign="top" width="25%"><p id="p194141849163919"><a name="p194141849163919"></a><a name="p194141849163919"></a><strong id="b441494913918"><a name="b441494913918"></a><a name="b441494913918"></a>版本信息</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p176194245176"><a name="p176194245176"></a><a name="p176194245176"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/ipcamera_hi3516dv300-1.0.1.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p8414649193919"><a name="p8414649193919"></a><a name="p8414649193919"></a><strong id="b341584914393"><a name="b341584914393"></a><a name="b341584914393"></a>下载站点</strong></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p196193246171"><a name="p196193246171"></a><a name="p196193246171"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/ipcamera_hi3516dv300-1.0.1.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p13415149133914"><a name="p13415149133914"></a><a name="p13415149133914"></a><strong id="b8415114953915"><a name="b8415114953915"></a><a name="b8415114953915"></a>SHA256校验码</strong></p>
</td> </td>
</tr> </tr>
<tr id="row151991912161714"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p116191324121716"><a name="p116191324121716"></a><a name="p116191324121716"></a>RELEASE-NOTES</p> <tr id="row273762316398"><td class="cellrowborder" valign="top" width="25%"><p id="p54150491393"><a name="p54150491393"></a><a name="p54150491393"></a>全量代码</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p3375101590"><a name="p3375101590"></a><a name="p3375101590"></a>1.0.1</p> <td class="cellrowborder" valign="top" width="25%"><p id="p16415124923914"><a name="p16415124923914"></a><a name="p16415124923914"></a>1.0(不再维护)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p66190245178"><a name="p66190245178"></a><a name="p66190245178"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0.1/OpenHarmony_Release_Notes_zh_cn.zip" target="_blank" rel="noopener noreferrer">站点</a></p> <td class="cellrowborder" valign="top" width="25%"><p id="p44151449203917"><a name="p44151449203917"></a><a name="p44151449203917"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p1161982411713"><a name="p1161982411713"></a><a name="p1161982411713"></a>-</p> <td class="cellrowborder" valign="top" width="25%"><p id="p1441515495392"><a name="p1441515495392"></a><a name="p1441515495392"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row107374239397"><td class="cellrowborder" valign="top" width="25%"><p id="p5415949123910"><a name="p5415949123910"></a><a name="p5415949123910"></a>Hi3861解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p15415949183914"><a name="p15415949183914"></a><a name="p15415949183914"></a>1.0(不再维护)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1415649123916"><a name="p1415649123916"></a><a name="p1415649123916"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p11415549153913"><a name="p11415549153913"></a><a name="p11415549153913"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row9738182319392"><td class="cellrowborder" valign="top" width="25%"><p id="p241524910391"><a name="p241524910391"></a><a name="p241524910391"></a>Hi3518解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p6415849193915"><a name="p6415849193915"></a><a name="p6415849193915"></a>1.0(不再维护)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p841584919394"><a name="p841584919394"></a><a name="p841584919394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p9415124983911"><a name="p9415124983911"></a><a name="p9415124983911"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row17381233399"><td class="cellrowborder" valign="top" width="25%"><p id="p44151149153918"><a name="p44151149153918"></a><a name="p44151149153918"></a>Hi3516解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p15415164917397"><a name="p15415164917397"></a><a name="p15415164917397"></a>1.0(不再维护)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p154151049113914"><a name="p154151049113914"></a><a name="p154151049113914"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p164164491394"><a name="p164164491394"></a><a name="p164164491394"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row1873817234394"><td class="cellrowborder" valign="top" width="25%"><p id="p1341618491393"><a name="p1341618491393"></a><a name="p1341618491393"></a>RELEASE-NOTES</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p7416184953916"><a name="p7416184953916"></a><a name="p7416184953916"></a>1.0(不再维护)</p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p194161849133911"><a name="p194161849133911"></a><a name="p194161849133911"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/RELEASE-NOTES.txt" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%"><p id="p1841619490395"><a name="p1841619490395"></a><a name="p1841619490395"></a>-</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -141,7 +198,7 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金 ...@@ -141,7 +198,7 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金
1. 查找发行版。 1. 查找发行版。
1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。 1. 打开包管理页面[HPM](https://hpm.harmonyOS.com),设定搜索的对象为“发行版“,如下图所示。
2. 自搜索框输入关键字搜索,如"摄像头"。 2. 自搜索框输入关键字搜索,如"摄像头"。
3. 结果中显示与关键字匹配的发行版,可以进一步根据组件类别等过滤条件\(如:适配的开发板,内核)精确筛选。 3. 结果中显示与关键字匹配的发行版,可以进一 步根据组件类别等过滤条件\(如:适配的开发板,内核)精确筛选。
4. 查找合适的发行版,点击查看发行版的详情介绍。 4. 查找合适的发行版,点击查看发行版的详情介绍。
**图 1** 包管理<a name="fig838103114320"></a> **图 1** 包管理<a name="fig838103114320"></a>
...@@ -217,20 +274,37 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金 ...@@ -217,20 +274,37 @@ OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金
## 操作<a name="section17162735266"></a> ## 操作<a name="section17162735266"></a>
方式一(推荐):通过repo下载 >![](public_sys-resources/icon-note.gif) **说明:**
>主干代码为开发分支,开发者可通过主干代码获取最新特性。分支代码相对比较稳定,开发者可基于分支代码进行商用功能开发。
``` - **OpenHarmony主干代码获取**
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
```
方式二:通过git clone单个代码仓库 方式一(推荐):通过repo下载
进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如: ```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
```
方式二:通过git clone单个代码仓库
进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
- **OpenHarmony release 分支代码获取**
通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify
repo sync -c
```
``` - **OpenHarmony** 其他版本源码获取方式请参考版本[Release-Notes](https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-Release-Notes.md)
git clone https://gitee.com/openharmony/manifest.git -b master
```
## 源码目录简介<a name="section1072115612811"></a> ## 源码目录简介<a name="section1072115612811"></a>
......
...@@ -208,9 +208,9 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud ...@@ -208,9 +208,9 @@ OpenHarmony的Docker镜像托管在[HuaweiCloud SWR](https://console.huaweicloud
## 获取设备开发工具(HUAWEI DevEco Device Tool)<a name="zh-cn_topic_0000001055701144_section2452141120244"></a> ## 获取设备开发工具(HUAWEI DevEco Device Tool)<a name="zh-cn_topic_0000001055701144_section2452141120244"></a>
HUAWEI DevEco Device Tool是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、编译、烧录、调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。具体可参见[获取工具](https://device.harmonyos.com/cn/ide)[工具使用指南](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)**。** HUAWEI DevEco Device Tool是OpenHarmony面向智能设备开发者提供的一站式集成开发环境,支持OpenHarmony的组件按需定制,支持代码编辑、编译、烧录、调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。具体可参见[获取工具](https://device.harmonyos.com/cn/ide)[工具使用指南](https://device.harmonyos.com/cn/docs/ide/user-guides/service_introduction-0000001050166905)**。**
## 获取应用开发工具(HUAWEI DevEco Studio)<a name="zh-cn_topic_0000001055701144_section0904101019258"></a> ## 获取应用开发工具(HUAWEI DevEco Studio)<a name="zh-cn_topic_0000001055701144_section0904101019258"></a>
HUAWEI DevEco Studio(以下简称DevEco Studio)是面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。通过使用DevEco Studio,开发者可以更高效的开发具备HarmonyOS分布式能力的应用,进而提升创新效率。具体可参见[获取工具](https://developer.harmonyos.com/cn/develop/deveco-studio)[工具使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387) HUAWEI DevEco Studio(以下简称DevEco Studio)是面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的OpenHarmony应用开发服务。通过使用DevEco Studio,开发者可以更高效的开发具备OpenHarmony分布式能力的应用,进而提升创新效率。具体可参见[获取工具](https://developer.harmonyos.com/cn/develop/deveco-studio)[工具使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)
...@@ -24,7 +24,7 @@ HAL层主要功能是实现轻OpenHarmony与芯片的解耦,以下模块描述 ...@@ -24,7 +24,7 @@ HAL层主要功能是实现轻OpenHarmony与芯片的解耦,以下模块描述
**IOT外设子系统HAL层接口说明**: **IOT外设子系统HAL层接口说明**:
需要芯片适配相关接口的实现,对芯片设备外设接口依赖请参考[wifiiot的HAL头文件](https://gitee.com/openharmony/iothardware_hals_wifiiot_lite/tree/master) 需要芯片适配相关接口的实现,对芯片设备外设接口依赖请参考[IOT外设子系统的HAL头文件](https://gitee.com/openharmony/iothardware_peripheral/tree/master/interfaces/kits)
## WLAN服务<a name="section1331917210911"></a> ## WLAN服务<a name="section1331917210911"></a>
...@@ -70,5 +70,5 @@ vendor/hisi/hi3861/hi3861_adapter/hals/communication/wifi_lite/wifiservice/ ...@@ -70,5 +70,5 @@ vendor/hisi/hi3861/hi3861_adapter/hals/communication/wifi_lite/wifiservice/
└── wifi_hotspot.c └── wifi_hotspot.c
``` ```
需要芯片适配相关接口的实现,对芯片设备外设接口依赖请参考[WLAN服务的头文件](https://gitee.com/openharmony/communication_interfaces_kits_wifi_lite/tree/master/wifiservice) 需要芯片适配相关接口的实现,对芯片设备外设接口依赖请参考[WLAN服务的头文件](https://gitee.com/openharmony/communication_wifi_lite/tree/master/interfaces/wifiservice)
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
## 编译构建流程<a name="section1111311235313"></a> ## 编译构建流程<a name="section1111311235313"></a>
编译构建系统是一个基于gn和ninja组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。编译构建流程如下: 编译构建系统是一个基于gn和ninja组件化构建系统,支持按组件配置、裁剪和拼装,按需构建出定制化的产品。编译构建流程如下:
**图 1** 编译构建流程<a name="fig23781931124913"></a> **图 1** 编译构建流程<a name="fig23781931124913"></a>
![](figures/编译构建流程.png "编译构建流程") ![](figures/编译构建流程.png "编译构建流程")
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
>![](public_sys-resources/icon-note.gif) **说明:** >![](public_sys-resources/icon-note.gif) **说明:**
>编译类型debug选项涉及到XTS的测试用例是否参与编译;release选项会移除最后编译生成文件的符号表、调试信息等 >编译类型debug选项涉及到XTS的测试用例是否参与编译;release选项会移除最后编译生成文件的符号表、调试信息等
- 读取产品配置:读取解决方案厂商的产品配置文件vendor/x\_company/x\_product.json文件,主要包括开发板、内核类型、内核版本和配置的组件。 - 读取产品配置:读取解决方案厂商的产品配置文件vendor/my\_company/my\_product.json文件,主要包括开发板、内核类型、内核版本和配置的组件。
- gn生成ninja文件:根据产品的配置解析结果,按对应的编译工具链将所选组件加入编译,配置全局的编译选项。 - gn生成ninja文件:根据产品的配置解析结果,按对应的编译工具链将所选组件加入编译,配置全局的编译选项。
- 执行ninja启动编译:组件逐个编译和链接。 - 执行ninja启动编译:组件逐个编译和链接。
...@@ -25,7 +25,7 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com ...@@ -25,7 +25,7 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com
首先,创建开发板目录,以芯片厂商realtek的“rtl8720“开发板为例,需创建device/realtek/rtl8720目录。编译相关的适配步骤如下: 首先,创建开发板目录,以芯片厂商realtek的“rtl8720“开发板为例,需创建device/realtek/rtl8720目录。编译相关的适配步骤如下:
1. 编译工具链和编译选项配置 1. 编译工具链和编译选项配置
构建系统默认使用ohos-clang编译工具链,也支持芯片厂商按开发板自定义配置。开发板编译配置文件编译相关的变量如下: 构建系统默认使用ohos-clang编译工具链,也支持芯片厂商按开发板自定义配置。开发板编译配置文件编译相关的变量如下:
...@@ -43,14 +43,14 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com ...@@ -43,14 +43,14 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com
编译构建会按产品的选择的开发板,加载对应的config.gni,该文件中变量对系统组件全局可见。 编译构建会按产品的选择的开发板,加载对应的config.gni,该文件中变量对系统组件全局可见。
以芯片厂商realtek的“rtl8720“开发板为例,device/realtek/rtl8720/liteos\_m/config.gni如下: 以芯片厂商realtek的“rtl8720“开发板为例,device/realtek/rtl8720/liteos\_m/config.gni的内容如下:
``` ```
# Kernel type, e.g. "linux", "liteos_a", "liteos_m". # Kernel type, e.g. "linux", "liteos_a", "liteos_m".
kernel_type = "liteos_m" kernel_type = "liteos_m"
# Kernel version. # Kernel version.
kernel_version = "" kernel_version = "3.0.0"
# Board CPU type, e.g. "cortex-a7", "riscv32". # Board CPU type, e.g. "cortex-a7", "riscv32".
board_cpu = "real-m300" board_cpu = "real-m300"
...@@ -80,20 +80,59 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com ...@@ -80,20 +80,59 @@ gn语法和基础知识请参见官方[快速入门](https://gn.googlesource.com
board_ld_flags = [] board_ld_flags = []
``` ```
2. 开发板编译脚本 2. 开发板编译脚本
新增的开发板,对应目录下需要新增BUILD.gn文件作为开发板编译的总入口。以芯片厂商realtek的rtl8720开发板为例,对应的device/realtek/rtl8720/BUILD.gn为: 新增的开发板,对应目录下需要新增BUILD.gn文件作为开发板编译的总入口。以芯片厂商realtek的rtl8720开发板为例,对应的device/realtek/rtl8720/BUILD.gn为:
``` ```
group("rlt8720") { group("rtl8720") {
... ...
} }
``` ```
3. 编译调试 3. 编译调试开发板。
1. 任意目录执行hb set按提示设置源码路径和要编译的产品。 1. 任意目录执行hb set按提示设置源码路径和要编译的产品。
2. 在开发板目录下执行hb build, 即可启动开发板的编译。 2. 在开发板目录下执行hb build, 即可启动开发板的编译。
4. 编译调试产品
将开发板和组件信息写入产品配置文件,该配置文件字段说明如下:
- product\_name:产品名称,支持自定义,建议与vendor下的三级目录名称一致。
- ohos\_version:OpenHarmony版本号,应与实际下载的版本一致。
- device\_company:芯片解决方案厂商名称,建议与device的二级目录名称一致。
- board:开发板名称,建议与device的三级级目录名称一致。
- kernel\_type:内核类型,应与开发板支持的内核类型匹配。
- kernel\_version:内核版本号,应与开发板支持的内核版本匹配。
- subsystem:产品选择的子系统,应为OS支持的子系统,OS支持的子系统请见build/lite/components目录下的各子系统描述文件。
- components:产品选择的某个子系统下的组件,应为某个子系统支持的组件,子系统支持的组件请见build/lite/components/子系统.json文件。
- features:产品配置的某个组件的特性,组件支持的特性请见build/lite/components/子系统.json中对应组件的features字段。
以基于“rtl8720“开发板的wifiiot模组为例,vendor/my\_company/wifiiot/config.json如下:
```
{
"product_name": "wifiiot", # 产品名称
"ohos_version": "OpenHarmony 1.0", # 使用的OS版本
"device_company": "realtek", # 芯片解决方案厂商名称
"board": "rtl8720", # 开发板名称
"kernel_type": "liteos_m", # 选择的内核类型
"kernel_version": "3.0.0", # 选择的内核版本
"subsystems": [
{
"subsystem": "kernel", # 选择的子系统
"components": [
{ "component": "liteos_m", "features":[] } # 选择的组件和组件特性
]
},
...
{
更多子系统和组件
}
]
}
```
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
- [软件要求](#section965634210501) - [软件要求](#section965634210501)
- [安装Linux编译环境](#section182916865219) - [安装Linux编译环境](#section182916865219)
- [将Linux shell改为bash](#section1715027152617)
- [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251)
- [安装文件打包工具](#section8352161417450) - [安装文件打包工具](#section8352161417450)
- [安装hc-gen](#section2075110583451) - [安装hc-gen](#section2075110583451)
- [安装Java 虚拟机环境](#section101989994613) - [安装Java 虚拟机环境](#section101989994613)
...@@ -39,31 +41,45 @@ Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途 ...@@ -39,31 +41,45 @@ Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途
**表 1** Linux服务器开发工具及获取途径 **表 1** Linux服务器开发工具及获取途径
<a name="table6299192712513"></a> <a name="table6299192712513"></a>
<table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="22.152215221522155%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p> <table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="25.112511251125113%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p>
</th> </th>
<th class="cellrowborder" valign="top" width="18.09180918091809%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p> <th class="cellrowborder" valign="top" width="15.13151315131513%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p>
</th> </th>
<th class="cellrowborder" valign="top" width="59.75597559755976%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p> <th class="cellrowborder" valign="top" width="59.75597559755976%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p>
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row76242594498"><td class="cellrowborder" valign="top" width="22.152215221522155%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools、mtools、mtd-utils</p> <tbody><tr id="row167343191518"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p467443191517"><a name="p467443191517"></a><a name="p467443191517"></a>bash</p>
</td> </td>
<td class="cellrowborder" valign="top" width="18.09180918091809%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>文件打包工具</p> <td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p0674153114151"><a name="p0674153114151"></a><a name="p0674153114151"></a>命令行处理工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p1262475944916"><a name="p1262475944916"></a><a name="p1262475944916"></a>通过apt-get install安装</p> <td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p116746312151"><a name="p116746312151"></a><a name="p116746312151"></a>系统配置</p>
</td> </td>
</tr> </tr>
<tr id="row18516509507"><td class="cellrowborder" valign="top" width="22.152215221522155%" headers="mcps1.2.4.1.1 "><p id="p14521650135017"><a name="p14521650135017"></a><a name="p14521650135017"></a>hc-gen</p> <tr id="row14885193315201"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>编译基础软件包(仅ubuntu 20+需要)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="18.09180918091809%" headers="mcps1.2.4.1.2 "><p id="p125255010501"><a name="p125255010501"></a><a name="p125255010501"></a>驱动配置编译工具</p> <td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>编译依赖的基础软件包</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row52253812238"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p28007392236"><a name="p28007392236"></a><a name="p28007392236"></a>dosfstools、mtools、mtd-utils</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p98008390232"><a name="p98008390232"></a><a name="p98008390232"></a>文件打包工具</p>
</td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p280018394233"><a name="p280018394233"></a><a name="p280018394233"></a>通过apt-get install安装</p>
</td>
</tr>
<tr id="row18516509507"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p14521650135017"><a name="p14521650135017"></a><a name="p14521650135017"></a>hc-gen</p>
</td>
<td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p125255010501"><a name="p125255010501"></a><a name="p125255010501"></a>驱动配置编译工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p145061517114519"><a name="p145061517114519"></a><a name="p145061517114519"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar</a></p> <td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p145061517114519"><a name="p145061517114519"></a><a name="p145061517114519"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar</a></p>
</td> </td>
</tr> </tr>
<tr id="row29204072315"><td class="cellrowborder" valign="top" width="22.152215221522155%" headers="mcps1.2.4.1.1 "><p id="p5921190162318"><a name="p5921190162318"></a><a name="p5921190162318"></a>Java 虚拟机环境</p> <tr id="row29204072315"><td class="cellrowborder" valign="top" width="25.112511251125113%" headers="mcps1.2.4.1.1 "><p id="p5921190162318"><a name="p5921190162318"></a><a name="p5921190162318"></a>Java 虚拟机环境</p>
</td> </td>
<td class="cellrowborder" valign="top" width="18.09180918091809%" headers="mcps1.2.4.1.2 "><p id="p17921110152311"><a name="p17921110152311"></a><a name="p17921110152311"></a>编译、调试和运行Java程序</p> <td class="cellrowborder" valign="top" width="15.13151315131513%" headers="mcps1.2.4.1.2 "><p id="p17921110152311"><a name="p17921110152311"></a><a name="p17921110152311"></a>编译、调试和运行Java程序</p>
</td> </td>
<td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p16921805237"><a name="p16921805237"></a><a name="p16921805237"></a>通过apt-get install安装</p> <td class="cellrowborder" valign="top" width="59.75597559755976%" headers="mcps1.2.4.1.3 "><p id="p16921805237"><a name="p16921805237"></a><a name="p16921805237"></a>通过apt-get install安装</p>
</td> </td>
...@@ -77,6 +93,37 @@ Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途 ...@@ -77,6 +93,37 @@ Hi3516开发板对Linux服务器通用环境配置需要的工具及其获取途
>- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装LLVM、hc-gen编译工具。 >- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装LLVM、hc-gen编译工具。
>- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装LLVM、hc-gen编译工具。安装LLVM、hc-gen编译工具时,请确保编译工具的环境变量路径唯一。 >- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装LLVM、hc-gen编译工具。安装LLVM、hc-gen编译工具时,请确保编译工具的环境变量路径唯一。
### 将Linux shell改为bash<a name="section1715027152617"></a>
查看shell是否为bash,在终端运行如下命令
```
ls -l /bin/sh
```
如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改:
**方法一**:在终端运行如下命令,然后选择 no。
```
sudo dpkg-reconfigure dash
```
**方法二**:先删除sh,再创建软链接。
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### 安装编译依赖基础软件(仅Ubuntu 20+需要)<a name="section45512412251"></a>
执行以下命令进行安装:
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### 安装文件打包工具<a name="section8352161417450"></a> ### 安装文件打包工具<a name="section8352161417450"></a>
1. 打开Linux编译服务器终端。 1. 打开Linux编译服务器终端。
......
# Hi3518搭建环境<a name="ZH-CN_TOPIC_0000001054022306"></a>
- [前提条件](#section2074878255)
- [Hi3518环境搭建](#section1724111409282)
- [硬件要求](#section487353718276)
- [软件要求](#section17315193935817)
- [安装Linux编译环境](#section8831868501)
- [将Linux shell改为bash](#section1715027152617)
- [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251)
- [安装文件打包工具](#section480195453419)
- [安装hc-gen](#section351420104218)
## 前提条件<a name="section2074878255"></a>
Hi3518环境搭建前,请先完成[搭建系统基础环境](搭建系统基础环境.md)
## Hi3518环境搭建<a name="section1724111409282"></a>
### 硬件要求<a name="section487353718276"></a>
- Hi3518EV300 IoT Camera开发板
- USB转串口线、网线(Windows工作台通过USB转串口线、网线与开发板连接)
各硬件连接关系如下图所示。
**图 1** 硬件连线图<a name="fig8211468392"></a>
![](figures/硬件连线图.png "硬件连线图")
### 软件要求<a name="section17315193935817"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,请跳过此章节以及下述安装Linux编译环境章节。
Hi3518开发板对Linux服务器通用环境配置需要的工具及其获取途径如下表所示。
**表 1** Linux服务器开发工具及获取途径
<a name="table15485545145811"></a>
<table><thead align="left"><tr id="row1748610451588"><th class="cellrowborder" valign="top" width="23.332333233323332%" id="mcps1.2.4.1.1"><p id="p13486154545816"><a name="p13486154545816"></a><a name="p13486154545816"></a>开发工具</p>
</th>
<th class="cellrowborder" valign="top" width="14.65146514651465%" id="mcps1.2.4.1.2"><p id="p44867452589"><a name="p44867452589"></a><a name="p44867452589"></a>用途</p>
</th>
<th class="cellrowborder" valign="top" width="62.016201620162015%" id="mcps1.2.4.1.3"><p id="p1748619458583"><a name="p1748619458583"></a><a name="p1748619458583"></a>获取途径</p>
</th>
</tr>
</thead>
<tbody><tr id="row18630134151917"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p1563113417199"><a name="p1563113417199"></a><a name="p1563113417199"></a>bash</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p463193418190"><a name="p463193418190"></a><a name="p463193418190"></a>命令行处理工具</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p1063118344191"><a name="p1063118344191"></a><a name="p1063118344191"></a>系统配置</p>
</td>
</tr>
<tr id="row7598468212"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p659815642111"><a name="p659815642111"></a><a name="p659815642111"></a>编译基础软件包(仅ubuntu 20+需要)</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>编译依赖的基础软件包</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p125983652118"><a name="p125983652118"></a><a name="p125983652118"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row08231641105420"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p1682494111548"><a name="p1682494111548"></a><a name="p1682494111548"></a>dosfstools、mtools、mtd-utils</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p1362445934918"><a name="p1362445934918"></a><a name="p1362445934918"></a>文件打包工具</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p1262475944916"><a name="p1262475944916"></a><a name="p1262475944916"></a>通过apt-get install安装</p>
</td>
</tr>
<tr id="row1548710453586"><td class="cellrowborder" valign="top" width="23.332333233323332%" headers="mcps1.2.4.1.1 "><p id="p15487114585814"><a name="p15487114585814"></a><a name="p15487114585814"></a>hc-gen</p>
</td>
<td class="cellrowborder" valign="top" width="14.65146514651465%" headers="mcps1.2.4.1.2 "><p id="p148719452588"><a name="p148719452588"></a><a name="p148719452588"></a>驱动配置编译工具</p>
</td>
<td class="cellrowborder" valign="top" width="62.016201620162015%" headers="mcps1.2.4.1.3 "><p id="p1487164565819"><a name="p1487164565819"></a><a name="p1487164565819"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar</a></p>
</td>
</tr>
</tbody>
</table>
## 安装Linux编译环境<a name="section8831868501"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、LLVM、hc-gen编译工具。
>- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装LLVM、hc-gen编译工具。安装LLVM、hc-gen编译工具时,请确保编译工具的环境变量路径唯一。
### 将Linux shell改为bash<a name="section1715027152617"></a>
查看shell是否为bash,在终端运行如下命令
```
ls -l /bin/sh
```
如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改:
**方法一**:在终端运行如下命令,然后选择 no。
```
sudo dpkg-reconfigure dash
```
**方法二**:先删除sh,再创建软链接。
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### 安装编译依赖基础软件(仅Ubuntu 20+需要)<a name="section45512412251"></a>
执行以下命令进行安装:
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### 安装文件打包工具<a name="section480195453419"></a>
1. 打开Linux编译服务器终端。
2. 运行如下命令,安装dosfstools。
```
sudo apt-get install dosfstools
```
3. 运行如下命令,安装mtools。
```
sudo apt-get install mtools
```
4. 运行如下命令,安装mtd-utils。
```
sudo apt-get install mtd-utils
```
### 安装hc-gen<a name="section351420104218"></a>
1. 打开Linux编译服务器终端。
2. [下载hc-gen工具](https://repo.huaweicloud.com/harmonyos/compiler/hc-gen/0.65/linux/hc-gen-0.65-linux.tar)
3. 解压hc-gen安装包到Linux服务器\~/hc-gen路径下。
```
tar -xvf hc-gen-0.65-linux.tar -C ~/
```
4. 设置环境变量。
```
vim ~/.bashrc
```
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
```
export PATH=~/hc-gen:$PATH
```
5. 生效环境变量。
```
source ~/.bashrc
```
...@@ -3,19 +3,21 @@ ...@@ -3,19 +3,21 @@
- [前提条件](#section2074878255) - [前提条件](#section2074878255)
- [Hi3861环境特有要求](#section466851916410) - [Hi3861环境特有要求](#section466851916410)
- [安装Linux编译环境](#section497484245614) - [安装Linux编译环境](#section497484245614)
- [安装编译依赖基础软件(仅Ubuntu 20+需要)](#section45512412251)
- [安装Scons](#section13515123015279) - [安装Scons](#section13515123015279)
- [安装python模块](#section88701892341)
- [安装gcc\_riscv32(WLAN模组类编译工具链)](#section1842910288284) - [安装gcc\_riscv32(WLAN模组类编译工具链)](#section1842910288284)
>![](public_sys-resources/icon-notice.gif) **须知:**
>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,无需安装Linux服务器相关的SCons3.0.4+和build-essential工具,仅需安装Windows工作台软件。
## 前提条件<a name="section2074878255"></a> ## 前提条件<a name="section2074878255"></a>
Hi3861环境搭建前,请先完成[搭建系统基础环境](搭建系统基础环境.md) Hi3861环境搭建前,请先完成[搭建系统基础环境](搭建系统基础环境.md)
## Hi3861环境特有要求<a name="section466851916410"></a> ## Hi3861环境特有要求<a name="section466851916410"></a>
>![](public_sys-resources/icon-notice.gif) **须知:**
>本节描述安装包方式搭建编译环境的操作步骤。如果是Docker方式安装编译环境,无需安装[表1](#table6299192712513)中的Linux服务器相关工具,仅需安装Windows工作台软件。
Hi3861开发板对环境配置的特有要求如下表所示。 Hi3861开发板对环境配置的特有要求如下表所示。
**表 1** Hi3861开发板对环境配置的特有要求 **表 1** Hi3861开发板对环境配置的特有要求
...@@ -23,37 +25,55 @@ Hi3861开发板对环境配置的特有要求如下表所示。 ...@@ -23,37 +25,55 @@ Hi3861开发板对环境配置的特有要求如下表所示。
<a name="table6299192712513"></a> <a name="table6299192712513"></a>
<table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="17.54%" id="mcps1.2.5.1.1"><p id="p162491657102110"><a name="p162491657102110"></a><a name="p162491657102110"></a>平台类型</p> <table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="17.54%" id="mcps1.2.5.1.1"><p id="p162491657102110"><a name="p162491657102110"></a><a name="p162491657102110"></a>平台类型</p>
</th> </th>
<th class="cellrowborder" valign="top" width="19.89%" id="mcps1.2.5.1.2"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p> <th class="cellrowborder" valign="top" width="23.62%" id="mcps1.2.5.1.2"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p>
</th> </th>
<th class="cellrowborder" valign="top" width="26.279999999999998%" id="mcps1.2.5.1.3"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p> <th class="cellrowborder" valign="top" width="22.55%" id="mcps1.2.5.1.3"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p>
</th> </th>
<th class="cellrowborder" valign="top" width="36.29%" id="mcps1.2.5.1.4"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p> <th class="cellrowborder" valign="top" width="36.29%" id="mcps1.2.5.1.4"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p>
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row1397335913612"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p3711468218"><a name="p3711468218"></a><a name="p3711468218"></a>Linux服务器</p> <tbody><tr id="row935218593572"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p105554418586"><a name="p105554418586"></a><a name="p105554418586"></a>Linux服务器</p>
</td>
<td class="cellrowborder" valign="top" width="23.62%" headers="mcps1.2.5.1.2 "><p id="p45551740589"><a name="p45551740589"></a><a name="p45551740589"></a>编译基础软件包(仅ubuntu 20+需要)</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p097355911620"><a name="p097355911620"></a><a name="p097355911620"></a>SCons3.0.4+</p> <td class="cellrowborder" valign="top" width="22.55%" headers="mcps1.2.5.1.3 "><p id="p655594115814"><a name="p655594115814"></a><a name="p655594115814"></a>编译依赖的基础软件包</p>
</td> </td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p1973195917619"><a name="p1973195917619"></a><a name="p1973195917619"></a>编译构建工具</p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p165558415589"><a name="p165558415589"></a><a name="p165558415589"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row1397335913612"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p3711468218"><a name="p3711468218"></a><a name="p3711468218"></a>Linux服务器</p>
</td>
<td class="cellrowborder" valign="top" width="23.62%" headers="mcps1.2.5.1.2 "><p id="p097355911620"><a name="p097355911620"></a><a name="p097355911620"></a>SCons3.0.4+</p>
</td>
<td class="cellrowborder" valign="top" width="22.55%" headers="mcps1.2.5.1.3 "><p id="p1973195917619"><a name="p1973195917619"></a><a name="p1973195917619"></a>编译构建工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p1722663441514"><a name="p1722663441514"></a><a name="p1722663441514"></a>通过互联网获取</p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p1722663441514"><a name="p1722663441514"></a><a name="p1722663441514"></a>通过互联网获取</p>
</td> </td>
</tr> </tr>
<tr id="row1463517494402"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p137174662119"><a name="p137174662119"></a><a name="p137174662119"></a>Linux服务器</p> <tr id="row1968013216717"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p2681632977"><a name="p2681632977"></a><a name="p2681632977"></a>Linux服务器</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p258814561424"><a name="p258814561424"></a><a name="p258814561424"></a>build-essential</p> <td class="cellrowborder" valign="top" width="23.62%" headers="mcps1.2.5.1.2 "><p id="p1991501391312"><a name="p1991501391312"></a><a name="p1991501391312"></a>python模块:setuptools、kconfiglib、pycryptodome、six、ecdsa</p>
</td> </td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p1749611716181"><a name="p1749611716181"></a><a name="p1749611716181"></a>编译依赖的基础软件包</p> <td class="cellrowborder" valign="top" width="22.55%" headers="mcps1.2.5.1.3 "><p id="p968120325715"><a name="p968120325715"></a><a name="p968120325715"></a>编译构建工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p8635174916403"><a name="p8635174916403"></a><a name="p8635174916403"></a>通过互联网获取</p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p268116326711"><a name="p268116326711"></a><a name="p268116326711"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row020914491313"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p20209749103116"><a name="p20209749103116"></a><a name="p20209749103116"></a>Linux服务器</p>
</td>
<td class="cellrowborder" valign="top" width="23.62%" headers="mcps1.2.5.1.2 "><p id="p7209104910317"><a name="p7209104910317"></a><a name="p7209104910317"></a>gcc riscv32</p>
</td>
<td class="cellrowborder" valign="top" width="22.55%" headers="mcps1.2.5.1.3 "><p id="p102093498311"><a name="p102093498311"></a><a name="p102093498311"></a>编译构建工具</p>
</td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p321054953116"><a name="p321054953116"></a><a name="p321054953116"></a>通过互联网获取</p>
</td> </td>
</tr> </tr>
<tr id="row1596703610215"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p071946112113"><a name="p071946112113"></a><a name="p071946112113"></a>Windows工作台</p> <tr id="row1596703610215"><td class="cellrowborder" valign="top" width="17.54%" headers="mcps1.2.5.1.1 "><p id="p071946112113"><a name="p071946112113"></a><a name="p071946112113"></a>Windows工作台</p>
</td> </td>
<td class="cellrowborder" valign="top" width="19.89%" headers="mcps1.2.5.1.2 "><p id="p1044974291416"><a name="p1044974291416"></a><a name="p1044974291416"></a>CH341SER.EXE</p> <td class="cellrowborder" valign="top" width="23.62%" headers="mcps1.2.5.1.2 "><p id="p1044974291416"><a name="p1044974291416"></a><a name="p1044974291416"></a>CH341SER.EXE</p>
</td> </td>
<td class="cellrowborder" valign="top" width="26.279999999999998%" headers="mcps1.2.5.1.3 "><p id="p94491342131413"><a name="p94491342131413"></a><a name="p94491342131413"></a>USB转串口驱动</p> <td class="cellrowborder" valign="top" width="22.55%" headers="mcps1.2.5.1.3 "><p id="p94491342131413"><a name="p94491342131413"></a><a name="p94491342131413"></a>USB转串口驱动</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="http://www.wch.cn/search?q=ch340g&amp;t=downloads" target="_blank" rel="noopener noreferrer">http://www.wch.cn/search?q=ch340g&amp;t=downloads</a></p> <td class="cellrowborder" valign="top" width="36.29%" headers="mcps1.2.5.1.4 "><p id="p6449184214148"><a name="p6449184214148"></a><a name="p6449184214148"></a><a href="http://www.wch.cn/search?q=ch340g&amp;t=downloads" target="_blank" rel="noopener noreferrer">http://www.wch.cn/search?q=ch340g&amp;t=downloads</a></p>
</td> </td>
...@@ -67,39 +87,129 @@ Hi3861开发板对环境配置的特有要求如下表所示。 ...@@ -67,39 +87,129 @@ Hi3861开发板对环境配置的特有要求如下表所示。
>- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gcc\_riscv32编译工具。 >- 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gcc\_riscv32编译工具。
>- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gcc\_riscv32编译工具。安装gcc\_riscv32编译工具时,请确保编译工具的环境变量路径唯一。 >- (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gcc\_riscv32编译工具。安装gcc\_riscv32编译工具时,请确保编译工具的环境变量路径唯一。
### 安装编译依赖基础软件(仅Ubuntu 20+需要)<a name="section45512412251"></a>
执行以下命令进行安装:
```
sudo apt-get install build-essential && sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev
```
### 安装Scons<a name="section13515123015279"></a> ### 安装Scons<a name="section13515123015279"></a>
1. 打开Linux编译服务器终端。 1. 打开Linux编译服务器终端。
2. 运行如下命令,安装SCons安装包。 2. 运行如下命令,安装SCons安装包。
``` ```
sudo apt-get install scons -y python3 -m pip install scons
``` ```
如果软件源中无法找到安装包,请按以下步骤处理: 3. 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
1. 下载源码包(下载路径:“ [https://scons.org/pages/download.html](https://scons.org/pages/download.html) ”,具体版本以SCons的当前生产版本为准,要求SCons版本为3.0.4以上)。 ```
2. 解压源码包到任意目录(以scons-3.1.2为例)。 scons -v
```
**图 1** SCons安装成功界面,版本要求3.0.4以上<a name="fig235815252492"></a>
![](figures/SCons安装成功界面-版本要求3-0-4以上.png "SCons安装成功界面-版本要求3-0-4以上")
### 安装python模块<a name="section88701892341"></a>
1. 运行如下命令,安装python模块setuptools。
``` ```
tar -xvf scons-3.1.2.tar.gz pip3 install setuptools
``` ```
3. 安装源码包:进入解压目录,运行如下命令: 2. 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。
- **命令行方式:**
``` ```
sudo python3 setup.py install sudo pip3 install kconfiglib
``` ```
3. 运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。 - **安装包方式:**
1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)”
1. 运行如下命令,安装.whl文件。
``` ```
scons -v sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
```
3. 安装pycryptodome,任选如下一种方式。
安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。
- **命令行方式:**
``` ```
sudo pip3 install pycryptodome
```
- **安装包方式:**
1. 下载.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl)。
下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
```
4. 安装six,任选如下一种方式。
- **命令行方式:**
```
sudo pip3 install six --upgrade --ignore-installed six
```
- **安装包方式:**
1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)”
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install six-1.12.0-py2.py3-none-any.whl
```
5. 安装ecdsa,任选如下一种方式。
- **命令行方式:**
```
sudo pip3 install ecdsa
```
- **安装包方式:**
1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)”
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
```
**图 1** SCons安装成功界面<a name="fig235815252492"></a>
![](figures/SCons安装成功界面.png "SCons安装成功界面")
### 安装gcc\_riscv32(WLAN模组类编译工具链)<a name="section1842910288284"></a> ### 安装gcc\_riscv32(WLAN模组类编译工具链)<a name="section1842910288284"></a>
......
# 快速入门 # 快速入门
- [环境搭建](环境搭建.md) - [搭建系统基础环境](搭建系统基础环境.md)
- [搭建系统基础环境](搭建系统基础环境.md)
- [Hi3861开发板](Hi3861开发板.md) - [Hi3861开发板](Hi3861开发板.md)
- [Hi3861开发板介绍](Hi3861开发板介绍.md) - [Hi3861开发板介绍](Hi3861开发板介绍.md)
......
# 开发Hi3516第一个应用程序示例<a name="ZH-CN_TOPIC_0000001052906247"></a> # 开发Hi3516第一个应用程序示例<a name="ZH-CN_TOPIC_0000001052906247"></a>
- [修改应用程序](#s8efc1952ebfe4d1ea717182e108c29bb) - [新建应用程序](#s8efc1952ebfe4d1ea717182e108c29bb)
- [编译](#section1077671315253) - [编译](#section1077671315253)
- [烧录](#section08153912587) - [烧录](#section08153912587)
- [镜像运行](#section380511712615) - [镜像运行](#section380511712615)
- [执行应用程序](#section5276734182615) - [执行应用程序](#section5276734182615)
本节指导开发者在单板上运行第一个应用程序,其中包括修改应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。 本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
## 修改应用程序<a name="s8efc1952ebfe4d1ea717182e108c29bb"></a> ## 新建应用程序<a name="s8efc1952ebfe4d1ea717182e108c29bb"></a>
源码目录applications/sample/camera/app/src内**helloworld.c**代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。 1. 新建目录及源码
``` 新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
#include <stdio.h>
#include "los_sample.h" ```
#include <stdio.h>
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
printf("\n************************************************\n"); printf("\n************************************************\n");
printf("\n\t\tHello OHOS!\n"); printf("\n\t\tHello OHOS!\n");
printf("\n************************************************\n\n"); printf("\n************************************************\n\n");
LOS_Sample(g_num);
return 0; return 0;
} }
``` ```
2. 新建编译组织文件
新建**applications/sample/camera/apps/BUILD.gn**文件,内容如下所示:
```
import("//build/lite/config/component/lite_component.gni")
lite_component("hello-OHOS") {
features = [ ":helloworld" ]
}
executable("helloworld") {
output_name = "helloworld"
sources = [ "src/helloworld.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
```
3. 添加新组件
修改文件**build/lite/components/applications.json**,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"//applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/apps"
],
"targets": [
"//applications/sample/camera/apps:hello-OHOS"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
```
4. 修改单板配置文件
修改文件**vendor/hisilicon/hispark\_taurus/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"subsystem": "applications",
"components": [
{ "component": "camera_sample_app", "features":[] },
{ "component": "camera_sample_ai", "features":[] },
##start##
{ "component": "hello_world_app", "features":[] },
##end##
{ "component": "camera_screensaver_app", "features":[] }
]
},
```
## 编译<a name="section1077671315253"></a> ## 编译<a name="section1077671315253"></a>
...@@ -45,7 +144,7 @@ hb build -f(执行编译) ...@@ -45,7 +144,7 @@ hb build -f(执行编译)
结果文件生成在out/hispark\_taurus/ipcamera\_hispark\_taurus目录下。 结果文件生成在out/hispark\_taurus/ipcamera\_hispark\_taurus目录下。
>![](public_sys-resources/icon-notice.gif) **须知:** >![](public_sys-resources/icon-notice.gif) **须知:**
>Hi3516DV300单板的U-boot文件获取路径:vendor\\hisi\\hi35xx\\hi3516dv300\\uboot\\out\\boot\\u-boot-hi3516dv300.bin >Hi3516DV300单板的U-boot文件获取路径:device/hisilicon/hispark\_taurus/sdk\_liteos/uboot/out/boot/u-boot-hi3516dv300.bin
## 烧录<a name="section08153912587"></a> ## 烧录<a name="section08153912587"></a>
...@@ -114,13 +213,13 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三 ...@@ -114,13 +213,13 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三
![](figures/chuankou1.png) ![](figures/chuankou1.png)
1. 单击**Serial port**打开串口。 1. 单击**Serial port**打开串口。
2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisillicon"。 2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisilicon"。
3. 单板初次启动或修改启动参数,请进入[步骤2](#l5b42e79a33ea4d35982b78a22913b0b1),否则进入[步骤3](#ld26f18828aa44c36bfa36be150e60e49)。 3. 单板初次启动或修改启动参数,请进入[步骤2](#l5b42e79a33ea4d35982b78a22913b0b1),否则进入[步骤3](#ld26f18828aa44c36bfa36be150e60e49)。
2. <a name="l5b42e79a33ea4d35982b78a22913b0b1"></a>(单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。 2. <a name="l5b42e79a33ea4d35982b78a22913b0b1"></a>(单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。
>![](public_sys-resources/icon-notice.gif) **须知:** >![](public_sys-resources/icon-notice.gif) **须知:**
>U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisillicon",通过**reset**命令可再次启动系统。 >U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisilicon",通过**reset**命令可再次启动系统。
**表 1** U-boot修改命令 **表 1** U-boot修改命令
...@@ -168,10 +267,8 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三 ...@@ -168,10 +267,8 @@ Hi3516开发板的代码烧录支持USB烧录、网口烧录和串口烧录三
## 执行应用程序<a name="section5276734182615"></a> ## 执行应用程序<a name="section5276734182615"></a>
根目录下,在命令行输入指令“**./bin/camera\_app**”执行写入的demo程序,显示成功结果如下图所示。 根目录下,在命令行输入指令“**./bin/helloworld**”执行写入的demo程序,显示成功结果如下图所示。
**图 4** 应用程序启动图<a name="fig36537913815"></a>
![](figures/qidong.png) **图 4** 启动并成功执行应用程序图<a name="fig1341618411997"></a>
![](figures/启动并成功执行应用程序图.png "启动并成功执行应用程序图")
...@@ -438,13 +438,13 @@ ...@@ -438,13 +438,13 @@
![](figures/chuankou1.png) ![](figures/chuankou1.png)
1. 单击**Serial port**打开串口。 1. 单击**Serial port**打开串口。
2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisillicon"。 2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisilicon"。
3. 单板初次启动或修改启动参数,请进入[步骤2](开发Hi3516第一个应用程序示例.md#l5b42e79a33ea4d35982b78a22913b0b1),否则进入[步骤3](开发Hi3516第一个应用程序示例.md#ld26f18828aa44c36bfa36be150e60e49)。 3. 单板初次启动或修改启动参数,请进入[步骤2](开发Hi3516第一个应用程序示例.md#l5b42e79a33ea4d35982b78a22913b0b1),否则进入[步骤3](开发Hi3516第一个应用程序示例.md#ld26f18828aa44c36bfa36be150e60e49)。
2. (单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。 2. (单板初次启动必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,若不修改参数只需执行一次。每次复位单板均会自动进入系统。
>![](public_sys-resources/icon-notice.gif) **须知:** >![](public_sys-resources/icon-notice.gif) **须知:**
>U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisillicon",通过**reset**命令可再次启动系统。 >U-boot引导程序默认会有2秒的等待时间,用户可使用回车打断等待并显示"hisilicon",通过**reset**命令可再次启动系统。
**表 1** U-boot修改命令 **表 1** U-boot修改命令
......
# 开发Hi3518第一个示例程序<a name="ZH-CN_TOPIC_0000001053422339"></a> # 开发Hi3518第一个示例程序<a name="ZH-CN_TOPIC_0000001053422339"></a>
- [修改应用程序](#s8efc1952ebfe4d1ea717182e108c29bb) - [新建应用程序](#section20460103116446)
- [编译](#section234175193114) - [编译](#section234175193114)
- [烧录](#section57955241588) - [烧录](#section57955241588)
- [镜像运行](#section62131033183710) - [镜像运行](#section62131033183710)
- [下一步学习](#section9712145420182) - [下一步学习](#section9712145420182)
本节指导开发者在单板上运行第一个应用程序,其中包括修改应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!” 本节指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
## 修改应用程序<a name="s8efc1952ebfe4d1ea717182e108c29bb"></a> ## 新建应用程序<a name="section20460103116446"></a>
源码applications/sample/camera/app/src目录内helloworld.c代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持ISO C及C++的代码开发。 1. 新建目录及源码
``` 新建**applications/sample/camera/apps/src/helloworld.c**目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
#include <stdio.h>
#include "los_sample.h" ```
#include <stdio.h>
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
printf("\n************************************************\n"); printf("\n************************************************\n");
printf("\n\t\tHello OHOS!\n"); printf("\n\t\tHello OHOS!\n");
printf("\n************************************************\n\n"); printf("\n************************************************\n\n");
LOS_Sample(g_num);
return 0; return 0;
} }
``` ```
2. 新建编译组织文件
新建**applications/sample/camera/apps/BUILD.gn**文件,内容如下所示:
```
import("//build/lite/config/component/lite_component.gni")
lite_component("hello-OHOS") {
features = [ ":helloworld" ]
}
executable("helloworld") {
output_name = "helloworld"
sources = [ "src/helloworld.c" ]
include_dirs = []
defines = []
cflags_c = []
ldflags = []
}
```
3. 添加新组件
修改文件**build/lite/components/applications.json**,添加组件hello\_world\_app的配置,如下所示为applications.json文件片段,"\#\#start\#\#"和"\#\#end\#\#"之间为新增配置("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"//applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/apps"
],
"targets": [
"//applications/sample/camera/apps:hello-OHOS"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
```
4. 修改单板配置文件
修改文件**vendor/hisilicon/hispark\_aries/config.json**,新增hello\_world\_app组件的条目,如下所示代码片段为applications子系统配置,"\#\#start\#\#"和"\#\#end\#\#"之间为新增条目("\#\#start\#\#"和"\#\#end\#\#"仅用来标识位置,添加完配置后删除这两行):
```
{
"subsystem": "applications",
"components": [
##start##
{ "component": "hello_world_app", "features":[] },
##end##
{ "component": "camera_sample_app", "features":[] }
]
},
```
## 编译<a name="section234175193114"></a> ## 编译<a name="section234175193114"></a>
...@@ -45,7 +143,7 @@ hb build -f(执行编译) ...@@ -45,7 +143,7 @@ hb build -f(执行编译)
![](figures/设置图例-2.png "设置图例-2") ![](figures/设置图例-2.png "设置图例-2")
>![](public_sys-resources/icon-notice.gif) **须知:** >![](public_sys-resources/icon-notice.gif) **须知:**
>Hi3518EV300单板的U-boot文件获取路径:vendor\\hisi\\hi35xx\\hi3518ev300\\uboot\\out\\boot\\u-boot-hi3518ev300.bin >Hi3518EV300单板的U-boot文件获取路径:device/hisilicon/hispark\_aries/sdk\_liteos/uboot/out/boot/u-boot-hi3518ev300.bin
## 烧录<a name="section57955241588"></a> ## 烧录<a name="section57955241588"></a>
...@@ -113,7 +211,7 @@ Hi3518开发板的代码烧录仅支持USB烧录方式。 ...@@ -113,7 +211,7 @@ Hi3518开发板的代码烧录仅支持USB烧录方式。
![](figures/chuankou1-6.png) ![](figures/chuankou1-6.png)
1. 单击**Serial port**打开串口。 1. 单击**Serial port**打开串口。
2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisillicon"。 2. 输入串口编号\(按照烧录步骤中查询的串口号,此处以com11举例\),并连续输入回车直到串口显示"hisilicon"。
3. 单板初次启动或修改启动参数,请进入[步骤2](#li9441185382314),否则进入[步骤3](#li6442853122312)。 3. 单板初次启动或修改启动参数,请进入[步骤2](#li9441185382314),否则进入[步骤3](#li6442853122312)。
2. <a name="li9441185382314"></a>(初次烧写必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,但U-boot重新烧入,则需要再次执行下述步骤。 2. <a name="li9441185382314"></a>(初次烧写必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,但U-boot重新烧入,则需要再次执行下述步骤。
...@@ -158,9 +256,9 @@ Hi3518开发板的代码烧录仅支持USB烧录方式。 ...@@ -158,9 +256,9 @@ Hi3518开发板的代码烧录仅支持USB烧录方式。
>![](public_sys-resources/icon-notice.gif) **须知:** >![](public_sys-resources/icon-notice.gif) **须知:**
>**“go 0x40000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。 >**“go 0x40000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。
3. <a name="li6442853122312"></a>若启动时显示**"hisilicon \#**字样,请输入**“reset”**指令,等待系统自启动进入系统,系统启动后,显示**“OHOS”**字样,输入**”./bin/camera\_app”**并回车,显示成功结果如下图所示。 3. <a name="li6442853122312"></a>若启动时显示**"hisilicon \#**字样,请输入**“reset”**指令,等待系统自启动进入系统,系统启动后,显示**“OHOS”**字样,输入**”./bin/helloworld”**并回车,显示成功结果如下图所示。
**图 3** 启动成功并执行应用程序图<a name="fig11838403383"></a> **图 3** 启动成功并执行应用程序图<a name="fig265662981319"></a>
![](figures/启动成功并执行应用程序图.png "启动成功并执行应用程序图") ![](figures/启动成功并执行应用程序图.png "启动成功并执行应用程序图")
......
...@@ -9,16 +9,18 @@ ...@@ -9,16 +9,18 @@
- [安装Linux编译环境(方法一:Docker方式)](#section107932281315) - [安装Linux编译环境(方法一:Docker方式)](#section107932281315)
- [安装Linux编译环境(方法二:安装包方式)](#section497484245614) - [安装Linux编译环境(方法二:安装包方式)](#section497484245614)
- [连接Linux服务器](#section723115618340) - [连接Linux服务器](#section723115618340)
- [将Linux shell改为bash](#section1715027152617) - [安装和配置Python](#section11255767343)
- [安装Python环境](#section11255767343)
- [安装gn](#section9262166183410) - [安装gn](#section9262166183410)
- [安装ninja](#section02645617348) - [安装ninja](#section02645617348)
- [安装LLVM](#section149564754) - [安装LLVM](#section149564754)
- [安装hb](#section6201103143120) - [安装hb](#section6201103143120)
- [获取源码](#section1545225464016) - [获取OpenHarmony源码](#section1545225464016)
- [常见问题](#section19253140111619) - [常见问题](#section19253140111619)
- [hb安装过程中出现乱码、段错误](#section347685141717) - [hb安装过程中出现乱码、段错误](#section347685141717)
- [hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'"](#section1996804118553)
- [hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'"](#section6992181918582)
- [Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”](#section7854153010120)
在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境。系统基础环境搭建分为如下几种方式,请根据实际软硬件情况以及个人喜好选择以下任一方式。 在搭建各个开发板环境前,需要完成OpenHarmony系统基础环境搭建。系统基础环境主要是指OpenHarmony的编译环境和开发环境。系统基础环境搭建分为如下几种方式,请根据实际软硬件情况以及个人喜好选择以下任一方式。
...@@ -130,54 +132,47 @@ Linux服务器通用环境配置需要的工具及其获取途径如下表所示 ...@@ -130,54 +132,47 @@ Linux服务器通用环境配置需要的工具及其获取途径如下表所示
**表 3** Linux服务器开发工具及获取途径 **表 3** Linux服务器开发工具及获取途径
<a name="table6299192712513"></a> <a name="table6299192712513"></a>
<table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="25.562556255625562%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p> <table><thead align="left"><tr id="row122993276512"><th class="cellrowborder" valign="top" width="13.35133513351335%" id="mcps1.2.4.1.1"><p id="p1829914271858"><a name="p1829914271858"></a><a name="p1829914271858"></a>开发工具</p>
</th> </th>
<th class="cellrowborder" valign="top" width="20.7020702070207%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p> <th class="cellrowborder" valign="top" width="19.72197219721972%" id="mcps1.2.4.1.2"><p id="p429918274517"><a name="p429918274517"></a><a name="p429918274517"></a>用途</p>
</th> </th>
<th class="cellrowborder" valign="top" width="53.73537353735374%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p> <th class="cellrowborder" valign="top" width="66.92669266926693%" id="mcps1.2.4.1.3"><p id="p12997271757"><a name="p12997271757"></a><a name="p12997271757"></a>获取途径</p>
</th> </th>
</tr> </tr>
</thead> </thead>
<tbody><tr id="row430016273514"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p330015271158"><a name="p330015271158"></a><a name="p330015271158"></a>Python3.7+</p> <tbody><tr id="row430016273514"><td class="cellrowborder" valign="top" width="13.35133513351335%" headers="mcps1.2.4.1.1 "><p id="p330015271158"><a name="p330015271158"></a><a name="p330015271158"></a>Python3.7+</p>
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p43003270510"><a name="p43003270510"></a><a name="p43003270510"></a>编译构建工具</p> <td class="cellrowborder" valign="top" width="19.72197219721972%" headers="mcps1.2.4.1.2 "><p id="p43003270510"><a name="p43003270510"></a><a name="p43003270510"></a>编译构建工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p18254155164617"><a name="p18254155164617"></a><a name="p18254155164617"></a><a href="https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz" target="_blank" rel="noopener noreferrer">https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz</a></p> <td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.2.4.1.3 "><p id="p34760459518"><a name="p34760459518"></a><a name="p34760459518"></a>通过互联网获取</p>
</td> </td>
</tr> </tr>
<tr id="row42668197206"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p426711912014"><a name="p426711912014"></a><a name="p426711912014"></a>bash</p> <tr id="row1711946154018"><td class="cellrowborder" valign="top" width="13.35133513351335%" headers="mcps1.2.4.1.1 "><p id="p15588165684216"><a name="p15588165684216"></a><a name="p15588165684216"></a>gn</p>
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p14267131962014"><a name="p14267131962014"></a><a name="p14267131962014"></a>命令处理器</p> <td class="cellrowborder" valign="top" width="19.72197219721972%" headers="mcps1.2.4.1.2 "><p id="p4588135634213"><a name="p4588135634213"></a><a name="p4588135634213"></a>产生ninja编译脚本</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p14267101962014"><a name="p14267101962014"></a><a name="p14267101962014"></a>通过互联网获取</p> <td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.2.4.1.3 "><p id="p14131813191712"><a name="p14131813191712"></a><a name="p14131813191712"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz</a></p>
</td> </td>
</tr> </tr>
<tr id="row1711946154018"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p15588165684216"><a name="p15588165684216"></a><a name="p15588165684216"></a>gn</p> <tr id="row16990164213404"><td class="cellrowborder" valign="top" width="13.35133513351335%" headers="mcps1.2.4.1.1 "><p id="p1858825613428"><a name="p1858825613428"></a><a name="p1858825613428"></a>ninja</p>
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p4588135634213"><a name="p4588135634213"></a><a name="p4588135634213"></a>产生ninja编译脚本</p> <td class="cellrowborder" valign="top" width="19.72197219721972%" headers="mcps1.2.4.1.2 "><p id="p15844174611816"><a name="p15844174611816"></a><a name="p15844174611816"></a>执行ninja编译脚本</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p14131813191712"><a name="p14131813191712"></a><a name="p14131813191712"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz</a></p> <td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.2.4.1.3 "><p id="p1923373393515"><a name="p1923373393515"></a><a name="p1923373393515"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar</a></p>
</td> </td>
</tr> </tr>
<tr id="row16990164213404"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p1858825613428"><a name="p1858825613428"></a><a name="p1858825613428"></a>ninja</p> <tr id="row7531362055"><td class="cellrowborder" valign="top" width="13.35133513351335%" headers="mcps1.2.4.1.1 "><p id="p15217227174016"><a name="p15217227174016"></a><a name="p15217227174016"></a>LLVM</p>
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p15844174611816"><a name="p15844174611816"></a><a name="p15844174611816"></a>执行ninja编译脚本</p> <td class="cellrowborder" valign="top" width="19.72197219721972%" headers="mcps1.2.4.1.2 "><p id="p122171727184019"><a name="p122171727184019"></a><a name="p122171727184019"></a>编译工具链</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p1923373393515"><a name="p1923373393515"></a><a name="p1923373393515"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar</a></p> <td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.2.4.1.3 "><p id="p871055810226"><a name="p871055810226"></a><a name="p871055810226"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar</a></p>
</td> </td>
</tr> </tr>
<tr id="row7531362055"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p15217227174016"><a name="p15217227174016"></a><a name="p15217227174016"></a>LLVM</p> <tr id="row1644079184919"><td class="cellrowborder" valign="top" width="13.35133513351335%" headers="mcps1.2.4.1.1 "><p id="p744115914493"><a name="p744115914493"></a><a name="p744115914493"></a>hb</p>
</td> </td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p122171727184019"><a name="p122171727184019"></a><a name="p122171727184019"></a>编译工具链</p> <td class="cellrowborder" valign="top" width="19.72197219721972%" headers="mcps1.2.4.1.2 "><p id="p1244114913492"><a name="p1244114913492"></a><a name="p1244114913492"></a>编译构建命令行工具</p>
</td> </td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p871055810226"><a name="p871055810226"></a><a name="p871055810226"></a><a href="https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar" target="_blank" rel="noopener noreferrer">https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar</a></p> <td class="cellrowborder" valign="top" width="66.92669266926693%" headers="mcps1.2.4.1.3 "><p id="p1463918124619"><a name="p1463918124619"></a><a name="p1463918124619"></a>通过互联网获取</p>
</td>
</tr>
<tr id="row1644079184919"><td class="cellrowborder" valign="top" width="25.562556255625562%" headers="mcps1.2.4.1.1 "><p id="p744115914493"><a name="p744115914493"></a><a name="p744115914493"></a>hb</p>
</td>
<td class="cellrowborder" valign="top" width="20.7020702070207%" headers="mcps1.2.4.1.2 "><p id="p1244114913492"><a name="p1244114913492"></a><a name="p1244114913492"></a>编译构建命令行工具</p>
</td>
<td class="cellrowborder" valign="top" width="53.73537353735374%" headers="mcps1.2.4.1.3 "><p id="p1244120916499"><a name="p1244120916499"></a><a name="p1244120916499"></a>HarmonyOS源码build_lite仓</p>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -218,30 +213,7 @@ Linux编译环境可以通过Docker方式快速安装,具体请参见[Docker ...@@ -218,30 +213,7 @@ Linux编译环境可以通过Docker方式快速安装,具体请参见[Docker
![](figures/登录成功界面.png "登录成功界面") ![](figures/登录成功界面.png "登录成功界面")
### 将Linux shell改为bash<a name="section1715027152617"></a> ### 安装和配置Python<a name="section11255767343"></a>
查看shell是否为bash,在终端运行如下命令
```
ls -l /bin/sh
```
如果显示为“/bin/sh -\> bash”则为正常,否则请按以下方式修改:
**方法一**:在终端运行如下命令,然后选择 no。
```
sudo dpkg-reconfigure dash
```
**方法二**:先删除sh,再创建软链接。
```
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
```
### 安装Python环境<a name="section11255767343"></a>
1. 打开Linux编译服务器终端。 1. 打开Linux编译服务器终端。
2. 输入如下命令,查看python版本号,需使用python3.7以上版本。 2. 输入如下命令,查看python版本号,需使用python3.7以上版本。
...@@ -265,40 +237,33 @@ sudo ln -s /bin/bash /bin/sh ...@@ -265,40 +237,33 @@ sudo ln -s /bin/bash /bin/sh
sudo apt-get install python3.8 sudo apt-get install python3.8
``` ```
- 如果Ubuntu版本为16,请以下载包的方式安装python - 如果Ubuntu版本为16。
1. python安装环境依赖\(gcc, g++, make, zlib, libffi\)请运行如下命令: a. 安装依赖包
``` ```
sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev sudo apt update && sudo apt install software-properties-common
``` ```
1. 获取[python3.8.5安装包](https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz),将其放至linux服务器中,运行如下命令 : b. 添加deadsnakes PPA 源,然后按回车键确认安装。
``` ```
tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure && sudo make && sudo make install sudo add-apt-repository ppa:deadsnakes/ppa
``` ```
c. 安装python3.8
3. 确定python安装好后,将python路径链接到"/usr/bin/python"。
输入如下命令,查看python是否正确软链接到python3.8。
``` ```
python --version sudo apt upgrade && sudo apt install python3.8
``` ```
如果回显不是python 3.8.5,则运行如下命令,查看python3.8所在目录:
```
which python3.8
```
将以下命令中的 "python3.8-path" 替换为 "which python3.8" 命令执行后的回显路径 3. 设置python和python3软链接为python3.8。
``` ```
cd /usr/bin && sudo rm python && sudo rm python3 && sudo ln -s python3.8-path python && sudo ln -s python3.8-path python3 && python3 --version sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
``` ```
4. 安装并升级Python包管理工具(pip3),任选如下一种方式。 4. 安装并升级Python包管理工具(pip3),任选如下一种方式。
...@@ -317,104 +282,6 @@ sudo ln -s /bin/bash /bin/sh ...@@ -317,104 +282,6 @@ sudo ln -s /bin/bash /bin/sh
``` ```
5. 运行如下命令,安装python模块setuptools。
```
pip3 install setuptools
```
6. 安装GUI menuconfig工具(Kconfiglib),建议安装Kconfiglib 13.2.0+版本,任选如下一种方式。
- **命令行方式:**
```
sudo pip3 install kconfiglib
```
- **安装包方式:**
1. 下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/kconfiglib\#files](https://pypi.org/project/kconfiglib#files)”
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
```
7. <a name="li195884268616"></a>安装pycryptodome,任选如下一种方式。
>![](public_sys-resources/icon-notice.gif) **须知:**
>此[步骤7](#li195884268616)\~[步骤9](#li125926111510)仅Hi3861开发板需要安装,Hi3516、Hi3518开发板无需安装。
安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。
- **命令行方式:**
```
sudo pip3 install pycryptodome
```
- **安装包方式:**
1. 下载.whl文件(例如:pycryptodome-3.9.9-cp38-cp38-manylinux1\_x86\_64.whl)。
下载路径:“[https://pypi.org/project/pycryptodome/\#files](https://pypi.org/project/pycryptodome/#files)”。
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install pycryptodome-3.9.9-cp38-cp38-manylinux1_x86_64.whl
```
8. 安装six,任选如下一种方式。
- **命令行方式:**
```
sudo pip3 install six --upgrade --ignore-installed six
```
- **安装包方式:**
1. 下载.whl文件(例如:six-1.12.0-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/six/\#files](https://pypi.org/project/six/#files)”
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install six-1.12.0-py2.py3-none-any.whl
```
9. <a name="li125926111510"></a>安装ecdsa,任选如下一种方式。
- **命令行方式:**
```
sudo pip3 install ecdsa
```
- **安装包方式:**
1. 下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。
下载路径:“[https://pypi.org/project/ecdsa/\#files](https://pypi.org/project/ecdsa/#files)”
1. 运行如下命令,安装.whl文件。
```
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
```
### 安装gn<a name="section9262166183410"></a> ### 安装gn<a name="section9262166183410"></a>
...@@ -513,15 +380,15 @@ sudo ln -s /bin/bash /bin/sh ...@@ -513,15 +380,15 @@ sudo ln -s /bin/bash /bin/sh
**前提条件** **前提条件**
- 请先安装Python 3.7.4及以上,请见[安装Python环境](#section11255767343)步骤1\~4 - 请先安装Python 3.7.4及以上,请见[安装和配置Python](#section11255767343)
- 下载源码,请见[源码获取](../get-code/源码获取.md) - 下载源码,请见[源码获取](../get-code/源码获取.md)
**安装方法** **安装方法**
1. 在源码根目录下执行: 1. 运行如下命令安装hb
``` ```
python3 -m pip install --user build/lite python3 -m pip install --user ohos-build
``` ```
2. 设置环境变量 2. 设置环境变量
...@@ -542,7 +409,7 @@ sudo ln -s /bin/bash /bin/sh ...@@ -542,7 +409,7 @@ sudo ln -s /bin/bash /bin/sh
source ~/.bashrc source ~/.bashrc
``` ```
3. 执行hb -h有相关帮助信息,有打印信息即表示安装成功: 3. 执行"hb -h",有打印以下信息即表示安装成功:
``` ```
usage: hb usage: hb
...@@ -580,7 +447,7 @@ python3 -m pip uninstall ohos-build ...@@ -580,7 +447,7 @@ python3 -m pip uninstall ohos-build
- **现象描述** - **现象描述**
执行“python3 -m pip install --user build/lite”出现乱码、段错误(segmentation fault)。 执行“python3 -m pip install --user ohos-build”出现乱码、段错误(segmentation fault)。
- **可能原因** - **可能原因**
...@@ -596,3 +463,65 @@ python3 -m pip uninstall ohos-build ...@@ -596,3 +463,65 @@ python3 -m pip uninstall ohos-build
``` ```
### hb 安装过程中提示"cannot import 'sysconfig' from 'distutils'"<a name="section1996804118553"></a>
- **现象描述**
执行“python3 -m pip install --user ohos-build”提示"cannot import 'sysconfig' from 'distutils'"
- **可能原因**
缺少distutils模块。
- **解决办法**
执行如下命令安装。
```
sudo apt-get install python3.8-distutils
```
### hb 安装过程中提示"module 'platform' has no attribute 'linux\_distribution'"<a name="section6992181918582"></a>
- **现象描述**
执行“python3 -m pip install --user ohos-build”提示"module 'platform' has no attribute 'linux\_distribution'"
- **可能原因**
python3 pip安装兼容性问题。
- **解决办法**
执行如下命令重新安装pip。
```
sudo apt remove python3-pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
```
### Linux编译服务器终端输入不识别的命令时提示“ImportError: No module named apt\_pkg”<a name="section7854153010120"></a>
- **现象描述**
Linux编译服务器终端输入不识别的命令时,提示"ImportError: No module named apt\_pkg"
- **可能原因**
python3 apt安装兼容性问题。
- **解决办法**
执行如下命令重新安装python3-apt。
```
sudo apt-get remove python3-apt
sduo apt-get install python3-apt
```
...@@ -7,7 +7,7 @@ bootstrap服务启动组件实现了服务的自动初始化,即服务的初 ...@@ -7,7 +7,7 @@ bootstrap服务启动组件实现了服务的自动初始化,即服务的初
zInit段的添加可参考已有的Hi3861平台的链接脚本,文件路径为vendor/hisi/hi3861/hi3861/build/link/link.ld.S。 zInit段的添加可参考已有的Hi3861平台的链接脚本,文件路径为vendor/hisi/hi3861/hi3861/build/link/link.ld.S。
用于实现服务的自动初始化的宏定义接口请参见启动恢复子系统的[API接口文档](https://gitee.com/openharmony/docs/blob/master/api/api-SmartVision-Devices/OHOS-Init.md) 用于实现服务的自动初始化的宏定义接口请参见启动恢复子系统的[API接口文档](https://device.harmonyos.com/cn/docs/develop/apiref/init-0000001054598113)
## 接口说明<a name="section1633115419401"></a> ## 接口说明<a name="section1633115419401"></a>
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
-signAlg:签名算法,当前固定为SHA256withECDSA -signAlg:签名算法,当前固定为SHA256withECDSA
-keystore:公私钥对,使用签名公私钥对,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.jks](https://gitee.com/openharmony/security_services_app_verify/blob/master/OpenHarmonyCer/OpenHarmony.jks)。默认密码为123456 ,用户可采用工具\(例如keytool\)更改默认密码 -keystore:公私钥对,使用签名公私钥对,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.jks](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.jks)。默认密码为123456 ,用户可采用工具\(例如keytool\)更改默认密码
-keystorepasswd:公私钥对密码,默认签名公私钥对密码为123456 -keystorepasswd:公私钥对密码,默认签名公私钥对密码为123456
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
-profile:描述文件,应用的描述文件位于对应源代码目录中 -profile:描述文件,应用的描述文件位于对应源代码目录中
-certpath:使用签名证书,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.cer](https://gitee.com/openharmony/security_services_app_verify/blob/master/OpenHarmonyCer/OpenHarmony.cer) -certpath:使用签名证书,位于开源库security\_services\_app\_verify仓中OpenHarmonyCer目录下,[OpenHarmony.cer](https://gitee.com/openharmony/security_appverify/blob/master/interfaces/innerkits/appverify_lite/OpenHarmonyCer/OpenHarmony.cer)
-profileSigned:签名块中是否包含描述文件\(profile\)。固定为1(包含) -profileSigned:签名块中是否包含描述文件\(profile\)。固定为1(包含)
......
# 开发实例<a name="ZH-CN_TOPIC_0000001061399563"></a> # 开发实例<a name="ZH-CN_TOPIC_0000001061399563"></a>
开发实例可参考[开源项目中的示例](https://gitee.com/openharmony/aafwk_frameworks_kits_ability_lite/tree/master/example) 开发实例可参考[开源项目中的示例](https://gitee.com/openharmony/aafwk_aafwk_lite/tree/master/frameworks/ability_lite/example)
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
当前用户对riscv编译器路径下的文件访问权限不够。 当前用户对riscv编译器路径下的文件访问权限不够。
-**解决办法:** -**解决办法:**
1. 查询hcc\_riscv32所在目录。 1. 查询gcc\_riscv32所在目录。
``` ```
which riscv32-unknown-elf-gcc which riscv32-unknown-elf-gcc
......
...@@ -15,7 +15,6 @@ build/lite # 编译构建主目录 ...@@ -15,7 +15,6 @@ build/lite # 编译构建主目录
│ ├── kernel # 内核的编译配置参数 │ ├── kernel # 内核的编译配置参数
│ └── subsystem # 子系统模板 │ └── subsystem # 子系统模板
├── ndk # NDK相关编译脚本与配置参数 ├── ndk # NDK相关编译脚本与配置参数
├── product # 产品全量配置表,包括:配置单元、子系统列表、编译器等。
└── toolchain # 编译工具链相关,包括:编译器路径、编译选项、链接选项等。 └── toolchain # 编译工具链相关,包括:编译器路径、编译选项、链接选项等。
``` ```
......
...@@ -102,17 +102,16 @@ ...@@ -102,17 +102,16 @@
build a specified product with build a specified product with
{product_name}@{company}, eg: ipcamera@hisilcon {product_name}@{company}, eg: ipcamera@hisilcon
-f, --full full code compilation -f, --full full code compilation
-n, --ndk compile ndk
``` ```
- hb build后无参数,会按照设置好的代码路径、产品进行编译,编译选项使用与之前保持一致。 - hb build后无参数,会按照设置好的代码路径、产品进行编译,编译选项使用与之前保持一致。-f 选项将删除当前产品所有编译产品,等同于hb clean + hb build.
- hb build \{component\_name\}:基于设置好的产品对应的单板、内核,单独编译组件(e.g.:hb build kv\_store\)。 - hb build \{component\_name\}:基于设置好的产品对应的单板、内核,单独编译组件(e.g.:hb build kv\_store\)。
- hb build -p ipcamera@hisilicon:免set编译产品,该命令可以跳过set步骤,直接编译产品。 - hb build -p ipcamera@hisilicon:免set编译产品,该命令可以跳过set步骤,直接编译产品。
- 在device/device\_company/board下单独执行hb build会进入内核选择界面,选择完成后会根据当前路径的单板、选择的内核编译出仅包含内核、驱动的镜像。 - 在device/device\_company/board下单独执行hb build会进入内核选择界面,选择完成后会根据当前路径的单板、选择的内核编译出仅包含内核、驱动的镜像。
4. **hb clean** 4. **hb clean**
清除out目录对应产品的编译产物,仅剩下args.gn、build.log。清除指定路径可输入路径参数:hb clean xxx/out/xxx,否则将清除hb set的产品对应out路径。 清除out目录对应产品的编译产物,仅保留args.gn、build.log。清除指定路径可输入路径参数:hb clean xxx/out/xxx,否则将清除hb set的产品对应out路径。
``` ```
......
...@@ -101,7 +101,9 @@ startAbility(want); // 按照Want启动指定FA,want参数命名以实际开 ...@@ -101,7 +101,9 @@ startAbility(want); // 按照Want启动指定FA,want参数命名以实际开
## 涉及组件<a name="section176111311166"></a> ## 涉及组件<a name="section176111311166"></a>
[分布式任务调度组件](https://gitee.com/openharmony/docs/blob/master/readme/distributedschedule/dmslite.md) [dms_fwk_lite](https://gitee.com/openharmony/distributedschedule_dms_fwk_lite/blob/master/README_zh.md)
[系统服务框架组件](https://gitee.com/openharmony/docs/blob/master/readme/distributedschedule/samgrlite.md) [samgr_lite](https://gitee.com/openharmony/distributedschedule_samgr_lite/blob/master/README_zh.md)
[safwk_lite](https://gitee.com/openharmony/distributedschedule_safwk_lite/blob/master/README_zh.md)
...@@ -38,23 +38,25 @@ ...@@ -38,23 +38,25 @@
1. **设备发现** 1. **设备发现**
用户使用发现功能时,需要保证发现端设备与被发现端设备在同一个局域网内,并且互相能收到对方以下流程的报文。 用户使用发现功能时,需要保证发现端设备与被发现端设备在同一个局域网内,并且互相能收到对方以下流程的报文。
(1)发现端设备,发起discover请求后,使用coap协议在局域网内发送广播。 (1)发现端设备,发起discover请求后,使用coap协议在局域网内发送广播。
(2)被发现端设备使用PublishService接口发布服务,接收端收到广播后,发送coap协议单播给发现端。 (2)被发现端设备使用PublishService接口发布服务,接收端收到广播后,发送coap协议单播给发现端。
(3)发现端设备收到报文会更新设备信息。 (3)发现端设备收到报文会更新设备信息。
**2. 传输** 2. **传输**
软总线提供统一的基于Session的传输功能,业务可以通过sessionId收发数据或获取其相关基本属性。当前本项目只实现被动接收Session连接的功能,业务可根据自身需要及Session自身属性判断是否接受此Session,如不接受,可以主动拒绝此连接。本项目暂未提供打开Session的相关能力。 软总线提供统一的基于Session的传输功能,业务可以通过sessionId收发数据或获取其相关基本属性。当前本项目只实现被动接收Session连接的功能,业务可根据自身需要及Session自身属性判断是否接受此Session,如不接受,可以主动拒绝此连接。本项目暂未提供打开Session的相关能力。
## 涉及仓<a name="section4499619123117"></a> ## 涉及仓<a name="section4499619123117"></a>
communication\_softbus\_lite **分布式软总线子系统**
communication\_ipc\_lite [communication\_softbus\_lite](https://gitee.com/openharmony/communication_softbus_lite/blob/master/README_zh.md)
communication\_wifi\_aware [communication\_ipc\_lite](https://gitee.com/openharmony/communication_ipc_lite/blob/master/README_zh.md)
[communication\_wifi\_aware](https://gitee.com/openharmony/communication_wifi_aware/blob/master/README_zh.md)
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
**用户程序框架子系统** **用户程序框架子系统**
[aafwk\_\aafwk\_lite](https://gitee.com/openharmony/aafwk_aafwk_lite/blob/master/README_zh.md) [aafwk\_aafwk\_lite](https://gitee.com/openharmony/aafwk_aafwk_lite/blob/master/README_zh.md)
[appexecfwk\_appexecfwk\_lite](https://gitee.com/openharmony/appexecfwk_appexecfwk_lite/blob/master/README_zh.md) [appexecfwk\_appexecfwk\_lite](https://gitee.com/openharmony/appexecfwk_appexecfwk_lite/blob/master/README_zh.md)
# 轻量级电源管理子系统<a name="ZH-CN_TOPIC_0000001083440980"></a> # 电源管理子系统<a name="ZH-CN_TOPIC_0000001083440980"></a>
- [简介](#section11660541593) - [简介](#section11660541593)
- [目录](#section19472752217) - [目录](#section19472752217)
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
## 简介<a name="section11660541593"></a> ## 简介<a name="section11660541593"></a>
轻量级电源子系统提供如下功能: 电源子系统提供如下功能:
1. 电池电量查询。 1. 电池电量查询。
2. 亮灭屏控制锁。 2. 亮灭屏控制锁。
**图 1** 轻量级电源管理子系统架构图<a name="fig106301571239"></a> **图 1** 电源管理子系统架构图<a name="fig106301571239"></a>
![](figures/zh-cn_image_0000001130297625.png) ![](figures/zh-cn_image_0000001130297625.png)
...@@ -30,5 +30,4 @@ base/powermgr/powermgr_lite ...@@ -30,5 +30,4 @@ base/powermgr/powermgr_lite
## 相关仓<a name="section63151229062"></a> ## 相关仓<a name="section63151229062"></a>
**hmf/powermgr/powermgr\_lite** [**powermgr_powermgr_lite**](https://gitee.com/openharmony/powermgr_powermgr_lite)
# OpenHarmony 1.0.1(2021-03-15)<a name="ZH-CN_TOPIC_0000001125880475"></a>
- [版本概述](#section1677664815431)
- [内核](#section11256141314463)
- [新增特性](#section1834713384464)
- [修改特性](#section6894155811483)
- [泛Sensor](#section457103914819)
- [新增特性](#section1157114391480)
- [全球化](#section13453154420488)
- [新增特性](#section7453174417481)
- [JS应用开发框架](#section146946144818)
- [新增特性](#section16654654819)
- [修改特性](#section16114654811)
- [删除特性](#section7634619486)
- [测试](#section5857174710485)
- [新增特性](#section4857247154819)
- [图形](#section116345457492)
- [新增特性](#section526413158501)
- [修改特性](#section112652156501)
- [公共基础](#section981315393543)
- [新增特性](#section168131939145418)
- [驱动](#section1793134012548)
- [新增特性](#section69313406541)
- [修改特性](#section10931340175420)
- [分布式通信](#section11286194113540)
- [新增特性](#section14286104112546)
- [安全](#section4535841205411)
- [新增特性](#section35351941175420)
- [AI子系统](#section11847124175419)
- [新增特性](#section148472413546)
- [升级服务](#section09814210543)
- [新增特性](#section7981542105417)
- [XTS认证](#section429384295416)
- [新增特性](#section929316426547)
- [修改特性](#section829419420543)
- [编译构建](#section104691342105411)
- [新增特性](#section34699428546)
- [修改特性](#section946974210546)
- [电源管理](#section13166639141617)
- [新增特性](#section313912368292)
- [组件仓优化](#section13139145855718)
## 版本概述<a name="section1677664815431"></a>
OpenHarmony1.0.1扩充组件能力,新增AI子系统、电源管理子系统、泛Sensor子系统、升级子系统。OpenHarmony有了统一AI引擎框架。liteos-m内核完成三方可移植性重构。驱动子系统完善了WIFI、Sensor、Input、Display的驱动模型。图形子系统针对UI能力及JS框架性能和内存得到优化。同时对目录结构及组件仓做了大幅优化。
## 内核<a name="section11256141314463"></a>
### 新增特性<a name="section1834713384464"></a>
- LiteOS-M支持Cortex-M7、Cortex-M33和RISC-V芯片架构,新增对应的单板target样例。
- LiteOS-M支持MPU功能。
- LiteOS-M支持部分POSIX接口。
- LiteOS-M支持FatFS文件系统。
- LiteOS-M支持异常回调函数注册机制。
- LiteOS-M三方芯片易适配性架构调整。
- LiteOS-M、LiteOS-A支持堆内存调测功能,包括内存泄漏、踩内存、内存统计。
- LiteOS-M、LiteOS-A支持TLSF堆内存算法,提高内存申请和释放效率,降低碎片率。
### 修改特性<a name="section6894155811483"></a>
- LiteOS-A调度优化。
## 泛Sensor<a name="section457103914819"></a>
### 新增特性<a name="section1157114391480"></a>
- 新增Sensor组件,提供了Sensor列表查询、Sensor启停、Sensor订阅/去订阅、设置数据上报模式、设置采样间隔等功能。
## 全球化<a name="section13453154420488"></a>
### 新增特性<a name="section7453174417481"></a>
- 新增79种语言的数字格式化、日期和时间格式化、单复数C/C++国际化接口。
## JS应用开发框架<a name="section146946144818"></a>
### 新增特性<a name="section16654654819"></a>
- 新增JS前端opacity全局属性支持。
- 新增prompt.showDialog API。
- 新增二维码组件qrcode。
- 新增事件冒泡机制。
### 修改特性<a name="section16114654811"></a>
- 国际化性能优化,加速页面跳转,支持数字国际化及时间日期转换。
- 前端布局能力增强,部分样式值支持设置百分比。
- input及switch组件尺寸自适应能力增强。
- image组件能力增强,支持显示应用私有数据目录图片。
- image-animator组件能力增强,支持结束帧指定。
- canvas组件能力增强,新增部分API。
- device.getInfo API增强,新增部分返回字段。
- DFX能力增强,支持跟踪异常的方法栈。
### 删除特性<a name="section7634619486"></a>
- 国际化功能不再支持回溯特性。
## 测试<a name="section5857174710485"></a>
### 新增特性<a name="section4857247154819"></a>
- 新增测试工具按照用例级别筛选要执行的测试用例。
- 新增测试demo用例。
## 图形<a name="section116345457492"></a>
### 新增特性<a name="section526413158501"></a>
- 新增组件级旋转缩放、组件级透明度。
- 新增事件冒泡机制,新增旋转表冠事件。
- 新增GIF图片解析显示,新增百分比宽高布局,新增Video和二维码控件。
### 修改特性<a name="section112652156501"></a>
- 局部渲染和SIMD性能优化。
## 公共基础<a name="section981315393543"></a>
### 新增特性<a name="section168131939145418"></a>
- 新增dump系统属性功能。
- 为上层各模块新增内存池管理接口。
## 驱动<a name="section1793134012548"></a>
### 新增特性<a name="section69313406541"></a>
- 新增sensor、input、display驱动模型。
- 新增mipi dsi以及pwm(脉冲宽度调制)。
- 新增WIFI HDI接口以及WIFI的流控。
- 新增驱动框架IO服务分组特性。
### 修改特性<a name="section10931340175420"></a>
- 优化驱动加载流程,支持分段加载。
## 分布式通信<a name="section11286194113540"></a>
### 新增特性<a name="section14286104112546"></a>
- 新增WiFi Aware特性模块。
- IPC新增对非对齐序列化的支持。
## 安全<a name="section4535841205411"></a>
### 新增特性<a name="section35351941175420"></a>
- 新增HUKS提供SHA256/RSA3072/RSA2048/AES128/ECC安全算法以及接口,以及提供密钥管理和存储能力。
- HiChain提供轻量非账号的轻量级组件,用于设备群组管理和认证,支撑软总线通讯安全;提供API给系统服务与应用。
- 权限管理新增统一的权限管理机制,满足轻量设备权限授权需求。
## AI子系统<a name="section11847124175419"></a>
### 新增特性<a name="section148472413546"></a>
- 新增统一的AI引擎框架,实现算法能力快速插件化集成。框架中主要包含插件管理、模块管理和通信管理等模块,对AI算法能力进行生命周期管理和按需部署
- 为开发者提供开发指南,并提供2个基于AI引擎框架开发的AI能力插件和对应的AI应用Sample,方便开发者在AI引擎框架中快速集成AI算法能力。
## 升级服务<a name="section09814210543"></a>
### 新增特性<a name="section7981542105417"></a>
- 新增轻量级设备升级能力框架,框架包括升级包的效验和解析能力,以及安装的接口,统一轻设备升级能力框架。
## XTS认证<a name="section429384295416"></a>
### 新增特性<a name="section929316426547"></a>
- 增加AI、DFX、global、OTA兼容性测试用例。
### 修改特性<a name="section829419420543"></a>
- 应用程序框架、公共通信、分布式任务调度、IOT、内核等测试能力增强。
## 编译构建<a name="section104691342105411"></a>
### 新增特性<a name="section34699428546"></a>
- 新增命令行工具hb, 采用hb set和hb build方式构建,并支持在源码目录下及任意子目录下构建。
- 支持独立芯片厂商组件。
- 支持使用组件名单独构建组件。
- 支持按开发板自定义编译工具链和编译选项。
### 修改特性<a name="section946974210546"></a>
- 产品配置与build\_lite仓解耦,修改为“vendor/解决方案厂商/产品/config.json”。
## 电源管理<a name="section13166639141617"></a>
### 新增特性<a name="section313912368292"></a>
- 电量查询功能。
- 亮屏锁管理功能及接口。
## 组件仓优化<a name="section13139145855718"></a>
<a name="table135021051501"></a>
<table><thead align="left"><tr id="row128991056015"><th class="cellrowborder" valign="top" width="34%" id="mcps1.1.4.1.1"><p id="p78991551504"><a name="p78991551504"></a><a name="p78991551504"></a>OpenHarmony1.0</p>
</th>
<th class="cellrowborder" valign="top" width="32.79%" id="mcps1.1.4.1.2"><p id="p11899135701"><a name="p11899135701"></a><a name="p11899135701"></a>OpenHarmony1.0 .1</p>
</th>
<th class="cellrowborder" valign="top" width="33.21%" id="mcps1.1.4.1.3"><p id="p20899554011"><a name="p20899554011"></a><a name="p20899554011"></a>优化方式</p>
</th>
</tr>
</thead>
<tbody><tr id="row18991355019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p38991651802"><a name="p38991651802"></a><a name="p38991651802"></a>ace_lite_jsfwk</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p28991051202"><a name="p28991051202"></a><a name="p28991051202"></a>ace_engine_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4899851503"><a name="p4899851503"></a><a name="p4899851503"></a>仓名变更</p>
</td>
</tr>
<tr id="row38991351015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1989910515019"><a name="p1989910515019"></a><a name="p1989910515019"></a>ace_interfaces_innerkits_builtin</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p48991551507"><a name="p48991551507"></a><a name="p48991551507"></a>只读归档</p>
</td>
</tr>
<tr id="row16899454019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p2899351009"><a name="p2899351009"></a><a name="p2899351009"></a>ai_engine</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p58991256010"><a name="p58991256010"></a><a name="p58991256010"></a>新增组件</p>
</td>
</tr>
<tr id="row14899155409"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1789916520011"><a name="p1789916520011"></a><a name="p1789916520011"></a>hiviewdfx_frameworks_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p9899551909"><a name="p9899551909"></a><a name="p9899551909"></a>hiviewdfx_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18991851203"><a name="p18991851203"></a><a name="p18991851203"></a>仓名变更</p>
</td>
</tr>
<tr id="row789911515019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p4900651807"><a name="p4900651807"></a><a name="p4900651807"></a>hiviewdfx_frameworks_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1900151503"><a name="p1900151503"></a><a name="p1900151503"></a>hiviewdfx_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19001258015"><a name="p19001258015"></a><a name="p19001258015"></a>仓名变更</p>
</td>
</tr>
<tr id="row090015516018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p189001351400"><a name="p189001351400"></a><a name="p189001351400"></a>hiviewdfx_utils_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p89001953019"><a name="p89001953019"></a><a name="p89001953019"></a>hiviewdfx_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89007519012"><a name="p89007519012"></a><a name="p89007519012"></a>仓名变更</p>
</td>
</tr>
<tr id="row8900351206"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p18900185100"><a name="p18900185100"></a><a name="p18900185100"></a>hiviewdfx_frameworks_ddrdump_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490018511020"><a name="p1490018511020"></a><a name="p1490018511020"></a>只读归档</p>
</td>
</tr>
<tr id="row169001451604"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p179001854019"><a name="p179001854019"></a><a name="p179001854019"></a>hiviewdfx_interfaces_innerkits_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p390011512017"><a name="p390011512017"></a><a name="p390011512017"></a>只读归档</p>
</td>
</tr>
<tr id="row1990015602"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p129001151404"><a name="p129001151404"></a><a name="p129001151404"></a>hiviewdfx_interfaces_innerkits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p590025106"><a name="p590025106"></a><a name="p590025106"></a>只读归档</p>
</td>
</tr>
<tr id="row09002051508"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p390095603"><a name="p390095603"></a><a name="p390095603"></a>hiviewdfx_interfaces_kits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390025504"><a name="p1390025504"></a><a name="p1390025504"></a>只读归档</p>
</td>
</tr>
<tr id="row1900454019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p690013514012"><a name="p690013514012"></a><a name="p690013514012"></a>hiviewdfx_interfaces_kits_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15900956013"><a name="p15900956013"></a><a name="p15900956013"></a>只读归档</p>
</td>
</tr>
<tr id="row13900951602"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p18900051106"><a name="p18900051106"></a><a name="p18900051106"></a>hiviewdfx_services_hilogcat_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p12900155602"><a name="p12900155602"></a><a name="p12900155602"></a>只读归档</p>
</td>
</tr>
<tr id="row59001951809"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1190095906"><a name="p1190095906"></a><a name="p1190095906"></a>hiviewdfx_services_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69001951103"><a name="p69001951103"></a><a name="p69001951103"></a>只读归档</p>
</td>
</tr>
<tr id="row149001453013"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p179001152013"><a name="p179001152013"></a><a name="p179001152013"></a>iothardware_hals_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2901859018"><a name="p2901859018"></a><a name="p2901859018"></a>只读归档</p>
</td>
</tr>
<tr id="row199011654015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1490115301"><a name="p1490115301"></a><a name="p1490115301"></a>iothardware_interfaces_kits_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7901653019"><a name="p7901653019"></a><a name="p7901653019"></a>只读归档</p>
</td>
</tr>
<tr id="row2090125101"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p190117513010"><a name="p190117513010"></a><a name="p190117513010"></a>iothardware_frameworks_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p189011351501"><a name="p189011351501"></a><a name="p189011351501"></a>iothardware_peripheral</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1190119515013"><a name="p1190119515013"></a><a name="p1190119515013"></a>仓名变更</p>
</td>
</tr>
<tr id="row5901175902"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p109011755019"><a name="p109011755019"></a><a name="p109011755019"></a>applications_camera_sample_communication</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p209011455011"><a name="p209011455011"></a><a name="p209011455011"></a>新增组件</p>
</td>
</tr>
<tr id="row12901251206"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p12901051000"><a name="p12901051000"></a><a name="p12901051000"></a>applications_camera_screensaver_app</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15901758014"><a name="p15901758014"></a><a name="p15901758014"></a>新增组件</p>
</td>
</tr>
<tr id="row79011551003"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1090111513011"><a name="p1090111513011"></a><a name="p1090111513011"></a>sensors_miscdevice_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19011152018"><a name="p19011152018"></a><a name="p19011152018"></a>新增组件</p>
</td>
</tr>
<tr id="row18901751205"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p7901051301"><a name="p7901051301"></a><a name="p7901051301"></a>sensors_sensor_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7901252014"><a name="p7901252014"></a><a name="p7901252014"></a>新增组件</p>
</td>
</tr>
<tr id="row1990114512019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p10901135405"><a name="p10901135405"></a><a name="p10901135405"></a>xts_tools_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p16901551807"><a name="p16901551807"></a><a name="p16901551807"></a>xts_tools</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p169011451706"><a name="p169011451706"></a><a name="p169011451706"></a>仓名变更</p>
</td>
</tr>
<tr id="row49019510016"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p390113517013"><a name="p390113517013"></a><a name="p390113517013"></a>security_services_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p590112515010"><a name="p590112515010"></a><a name="p590112515010"></a>security_permission</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p179011251300"><a name="p179011251300"></a><a name="p179011251300"></a>仓名变更</p>
</td>
</tr>
<tr id="row1190120511014"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p29021551601"><a name="p29021551601"></a><a name="p29021551601"></a>security_interfaces_innerkits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99021751009"><a name="p99021751009"></a><a name="p99021751009"></a>只读归档</p>
</td>
</tr>
<tr id="row15902153011"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1390216512012"><a name="p1390216512012"></a><a name="p1390216512012"></a>security_interfaces_kits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p189021551008"><a name="p189021551008"></a><a name="p189021551008"></a>只读归档</p>
</td>
</tr>
<tr id="row5902757019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p3902750014"><a name="p3902750014"></a><a name="p3902750014"></a>security_services_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p89021451008"><a name="p89021451008"></a><a name="p89021451008"></a>security_itrustee_ree_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p790295805"><a name="p790295805"></a><a name="p790295805"></a>仓名变更</p>
</td>
</tr>
<tr id="row13902158011"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p15902185306"><a name="p15902185306"></a><a name="p15902185306"></a>security_interfaces_innerkits_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18902459015"><a name="p18902459015"></a><a name="p18902459015"></a>只读归档</p>
</td>
</tr>
<tr id="row2902651507"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p2090295504"><a name="p2090295504"></a><a name="p2090295504"></a>security_frameworks_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4902252003"><a name="p4902252003"></a><a name="p4902252003"></a>只读归档</p>
</td>
</tr>
<tr id="row12902115409"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p390214518017"><a name="p390214518017"></a><a name="p390214518017"></a>security_services_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p159021851709"><a name="p159021851709"></a><a name="p159021851709"></a>security_appverify</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p209021751609"><a name="p209021751609"></a><a name="p209021751609"></a>仓名变更</p>
</td>
</tr>
<tr id="row790215515011"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p17902165204"><a name="p17902165204"></a><a name="p17902165204"></a>security_interfaces_innerkits_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p3902145906"><a name="p3902145906"></a><a name="p3902145906"></a>只读归档</p>
</td>
</tr>
<tr id="row189021251020"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p39021051909"><a name="p39021051909"></a><a name="p39021051909"></a>security_services_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p99021551601"><a name="p99021551601"></a><a name="p99021551601"></a>security_deviceauth</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4902755017"><a name="p4902755017"></a><a name="p4902755017"></a>仓名变更</p>
</td>
</tr>
<tr id="row69024513016"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p11902151703"><a name="p11902151703"></a><a name="p11902151703"></a>security_interfaces_innerkits_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16902135004"><a name="p16902135004"></a><a name="p16902135004"></a>只读归档</p>
</td>
</tr>
<tr id="row7902751304"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p290217510010"><a name="p290217510010"></a><a name="p290217510010"></a>security_services_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p129030517016"><a name="p129030517016"></a><a name="p129030517016"></a>security_huks</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1590311518017"><a name="p1590311518017"></a><a name="p1590311518017"></a>仓名变更</p>
</td>
</tr>
<tr id="row39036518019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p49031354014"><a name="p49031354014"></a><a name="p49031354014"></a>security_interfaces_innerkits_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p159031151900"><a name="p159031151900"></a><a name="p159031151900"></a>只读归档</p>
</td>
</tr>
<tr id="row11903951002"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p119032510018"><a name="p119032510018"></a><a name="p119032510018"></a>security_frameworks_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99031516017"><a name="p99031516017"></a><a name="p99031516017"></a>只读归档</p>
</td>
</tr>
<tr id="row179032052011"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p4903155907"><a name="p4903155907"></a><a name="p4903155907"></a>security_interfaces_innerkits_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39031451709"><a name="p39031451709"></a><a name="p39031451709"></a>只读归档</p>
</td>
</tr>
<tr id="row790305404"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p13903756014"><a name="p13903756014"></a><a name="p13903756014"></a>signcenter_tool</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090355800"><a name="p2090355800"></a><a name="p2090355800"></a>新增组件</p>
</td>
</tr>
<tr id="row14903155009"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p12903155709"><a name="p12903155709"></a><a name="p12903155709"></a>third_party_cryptsetup</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390315517010"><a name="p1390315517010"></a><a name="p1390315517010"></a>新增组件</p>
</td>
</tr>
<tr id="row1290315709"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1903951609"><a name="p1903951609"></a><a name="p1903951609"></a>third_party_JSON-C</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18903851808"><a name="p18903851808"></a><a name="p18903851808"></a>新增组件</p>
</td>
</tr>
<tr id="row169031550016"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1090318516019"><a name="p1090318516019"></a><a name="p1090318516019"></a>third_party_libuuid</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090313517013"><a name="p2090313517013"></a><a name="p2090313517013"></a>新增组件</p>
</td>
</tr>
<tr id="row1290305509"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p139031053012"><a name="p139031053012"></a><a name="p139031053012"></a>third_party_LVM2</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p119039519019"><a name="p119039519019"></a><a name="p119039519019"></a>新增组件</p>
</td>
</tr>
<tr id="row189031351503"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p16904652008"><a name="p16904652008"></a><a name="p16904652008"></a>third_party_popt</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p690417513011"><a name="p690417513011"></a><a name="p690417513011"></a>新增组件</p>
</td>
</tr>
<tr id="row13904135302"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p390410516020"><a name="p390410516020"></a><a name="p390410516020"></a>communication_interfaces_kits_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490425305"><a name="p1490425305"></a><a name="p1490425305"></a>只读归档</p>
</td>
</tr>
<tr id="row59041451107"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p13904145808"><a name="p13904145808"></a><a name="p13904145808"></a>communication_frameworks_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p99045513014"><a name="p99045513014"></a><a name="p99045513014"></a>只读归档</p>
</td>
</tr>
<tr id="row179049518012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p13904751702"><a name="p13904751702"></a><a name="p13904751702"></a>communication_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p390410514013"><a name="p390410514013"></a><a name="p390410514013"></a>新增组件</p>
</td>
</tr>
<tr id="row890412510020"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p99046513011"><a name="p99046513011"></a><a name="p99046513011"></a>powermgr_powermgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1990445707"><a name="p1990445707"></a><a name="p1990445707"></a>新增组件</p>
</td>
</tr>
<tr id="row1390495903"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1390405403"><a name="p1390405403"></a><a name="p1390405403"></a>distributedschedule_services_dtbschedmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p18904359010"><a name="p18904359010"></a><a name="p18904359010"></a>distributedschedule_dms_fwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59041515012"><a name="p59041515012"></a><a name="p59041515012"></a>仓名变更</p>
</td>
</tr>
<tr id="row89041511017"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p4904185205"><a name="p4904185205"></a><a name="p4904185205"></a>distributedschedule_services_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p169041051601"><a name="p169041051601"></a><a name="p169041051601"></a>distributedschedule_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16904558011"><a name="p16904558011"></a><a name="p16904558011"></a>仓名变更</p>
</td>
</tr>
<tr id="row129041051309"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1990418519016"><a name="p1990418519016"></a><a name="p1990418519016"></a>distributedschedule_services_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p7904451500"><a name="p7904451500"></a><a name="p7904451500"></a>distributedschedule_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69041515016"><a name="p69041515016"></a><a name="p69041515016"></a>仓名变更</p>
</td>
</tr>
<tr id="row29041654012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p6904251409"><a name="p6904251409"></a><a name="p6904251409"></a>distributedschedule_interfaces_innerkits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p49054519014"><a name="p49054519014"></a><a name="p49054519014"></a>只读归档</p>
</td>
</tr>
<tr id="row490519515016"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1590518513015"><a name="p1590518513015"></a><a name="p1590518513015"></a>distributedschedule_interfaces_kits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p590512516020"><a name="p590512516020"></a><a name="p590512516020"></a>只读归档</p>
</td>
</tr>
<tr id="row390515106"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p189051352019"><a name="p189051352019"></a><a name="p189051352019"></a>multimedia_frameworks_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p13905651405"><a name="p13905651405"></a><a name="p13905651405"></a>multimedia_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1390511520013"><a name="p1390511520013"></a><a name="p1390511520013"></a>仓名变更</p>
</td>
</tr>
<tr id="row29051051303"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p2090535308"><a name="p2090535308"></a><a name="p2090535308"></a>multimedia_frameworks_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p6905753013"><a name="p6905753013"></a><a name="p6905753013"></a>multimedia_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2090510511013"><a name="p2090510511013"></a><a name="p2090510511013"></a>仓名变更</p>
</td>
</tr>
<tr id="row1890565703"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p69051651509"><a name="p69051651509"></a><a name="p69051651509"></a>multimedia_frameworks_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p89051758015"><a name="p89051758015"></a><a name="p89051758015"></a>multimedia_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p109052513016"><a name="p109052513016"></a><a name="p109052513016"></a>仓名变更</p>
</td>
</tr>
<tr id="row19051050015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p139051156020"><a name="p139051156020"></a><a name="p139051156020"></a>multimedia_hals_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1190555805"><a name="p1190555805"></a><a name="p1190555805"></a>只读归档</p>
</td>
</tr>
<tr id="row15905451704"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p20905651702"><a name="p20905651702"></a><a name="p20905651702"></a>multimedia_frameworks_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39051251013"><a name="p39051251013"></a><a name="p39051251013"></a>只读归档</p>
</td>
</tr>
<tr id="row209051950012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p159051559016"><a name="p159051559016"></a><a name="p159051559016"></a>multimedia_interfaces_kits_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p129051653013"><a name="p129051653013"></a><a name="p129051653013"></a>只读归档</p>
</td>
</tr>
<tr id="row7905851019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p109054519019"><a name="p109054519019"></a><a name="p109054519019"></a>multimedia_interfaces_kits_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79063518015"><a name="p79063518015"></a><a name="p79063518015"></a>只读归档</p>
</td>
</tr>
<tr id="row79061552006"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p59062516015"><a name="p59062516015"></a><a name="p59062516015"></a>multimedia_interfaces_kits_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p5906195601"><a name="p5906195601"></a><a name="p5906195601"></a>只读归档</p>
</td>
</tr>
<tr id="row9906651205"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1190613512010"><a name="p1190613512010"></a><a name="p1190613512010"></a>multimedia_interfaces_kits_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19061551016"><a name="p19061551016"></a><a name="p19061551016"></a>只读归档</p>
</td>
</tr>
<tr id="row32651402491"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p15265194016496"><a name="p15265194016496"></a><a name="p15265194016496"></a>multimedia_services_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4377165314916"><a name="p4377165314916"></a><a name="p4377165314916"></a>只读归档</p>
</td>
</tr>
<tr id="row19061253012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p6906651108"><a name="p6906651108"></a><a name="p6906651108"></a>kernel_liteos_a_huawei_proprietary_fs_proc</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p190635804"><a name="p190635804"></a><a name="p190635804"></a>只读归档</p>
</td>
</tr>
<tr id="row09064517018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p109061459014"><a name="p109061459014"></a><a name="p109061459014"></a>third_party_mksh</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p7906257017"><a name="p7906257017"></a><a name="p7906257017"></a>新增组件</p>
</td>
</tr>
<tr id="row690635003"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p9906551104"><a name="p9906551104"></a><a name="p9906551104"></a>third_party_optimized_routines</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1690655209"><a name="p1690655209"></a><a name="p1690655209"></a>新增组件</p>
</td>
</tr>
<tr id="row4906951707"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1290685708"><a name="p1290685708"></a><a name="p1290685708"></a>third_party_toybox</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19062051309"><a name="p19062051309"></a><a name="p19062051309"></a>新增组件</p>
</td>
</tr>
<tr id="row15906451400"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p990625604"><a name="p990625604"></a><a name="p990625604"></a>vendor_huawei_camera</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p129061251702"><a name="p129061251702"></a><a name="p129061251702"></a>只读归档</p>
</td>
</tr>
<tr id="row1490614514010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1190655105"><a name="p1190655105"></a><a name="p1190655105"></a>vendor_huawei_wifi_iot</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p149071354015"><a name="p149071354015"></a><a name="p149071354015"></a>只读归档</p>
</td>
</tr>
<tr id="row1290715517015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p29071151309"><a name="p29071151309"></a><a name="p29071151309"></a>startup_services_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p119075510011"><a name="p119075510011"></a><a name="p119075510011"></a>startup_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p9907255016"><a name="p9907255016"></a><a name="p9907255016"></a>仓名变更</p>
</td>
</tr>
<tr id="row2907165707"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p9907451206"><a name="p9907451206"></a><a name="p9907451206"></a>startup_frameworks_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1490712516010"><a name="p1490712516010"></a><a name="p1490712516010"></a>startup_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59072514018"><a name="p59072514018"></a><a name="p59072514018"></a>仓名变更</p>
</td>
</tr>
<tr id="row9907053012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p159076513015"><a name="p159076513015"></a><a name="p159076513015"></a>startup_hals_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p09081451600"><a name="p09081451600"></a><a name="p09081451600"></a>只读归档</p>
</td>
</tr>
<tr id="row17908751903"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p39084514010"><a name="p39084514010"></a><a name="p39084514010"></a>startup_interfaces_kits_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1490818519019"><a name="p1490818519019"></a><a name="p1490818519019"></a>只读归档</p>
</td>
</tr>
<tr id="row10908125707"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p990814513015"><a name="p990814513015"></a><a name="p990814513015"></a>graphic_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p15908951808"><a name="p15908951808"></a><a name="p15908951808"></a>graphic_surface</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p4908135408"><a name="p4908135408"></a><a name="p4908135408"></a>仓名变更</p>
</td>
</tr>
<tr id="row199081551901"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p199081051301"><a name="p199081051301"></a><a name="p199081051301"></a>graphic_ui</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p179086517016"><a name="p179086517016"></a><a name="p179086517016"></a>新增组件</p>
</td>
</tr>
<tr id="row199086519015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p169081751402"><a name="p169081751402"></a><a name="p169081751402"></a>graphic_utils</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p990815906"><a name="p990815906"></a><a name="p990815906"></a>新增组件</p>
</td>
</tr>
<tr id="row1908155706"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p12908851907"><a name="p12908851907"></a><a name="p12908851907"></a>graphic_wms</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p139084511017"><a name="p139084511017"></a><a name="p139084511017"></a>新增组件</p>
</td>
</tr>
<tr id="row13908751904"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p16909151205"><a name="p16909151205"></a><a name="p16909151205"></a>third_party_giflib</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89091851807"><a name="p89091851807"></a><a name="p89091851807"></a>新增组件</p>
</td>
</tr>
<tr id="row890914518017"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p090913519020"><a name="p090913519020"></a><a name="p090913519020"></a>third_party_qrcodegen</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p8909453015"><a name="p8909453015"></a><a name="p8909453015"></a>新增组件</p>
</td>
</tr>
<tr id="row14909954015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p5909758010"><a name="p5909758010"></a><a name="p5909758010"></a>drivers_adapter_khdf_linux</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1590975106"><a name="p1590975106"></a><a name="p1590975106"></a>新增组件</p>
</td>
</tr>
<tr id="row16909251302"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p199097510018"><a name="p199097510018"></a><a name="p199097510018"></a>drivers_hdf_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p790955108"><a name="p790955108"></a><a name="p790955108"></a>drivers_adapter_khdf_liteos</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p20909251301"><a name="p20909251301"></a><a name="p20909251301"></a>仓名变更</p>
</td>
</tr>
<tr id="row16909256018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p09101651205"><a name="p09101651205"></a><a name="p09101651205"></a>drivers_adapter_uhdf</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p18910251107"><a name="p18910251107"></a><a name="p18910251107"></a>新增组件</p>
</td>
</tr>
<tr id="row13910559012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1891011517010"><a name="p1891011517010"></a><a name="p1891011517010"></a>drivers_hdf_frameworks</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p6910954011"><a name="p6910954011"></a><a name="p6910954011"></a>drivers_framework</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p89102518017"><a name="p89102518017"></a><a name="p89102518017"></a>仓名变更</p>
</td>
</tr>
<tr id="row39101851804"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p119101951909"><a name="p119101951909"></a><a name="p119101951909"></a>drivers_peripheral_audio</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79105515016"><a name="p79105515016"></a><a name="p79105515016"></a>新增组件</p>
</td>
</tr>
<tr id="row49101352014"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p29101751908"><a name="p29101751908"></a><a name="p29101751908"></a>drivers_peripheral_codec</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p29109516013"><a name="p29109516013"></a><a name="p29109516013"></a>新增组件</p>
</td>
</tr>
<tr id="row69101651604"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p79101552020"><a name="p79101552020"></a><a name="p79101552020"></a>drivers_peripheral_display</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1910756017"><a name="p1910756017"></a><a name="p1910756017"></a>新增组件</p>
</td>
</tr>
<tr id="row16910125109"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p19911651009"><a name="p19911651009"></a><a name="p19911651009"></a>drivers_peripheral_format</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p39113518019"><a name="p39113518019"></a><a name="p39113518019"></a>新增组件</p>
</td>
</tr>
<tr id="row179119516018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p139111651602"><a name="p139111651602"></a><a name="p139111651602"></a>drivers_peripheral_input</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491114519013"><a name="p1491114519013"></a><a name="p1491114519013"></a>新增组件</p>
</td>
</tr>
<tr id="row189114517010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p09115513010"><a name="p09115513010"></a><a name="p09115513010"></a>drivers_peripheral_sensor</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p59111558013"><a name="p59111558013"></a><a name="p59111558013"></a>新增组件</p>
</td>
</tr>
<tr id="row159111853017"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p19911555019"><a name="p19911555019"></a><a name="p19911555019"></a>drivers_peripheral_wlan</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791113512014"><a name="p791113512014"></a><a name="p791113512014"></a>新增组件</p>
</td>
</tr>
<tr id="row99111150015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p09118516019"><a name="p09118516019"></a><a name="p09118516019"></a>global_cust_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p109118512013"><a name="p109118512013"></a><a name="p109118512013"></a>新增组件</p>
</td>
</tr>
<tr id="row1191135703"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p59111551405"><a name="p59111551405"></a><a name="p59111551405"></a>global_i18n_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491175703"><a name="p1491175703"></a><a name="p1491175703"></a>新增组件</p>
</td>
</tr>
<tr id="row11911115801"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p159111553016"><a name="p159111553016"></a><a name="p159111553016"></a>global_frameworks_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p149111851608"><a name="p149111851608"></a><a name="p149111851608"></a>global_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p16911456013"><a name="p16911456013"></a><a name="p16911456013"></a>仓名变更</p>
</td>
</tr>
<tr id="row17911257010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1991211515015"><a name="p1991211515015"></a><a name="p1991211515015"></a>third_party_icu</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p17912175808"><a name="p17912175808"></a><a name="p17912175808"></a>新增组件</p>
</td>
</tr>
<tr id="row69121257015"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p139129511011"><a name="p139129511011"></a><a name="p139129511011"></a>global_interfaces_innerkits_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19121651105"><a name="p19121651105"></a><a name="p19121651105"></a>只读归档</p>
</td>
</tr>
<tr id="row129122051305"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1691295602"><a name="p1691295602"></a><a name="p1691295602"></a>communication_frameworks_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1091210518012"><a name="p1091210518012"></a><a name="p1091210518012"></a>communication_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p19912458020"><a name="p19912458020"></a><a name="p19912458020"></a>仓名变更</p>
</td>
</tr>
<tr id="row291295508"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p209121510017"><a name="p209121510017"></a><a name="p209121510017"></a>communication_interfaces_kits_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1291217511018"><a name="p1291217511018"></a><a name="p1291217511018"></a>只读归档</p>
</td>
</tr>
<tr id="row199121951509"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p119125517016"><a name="p119125517016"></a><a name="p119125517016"></a>communication_interfaces_kits_softbuskit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p199127511014"><a name="p199127511014"></a><a name="p199127511014"></a>只读归档</p>
</td>
</tr>
<tr id="row69127510010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p209129510013"><a name="p209129510013"></a><a name="p209129510013"></a>communication_hals_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p13912851018"><a name="p13912851018"></a><a name="p13912851018"></a>只读归档</p>
</td>
</tr>
<tr id="row12912351309"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p16912559013"><a name="p16912559013"></a><a name="p16912559013"></a>communication_services_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p17912151808"><a name="p17912151808"></a><a name="p17912151808"></a>communication_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p20912051904"><a name="p20912051904"></a><a name="p20912051904"></a>仓名变更</p>
</td>
</tr>
<tr id="row99128517010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p139126520013"><a name="p139126520013"></a><a name="p139126520013"></a>communication_wifi_aware</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p891385705"><a name="p891385705"></a><a name="p891385705"></a>新增组件</p>
</td>
</tr>
<tr id="row159139518017"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p391365808"><a name="p391365808"></a><a name="p391365808"></a>update_ota_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p69131252020"><a name="p69131252020"></a><a name="p69131252020"></a>新增组件</p>
</td>
</tr>
<tr id="row139135511018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1691317511019"><a name="p1691317511019"></a><a name="p1691317511019"></a>vendor_hisi_hi35xx_hi35xx_init</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p199131956012"><a name="p199131956012"></a><a name="p199131956012"></a>device_hisilicon_build</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p79133512013"><a name="p79133512013"></a><a name="p79133512013"></a>仓名变更</p>
</td>
</tr>
<tr id="row29131151901"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1913125306"><a name="p1913125306"></a><a name="p1913125306"></a>vendor_hisi_hi35xx_platform</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p15913054011"><a name="p15913054011"></a><a name="p15913054011"></a>device_hisilicon_drivers</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p139139512019"><a name="p139139512019"></a><a name="p139139512019"></a>仓名变更</p>
</td>
</tr>
<tr id="row19913251008"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p17913655013"><a name="p17913655013"></a><a name="p17913655013"></a>vendor_hisi_hi35xx_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p16913151004"><a name="p16913151004"></a><a name="p16913151004"></a>device_hisilicon_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1191316520013"><a name="p1191316520013"></a><a name="p1191316520013"></a>仓名变更</p>
</td>
</tr>
<tr id="row199135511012"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p179131051804"><a name="p179131051804"></a><a name="p179131051804"></a>vendor_hisi_hi35xx_hi3518ev300</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1291319518016"><a name="p1291319518016"></a><a name="p1291319518016"></a>device_hisilicon_hispark_aries</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p5913125106"><a name="p5913125106"></a><a name="p5913125106"></a>仓名变更</p>
</td>
</tr>
<tr id="row139131351308"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p10913457011"><a name="p10913457011"></a><a name="p10913457011"></a>vendor_hisi_hi3861_hi3861</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p16913165403"><a name="p16913165403"></a><a name="p16913165403"></a>device_hisilicon_hispark_pegasus</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1191365602"><a name="p1191365602"></a><a name="p1191365602"></a>仓名变更</p>
</td>
</tr>
<tr id="row99131651908"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1191365000"><a name="p1191365000"></a><a name="p1191365000"></a>vendor_hisi_hi35xx_hi3516dv300</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p2913195102"><a name="p2913195102"></a><a name="p2913195102"></a>device_hisilicon_hispark_taurus</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1491320518015"><a name="p1491320518015"></a><a name="p1491320518015"></a>仓名变更</p>
</td>
</tr>
<tr id="row11913651308"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p19913955017"><a name="p19913955017"></a><a name="p19913955017"></a>vendor_hisi_hi35xx_middleware</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p89132513013"><a name="p89132513013"></a><a name="p89132513013"></a>device_hisilicon_modules</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p17913115909"><a name="p17913115909"></a><a name="p17913115909"></a>仓名变更</p>
</td>
</tr>
<tr id="row1913252013"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p29141351408"><a name="p29141351408"></a><a name="p29141351408"></a>vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p791420518016"><a name="p791420518016"></a><a name="p791420518016"></a>device_hisilicon_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1391418512014"><a name="p1391418512014"></a><a name="p1391418512014"></a>仓名变更</p>
</td>
</tr>
<tr id="row19914251203"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p69141751009"><a name="p69141751009"></a><a name="p69141751009"></a>vendor_hisi_hi35xx_thirdparty_uboot_src</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p12914751907"><a name="p12914751907"></a><a name="p12914751907"></a>device_hisilicon_third_party_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2914350011"><a name="p2914350011"></a><a name="p2914350011"></a>仓名变更</p>
</td>
</tr>
<tr id="row791405607"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p1191410510011"><a name="p1191410510011"></a><a name="p1191410510011"></a>vendor_hisilicon</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2914451805"><a name="p2914451805"></a><a name="p2914451805"></a>新增组件</p>
</td>
</tr>
<tr id="row1491415901"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p8914951407"><a name="p8914951407"></a><a name="p8914951407"></a>vendor_hisi_hi35xx_hi3516dv300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p2091415516011"><a name="p2091415516011"></a><a name="p2091415516011"></a>只读归档</p>
</td>
</tr>
<tr id="row119143517013"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1491495903"><a name="p1491495903"></a><a name="p1491495903"></a>vendor_hisi_hi35xx_hi3518ev300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p159141551304"><a name="p159141551304"></a><a name="p159141551304"></a>只读归档</p>
</td>
</tr>
<tr id="row12914651909"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p13914851607"><a name="p13914851607"></a><a name="p13914851607"></a>aafwk_interfaces_innerkits_abilitykit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p12914115109"><a name="p12914115109"></a><a name="p12914115109"></a>只读归档</p>
</td>
</tr>
<tr id="row29141957010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p139141657020"><a name="p139141657020"></a><a name="p139141657020"></a>aafwk_interfaces_innerkits_intent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p2091435204"><a name="p2091435204"></a><a name="p2091435204"></a>aafwk_aafwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p391418514016"><a name="p391418514016"></a><a name="p391418514016"></a>仓名变更</p>
</td>
</tr>
<tr id="row19144513010"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p49153516011"><a name="p49153516011"></a><a name="p49153516011"></a>aafwk_interfaces_innerkits_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p9915952001"><a name="p9915952001"></a><a name="p9915952001"></a>只读归档</p>
</td>
</tr>
<tr id="row11915115409"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p11915751906"><a name="p11915751906"></a><a name="p11915751906"></a>appexecfwk_kits_appkit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p159151651909"><a name="p159151651909"></a><a name="p159151651909"></a>appexecfwk_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p15915195103"><a name="p15915195103"></a><a name="p15915195103"></a>仓名变更</p>
</td>
</tr>
<tr id="row10915551806"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p159152051602"><a name="p159152051602"></a><a name="p159152051602"></a>aafwk_frameworks_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p11915135109"><a name="p11915135109"></a><a name="p11915135109"></a>只读归档</p>
</td>
</tr>
<tr id="row119151456011"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 "><p id="p139151754014"><a name="p139151754014"></a><a name="p139151754014"></a>developtools_packing_tool</p>
</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p13915251019"><a name="p13915251019"></a><a name="p13915251019"></a>新增组件</p>
</td>
</tr>
<tr id="row1291575909"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p79156518010"><a name="p79156518010"></a><a name="p79156518010"></a>aafwk_interfaces_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p189155518018"><a name="p189155518018"></a><a name="p189155518018"></a>只读归档</p>
</td>
</tr>
<tr id="row6915155303"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p5915125206"><a name="p5915125206"></a><a name="p5915125206"></a>appexecfwk_frameworks_bundle_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p3915751018"><a name="p3915751018"></a><a name="p3915751018"></a>只读归档</p>
</td>
</tr>
<tr id="row209151159020"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p891585809"><a name="p891585809"></a><a name="p891585809"></a>aafwk_services_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791585006"><a name="p791585006"></a><a name="p791585006"></a>只读归档</p>
</td>
</tr>
<tr id="row209156517018"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p09151755010"><a name="p09151755010"></a><a name="p09151755010"></a>appexecfwk_interfaces_innerkits_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p09151551700"><a name="p09151551700"></a><a name="p09151551700"></a>只读归档</p>
</td>
</tr>
<tr id="row491614520017"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p69161151506"><a name="p69161151506"></a><a name="p69161151506"></a>appexecfwk_interfaces_innerkits_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p791618511016"><a name="p791618511016"></a><a name="p791618511016"></a>只读归档</p>
</td>
</tr>
<tr id="row59162058016"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p1991645809"><a name="p1991645809"></a><a name="p1991645809"></a>appexecfwk_services_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p1091605202"><a name="p1091605202"></a><a name="p1091605202"></a>只读归档</p>
</td>
</tr>
<tr id="row2916054019"><td class="cellrowborder" valign="top" width="34%" headers="mcps1.1.4.1.1 "><p id="p169164515019"><a name="p169164515019"></a><a name="p169164515019"></a>aafwk_frameworks_kits_content_lite</p>
</td>
<td class="cellrowborder" valign="top" width="32.79%" headers="mcps1.1.4.1.2 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="33.21%" headers="mcps1.1.4.1.3 "><p id="p991617517013"><a name="p991617517013"></a><a name="p991617517013"></a>只读归档</p>
</td>
</tr>
</tbody>
</table>
\* 只读归档:组件仓归档到新的组织并设置为只读(openharmony-retired)。
\* 三方芯片代码与OS解耦,海思芯片SDK由Vendor目录迁移到device/hisilicon。
# OpenHarmony 1.0(2020-09-10)<a name="ZH-CN_TOPIC_0000001079132978"></a> # OpenHarmony 1.0(2020-09-10)<a name="ZH-CN_TOPIC_0000001079132978"></a>
- [版本概述](#section249611124916)
- [版本源码获取](#section127301717165113)
- [通过镜像站点获取](#section157648475298)
- [通过repo命令获取](#section49746186307)
## 版本概述<a name="section249611124916"></a>
首次发布OpenHarmony 1.0。 首次发布OpenHarmony 1.0。
## 版本源码获取<a name="section127301717165113"></a>
### 通过镜像站点获取<a name="section157648475298"></a>
**表 1** 源码获取路径
<a name="table91984129177"></a>
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p16618172471719"><a name="p16618172471719"></a><a name="p16618172471719"></a>版本源码</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p46181224161718"><a name="p46181224161718"></a><a name="p46181224161718"></a>版本信息</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p1461814241177"><a name="p1461814241177"></a><a name="p1461814241177"></a>下载站点</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p12618192481716"><a name="p12618192481716"></a><a name="p12618192481716"></a>SHA256校验码</p>
</th>
</tr>
</thead>
<tbody><tr id="row174961746125013"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p697315226515"><a name="p697315226515"></a><a name="p697315226515"></a>全量代码</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1997312229519"><a name="p1997312229519"></a><a name="p1997312229519"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p1797320223518"><a name="p1797320223518"></a><a name="p1797320223518"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p6973102210516"><a name="p6973102210516"></a><a name="p6973102210516"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row1049714618507"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p14973722165114"><a name="p14973722165114"></a><a name="p14973722165114"></a>Hi3861解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p1361982418176"><a name="p1361982418176"></a><a name="p1361982418176"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p797314223515"><a name="p797314223515"></a><a name="p797314223515"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p5973422115112"><a name="p5973422115112"></a><a name="p5973422115112"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/wifiiot-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row7498114620508"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1097311229513"><a name="p1097311229513"></a><a name="p1097311229513"></a>Hi3518解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p0619122471719"><a name="p0619122471719"></a><a name="p0619122471719"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p19973222165111"><a name="p19973222165111"></a><a name="p19973222165111"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p10973722105113"><a name="p10973722105113"></a><a name="p10973722105113"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3518ev300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row19498194619507"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p8973202285119"><a name="p8973202285119"></a><a name="p8973202285119"></a>Hi3516解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p10619182441718"><a name="p10619182441718"></a><a name="p10619182441718"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p497442295116"><a name="p497442295116"></a><a name="p497442295116"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p1997442295110"><a name="p1997442295110"></a><a name="p1997442295110"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/ipcamera_hi3516dv300-1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row14989469503"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p997482215517"><a name="p997482215517"></a><a name="p997482215517"></a>RELEASE-NOTES</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p176191824181712"><a name="p176191824181712"></a><a name="p176191824181712"></a>1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p697413223518"><a name="p697413223518"></a><a name="p697413223518"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.0/RELEASE-NOTES.txt" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p15974222165114"><a name="p15974222165114"></a><a name="p15974222165114"></a>-</p>
</td>
</tr>
</tbody>
</table>
### 通过repo命令获取<a name="section49746186307"></a>
方式一(推荐):通过repo下载
```
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
```
方式二:通过git clone单个代码仓库
进入[代码仓库主页](https://gitee.com/openharmony),选择需要克隆的代码仓库,执行命令,如:
```
git clone https://gitee.com/openharmony/manifest.git -b master
```
# OpenHarmony 1.1.0 LTS(2021-04-27)<a name="ZH-CN_TOPIC_0000001095652840"></a>
- [版本概述](#section1846294912228)
- [源码获取](#section84808293211)
- [通过镜像站点获取](#section8394142222113)
- [通过repo下载](#section7180193542317)
- [更新说明](#section175225345334)
- [已修复缺陷列表](#section11935243172612)
## 版本概述<a name="section1846294912228"></a>
首次发布LTS(long-term support)长期支持版本OpenHarmony 1.1.0,本版本在1.0版本的基础上新增了部分功能和修复了部分缺陷。
- OpenHarmony1.1.0扩充组件能力,新增AI子系统、电源管理子系统、泛Sensor子系统、升级子系统。
- OpenHarmony1.1.0有了统一AI引擎框架。
- liteos-m内核完成三方可移植性重构。
- 驱动子系统完善了WIFI、Sensor、Input、Display的驱动模型。
- 图形子系统针对UI能力及JS框架性能和内存得到优化。
- 对目录结构及组件仓做了大幅优化。
## 源码获取<a name="section84808293211"></a>
### 通过镜像站点获取<a name="section8394142222113"></a>
**表 1** 源码获取路径
<a name="table14394152217216"></a>
<table><thead align="left"><tr id="row15394132214217"><th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.1"><p id="p15394122214219"><a name="p15394122214219"></a><a name="p15394122214219"></a>版本源码</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.2"><p id="p10394112292119"><a name="p10394112292119"></a><a name="p10394112292119"></a>版本信息</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.3"><p id="p039562213211"><a name="p039562213211"></a><a name="p039562213211"></a>下载站点</p>
</th>
<th class="cellrowborder" valign="top" width="25%" id="mcps1.2.5.1.4"><p id="p1039572272110"><a name="p1039572272110"></a><a name="p1039572272110"></a>SHA256校验码</p>
</th>
</tr>
</thead>
<tbody><tr id="row9395722182111"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p039514225215"><a name="p039514225215"></a><a name="p039514225215"></a>全量代码</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p839514220217"><a name="p839514220217"></a><a name="p839514220217"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p339552222120"><a name="p339552222120"></a><a name="p339552222120"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p19395142202117"><a name="p19395142202117"></a><a name="p19395142202117"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row1739512225217"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p1839592272117"><a name="p1839592272117"></a><a name="p1839592272117"></a>Hi3861解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p7395722112113"><a name="p7395722112113"></a><a name="p7395722112113"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p53957224215"><a name="p53957224215"></a><a name="p53957224215"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/wifiiot-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p183959226211"><a name="p183959226211"></a><a name="p183959226211"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/code-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row16395122262110"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p12395172242118"><a name="p12395172242118"></a><a name="p12395172242118"></a>Hi3518解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p12395182210215"><a name="p12395182210215"></a><a name="p12395182210215"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p133952022162113"><a name="p133952022162113"></a><a name="p133952022162113"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p2039542211214"><a name="p2039542211214"></a><a name="p2039542211214"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3518ev300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row1839592272117"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p8395322182113"><a name="p8395322182113"></a><a name="p8395322182113"></a>Hi3516解决方案(二进制)</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p20395152262114"><a name="p20395152262114"></a><a name="p20395152262114"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p1639552272118"><a name="p1639552272118"></a><a name="p1639552272118"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p12396132216212"><a name="p12396132216212"></a><a name="p12396132216212"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/ipcamera_hi3516dv300-1.1.0.tar.gz.sha256" target="_blank" rel="noopener noreferrer">SHA256 校验码</a></p>
</td>
</tr>
<tr id="row3396822162120"><td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.1 "><p id="p18506191313914"><a name="p18506191313914"></a><a name="p18506191313914"></a>Release Notes</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.2 "><p id="p10396102282110"><a name="p10396102282110"></a><a name="p10396102282110"></a>1.1.0</p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.3 "><p id="p15396192232119"><a name="p15396192232119"></a><a name="p15396192232119"></a><a href="https://repo.huaweicloud.com/harmonyos/os/1.1.0/OpenHarmony_Release_Notes_zh_cn.zip" target="_blank" rel="noopener noreferrer">站点</a></p>
</td>
<td class="cellrowborder" valign="top" width="25%" headers="mcps1.2.5.1.4 "><p id="p039662242117"><a name="p039662242117"></a><a name="p039662242117"></a>-</p>
</td>
</tr>
</tbody>
</table>
### 通过repo下载<a name="section7180193542317"></a>
下载命令如下:
```
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony_release_v1.1.0 --no-repo-verify
repo sync -c
```
## 更新说明<a name="section175225345334"></a>
本版本完全继承了OpenHarmony 1.0的所有特性,并在OpenHarmony 1.0版本的基础上,对各模块进行了功能扩展和优化,详情请参考下表 。
**表 2** 特性更新说明
<a name="table143385853320"></a>
<table><thead align="left"><tr id="row53375863312"><th class="cellrowborder" valign="top" width="13.38%" id="mcps1.2.5.1.1"><p id="p20331858193317"><a name="p20331858193317"></a><a name="p20331858193317"></a>类别</p>
</th>
<th class="cellrowborder" valign="top" width="38.54%" id="mcps1.2.5.1.2"><p id="p1133115820331"><a name="p1133115820331"></a><a name="p1133115820331"></a>新增特性</p>
</th>
<th class="cellrowborder" valign="top" width="28.410000000000004%" id="mcps1.2.5.1.3"><p id="p162468531345"><a name="p162468531345"></a><a name="p162468531345"></a>修改特性</p>
</th>
<th class="cellrowborder" valign="top" width="19.67%" id="mcps1.2.5.1.4"><p id="p9985141863716"><a name="p9985141863716"></a><a name="p9985141863716"></a>删除特性</p>
</th>
</tr>
</thead>
<tbody><tr id="row333115812331"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p31751943143520"><a name="p31751943143520"></a><a name="p31751943143520"></a>内核</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul4760125719351"></a><a name="ul4760125719351"></a><ul id="ul4760125719351"><li>LiteOS-M支持Cortex-M7、Cortex-M33和RISC-V芯片架构,新增对应的单板target样例。</li><li>LiteOS-M支持MPU功能。</li><li>LiteOS-M支持部分POSIX接口。</li><li>LiteOS-M支持FatFS文件系统。</li><li>LiteOS-M支持异常回调函数注册机制。</li><li>LiteOS-M三方芯片易适配性架构调整。</li><li>LiteOS-M、LiteOS-A支持堆内存调测功能,包括内存泄漏、踩内存、内存统计。</li><li>LiteOS-M、LiteOS-A支持TLSF堆内存算法,提高内存申请和释放效率,降低碎片率。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p207894916364"><a name="p207894916364"></a><a name="p207894916364"></a>LiteOS-A调度优化。</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p2098521893713"><a name="p2098521893713"></a><a name="p2098521893713"></a>None</p>
</td>
</tr>
<tr id="row173335873311"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p8294101513612"><a name="p8294101513612"></a><a name="p8294101513612"></a>泛Sensor</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p29882273369"><a name="p29882273369"></a><a name="p29882273369"></a>新增Sensor组件,提供了Sensor列表查询、Sensor启停、Sensor订阅/去订阅、设置数据上报模式、设置采样间隔等功能。</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p175171027115517"><a name="p175171027115517"></a><a name="p175171027115517"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p555482725510"><a name="p555482725510"></a><a name="p555482725510"></a>None</p>
</td>
</tr>
<tr id="row15331058133314"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p135282348360"><a name="p135282348360"></a><a name="p135282348360"></a>全球化</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p127721442123615"><a name="p127721442123615"></a><a name="p127721442123615"></a>新增79种语言的数字格式化、日期和时间格式化、单复数C/C++国际化接口。</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p5589227195515"><a name="p5589227195515"></a><a name="p5589227195515"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p156111127125519"><a name="p156111127125519"></a><a name="p156111127125519"></a>None</p>
</td>
</tr>
<tr id="row1034145820330"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p194507512361"><a name="p194507512361"></a><a name="p194507512361"></a>JS应用开发框架</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul156745563613"></a><a name="ul156745563613"></a><ul id="ul156745563613"><li>新增JS前端opacity全局属性支持。</li><li>新增prompt.showDialog API。</li><li>新增二维码组件qrcode。</li><li>新增事件冒泡机制</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><a name="ul1521675183713"></a><a name="ul1521675183713"></a><ul id="ul1521675183713"><li>国际化性能优化,加速页面跳转,支持数字国际化及时间日期转换。</li><li>前端布局能力增强,部分样式值支持设置百分比。</li><li>input及switch组件尺寸自适应能力增强。</li><li>image组件能力增强,支持显示应用私有数据目录图片。</li><li>image-animator组件能力增强,支持结束帧指定。</li><li>canvas组件能力增强,新增部分API。</li><li>device.getInfo API增强,新增部分返回字段。</li><li>DFX能力增强,支持跟踪异常的方法栈。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p86015315379"><a name="p86015315379"></a><a name="p86015315379"></a>国际化功能不再支持回溯特性。</p>
</td>
</tr>
<tr id="row334175803317"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p243416212389"><a name="p243416212389"></a><a name="p243416212389"></a>测试</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul46498614381"></a><a name="ul46498614381"></a><ul id="ul46498614381"><li>新增测试工具按照用例级别筛选要执行的测试用例。</li><li>新增测试demo用例。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p18996183216557"><a name="p18996183216557"></a><a name="p18996183216557"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p153093375512"><a name="p153093375512"></a><a name="p153093375512"></a>None</p>
</td>
</tr>
<tr id="row834358143319"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p104871716123812"><a name="p104871716123812"></a><a name="p104871716123812"></a>图形</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul164401121203816"></a><a name="ul164401121203816"></a><ul id="ul164401121203816"><li>新增组件级旋转缩放、组件级透明度。</li><li>新增事件冒泡机制,新增旋转表冠事件。</li><li>新增GIF图片解析显示,新增百分比宽高布局,新增Video和二维码控件。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p5908129143819"><a name="p5908129143819"></a><a name="p5908129143819"></a>局部渲染和SIMD性能优化。</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p29561057105519"><a name="p29561057105519"></a><a name="p29561057105519"></a>None</p>
</td>
</tr>
<tr id="row2216639113811"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p11452451173813"><a name="p11452451173813"></a><a name="p11452451173813"></a>公共基础</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul139511255113815"></a><a name="ul139511255113815"></a><ul id="ul139511255113815"><li>新增dump系统属性功能。</li><li>为上层各模块新增内存池管理接口。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1770461785620"><a name="p1770461785620"></a><a name="p1770461785620"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p998117571553"><a name="p998117571553"></a><a name="p998117571553"></a>None</p>
</td>
</tr>
<tr id="row119944512385"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p20115719395"><a name="p20115719395"></a><a name="p20115719395"></a>驱动</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul100191223919"></a><a name="ul100191223919"></a><ul id="ul100191223919"><li>新增sensor、input、display驱动模型。</li><li>新增mipi dsi以及pwm(脉冲宽度调制)。</li><li>新增WIFI HDI接口以及WIFI的流控。</li><li>新增驱动框架IO服务分组特性。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p460532073911"><a name="p460532073911"></a><a name="p460532073911"></a>优化驱动加载流程,支持分段加载。</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p7319581551"><a name="p7319581551"></a><a name="p7319581551"></a>None</p>
</td>
</tr>
<tr id="row18711154213388"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p185909284392"><a name="p185909284392"></a><a name="p185909284392"></a>分布式通信</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul126884329393"></a><a name="ul126884329393"></a><ul id="ul126884329393"><li>新增WiFi Aware特性模块。</li><li>IPC新增对非对齐序列化的支持。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p114241375617"><a name="p114241375617"></a><a name="p114241375617"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p6261458185513"><a name="p6261458185513"></a><a name="p6261458185513"></a>None</p>
</td>
</tr>
<tr id="row933514718399"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p15353948123912"><a name="p15353948123912"></a><a name="p15353948123912"></a>安全</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul16110105811391"></a><a name="ul16110105811391"></a><ul id="ul16110105811391"><li>新增HUKS提供SHA256/RSA3072/RSA2048/AES128/ECC安全算法以及接口,以及提供密钥管理和存储能力。</li><li>HiChain提供轻量非账号的轻量级组件,用于设备群组管理和认证,支撑软总线通讯安全;提供API给系统服务与应用。</li><li>权限管理新增统一的权限管理机制,满足轻量设备权限授权需求。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p10854883569"><a name="p10854883569"></a><a name="p10854883569"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p848858175517"><a name="p848858175517"></a><a name="p848858175517"></a>None</p>
</td>
</tr>
<tr id="row1413119125400"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p57091617134017"><a name="p57091617134017"></a><a name="p57091617134017"></a>AI子系统</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul327962215408"></a><a name="ul327962215408"></a><ul id="ul327962215408"><li>新增统一的AI引擎框架,实现算法能力快速插件化集成。框架中主要包含插件管理、模块管理和通信管理等模块,对AI算法能力进行生命周期管理和按需部署</li><li>为开发者提供开发指南,并提供2个基于AI引擎框架开发的AI能力插件和对应的AI应用Sample,方便开发者在AI引擎框架中快速集成AI算法能力。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p7131191264012"><a name="p7131191264012"></a><a name="p7131191264012"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p1170145845518"><a name="p1170145845518"></a><a name="p1170145845518"></a>None</p>
</td>
</tr>
<tr id="row98001376403"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p16588112824019"><a name="p16588112824019"></a><a name="p16588112824019"></a>升级服务</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p163773464015"><a name="p163773464015"></a><a name="p163773464015"></a>新增轻量级设备升级能力框架,框架包括升级包的效验和解析能力,以及安装的接口,统一轻设备升级能力框架。</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1080010712403"><a name="p1080010712403"></a><a name="p1080010712403"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p119211587555"><a name="p119211587555"></a><a name="p119211587555"></a>None</p>
</td>
</tr>
<tr id="row3104039184016"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p12573854134019"><a name="p12573854134019"></a><a name="p12573854134019"></a>XTS认证</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><p id="p15893189204113"><a name="p15893189204113"></a><a name="p15893189204113"></a>增加AI、DFX、global、OTA兼容性测试用例。</p>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1170111714112"><a name="p1170111714112"></a><a name="p1170111714112"></a>应用程序框架、公共通信、分布式任务调度、IOT、内核等测试能力增强。</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p3114115820554"><a name="p3114115820554"></a><a name="p3114115820554"></a>None</p>
</td>
</tr>
<tr id="row95402484401"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p1031291510411"><a name="p1031291510411"></a><a name="p1031291510411"></a>编译构建</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul061324164112"></a><a name="ul061324164112"></a><ul id="ul061324164112"><li>新增命令行工具hb, 采用hb set和hb build方式构建,并支持在源码目录下及任意子目录下构建。</li><li>支持独立芯片厂商组件。</li><li>支持使用组件名单独构建组件。</li><li>支持按开发板自定义编译工具链和编译选项。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p1167916358411"><a name="p1167916358411"></a><a name="p1167916358411"></a>产品配置与build_lite仓解耦,修改为“vendor/解决方案厂商/产品/config.json”。</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p16136758125519"><a name="p16136758125519"></a><a name="p16136758125519"></a>None</p>
</td>
</tr>
<tr id="row16281465401"><td class="cellrowborder" valign="top" width="13.38%" headers="mcps1.2.5.1.1 "><p id="p0889841174116"><a name="p0889841174116"></a><a name="p0889841174116"></a>电源管理</p>
</td>
<td class="cellrowborder" valign="top" width="38.54%" headers="mcps1.2.5.1.2 "><a name="ul175961462411"></a><a name="ul175961462411"></a><ul id="ul175961462411"><li>电量查询功能。</li><li>亮屏锁管理功能及接口。</li></ul>
</td>
<td class="cellrowborder" valign="top" width="28.410000000000004%" headers="mcps1.2.5.1.3 "><p id="p3628746194013"><a name="p3628746194013"></a><a name="p3628746194013"></a>None</p>
</td>
<td class="cellrowborder" valign="top" width="19.67%" headers="mcps1.2.5.1.4 "><p id="p3158165885517"><a name="p3158165885517"></a><a name="p3158165885517"></a>None</p>
</td>
</tr>
</tbody>
</table>
组件仓优化如下表所示。
>![](public_sys-resources/icon-note.gif) **说明:**
>- 只读归档:组件仓归档到新的组织并设置为只读(openharmony-retired)。
>- 三方芯片代码与OS解耦,海思芯片SDK由Vendor目录迁移到device/hisilicon。
**表 3** 组建仓库优化
<a name="table91984129177"></a>
<table><thead align="left"><tr id="row51981312101713"><th class="cellrowborder" valign="top" width="33.64%" id="mcps1.2.4.1.1"><p id="p194252040214"><a name="p194252040214"></a><a name="p194252040214"></a>OpenHarmony1.0</p>
</th>
<th class="cellrowborder" valign="top" width="37.059999999999995%" id="mcps1.2.4.1.2"><p id="p242515412216"><a name="p242515412216"></a><a name="p242515412216"></a>OpenHarmony1.1.0</p>
</th>
<th class="cellrowborder" valign="top" width="29.299999999999997%" id="mcps1.2.4.1.3"><p id="p5425144729"><a name="p5425144729"></a><a name="p5425144729"></a>优化方式</p>
</th>
</tr>
</thead>
<tbody><tr id="row21528111414"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14614112117"><a name="p14614112117"></a><a name="p14614112117"></a>ace_lite_jsfwk</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p8619114115"><a name="p8619114115"></a><a name="p8619114115"></a>ace_engine_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1661811711"><a name="p1661811711"></a><a name="p1661811711"></a>仓名变更</p>
</td>
</tr>
<tr id="row1152121117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p57121115112"><a name="p57121115112"></a><a name="p57121115112"></a>ace_interfaces_innerkits_builtin</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1771119118"><a name="p1771119118"></a><a name="p1771119118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p127161115114"><a name="p127161115114"></a><a name="p127161115114"></a>只读归档</p>
</td>
</tr>
<tr id="row191521611211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12711117113"><a name="p12711117113"></a><a name="p12711117113"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9711112118"><a name="p9711112118"></a><a name="p9711112118"></a>ai_engine</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p15714118113"><a name="p15714118113"></a><a name="p15714118113"></a>新增组件</p>
</td>
</tr>
<tr id="row20151011611"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p2715118118"><a name="p2715118118"></a><a name="p2715118118"></a>hiviewdfx_frameworks_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1751117113"><a name="p1751117113"></a><a name="p1751117113"></a>hiviewdfx_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2710111617"><a name="p2710111617"></a><a name="p2710111617"></a>仓名变更</p>
</td>
</tr>
<tr id="row61511511213"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1276111112"><a name="p1276111112"></a><a name="p1276111112"></a>hiviewdfx_frameworks_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p37191115116"><a name="p37191115116"></a><a name="p37191115116"></a>hiviewdfx_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p19711111311"><a name="p19711111311"></a><a name="p19711111311"></a>仓名变更</p>
</td>
</tr>
<tr id="row111511011014"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p9713112114"><a name="p9713112114"></a><a name="p9713112114"></a>hiviewdfx_utils_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14718119112"><a name="p14718119112"></a><a name="p14718119112"></a>hiviewdfx_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p579111716"><a name="p579111716"></a><a name="p579111716"></a>仓名变更</p>
</td>
</tr>
<tr id="row101511711311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p187711715"><a name="p187711715"></a><a name="p187711715"></a>hiviewdfx_frameworks_ddrdump_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1173111319"><a name="p1173111319"></a><a name="p1173111319"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18741118112"><a name="p18741118112"></a><a name="p18741118112"></a>只读归档</p>
</td>
</tr>
<tr id="row111517117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1385115116"><a name="p1385115116"></a><a name="p1385115116"></a>hiviewdfx_interfaces_innerkits_hievent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1881111212"><a name="p1881111212"></a><a name="p1881111212"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1987112018"><a name="p1987112018"></a><a name="p1987112018"></a>只读归档</p>
</td>
</tr>
<tr id="row015131111115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p128121116110"><a name="p128121116110"></a><a name="p128121116110"></a>hiviewdfx_interfaces_innerkits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17817111017"><a name="p17817111017"></a><a name="p17817111017"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12819111216"><a name="p12819111216"></a><a name="p12819111216"></a>只读归档</p>
</td>
</tr>
<tr id="row215161113114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1981611219"><a name="p1981611219"></a><a name="p1981611219"></a>hiviewdfx_interfaces_kits_hilog</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p198121115114"><a name="p198121115114"></a><a name="p198121115114"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p20812111817"><a name="p20812111817"></a><a name="p20812111817"></a>只读归档</p>
</td>
</tr>
<tr id="row41513111818"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p58111119112"><a name="p58111119112"></a><a name="p58111119112"></a>hiviewdfx_interfaces_kits_hilog_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9812111313"><a name="p9812111313"></a><a name="p9812111313"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p281211415"><a name="p281211415"></a><a name="p281211415"></a>只读归档</p>
</td>
</tr>
<tr id="row71516112112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p287112011"><a name="p287112011"></a><a name="p287112011"></a>hiviewdfx_services_hilogcat_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14813119111"><a name="p14813119111"></a><a name="p14813119111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2817111113"><a name="p2817111113"></a><a name="p2817111113"></a>只读归档</p>
</td>
</tr>
<tr id="row12151611714"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1786119114"><a name="p1786119114"></a><a name="p1786119114"></a>hiviewdfx_services_hiview_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p129111112115"><a name="p129111112115"></a><a name="p129111112115"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3991111116"><a name="p3991111116"></a><a name="p3991111116"></a>只读归档</p>
</td>
</tr>
<tr id="row31517113116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p695111118"><a name="p695111118"></a><a name="p695111118"></a>iothardware_hals_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p797111718"><a name="p797111718"></a><a name="p797111718"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p6911119115"><a name="p6911119115"></a><a name="p6911119115"></a>只读归档</p>
</td>
</tr>
<tr id="row815112117113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0941110120"><a name="p0941110120"></a><a name="p0941110120"></a>iothardware_interfaces_kits_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1291711016"><a name="p1291711016"></a><a name="p1291711016"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p79211318"><a name="p79211318"></a><a name="p79211318"></a>只读归档</p>
</td>
</tr>
<tr id="row4151161119118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p6910115120"><a name="p6910115120"></a><a name="p6910115120"></a>iothardware_frameworks_wifiiot_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17961117116"><a name="p17961117116"></a><a name="p17961117116"></a>iothardware_peripheral</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11912117114"><a name="p11912117114"></a><a name="p11912117114"></a>仓名变更</p>
</td>
</tr>
<tr id="row31511111415"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p159411316"><a name="p159411316"></a><a name="p159411316"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p09111113114"><a name="p09111113114"></a><a name="p09111113114"></a>applications_camera_sample_communication</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1599111217"><a name="p1599111217"></a><a name="p1599111217"></a>新增组件</p>
</td>
</tr>
<tr id="row1015115110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p20914113110"><a name="p20914113110"></a><a name="p20914113110"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p17917119110"><a name="p17917119110"></a><a name="p17917119110"></a>applications_camera_screensaver_app</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1101911618"><a name="p1101911618"></a><a name="p1101911618"></a>新增组件</p>
</td>
</tr>
<tr id="row91511211912"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p151017111018"><a name="p151017111018"></a><a name="p151017111018"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1510101119117"><a name="p1510101119117"></a><a name="p1510101119117"></a>sensors_miscdevice_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1910101116115"><a name="p1910101116115"></a><a name="p1910101116115"></a>新增组件</p>
</td>
</tr>
<tr id="row61519111318"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1108111919"><a name="p1108111919"></a><a name="p1108111919"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1510131119115"><a name="p1510131119115"></a><a name="p1510131119115"></a>sensors_sensor_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4101611813"><a name="p4101611813"></a><a name="p4101611813"></a>新增组件</p>
</td>
</tr>
<tr id="row121512111715"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1010011814"><a name="p1010011814"></a><a name="p1010011814"></a>xts_tools_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p41018111019"><a name="p41018111019"></a><a name="p41018111019"></a>xts_tools</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5100111114"><a name="p5100111114"></a><a name="p5100111114"></a>仓名变更</p>
</td>
</tr>
<tr id="row61512111110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p16101113112"><a name="p16101113112"></a><a name="p16101113112"></a>security_services_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p15106119117"><a name="p15106119117"></a><a name="p15106119117"></a>security_permission</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p141041112120"><a name="p141041112120"></a><a name="p141041112120"></a>仓名变更</p>
</td>
</tr>
<tr id="row131518112113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11103112120"><a name="p11103112120"></a><a name="p11103112120"></a>security_interfaces_innerkits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p510011411"><a name="p510011411"></a><a name="p510011411"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p610211215"><a name="p610211215"></a><a name="p610211215"></a>只读归档</p>
</td>
</tr>
<tr id="row101511611812"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14111911619"><a name="p14111911619"></a><a name="p14111911619"></a>security_interfaces_kits_iam_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p91121113116"><a name="p91121113116"></a><a name="p91121113116"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p131111111115"><a name="p131111111115"></a><a name="p131111111115"></a>只读归档</p>
</td>
</tr>
<tr id="row6151161119116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p10112111511"><a name="p10112111511"></a><a name="p10112111511"></a>security_services_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p911181119116"><a name="p911181119116"></a><a name="p911181119116"></a>security_itrustee_ree_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p0111111212"><a name="p0111111212"></a><a name="p0111111212"></a>仓名变更</p>
</td>
</tr>
<tr id="row7151151116115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p111118115118"><a name="p111118115118"></a><a name="p111118115118"></a>security_interfaces_innerkits_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p141110111714"><a name="p141110111714"></a><a name="p141110111714"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31112111813"><a name="p31112111813"></a><a name="p31112111813"></a>只读归档</p>
</td>
</tr>
<tr id="row3151011618"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p13111411519"><a name="p13111411519"></a><a name="p13111411519"></a>security_frameworks_secure_os</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3111116118"><a name="p3111116118"></a><a name="p3111116118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p311131113119"><a name="p311131113119"></a><a name="p311131113119"></a>只读归档</p>
</td>
</tr>
<tr id="row315171112116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12111611410"><a name="p12111611410"></a><a name="p12111611410"></a>security_services_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p311161117112"><a name="p311161117112"></a><a name="p311161117112"></a>security_appverify</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1611111412"><a name="p1611111412"></a><a name="p1611111412"></a>仓名变更</p>
</td>
</tr>
<tr id="row1715116111215"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p101116112118"><a name="p101116112118"></a><a name="p101116112118"></a>security_interfaces_innerkits_app_verify</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1412141112111"><a name="p1412141112111"></a><a name="p1412141112111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31251119116"><a name="p31251119116"></a><a name="p31251119116"></a>只读归档</p>
</td>
</tr>
<tr id="row61514112110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p201218117114"><a name="p201218117114"></a><a name="p201218117114"></a>security_services_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1512101119119"><a name="p1512101119119"></a><a name="p1512101119119"></a>security_deviceauth</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p612161111119"><a name="p612161111119"></a><a name="p612161111119"></a>仓名变更</p>
</td>
</tr>
<tr id="row17151161117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p121217111515"><a name="p121217111515"></a><a name="p121217111515"></a>security_interfaces_innerkits_hichainsdk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p18127113119"><a name="p18127113119"></a><a name="p18127113119"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p121220116110"><a name="p121220116110"></a><a name="p121220116110"></a>只读归档</p>
</td>
</tr>
<tr id="row191501611710"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17121114120"><a name="p17121114120"></a><a name="p17121114120"></a>security_services_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1412811119"><a name="p1412811119"></a><a name="p1412811119"></a>security_huks</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p14129117112"><a name="p14129117112"></a><a name="p14129117112"></a>仓名变更</p>
</td>
</tr>
<tr id="row6150191115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p412181117112"><a name="p412181117112"></a><a name="p412181117112"></a>security_interfaces_innerkits_huks_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p191201115110"><a name="p191201115110"></a><a name="p191201115110"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31281110114"><a name="p31281110114"></a><a name="p31281110114"></a>只读归档</p>
</td>
</tr>
<tr id="row16150161113118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p01212110114"><a name="p01212110114"></a><a name="p01212110114"></a>security_frameworks_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p10132115118"><a name="p10132115118"></a><a name="p10132115118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1138111015"><a name="p1138111015"></a><a name="p1138111015"></a>只读归档</p>
</td>
</tr>
<tr id="row415015111419"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12131011513"><a name="p12131011513"></a><a name="p12131011513"></a>security_interfaces_innerkits_crypto_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p61315112013"><a name="p61315112013"></a><a name="p61315112013"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p413141116112"><a name="p413141116112"></a><a name="p413141116112"></a>只读归档</p>
</td>
</tr>
<tr id="row615012111417"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p613121110118"><a name="p613121110118"></a><a name="p613121110118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p31341114116"><a name="p31341114116"></a><a name="p31341114116"></a>signcenter_tool</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p9136119111"><a name="p9136119111"></a><a name="p9136119111"></a>新增组件</p>
</td>
</tr>
<tr id="row915021114110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p141381118111"><a name="p141381118111"></a><a name="p141381118111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11331113111"><a name="p11331113111"></a><a name="p11331113111"></a>third_party_cryptsetup</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p101391111113"><a name="p101391111113"></a><a name="p101391111113"></a>新增组件</p>
</td>
</tr>
<tr id="row1515010111813"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17135111112"><a name="p17135111112"></a><a name="p17135111112"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p41313111116"><a name="p41313111116"></a><a name="p41313111116"></a>third_party_JSON-C</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16134113114"><a name="p16134113114"></a><a name="p16134113114"></a>新增组件</p>
</td>
</tr>
<tr id="row1815031117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0133113116"><a name="p0133113116"></a><a name="p0133113116"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1014171117120"><a name="p1014171117120"></a><a name="p1014171117120"></a>third_party_libuuid</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p914171117112"><a name="p914171117112"></a><a name="p914171117112"></a>新增组件</p>
</td>
</tr>
<tr id="row51501611515"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p191418111412"><a name="p191418111412"></a><a name="p191418111412"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0147111618"><a name="p0147111618"></a><a name="p0147111618"></a>third_party_LVM2</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1814181111112"><a name="p1814181111112"></a><a name="p1814181111112"></a>新增组件</p>
</td>
</tr>
<tr id="row151504111413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15143119111"><a name="p15143119111"></a><a name="p15143119111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p121413112115"><a name="p121413112115"></a><a name="p121413112115"></a>third_party_popt</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1114311312"><a name="p1114311312"></a><a name="p1114311312"></a>新增组件</p>
</td>
</tr>
<tr id="row1215061120115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p4142114111"><a name="p4142114111"></a><a name="p4142114111"></a>communication_interfaces_kits_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p161441110113"><a name="p161441110113"></a><a name="p161441110113"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p101419116115"><a name="p101419116115"></a><a name="p101419116115"></a>只读归档</p>
</td>
</tr>
<tr id="row131502115117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14141611315"><a name="p14141611315"></a><a name="p14141611315"></a>communication_frameworks_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p514181112117"><a name="p514181112117"></a><a name="p514181112117"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p414151119114"><a name="p414151119114"></a><a name="p414151119114"></a>只读归档</p>
</td>
</tr>
<tr id="row715010118116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p71551114114"><a name="p71551114114"></a><a name="p71551114114"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5151711312"><a name="p5151711312"></a><a name="p5151711312"></a>communication_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p181512118118"><a name="p181512118118"></a><a name="p181512118118"></a>新增组件</p>
</td>
</tr>
<tr id="row14150121110113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1215711419"><a name="p1215711419"></a><a name="p1215711419"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p151515117117"><a name="p151515117117"></a><a name="p151515117117"></a>powermgr_powermgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1015191116115"><a name="p1015191116115"></a><a name="p1015191116115"></a>新增组件</p>
</td>
</tr>
<tr id="row12150511311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p8152011815"><a name="p8152011815"></a><a name="p8152011815"></a>distributedschedule_services_dtbschedmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p815811918"><a name="p815811918"></a><a name="p815811918"></a>distributedschedule_dms_fwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18151113120"><a name="p18151113120"></a><a name="p18151113120"></a>仓名变更</p>
</td>
</tr>
<tr id="row2015061110115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p191516111514"><a name="p191516111514"></a><a name="p191516111514"></a>distributedschedule_services_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p19151111512"><a name="p19151111512"></a><a name="p19151111512"></a>distributedschedule_safwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11581116114"><a name="p11581116114"></a><a name="p11581116114"></a>仓名变更</p>
</td>
</tr>
<tr id="row51509113120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p111531111115"><a name="p111531111115"></a><a name="p111531111115"></a>distributedschedule_services_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p20151711418"><a name="p20151711418"></a><a name="p20151711418"></a>distributedschedule_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p111541118116"><a name="p111541118116"></a><a name="p111541118116"></a>仓名变更</p>
</td>
</tr>
<tr id="row1115018112114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p516171112110"><a name="p516171112110"></a><a name="p516171112110"></a>distributedschedule_interfaces_innerkits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4163112118"><a name="p4163112118"></a><a name="p4163112118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p61621110114"><a name="p61621110114"></a><a name="p61621110114"></a>只读归档</p>
</td>
</tr>
<tr id="row13150311413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p416211212"><a name="p416211212"></a><a name="p416211212"></a>distributedschedule_interfaces_kits_samgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1116171111117"><a name="p1116171111117"></a><a name="p1116171111117"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p716161119113"><a name="p716161119113"></a><a name="p716161119113"></a>只读归档</p>
</td>
</tr>
<tr id="row1515017111511"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p6162117115"><a name="p6162117115"></a><a name="p6162117115"></a>multimedia_frameworks_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p13166111112"><a name="p13166111112"></a><a name="p13166111112"></a>multimedia_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p0163112120"><a name="p0163112120"></a><a name="p0163112120"></a>仓名变更</p>
</td>
</tr>
<tr id="row1115081110117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p21619111411"><a name="p21619111411"></a><a name="p21619111411"></a>multimedia_frameworks_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3168113114"><a name="p3168113114"></a><a name="p3168113114"></a>multimedia_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4161011316"><a name="p4161011316"></a><a name="p4161011316"></a>仓名变更</p>
</td>
</tr>
<tr id="row415010116114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1161111410"><a name="p1161111410"></a><a name="p1161111410"></a>multimedia_frameworks_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p151691115110"><a name="p151691115110"></a><a name="p151691115110"></a>multimedia_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p31720110114"><a name="p31720110114"></a><a name="p31720110114"></a>仓名变更</p>
</td>
</tr>
<tr id="row61502116111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p141751114116"><a name="p141751114116"></a><a name="p141751114116"></a>multimedia_hals_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p01720119111"><a name="p01720119111"></a><a name="p01720119111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p81717111213"><a name="p81717111213"></a><a name="p81717111213"></a>只读归档</p>
</td>
</tr>
<tr id="row915010112116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p2177111117"><a name="p2177111117"></a><a name="p2177111117"></a>multimedia_frameworks_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p71712119117"><a name="p71712119117"></a><a name="p71712119117"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p17171111015"><a name="p17171111015"></a><a name="p17171111015"></a>只读归档</p>
</td>
</tr>
<tr id="row1615019111111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p91710114111"><a name="p91710114111"></a><a name="p91710114111"></a>multimedia_interfaces_kits_audio_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1917411114"><a name="p1917411114"></a><a name="p1917411114"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1173111914"><a name="p1173111914"></a><a name="p1173111914"></a>只读归档</p>
</td>
</tr>
<tr id="row1815012111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p0171111214"><a name="p0171111214"></a><a name="p0171111214"></a>multimedia_interfaces_kits_camera_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11717111819"><a name="p11717111819"></a><a name="p11717111819"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1017811112"><a name="p1017811112"></a><a name="p1017811112"></a>只读归档</p>
</td>
</tr>
<tr id="row715020117112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p71716113114"><a name="p71716113114"></a><a name="p71716113114"></a>multimedia_interfaces_kits_player_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12189114114"><a name="p12189114114"></a><a name="p12189114114"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p21811111319"><a name="p21811111319"></a><a name="p21811111319"></a>只读归档</p>
</td>
</tr>
<tr id="row8150151118120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p17188116110"><a name="p17188116110"></a><a name="p17188116110"></a>multimedia_interfaces_kits_recorder_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p81813118110"><a name="p81813118110"></a><a name="p81813118110"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1518111114110"><a name="p1518111114110"></a><a name="p1518111114110"></a>只读归档</p>
</td>
</tr>
<tr id="row201491811815"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p171831118117"><a name="p171831118117"></a><a name="p171831118117"></a>multimedia_services_media_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p18188111815"><a name="p18188111815"></a><a name="p18188111815"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p71812111316"><a name="p71812111316"></a><a name="p71812111316"></a>只读归档</p>
</td>
</tr>
<tr id="row141493116113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p14189112013"><a name="p14189112013"></a><a name="p14189112013"></a>kernel_liteos_a_huawei_proprietary_fs_proc</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p201817111115"><a name="p201817111115"></a><a name="p201817111115"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1918611618"><a name="p1918611618"></a><a name="p1918611618"></a>只读归档</p>
</td>
</tr>
<tr id="row101495114110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1418101116111"><a name="p1418101116111"></a><a name="p1418101116111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p171818117118"><a name="p171818117118"></a><a name="p171818117118"></a>third_party_mksh</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2018121120115"><a name="p2018121120115"></a><a name="p2018121120115"></a>新增组件</p>
</td>
</tr>
<tr id="row1614917113112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p5191111414"><a name="p5191111414"></a><a name="p5191111414"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1419201115118"><a name="p1419201115118"></a><a name="p1419201115118"></a>third_party_optimized_routines</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18191711211"><a name="p18191711211"></a><a name="p18191711211"></a>新增组件</p>
</td>
</tr>
<tr id="row7149121120114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p151918117112"><a name="p151918117112"></a><a name="p151918117112"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p181916111611"><a name="p181916111611"></a><a name="p181916111611"></a>third_party_toybox</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p121914111618"><a name="p121914111618"></a><a name="p121914111618"></a>新增组件</p>
</td>
</tr>
<tr id="row151491117117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p171911112114"><a name="p171911112114"></a><a name="p171911112114"></a>vendor_huawei_camera</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p7191111814"><a name="p7191111814"></a><a name="p7191111814"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p219191115110"><a name="p219191115110"></a><a name="p219191115110"></a>只读归档</p>
</td>
</tr>
<tr id="row614919115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p101919111111"><a name="p101919111111"></a><a name="p101919111111"></a>vendor_huawei_wifi_iot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1119101111111"><a name="p1119101111111"></a><a name="p1119101111111"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1919111114115"><a name="p1919111114115"></a><a name="p1919111114115"></a>只读归档</p>
</td>
</tr>
<tr id="row12149811717"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p10198119114"><a name="p10198119114"></a><a name="p10198119114"></a>startup_services_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p72031119117"><a name="p72031119117"></a><a name="p72031119117"></a>startup_bootstrap_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1320121116111"><a name="p1320121116111"></a><a name="p1320121116111"></a>仓名变更</p>
</td>
</tr>
<tr id="row114991110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p420161112113"><a name="p420161112113"></a><a name="p420161112113"></a>startup_frameworks_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p122018111319"><a name="p122018111319"></a><a name="p122018111319"></a>startup_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1420711016"><a name="p1420711016"></a><a name="p1420711016"></a>仓名变更</p>
</td>
</tr>
<tr id="row1914981112110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p82041113119"><a name="p82041113119"></a><a name="p82041113119"></a>startup_hals_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p8204110113"><a name="p8204110113"></a><a name="p8204110113"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5203116116"><a name="p5203116116"></a><a name="p5203116116"></a>只读归档</p>
</td>
</tr>
<tr id="row714910111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102011112114"><a name="p102011112114"></a><a name="p102011112114"></a>startup_interfaces_kits_syspara_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p132081116113"><a name="p132081116113"></a><a name="p132081116113"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p02016111419"><a name="p02016111419"></a><a name="p02016111419"></a>只读归档</p>
</td>
</tr>
<tr id="row614917115119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p02081112120"><a name="p02081112120"></a><a name="p02081112120"></a>graphic_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5201011512"><a name="p5201011512"></a><a name="p5201011512"></a>graphic_surface</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p320111116119"><a name="p320111116119"></a><a name="p320111116119"></a>仓名变更</p>
</td>
</tr>
<tr id="row7149101110119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1621711214"><a name="p1621711214"></a><a name="p1621711214"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p32118113119"><a name="p32118113119"></a><a name="p32118113119"></a>graphic_ui</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p152161111110"><a name="p152161111110"></a><a name="p152161111110"></a>新增组件</p>
</td>
</tr>
<tr id="row121496111617"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1021211311"><a name="p1021211311"></a><a name="p1021211311"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p9211611416"><a name="p9211611416"></a><a name="p9211611416"></a>graphic_utils</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p221161120115"><a name="p221161120115"></a><a name="p221161120115"></a>新增组件</p>
</td>
</tr>
<tr id="row1214911111518"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102112111216"><a name="p102112111216"></a><a name="p102112111216"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2217117111"><a name="p2217117111"></a><a name="p2217117111"></a>graphic_wms</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3211911717"><a name="p3211911717"></a><a name="p3211911717"></a>新增组件</p>
</td>
</tr>
<tr id="row51493111319"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p9219111514"><a name="p9219111514"></a><a name="p9219111514"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p62116115113"><a name="p62116115113"></a><a name="p62116115113"></a>third_party_giflib</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4214116111"><a name="p4214116111"></a><a name="p4214116111"></a>新增组件</p>
</td>
</tr>
<tr id="row1714912115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p4211911616"><a name="p4211911616"></a><a name="p4211911616"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p15223111413"><a name="p15223111413"></a><a name="p15223111413"></a>third_party_qrcodegen</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p622811418"><a name="p622811418"></a><a name="p622811418"></a>新增组件</p>
</td>
</tr>
<tr id="row191496119117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p172251120118"><a name="p172251120118"></a><a name="p172251120118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p42212114119"><a name="p42212114119"></a><a name="p42212114119"></a>drivers_adapter_khdf_linux</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p5222111619"><a name="p5222111619"></a><a name="p5222111619"></a>新增组件</p>
</td>
</tr>
<tr id="row8149911112"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p52261114112"><a name="p52261114112"></a><a name="p52261114112"></a>drivers_hdf_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12211113115"><a name="p12211113115"></a><a name="p12211113115"></a>drivers_adapter_khdf_liteos</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p10221811516"><a name="p10221811516"></a><a name="p10221811516"></a>仓名变更</p>
</td>
</tr>
<tr id="row201491111616"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1221011413"><a name="p1221011413"></a><a name="p1221011413"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p192216111512"><a name="p192216111512"></a><a name="p192216111512"></a>drivers_adapter_uhdf</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p15221211811"><a name="p15221211811"></a><a name="p15221211811"></a>新增组件</p>
</td>
</tr>
<tr id="row1414910111413"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p142241114118"><a name="p142241114118"></a><a name="p142241114118"></a>drivers_hdf_frameworks</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11222112113"><a name="p11222112113"></a><a name="p11222112113"></a>drivers_framework</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2236111911"><a name="p2236111911"></a><a name="p2236111911"></a>仓名变更</p>
</td>
</tr>
<tr id="row17149201118115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p423111617"><a name="p423111617"></a><a name="p423111617"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p123121110114"><a name="p123121110114"></a><a name="p123121110114"></a>drivers_peripheral_audio</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p52317112119"><a name="p52317112119"></a><a name="p52317112119"></a>新增组件</p>
</td>
</tr>
<tr id="row141491711613"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12236117112"><a name="p12236117112"></a><a name="p12236117112"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182317115110"><a name="p182317115110"></a><a name="p182317115110"></a>drivers_peripheral_codec</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12231311617"><a name="p12231311617"></a><a name="p12231311617"></a>新增组件</p>
</td>
</tr>
<tr id="row1414916111017"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p5234119116"><a name="p5234119116"></a><a name="p5234119116"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p11231411813"><a name="p11231411813"></a><a name="p11231411813"></a>drivers_peripheral_display</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12351119113"><a name="p12351119113"></a><a name="p12351119113"></a>新增组件</p>
</td>
</tr>
<tr id="row3149511414"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p82315117116"><a name="p82315117116"></a><a name="p82315117116"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p16230111914"><a name="p16230111914"></a><a name="p16230111914"></a>drivers_peripheral_format</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p32313119113"><a name="p32313119113"></a><a name="p32313119113"></a>新增组件</p>
</td>
</tr>
<tr id="row914981120116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p52412111819"><a name="p52412111819"></a><a name="p52412111819"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p6248114114"><a name="p6248114114"></a><a name="p6248114114"></a>drivers_peripheral_input</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1724191113119"><a name="p1724191113119"></a><a name="p1724191113119"></a>新增组件</p>
</td>
</tr>
<tr id="row1114961117118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p62471111120"><a name="p62471111120"></a><a name="p62471111120"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182414112011"><a name="p182414112011"></a><a name="p182414112011"></a>drivers_peripheral_sensor</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11243112120"><a name="p11243112120"></a><a name="p11243112120"></a>新增组件</p>
</td>
</tr>
<tr id="row151491611914"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p16244113118"><a name="p16244113118"></a><a name="p16244113118"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p124171117113"><a name="p124171117113"></a><a name="p124171117113"></a>drivers_peripheral_wlan</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p124151114115"><a name="p124151114115"></a><a name="p124151114115"></a>新增组件</p>
</td>
</tr>
<tr id="row1314817111011"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p18248111615"><a name="p18248111615"></a><a name="p18248111615"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p10241911211"><a name="p10241911211"></a><a name="p10241911211"></a>global_cust_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16242011718"><a name="p16242011718"></a><a name="p16242011718"></a>新增组件</p>
</td>
</tr>
<tr id="row101482011311"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p122520111815"><a name="p122520111815"></a><a name="p122520111815"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1625181116113"><a name="p1625181116113"></a><a name="p1625181116113"></a>global_i18n_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1725111617"><a name="p1725111617"></a><a name="p1725111617"></a>新增组件</p>
</td>
</tr>
<tr id="row171486113113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1325191119117"><a name="p1325191119117"></a><a name="p1325191119117"></a>global_frameworks_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p22518111418"><a name="p22518111418"></a><a name="p22518111418"></a>global_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3254112113"><a name="p3254112113"></a><a name="p3254112113"></a>仓名变更</p>
</td>
</tr>
<tr id="row111489112012"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0254111118"><a name="p0254111118"></a><a name="p0254111118"></a>third_party_icu</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12571116118"><a name="p12571116118"></a><a name="p12571116118"></a>新增组件</p>
</td>
</tr>
<tr id="row11148141118119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p102581116119"><a name="p102581116119"></a><a name="p102581116119"></a>global_interfaces_innerkits_resmgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4251711817"><a name="p4251711817"></a><a name="p4251711817"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p13251511916"><a name="p13251511916"></a><a name="p13251511916"></a>只读归档</p>
</td>
</tr>
<tr id="row6148151110115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12615112116"><a name="p12615112116"></a><a name="p12615112116"></a>communication_frameworks_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p3262011110"><a name="p3262011110"></a><a name="p3262011110"></a>communication_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p326911918"><a name="p326911918"></a><a name="p326911918"></a>仓名变更</p>
</td>
</tr>
<tr id="row1914816117116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p92617119117"><a name="p92617119117"></a><a name="p92617119117"></a>communication_interfaces_kits_ipc_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p19262113112"><a name="p19262113112"></a><a name="p19262113112"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p426181116113"><a name="p426181116113"></a><a name="p426181116113"></a>只读归档</p>
</td>
</tr>
<tr id="row014821113115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p92621113111"><a name="p92621113111"></a><a name="p92621113111"></a>communication_interfaces_kits_softbuskit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1926121111115"><a name="p1926121111115"></a><a name="p1926121111115"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p112612115114"><a name="p112612115114"></a><a name="p112612115114"></a>只读归档</p>
</td>
</tr>
<tr id="row1914861120118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p8261111817"><a name="p8261111817"></a><a name="p8261111817"></a>communication_hals_wifi_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p182616115114"><a name="p182616115114"></a><a name="p182616115114"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16262113119"><a name="p16262113119"></a><a name="p16262113119"></a>只读归档</p>
</td>
</tr>
<tr id="row214812111114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p32710114119"><a name="p32710114119"></a><a name="p32710114119"></a>communication_services_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2272116112"><a name="p2272116112"></a><a name="p2272116112"></a>communication_softbus_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p172712113120"><a name="p172712113120"></a><a name="p172712113120"></a>仓名变更</p>
</td>
</tr>
<tr id="row16148161112119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15271011110"><a name="p15271011110"></a><a name="p15271011110"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12741115115"><a name="p12741115115"></a><a name="p12741115115"></a>communication_wifi_aware</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p527141115118"><a name="p527141115118"></a><a name="p527141115118"></a>新增组件</p>
</td>
</tr>
<tr id="row111487119113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11274111517"><a name="p11274111517"></a><a name="p11274111517"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1927811318"><a name="p1927811318"></a><a name="p1927811318"></a>update_ota_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p16271112014"><a name="p16271112014"></a><a name="p16271112014"></a>新增组件</p>
</td>
</tr>
<tr id="row20148151117114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1027131119119"><a name="p1027131119119"></a><a name="p1027131119119"></a>vendor_hisi_hi35xx_hi35xx_init</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p102712111813"><a name="p102712111813"></a><a name="p102712111813"></a>device_hisilicon_build</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p152716117114"><a name="p152716117114"></a><a name="p152716117114"></a>仓名变更</p>
</td>
</tr>
<tr id="row1314861117110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1028511716"><a name="p1028511716"></a><a name="p1028511716"></a>vendor_hisi_hi35xx_platform</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4281411410"><a name="p4281411410"></a><a name="p4281411410"></a>device_hisilicon_drivers</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p8287111119"><a name="p8287111119"></a><a name="p8287111119"></a>仓名变更</p>
</td>
</tr>
<tr id="row121481911218"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p15281211918"><a name="p15281211918"></a><a name="p15281211918"></a>vendor_hisi_hi35xx_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p128111118119"><a name="p128111118119"></a><a name="p128111118119"></a>device_hisilicon_hardware</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p7283111416"><a name="p7283111416"></a><a name="p7283111416"></a>仓名变更</p>
</td>
</tr>
<tr id="row11148171116110"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p42810113116"><a name="p42810113116"></a><a name="p42810113116"></a>vendor_hisi_hi35xx_hi3518ev300</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1282111814"><a name="p1282111814"></a><a name="p1282111814"></a>device_hisilicon_hispark_aries</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p22817111716"><a name="p22817111716"></a><a name="p22817111716"></a>仓名变更</p>
</td>
</tr>
<tr id="row614813111113"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p182811116114"><a name="p182811116114"></a><a name="p182811116114"></a>vendor_hisi_hi3861_hi3861</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4285112119"><a name="p4285112119"></a><a name="p4285112119"></a>device_hisilicon_hispark_pegasus</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p12821110110"><a name="p12821110110"></a><a name="p12821110110"></a>仓名变更</p>
</td>
</tr>
<tr id="row214821119120"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p3291811612"><a name="p3291811612"></a><a name="p3291811612"></a>vendor_hisi_hi35xx_hi3516dv300</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p13291811715"><a name="p13291811715"></a><a name="p13291811715"></a>device_hisilicon_hispark_taurus</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p11294111615"><a name="p11294111615"></a><a name="p11294111615"></a>仓名变更</p>
</td>
</tr>
<tr id="row1314820111319"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p19297115119"><a name="p19297115119"></a><a name="p19297115119"></a>vendor_hisi_hi35xx_middleware</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p202961117117"><a name="p202961117117"></a><a name="p202961117117"></a>device_hisilicon_modules</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p329151119110"><a name="p329151119110"></a><a name="p329151119110"></a>仓名变更</p>
</td>
</tr>
<tr id="row214814111719"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p162920111814"><a name="p162920111814"></a><a name="p162920111814"></a>vendor_hisi_hi35xx_middleware_source_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p12294111112"><a name="p12294111112"></a><a name="p12294111112"></a>device_hisilicon_third_party_ffmpeg</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p18291011915"><a name="p18291011915"></a><a name="p18291011915"></a>仓名变更</p>
</td>
</tr>
<tr id="row131486110119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p12291611916"><a name="p12291611916"></a><a name="p12291611916"></a>vendor_hisi_hi35xx_thirdparty_uboot_src</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1293111018"><a name="p1293111018"></a><a name="p1293111018"></a>device_hisilicon_third_party_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p22914111616"><a name="p22914111616"></a><a name="p22914111616"></a>仓名变更</p>
</td>
</tr>
<tr id="row181487111915"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p43013110113"><a name="p43013110113"></a><a name="p43013110113"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p03019111017"><a name="p03019111017"></a><a name="p03019111017"></a>vendor_hisilicon</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p4303114118"><a name="p4303114118"></a><a name="p4303114118"></a>新增组件</p>
</td>
</tr>
<tr id="row111481411211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p11301411119"><a name="p11301411119"></a><a name="p11301411119"></a>vendor_hisi_hi35xx_hi3516dv300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1330151111112"><a name="p1330151111112"></a><a name="p1330151111112"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p20304119111"><a name="p20304119111"></a><a name="p20304119111"></a>只读归档</p>
</td>
</tr>
<tr id="row714841112111"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33014114112"><a name="p33014114112"></a><a name="p33014114112"></a>vendor_hisi_hi35xx_hi3518ev300_uboot</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p5303111218"><a name="p5303111218"></a><a name="p5303111218"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1230611911"><a name="p1230611911"></a><a name="p1230611911"></a>只读归档</p>
</td>
</tr>
<tr id="row614841113116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p530811415"><a name="p530811415"></a><a name="p530811415"></a>aafwk_interfaces_innerkits_abilitykit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p2030511717"><a name="p2030511717"></a><a name="p2030511717"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p93061110118"><a name="p93061110118"></a><a name="p93061110118"></a>只读归档</p>
</td>
</tr>
<tr id="row181482111119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p203191115119"><a name="p203191115119"></a><a name="p203191115119"></a>aafwk_interfaces_innerkits_intent_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p831141113117"><a name="p831141113117"></a><a name="p831141113117"></a>aafwk_aafwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p3312112015"><a name="p3312112015"></a><a name="p3312112015"></a>仓名变更</p>
</td>
</tr>
<tr id="row2147191115115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1331611912"><a name="p1331611912"></a><a name="p1331611912"></a>aafwk_interfaces_innerkits_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1431111419"><a name="p1431111419"></a><a name="p1431111419"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p331911211"><a name="p331911211"></a><a name="p331911211"></a>只读归档</p>
</td>
</tr>
<tr id="row1114718115118"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33191113118"><a name="p33191113118"></a><a name="p33191113118"></a>appexecfwk_kits_appkit_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p631151110111"><a name="p631151110111"></a><a name="p631151110111"></a>appexecfwk_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1312111915"><a name="p1312111915"></a><a name="p1312111915"></a>仓名变更</p>
</td>
</tr>
<tr id="row161475111210"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p7311111417"><a name="p7311111417"></a><a name="p7311111417"></a>aafwk_frameworks_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p4311711515"><a name="p4311711515"></a><a name="p4311711515"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p831171111119"><a name="p831171111119"></a><a name="p831171111119"></a>只读归档</p>
</td>
</tr>
<tr id="row14147411211"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 ">&nbsp;&nbsp;</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p163241112114"><a name="p163241112114"></a><a name="p163241112114"></a>developtools_packing_tool</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p432151112116"><a name="p432151112116"></a><a name="p432151112116"></a>新增组件</p>
</td>
</tr>
<tr id="row4147191110114"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p23217111112"><a name="p23217111112"></a><a name="p23217111112"></a>aafwk_interfaces_kits_ability_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p183215111713"><a name="p183215111713"></a><a name="p183215111713"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1323111015"><a name="p1323111015"></a><a name="p1323111015"></a>只读归档</p>
</td>
</tr>
<tr id="row16147121116119"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p1532141113116"><a name="p1532141113116"></a><a name="p1532141113116"></a>appexecfwk_frameworks_bundle_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p153216111015"><a name="p153216111015"></a><a name="p153216111015"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p2323113117"><a name="p2323113117"></a><a name="p2323113117"></a>只读归档</p>
</td>
</tr>
<tr id="row914731112115"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p632811312"><a name="p632811312"></a><a name="p632811312"></a>aafwk_services_abilitymgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p93218111018"><a name="p93218111018"></a><a name="p93218111018"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p163231112115"><a name="p163231112115"></a><a name="p163231112115"></a>只读归档</p>
</td>
</tr>
<tr id="row1614741113117"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p33321115113"><a name="p33321115113"></a><a name="p33321115113"></a>appexecfwk_interfaces_innerkits_appexecfwk_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p23313111314"><a name="p23313111314"></a><a name="p23313111314"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p1933181110113"><a name="p1933181110113"></a><a name="p1933181110113"></a>只读归档</p>
</td>
</tr>
<tr id="row201471911116"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p103316111314"><a name="p103316111314"></a><a name="p103316111314"></a>appexecfwk_interfaces_innerkits_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p14339111417"><a name="p14339111417"></a><a name="p14339111417"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p193314114117"><a name="p193314114117"></a><a name="p193314114117"></a>只读归档</p>
</td>
</tr>
<tr id="row121474111718"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p93317112013"><a name="p93317112013"></a><a name="p93317112013"></a>appexecfwk_services_bundlemgr_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p0331211910"><a name="p0331211910"></a><a name="p0331211910"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p43318111120"><a name="p43318111120"></a><a name="p43318111120"></a>只读归档</p>
</td>
</tr>
<tr id="row61471111819"><td class="cellrowborder" valign="top" width="33.64%" headers="mcps1.2.4.1.1 "><p id="p103361113118"><a name="p103361113118"></a><a name="p103361113118"></a>aafwk_frameworks_kits_content_lite</p>
</td>
<td class="cellrowborder" valign="top" width="37.059999999999995%" headers="mcps1.2.4.1.2 "><p id="p1133611212"><a name="p1133611212"></a><a name="p1133611212"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="29.299999999999997%" headers="mcps1.2.4.1.3 "><p id="p123411115112"><a name="p123411115112"></a><a name="p123411115112"></a>只读归档</p>
</td>
</tr>
</tbody>
</table>
## 已修复缺陷列表<a name="section11935243172612"></a>
针对OpenHarmony 1.0版本的缺陷列表,解决并修复的问题请参见下表。
**表 4** 修复问题列表
<a name="table1934113413913"></a>
<table><thead align="left"><tr id="row4341334203914"><th class="cellrowborder" valign="top" width="22.650000000000002%" id="mcps1.2.3.1.1"><p id="p711564410397"><a name="p711564410397"></a><a name="p711564410397"></a>ISSUE</p>
</th>
<th class="cellrowborder" valign="top" width="77.35%" id="mcps1.2.3.1.2"><p id="p411564416397"><a name="p411564416397"></a><a name="p411564416397"></a>问题描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row934223410393"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p133271454113911"><a name="p133271454113911"></a><a name="p133271454113911"></a><a href="https://gitee.com/openharmony/multimedia_camera_lite/issues/I3EALU" target="_blank" rel="noopener noreferrer">I3EALU</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p1132775483917"><a name="p1132775483917"></a><a name="p1132775483917"></a>【多媒体】cameraActs 用例执行时,找不到相机配置文件,初始失败的问题</p>
</td>
</tr>
<tr id="row0342133417396"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p153278540395"><a name="p153278540395"></a><a name="p153278540395"></a><a href="https://gitee.com/openharmony/drivers_adapter_khdf_liteos/issues/I3D71U" target="_blank" rel="noopener noreferrer">I3D71U</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p93271254153915"><a name="p93271254153915"></a><a name="p93271254153915"></a>【驱动】反复reset,启动到hmac_main_init SUCCESSULLY后,高概率出现系统挂死问题</p>
</td>
</tr>
<tr id="row8342934173920"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p7328145410392"><a name="p7328145410392"></a><a name="p7328145410392"></a><a href="https://gitee.com/openharmony/community/issues/I3EGUX" target="_blank" rel="noopener noreferrer">I3EGUX</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p9328654193918"><a name="p9328654193918"></a><a name="p9328654193918"></a>【可靠性问题】反复reset,出现一次KIdle进程crash,系统挂死无法启动</p>
</td>
</tr>
<tr id="row034213453916"><td class="cellrowborder" valign="top" width="22.650000000000002%" headers="mcps1.2.3.1.1 "><p id="p132875473912"><a name="p132875473912"></a><a name="p132875473912"></a><a href="https://gitee.com/openharmony/community/issues/I3DHIL" target="_blank" rel="noopener noreferrer">I3DHIL</a></p>
</td>
<td class="cellrowborder" valign="top" width="77.35%" headers="mcps1.2.3.1.2 "><p id="p17328105420391"><a name="p17328105420391"></a><a name="p17328105420391"></a>【系统问题】HI3518开源板剩余空间不足,导致ACTS用例大量失败</p>
</td>
</tr>
</tbody>
</table>
# OpenHarmony Release Notes # L0-L1 HarmonyOS Changelog
- [OpenHarmony 1.0.1(2021-03-15)](OpenHarmony-1-0-1.md) - [OpenHarmony 1.1.0 LTS(2021-04-27)](openharmony-1-1-0-lts.md)
- [OpenHarmony 1.0(2020-09-10)](OpenHarmony-1-0.md) - [OpenHarmony 1.0(2020-09-10)](openharmony-1-0.md)
# 社区资源推荐--持续更新中
本专刊旨在为您提供OpenHarmony学习资源、知识内容园地,帮助您快速学习。小编在这里汇聚了许多来自社区及开发者的精选资源,希望能把优质的内容分享给每一位热爱技术的你。
您可以通过行业大咖、资深开发者的分享与实践,高效学习相关知识。
您也可以通过技术专家们的官方解读,了解相关设计理念、技术架构、关键能力,让您的产品拥有更好的体验。
我们也将持续更新本专刊,为您提供最新资源。
当您学习某课程或功能时,功能可能会发生变化,请参考官方文档获取最新信息。
**备注**
此专刊内容来自于OpenHarmony/HarmonyOS合作社区、生态伙伴,汇聚广受开发者喜爱的网络课程等资源。
如需转载,请标注课程的来源、链接,课程讲师等基本信息。
如涉及版权问题,请联系我们,经核实后会尽快予以处理。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册