Android 6.0 源码编译 on Mac

2016-08-23  本文已影响448人  plusend

一、设置 Mac 编译环境

  1. 参考Setting up a Mac OS build environment
  2. 建一个大小写敏感的分区
# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg
# 想更改该分区大小时
# hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
  1. 挂载分区
    在 ~/.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 来卸载。

  1. 其他
    在 ~/.bash_profile ( 或者 .zshrc )中添加:
export PATH=/opt/local/bin:$PATH
# set the number of open files to be 1024
ulimit -S -n 1024

二、下载

从清华大学下载源码:清华大学 TUNA 镜像源

  1. 下载 repo 工具:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
  1. 使用每月更新的初始化包
    由于首次同步需要下载 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 目录
  1. 指定特定的 Android 版本(列表),并同步
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r41
repo sync
  1. 下载对应的驱动
    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目录。

三、编译

  1. 配置编译环境
source build/envsetup.sh
  1. 选择对应的设备
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
  1. 启动编译
make -j4

四、刷机

  1. 指定刷机包的路径
export ANDROID_PRODUCT_OUT=/Volumes/android/aosp/out/target/product/hammerhead
  1. 进入 bootloader,并刷机
adb reboot bootloader
fastboot -w flashall

五、参考链接

  1. Mac OS X下编译Android M源码 ;
  2. Android编译过程中的碎碎念 ;
上一篇下一篇

猜你喜欢

热点阅读