前言
领导: 我们自己搞一个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
如果 https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest 源不可用, 可以去 清华大学开源软件镜像站 查一下, 是否是更新了
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 左右.
参考文章
官网下载教程
https://blog.csdn.net/yishon_android/article/details/51726676
书籍
Android深度探索 卷2:系统应用源代码分析与ROM定制
Android系统级深入开发—移植与调试.韩超.梁泉.