MagiskHidePropsConf/service.sh
2021-09-20 19:38:22 +02:00

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."