We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
因为本人遇到了这个问题,发现无论在讨论群里还是此储存库,都没人讨论过这个问题,且这里没有 Discussions 版块,故此借用 ISSUES 版块说一下我的解决方法,以便协助后来人。
MIUI 14.0.2.0
Android 13
1.2.0
如果你使用了 Shamiko 的白名单模式,那么该模块将可能不生效,即便该模块已经成功地在 /system/etc/security/cacerts 中安装了证书,您在系统证书中也看不到 ProxyPin CA 这个证书 (这个问题网络上讨论得比较少,不确定是只在 MIUI14 上有还是因为使用 Shamiko 的白名单模式的人少)
Shamiko
/system/etc/security/cacerts
ProxyPin CA
tmpfs
/data/adb/post-fs-data.d
post-fs-data.sh
#!/system/bin/sh exec > /data/local/tmp/ProxyPinCA.log exec 2>&1 #set -x MODDIR=${0%/*} set_context() { [ "$(getenforce)" = "Enforcing" ] || return 0 default_selinux_context=u:object_r:system_file:s0 selinux_context=$(ls -Zd $1 | awk '{print $1}') if [ -n "$selinux_context" ] && [ "$selinux_context" != "?" ]; then chcon -R $selinux_context $2 else chcon -R $default_selinux_context $2 fi } #LOG_PATH="/data/local/tmp/ProxyPinCA.log" echo "[$(date +%F) $(date +%T)] - ProxyPinCA post-fs-data.sh start." chown -R 0:0 ${MODDIR}/system/etc/security/cacerts if [ -d /apex/com.android.conscrypt/cacerts ]; then # 检测到 android 14 以上,存在该证书目录 CERT_HASH=243f0bfb CERT_FILE=${MODDIR}/system/etc/security/cacerts/${CERT_HASH}.0 echo "[$(date +%F) $(date +%T)] - CERT_FILE: ${CERT_FILE}" if ! [ -e "${CERT_FILE}" ]; then echo "[$(date +%F) $(date +%T)] - ProxyPinCA certificate not found." exit 0 fi TEMP_DIR=/data/local/tmp/cacerts-copy rm -rf "$TEMP_DIR" mkdir -p -m 700 "$TEMP_DIR" mount -t tmpfs tmpfs "$TEMP_DIR" # 复制证书到临时目录 cp -f /apex/com.android.conscrypt/cacerts/* "$TEMP_DIR" cp -f $CERT_FILE "$TEMP_DIR" chown -R 0:0 "$TEMP_DIR" set_context /apex/com.android.conscrypt/cacerts "$TEMP_DIR" # 检查新证书是否成功添加 CERTS_NUM="$(ls -1 "$TEMP_DIR" | wc -l)" if [ "$CERTS_NUM" -gt 10 ]; then mount -o bind "$TEMP_DIR" /apex/com.android.conscrypt/cacerts for pid in 1 $(pgrep zygote) $(pgrep zygote64); do nsenter --mount=/proc/${pid}/ns/mnt -- \ mount --bind "$TEMP_DIR" /apex/com.android.conscrypt/cacerts done echo "[$(date +%F) $(date +%T)] - Mount success!" else echo "[$(date +%F) $(date +%T)] - Mount failed!" fi # 卸载临时目录 umount "$TEMP_DIR" rmdir "$TEMP_DIR" else echo "[$(date +%F) $(date +%T)] - Android version lower than 14 detected" TEMP_DIR="/data/local/tmp/cacerts-copy" SYSTEM_CACERTS_DIR="/system/etc/security/cacerts" IMPORT_CA_DIR=${MODDIR}/system/etc/security/cacerts rm -rf "$TEMP_DIR" mkdir -p -m 700 $TEMP_DIR # 复制系统证书到临时目录 cp $SYSTEM_CACERTS_DIR/* $TEMP_DIR # 复制 ProxyPin 证书到临时目录 cp $IMPORT_CA_DIR/* $TEMP_DIR/ set_context $SYSTEM_CACERTS_DIR "$TEMP_DIR" # 将 /system/etc/security/cacerts 挂载到 tmpfs mount -t tmpfs tmpfs $SYSTEM_CACERTS_DIR chown -R 0:0 $TEMP_DIR chmod -R 644 $TEMP_DIR # 将临时目录中的证书移动到 系统证书目录 mv $TEMP_DIR/* $SYSTEM_CACERTS_DIR/ echo "[$(date +%F) $(date +%T)] - Mount success!" fi if [ $(id -u) -ne 0 ]; then echo "This script must be run as root" 1>&2 exit 1 fi
不知道有没有办法判断 Shamiko 模块起否启用,如果有的话可以改进脚本,如果有知道的欢迎补充
Dr-TSNG/ZygiskNext#39 (comment) https://www.lategege.com/?p=1452 mitmproxy/mitmproxy#6460
如果有更好的解决办法也欢迎各位告知我。
The text was updated successfully, but these errors were encountered:
这里也有相关讨论,可以整合到一起,我加个置顶 wanghongenpin/proxypin#200
Sorry, something went wrong.
No branches or pull requests
开启本 ISSUES 的原因
因为本人遇到了这个问题,发现无论在讨论群里还是此储存库,都没人讨论过这个问题,且这里没有 Discussions 版块,故此借用 ISSUES 版块说一下我的解决方法,以便协助后来人。
本人环境说明
MIUI 14.0.2.0
Android 13
1.2.0
(Magisk内模块显示的版本号)如果你使用了
Shamiko
的白名单模式,那么该模块将可能不生效,即便该模块已经成功地在/system/etc/security/cacerts
中安装了证书,您在系统证书中也看不到ProxyPin CA
这个证书(这个问题网络上讨论得比较少,不确定是只在 MIUI14 上有还是因为使用
Shamiko
的白名单模式的人少)解决方法
方法1:
方法2:
/system/etc/security/cacerts
挂在到tmpfs
/data/adb/post-fs-data.d
目录下并赋予可执行权限。或者将该模块的post-fs-data.sh
修改为以下内容方法3:
参考链接
Dr-TSNG/ZygiskNext#39 (comment)
https://www.lategege.com/?p=1452
mitmproxy/mitmproxy#6460
The text was updated successfully, but these errors were encountered: