AOSP下载编译

平台:Ubuntu 22.04 Desktop

文件:AOSP(清华源/中科大源)

AOSP,全称"Android Open Source Project",中文意为"Android 开放源代码项目"。发起者是谷歌,主要用途是移动设备的系统。

这里通过清华源下载Android代码。

1.安装依赖

$ sudo apt install build-essential bc flex bison gawk texinfo libncurses5-dev libssl-dev ssh net-tools
$ sudo apt install git cmake python3 gnupg gperf zip unzip wget curl zlib1g-dev gcc-multilib g++-multilib libc6-dev x11proto-core-dev libx11-dev lib32z1-dev liblz4-dev ccache libgl1-mesa-dev libxml2-util xsltproc u-boot-tools
$ sudo apt install openjdk-8-jdk

1.1 配置Git

填入你的邮箱和用户名,后面repo会用到。

$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

1.2 配置JDK

在java.security做如下修改:

--- a/etc/java-8-openjdk/security/java.security
+++ b/etc/java-8-openjdk/security/java.security
@@ -703,7 +703,7 @@ jdk.jar.disabledAlgorithms=MD2, MD5, RSA
 #
 # Example:
 #   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048
-jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
+jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
     DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
     include jdk.disabled.namedCurves

2.下载AOSP

下载方法也可参考官方教程,或者往下看(以清华源为例):

清华源官方教程:[https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/].

中科大源官方教程:[https://mirrors.ustc.edu.cn/help/aosp.html].

2.1 下载repo

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
$ chmod a+x ~/bin/repo

repo的运行过程中会尝试访问官方的git源更新自己,但国内可能无法访问官方地址,所以更换成清华源的地址:

$ export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

2.2 下载aosp

建立工作目录:

$ mkdir android
$ cd android/

清华源提供了两种方式下载aosp,两种方法(正常方法/下载包方法)任选其一即可:

2.2.1 正常方法

$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

或者指定版本(版本号可参考2.2.3):

$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r25

然后执行:

$ repo sync -j4

最好不要超过4个线程下载,原因是:线程数越多,消耗源服务器的资源越多,清华源的服务器还可能会拒绝而自动断开。

2.2.2 下载包方法

$ curl -OC - https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
$ tar -xvf aosp-latest.tar

# 解压得到的 AOSP 工程目录 $ cd AOSP
/ $ repo sync -j4

2.2.3 Android版本号参考

截至2023.5.10:

# 如android-13.0.0_r41
android-13.0.0_r[1~41]

# 如android-12.1.0_r25
android-12.1.0_r[1~27]

android-12.0.0_r[1~46]
android-11.0.0_r[1~66]
android-10.0.0_r[1~75]
android-9.0.0_r[1~76]
android-8.1.0_r[1~93]

官网上介绍的更详细(但可能无法访问):

[https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds]

3.编译AOSP

以编译x86_64的Android模拟器为例:

$ source ./build/envsetup.sh
$ lunch

执行lunch,会显示一个列表,可供我们选择需要编译的工程:

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_barbet-userdebug
     4. aosp_bluejay-userdebug
     5. aosp_blueline-userdebug
     6. aosp_blueline_car-userdebug
     ...
     44. aosp_x86-eng
     45. aosp_x86_64-eng
     ...
     78. yukawa_sei510-userdebug

Which would you like? [aosp_arm-eng]

只要输入对应工程的数字序号,然后回车即可,也可以直接一步到位:

$ lunch 45

# 或者:
$ lunch aosp_x86_64-eng

然后执行编译:

$ make -j8

如果编译顺利的话,就生成了x86_64的Android模拟器了,我们执行:

$ emulator

就可以启动Android模拟器了。

posted @ 2023-05-10 13:15  this毛豆  阅读(148)  评论(0编辑  收藏  举报