Android 14 (UpsideDownCake) 在 /system/etc/security/cacert 中看不到安装的证书

Mel*_*des 7 java android android-emulator kotlin

对于我们的 Android 模拟器自动化测试平台,我们可以/system/etc/security/cacerts使用经过尝试和测试的命令将 Proxyman 证书推送到 a:

  1. 使用标志启动模拟器-writable-systememulator -avd emulator_name -writable-system

  2. 准备Proxyman证书:

    • openssl x509 -inform PEM -subject_hash_old -in proxyman-ssl-proxying-certificate.pem | head -1- 它返回证书的哈希值,例如。30eb732c

    • 将其保存到文件中:cat proxyman-ssl-proxying-certificate.pem > 30eb732c.0

    • openssl x509 -inform PEM -text -in proxyman-ssl-proxying-certificate.pem -out /dev/null >> 30eb732c.0

  3. 将创建的内容推30eb732c.0送到模拟器:

    • adb root
    • adb remount
    • adb root
    • adb shell avbctl disable-verification
    • adb reboot
    • adb root
    • adb remount
    • adb push 30eb732c.0 /system/etc/security/cacerts
  4. adb shell ls /system/etc/security/cacert我可以通过列出所有证书并在列表中看到我的证书来验证该文件是否存在。

有了这些,我们就可以在应用程序的发布版本上看到 Proxyman 中的流量,最高可达 API 33,并且我可以在模拟器设置/安全/加密和凭据/受信任的凭据中看到安装在系统分区上的证书。

在此输入图像描述

使用与 Android Emulator UpsideDownCake 相同的步骤,我可以看到证书文件确实在 中/system/etc/security/cacert,但 UI 没有显示它,并且 Proxyman 也无法捕获流量(正在获取SSL Handshake Failed)。

安装证书的方法已被告知很多:

我觉得我可能在这里遗漏了一些东西,但也想知道 API 33 和 UpsideDownCake 模拟器之间有什么区别。有人成功在/system/etc/security/cacertAndroid 14 (UpsideDownCake) 模拟器上安装证书吗?

Ste*_*inn 0

Android 14 首先查看此位置:

/apex/com.android.conscrypt/cacerts
Run Code Online (Sandbox Code Playgroud)