0.準備作業系統
如果需要編譯的版本<=2.2 可以用32位的linux,如果是>2.2的版本,要用64位的linux
推薦Ubuntu
1. 安裝需要的工具
參考這個連結:http://source.android.com/source/download.html
點Source > Getting the source
你可能會糾結於使用java1.5還是1.6, 當你想編譯Android比較早的版本時,會發現其實java1.5已經不被支援了,所以你在Ubuntu下直接apt-get是找不到的,這時你需要參考這個連結:http://blog.enea.com/Blog/bid/32050/Ubuntu-9-10-Java-5-and-the-Android-Open-Source-Project
當你的系統中安裝了多個版本的java時,你可以通過 sudo update-alternatives --config java 來選擇你需要用的java版本。
2.Android的編譯主要是用git,當你會看到google主要是用的工具叫做repo,這個其實是個python指令碼,你需要手動下載它:
下載repo指令碼並使其可執行:
1 $ curl http://android.git.kernel.org/repo >~/bin/repo
2 $ chmod a+x ~/bin/repo
4)初始化repo
repo是android對git的一個封裝,簡化了一些git的操作。
下一步就是使用repo去初始化代碼,和下載代碼:repo init -u git://android.git.kernel.org/platform/manifest.git
這樣預設是下載的代碼樹中的master,如果需要別的分支可以參考 http://source.android.com/source/download.html
這裡請注意,預設下載的時候是不包含kernel的原始碼的,如果你需要kernel的原始碼,你可以參考這個連結:
http://elinux.org/Android_Kernel_Download
3.一些奇怪的問題:
我安裝的是32bit的Ubuntu,在編譯主乾的代碼時,報錯說我需要64位的系統,還說需要java1.6。
你可以這樣解決:sudo apt-get install sun-java1.6-sdk
然後給自己修改原始碼,具體方法可以參考:
http://groups.google.com/group/android-platform/browse_thread/thread/b0bb991131589363
4.make