抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

写在前面

在Android14,Google改变了此前的默认行为,将证书注入至/system/etc/security/cacerts/不再有效,需要转而注入至/apex/com.android.conscrypt/cacerts/


推荐使用PEM证书,当然,其他格式也可以识别,只是系统CA都用的PEM,塞一个DER进去我认为很难看。
接下来的步骤,我会假定你已经获取了完整的root权限。

如何注入?

注入有两种方式,通过Zygisk模块注入(推荐),或直接修改/apex/com.android.conscrypt/cacerts/

1. 模块注入

这里有一个仍在活跃的movecert模块分叉:
ys1231/MoveCertificate

  • 首先,在系统设置的凭据存储内,将证书安装至用户存储区。
  • 下载安装此模块,重启系统。

不出意外的话,你会在受信任的CA列表看到你的自定义证书。

2. 手动注入

首先,将你的证书拷贝至一个可用的Linux执行环境(Termux或者WSL都可以),并执行以下命令获取证书名字串

1
openssl x509 -inform PEM -subject_hash_old -in YOUR_CUSTOM_CA_CERT.pem | head -1

YOUR_CUSTOM_CA_CERT.pem修改为你的证书路径。

一般来说,此命令会输出一串八位字符串,类似下面这样:

1
0f114514

你的证书文件名就应为0f114514.0(注意.0后缀)。

最后,将文件移入/apex/com.android.conscrypt/cacerts/,重启系统。