创建AVD设备
点击启动按钮,打开avd设备
安装并启动apk
将apk安装包拖入avd设备桌面中安装
安装成功后,桌面上滑,通过图标启动,也可以通过adb命令启动
# 启动app
adb shell am start -W -n ${app包名}/${app启动Activity}
# 找app包名
adb shell pm list packages | grep ${keyword}
# 找启动类,利用AndroidSDK的build-tools下aapt命令对apk进行dump
cd ${AndroidSDK_PATH}/build-tools
./aapt dump badging ${/path/your.apk} | grep Activity
# 输出
launchable-activity: name=xxx
抓包
抓包软件charles,https://www.charlesproxy.com/
配置代理
charles查看本机IP
avd配置代理
启动app,查看抓包结果,发现https请求未知,只能抓到http请求
安装ssl证书
Android7.0以后,常规下载安装charles的证书的方法,只能装到用户证书下,非系统根证书,仍然是不被app信任的,无法抓https
avd设备是Android12,所以要用其他方法,将charles证书装到系统根证书下。
下载证书
会下载一个charles-ssl-proxying-certificate.pem证书
证书格式化
avd设备的系统证书和用户证书格式不同,我们需要格式化
查看avd设备系统证书
adb shell
cd /system/etc/security/cacerts/
ls
发现系统证书都是.0格式,名称是一串编码,我们可以通过openssl工具计算出证书名称,Mac和Linux一般自带openssl
openssl x509 -inform PEM -subject_hash_old -in charles-ssl-proxying-certificate.pem | head -1
# 3ebb862f
mv charles-ssl-proxying-certificate.pem 3ebb862f.0
上传证书
打开avd设备的文件系统,avd设备的根证书目录是/system/etc/security/cacerts/,在目录右键菜单选择上传刚刚的.0证书
会报错,显示“Read-only file system”,只读文件系统,无法上传
解决“Read-only file system”
解决方案是,以可写模式-writable-system重启avd设备,重新上传
# 进入AndroidSDK的emulator目录
cd /Users/${user}/Library/Android/sdk/emulator
# 查看avd设备列表
./emulator -list-avds
# iPhone_API_31
# ...
# -writable-system模式启动
./emulator -avd iPhone_API_31 -writable-system
# 开启system目录的写入权限
adb root
adb disable-verity
adb reboot
adb root
adb remount
重新上传成功,设置里可以看到charles证书已经在系统信任证书中了,抓app的https请求也成功了
文章来源:https://www.toymoban.com/news/detail-621421.html
文章来源地址https://www.toymoban.com/news/detail-621421.html
到了这里,关于AndroidStudio模拟器Charles抓包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!