Mac环境下开发自有的可Remount的X86安卓镜像

部分场景下需要使用谷歌AOSP源码编译出来一套自己的X86镜像来替换Android studio自带的X86镜像,要求该镜像可Root和Remount来达到方便安卓ROM定制开发的目的。这里以android9.0为例。

1、前置条件

已获得一套android源码和完整的Ubuntu编译环境,本案例中的安卓源码为android-9.0.0_r76

2、执行编译命令编译镜像

source build/envsetup.sh
lunch aosp_x86_64-eng
make -j64

3、拷贝出需要的镜像成品

在路径out//target/product/generic_x86_64路径下拷贝出文件:kernel-ranchu、ramdisk.img、system-qemu.img、userdata.img、vendor-qemu.img。。然后将system-qemu.img改名为system.img,vendor-qemu.img改名为vendor.img。。成品如下图所示

image.png

4、Android studio上下载好相应的镜像并新建AVD模拟器

操作如图


image.png

5、将第三步中镜像成品(5个文件)覆盖到第四步中下载好的原生镜像中

本案例中目标为/Users/kaY/Library/Android/sdk/system-images/android-28/default/x86_64

其中kaY为你的电脑账户名

如下图,箭头为被覆盖替换的文件


image.png

可通过AVD起来后查看Build Number来判断是否替换成功


image.png

6、通过shell脚本启动模拟器

可以直接通过Android studio启动模拟器,但是会出现支持adb root但无法adb remount。。

如果需要remount只能通过脚本配置相应参数才能启动

脚本内容如下

#!/bin/sh
source ~/.profile
emulator -avd XXX_API_29 -writable-system

其中XXX_API_29为在第4步中新家的AVD实例名字

执行source ~/.profile是为了解决在模拟器中启动AVD:找不到QT库的问题,~/.prfofile内需要新增如下语句

function emulator { cd "$(dirname "$(which emulator)")" && ./emulator "$@"; }

参考

无法在模拟器中启动AVD:找不到QT库

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容