Android开发-使用MuMu模拟器调试及使用Charles抓包

前言

Android开发可以使用自带的模拟器,但是运行起来太卡了。

这里可以使用MuMu模拟器,流畅太多了。

https://mumu.163.com/

使用

安装后,启动模拟器,在开发IDE上就能看到我们的模拟器vivo V2241A(设置不同,名称也不一样),直接选择这个就行。

如果不显示执行

1
adb root

HTTP抓包

官方文档

https://mumu.163.com/help/20240814/40912_1174291.html

Charles配置

因模拟器ROM在访问本地api时使用的是虚拟网络ip,ip地址为10.0.2.2

在接入Charles代理后,10.0.2.2需要被映射为127.0.0.1,才可正常使用,具体操作可参考以下步骤。

注:

如果原ip地址非10.0.2.2(考虑到虚拟网络ip存在变动的情况),请根据抓包接口的错误请求,将对应ip地址映射为127.0.0.1。

(1) 打开Rewrite界面

在Charles主页面点击顶部菜单栏 => Tools => Rewrite

img

(2) 启用Rewrite

在弹出的Rewrite Setting界面内,勾选Enable Rewrite,启用Rewrite功能,并点击Untitled Set;

img

(3) 调整untitled Set设置

点击Untitled Set后,点击Rewrite Setting界面右上侧的Add,在弹出的Edit Location界面内,将protocol改为http,再将Host改为10.0.2.2,点击OK保存;

img

(4) 调整Rewirte Rule设置

返回Rewrite Setting界面,点击界面右下侧的Add,在弹出的Rewirte Rule界面内,将Type更改为Host,Match—Value改为10.0.2.2(需要勾选Match whole value),之后将Replace—Value改为127.0.0.1(需要选择Replace all),点击OK保存后,再勾选Rewrite Setting界面右下侧的Host,保存即可。

img

注意

Charles 中过滤请求接口的地址还是我们实际访问的接口。

模拟器网络配置

其中IP可以通过Charles主页面,点击顶部菜单栏Help => Local IP Address,获取到IP Address(IP 地址端口)。

image-20250811185052260

HTTPS抓包

如果不涉及HTTPS抓包,就不用配置下面的的了。

系统本身安装证书

返回Charles主页面,点击顶部菜单栏 => Help => SSL Proxying => Install Charles Root Certificate,安装证书,完成后重启Charles即可。

img

img

img

img

img

img

保存.pem文件到本地

在Charles主页面点击顶部菜单栏—Help— Save Chales Certificate—保存到本地,如保存为Charles.pem;

img

打开命令提示符界面执行命令

进入Charles.pem所在磁盘目录下,点击磁盘地址栏-输入cmd并回车,在弹出的cmd界面(命令提示符界面)内,输入以下命令:

1
openssl x509 -inform PEM -subject_hash_old -in charles.pem

若输出结果第一行类似:a2414e42,则将Charles.pem更名为 a2414e42.0

1
ren charles.pem a2414e42.0

注意

若没有安装OpenSSL,可到官网下载安装>>点击访问

安装时OpenSSL选择默认安装,最后的捐款取消勾选。

我这里安装到了

D:\Tools\OpenSSL-Win64

之后配置环境变量,将OpenSSL安装路径bin的路径(例如 D:\Tools\OpenSSL-Win64\bin)加入到操作系统的系统环境变量Path中。

image-20250811184529729

模拟器证书导入

开启ROOT功能与可写系统盘

打开MuMu模拟器右上角菜单-设置中心,勾选开启手机ROOT功能,并将磁盘改为可写系统盘,保存设置后重启模拟器;

image-20250811190323756

image-20250811190357014

ADB导入

启用需要配置抓包的模拟器,输入以下命令行导入证书,导入完成后重启模拟器即可抓包。

1
2
3
4
5
6
7
8
9
10
11
adb kill-server

adb connect 127.0.0.1:7555

adb root

adb connect 127.0.0.1:7555

adb push a2414e42.0 /system/etc/security/cacerts

adb shell "chmod 664 /system/etc/security/cacerts/a2414e42.0"

注:7555为MuMu模拟器通用端口,指定端口可参考adb连接教程>>点击查看

重启模拟器之后需要重新执行adb root命令行;

a2414e42.0为示例保存证书,实际填入需要根据本机保存的证书名称填入。

ADB下载地址
链接: https://pan.baidu.com/s/1jk7Itlac6eJ0q3mTwAoRIg?pwd=psk6 提取码: psk6

修改SSL代理

返回Charles主页面,点击顶部菜单栏— Proxy(代理)— SSL Proxying Settings(SSL代理设置),勾选启用SSL代理,添加主机和端口都为*,并保存;

image-20250811190906704