Files
Magisk-ProxyPinCA/post-fs-data.sh
2023-12-02 04:09:01 +08:00

39 lines
1.3 KiB
Bash

#!/system/bin/sh
if [ -d /apex/com.android.conscrypt/cacerts ]; then
# 检测到 android 14 以上,存在该证书目录
CERT_HASH=243f0bfb
MODDIR=${0%/*}
NEW_CERT_FILE=${MODDIR}/system/etc/security/cacerts/${CERT_HASH}.0
LOG_PATH="/cache/ProxyPinCA.log"
echo "Found /apex/com.android.conscrypt/cacerts." >> ${LOG_PATH}
echo "Adding new certificate to /apex/com.android.conscrypt/cacerts." >> ${LOG_PATH}
# 创建一个临时目录
TEMP_DIR="/data/local/tmp/proxypin-ca-certs"
mkdir -p "$TEMP_DIR"
# 挂载临时文件系统
mount -t tmpfs tmpfs "$TEMP_DIR"
# 复制原始证书到临时目录
cp -f /apex/com.android.conscrypt/cacerts/* "$TEMP_DIR"
# 添加新证书到临时目录
cp -f "$NEW_CERT_FILE" "$TEMP_DIR"
# 检查新证书是否成功添加
if [ -f "$TEMP_DIR/$(basename "$NEW_CERT_FILE")" ]; then
# 如果新证书成功添加,则挂载回原始目录
mount --bind "$TEMP_DIR" /apex/com.android.conscrypt/cacerts
echo "Mount success!" >> ${LOG_PATH}
else
echo "Failed to add new certificate." >> ${LOG_PATH}
fi
# 卸载临时目录
umount "$TEMP_DIR"
rmdir "$TEMP_DIR"
else
echo "/apex/com.android.conscrypt/cacerts not exists." >> ${LOG_PATH}
fi