写在开始

在我用Adguard的时候好多软件会因为使用了Https解密而导致内部的套壳的网页无法访问, 这是因为 Android 7.0 之后应用默认不信任用户证书, 所以就在那里想办法解决这个问题。

解决方法

因为我手机Root了, 所以相对来说比较简单, 网上好多别的教程是用面具来实现的, 但是我懒得装那个, 就找到了别的解决方法。 于是我就发现了存放系统证书的目录: /system/etc/security/cacerts, 打开之后能看到里面的证书

Screenshot_2020_04_07_20_16_26_828_com_speedsoftware_rootexplorer.jpg

然后就发现这个不是常规的crt格式的证书, 而是Android特有的0格式的文件。 那么接下来就要看怎么转换这个格式了, 于是我发现了用户安装的证书的目录: /data/misc/user/0/cacerts-added, 这个好像不同设备不一样, 我的就在这里。 不过应该不管怎样都在:/data/misc文件夹里, 找到那种存放0格式的文件的目录应该就是了。 打开之后能看到我之前的添加进去的Adguard的证书:

Screenshot_2020_04_07_20_17_15_150_com_speedsoftware_rootexplorer.jpg

接下来就很简单了, 把这个证书复制到系统的那个目录里就可以了。 然后好像想要生效系统证书要重启手机, 那就重启一下就好了。

一点小注释

如果你的/system分区没有解锁的话可以尝试使用Syslock来进行解锁。

写在最后

重启之后我打开Adguard之后就发现那些原来不能打开的应用内网页都能正常打开了。 不过还是有个别的应用似乎还是不信任这个, 可能是因为用了自己的openssl库实现的加密?也可能PIN了证书, 目前已知的还不能用的应用是OneDrive和Termux。 不过鉴于这两个应用感受不到广告的存在, 不过滤https似乎也没啥影响。

Last modification:April 7th, 2020 at 08:30 pm