Skip to content

Commit 1d26a0f

Browse files
committed
feat: support resetprop compact
1 parent 2e5967e commit 1d26a0f

4 files changed

Lines changed: 13 additions & 66 deletions

File tree

module/common_func.sh

Lines changed: 2 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,10 @@
1-
RESETPROP="resetprop -n"
2-
[ -f /data/adb/magisk/util_functions.sh ] && [ "$(grep MAGISK_VER_CODE /data/adb/magisk/util_functions.sh | cut -d= -f2)" -lt 27003 ] && RESETPROP=resetprop_hexpatch
3-
4-
# persistprop <prop name> <new value>
5-
persistprop() {
6-
local NAME="$1"
7-
local NEWVALUE="$2"
8-
local CURVALUE="$(resetprop "$NAME")"
9-
10-
if ! grep -q "$NAME" $MODPATH/uninstall.sh 2>/dev/null; then
11-
if [ "$CURVALUE" ]; then
12-
[ "$NEWVALUE" = "$CURVALUE" ] || echo "resetprop -n -p \"$NAME\" \"$CURVALUE\"" >> $MODPATH/uninstall.sh
13-
else
14-
echo "resetprop -p --delete \"$NAME\"" >> $MODPATH/uninstall.sh
15-
fi
16-
fi
17-
resetprop -n -p "$NAME" "$NEWVALUE"
18-
}
19-
20-
# resetprop_hexpatch [-f|--force] <prop name> <new value>
21-
resetprop_hexpatch() {
22-
case "$1" in
23-
-f|--force) local FORCE=1; shift;;
24-
esac
25-
26-
local NAME="$1"
27-
local NEWVALUE="$2"
28-
local CURVALUE="$(resetprop "$NAME")"
29-
30-
[ ! "$NEWVALUE" -o ! "$CURVALUE" ] && return 1
31-
[ "$NEWVALUE" = "$CURVALUE" -a ! "$FORCE" ] && return 2
32-
33-
local NEWLEN=${#NEWVALUE}
34-
if [ -f /dev/__properties__ ]; then
35-
local PROPFILE=/dev/__properties__
36-
else
37-
local PROPFILE="/dev/__properties__/$(resetprop -Z "$NAME")"
38-
fi
39-
[ ! -f "$PROPFILE" ] && return 3
40-
local NAMEOFFSET=$(echo $(strings -t d "$PROPFILE" | grep "$NAME") | cut -d ' ' -f 1)
41-
42-
#<hex 2-byte change counter><flags byte><hex length of prop value><prop value + nul padding to 92 bytes><prop name>
43-
local NEWHEX="$(printf '%02x' "$NEWLEN")$(printf "$NEWVALUE" | od -A n -t x1 -v | tr -d ' \n')$(printf "%$((92-NEWLEN))s" | sed 's/ /00/g')"
44-
45-
printf "Patch '$NAME' to '$NEWVALUE' in '$PROPFILE' @ 0x%08x -> \n[0000??$NEWHEX]\n" $((NAMEOFFSET-96))
46-
47-
echo -ne "\x00\x00" \
48-
| dd obs=1 count=2 seek=$((NAMEOFFSET-96)) conv=notrunc of="$PROPFILE"
49-
echo -ne "$(printf "$NEWHEX" | sed -e 's/.\{2\}/&\\x/g' -e 's/^/\\x/' -e 's/\\x$//')" \
50-
| dd obs=1 count=93 seek=$((NAMEOFFSET-93)) conv=notrunc of="$PROPFILE"
51-
}
52-
531
# resetprop_if_diff <prop name> <expected value>
542
resetprop_if_diff() {
553
local NAME="$1"
564
local EXPECTED="$2"
575
local CURRENT="$(resetprop "$NAME")"
586

59-
[ -z "$CURRENT" ] || [ "$CURRENT" = "$EXPECTED" ] || $RESETPROP "$NAME" "$EXPECTED"
7+
[ -z "$CURRENT" ] || [ "$CURRENT" = "$EXPECTED" ] || resetprop -n "$NAME" "$EXPECTED"
608
}
619

6210
# resetprop_if_match <prop name> <value match string> <new value>
@@ -65,7 +13,7 @@ resetprop_if_match() {
6513
local CONTAINS="$2"
6614
local VALUE="$3"
6715

68-
[[ "$(resetprop "$NAME")" = *"$CONTAINS"* ]] && $RESETPROP "$NAME" "$VALUE"
16+
[[ "$(resetprop "$NAME")" = *"$CONTAINS"* ]] && resetprop -n "$NAME" "$VALUE"
6917
}
7018

7119
# stub for boot-time

module/customize.sh

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ if [ -f "/data/adb/modules/playintegrityfix/system.prop" ]; then
7777
cp -af /data/adb/modules/playintegrityfix/system.prop "$MODPATH/system.prop"
7878
fi
7979

80-
# Restore previous settings
81-
[ -f "/data/adb/modules/playintegrityfix/uninstall.sh" ] && cp -af /data/adb/modules/playintegrityfix/uninstall.sh "$MODPATH/uninstall.sh"
82-
8380
# Check custom fingerprint
8481
if [ -f "/data/adb/pif.prop" ]; then
8582
ui_print "- Backup custom pif.prop"

module/post-fs-data.sh

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,19 @@ resetprop_if_diff ro.secure 1
5151
# Work around custom ROM PropImitationHooks conflict when their persist props don't exist
5252
if [ -n "$(resetprop ro.aospa.version)" -o -n "$(resetprop net.pixelos.version)" -o -n "$(resetprop ro.afterlife.version)" -o -f /data/system/gms_certified_props.json ]; then
5353
for PROP in persist.sys.pihooks.first_api_level persist.sys.pihooks.security_patch; do
54-
resetprop | grep -q "\[$PROP\]" || persistprop "$PROP" ""
54+
resetprop | grep -q "\[$PROP\]" || resetprop -n -p "$PROP" ""
5555
done
5656
fi
5757

5858
# Work around supported custom ROM PropImitationHooks/PixelPropsUtils (and hybrids) conflict when spoofProvider is disabled
5959
if resetprop | grep -qE "persist.sys.pihooks|persist.sys.entryhooks|persist.sys.pixelprops" || [ -f /data/system/gms_certified_props.json ]; then
60-
persistprop persist.sys.pihooks.disable.gms_props true
61-
persistprop persist.sys.pihooks.disable.gms_key_attestation_block true
62-
persistprop persist.sys.entryhooks_enabled false
63-
persistprop persist.sys.pixelprops.gms false
64-
persistprop persist.sys.pixelprops.gapps false
65-
persistprop persist.sys.pixelprops.google false
66-
persistprop persist.sys.pixelprops.pi false
60+
resetprop -n -p persist.sys.pihooks.disable.gms_props true
61+
resetprop -n -p persist.sys.pihooks.disable.gms_key_attestation_block true
62+
resetprop -n -p persist.sys.entryhooks_enabled false
63+
resetprop -n -p persist.sys.pixelprops.gms false
64+
resetprop -n -p persist.sys.pixelprops.gapps false
65+
resetprop -n -p persist.sys.pixelprops.google false
66+
resetprop -n -p persist.sys.pixelprops.pi false
6767
fi
6868

6969
# LeafOS "gmscompat: Dynamically spoof props for GMS"
@@ -72,3 +72,5 @@ fi
7272
if [ -f /data/system/gms_certified_props.json ] && [ ! "$(resetprop persist.sys.spoof.gms)" = "false" ]; then
7373
resetprop persist.sys.spoof.gms false
7474
fi
75+
76+
resetprop -c || true

module/uninstall.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ if [ -f /data/system/gms_certified_props.json ]; then
77
resetprop -p --delete persist.sys.spoof.gms
88
fi
99

10-
# Persist props
10+
resetprop -c || true

0 commit comments

Comments
 (0)