Ubuntu下载Android2.3+5.0系统源码

来源:互联网 发布:魅蓝note6无电信网络 编辑:程序博客网 时间:2024/05/17 05:55

由于需要研究2.2的系统源码,准备动手下载一下,前段时间下载过5.0的源码,但是没有记录过程,这次准备记录一下,算是轻车熟路吧.很快就开始同步了.它慢慢下载.我来写博客哈哈.

第一步:当然是准备环境了,我用的Ubuntu14.04虚拟机.下载过程可以参考Google官网的步骤,首先安装jdk,现在要求1.7以上才能编译了,还只能用这个openjdk-7-jdk,Oracle下载的jdk还不能用.

先执行sudo apt-get update

然后先安装两个东西这样下载源码就快了.

sudo apt-get install miredo
sudo apt-get install ndisc6

这两个是ipv6的东西,由于上谷歌需要翻墙但是我发现装了这两个之后下载源码还是木有问题的.

然后就是jdk,sudo apt-get install openjdk-7-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac

再加一些c++库

sudo apt-get install bison g++-multilib git gperf libxml2-utils

apt-get install lib32ncurses5 ia32-libs

安装lib32ncurses5 ia32-libs时会提示这个不能安装 只要照提示说的安装那三个即可.

由于这部分我早就装好了,所以没有截图.

第二步.下载一个算是简化下载的Google已经搞好的工具repo

首先创建一个目录, mkdir ~/bin

然后执行 PATH=~/bin:$PATH

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

再修改权限chmod a+x ~/bin/repo

再创建一个下载目录就是源码下载的位置.

mkdir  S_DIR
cd S_DIR

执行repo init -u https://android.googlesource.com/platform/manifest


然后会发现比较慢.

这个原因好像是因为Google为了限制下载的并发量造成的.有时候还会莫名其妙的断开

所以办法就来了.官网上提示需要认证.就是去登陆一下Google的网站然后会得到一串英文...

浏览器登录https://android.googlesource.com/new-password,输入自己的gmail帐号,点击网页上的“确定”

然后复制machine开头的两句话保存为一个.netrc文件就放在用户目录下.


再执行上面的命令repo init -u https://android.googlesource.com/platform/manifest不过这里有点不同

要加一个/a.repo init -u https://android.googlesource.com/a/platform/manifest




如果遇到一个叫Giterror这样的错误然后会提示你是谁.这时候只要按提示执行命令

 git config --global user.email "你的邮箱"

git config --global user.name "你的用户名"

然后就OK了.

















第三步:开始同步源码

如果repo init -u https://android.googlesource.com/platform/manifest 后面没有跟-b参数 则默认下载最新的版本

如果需要下载其他版本则需要在后面跟上参数repo init -u https://android.googlesource.com/a/platform/manifest -b    (版本)android-2.2.3_r2.1

我这里为2.2的版本.

至此准备工作已经全部完成.执行repo sync就可以同步源码了,由于不同的版本源码大小不一致所以下载的时间也不尽相同;下载中会产生很大的缓存.所以需要空间比较大最好20G以上.

前段时间下载的5.0的源码压缩之后有5.5G,解压后就不知道了.

第四步:下载完成之后就可以编译了

参照官网提示先执行:

gpg --import

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

git tag -v TAG_NAME

开始编译

source build/envsetup.sh

lunch aosp_arm-eng lunch后的参数可以有其他的 这里是模拟器所以是-eng
这里是指定缓存,也尽可能大一些,编译可能会快点
export USE_CCACHE=1
export CCACHE_DIR=/<path_of_your_choice>/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G
指定编译的线程
make -j4
如果有机器的话就可以烧机了.不过很遗憾我没有nexus的东东
adb reboot bootloader
fastboot flashall -w
模拟器启动...
emulator

最后附几张图片吧.













































现在5.1的源码也出来了





















附上上一次下载5.0的源码并编译的图片























如果有其他不足之处,请大家多多指教.大笑

0 0
原创粉丝点击