diff --git a/README.md b/README.md index d9b087c..ff432ca 100644 --- a/README.md +++ b/README.md @@ -30,12 +30,12 @@ This might be because your device simply hasn't been certified or that the ROM y To fix this, you can use a known working fingerprint (one that has been certified by Google), usually from a stock ROM/firmware/factory image, and replace your device's current fingerprint with this. You can also use a fingerprint from another device, but this will change how your device is perceived. -NOTE: If you're using a fingerprint for an Android build after March 16th 2018 you might have to change the security patch date to one that matches the fingerprint used. You can use the [Custom prop](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) function of this module to change `ro.build.version.security_patch` to the desired date. +NOTE: If you're using a fingerprint for an Android build after March 16th 2018 you might have to change the security patch date to one that matches the fingerprint used. You can use the [Custom prop](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) function of this module to change `ro.build.version.security_patch` to the desired date. If you don't know the security patch date you can try finding it with trial and error. The dates are always either the 1st or the 5th of the month, so try different months one after the other until the CTS profile passes. There are a few pre-configured certified fingerprints available in the module, just in case you can't get a hold of one for your device. If you have a working fingerprint that could be added to the list, or an updated one for one already on there, please post that in the [module support thread](https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228) toghether with device details. Please also include the Android security patch date for the factory image/firmware/ROM that the fingerprint comes from. ### Matching the Android security patch date -For some devices, if the fingerprint is for an Android build after March 16th 2018, it is necessary to use a security patch date that matches the fingerprint used. For the module provided fingerprints this is done automatically, but if you enter a fingerprint manually you will have to update the security patch date yourself (if they don't already match). Use the [Custom prop](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values)an unction of this module to change `ro.build.version.security_patch` to the desired date. +For some devices, if the fingerprint is for an Android build after March 16th 2018, it is necessary to use a security patch date that matches the fingerprint used. For the module provided fingerprints this is done automatically, but if you enter a fingerprint manually you will have to update the security patch date yourself (if they don't already match). Use the [Custom props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) function of this module to change `ro.build.version.security_patch` to the desired date. ### Can I use any fingerprint? It's possible to use any fingerprint that's certified for your device. It doesn't have to match, either device or Android version. If you don't use a fingerprint for your device, the device might be percieved as the device that the fingerprint belongs to, in certain situations (Play Store, etc). The Android version doesn't matter much, and if you're using a ROM with an Android version much newer than what is officially available for your device, you are going to have to use an older fingerprint if you want to use the one for your device. But, like already stated, that doesn't really matter. @@ -75,14 +75,15 @@ Here's an example: ``` Google Nexus 6=google/shamu/shamu:7.1.1/N8I11B/4171878:user/release-keys ``` -NOTE: If you're using a fingerprint for an Android build after March 16th 2018 you might have to change the security patch date to one that matches the fingerprint used. This can be done directly in the fingerprints list, by adding a paragraph sign (`§`) at the end of the fingerprint directly followed by the date (`§2018-09-05`). You can also use the [Custom prop](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) function of this module to change `ro.build.version.security_patch` to the desired date. +NOTE: If you're using a fingerprint for an Android build after March 16th 2018 you might have to change the security patch date to one that matches the fingerprint used. This can be done directly in the fingerprints list, by adding a paragraph sign (`§`) at the end of the fingerprint directly followed by the date (`§2018-09-05`). You can also use the [Custom props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) function of this module to change `ro.build.version.security_patch` to the desired date. If you don't know the security patch date you can try finding it with trial and error. The dates are always either the 1st or the 5th of the month, so try different months one after the other until the CTS profile passes. ### 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 move the execution of the boot script to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) 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. - Try a different fingerprint (pick one from the provided list). +- 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. Check in your ROM thread or with the creator/developer. - You might have remnants of previous modifications that trigger SafetyNet on your device. A clean install of your system may be required. - If you can't get things working, and want help, make sure to provide logs and details. See ["Logs"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#logs) below. @@ -104,7 +105,7 @@ The fingerprints list will update without the need to update the entire module. Just run the `props` command and the list will be updated automatically. Use the -nw option to disable or disable it completely in the script settings (see ["Prop script settings"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#prop-script-settings) below). If you've disabled the this setting you can update the list manually in the `Edit device fingerprint` menu. -**_Current fingerprints list version - v32_** +**_Current fingerprints list version - v33_** ## Please add support for device X @@ -193,12 +194,12 @@ If you have questions, suggestions or are experiencing some kind of issue, visit ### Known issues - Xiaomi devices (MIUI) often 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. -- 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 in Magisk v17.2 the resetprop tool has been updated for this change. +- 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 in Magisk v17.2 the resetprop tool wwas been updated for this change. ### An option is marked as "disabled" A couple of the options in the `props` script will be automatically disabled in some circumstances. These are: - _"Edit device fingerprint"_ will be disabled if another Magisk module that is known to also edit the device fingerprint is installed. Check the logs to get information about which module this is. -- _"Improved hiding"_ will be disable if all relevant prop values already are "safe". +- _"Improved hiding"_ will be disable if all relevant prop values already are "safe", or if conflicting modules that also Magic Mounts build.prop are found. ### I can't pass the ctsProfile check See ["I still can't pass the ctsProfile check"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#i-still-cant-pass-the-ctsprofile-check) above. @@ -209,10 +210,10 @@ Also see ["Props don't seem to set properly"](https://github.com/Magisk-Modules- This module can only really help with the ctsProfile check, by spoofing the device fingerprint. If you can't pass basicIntegrity, there's probably something else going on with your device. See ["Miscellaneous MagiskHide issues"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues) above. ### Props don't seem to set properly -If it seems like props you're trying to set with the module don't get set properly (ctsProfile still doesn't pass, custom props don't work, etc), go into the script options and change the execution of the boot script to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) above. +If it seems like props you're trying to set with the module don't get set properly (ctsProfile still doesn't pass, custom props don't work, etc), go into the script options and change the boot stage at which the props are being set, or change the boot stage for that particular prop. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) or ["Custom prop values"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) above. ### My device's Android security patch date changed -For some devices, when using an Android Pie fingerprint, it is necessary to also change the security patch date to match the fingerprint. This is automatically done by the module when using a Pie fingerprint. If you do not want this to happen you can manually add `ro.build.version.security_patch` to the custom props and add back the original date. +For some devices it is necessary to also change the security patch date to match the fingerprint. This is automatically done by the module when using a fingerprint from a build after March 16 2018. If you do not want this to happen you can manually add `ro.build.version.security_patch` to the custom props and load back the original date. ### Device issues because of the module In case of issues, if you've set a prop value that doesn't work on your device causing it not to boot, etc, don't worry. There are options. You can follow the advice in the [Magisk troubleshooting guide](https://www.didgeridoohan.com/magisk/Magisk#hn_Module_causing_issues_Magisk_functionality_bootloop_loss_of_root_etc) to remove or disable the module, or you can use the module's built-in options to reset all module settings to the defaults. @@ -243,6 +244,14 @@ If you can't run the `props` script for some reason, the logs are also stored in ## Changelog +### v2.6.0 +- Updated the fingerprints list to load much, much faster. +- Added and updated fingerprints for Huawei Mate 10, Nextbook Ares 8A, OnePlus 3, 3T, 5 and 5T, ZTE Axon 7. List updated to v33. +- The new and improved SafetyNet fix turns out to be not only for Android Pie. Gone through the entire list and added security patch dates where needed. +- Fixed some seriously botched code in v2.5.0. +- As usual, small bug fixes and improvemnts. +- No Yoshis where harmed during the making of this release. + ### v2.5.0 - Improved/fixed the SafetyNet fix when using Android Pie fingerprints. - Updated/changed Busybox logic. @@ -394,7 +403,7 @@ If you can't run the `props` script for some reason, the logs are also stored in ## Current fingerprints list -### List v32 +### List v33 - Asus Zenfone 2 Laser (6.0.1) - Asus Zenfone 4 Max (7.1.1) - Asus ZenPad S 8.0 (6.0.1) @@ -414,6 +423,7 @@ If you can't run the `props` script for some reason, the logs are also stored in - HTC U11 (8.0.0) - Huawei Honor 6X (8.0.0) - Huawei Honor 9 (8.0.0) +- Huawei Mate 10 (8.0.0) - Huawei Mate 10 Pro (8.0.0) - Huawei P8 Lite (8.0.0) - Huawei P9 (7.0) @@ -431,6 +441,7 @@ If you can't run the `props` script for some reason, the logs are also stored in - Motorola Moto G6 Play (8.0.0) - Motorola Moto X4 (8.0.0) - Motorola Moto Z2 Play (8.0.0) +- Nextbook Ares 8A (6.0.1) - Nokia 7 Plus (9) - Nvidia Shield K1 (7.0) - Nvidia Shield Tablet (7.0) @@ -513,7 +524,7 @@ If you can't run the `props` script for some reason, the logs are also stored in - Xiaomi Redmi Note 5/5 Plus (7.1.2) - Xiaomi Redmi Note 5 Pro (8.1.0) - Xiaomi Redmi Note 5A Lite (7.1.2) -- ZTE Axon 7 (7.1.1) +- ZTE Axon 7 (8.0.0) - ZTE Blade (6.0.1) - ZTE Nubia Z17 (7.1.1) - Zuk Z2 Pro (7.0) diff --git a/common/prints.sh b/common/prints.sh index d9bdbc0..dbe0a41 100644 --- a/common/prints.sh +++ b/common/prints.sh @@ -3,8 +3,8 @@ # MagiskHide Props Config # By Didgeridoohan @ XDA Developers -PRINTSV=32 -PRINTSTRANSF=2 +PRINTSV=33 +PRINTSTRANSF=250 PRINTSFILE=/sdcard/printslist @@ -29,6 +29,7 @@ HTC 10 (6.0.1)=htc/HTCOneM10vzw/htc_pmewl:6.0.1/MMB29M/774095.8:user/release-key HTC U11 (8.0.0)=htc/ocndtwl_01405/htc_ocndtwl:8.0.0/OPR6.170623.013/1017190.2:user/release-keys Huawei Honor 6X (8.0.0)=HONOR/BLN-AL10/HWBLN-H:8.0.0/HONORBLN-AL10/528(C00):user/release-keys Huawei Honor 9 (8.0.0)=HONOR/STF-L09/HWSTF:8.0.0/HUAWEISTF-L09/364(C432):user/release-keys +Huawei Mate 10 (8.0.0)=HUAWEI/ALP-L29/HWALP:8.0.0/HUAWEIALP-L29S/143(C636):user/release-keys§2018-10-01 Huawei Mate 10 Pro (8.0.0)=HUAWEI/BLA-L29/HWBLA:8.0.0/HUAWEIBLA-L29S/137(C432):user/release-keys Huawei P8 Lite (8.0.0)=HUAWEI/PRA-LX1/HWPRA-H:8.0.0/HUAWEIPRA-LX1/367(C432):user/release-keys Huawei P9 (7.0)=HUAWEI/EVA-L09/HWEVA:7.0/HUAWEIEVA-L09/C432B502:user/release-keys @@ -46,15 +47,16 @@ Motorola Moto G5S (7.1.1)=motorola/montana/montana:7.1.1/NPPS26.102-49-8/6:user/ Motorola Moto G6 Play (8.0.0)=motorola/jeter_sprint/jeter:8.0.0/OCP27.91-23/23:user/release-keys 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 Nokia 7 Plus (9)=Nokia/Onyx_00WW/B2N_sprout:9/PPR1.180610.011/00WW_3_22C:user/release-keys§2018-09-01 Nvidia Shield K1 (7.0)=nvidia/sb_na_wf/shieldtablet:7.0/NRD90M/1928188_1065.2559:user/release-keys Nvidia Shield Tablet (7.0)=nvidia/wx_na_wf/shieldtablet:7.0/NRD90M/1928188_904.2811:user/release-keys OnePlus 2 (6.0.1)=OnePlus/OnePlus2/OnePlus2:6.0.1/MMB29M/1447858500:user/release-keys OnePlus X (6.0.1)=OnePlus/OnePlus/OnePlus:6.0.1/MMB29M/10281213:user/release-keys -OnePlus 3 (8.0.0)=OnePlus/OnePlus3/OnePlus3:8.0.0/OPR1.170623.032/05171653:user/release-keys -OnePlus 3T (8.0.0)=OnePlus/OnePlus3/OnePlus3T:8.0.0/OPR1.170623.032/05171658:user/release-keys -OnePlus 5 (8.1.0)=OnePlus/OnePlus5/OnePlus5:8.1.0/OPM1.171019.011/06131715:user/release-keys -OnePlus 5T (8.1.0)=OnePlus/OnePlus5T/OnePlus5T:8.1.0/OPM1.171019.011/06131716:user/release-keys +OnePlus 3 (8.0.0)=OnePlus/OnePlus3/OnePlus3:8.0.0/OPR1.170623.032/1809142047:user/release-keys§2018-09-01 +OnePlus 3T (8.0.0)=OnePlus/OnePlus3/OnePlus3T:8.0.0/OPR1.170623.032/1809150114:user/release-keys§2018-09-01 +OnePlus 5 (8.1.0)=OnePlus/OnePlus5/OnePlus5:8.1.0/OPM1.171019.011/1809241512:user/release-keys§2018-09-01 +OnePlus 5T (8.1.0)=OnePlus/OnePlus5T/OnePlus5T:8.1.0/OPM1.171019.011/1809241512:user/release-keys§2018-09-01 OnePlus 6 (9)=OnePlus/OnePlus6/OnePlus6:9/PKQ1.180716.001/1809150000:user/release-keys§2018-09-05 Samsung Galaxy A8 Plus (7.1.1)=samsung/jackpot2ltexx/jackpot2lte:7.1.1/NMF26X/A730FXXU2ARD1:user/release-keys Samsung Galaxy Grand Prime (5.0.2)=samsung/fortuna3gdtvvj/fortuna3gdtv:5.0.2/LRX22G/G530BTVJU1BPH4:user/release-keys @@ -128,7 +130,7 @@ Xiaomi Redmi Note 4/4X (7.0)=xiaomi/mido/mido:7.0/NRD90M/V9.2.1.0.NCFMIEK:user/r 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/V9.5.11.0.OEIMIFA:user/release-keys Xiaomi Redmi Note 5A Lite (7.1.2)=xiaomi/ugglite/ugglite:7.1.2/N2G47H/V9.1.2.0.NDFMIEI:user/release-keys -ZTE Axon 7 (7.1.1)=ZTE/P996A01_N/ailsa_ii:7.1.1/NMF26V/20171211.005949:user/release-keys +ZTE Axon 7 (8.0.0)=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 ZTE Nubia Z17 (7.1.1)=nubia/NX563J/NX563J:7.1.1/NMF26X/eng.nubia.20171019.101529:user/release-keys Zuk Z2 Pro (7.0)=ZUK/z2_row/z2_row:7.0/NRD90M/2.5.435_170525:user/release-keys diff --git a/common/propsconf_late b/common/propsconf_late index 186eb5b..d577a76 100644 --- a/common/propsconf_late +++ b/common/propsconf_late @@ -9,7 +9,7 @@ # In that case, feel free to delete it. # Script version -SCRIPTV=14 +SCRIPTV=15 SETTRANSF=2 NOTTRANSF="OPTIONLATE" @@ -133,31 +133,33 @@ if [ -d "$MODPATH" ]; then SETFINGERPRINT=false # Edits prop values if set for late_start service - echo -e "\n--------------------" >> $LOGFILE 2>&1 - log_handler "Editing prop values in late_start service mode." - if [ "$OPTIONLATE" == 1 ]; then - # ---Setting/Changing fingerprint--- - print_edit - # ---Setting custom props--- - custom_edit "CUSTOMPROPS" + if [ "$OPTIONLATE" == 1 ] || [ "$CUSTOMPROPSLATE" -a "$CUSTOMEDIT" == 1 ] || [ "$PROPEDIT" == 1 ]; then + echo -e "\n--------------------" >> $LOGFILE 2>&1 + log_handler "Editing prop values in late_start service mode." + if [ "$OPTIONLATE" == 1 ]; then + # ---Setting/Changing fingerprint--- + print_edit + # ---Setting custom props--- + custom_edit "CUSTOMPROPS" + fi + # Edit custom props set for late_start service + custom_edit "CUSTOMPROPSLATE" + # Edit MagiskHide sensitive values + if [ "$PROPEDIT" == 1 ]; then + log_handler "Changing sensitive props." + for ITEM in $PROPSLIST; do + PROP=$(get_prop_type $ITEM) + REPROP=$(echo "RE${PROP}" | tr '[:lower:]' '[:upper:]') + MODULEPROP=$(echo "MODULE${PROP}" | tr '[:lower:]' '[:upper:]') + if [ "$(eval "echo \$$REPROP")" == "true" ]; then + log_handler "Changing/writing $ITEM." + resetprop -v $ITEM >> $LOGFILE 2>&1 + resetprop -nv $ITEM $(eval "echo \$$MODULEPROP") >> $LOGFILE 2>&1 + fi + done + fi + echo -e "\n--------------------" >> $LOGFILE 2>&1 fi - # Edit custom props set for late_start service - custom_edit "CUSTOMPROPSLATE" - # Edit MagiskHide sensitive values - if [ "$PROPEDIT" == 1 ]; then - log_handler "Changing sensitive props." - for ITEM in $PROPSLIST; do - PROP=$(get_prop_type $ITEM) - REPROP=$(echo "RE${PROP}" | tr '[:lower:]' '[:upper:]') - MODULEPROP=$(echo "MODULE${PROP}" | tr '[:lower:]' '[:upper:]') - if [ "$(eval "echo \$$REPROP")" == "true" ]; then - log_handler "Changing/writing $ITEM." - resetprop -v $ITEM >> $LOGFILE 2>&1 - resetprop -nv $ITEM $(eval "echo \$$MODULEPROP") >> $LOGFILE 2>&1 - fi - done - fi - echo -e "\n--------------------" >> $LOGFILE 2>&1 # ---Edits default.prop--- if [ "$DEFAULTEDIT" == 1 ] && [ "$FILESAFE" == 0 ]; then @@ -168,43 +170,19 @@ if [ -d "$MODPATH" ]; then else log_handler "Default.prop editing disabled." fi - fi - # Get currently saved values - log_handler "Checking current values." - curr_values + # Get currently saved values + log_handler "Checking current values." + curr_values - # Check if the late_start service log file exists. - if [ -f "$LATELOGFILE" ]; then - log_handler "Removing late_start service log ($LATELOGFILE)." - rm -f $LATELOGFILE >> $LOGFILE 2>&1 - fi - - log_script_chk "Boot script finished.\n\n==================" - fi -else - echo "$MODPATH not found." >> $LATELOGFILE 2>&1 - echo "Module no longer installed." >> $LATELOGFILE 2>&1 - # Cleanup - cleanup -fi -s / - else - log_handler "Default.prop editing disabled." + # Check if the late_start service log file exists. + if [ -f "$LATELOGFILE" ]; then + log_handler "Removing late_start service log ($LATELOGFILE)." + rm -f $LATELOGFILE >> $LOGFILE 2>&1 fi + + log_script_chk "Boot script finished.\n\n==================" fi - - # Get currently saved values - log_handler "Checking current values." - curr_values - - # Check if the late_start service log file exists. - if [ -f "$LATELOGFILE" ]; then - log_handler "Removing late_start service log ($LATELOGFILE)." - rm -f $LATELOGFILE >> $LOGFILE 2>&1 - fi - - log_script_chk "Boot script finished.\n\n==================" fi else echo "$MODPATH not found." >> $LATELOGFILE 2>&1 diff --git a/common/propsconf_post b/common/propsconf_post index 2dc3838..7c2c633 100644 --- a/common/propsconf_post +++ b/common/propsconf_post @@ -79,19 +79,21 @@ if [ -d "$MODPATH" ]; then config_file # Edits prop values if set for post-fs-data - echo -e "\n--------------------" >> $LOGFILE 2>&1 - log_handler "Editing prop values in post-fs-data mode." - if [ "$(get_file_value $LATEFILE "OPTIONLATE=")" == 0 ]; then - # ---Setting/Changing fingerprint--- - print_edit - # ---Setting custom props--- - custom_edit "CUSTOMPROPS" + if [ "$(get_file_value $LATEFILE "OPTIONLATE=")" == 0 ] || [ "$(get_file_value $LATEFILE "CUSTOMPROPSPOST=")" ] && [ "$(get_file_value $LATEFILE "CUSTOMEDIT=")" == 1 ]; then + echo -e "\n--------------------" >> $LOGFILE 2>&1 + log_handler "Editing prop values in post-fs-data mode." + if [ "$(get_file_value $LATEFILE "OPTIONLATE=")" == 0 ]; then + # ---Setting/Changing fingerprint--- + print_edit + # ---Setting custom props--- + custom_edit "CUSTOMPROPS" + fi + # Edit custom props set for post-fs-data + custom_edit "CUSTOMPROPSPOST" + echo -e "\n--------------------" >> $LOGFILE 2>&1 fi # Deleting props prop_del - # Edit custom props set for post-fs-data - custom_edit "CUSTOMPROPSPOST" - echo -e "\n--------------------" >> $LOGFILE 2>&1 # Edits build.prop if [ "$(get_file_value $LATEFILE "FILESAFE=")" == 0 ]; then diff --git a/common/util_functions.sh b/common/util_functions.sh index c1dec13..508e3b5 100644 --- a/common/util_functions.sh +++ b/common/util_functions.sh @@ -47,6 +47,7 @@ alias wget="$BBPATH wget" PRINTSLOC=$MODPATH/prints.sh PRINTSTMP=$CACHELOC/prints.sh PRINTSWWW="https://raw.githubusercontent.com/Magisk-Modules-Repo/MagiskHide-Props-Config/master/common/prints.sh" +PRINTFILES=$MODPATH/printfiles BIN=BIN_PLACEHOLDER USNFLIST=USNF_PLACEHOLDER @@ -180,12 +181,12 @@ get_android_version() { # Get security patch date for current fingerprint get_sec_patch() { - echo $1 | sed 's|.*§||' + echo $1 | sed 's|.*||' } # Get the fingerprint for displaying in the ui get_print_display() { - echo $1 | sed 's|§.*||' + echo $1 | sed 's|.*||' } # Replace file values @@ -491,22 +492,52 @@ test_connection() { print_edit() { if [ "$(get_file_value $LATEFILE "FINGERPRINTENB=")" == 1 -o "$(get_file_value $LATEFILE "PRINTMODULE=")" == "false" ] && [ "$(get_file_value $LATEFILE "PRINTEDIT=")" == 1 ]; then log_handler "Changing fingerprint." - PRINTCHNG="$(get_file_value $LATEFILE "MODULEFINGERPRINT=" | sed 's|§.*||')" + PRINTCHNG="$(get_file_value $LATEFILE "MODULEFINGERPRINT=" | sed 's|.*||')" for ITEM in $PRINTPROPS; do log_handler "Changing/writing $ITEM." resetprop -v $ITEM >> $LOGFILE 2>&1 resetprop -nv $ITEM $PRINTCHNG >> $LOGFILE 2>&1 done - # Edit security patch date if the print is for Android Pie+ + # Edit security patch date if included SECPATCH="$(get_sec_patch $(get_file_value $LATEFILE "MODULEFINGERPRINT="))" - if [ "$(get_android_version $PRINTCHNG)" -ge 900 ] && [ "$SECPATCH" ]; then - log_handler "Update security patch date to match fingerprint used." - resetprop -v ro.build.version.security_patch >> $LOGFILE 2>&1 - resetprop -v ro.build.version.security_patch $SECPATCH >> $LOGFILE 2>&1 - fi + case "$(get_file_value $LATEFILE "MODULEFINGERPRINT=")" in + **) + if [ "$SECPATCH" ]; then + log_handler "Update security patch date to match fingerprint used." + resetprop -v ro.build.version.security_patch >> $LOGFILE 2>&1 + resetprop -v ro.build.version.security_patch $SECPATCH >> $LOGFILE 2>&1 + fi + ;; + esac fi } +# Create fingerprint files +print_files() { + log_print "Creating fingerprint files." + rm -rf $PRINTFILES >> $LOGFILE 2>&1 + mkdir -pv $PRINTFILES >> $LOGFILE 2>&1 + # Loading prints + . $PRINTSLOC + # Saving manufacturers + log_handler "Saving manufacturers." + SAVEIFS=$IFS + IFS=$(echo -en "\n\b") + for ITEM in $PRINTSLIST; do + TMPOEMLIST=$(echo "$OEMLIST $(get_first $ITEM)" | sed 's|^[ \t]*||') + OEMLIST="$TMPOEMLIST" + done + IFS=$SAVEIFS + TMPOEMLIST=$(echo $(printf '%s\n' $OEMLIST | sort -u)) + OEMLIST="$TMPOEMLIST" + log_handler "Creating files." + for OEM in $OEMLIST; do + echo -e "PRINTSLIST=\"" >> $PRINTFILES/${OEM}\.sh + cat $PRINTSLOC | grep $OEM >> $PRINTFILES/${OEM}\.sh + echo -e "\"" >> $PRINTFILES/${OEM}\.sh + done +} + # Checks and updates the prints list download_prints() { if [ -z "$LOGNAME" ] && [ "$DEVTESTING" == "false" ]; then @@ -528,12 +559,14 @@ download_prints() { LISTVERSION=$(get_file_value $PRINTSTMP "PRINTSV=") if [ "$LISTVERSION" ]; then if [ "$LISTVERSION" == "Dev" ] || [ "$LISTVERSION" -gt "$(get_file_value $PRINTSLOC "PRINTSV=")" ]; then - if [ "$(get_file_value $PRINTSTMP "PRINTSTRANSF=")" -le "$(get_file_value $PRINTSLOC "PRINTSTRANSF=")" ]; then + VERSIONTMP=$(get_file_value $MODPATH/module.prop "version=") + VERSIONCMP=$(echo $VERSIONTMP | sed 's|v||g' | sed 's|-.*||' | sed 's|\.||g') + if [ "$(get_file_value $PRINTSTMP "PRINTSTRANSF=")" -le $VERSIONCMP ]; then mv -f $PRINTSTMP $PRINTSLOC >> $LOGFILE 2>&1 # Updates list version in module.prop - VERSIONTMP=$(get_file_value $MODPATH/module.prop "version=") replace_fn version $VERSIONTMP "${MODVERSION}-v${LISTVERSION}" $MODPATH/module.prop log_print "Updated list to v${LISTVERSION}." + print_files else rm -f $PRINTSTMP log_print "New fingerprints list requires module update." diff --git a/config.sh b/config.sh index f8119c9..2504cdb 100644 --- a/config.sh +++ b/config.sh @@ -114,6 +114,19 @@ set_permissions() { get_file_value() { cat $1 | grep $2 | sed "s|.*$2||" | sed 's|\"||g' } +# Get left side of = +get_eq_left() { + echo $1 | sed 's|=.*||' +} +# Get first word in string +get_first() { + case $1 in + *\ *) echo $1 | sed 's|\ .*||' + ;; + *=*) get_eq_left "$1" + ;; + esac +} # Variables COREPATH=/sbin/.core @@ -291,6 +304,32 @@ script_placement() { fi } +# Create fingerprint files +print_files() { + log_print "- Creating fingerprint files." + rm -rf $MODPATH/printfiles >> $INSTLOG 2>&1 + mkdir -pv $MODPATH/printfiles >> $INSTLOG 2>&1 + # Loading prints + . $MODPATH/prints.sh + # Saving manufacturers + log_handler "Saving manufacturers" + SAVEIFS=$IFS + IFS=$(echo -en "\n\b") + for ITEM in $PRINTSLIST; do + TMPOEMLIST=$(echo "$OEMLIST $(get_first $ITEM)" | sed 's|^[ \t]*||') + OEMLIST="$TMPOEMLIST" + done + IFS=$SAVEIFS + TMPOEMLIST=$(echo $(printf '%s\n' $OEMLIST | sort -u)) + OEMLIST="$TMPOEMLIST" + log_handler "Creating files" + for OEM in $OEMLIST; do + echo -e "PRINTSLIST=\"" >> $MODPATH/printfiles/${OEM}\.sh + cat $MODPATH/prints.sh | grep $OEM >> $MODPATH/printfiles/${OEM}\.sh + echo -e "\"" >> $MODPATH/printfiles/${OEM}\.sh + done +} + # Updates placeholders placeholder_update() { FILEVALUE=$(get_file_value $1 "$2=") @@ -314,8 +353,7 @@ build_prop_check() { log_print "! Module - '$NAME'!" log_print "! Modification of build.prop disabled!" log_print "" - sed -i 's/BUILDPROPENB=1/BUILDPROPENB=0/' $UPDATELATEFILE - break + sed -i 's/BUILDPROPENB=1/BUILDPROPENB=0/' $UPDATELATEFILE fi fi done @@ -352,7 +390,7 @@ bin_check() { # Magisk installation check install_check() { if [ ! -d "$SERVICEPATH" ] || [ ! -d "$POSTPATH" ]; then - log_handler "Fresh Magisk installation detected." + log_print "Fresh Magisk installation detected." log_handler "Creating path for boot script." mkdir -pv $POSTPATH >> $INSTLOG 2>&1 mkdir -pv $SERVICEPATH >> $INSTLOG 2>&1 @@ -384,4 +422,5 @@ script_install() { placeholder_update $POSTFILE COREPATH CORE_PLACEHOLDER "$COREPATH" placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH" placeholder_update $MODPATH/system/$BIN/props COREPATH CORE_PLACEHOLDER "$COREPATH" + print_files } diff --git a/module.prop b/module.prop index 161b7bf..c4fa7b0 100644 --- a/module.prop +++ b/module.prop @@ -1,7 +1,7 @@ id=MagiskHidePropsConf name=MagiskHide Props Config -version=v2.5.0-v32 -versionCode=27 +version=v2.6.0-v33 +versionCode=28 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 64781f9..6d4bdd3 100644 Binary files a/system/binpath/props and b/system/binpath/props differ