筆者使用的ubuntu平臺手素,其他系統(tǒng)請自行研究
AOSP全稱:Android Open Source Project
若只是想下載源碼來看看你弦,不關(guān)注最新版本的,可以在下方鏈接下載,是熱心網(wǎng)友轉(zhuǎn)存的http://pan.baidu.com/s/1c8C0nsaosp
源碼4.4 5.0下載
如果你網(wǎng)絡(luò)好前联,不怕翻墻的話,也可以直接從谷歌官網(wǎng)同步(https://source.android.com/source/downloading.html)娶眷,本文講述從清華開源鏡像站同步的方法似嗤。清華開源鏡像站地址如下,該網(wǎng)站也有同步教程届宠,可以過去看https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
本文主要在該網(wǎng)站教程基礎(chǔ)上烁落,增加了遇到報錯時的解決辦法。
1豌注、下載repo工具伤塌,終端輸入命令
mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
2、同步源碼
建議先下載一份源碼轧铁,在此基礎(chǔ)上再同步每聪,會比直接同步快多了
最新源碼下載
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設(shè)置了,在某文件夾終端輸入repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
由于首次同步需要下載 24GB 數(shù)據(jù)梯刚,過程中任何網(wǎng)絡(luò)故障都可能造成同步失敗怠缸,我們強烈建議您使用初始化包進行初始化交洗。
筆者過程中遇到的錯誤:
錯誤1、python編碼問題
這里能找到答案
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
然后陸續(xù)輸入
import sys reload(sys) sys.setdefaultencoding("utf-8")
然后輸入下面的查一下成功了沒
sys.getdefaultencoding()
輸出utf-8那就對了這下繼續(xù)到aosp目錄下輸入
repo sync
看能否成功
錯誤2碍拆、error: .repo/manifests/: contains uncommitted changes
提示 還有未提交的改變
網(wǎng)上有很多解決辦法性芬,大多說的是先 cd .repo/manifests再執(zhí)行 git stash 和 git clean -f -d然后再repo sync 就可以通過了
很不幸運,這都對我沒用
最后找到一個回答在終端輸入
git config core.filemode false
(加入忽略文件權(quán)限的配置)再輸入repo sync總算成功了
等待數(shù)十分鐘的初始化瘦黑,完成后得到aosp源碼了最終得到的目錄如下
一些源碼常用目錄
應(yīng)用程序?qū)泳└铮夸?aosp/packages/apps/
框架層,目錄/aosp/frameworks/