最近用charles尝试抓取模拟器的包,但是无奈的是,还没开始就卡在了安装证书的这一步.
苦苦搜寻了各种教程,其中尝试过"关闭防火墙",设置SSL Proxying Settings都无济于事,模拟器中打开chls.pro/ssl
一动不动.
最后无意中搜到了Android7.0无法安装证书关键字,一番折腾后,终于解决.所以记录一下,方便以后查阅.
准备
本文的操作系统是win10
需要用到的软件:
1.雷神模拟器,官网下载即可.
2.charles
3.adb的工具包,直接解压即可使用.
下载地址
charles的设置
1.设置http代理.
Proxy-->Proxy settings
2.设置ssl
proxy-->ssl proxying settings
3.charles安装证书
弹出证书安装界面,点击"安装证书"
选择当前用户,
选择: 将所有的证书都放入下列存储:
直接下一步,最后确定提示"导入成功"
4.接着设置charles安装移动端证书:
此时charles会弹出需要给模拟器设置http代理的ip以及端口(记住它,待会要用到):
adb的使用
直接在解压的adb.exe所在目录打开cmd,win10是直接在文件管理器地址栏输入cmd回车即可.
这里提示一下,雷电模拟器用到的端口号是5555.
输入: adb devices
,如果显示的是"127.0.0.1:5555 offline "
可以通过adb kill-server
和adb start-server
开关闭和重启adb,
还可以重启雷电模拟器直到 输入adb devices
显示:
List of devices attached
emulator-5554 device
表明已经成功通过adb连接到模拟器了.
接下来就是关键的一步了,需要通过adb命令进行设置模拟器的http代理,需要用到上面记录下来的http代理地址和端口:192.168.3.8:8888
1.为了确认,可以先清除一下模拟器的http代理:
adb shell settings delete global http_proxy
2.设置模拟器的代理:
adb shell settings put global http_proxy 192.168.3.8:8888
设置成功无提示.
模拟器下载证书.
设置完毕之后,就可以进入模拟器中,通过系统自带的浏览器输入chls.pro/sll
进行下载:
至此,全文完结.
关于adb命令的补充
1.adb devices显示attached后,通过以下命令来进入到模拟器的shell命令模式:
adb -s emulator-5554 shell
输入: exit 可以退出.
2.adb重新挂载到模拟器.
adb -s emulator-5554 remount
3.adb连接到模拟器
adb connect 127.0.0.1:5555
4.查看手机arch版本
adb shell getprop ro.product.cpu.abi
5.查看当前app运行的包名
adb shell dumpsys window | findstr mCurrentFocus
6.复制/data/misc/user/0/cacerts-added
中以.0为结尾的文件到目录:/system/etc/security/cacerts
下,就可以抓取https的包了:
adb push a0b1c2d3.0 /system/etc/security/cacerts/