目录
- 前言
- 步骤
- 1、charles证书导出
- 2、本机安装openssl
- 3、修改模拟器中WLAN代理设置
- 4、计算hash并重命名文件
- 4、本机连接雷电模拟器
- 4.1、版本9
- 4.1.1、打开雷电模拟器的`root`权限和`ADB`调试
- 4.1.2 传输证书文件
- 4.1.3 移动证书
- 4.1.4、重启模拟器,在系统证书中就可以找到了
- 4.1.5、测试是否生效
- 4.2、版本14
- 4.2.1、移动证书
- 4.2.2、检查系统证书
- 4.2.3、测试
- 常见问题
- 1、mount命令提示not in /proc/mounts
- 2、模拟器14上传文件所在路径
- 3、模拟器9上传文件
- 参考文章
前言
在雷电模拟器中直接安装charles证书是存放在用户证书中,像模拟器中自带的浏览器这些软件只信任系统证书,因此当进入浏览器中访问网站时会提示证书有问题,接口会无法请求成功,需要通过命令修改方式将证书移动到系统证书下
雷电模拟器目前是版本9和14,这里分不同版本进行演示
步骤
1、charles证书导出
由于等一下需要对证书进行hash计算,这里我们导出格式为pem,不导出cer格式
2、本机安装openssl
这里我们使用git自带的openssl功能,没有安装git的可以参考其他博主的这篇文章:Git 详细安装教程(详解 Git 安装过程的每一个步骤)
3、修改模拟器中WLAN代理设置
先查看本机ip,在命令行中输入ipconfig
查看charles端口
进入雷电模拟器找到网络设置,修改为手动并添加ip和端口
4、计算hash并重命名文件
进入git的bash命令行
openssl x509-subject_hash_old-incharles_ces.pem
找到第一行cf9466aa后将charles_ces.pem重命名为cf9466aa.0
4、本机连接雷电模拟器
4.1、版本9
4.1.1、打开雷电模拟器的root权限和ADB调试
修改磁盘读写
4.1.2 传输证书文件
检查一下当前的adb设备
如果这里列表是空的,输入命令
adb connect 127.0.0.1:5554连接即可
这个时候列表会显示127.0.0.1:5555 device
手动将文件传到mnt\shared\Pictures中,这里我试过命令上传但是没生效,就直接拖拽进去了
4.1.3 移动证书
adb shellsucp/sdcard/Pictures/cf9466aa.0 /system/etc/security/cacerts/chmod644/system/etc/security/cacerts/cf9466aa.04.1.4、重启模拟器,在系统证书中就可以找到了
路径:设置->安全性和位置信息->加密与凭证->信任的凭证->系统
4.1.5、测试是否生效
4.2、版本14
4.2.1、移动证书
adb shellCERT_NAME='cf9466aa.0'mkdir-p-m700/data/local/tmp/tmp-ca-copycp/apex/com.android.conscrypt/cacerts/* /data/local/tmp/tmp-ca-copy/mount-ttmpfs tmpfs /system/etc/security/cacertsmv/data/local/tmp/tmp-ca-copy/* /system/etc/security/cacerts/cp/storage/emulated/0/Pictures/$CERT_NAME/system/etc/security/cacerts/chownroot:root /system/etc/security/cacerts/*chmod644/system/etc/security/cacerts/* chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*mount--bind/system/etc/security/cacerts /apex/com.android.conscrypt/cacerts命令
cp /storage/emulated/0/Pictures/$CERT_NAME /system/etc/security/cacerts/这里需要注意你把文件放在哪里了就写哪个前缀地址,比如我这里是/storage/emulated/0/Pictures,如果你是直接拖拽进入模拟器桌面的,默认就是这个路径,在文件管理器中打开图片就可以看到
4.2.2、检查系统证书
4.2.3、测试
雷电模拟器14在测试过程中出现Charles没有抓取到接口的情况,重启雷电模拟器又按命令走了几次就可以了,感觉应该是模拟器本身的问题,有遇到过的可以在评论区补充,推荐还是使用模拟器9,模拟器14整体改动有点大
常见问题
1、mount命令提示not in /proc/mounts
检查是否开启磁盘写功能
2、模拟器14上传文件所在路径
3、模拟器9上传文件
由于模拟器9没有和14一样的简易界面,可以选择直接打开文件夹后上传到文件夹里面
参考文章
- 雷电模拟器14安装Charles证书抓包
- 模拟器+charles 抓包