Brooks

珍惜生命中的每一次冲动

0%

Android AOSP(一)源码和内核源码下载

AOSP(Android Open Source Project) 代码库可为您提供所需信息和源代码,供您创建定制的 Android 操作系统版本,将设备和配件移植到 Android 平台。官网:https://source.android.google.cn/

下载repo

Repo Google开发的一个工具,整合多个 Git 代码库,自动执行 Android 开发工作流程的部分环节。不会取代 Git,只是为了让您在 Android 环境中更轻松地使用 Git。

ubuntu输入命令:

1
sudo apt-get install git  

配置环境变量:

1
2
mkdir ~/bin
PATH=~/bin:$PATH

安装curl:

1
sudo apt-get install curl

下载repo并设置权限:

1
2
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

安装python:

1
sudo apt-get install python

下载源码

下载源码《方法一》

建立工作目录:

1
2
mkdir aosp
cd aosp

初始化仓库:

1
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

初始化并指定版本:

1
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.0.0_r15

同步源码树:

1
repo sync

然后等待下载完毕,大概源码大小为 65G

1
2
3
4
brooks@brooks-MiPro:~/aosp$ du -sh
65G

#我下载了N次,每次都会有小部分文件失败,然后编译,最终编译成功,但是模拟器跑步起来

下载源码《方法二》

方法一,任何网络故障大概率出现部分文件下载失败,强烈建议使用方法二。大概124G

1
2
3
4
wget -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包
tar xf aosp-latest.tar
cd AOSP # 解压得到的 AOSP 工程目录,此时只有一个隐藏的 .repo 目录
repo sync # 正常同步一遍即可得到完整目录 或 repo sync -l 仅checkout代码

此后,每次只需运行 repo sync 即可保持同步。 我们强烈建议您保持每天同步,并尽量选择凌晨等低峰时间

1
2
3
aosp-latest.tar                        100%[++++++++++===========================================================>] 123.57G  3.27MB/s    用时 9h 9m s

2021-07-23 08:40:22 (3.31 MB/s) - 已保存 “aosp-latest.tar” [132684083200/132684083200])

下载内核源码

AOSP源码中并不包括内核源码,需要单独下载,内核源码有很多版本,比如common是通用的Linux内核,msm是用于使用高通MSM芯片的Android设备,goldfish是用于Android模拟器的内核源码,这里以goldfish为例。

建立工作目录:

1
2
mkdir kernel
cd kernel

使用清华的镜像:

1
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git

注:大概率git下载失败,文件过大。网上搜增加git缓存-依然无效,后来想到国内gitee,借助它完美下载,速度超快。

1
2
3
4
5
6
7
8
9
10
#完美解决-下载速度快
git clone https://gitee.com/gnosz/goldfish.git

正克隆到 'goldfish'...
remote: Enumerating objects: 6038180, done.
remote: Counting objects: 100% (6038180/6038180), done.
remote: Compressing objects: 100% (916276/916276), done.
remote: Total 6038180 (delta 5082037), reused 6034994 (delta 5079268), pack-reused 0
接收对象中: 100% (6038180/6038180), 1.29 GiB | 3.37 MiB/s, 完成.
处理 delta 中: 100% (5082037/5082037), 完成.

这时kernel目录中会生成一个goldfish文件夹,进入后使用git命令查看有哪些内核版本分支可以下载:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
cd goldfish

brooks@MiPro:~/kernel/goldfish$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-3.10
remotes/origin/android-3.18
remotes/origin/android-3.4
remotes/origin/android-4.14
remotes/origin/android-4.4
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.10
remotes/origin/android-goldfish-3.10-k-dev
remotes/origin/android-goldfish-3.10-l-mr1-dev
remotes/origin/android-goldfish-3.10-m-dev
remotes/origin/android-goldfish-3.10-n-dev
remotes/origin/android-goldfish-3.18
remotes/origin/android-goldfish-3.18-dev
remotes/origin/android-goldfish-3.4
remotes/origin/android-goldfish-3.4-l-mr1-dev
remotes/origin/android-goldfish-4.14-dev
remotes/origin/android-goldfish-4.14-dev.120914098
remotes/origin/android-goldfish-4.14-dev.20190417
remotes/origin/android-goldfish-4.14-dev.backup
remotes/origin/android-goldfish-4.4-dev
remotes/origin/android-goldfish-4.9-dev
remotes/origin/b12
remotes/origin/b120914098
remotes/origin/heads/for/android-goldfish-3.18-dev
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master
remotes/origin/test
remotes/origin/tparker-recovery

这里选择下载goldfish 3.4版本

1
2
3
git checkout remotes/origin/android-goldfish-3.4

git switch -c origin/android-goldfish-3.4

感谢:

http://liuwangshu.cn/framework/aosp/2-download-aosp.html
https://source.android.google.cn/setup/start

欢迎关注我的其它发布渠道