diff --git a/README.md b/README.md index ebe8659..ba21c26 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ NOTE: If you're using a fingerprint for an Android build after March 16th 2018 y ### I still can't pass the ctsProfile check If you've picked a certified fingerprint from the provided list, or you're using a fingerprint that you know is certified but still can't pass the ctsProfile check, try one or more of the following: - First, do you pass basicIntegrity? If you don't, there's something else going on that this module can't help you with. Take a look under ["Miscellaneous MagiskHide issues"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues) below. -- Go into the script options and make sure the execution of the boot script is in post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) below. +- Go to the "Edit fingerprints menu", select "Boot stages", and start by changing the security patch date boot stage to either default or post-fs-data. If that doesn't work, also try changing the fingerprint boot stage to post-fs-data. The default boot stage can also be changed if you go into the script options and change the boot stage to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) below. - Try a different fingerprint (pick one from the provided list). - If you're not using one of the fingerprints provided in the module, make sure you have a matching security patch date set in [Custom props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values). See ["Matching the Android security patch date"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#matching-the-android-security-patch-date) above. - Some ROMs will just not be able to pass the ctsProfile check, if they contain signs of a rooted/modified device that Magisk can't hide, or that they are built in a way that makes it impossible to pass SafetyNet. Check in your ROM thread or with the creator/developer. @@ -176,7 +176,7 @@ Just run the `props` command and the list will be updated automatically. Use the If you already have a device fingerprint set by the module, and it has been updated in the current fingerprints list, it will be automatically updated when the prints list gets an update. Just reboot to apply. This function can be turned of in the script settings (see ["Prop script settings"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#prop-script-settings) below) -**_Current fingerprints list version - v49_** +**_Current fingerprints list version - v50_** ## Please add support for device X @@ -194,6 +194,8 @@ You can enter the fingerprint manually in the `Edit device fingerprint` menu in ## Device simulation +**_NOTE! This feature is not needed to pass SafetyNet's CTS profile test and may even cause issues. Only enable it if you actually need it!_** + If you want to simulate a specific device (to get access to device specific apps in the Play store, as an example), you can activate this option. It will pull information from the currently used fingerprint (has to be set by the module) and use this to set a few certain props to these values. The props that are set are (currently): - ro.product.brand - ro.product.name @@ -260,7 +262,9 @@ There are a couple of persistent options that you can set for the `props` script ### Boot stage It's possible to move the execution of the boot script from the default system.prop file to either post-fs-data or late_start service. If there are any kind of issues during boot or that props don't set properly, try changing the boot stage to either post-fs-data or late_start service instead. Just keep in mind that this might cause other issues like the fingerprint not setting properly (if set during late_start service) or that post-fs-data will be interupted by having too many props causing the script to run too slow. -Note: post-fs-data runs earlier than system.prop and late_start service runs after, right at the end of the boot process. +It is also possible to set individual props, like fingerprint, security patch date and custom props individualy. There'll be an option under the corresponding menu. + +Note: post-fs-data runs earlier than system.prop and late_start service runs after, right at the end of the boot process. Having to many props set in post-fs-data may have an adverse effect on the boot process. Using the default system.prop file or late_start service is prefered if possible. ### Script colours This option will disable or enable colours for the `props` script. @@ -295,7 +299,7 @@ If you have questions, suggestions or are experiencing some kind of issue, visit ### Known issues - MagiskHide Props Config v2.7.2 and earlier versions won't work on Magisk v18.1-d73127b1(18006) or later, due to internal changes in Magisk. -- Xiaomi devices (MIUI) sometimes have issues passing the ctsProfile check, particularly China releases. Try using [ShellHide](https://forum.xda-developers.com/apps/magisk/magisk-shellhide-t3855616) by @JayminSuthar together with this module. They might work in conjunction to get the device to pass SafetyNet. This should only be necessary on Magisk releases up to v18.1, due to later versions of Magisk having an updated and improved MagiskHide. +- Xiaomi devices (MIUI) sometimes have issues passing the ctsProfile check on Magisk releases up to v18.1, particularly China ROMs. Try updating to a newer Magisk version, since MagiskHide has been greatly improved since v18.1. - If you're on Android Pie you will have to use Magisk v17.2+. Any version prior to that will not be able to change the required prop values. This is because of a change in Android Pie, and with Magisk v17.2 the resetprop tool was updated for this change. ### An option is marked as "disabled" @@ -358,7 +362,13 @@ Releases from v2.4.1 are compatible with Magisk v17+. ## Changelog -### v3.5.0 +### v3.5.1 +- Fix a few bugs causing props not setting properly at boot in some cases when using the system.prop boot stage. +- Moved ro.build.version.security_patch to late_start service by default, so as not to cause issues for devices with Keymaster 4 (possible source of bootloops). Thank you @Nebrassy. +- Added an option to change security patch date boot stage under "Edit device fingerprint" boot stages. +- Added a new fingerprint for the Xiaomi Redmi Note7 and an updated one for Motorola Moto G6 Play. Fingerprints list updated to v50. + +### v3.5.0 - Added ro.build.version.sdk to the device simulation props (see the documentation for details). - Updated editing the device fingerprint feature so that fingerprints for different Android versions can be added to the fingerprints list and the user can pick the desired one when applying a new fingerprint (see the documentation for details). Several fingerprints have been updated with dual fingerprints. - Updated and optimised when props are set during boot. Uses Magisk's system.prop function by default, rather than post-fs-data, to avoid putting a strain on the system during boot. At what boot stage props are set can of course be completely configured by the user (see the documentation for details). @@ -589,7 +599,7 @@ Releases from v2.4.1 are compatible with Magisk v17+. ## Current fingerprints list -### List v49 +### List v50 - Asus Zenfone 2 Laser (6.0.1) - Asus Zenfone 4 Max (7.1.1) - Asus Zenfone Max M1 (8.0.0) @@ -646,7 +656,7 @@ Releases from v2.4.1 are compatible with Magisk v17+. - Motorola Moto G5 (7.0) - Motorola Moto G5 Plus (7.0) - Motorola Moto G5S (7.1.1) -- Motorola Moto G6 Play (8.0.0) +- Motorola Moto G6 Play (8.0.0 & 9) - Motorola Moto X4 (8.0.0) - Motorola Moto Z2 Play (8.0.0) - Nextbook Ares 8A (6.0.1) @@ -750,6 +760,7 @@ Releases from v2.4.1 are compatible with Magisk v17+. - Xiaomi Redmi Note 5 Pro (8.1.0) - Xiaomi Redmi Note 5A Lite (7.1.2) - Xiaomi Redmi Note 6 Pro (8.1.0) +- Xiaomi Redmi Note 7 (9) - Xiaomi Redmi Y1 (7.1.2) - ZTE Axon 7 (7.1.1 & 8.0.0) - ZTE Blade (6.0.1) diff --git a/common/post-fs-data.sh b/common/post-fs-data.sh index 9710c41..83e8f95 100644 --- a/common/post-fs-data.sh +++ b/common/post-fs-data.sh @@ -5,6 +5,7 @@ # Licence: MIT MODPATH=${0%/*} +BOOTSTAGE="post" # Load functions . $MODPATH/util_functions.sh @@ -15,6 +16,7 @@ COREPATH=$(dirname "$IMGPATH") # Start logging log_start +bb_check # Clears out the script check file rm -f $RUNFILE @@ -67,18 +69,20 @@ fi # Get default values log_handler "Checking device default values." -curr_values +#curr_values # Get the current original values saved in propsconf_late -log_handler "Loading currently saved values." -. $LATEFILE +#log_handler "Loading currently saved values." +#. $LATEFILE # Save default file values in propsconf_late for ITEM in $VALPROPSLIST; do TMPPROP=$(get_prop_type $ITEM | tr '[:lower:]' '[:upper:]') ORIGPROP="ORIG${TMPPROP}" - ORIGTMP="$(eval "echo \$$ORIGPROP")" + #ORIGTMP="$(eval "echo \$$ORIGPROP")" + ORIGTMP="$(get_file_value $LATEFILE "${ORIGPROP}=")" CURRPROP="CURR${TMPPROP}" - CURRTMP="$(eval "echo \$$CURRPROP")" + #CURRTMP="$(eval "echo \$$CURRPROP")" + CURRTMP="$(resetprop $ITEM)" replace_fn $ORIGPROP "\"$ORIGTMP\"" "\"$CURRTMP\"" $LATEFILE done log_handler "Default values saved to $LATEFILE." @@ -90,13 +94,13 @@ for V in $PROPSLIST; do log_handler "Checking ${V}=${FILEVALUE}" safe_props $V $FILEVALUE if [ "$SAFE" == 0 ]; then - log_handler "Prop $V set to triggering value in prop file." + echo "Prop $V set to triggering value in prop file." >> $LOGFILE 2>&1 replace_fn FILESAFE 1 0 $LATEFILE else if [ -z "$FILEVALUE" ]; then - log_handler "Could not retrieve value for prop $V." + echo "Could not retrieve value for prop $V." >> $LOGFILE 2>&1 elif [ "$SAFE" == 1 ]; then - log_handler "Prop $V set to \"safe\" value in prop file." + echo "Prop $V set to \"safe\" value in prop file." >> $LOGFILE 2>&1 fi fi done @@ -107,13 +111,17 @@ done config_file # Edits prop values if set for post-fs-data -echo -e "\n--------------------" >> $LOGFILE 2>&1 +echo -e "\n----------------------------------------" >> $LOGFILE 2>&1 log_handler "Editing prop values in post-fs-data mode." if [ "$OPTIONBOOT" == 1 ]; then # ---Setting/Changing fingerprint--- if [ "$PRINTSTAGE" == 0 ]; then print_edit fi + # ---Setting/Changing security patch date--- + if [ "$PATCHSTAGE" == 0 ]; then + patch_edit + fi # ---Setting device simulation props--- if [ "$SIMSTAGE" == 0 ]; then dev_sim_edit @@ -125,6 +133,10 @@ fi if [ "$OPTIONBOOT" != 1 ] && [ "$PRINTSTAGE" == 1 ]; then print_edit fi +# Edit security patch date if set for post-fs-data +if [ "$OPTIONBOOT" != 1 ] && [ "$PATCHSTAGE" == 1 ]; then + patch_edit +fi # Edit simulation props if set for post-fs-data if [ "$OPTIONBOOT" != 1 ] && [ "$SIMSTAGE" == 1 ]; then dev_sim_edit @@ -133,7 +145,7 @@ fi custom_edit "CUSTOMPROPSPOST" # Deleting props prop_del -echo -e "\n--------------------" >> $LOGFILE 2>&1 +echo -e "\n----------------------------------------" >> $LOGFILE 2>&1 # Edits build.prop if [ "$FILESAFE" == 0 ]; then diff --git a/common/prints.sh b/common/prints.sh index c565f2c..de2b7fa 100644 --- a/common/prints.sh +++ b/common/prints.sh @@ -4,7 +4,7 @@ # Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers # Licence: MIT -PRINTSV=49 +PRINTSV=50 PRINTSTRANSF=350 # Certified fingerprints @@ -64,8 +64,8 @@ Motorola Moto E5 Plus (8.0.0)=motorola/hannah_sprint/hannah:8.0.0/OCPS27.91-32-4 Motorola Moto G4 (7.0)=motorola/athene/athene:7.0/NPJS25.93-14-13/3:user/release-keys Motorola Moto G5 (7.0)=motorola/cedric/cedric:7.0/NPPS25.137-15-11/11:user/release-keys Motorola Moto G5 Plus (7.0)=motorola/potter_n/potter_n:7.0/NPNS25.137-33-11/11:user/release-keys -Motorola Moto G5S (7.1.1 & 8.1.0)=motorola/montana/montana:7.1.1/NPPS26.102-49-8/6:user/release-keys -Motorola Moto G6 Play (8.0.0)=motorola/jeter_sprint/jeter:8.0.0/OCP27.91-23/23:user/release-keys +Motorola Moto G5S (7.1.1)=motorola/montana/montana:7.1.1/NPPS26.102-49-8/6:user/release-keys +Motorola Moto G6 Play (8.0.0 & 9)=motorola/jeter_sprint/jeter:8.0.0/OCP27.91-23/23:user/release-keys;motorola/aljeter/aljeter:9/PPP29.55-25/08c6:user/release-keys__2019-01-01 Motorola Moto X4 (8.0.0)=motorola/payton/payton:8.0.0/OPWS27.57-25-6-10/12:user/release-keys Motorola Moto Z2 Play (8.0.0)=motorola/albus/albus:8.0.0/OPS27.76-12-25/26:user/release-keys Nextbook Ares 8A (6.0.1)=NextBook/NX16A8116K/NX16A8116K:6.0.1/MMB29M/V4.0.3:user/release-keys @@ -165,10 +165,11 @@ Xiaomi Redmi Note 2 (5.0.2)=Xiaomi/hermes/hermes:5.0.2/LRX22G/V9.2.4.0.LHMMIEK:u Xiaomi Redmi Note 3 Pro (6.0.1)=Xiaomi/kenzo/kenzo:6.0.1/MMB29M/V8.2.1.0.MHOCNDL:user/release-keys Xiaomi Redmi Note 3 Pro SE (6.0.1)=Xiaomi/kate/kate:6.0.1/MMB29M/V8.1.3.0.MHRMIDI:user/release-keys Xiaomi Redmi Note 4/4X (7.0)=xiaomi/mido/mido:7.0/NRD90M/V9.2.1.0.NCFMIEK:user/release-keys -Xiaomi Redmi Note 5/5 Plus (7.1.2)=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys +Xiaomi Redmi Note 5/5 Plus (7.1.2)=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys; Xiaomi Redmi Note 5 Pro (8.1.0)=xiaomi/whyred/whyred:8.1.0/OPM1.171019.011/V10.0.6.0.OEIMIFH:user/release-keys__2018-11-01 Xiaomi Redmi Note 5A Lite (7.1.2)=xiaomi/ugglite/ugglite:7.1.2/N2G47H/V9.1.2.0.NDFMIEI:user/release-keys Xiaomi Redmi Note 6 Pro (8.1.0)=xiaomi/tulip/tulip:8.1.0/OPM1.171019.011/V10.0.5.0.OEKMIFH:user/release-keys__2018-10-01 +Xiaomi Redmi Note 7 (9)=xiaomi/lavender/lavender:9/PKQ1.180904.001/V10.2.7.0.PFGINXM:user/release-keys__2019-02-05 Xiaomi Redmi Y1 (7.1.2)=xiaomi/ugg/ugg:7.1.2/N2G47H/V9.6.2.0.NDKMIFD:user/release-keys__2018-07-01 ZTE Axon 7 (7.1.1 & 8.0.0)=ZTE/P996A01_N/ailsa_ii:7.1.1/NMF26V/20171211.005949:user/release-keys;ZTE/P996A01_O/ailsa_ii:8.0.0/OPR1.170623.032/20180815.171922:user/release-keys__2018-07-01 ZTE Blade (6.0.1)=ZTE/P809A50_MY_MAX/P809A50:6.0.1/MMB29M/20161017.095504:user/release-keys diff --git a/common/propsconf_conf b/common/propsconf_conf index 2f08437..bbe94af 100644 --- a/common/propsconf_conf +++ b/common/propsconf_conf @@ -5,12 +5,13 @@ # Licence: MIT # Required module version. Do not edit this value! -CONFTRANSF=350 +CONFTRANSF=351 # Device fingerprint CONFFINGERPRINT="" CONFVENDPRINT=false CONFPRINTBOOT=default +CONFPATCHBOOT=late # Device simulation CONFDEVSIM=false @@ -91,6 +92,12 @@ CONFUPDATE=true # If the setting is changed to "post" or "late", the props will be set during either # post-fs-data or late_start service mode. This is useful if props don't seem to set # propely or the module's boot script seems to be causing issues during boot. +# +# CONFPATCHBOOT is by default set to using late_start service boot stage for setting +# ro.build.version.security_patch. If the setting is changed to "default" or "late", +# the prop will be set during either the default or late_start service stage. The +# late_start service boot stage is used as to not cause issues for devices with +# Keymaster 4 (bootloops). If the prop doesn't seem to set properly, try changing the stage. # CONFDEVSIM and the following CONFBRAND, CONFNAME, CONFDEVICE, CONFRELEASE # CONFID, CONFINCREMENTAL, CONFDESCRIPTION and CONFSDK are used to set a number diff --git a/common/propsconf_late b/common/propsconf_late index fb8ac83..f2a4f26 100644 --- a/common/propsconf_late +++ b/common/propsconf_late @@ -10,7 +10,7 @@ # In that case, feel free to delete it. # Script version -SCRIPTV=24 +SCRIPTV=25 SETTRANSF=2 NOTTRANSF="" @@ -45,6 +45,7 @@ DELEDIT=0 # Boot stages PRINTSTAGE=0 +PATCHSTAGE=2 SIMSTAGE=0 # Script settings diff --git a/common/service.sh b/common/service.sh index bec0aef..c7b5b6c 100644 --- a/common/service.sh +++ b/common/service.sh @@ -5,6 +5,7 @@ # Licence: MIT MODPATH=${0%/*} +BOOTSTAGE="late" # Load functions . $MODPATH/util_functions.sh @@ -18,13 +19,17 @@ fi log_script_chk "Running service.sh module script." # Edits prop values if set for late_start service -echo -e "\n--------------------" >> $LOGFILE 2>&1 +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 fi + # ---Setting/Changing security patch date--- + if [ "$PATCHSTAGE" == 0 ]; then + patch_edit + fi # ---Setting device simulation props--- if [ "$SIMSTAGE" == 0 ]; then dev_sim_edit @@ -36,6 +41,10 @@ fi if [ "$OPTIONBOOT" != 2 ] && [ "$PRINTSTAGE" == 2 ]; then print_edit fi +# Edit security patch date if set for late_start service +if [ "$OPTIONBOOT" != 2 ] && [ "$PATCHSTAGE" == 2 ]; then + patch_edit +fi # Edit simulation props if set for late_start service if [ "$OPTIONBOOT" != 2 ] && [ "$SIMSTAGE" == 2 ]; then dev_sim_edit @@ -55,7 +64,7 @@ if [ "$PROPEDIT" == 1 ]; then fi done fi -echo -e "\n--------------------" >> $LOGFILE 2>&1 +echo -e "\n----------------------------------------" >> $LOGFILE 2>&1 # ---Edits default.prop--- if [ "$DEFAULTEDIT" == 1 ] && [ "$FILESAFE" == 0 ]; then @@ -70,5 +79,7 @@ fi # 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.\n\n==================" diff --git a/common/util_functions.sh b/common/util_functions.sh index 582d728..ed3015b 100644 --- a/common/util_functions.sh +++ b/common/util_functions.sh @@ -62,6 +62,7 @@ if [ "$INSTFN" ]; then CUSTOMEDIT DELEDIT PRINTSTAGE + PATCHSTAGE SIMSTAGE OPTIONBOOT OPTIONCOLOUR @@ -306,6 +307,16 @@ module_v_ctrl() { VERSIONCMP=$(echo $VERSIONTMP | sed 's|v||g' | sed 's|-.*||' | sed 's|\.||g') } +# Check for Busybox +bb_check() { + if [ "$BBPATH" ]; then + log_handler "Using $($BBPATH | head -1)." + echo "$BBPATH" >> $LOGFILE 2>&1 + else + log_handler "No Busybox found." + fi +} + # Find prop type get_prop_type() { if [ "$1" == "ro.vendor.build.fingerprint" ]; then @@ -504,12 +515,14 @@ after_change() { all_values # Update the system.prop file system_prop - # Ask to reboot - reboot_fn "$1" "$2" + if [ "$4" != "noreboot" ]; then + # Ask to reboot + reboot_fn "$1" "$2" + fi fi } -# Run after changing props/settings with configuration file +# Run after editing prop files after_change_propfile() { # Update the reboot variable reboot_chk @@ -599,12 +612,7 @@ reset_fn() { placeholder_update $LATEFILE CACHELOC CACHE_PLACEHOLDER "$CACHELOC" placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH" - if [ "$1" != "post" ]; then - # Update the reboot variable - reboot_chk - # Update all prop value variables - all_values - fi + after_change "$1" "$2" } # Checks for configuration file @@ -697,6 +705,18 @@ config_file() { fi replace_fn PRINTSTAGE $PRINTSTAGE $OPTLCHNG $LATEFILE log_handler "Fingerprint boot stage is ${TMPTXT}." + if [ "$CONFPATCHBOOT" == "default" ]; then + OPTLCHNG=0 + TMPTXT="default" + elif [ "$CONFPATCHBOOT" == "post" ]; then + OPTLCHNG=1 + TMPTXT="post-fs-data" + elif [ "$CONFPATCHBOOT" == "late" ]; then + OPTLCHNG=2 + TMPTXT="late_start service" + fi + replace_fn PATCHSTAGE $PATCHSTAGE $OPTLCHNG $LATEFILE + log_handler "Security patch boot stage is ${TMPTXT}." fi if [ "$DEVSIM" == 1 ]; then if [ "$CONFSIMBOOT" == "default" ]; then @@ -832,9 +852,32 @@ system_prop() { log_handler "Creating system.prop file." touch $MODPATH/system.prop >> $LOGFILE 2>&1 echo -e "# This file will be read by resetprop\n\n# MagiskHide Props Config\n# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers\n# Licence: MIT\n" >> $MODPATH/system.prop - print_edit "$MODPATH/system.prop" - dev_sim_edit "$MODPATH/system.prop" - custom_edit "CUSTOMPROPS" "$MODPATH/system.prop" + if [ "$PRINTSTAGE" == 0 ]; then + print_edit "$MODPATH/system.prop" + fi + if [ "$PATCHSTAGE" == 0 ]; then + patch_edit "$MODPATH/system.prop" + fi + if [ "$SIMSTAGE" == 0 ]; then + dev_sim_edit "$MODPATH/system.prop" + fi + if [ "CUSTOMPROPS" ]; then + custom_edit "CUSTOMPROPS" "$MODPATH/system.prop" + fi + # Check system.prop content + system_prop_cont + fi +} + +# system.prop content +system_prop_cont() { + if [ -f "$MODPATH/system.prop" ]; then + log_handler "system.prop contents:" + echo "----------------------------------------" >> $LOGFILE 2>&1 + cat $MODPATH/system.prop >> $LOGFILE 2>&1 + echo "----------------------------------------" >> $LOGFILE 2>&1 + else + log_handler "No system.prop file present." fi } @@ -1096,42 +1139,17 @@ print_edit() { for ITEM in $PRINTPROPS; do log_handler "Changing/writing $ITEM." if [ "$1" ]; then - if [ "$PRINTSTAGE" == 0 ]; then - log_handler "${ITEM}=${PRINTCHNG}" - echo "${ITEM}=${PRINTCHNG}" >> $1 - fi + echo "${ITEM}=${PRINTCHNG}" >> $1 else resetprop -nv $ITEM $PRINTCHNG >> $LOGFILE 2>&1 fi done - # Edit security patch date if included - if [ "$PRINTVEND" != 1 ]; then - SECPATCH="$(get_sec_patch $MODULEFINGERPRINT)" - case "$MODULEFINGERPRINT" in - *__*) - if [ "$SECPATCH" ]; then - log_handler "Updating security patch date to match fingerprint used." - if [ "$1" ]; then - if [ "$PRINTSTAGE" == 0 ]; then - log_handler "ro.build.version.security_patch=${SECPATCH}" - echo "ro.build.version.security_patch=${SECPATCH}" >> $1 - fi - else - resetprop -nv ro.build.version.security_patch $SECPATCH >> $LOGFILE 2>&1 - fi - fi - ;; - esac - fi # Edit device description if [ "$DESCRIPTIONSET" == 1 ]; then if [ "$SIMDESCRIPTION" ]; then log_handler "Changing/writing ro.build.description." if [ "$1" ]; then - if [ "$PRINTSTAGE" == 0 ]; then - log_handler "ro.build.description=${SIMDESCRIPTION}" - echo "ro.build.description=${SIMDESCRIPTION}" >> $1 - fi + echo "ro.build.description=${SIMDESCRIPTION}" >> $1 else resetprop -nv ro.build.description "$SIMDESCRIPTION" >> $LOGFILE 2>&1 fi @@ -1142,6 +1160,25 @@ print_edit() { fi } +# Edit security patch date if included +patch_edit() { + if [ "$PRINTVEND" != 1 ]; then + case "$MODULEFINGERPRINT" in + *__*) + SECPATCH="$(get_sec_patch $MODULEFINGERPRINT)" + if [ "$SECPATCH" ]; then + log_handler "Updating security patch date to match fingerprint used." + if [ "$1" ]; then + echo "ro.build.version.security_patch=${SECPATCH}" >> $1 + else + resetprop -nv ro.build.version.security_patch $SECPATCH >> $LOGFILE 2>&1 + fi + fi + ;; + esac + fi +} + # Create fingerprint files print_files() { if [ "$INSTFN" ]; then @@ -1320,7 +1357,9 @@ change_print() { NEWFINGERPRINT="" - if [ "$DEVSIM" == 1 ]; then + if [ "$DEVSIM" == 0 ]; then + after_change "$1" "$3" "$4" "noreboot" + else after_change "$1" "$3" "$4" fi } @@ -1355,7 +1394,9 @@ change_print_vendor() { # Set device simulation variables print_parts "$ORIGVENDPRINT" - if [ "$DEVSIM" == 1 ]; then + if [ "$DEVSIM" == 0 ]; then + after_change "$1" "$3" "$4" "noreboot" + else after_change "$1" "$3" fi } @@ -1417,10 +1458,7 @@ dev_sim_edit() { if [ "$TMPENB" == 1 ] && [ "$TMPVALUE" ]; then log_handler "Changing/writing $ITEM." if [ "$1" ]; then - if [ "$SIMSTAGE" == 0 ]; then - log_handler "${ITEM}=${TMPVALUE}" - echo "${ITEM}=${TMPVALUE}" >> $1 - fi + echo "${ITEM}=${TMPVALUE}" >> $1 else resetprop -nv $ITEM $TMPVALUE >> $LOGFILE 2>&1 fi @@ -1725,9 +1763,8 @@ custom_edit() { log_handler "Writing custom props." for ITEM in $TMPLST; do log_handler "Changing/writing $(get_eq_left "$ITEM")." - TMPITEM=$( echo $(get_eq_right "$ITEM") | sed 's|_sp_| |g') - if [ "$1" == "CUSTOMPROPS" ] && [ "$2" ]; then - log_handler "$(get_eq_left "$ITEM")=${TMPITEM}" + TMPITEM=$(echo $(get_eq_right "$ITEM") | sed 's|_sp_| |g') + if [ "$2" ]; then echo "$(get_eq_left "$ITEM")=${TMPITEM}" >> $2 else resetprop -nv $(get_eq_left "$ITEM") "$TMPITEM" >> $LOGFILE 2>&1 @@ -1890,17 +1927,19 @@ collect_logs() { *) BPNAME="" ;; esac - cp -af $ITEM ${TMPLOGLOC}/${BPNAME} >> $LOGFILE 2>&1 + if [ "$ITEM" != "$CACHELOC/propsconf.log" ]; then + cp -af $ITEM ${TMPLOGLOC}/${BPNAME} >> $LOGFILE 2>&1 + fi else case "$ITEM" in - */cache) + *cache) if [ "$CACHELOC" == "/cache" ]; then CACHELOCTMP=/data/cache else CACHELOCTMP=/cache fi ITEMTPM=$(echo $ITEM | sed 's|$CACHELOC|$CACHELOCTMP|') - if [ -f "$ITEMTPM" ]; then + if [ -f "$a" ]; then cp -af $ITEMTPM $TMPLOGLOC >> $LOGFILE 2>&1 else log_handler "$ITEM not available." @@ -1914,6 +1953,9 @@ collect_logs() { # Saving the current prop values resetprop > $TMPLOGLOC/props.txt + + # Saving the log file + cp -af $CACHELOC/propsconf.log $TMPLOGLOC >> $LOGFILE 2>&1 # Package the files cd $CACHELOC @@ -1953,4 +1995,7 @@ collect_logs() { } # Log print -log_handler "Functions loaded." +if [ "$BOOTSTAGE" != "post" ]; then + log_handler "Functions loaded." + bb_check +fi diff --git a/module.prop b/module.prop index dd296e6..e118cb3 100644 --- a/module.prop +++ b/module.prop @@ -1,7 +1,7 @@ id=MagiskHidePropsConf name=MagiskHide Props Config -version=v3.5.0-v49 -versionCode=41 +version=v3.5.1-v50 +versionCode=42 author=Didgeridoohan description=Change your device's fingerprint, to pass SafetyNet's CTS Profile check. Edit prop files for better root hiding. Set/reset prop values set by MagiskHide. Change any prop values easily, and set your own custom props. minMagisk=17000 diff --git a/system/binpath/props b/system/binpath/props index 60cdbf1..5d90a41 100644 Binary files a/system/binpath/props and b/system/binpath/props differ