@@ -72,6 +72,31 @@ set_selinux_context(){
7272 fi
7373}
7474
75+ compatible (){
76+ # compatible adguard or other
77+ # Hash 47ec1af8 is for "AdGuard Intermediate CA" intermediate.
78+ print_log " Compatible adguard"
79+ cert_dir=" $MODDIR /certificates"
80+ print_log " Running compatibility cleanup for potentially conflicting certificates."
81+
82+ # Remove by filename pattern (hash: 47ec1af8.*)
83+ rm -f " $cert_dir " /47ec1af8.*
84+ print_log " Removed files matching '47ec1af8.*'."
85+
86+ # Remove by content string "Guard Personal Intermediate"
87+ for cert_file in " $cert_dir " /* ; do
88+ # Ensure it is a file before trying to read it
89+ if [ -f " $cert_file " ]; then
90+ # Use grep -q for a silent, efficient check
91+ if grep -q " Guard Personal Intermediate" " $cert_file " ; then
92+ print_log " Removing file containing 'Guard Personal Intermediate': $( basename " $cert_file " ) "
93+ rm -f " $cert_file "
94+ fi
95+ fi
96+ done
97+ print_log " Compatibility cleanup status:$? "
98+ }
99+
75100# Android version <= 13 execute
76101if [ " $sdk_version_number " -le 33 ]; then
77102 print_log " start move cert !"
@@ -83,11 +108,12 @@ if [ "$sdk_version_number" -le 33 ]; then
83108 # Android 13 or lower versions perform
84109 move_custom_cert
85110 fix_user_permissions
111+ compatible
86112
87113 selinux_context=$( ls -Zd /system/etc/security/cacerts | awk ' {print $1}' )
88114 mount -t tmpfs tmpfs /system/etc/security/cacerts
89115 print_log " mount /system/etc/security/cacerts status:$? "
90-
116+
91117 cp -f $MODDIR /certificates/* /system/etc/security/cacerts
92118 print_log " Install /system/etc/security/cacerts status:$? "
93119 fix_system_permissions
113139 move_custom_cert
114140 fix_user_permissions
115141 fix_system_permissions14 $MODDIR /certificates
142+ compatible
116143
117144 print_log " find system conscrypt directory"
118145 apex_dir=$( find /apex -type d -name " com.android.conscrypt@*" )
125152 mount -o bind $MODDIR /certificates $apex_dir /cacerts
126153 for pid in 1 $( pgrep zygote) $( pgrep zygote64) ; do
127154 nsenter --mount=/proc/${pid} /ns/mnt -- mount --bind $MODDIR /certificates /apex/com.android.conscrypt/cacerts
155+ nsenter --mount=/proc/${pid} /ns/mnt -- mount --bind $MODDIR /certificates $apex_dir /cacerts
128156 done
129157 print_log " mount bind $MODDIR /certificates $apex_dir /cacerts status:$? "
130158 print_log " certificates installed"
0 commit comments