mac m2 安装 Android Emulator

您所在的位置:网站首页 MuMu模拟器怎么用Google mac m2 安装 Android Emulator

mac m2 安装 Android Emulator

2023-06-30 19:32| 来源: 网络整理| 查看: 265

背景

最近需要测试几个 APP,需要在 mac m2 上安装一个模拟器,从最开始安装 mumu 和 夜神模拟器,都出现一个艰难的问题,驱动无法启动。参考官方文档 https://mumu.163.com/help/20210610/35042_952685.html,捣鼓了一天都没有解决问题。

image.png

尝试安装 Android Emulator

从官网下载 dmg 文件,https://github.com/google/android-emulator-m1-preview/releases。

image.png

使用 dmg 文件安装完成后,在应用程序中正常会出现 Android Emulator。

image

可以正常启动,没有出现奇奇怪怪的问题。出现一个提示:意思是没有识别到 adb 程序,可以在 Settings 配置。

image.png

接下来我们配置一下 adb,在 Setting 功能页面,关闭 Use detected ADB location 。如果还没有安装 adb,可以直接使用 brew 来安装,安装完成后使用 adb version 检查一下是否安装成功。

kali$ brew install android-platform-tools kali$ adb version Android Debug Bridge version 1.0.41 Version 34.0.3-10161052 Installed as /opt/homebrew/bin/adb Running on Darwin 22.1.0 (arm64) image.png

点击文件夹图标,选择 adb 的安装路径,使用 brew 安装的话,adb 的路径一般是

# 34.0.3 文件夹是 adb 的版本号命名 /opt/homebrew/Caskroom/android-platform-tools/34.0.3/platform-tools/adb image

配置完成后,重启模拟器,没有再出现提示。

导入证书

为了使用模拟器配合 burpsuite 抓包,我们还需要导入证书作为系统证书,自从 android 7.0+ 后,应用默认不信任用户安装的证书,即用户证书。所以我们需要把 burpsuite 的证书导入作为系统证书。

从 burpsuite 中导入 der 格式证书。 使用 openssl 转为 pem 格式证书,接着计算 pem 证书 hash 值,并把 pem 证书重命名为 .0。 kali$ openssl x509 -inform DER -in cacert.der -out cacert.pem kali$ ls cacert.der cacert.pem kali$ openssl x509 -inform PEM -subject_hash_old -in cacert.pem 9a5ba575 -----BEGIN CERTIFICATE----- MIIDpzCCAo+gAwIBAgIEYLVE7zANBgkqhkiG9w0BAQsFADCBijEUMBIGA1UEBhML UG9ydFN3aWdnZXIxFDASBgNVBAgTC1BvcnRTd2lnZ2VyMRQwEgYDVQQHEwtQb3J0 U3dpZ2dlcjEUMBIGA1UEChMLUG9ydFN3aWdnZXIxFzAVBgNVBAsTDlBvcnRTd2ln Z2VyIENBMRcwFQYDVQQDEw5Qb3J0U3dpZ2dlciBDQTAeFw0xNDAzMTAwODE5NTRa Fw0zMzAzMTAwODE5NTRaMIGKMRQwEgYDVQQGEwtQb3J0U3dpZ2dlcjEUMBIGA1UE CBMLUG9ydFN3aWdnZXIxFDASBgNVBAcTC1BvcnRTd2lnZ2VyMRQwEgYDVQQKEwtQ b3J0U3dpZ2dlcjEXMBUGA1UECxMOUG9ydFN3aWdnZXIgQ0ExFzAVBgNVBAMTDlBv cnRTd2lnZ2VyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArRop fbWqHr/Pi8cLxe8HmXTAIYdQpbbHEp2QD5i1wDoFggSyPIQvvfZv+1wXIvye2hUa FaO/Ht33N4Swek0jfzvx5WFx1DZC5tcosOPLmFqfemyzthnBmCeFP5XNHkB2PGBn z/bpq9e9LvaDvPnuYf1cTLorlLHilvwWuAFWuur0WBEKMF/zC1sNg0tDKO5Xd1I1 XezKiHqYmsWYTi3Zy7P/g4rAaiRQLThK0/huZU9JnYjydgHZKSrjAVwUsFqjq6OZ 4Y+NvHNMHemvjMeypB3lHb8AUMu4DfHh/+Ur9e3ntFAp2W+xQQSsLo0HbbgXfrrL YMlaQY/5bvM1HgalAwIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 DQEBCwUAA4IBAQBR+VTg84Vf4yGUOJXNGsCxPaRvCufbyMEtXuhUdgGmn6v1xvye nqtup8cN+a85at6xEOBpRbCxL/O8R0T90Mow62GiUaI/5Z/8hTFE57mOC7TA76KL tZBa9wQqXdozCPiHkFlhMAVHOMYxkaJ8mVR+lMcurH532dO6v1ySs6ERjMmBs0AL HYzHgLN9o+t8flK/jyS906tttx8wgIsld3HpLgf5WZzfB9gJq8hU0PE2FWHVNAi4 85jx58ap1uFgvHfa1qee9J7vZziEdpE96Vy8lM7oumwuyVVl/4q363wwFW+aydeE 5iXVJc08Tp5fjtzr6hQGTzwTas5ssfzx9kHQ -----END CERTIFICATE----- kali$ mv cacert.pem 9a5ba575.0 kali$ ls 9a5ba575.0 cacert.der

系统级别的受信任证书以特殊格式存储在 /system/etc/security/cacerts 文件夹中,我们需要把 9a5ba575.0 证书复制到该目录下。意外总是不经意间来临,当执行这一操作时,遇到了一个没有权限的问题。

kali$ adb root kali$ adb remount dm_verity is enabled on the vendor partition. Use "adb disable-verity" to disable verity. If you do not, remount may succeed, however, you will still not be able to write to these volumes. remount of / failed: Permission denied remount of /system failed: Read-only file system remount failed

google 到的一些方法还是没有解决这个问题,大多数都是如下这种解决建议。

image.png

直到在某个答案下看到了一个 -writable-system 的提示,后来查看官方文档,顿时柳暗花明。如果启动时没有这个参数,默认情况下,模拟器将是采用只读的方式转载。

image.png

而我们刚刚是通过双击的方式打开,默认没有设置 -writable-system 这个参数。所以我们需要使用命令行打开模拟器才能自定义参数。

image.png 找到 Android Emulator 程序,按照顺序,显示包内容->Contents->MacOS 文件夹,可以看到一个 runemu 的运行脚本,尝试可以使用它来启动模拟器。 bash 代码的意思大概就是设置环境变量,然后启动模拟器。 #!/bin/bash cd "${0%/*}" export ANDROID_PRODUCT_OUT=`pwd`/api30-gphone-arm64-v8a export ANDROID_BUILD_TOP=$ANDROID_PRODUCT_OUT ./emulator/emulator

所以尝试给 ./emulator/emulator 启动命令加上参数 -writable-system,然后保存。

#!/bin/bash cd "${0%/*}" export ANDROID_PRODUCT_OUT=`pwd`/api30-gphone-arm64-v8a export ANDROID_BUILD_TOP=$ANDROID_PRODUCT_OUT ./emulator/emulator -writable-system

接下来打开终端执行启动脚本,发现模拟器正常启动。

kali$ ./runemu

再次使用 adb remount 命令时不再报错,成功把 burpsuite 的证书装入系统中。导入后需要执行命令更改证书的权限为 644。

kali$ adb push 9a5ba575.0 /system/etc/security/cacerts kali$ adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0 Pasted Graphic 4.png

最后,终于可以愉快的抓包了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3