安卓7+,用户安装的证书不受系统信任, So我们要把证书安装到系统证书目录中。
先要将手机 Root
系统证书
首先我们看看,系统证书目录
1 | /system/etc/security/cacerts/ |
系统证书的命名都是 哈希值.0
如果哈希值相同,想要保留两张证书,那就修改后面的 .0
即可
用户证书
1 | /data/misc/keystore/user_0 |
将用户证书放到系统目录中
- 导出待处理证书到PC桌面
- 先将文件名构造为
哈希值.0
导出证书到pc
选择 Actions -- open window
右键 所有任务 - 导出 - Base64格式
导出完成
计算hash值
我这里已经准备了一份
269953fb.0下载
直接在 liunx mac电脑上运行
1 | cd 到证书目录中 注意 FiddlerRoot.cer 是我的证书名,根据实际情况修改 |
就得到文件名了
push到系统目录中
1 | adb push C:\Users\Administrator\Desktop\269953fb.0 /system/etc/security/cacerts/269953fb.0 |
如果推入失败
解决方案
push 到临时目录中,再移到sys目录1
adb push C:\Users\Administrator\Desktop\269953fb.0 data/local/tmp/269953fb.0
再推移动到sys中
1 | adb shell |
注意:
- 最好设置 777 权限
- 删掉用户目录中的证书(不然会有冲突)
- 重新启动手机
如果还是不行,就安装 Root Explorer 管理器,就行sys文件夹权限设置
然后1
adb push C:\Users\Administrator\Desktop\269953fb.0 data/local/tmp/269953fb.0
再打开软件,选择刚刚推入到临时目录的文件,长按复制,再到sys目录中粘贴即可
复制到 /system/etc/security/cacerts/
中