Android 源码 (AOSP) - 下载 ( Mac )

4,299 阅读3分钟

前言

领导: 我们自己搞一个Android系统的开发面板吧??
大家: 嗯, 嗯,嗯.
领导: 好像没有开发 Android ROM 的人, Android人力也不够, iOS已经完成现在的任务了吧?? 那好, 就 xxx(我) 来做Android ROM吧!
大家: 好, 可以!
我: 嗯, 嗯? 嗯!? 咦!??
领导: xxx(我), 有什么问题吗?
我: 没问题, 保证完成! 不过时间可能要久一点...
我(内心OS): mmp, 老子是iOS开发, 前段时间搞Android就算了, 现在直接搞 Android ROM 了. 黑人问号???
领导: 可以. 不过要尽快.

如上, 工作之路,如去西天取经, 永远不知道哪天迎来各种' 妖怪 '

在这里插入图片描述

开搞,开搞.

AOSP系列

该系列链接

开搞

自己的配置

硬件
Mac mini (Late 2014)
2.6 GHz i5
8G 1600 MHz DDR3
自己换了三星的500G固态硬盘

软件
系统版本: Mojave 10.14.4

源码
版本: android-6.0.1_r78

Git
version 2.21.0

下载源码

下载 repo

创建文件夹

mkdir ~/bin

下载repo 到 ~/bin/repo 路径下

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

给权限

chmod a+x ~/bin/repo

修改repo源

因墙的问题, 需要提高速度, 打开repo文件,将

REPO_URL = 'https://gerrit.googlesource.com/git-repo'

改成

REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'

然后用 repo 下载源码, 采用无人值守方式 ( 其实就是一直在后台下载, 只要网络不中断) , 并且支持断点下载

配置git邮箱

填入你自己的邮箱 ( 随意填, 不过看有人说, 如果你要收到消息的话, 还是 Google 邮箱比较推荐 )

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

下载源码

源码会下到你当前执行的路径下, 所以你先 cd 到你想要存放源码的文件夹

这里不要急着下, 看完下一节 repo脚本

# android-6.0.1_r78 就是你要下载的版本
repo init -u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r78
repo sync

在下载源代码的过程中可能会产生中断,那么可以在终端, 再次输入

repo sync 

如果 aosp.tuna.tsinghua.edu.cn/android/pla… 源不可用, 可以去 清华大学开源软件镜像站 查一下, 是否是更新了

repo 脚本

手动去再次执行 repo 这个肯定是不可能那么勤快的, 下载那么慢, 中途我都在喝茶中 ( 加上枸杞 (๑•̀ㅂ•́)و✧ )
这里建议编写一个脚本 xq_repo.sh, 自动重新去下载, 脚本代码如下

#!/bin/bash

# 记录开始下载时间
starttime=$(date +%Y-%m-%d_%H-%M-%S)
echo $starttime
mkdir $starttime

PATH=~/bin:$PATH
repo init -u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r78
repo sync

while [ $? = 1 ]; do
    echo "================sync failed, re-sync again ====="

	# 记录中断时间和次数
    failedtime=$(date +%Y-%m-%d_%H-%M-%S)
	echo $failedtime
	mkdir $failedtime
	
    sleep 5
    repo sync
done

# 记录结束下载时间
endtime=$(date +%Y-%m-%d_%H-%M-%S)
echo $endtime
mkdir $endtime

里面的记录时间, 只是我个人想知道大致整个下载时间和中断次数如何而已, 如果有童鞋不想要这些, 可自行删除

然后放脚本到你想要存储源码的文件夹下, 再启动 xq_repo.sh ( 当然, 要记得把自己电脑调成保持长时间运行...)

. xq_repo.sh

如果出现权限问题

chmod 755 xq_repo.sh

询问是否要用颜色的方式来区分内核和普通文件, 选择 y 就行了 在这里插入图片描述

完成

第二天早上来就看到完成了. 大致目录如下

在这里插入图片描述

我网速 50 M (每秒 3 ~ 4 M), android-6.0.1_r78 这个版本大小是 91G. 根据脚本记录, 全程用了5个半小时.
.repo (78G) 如果不需要, 可以删掉, 下载完之后可以删了.
那么其实最后存储大小大约是 13G 左右.

参考文章

官网下载教程
Mac上下载编译Android 6.0源代码详细教程

书籍

Android深度探索 卷2:系统应用源代码分析与ROM定制
Android系统级深入开发—移植与调试.韩超.梁泉.