其實之前也有下載下傳過完整的android 源碼,但是從來沒有對這個做過一些總結,在加上最近需要經常去看,索性就在從新下載下傳,編譯一下,其實這些東西 官網上面都有。http://source.android.com/ 這個是網址,英文不錯的朋友可以直接看這個,還有點想說,現在都6.0.1了 如果編譯舊的版本好多東西都需要重新改, 建議編譯6.0.1 比較省力,當然看各自的需求了。
我的環境 - 系統版本 OS X 10.11.2 - jdk1.7.0_51.jdk - Xcode 7.1.1 -GNU Make 3.81
下載下傳源碼:
1.在使用者目錄下 建立 ~/bin 添加以下指令到~/.bash_profile export PATH=~/bin:$PATH 2.安裝repo。 具體參考 https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 如果中間斷掉 繼續同步就可以了
編譯: 1. 建立大小寫敏感的磁盤鏡像 可以通過磁盤管理工具進行設定,也可以通過以下指令生成鏡像檔案 hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 70g ~/Android.dmg.sparsefile 2.挂載磁盤 hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android 成功之後 會有 /dev/disk2 GUID_partition_scheme /dev/disk2s1 EFI /dev/disk2s2 Apple_HFS /Volumes/android 注意 這裡需要在不同的使用者下挂載,比如說這個 是挂載在系統目錄下的。 3.之後 将下載下傳好的源碼 放在 大小寫敏感的磁盤下面。可以将.repo目錄删除 4.執行 source build/envsetup.sh 5.執行 lunch 選擇相應的項 6.執行 make -j4 有時會報類似于 Please install the 10.5 SDK on this machine at /Developer/SDKs/MacOSX10.5.sdk 錯誤,6.0編譯的時候 編譯檔案 已經配置了多個SDK 如果還是沒有的話,隻需要将 Xcode 包 中的sdk添加進去就可以了。
7.在編譯iptables的時候會缺少一些檔案 在external/iptables/include/linux目錄下,添加缺少的檔案,可以參閱http://git.oschina.net/androidsourcecode/external_iptables/tree/master/include/linux 其實目錄下面是有這些檔案的,但是由于大小寫的問題是以需要在手動添加,這裡注意添加的時候 注意源檔案的 内容,添加完之後 最好在檢查一遍,我在這裡被坑了好多次。 8.重新執行 make -j4 大概執行 3個多小時 就編譯完成了
編譯成功會出現以下資訊: Generated: (out/target/product/generic/android-info.txt Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img Install system fs image: out/target/product/generic/system.img Target ram disk: out/target/product/generic/ramdisk.img Target userdata fs image: out/target/product/generic/userdata.img
運作模拟器 在~/ out/target/product/generic_x86_64 目錄下運作指令: emulator -image system.img -data userdata.img -ramdisk ramdisk.img
然後模拟器就起來了