夜神模拟器建议使用7.0.3.5 不要使用最新版本的使用2022年版本的,下载地址:https://mydown.yesky.com/pcsoft/69936237/versions/
这里提供一个下载地址,以防失联。主要原理是在夜神模拟器上安装app,然后夜神模拟器wifi这只Charles所在电脑ip代理上网,代理端口为charles设置的8888
步骤为:
1,安装charles的root证书到电脑上,导入charles根证书到电脑受信任的根证书区域。
2,因为android 7以上使用了证书验证,不再信任用户证书,只有android系统证书才被信任,如果不能导入到系统证书下,默认是抓不到app数据包的,所以默认需要把charles的
证书想办法导入的夜神模拟器的系统证书下(夜神7.0.3.5 android版本是7以上,用户导入的证书默认会到用户证书菜单下,系统根证书下没有)想导入到系统根证书目录下,android需要root权限,所好夜神模拟器默认就是打开了root权限的。
3,想把charles证书导入到夜神模拟器,需要做如下步骤
一:使用
模拟器上设置wifi代理后,访问
http://chls.pro/ssl 下载证书 并通过模拟器文件传输功能把证书传到windows电脑上
openssl x509 -subject_hash_old -in c:\charles.crt 算出证书hash值,把charles.crt 改名为 ”算出的hash.0” 后面0 可以修改成其他数字,为了防止重复
二:定位到模拟器安装目录下的bin下执行
adb -s 127.0.0.1:62001 push c:\dc32344a.0 /system/etc/security/cacerts/ 如果提示成功,说明成功把charles证书导入的模拟器android的系统根证书下
可以去模拟器 打开设置——安全——信任的凭据——系统 下查找 XK72 Ltd 如有说明安装成功了。
剩下的可以在夜神模拟器上安装app,登录,然后在charles抓包页面看到抓下的数据了。
如果执行 adb -s 127.0.0.1:62001 push c:\dc32344a.0 /system/etc/security/cacerts/ 的时候报如下错误:
D:\tools\Nox\bin>adb.exe -s 127.0.0.1:62001 push d:\8325cc71.0 /system/etc/security/cacerts/
adb: error: failed to copy 'd:\8325cc71.0' to '/system/etc/security/cacerts/8325cc71.0': couldn't create file: Read-only file system 则需要重新加载挂在目录为可读写
使用: adb shell mount -o remount,rw /system