8,460
个编辑
更改
→编译Android 12的源码
== 编译Android 12的源码 ==
{| class="wikitable" style="background-color:#ffffdc;width:800px;" |-| <big>'''Android12的编译是在安装有Ubuntu Android12的编译是在安装有<span style="color:#FF0000">Ubuntu 22.04的x86_64电脑上进行的,其它版本的Ubuntu系统包依赖可能会有一些区别,Ubuntu 04</span>的x86_64电脑上进行的,其它版本的Ubuntu系统包依赖可能会有一些区别,Ubuntu 22.04 amd64版本的镜像下载地址如下所示:<span style="color:#FF0000">amd64</span>版本的镜像下载地址如下所示:'''
[https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.2-desktop-amd64.iso '''https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.2-desktop-amd64.iso''']
'''编译Android12源码的x86_64电脑硬件配置建议内存为16GB或16GB以上,硬盘空间建议预留200GB或以上,CPU核心数越多越好。'''</big>|}
<ol style="list-style-type: decimal;">
<li><p>首先安装编译Android12源码需要的软件包</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''sudo apt-get update'''</p>
<p>test@test:~$ '''sudo apt-get install -y git gnupg flex bison gperf build-essential \'''</p>
<p>'''lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \'''</p>
<p>'''libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools python-is-python3 \'''</p>
<p>'''libssl-dev libncurses5 clang gawk'''</p>|}</li>
<li><p>然后编译'''longan'''文件夹中的代码,里面主要包含u-boot和linux内核</p>
<ol style="list-style-type: lower-alpha;">
<li><p>首先运行 '''./build.sh config'''设置编译选项</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''cd H618-Android12-Src/longan'''</p>
<p>test@test:~/H618-Android12-Src/longan$ '''./build.sh config'''</p>
<p>Welcome to mkscript setup progress</p>
<p>All available platform:</p>
:<p>0. android</p>:<p>1. linux</p><p>Choice [android]: '''<span style="color:#FF0000">0</span>'''</p>
<p>All available ic:</p>
:<p>0. h618</p><p>Choice [h618]: '''<span style="color:#FF0000">0</span>'''</p>
<p>All available board:</p>
:<p>0. ft</p>:<p>1. p1</p>:<p>2. p2</p>:<p>3. p7</p>:<p>4. p7l</p>:<p>5. perf1</p>:<p>6. perf2</p>:<p>7. perf3</p>:<p>8. qa</p><p>Choice [p2]: '''<span style="color:#FF0000">2</span>'''</p>
<p>All available flash:</p>
:<p>0. default</p>:<p>1. nor</p><p>Choice [default]: '''<span style="color:#FF0000">0</span>'''</p>
<p>All available kern_ver:</p>
:<p>0. linux-5.4</p><p>Choice [linux-5.4]: '''<span style="color:#FF0000">0</span>'''</p>
<p>All available arch:</p>
:<p>0. arm</p>:<p>1. arm64</p><p>Choice [arm64]: '''<span style="color:#FF0000">1</span>'''</p>
<p>'''......'''</p>
<p>*** Default configuration is based on 'sun50iw9p1smp_h618_android_defconfig'</p>
<p>make: Leaving directory '/home/test/H618-Android12-Src/longan/kernel/linux-5.4'</p>
<p>INFO: clean buildserver</p>
<p>INFO: prepare_buildserver</p>|}</li>
<li><p>然后运行'''./build.sh'''脚本就可以开始编译了</p>
{| class="wikitable" style="width:800px;" |-| <p>test@test:~/H618-Android12-Src/longan$ '''./build.sh'''</p>|}</li>
<li><p>编译完成后会看到下面的输出</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>sun50iw9p1 compile Kernel successful</p>
<p>INFO: Prepare toolchain ...</p>
<p>INFO: ----------------------------------------</p>
<p>INFO: build lichee OK.</p>
<p>INFO: ----------------------------------------</p>|}</li></ol>
</li>
<li><p>然后使用下面的命令编译安卓源码并生成最终的安卓镜像</p>
{| class="wikitable" style="width:800px;"
|-
|
<p>test@test:~$ '''cd H618-Android12-Src'''</p>
<p>test@test:~/H618-Android12-Src$ '''source build/envsetup.sh'''</p>
<p>test@test:~/H618-Android12-Src$ '''lunch apollo_p2-userdebug'''</p>
<p>test@test:~/H618-Android12-Src$ '''make -j8'''</p>
<p>test@test:~/H618-Android12-Src$ '''pack'''</p>|}</li>
<li><p>编译生成的安卓镜像存放路径为:</p>
{| class="wikitable" style="width:800px;" |-| <p>'''longan/out/h618_android12_p2_uart0.img'''</p>|}</li></ol>
= '''附录''' =