笔者使用的ubuntu平台,其他系统请自行研究
AOSP全称:Android Open Source Project
若只是想下载源码来看看,不关注最新版本的,可以在下方链接下载,是热心网友转存的
http://pan.baidu.com/s/1c8C0ns
aosp源码4.4 5.0下载
如果你网络好,也可以直接从谷歌官网同步,本文讲述从清华开源镜像站同步的方法。
清华开源镜像站地址如下,该网站也有同步教程,可以过去看
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
本文主要在该网站教程基础上,增加了遇到报错时的解决办法。
1、下载repo工具,终端输入命令
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2、同步源码
建议先下载一份源码,在此基础上再同步,会比直接同步快多了
最新源码下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
由于所有代码都是从隐藏的 .repo 目录中 checkout 出来的,所以只保留了 .repo 目录,下载后解压 再 repo sync 一遍即可得到完整的目录。
使用方法如下:
将下载后的aosp-latest.tar解压,然后进入解压文件夹
输入repo sync
正常同步一遍即可得到完整目录
此后,每次只需运行 repo sync 即可保持同步。
教程到此为止,如果你成功同步的话 终端会有一大串正在同步信息的信息输出,等几十分钟就好了,当然,笔者没那么好运。
如果你不想麻烦的话,也可以直接repo仓库,就不用做sync设置了,在某文件夹终端输入
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
笔者过程中遇到的错误:
1、python编码问题
注意最后一句UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe8 in position 1: ordinal not in range(128).
答案:要改一下Python编码,可以在python目录下的sitecustomize.py中修改,
也可以直接在报错文件的头部添加
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)
还有更方便的办法,直接在终端输入python,然后陆续输入
import sys
reload(sys)
sys.setdefaultencoding(“utf-8”)
然后查一下成功了没sys.getdefaultencoding(),输出utf-8那就对了
这下继续到aosp目录下输入repo sync看能否成功
2、error: .repo/manifests/: contains uncommitted changes
提示 还有未提交的改变
网上有很多解决办法,大多说的是
先 cd .repo/manifests
再执行 Git stash 和 git clean -f -d
然后再repo sync 就可以通过了
很不幸运,这都对我没用,最后找到一个回答
在终端输入
git config core.filemode false
(加入忽略文件权限的配置)
再输入repo sync总算成功了,等待数十分钟的初始化,完成后得到aosp源码了
最终得到的目录如下