一. 下载源码
1. 安装所需软件:
git-core curl 不啦不啦...
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc gcc-multilib lib32readline5-dev lib32z-dev
2. 为了顺利下载源码,添加hosts
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com
3. 获取repo
3.1 新建一个bin目录
mkdir ~/bin
3.2 下载repo
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
3.3
给repo执行权限
chmod a+x ~/bin/repo
4. 开始下载源码
4.1 新建一个放置源码的文件夹
mkdir android4.3
cd android4.3
4.2 开始下载
~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android-4.3_r2.1
其中
android-4.3_r2.1是4.3的一个分支
repo sync
等待下载完成......超级漫长...下班开始等一晚上差不多了...
Fetching projects: 100% (329/329), done.
Checking out files: 100% (9390/9390), done.out files: 44% (4162/9390)
Checking out files: 100% (6764/6764), done.out files: 0% (2/6764)
Checking out files: 100% (24607/24607), done.ut files: 40% (10053/24607)
Checking out files: 100% (18696/18696), done.ut files: 1% (357/18696)
Checking out files: 100% (361/361), done.ng out files: 48% (175/361)
Checking out files: 100% (175/175), done.ng out files: 43% (76/175)
Checking out files: 100% (2407/2407), done. out files: 1% (39/2407)
Checking out files: 100% (137/137), done.ng out files: 44% (61/137)
Checking out files: 100% (40775/40775), done.ut files: 14% (5947/40775)
Checking out files: 100% (93/93), done.
Checking out files: 100% (450/450), done.
Checking out files: 100% (5265/5265), done. out files: 35% (1853/5265)
Checking out files: 100% (13/13), done.king out files: 15% (2/13)
Syncing work tree: 100% (329/329), done.
看到这个就说明下载完成了,呼呼...
二. 编译源码
1. 初始化
source build/envsetup.sh
2. 选择编译设备(关于这个设备,google官方有说明,本人是小白,一知半解的说...),
详见http://source.android.com/source/building-running.html#choose-a-target
lunch
3. 开始编译!
make -j4
有x个核就是make -j2*x
又是漫长的等待,不过和下载源码不是一个数量级的~~~
看到:
Install: out/target/product/generic/system/app/Browser.odex
Install: out/target/product/generic/system/app/Browser.apk
build/tools/generate-notice-files.py out/target/product/generic/obj/NOTICE.txt out/target/product/generic/obj/NOTICE.html "Notices for files contained in the filesystem images in this directory:" out/target/product/generic/obj/NOTICE_FILES/src
Combining NOTICE files into HTML
Combining NOTICE files into text
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Running: mkyaffs2image -f out/target/product/generic/system out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
生成img了有木有~~~~~~~~~~~
4. 跑跑试试?
emulator -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7 -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
出现了.......
下载期间遇到了无数问题, google之解决掉了,把链接放上来供大家参考
http://source.android.com/source/initializing.html 这个是google的官方文档,很有用
比如下载代码的时候卡死在了Receiving objects上, 官方解决办法是
http://source.android.com/source/downloading.html#troubleshooting-network-issues
又如下载返回error: Exited sync due to fetch errors...是由于使用的是公用网络,google对ip做了限制,解决办法是使用自己的帐号认证
http://source.android.com/source/downloading.html#using-authentication
话说老罗的这篇文章是很有价值的
http://blog.csdn.net/luoshengyang/article/details/6559955
先写这么多,小白一枚,请多指教