-[Overview of Source Code Acquisition](#section12763342204)
-[Overview of Source Code Acquisition](#section12763342204)
-[Method 1: Acquiring Source Code from a Code Repository](#section537312010229)
-[Method 1: Acquiring Source Code from the Gitee Code Repository](#section537312010229)
-[When to Use](#section10881513459)
-[When to Use](#section10881513459)
-[Prerequisites](#section102871547153314)
-[Prerequisites](#section102871547153314)
-[How to Use](#section429012478331)
-[How to Use](#section429012478331)
-[Method 2: Acquiring Source Code from HPM](#section463013147412)
-[Method 2: Acquiring Source Code from DevEco Marketplace](#section463013147412)
-[When to Use](#section26661067443)
-[When to Use](#section26661067443)
-[Prerequisites](#section17544943123315)
-[Prerequisites](#section17544943123315)
-[How to Use](#section954619433333)
-[How to Use](#section954619433333)
-[Method 3: Acquiring Source Code from Image Sites](#section1186691118430)
-[Method 3: Acquiring Source Code from a Mirror Site](#section1186691118430)
-[Method 4: Acquiring Source Code from the GitHub Image Repository](#section23448418360)
-[Method 4: Acquiring Source Code from the GitHub Image Repository \(at 23:00 UTC Every Day\)](#section23448418360)
-[Source Code Directories](#section1072115612811)
-[Source Code Directories](#section1072115612811)
## About OpenHarmony<a name="section6370143622110"></a>
## About OpenHarmony<a name="section6370143622110"></a>
...
@@ -26,12 +26,12 @@ The open-source code repositories are available at [https://openharmony.gitee.co
...
@@ -26,12 +26,12 @@ The open-source code repositories are available at [https://openharmony.gitee.co
This document describes how to acquire OpenHarmony source code and provides its directory structure. The OpenHarmony code is open to you as [bundles](../bundles/bundles-standard-rules.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/bundles-standard-rules.md), which can be obtained in any of the following ways:
-**Method 1**: Acquire the source code from a code repository. You can use the**repo**or**git** tool to download the latest code from the code repository.
-**Method 1**: Acquire the source code from the Gitee code repository. You can use the **repo** or **git** tool to download the latest code from the code repository.
-**Method 2**: Acquire 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 2**: Acquire the source code from [DevEco Marketplace](https://repo.harmonyos.com/#/en/home). Visit [DevEco Marketplace](https://repo.harmonyos.com/#/en/home), 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**: Download the compressed file of a distribution from a mirror site. This method provides a fast download speed, so you can also use this method for obtaining the source code of an earlier version.
-**Method 3**: Download the compressed file of a distribution from a mirror site. This method provides a fast download speed, so you can also use this method for obtaining the source code of an earlier version.
-**Method 4**: Acquire the source code from the GitHub image repository. You can use the **repo**or **git**tool to download the latest code from the code repository.
-**Method 4**: Acquire the source code from the GitHub image repository. You can use the **repo** or **git**tool to download the latest code from the code repository.
## Method 1: Acquiring Source Code from a Code Repository<a name="section537312010229"></a>
## Method 1: Acquiring Source Code from the Gitee Code Repository<a name="section537312010229"></a>
### When to Use<a name="section10881513459"></a>
### When to Use<a name="section10881513459"></a>
...
@@ -50,7 +50,7 @@ This document describes how to acquire OpenHarmony source code and provides its
...
@@ -50,7 +50,7 @@ This document describes how to acquire OpenHarmony source code and provides its
1. Register your account with Gitee.
1. Register your account with Gitee.
2. Register an SSH public key for access to Gitee.
2. Register an SSH public key for access to Gitee.
3. Install the [git client](http://git-scm.com/book/en/v2) and[git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information.
3. Install the [git client](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [git-lfs](https://gitee.com/vcs-all-in-one/git-lfs?_from=gitee_search#downloading), and configure basic user information.
```
```
git config --global user.name "yourname"
git config --global user.name "yourname"
...
@@ -69,10 +69,10 @@ This document describes how to acquire OpenHarmony source code and provides its
...
@@ -69,10 +69,10 @@ This document describes how to acquire OpenHarmony source code and provides its
### How to Use<a name="section429012478331"></a>
### How to Use<a name="section429012478331"></a>
**Obtaining the Source Code for Mini/Small/Standard Systems \(2.0 Canary\)**
**Obtaining the Source Code for Mini/Small/Standard Systems**
>You can obtain the latest features from the master code, and develop commercial functionalities based on the release code, which is more stable.
>Download the master code if you want to get quick access to the latest features for your development. Download the release code, which is more stable, if you want to develop commercial functionalities.
-**Obtaining OpenHarmony master code**
-**Obtaining OpenHarmony master code**
...
@@ -93,26 +93,16 @@ This document describes how to acquire OpenHarmony source code and provides its
...
@@ -93,26 +93,16 @@ This document describes how to acquire OpenHarmony source code and provides its
- For details about how to obtain the source code of other OpenHarmony releases, see the [Release-Notes](../../release-notes/Readme.md).
## Method 2: Acquiring Source Code from HPM<a name="section463013147412"></a>
### When to Use<a name="section26661067443"></a>
### When to Use<a name="section26661067443"></a>
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) website, or customize a distribution by adding or deleting bundles of an open-source distribution. Then use **hpm-cli** to download and install the bundles and compilation toolchain on your local PC.
If OpenHarmony is new to you, sample solutions are helpful to your development. You can obtain an open-source distribution from [DevEco Marketplace](https://repo.harmonyos.com/#/en/home), or customize a distribution by adding or deleting bundles of an open-source distribution. Then use **hpm-cli** to download and install the bundles and compilation toolchain on your local PC.
@@ -122,7 +112,7 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
...
@@ -122,7 +112,7 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
Download **Node.js** from its official website and install it on your local PC.
Download **Node.js** from its official website and install it on your local PC.
You are advised to install [Node.js](https://nodejs.org/) 12.x \(including npm 6.14.4\) or a later version \(12.13.0 or later is recommended\).
The [Node.js](https://nodejs.org/) version must be 12.x \(including npm 6.14.4\) or later. An LTS version is recommended.
2. Install the hpm-cli tool using **npm** delivered with **Node.js**.
2. Install the hpm-cli tool using **npm** delivered with **Node.js**.
...
@@ -148,22 +138,22 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
...
@@ -148,22 +138,22 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
### How to Use<a name="section954619433333"></a>
### How to Use<a name="section954619433333"></a>
1. Search for distributions.
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.
1. Access [DevEco Marketplace](https://repo.harmonyos.com/#/en/home), and click **Equipment Bundle**.
2. Enter a keyword\(for example: **camera**\) in the search box. All matched distributions are found.
2. Enter a keyword, for example, **camera**, in the search box, and click the search icon. All matched distributions will be displayed on the **Open Source Distribution** page.
3. Specify filter criteria, such as the bundle type \(for example: **Board support** and **Kernel support**\), to further filter the distributions.
3. Specify filter criteria, such as the category, OS, kernel, and board, to further filter the distributions.
4. Find your desired distribution and click it to view details.
4. Find your desired distribution and click it to view details.
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.
1. Read the information about the distribution to learn its application scenarios, features, bundles, usage, and customization methods, as shown in the following figure.
2. Click **Download** to download the distribution to your local PC.
2. Click **Download** to download the distribution to your local PC.
3. Click **Custom** to add or delete bundles of the distribution.
3. Click **Custom** to add or delete bundles of the distribution.
**Figure 2** Example distribution<a name="fig950763112375"></a>
**Figure 2** Example distribution<a name="fig142484411121"></a>
1. Access the **Custom solution** page, as shown in the following figure.
1. Access the **Custom solution** page, as shown in the following figure.
...
@@ -171,16 +161,16 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
...
@@ -171,16 +161,16 @@ You must install **Node.js** and HPM on your local PC. The installation procedur
3. Enter the basic information about your project, including the bundle name, version, and description, on the right pane.
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.
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.
1. Decompress the downloaded file using the CLI tool CMD \(shell in Linux\).
1. Decompress the downloaded code structure file using CMD on Windows \(or shell in Linux\).
2. In the generated directory, run the **hpm install** command.
2. In the generated directory, run the **hpm install** command to download and install bundles. If the **Install successful** message is displayed, the command has been executed successfully.
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.\)
3. The downloaded bundles will be 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 Mirror Sites<a name="section1186691118430"></a>
## Method 3: Acquiring Source Code from a Mirror Site<a name="section1186691118430"></a>
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.
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.
...
@@ -191,67 +181,94 @@ To ensure the download performance, you are advised to download the source code
...
@@ -191,67 +181,94 @@ To ensure the download performance, you are advised to download the source code
<trid="row17736152318398"><tdclass="cellrowborder"valign="top"width="25%"><pid="p1110983610395"><aname="p1110983610395"></a><aname="p1110983610395"></a>Full code (for mini, small, and standard systems)</p>
<trid="row17736152318398"><tdclass="cellrowborder"valign="top"width="25%"><pid="p1110983610395"><aname="p1110983610395"></a><aname="p1110983610395"></a>Full code (for mini and small systems)</p>
<trid="row14814218214"><tdclass="cellrowborder"valign="top"width="25%"><pid="p2481132228"><aname="p2481132228"></a><aname="p2481132228"></a>Standard system solution (binary)</p>
<trid="row18518114121312"><tdclass="cellrowborder"valign="top"width="25%"><pid="p4437184283419"><aname="p4437184283419"></a><aname="p4437184283419"></a>Beta version (for standard systems)</p>
<trid="row4769431134919"><tdclass="cellrowborder"valign="top"width="25%"><pid="p97691031124913"><aname="p97691031124913"></a><aname="p97691031124913"></a>Full code (for standard systems)</p>
<trid="row4769431134919"><tdclass="cellrowborder"valign="top"width="25%"><pid="p97691031124913"><aname="p97691031124913"></a><aname="p97691031124913"></a>Full code (for standard systems)</p>
...
@@ -299,7 +316,7 @@ To ensure the download performance, you are advised to download the source code
...
@@ -299,7 +316,7 @@ To ensure the download performance, you are advised to download the source code
<tdclass="cellrowborder"valign="top"width="25%"><pid="p7416184953916"><aname="p7416184953916"></a><aname="p7416184953916"></a>1.0 (no longer maintained)</p>
<tdclass="cellrowborder"valign="top"width="25%"><pid="p7416184953916"><aname="p7416184953916"></a><aname="p7416184953916"></a>1.0 (no longer maintained)</p>
</td>
</td>
...
@@ -308,13 +325,13 @@ To ensure the download performance, you are advised to download the source code
...
@@ -308,13 +325,13 @@ To ensure the download performance, you are advised to download the source code
@@ -329,21 +346,23 @@ To ensure the download performance, you are advised to download the source code
...
@@ -329,21 +346,23 @@ To ensure the download performance, you are advised to download the source code
</tbody>
</tbody>
</table>
</table>
## Method 4: Acquiring Source Code from the GitHub Image Repository \(at 23:00 UTC Every Day\)<a name="section23448418360"></a>
## Method 4: Acquiring Source Code from the GitHub Image Repository (at 23:00 UTC Every Day)<a name="section23448418360"></a>
Method 1 \(recommended\): Use the **repo** tool to download the source code over SSH. \(You must have registered an SSH public key for access to GitHub. For details, see [Adding a new SSH key to your GitHub account](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account).\)
```
Method 1 \(recommended\): Use the**repo**tool to download the source code over SSH. \(You must have registered an SSH public key for access to Gitee.\)
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p090352912914"><aname="p090352912914"></a><aname="p090352912914"></a>Application samples, for example, <strongid="b689814231158"><aname="b689814231158"></a><aname="b689814231158"></a>camera</strong></p>
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p090352912914"><aname="p090352912914"></a><aname="p090352912914"></a>Application samples, for example, <strongid="b689814231158"><aname="b689814231158"></a><aname="b689814231158"></a>camera</strong></p>
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p790472962914"><aname="p790472962914"></a><aname="p790472962914"></a>Basic software service subsystem set and hardware service subsystem set</p>
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p790472962914"><aname="p790472962914"></a><aname="p790472962914"></a>Basic software service subsystem set and hardware service subsystem set</p>
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p690412296297"><aname="p690412296297"></a><aname="p690412296297"></a>Commonly used development tools</p>
<tdclass="cellrowborder"valign="top"width="50%"headers="mcps1.2.3.1.2 "><pid="p690412296297"><aname="p690412296297"></a><aname="p690412296297"></a>Commonly used development tools</p>