MAC 下编译Android 6.0源码

MAC下编译Android 6.0源码

1.创建区分大小写的磁盘映像

由于MAC的文件系统默认是不区分大小写的,所以需要创建一个区分大小写的磁盘
  • 创建命令
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 200g /Volumes/WD/android.dmg

我是用了外接硬盘来存放源码和编译,空间比较多久所以设了200g,建议大小要设置到70g以上空间才够用。执行完之后可以在目录下看到android.dmg.sparseimage已经创建成功。

  • 挂载磁盘
hdiutil attach /Volumes/WD/android.dmg.sparseimage -mountpoint /Volumes/WD/android

2.安装JDK和一些配置

2.1JDK安装

编译不同的Android版本所需要的JDK版本也有所区别,Requirements中查看所需要的JDK版本,我编译的是Android6.0.1的源码,所以需要安装JDK1.7,JDK下载地址下载完成后在~/.bash_profile中配置下。

2.2修改文件描述符限制

在~/.bash_profile中添加以下内容:
# set the number of open files to be 1024
ulimit -S -n 1024

3.下载源码

3.1下载repo
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
3.2 进入到挂载的磁盘中下载源码

这边我用了清华大学的镜像源来进行下载

$ cd /Volumes/WD/android
$ mkdir android-6.0.1
$ cd android-6.0.1 

我的设备是Nexus 5X 根据Source Code Tags and Builds来选择合适的代码分支

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r17
3.3下载驱动

Binaries for Nexus Devices中选择合适的驱动,BUT没看到5X,我就选了5的驱动。下载完成后解压分别执行3个脚本文件,accept后会释放驱动到vendor

4编译

4.1选择需要编译的target
$ source build/envsetup.sh
$ lunch

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

我是5X所以需要选择aosp_bullhead-userdebug 在Selecting a device build中可以查阅,这边也是有点醉我选择了18但是最后编译出来的是17 aosp_angler,,表示无奈最后选择了19在编译了一次。

4.2编译
make -j4

视自己电脑的CPU而定不过好像j8和j4没什么区别,编译两次都差不多两小时。

5.刷机

连上手机

adb reboot bootloader
fastboot -w flashall

编译时候遇到的问题

build/core/combo/mac_version.mk:38:          
*****************************************************
build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at  
/Developer/SDKs/MacOSX10.6.sdk
build/core/combo/mac_version.mk:40: 
*****************************************************
build/core/combo/mac_version.mk:41: *** Stop..  Stop

解决方法:
查看你Xcode中/Developer/SDKs里面的版本,我的是10.11
然后在build/core/combo/mac_version.mk中修改
mac_sdk_versions_supported := 10.6 10.7 10.8

mac_sdk_versions_supported := 10.6 10.7 10.8 10.11

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值