Android 6.0 源码编译 on Mac
2016-08-23 本文已影响448人
plusend
一、设置 Mac 编译环境
- 参考Setting up a Mac OS build environment
- 建一个大小写敏感的分区
# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg
# 想更改该分区大小时
# hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
- 挂载分区
在 ~/.bash_profile(如果是 zsh,则为 .zshrc) 中添加下列代码。
# mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
# unmount the android file image
function umountAndroid() { hdiutil detach /Volumes/android; }
调用 mount 来挂载分区,unmount 来卸载。
- 其他
在 ~/.bash_profile ( 或者 .zshrc )中添加:
export PATH=/opt/local/bin:$PATH
# set the number of open files to be 1024
ulimit -S -n 1024
二、下载
从清华大学下载源码:清华大学 TUNA 镜像源 。
- 下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
- 使用每月更新的初始化包
由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,我们强烈建议您使用初始化包进行初始化。
下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下载完成后记得根据 checksum.txt 的内容校验一下。
wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
# 下载初始化包
tar xf aosp-latest.tar
cd AOSP
# 解压得到的 AOSP 工程目录# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录
- 指定特定的 Android 版本(列表),并同步
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r41
repo sync
- 下载对应的驱动
Binaries for Nexus Devices
驱动.png
从版本列表中可以看到对应的驱动编号。
从这里下载对应的驱动文件到源码目录,下载完成后解压,会发现三个sh文件,依次执行,例如:
$ ./extract-broadcom-hammerhead.sh
The license for this software will now be displayed.
You must agree to this license before using this software.
Press Enter to view the licenses
回车后查看license,翻到license最后,输入I ACCEPT后回车,这时会将驱动文件释放到vendor目录。
三、编译
- 配置编译环境
source build/envsetup.sh
- 选择对应的设备
You're building on Darwin
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. aosp_deb-userdebug
8. aosp_flo-userdebug
9. full_fugu-userdebug
10. aosp_fugu-userdebug
11. mini_emulator_arm64-userdebug
12. m_e_arm-userdebug
13. mini_emulator_mips-userdebug
14. mini_emulator_x86-userdebug
15. mini_emulator_x86_64-userdebug
16. aosp_flounder-userdebug
17. aosp_angler-userdebug
18. aosp_bullhead-userdebug
19. aosp_hammerhead-userdebug
20. aosp_hammerhead_fp-userdebug
21. aosp_shamu-userdebug
Which would you like? [aosp_arm-eng]
对应关系可以查阅 Selecting a device build
如果提示“Can not find SDK 10.6”,请修改“build/core/combo/mac_version.mk” 中的
mac_sdk_versions_supported := 10.6 10.7 10.8 10.9 10.11
- 启动编译
make -j4
四、刷机
- 指定刷机包的路径
export ANDROID_PRODUCT_OUT=/Volumes/android/aosp/out/target/product/hammerhead
- 进入 bootloader,并刷机
adb reboot bootloader
fastboot -w flashall