安卓7+导证书到系统目录

安卓7+,用户安装的证书不受系统信任, So我们要把证书安装到系统证书目录中。

先要将手机 Root

系统证书

首先我们看看,系统证书目录

1
/system/etc/security/cacerts/

系统证书的命名都是 哈希值.0 如果哈希值相同,想要保留两张证书,那就修改后面的 .0 即可

用户证书

1
/data/misc/keystore/user_0

将用户证书放到系统目录中

  1. 导出待处理证书到PC桌面
  2. 先将文件名构造为 哈希值.0

导出证书到pc

选择 Actions -- open window

右键 所有任务 - 导出 - Base64格式

导出完成

计算hash值

我这里已经准备了一份
269953fb.0下载

直接在 liunx mac电脑上运行

1
2
cd 到证书目录中 注意 FiddlerRoot.cer 是我的证书名,根据实际情况修改
openssl x509 -inform DER -subject_hash_old -in 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
2
3
adb shell
su
mv data/local/tmp/269953fb.0 /system/etc/security/cacerts

注意:

  • 最好设置 777 权限
  • 删掉用户目录中的证书(不然会有冲突)
  • 重新启动手机

如果还是不行,就安装 Root Explorer 管理器,就行sys文件夹权限设置

app下载

然后

1
adb push C:\Users\Administrator\Desktop\269953fb.0 data/local/tmp/269953fb.0

再打开软件,选择刚刚推入到临时目录的文件,长按复制,再到sys目录中粘贴即可

复制到 /system/etc/security/cacerts/