部分开发者在使用MuMu模拟器过程中,需要使用Charles进行抓包操作,但不清楚如何安装操作,可参考以下方法进行安装操作。

目录

一、模拟器版本与设置要求

二、Charles安装与环境配置

三、模拟器IP映射配置

四、模拟器证书安装流程


一、模拟器版本与设置要求

第一步,安装最新版本MuMu模拟器12,或将现已有的模拟器升级到最新版本:MuMu模拟器官网_安卓12模拟器_网易手游模拟器

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

   

二、Charles安装与环境配置

第一步,前往Charles官网获取最新版本安装包>>点击访问

第二步,安装完成后,在Charles主页面点击顶部菜单栏— Proxy(代理)— Proxy Settings(代理设置),设置Port(代理端口号)为8888;

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

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

   

三、模拟器IP映射配置

因模拟器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。

第一步,在Charles主页面点击顶部菜单栏— Tools — Rewrite;

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

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

第四步,返回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,保存即可。

四、模拟器证书安装流程

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

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

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

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

注:这个已更名的证书可以重复使用(过期后再重新生成即可),可以存放在方便的位置以便后续使用。

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

安装时OpenSSL选择默认安装,最后的捐款取消勾选。之后配置环境变量,将OpenSSL安装路径bin的路径(例如 C:\OpenSSL-Win64\bin)加入到操作系统的系统环境变量Path中。

第三步,返回Charles主页面,点击顶部菜单栏Help —Local IP Address,获取到IP Address(IP 地址端口);

第四步,返回模拟器主页面,点击桌面系统应用—设置—网络与互联网—互联网,点击WiFi右侧设置,进入WiFi详情页面并点击右上角编辑,打开高级选项,将代理切换为手动,代理主机名填入Charles获取到的IP地址,代理端口填入8888之后保存;

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

  adb kill-server

  adb connect 127.0.0.1:7555

  adb root

  adb connect 127.0.0.1:7555

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

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

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

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

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

   

五、注意事项

多开、全新安装和覆盖安装的模拟器都需要重新在模拟器上安装证书,开启模拟器的可写系统盘和ROOT权限后,跳过Windows系统内相关证书保存导出操作,从模拟器证书安装流程-第四步操作即可。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐