mac编译android源码,Mac OS上编译Android源码

一、制作一个大小写敏感的磁盘分区

1.1.Mac OS磁盘工具

这里我使用一块移动硬盘,将移动硬盘的一个分区使用Mac OS的硬盘工具,抹掉数据,选择MacOS扩展(区分大小写,日志式),创建成大小写敏感的分区。

9257ce4e0696b92e6ff23a12ab6f20ec.png

这里会遇到一个问题,抹掉分区数据的时候,会报错:“Mac OSX 抹盘发生错误:Mediakit 报告设备上空间不足以执行此操作”,这里的原因是磁盘没有大于200M的UEFI分区。

1.2.制作UEFI分区我是在windows上操作的,

使用DiskGenius工具,在移动硬盘的第一分区前部,划分出200MB的空间。

在cmd命令行下运行下列命令,记得分步执行啊,小心出错,数据无价。

1

2

3

4

5diskpart

list disk

select disk 1 ###这里选中要分区的磁盘,因为我是移动硬盘,index是1,这里应该会看到选择光标不要选错了

create partition efi size=200

详细的图文请参考:

二、下载Android源码

2.1.repo sync 出错1

2

3

4error: RPC failed; result=56, HTTP code = 200

fatal: The remote end hung up unexpectedly

fatal: early EOF

fatal: index-pack failed

repo sync时会出现如上错误,安装gnutls和wget后,

并参考stackoverflow解决。

2.2.如何选择驱动

4e36d2b9b7321d953b6528e4ffaaf91f.png

详细的图文请参考:

三、编译

一定要下载并安装驱动,下载nexus5 6.0.1_r17版本为例,需要下载执行下图三个sh

455aec1770175f344d50eb043b8c0cf6.png

1

2

3

4$chmod a+x ./*****.sh

$./*****.sh

输入I ACCEPT完成安装

1

2

3

4

5$source build/envsetup.sh

$lunch

$make -j16

四、如何将编译好的Android img刷入模拟器

需要设置ANDROID_PRODUCT_OUT变量到~/.bash_profile文件中

1

2

3

4#Android 源码编译目录

export PATH=$PATH:/Volumes/AOSP/android-6.0.1_r17-x86_64/out/host/darwin-x86/bin

export ANDROID_PRODUCT_OUT=/Volumes/AOSP/android-6.0.1_r17-x86_64/out/target/product/generic_x86_64

export PATH=$PATH:$ANDROID_PRODUCT_OUT

使用命令启动emulator,加载指定的kernel内核和img

1

2kans-MacBook-Pro:android-6.0.1_r17-x86_64 Ivonhoe$

emulator -kernel /Volumes/AOSP/android-6.0.1_r17-x86_64/prebuilts/qemu-kernel/x86_64/kernel-qemu -sysdir ./out/target/product/generic_x86_64/ -system /Volumes/AOSP/android-6.0.1_r17-x86_64/out/target/product/generic_x86_64/system.img -data /Volumes/AOSP/android-6.0.1_r17-x86_64/out/target/product/generic_x86_64/userdata.img -ramdisk /Volumes/AOSP/android-6.0.1_r17-x86_64/out/target/product/generic_x86_64/ramdisk.img

五、刷入Nexus6真机

Nexus6关机状态下,长按音量下+电源,进入recovery模式

然后在源码根目录下(Android根目录下)执行下面命令:

1fastboot -w flashall

d56bdf2dc4d230e29dc9053d4e803157.png

使用mmm framework/base单独编译framework代码

adb push可能会提示 Read-only file system

failed to copy 'out/target/product/shamu/system/framework/framework.jar'

to '/system/framework/framework.jar': Read-only file system

通过下列命令解决:

1

2

3

4

5

6adb root

adb remount

adb disable-verity

adb reboot

adb root

adb remount

六、参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值