mirror of
https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf.git
synced 2024-11-19 05:12:26 +00:00
160 lines
4.1 KiB
Bash
160 lines
4.1 KiB
Bash
#!/system/bin/sh
|
|
|
|
# MagiskHide Props Config
|
|
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
|
|
# Licence: MIT
|
|
|
|
MODPATH=${0%/*}
|
|
BOOTSTAGE="late"
|
|
|
|
# Variables
|
|
MODULESPATH=${MODPATH%/*}
|
|
ADBPATH=${MODULESPATH%/*}
|
|
MHPCPATH=$ADBPATH/mhpc
|
|
|
|
TMP_WAIT=0
|
|
while [ ! -f "$MHPCPATH/propsconf_postchk" ] && [ "$TMP_WAIT" -lt 10 ]; do
|
|
sleep 1
|
|
TMP_WAIT=$(($TMP_WAIT + 1))
|
|
done
|
|
|
|
# Load functions
|
|
. $MODPATH/common/util_functions.sh
|
|
|
|
log_script_chk "Running service.sh module script."
|
|
|
|
# Check for reboot flag
|
|
if [ -f "$MHPCPATH/reboot" ]; then
|
|
rm -f $MHPCPATH/reboot >> $LOGFILE 2>&1
|
|
force_reboot
|
|
fi
|
|
|
|
# Resets the reboot and print update variables in propsconf_late
|
|
replace_fn REBOOTCHK 1 0 $LATEFILE
|
|
replace_fn PRINTCHK 1 0 $LATEFILE
|
|
|
|
# Retrieving default values from props file
|
|
log_handler "Saving device default values."
|
|
default_save
|
|
log_handler "Default values saved to $LATEFILE."
|
|
|
|
# Checks for the Universal SafetyNet Fix module and similar modules editing the device fingerprint
|
|
TMPUSNF=false
|
|
for USNF in $USNFLIST; do
|
|
if [ -d "$MODULESPATH/$USNF" ]; then
|
|
if [ ! -f "$MODULESPATH/$USNF/disable" ]; then
|
|
NAME=$(get_file_value $MODULESPATH/$USNF/module.prop "name=")
|
|
log_handler "Magisk module '$NAME' installed (modifies the device fingerprint)."
|
|
TMPUSNF=true
|
|
fi
|
|
fi
|
|
done
|
|
if [ "$TMPUSNF" == "true" ]; then
|
|
replace_fn FINGERPRINTENB 1 0 $LATEFILE
|
|
replace_fn PRINTMODULE 0 1 $LATEFILE
|
|
log_handler "Fingerprint modification disabled."
|
|
# Reset current fingerprint if set
|
|
if [ "$MODULEFINGERPRINT" ]; then
|
|
log_handler "Resetting current fingerprint."
|
|
reset_print
|
|
force_reboot
|
|
fi
|
|
else
|
|
replace_fn FINGERPRINTENB 0 1 $LATEFILE
|
|
replace_fn PRINTMODULE 1 0 $LATEFILE
|
|
fi
|
|
|
|
# Checks for configuration file
|
|
config_file
|
|
|
|
# Edits prop values if set for late_start service
|
|
PROPLATE=false
|
|
echo -e "\n----------------------------------------" >> $LOGFILE 2>&1
|
|
log_handler "Editing prop values in late_start service mode."
|
|
if [ "$OPTIONBOOT" == 2 ]; then
|
|
# ---Setting/Changing fingerprint---
|
|
if [ "$PRINTSTAGE" == 0 ]; then
|
|
print_edit "none"
|
|
fi
|
|
# ---Setting/Changing security patch date---
|
|
if [ "$PATCHSTAGE" == 0 ]; then
|
|
patch_edit "none"
|
|
fi
|
|
# Forced basic attestation
|
|
if [ "$BASICATTEST" == 1 ]; then
|
|
forced_basic "none"
|
|
fi
|
|
# ---Setting device simulation props---
|
|
if [ "$SIMSTAGE" == 0 ]; then
|
|
dev_sim_edit "none"
|
|
fi
|
|
# ---Setting custom props---
|
|
custom_edit "CUSTOMPROPS"
|
|
else
|
|
# Edit fingerprint if set for late_start service
|
|
if [ "$PRINTSTAGE" == 2 ]; then
|
|
print_edit "none"
|
|
fi
|
|
# Edit security patch date if set for late_start service
|
|
if [ "$PATCHSTAGE" == 2 ]; then
|
|
patch_edit "none"
|
|
fi
|
|
# Edit simulation props if set for late_start service
|
|
if [ "$SIMSTAGE" == 2 ]; then
|
|
dev_sim_edit "none"
|
|
fi
|
|
fi
|
|
|
|
# Edit MagiskHide sensitive props
|
|
if [ "$PROPEDIT" == 1 ]; then
|
|
# Edit all sensitive props, if set for late_start service
|
|
if [ "$PROPBOOT" == 2 ]; then
|
|
sensitive_props "$PROPSLIST"
|
|
fi
|
|
if [ "$PROPBOOT" == 0 ] || [ "$PROPBOOT" == 2 ]; then
|
|
sensitive_props "$TRIGGERPROPS"
|
|
fi
|
|
|
|
# Edit late senstive props
|
|
{
|
|
until [ $(getprop sys.boot_completed) == 1 ]; do
|
|
sleep 1
|
|
done
|
|
sensitive_props "$LATEPROPS" "late"
|
|
}&
|
|
fi
|
|
|
|
# Edit custom props set for late_start service
|
|
custom_edit "CUSTOMPROPSLATE"
|
|
custom_edit "CUSTOMPROPSDELAY"
|
|
|
|
# SELinux
|
|
# Remove ro.build.selinux if present
|
|
if [ "$(grep "ro.build.selinux" $MHPCPATH/defaultprops)" ]; then
|
|
log_handler "Removing ro.build.selinux."
|
|
resetprop -v --delete ro.build.selinux >> $LOGFILE 2>&1
|
|
fi
|
|
# Check for permissive SELinux
|
|
if [ "$(getenforce)" == "Permissive" ] || [ "$(getenforce)" == "0" ]; then
|
|
log_handler "Dealing with permissive SELinux."
|
|
chmod 640 /sys/fs/selinux/enforce >> $LOGFILE 2>&1
|
|
chmod 440 /sys/fs/selinux/policy >> $LOGFILE 2>&1
|
|
fi
|
|
|
|
# Do a soft restart if the option is active and a prop has been set in service.sh
|
|
if [ "$PROPLATE" == "true" ]; then
|
|
log_handler "Soft rebooting."
|
|
stop
|
|
start
|
|
fi
|
|
|
|
echo -e "\n----------------------------------------" >> $LOGFILE 2>&1
|
|
|
|
# Get currently saved values
|
|
log_handler "Checking current values."
|
|
curr_values
|
|
# Check system.prop content
|
|
system_prop_cont
|
|
|
|
log_script_chk "service.sh module script finished."
|