雷电模拟器9/14搭配charles抓取自带浏览器接口9/14

目录

前言

在雷电模拟器中直接安装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命令行

bash 复制代码
openssl x509 -subject_hash_old -in charles_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 移动证书
bash 复制代码
adb shell
su
cp /sdcard/Pictures/cf9466aa.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/cf9466aa.0
4.1.4、重启模拟器,在系统证书中就可以找到了

路径:设置->安全性和位置信息->加密与凭证->信任的凭证->系统

4.1.5、测试是否生效

4.2、版本14

4.2.1、移动证书
bash 复制代码
adb shell
CERT_NAME='cf9466aa.0'
mkdir -p -m 700 /data/local/tmp/tmp-ca-copy
cp /apex/com.android.conscrypt/cacerts/* /data/local/tmp/tmp-ca-copy/
mount -t tmpfs tmpfs /system/etc/security/cacerts
mv /data/local/tmp/tmp-ca-copy/* /system/etc/security/cacerts/
cp /storage/emulated/0/Pictures/$CERT_NAME /system/etc/security/cacerts/
chown root:root /system/etc/security/cacerts/*
chmod 644 /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一样的简易界面,可以选择直接打开文件夹后上传到文件夹里面

参考文章

相关推荐
叼烟扛炮4 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
水云桐程序员10 小时前
从零开发软件的步骤,软件开发从零到完成应该怎么做?
笔记·学习·软件构建·个人开发
David猪大卫10 小时前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
叼烟扛炮11 小时前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
系统集成-鹰翔15 小时前
ERP图片改名后仍命中识别缓存:缓存键、十分钟到期与调用计数
javascript·经验分享·后端
浮尘笔记16 小时前
JetBrains差异设置被自动勾选的排查与根治实录
经验分享·程序人生·编辑器·intellij idea·phpstorm·webstorm
SaaS_Product17 小时前
OneDrive中的文件批量迁移到Zoho网盘
经验分享·云计算·saas·onedrive
叼烟扛炮18 小时前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
陈布衣19 小时前
MySQL(1)_MySQL 5.7.21 Linux 安装笔记
linux·笔记·mysql
全栈陈序员21 小时前
Git】从入门到精通(八)—— git log:查看提交历史
大数据·git·elasticsearch