用repo从清华开源镜像站同步安卓最新AOSP源码(ubuntu平台)

来源:互联网 发布:java qq好友列表 编辑:程序博客网 时间:2024/04/30 17:34

笔者使用的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).

这里能找到答案
http://stackoverflow.com/questions/21129020/how-to-fix-unicodedecodeerror-ascii-codec-cant-decode-byte
就是说要改一下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源码了
最终得到的目录如下
这里写图片描述

0 0
原创粉丝点击