Language/English
Android 14 以降では信頼されたRoot証明書をシステムにインストールすることが困難になっています。
バイパスの手順を説明します。
API-34 よりシステムの証明書を読み込む処理にて、「/apex/com.android.conscrypt/cacerts」から証明書読み込む処理になっているが システムプロパティが「system.certs.enabled」となっている場合は、以前の「/system/etc/security/cacerts/」より証明書を取得するコードになっています。
private static File getDirectory() {
if ((System.getProperty("system.certs.enabled") != null)
&& (System.getProperty("system.certs.enabled")).equals("true")) {
return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}
File updatable_dir = new File("/apex/com.android.conscrypt/cacerts");
if (updatable_dir.exists()
&& !(updatable_dir.list().length == 0)) {
return updatable_dir;
}
return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}バイパスを行うためにこの仕様を利用します。
次の複数の方法を用意しました。
- Frida-Script を利用する方法
- Xposed Module を利用する方法
- Magisk Module を利用する方法
「system.certs.enabled」のシステムプロパティを書き換える方法として、Frida によるスクリプトが利用できます。
setImmediate(function () {
console.log("[*] Starting script");
Java.perform(function () {
var systemClass = Java.use("java.lang.System");
systemClass.setProperty("system.certs.enabled","true");
})
})Frida-Scriptを実行します。
cd OverrideSysPropModule\Frida-Script
frida -U -n com.example.app -l OverrideSysProp.jsFridaスクリプトはコマンドラインにて指定する必要があります。また複数のアプリに適用するには不便です。
常に利用できる方法として Android の Xposed Module を作成しました。
「OverrideSysPropModule/Xposed-Module/app/release」フォルダに作成した Xposed Module のアプリを置いています。
- Magisk インストールします。
-
「Zygisk」および「Enforce DenyList」を有効にします。
-
再起動します。
-
Magisk Module をインストールします。
- https://github.com/NVISOsecurity/MagiskTrustUserCerts/releases
- https://github.com/LSPosed/LSPosed/releases (zygisk 版をインストール)
- 「OverrideSysPropModule」フォルダ内の Xposed Module をインストールします。
cd OverrideSysPropModule\Xposed-Module\app\release
adb install OverrideSysprop.apk-
ユーザ証明書にBurp suite などのRoot証明書をインストールします。
-
Moduleを適用したいアプリに対して有効にします。
TIP: 手順を実施後に Android 端末を再起動しないとうまく認識しない場合があります。
常に利用できる方法として Android の Magisk Module を作成しました。
「OverrideSysPropModule/Magisk-Module/app/release」フォルダに作成した Magisk Module を置いています。
- Magisk インストールします。
-
「Zygisk」および「Enforce DenyList」を有効にします。
-
再起動します。
-
Magisk Module をインストールします。
- 「OverrideSysPropModule」フォルダ内の Magisk Module をインストールします。
cd OverrideSysPropModule\Magisk-Module\app\release
adb push /sdcard/Download6. ユーザ証明書にBurp suite などのRoot証明書をインストールします。
TIP: 手順を実施後に Android 端末を再起動しないとうまく認識しない場合があります。

