在 Mac(M2核心) 上配置 Android Emulator 并使用 Charles 进行抓包
材料准备与下载
- 安装 Android Studio(如安装最新版,则无需安装 JDK):https://developer.android.com/studio
- 安装 Charles:https://www.charlesproxy.com/download/latest-release/
配置 Charles
- 勾选 Proxy => macOS Proxy
- Proxy => SSL Proxy Setting
- 安装证书:Help => SSL Proxying => Install Charles Root Certificate
- 信任证书,打开钥匙串,搜索 Charles,点击信任,选择始终信任
- 下载证书备用:Help => SSL Proxying => Save Charles Root Certificate
配置 Android Studio
- 新建项目 New Project => Empty Activity => SDK 选择 API 28 (“Pie”; Android 9.0)=> Finis
- 下载必要的 Emulator 与 Device 资源
- Tools => SDK Manager => SDK Tools,勾选 Android SDK Build-Tools 34、Android Emulator、Android SDK Platform-Tools,点击 Apply 进行下载
- Tools => Device Manager => Create Device => Choose a device definition (recommend Pixel 6) => Select a system image (recommend ARM Images Pie Android 9.0) => Finish
启动 Android Emulator 并获取 root 权限
- 在 Terminal 中查看有哪些可选 avd(Android Virtual Device):emulator -list-avds
- 在 Terminal 中切换到 emulator 可执行文件目录下(cd ~/Library/Android/sdk/emulator),并执行启动可写 emulator 的命令:./emulator -avd [avd name] -writable-system
- 获取 root 权限,在命令行中以此输入两行命令:
- adb root
- adb remount
- 虚拟器开启后,将安卓的安装文件拖入虚拟手机屏幕进行安装
Android Emulator 安装 charles CA 证书
在第一部配置 Charles 中我们保存了一份 Mac 端的根证书,在 Terminal 中使用命令 openssl x509 -subject_hash_old -in [证书文件名.pem],查看输出的一个8位字符,之后将证书名重新命名为 [8位字符].0。
使用 adb push [证书文件名] /system/etc/security/cacerts/ 命令将证书上传到安卓虚拟机证书目录下。
此时,charles 证书安装完成,在安卓虚拟机的 wifi 设置中指定 charles 的 ip 和端口,即可进行抓包和代理。