Update to v6.0.0-v132

This commit is contained in:
Didgeridoohan 2021-09-04 13:11:35 +02:00 committed by GitHub
parent 8f554ebf8b
commit 9b93323970
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 622 additions and 186 deletions

View File

@ -30,4 +30,4 @@ mount /data 2>/dev/null
[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk
install_module
exit 0
exit 0

View File

@ -79,6 +79,7 @@ Keep in mind that this module cannot help you pass CTS if your device uses hardw
- [Props don't seem to set properly](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#props-dont-seem-to-set-properly)
- [My build.prop doesn't change after using the module](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#my-buildprop-doesnt-change-after-using-the-module)
- [My device's Android security patch date changed](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#my-devices-android-security-patch-date-changed)
- [My device's model has changed](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#my-devices-model-has-changed)
- [The Play Store is broken](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#the-play-store-is-broken)
- [The interface looks weird](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#the-interface-looks-weird)
- [Boot takes a lot longer after setting props](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#boot-takes-a-lot-longer-after-setting-props)
@ -148,7 +149,7 @@ The settings option (-s) can be used even if the module boot scripts did not run
## What option should I use?
### Not passing SafetyNet
If you can't pass the CTS profile check of the SafetyNet check there are two features of the module that have the potential to help.
If you can't pass the CTS profile check of the SafetyNet check there are a few things that you might have to do.
If you are using a custom ROM (or have a stock ROM on a device that isn't certified by Google) you most likely need to change the device fingerprint to one that has been Google certified. Use the "[Edit device fingerprint"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#spoofing-devices-fingerprint-to-pass-the-ctsprofile-check) feature.
@ -271,7 +272,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 - v131_**
**_Current fingerprints list version - v132_**
## Please add support for device X
@ -289,11 +290,27 @@ You can enter the fingerprint manually in the `Edit device fingerprint` menu in
## Force BASIC key attestation
Google now enforces the use of hardware backed key attestation on devices that has the necessary hardware (all devices that shipped with Android 8+ and even some older devices). Up until mid January 2021 you could work around this by changing the model props to something other than the actual device. No more...
Google now enforces the use of hardware backed key attestation on devices that has the necessary hardware (all devices that shipped with Android 8+ and even some older devices). Up until mid January 2021 you could work around this by changing the model props to something other than the actual device. This might still be necessary, and can be done with this feature of the module, but you most likely also need to trick keystore further than that.
There is a fix though. @kdrag0n over on XDA Developers have a Magsk module that will trick keystore into thinking that the hardware isn't available and this will then force basic attestation. You can find that module together with details on how it works here:
@kdrag0n over on XDA Developers have a Magsk module that will trick keystore into thinking that the hardware isn't available and this will then force basic attestation. You can find that module together with details on how it works here:
https://forum.xda-developers.com/t/magisk-module-universal-safetynet-fix-1-1-0.4217823/
These two things in combination might be required to pass CTS.
If you aren't successful in passing CTS by changing the model, you could try using the Xposed (although it is recommended to use LSPosed if you want to have the best chance of passing SafetyNet) module XprivacyLua and restrict Google Play Services. Instructions on how to install LSPosed and XprivacyLua and how to use that module can be found with a simple web search, I won't cover that here.
This feature of the module has nothing to do with the device fingerprint, but uses the included fingerprints list to find the necessary value to use for the `ro.product.model` prop (and related props).
As long as Google doesn't roll out hardware based key attestation universally, it seems like we can fool SafetyNet into using the basic attestation by changing the `ro.product.model` prop (to pass the CTS profile check even with an unlocked bootloader). The module scripts will also alter related partition specific props (odm, product, system, vendor and system_ext) to match, if they are available. Thank you to @Displax over at XDA for finding this: https://forum.xda-developers.com/showpost.php?p=83028387&postcount=40658
The prefered method is to pick a device manually from the list of devices (based on the module fingerprints list) or set your own custom value. Do NOT pick your own device, instead try a device that is as close to your actual device as possible. The closer it is to your actual device the less is the likelyhood that things will stop working as a result of the model prop change.
It is also possible to use a custom value, if that's what you prefer.
If a device isn't picked from the list or a custom value entered, this feature will by default use an old devices model prop value, based on your device or currently set fingerprint, to make sure that it is recognised as a device without the necessary hardware (picked from the available devices in the module fingerprints list). Using an actual model value from an old device may also help with keeping OEM specific features working (like the Samsung Galaxy Store). If device/OEM specific features still doesn't work after activating this option, or your device is otherwise behaving strangely, try picking a device manually from the included list (see below). If no model prop value from an old enough device is available, the value from `ro.product.device` will be used instead.
Note that using the [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature to simulate `ro.product.model` (and related props) will be disabled when this feature is enabled (all other simiulation props will still work though). It is also worth noting that using the [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature to change ro.product.model will also force a basic key attestation.
## Device simulation
**_NOTE! This feature is not generally needed to pass SafetyNet's CTS profile test and may even cause issues. Only enable it if you actually need it!_**
@ -308,7 +325,7 @@ If you want to simulate a specific device (to get access to device specific apps
- ro.build.display.id
- ro.build.version.sdk
- ro.product.manufacturer
- ro.product.model
- ro.product.model (disabled if [Force BASIC key attestation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) is enabled)
By default all props are disabled when this option is activated, but it is possible to activate or deactivate each prop individually or all of them at once. It is also possible to activate several props simultaneously by choosing the corresponding numbers in the menu list and entering them separated by a comma.
Example: If I would like to activate ro.product.name, ro.product.device and ro.product.manufacturer I would enter __"2,3,9"__.
@ -319,26 +336,42 @@ Whenever a fingerprint is set by the module, the `ro.build.description` prop wil
## Set/reset MagiskHide Sensitive props
By default, if MagiskHide detects certain sensitive prop values they will be changed to known safe values. Some of these that this feature can change are:
- ro.debuggable (set to "0" by MagiskHide - sensitive value is "1")
- ro.secure (set to "1" by MagiskHide - sensitive value is "0")
- ro.build.type (set to "user" by MagiskHide - sensitive value is "userdebug")
- ro.build.tags (set to "release-keys" by MagiskHide - sensitive value is "test-keys" or "dev-keys")
- ro.bootmode (set to "unknown" by MagiskHide - sensitive value is "recovery")
- ro.boot.mode (set to "unknown" by MagiskHide - sensitive value is "recovery")
- ro.build.selinux (set to "0" by MagiskHide - sensitive value is "1")
Up to and including Magisk v23 MagiskHide changes some sensitive props to "safe" values that won't trigger apps that might be looking for them as a sign of your device being tampered with (root).
There are other props set by MagiskHide, but they are mainly used for finding the bootloader state and not needed here.
This feature is enabled by default and will automatically change any triggering values it finds to "safe" values.
From Magisk Canary build 20412 ro.build.selinux is no longer changed by MagiskHide, since different root checking libraries look for different sensitive values (someone made a thought boo-boo somewhere). From Canary build 20412 the prop is simply removed.
The props in question are:
- ro.debuggable
- ro.secure
- ro.build.type
- ro.build.tags
- ro.boot.vbmeta.device_state
- ro.boot.verifiedbootstate
- ro.boot.flash.locked
- ro.boot.veritymode
- ro.boot.warranty_bit
- ro.warranty_bit
- ro.vendor.boot.warranty_bit
- ro.vendor.warranty_bit
- vendor.boot.vbmeta.device_state
If, for some reason, you need one or more of these to be kept as their original value (one example would be resetting ro.build.type to userdebug since some ROMs need this to work properly), you can reset to the original value with this module. Keep in mind that this might trigger some apps looking for these prop values as a sign of your device being rooted.
There are a few props that will only change if a triggering value is detected, and these are:
- ro.bootmode
- ro.boot.mode
- vendor.boot.mode
- ro.boot.hwc
- ro.boot.hwcountry
It is possible to change or reset each prop individually or all of them at once. It is also possible to change several props simultaneously by choosing the corresponding numbers in the menu list and entering them separated by a comma.
And lastly there are props that will only change in the late_start service boot stage. These are:
- vendor.boot.verifiedbootstate
ro.build.selinux used to be changed by MagiskHide, but since some root detectors has a broken implementation of detecting this prop it is simply removed instead of changed (MagiskHide did this since Magisk build 20412).
If, for some reason, you need one or more of these to be kept as their original value (one example would be resetting ro.build.type to userdebug since some ROMs need this to work properly), you can reset to the original value by simply disabling this prop in the module. Keep in mind that this might trigger some apps looking for these prop values as a sign of your device being rooted. If you want to further customise the prop in question you can use the ["Add/edit custom props"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values) feature.
It is possible to change or reset each prop individually or all of them at once. It is also possible to change several props simultaneously by choosing the corresponding numbers in the menu list and entering them separated by a comma. This will change any props set to a sensitive value to a safe value and vice versa.
Example: If I would like to change ro.debuggable, ro.secure and ro.build.tags I would enter __"1,2,4"__.
**NOTE:** When activating this feature the screen will go black momentarily at the end of the boot cycle. This is caused by the module doing a soft reboot to reload the prop values properly.
## Change/set custom prop values
It's quite easy to change prop values with Magisk. With this module it's even easier. Just enter the prop you want to change and the new value and the module does the rest, nice and systemless. Any changes that you've previously done directly to build.prop, default.prop, etc, you can now do with this module instead. If you have a lot of props that you want to change it'll be a lot easier to use the [configuration file](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#configuration-file) (see below).
@ -506,6 +539,10 @@ If the prop has been removed, the command should return nothing.
For some fingerprints it is necessary to also change the security patch date to match the fingerprint used (the actual patch won't change, just the displayed date). 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, but keep in mind that this may result in the fingerprint not working and SafetyNet will fail.
### My device's model has changed
In order to fool SafetyNet into using basic key attestation for the bootloader state check rather than hardware (which we cannot fool), the device model sometimes has to be changed to one that does NOT match the actual device. If your device uses hardware backed attestation, you might have to do this to pass the CTS profile check of SafetyNet. See [Force BASIC key attestation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) for more details.
### The Play Store is broken
If you suddenly can't find some apps, or that you aren't offered the latest version of an app, it might be because of having changed the device fingerprint. See [Can I use any fingerprint?](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#can-i-use-any-fingerprint) for details.
@ -518,8 +555,12 @@ If the interface of the props script looks strange, with a lot of gibberish alon
If boot takes longer than usual after setting a new fingerprint or a custom prop, try changing the [boot stage](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) to post-fs-data.
### There's a reboot during boot
This happens when any prop is set during the late_start service boot stage. A soft reboot is necessary to properly load the new prop values.
### The screen goes black momentarily at boot
This is caused by the [MagiskHide Sensitive props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#setreset-magiskhide-sensitive-props) function of the module doing a soft reboot at the end of the boot cycle. This is necessary to reaload the prop values properly.
See the section directly above.
### The Play Store is "uncertified"
@ -569,6 +610,14 @@ Releases from v5.4.0 will only install on Magisk v20.4+.
## Changelog
### v6.0.0
- Updated the "Edit MagiskHide props" feature to include all the sensitive prop values that MagiskHide changed, up to and including Magisk v23. All props will now be set by default. See the documentation for details.
- Alter the permissions for SELinux files if SELinux is permissive (was included in MagiskHide up to Magisk v23).
- Reenabled "Force BASIC key attestation", since Google seems to have changed things around again. See the documentation for details.
- Fix reboot function in post-fs-data.sh.
- Various small fixes.
- Added fingerprints for Google Pixel 5a and Motorola Moto Z3 Play. List updated to v132.
### v5.4.1
- Changed internet connection test to use Github rather than Google, for users that do not have access to Google in their countries.
- Fixed a bug where prop values containing equal signs would be truncated.
@ -968,7 +1017,7 @@ Releases from v5.4.0 will only install on Magisk v20.4+.
## Current fingerprints list
### List v131
### List v132
- Asus ROG Phone 3 ZS661KS (10)
- Asus ROG Phone 5 ZS673KS (10)
- Asus ZenFone 2 Laser ASUS_Z00LD (6.0.1)
@ -1020,6 +1069,7 @@ Releases from v5.4.0 will only install on Magisk v20.4+.
- Google Pixel 4a (10 & 11)
- Google Pixel 4a 5G (11)
- Google Pixel 5 (11)
- Google Pixel 5a (11)
- Google Pixel C (6.0.1 & 7.0 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0)
- HTC 10 (6.0.1)
- HTC U11 (8.0.0)
@ -1102,6 +1152,7 @@ Releases from v5.4.0 will only install on Magisk v20.4+.
- Motorola Moto X4 (8.0.0 & 9)
- Motorola Moto Z2 Force T-Mobile (8.0.0)
- Motorola Moto Z2 Play (8.0.0)
- Motorola Moto Z3 Play (9)
- Nextbook Ares 8A (6.0.1)
- Nokia 6 TA-1021 (9)
- Nokia 6 TA-1025 (9)
@ -1454,7 +1505,7 @@ Releases from v5.4.0 will only install on Magisk v20.4+.
## MIT Licence
*Copyright (c) 2018-2020 Didgeridoohan*
*Copyright (c) 2018-2021 Didgeridoohan*
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
{

View File

@ -1,15 +1,15 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
PRINTSV=131
PRINTSV=132
PRINTSTRANSF=520
# Certified fingerprints
# Current fingerprints count=693
# Unique devices=482
# Current fingerprints count=695
# Unique devices=484
PRINTSLIST="
Asus ROG Phone 3 ZS661KS (10):Asus:ZS661KS=asus/WW_I003D/ASUS_I003_1:10/QKQ1.200419.002/17.0823.2012.122-0:user/release-keys__2020-12-01
Asus ROG Phone 5 ZS673KS (10):Asus:ZS673KS=asus/WW_I005D/ASUS_I005_1:11/RKQ1.201022.002/18.0840.2103.26-0:user/release-keys__2021-03-05
@ -62,6 +62,7 @@ Google Pixel 4 XL (10 & 11):Google:Pixel 4 XL=google/coral/coral:10/QQ3A.200805.
Google Pixel 4a (10 & 11):Google:Pixel 4a=google/sunfish/sunfish:10/QD4A.200805.003/6598198:user/release-keys__2020-08-05;google/sunfish/sunfish:11/RQ3A.210805.001.A1/7474174:user/release-keys__2021-08-05
Google Pixel 4a 5G (11):Google:Pixel 4a (5G)=google/bramble/bramble:11/RQ3A.210805.001.A1/7474174:user/release-keys__2021-08-05
Google Pixel 5 (11):Google:Pixel 5=google/redfin/redfin:11/RQ3A.210805.001.A1/7474174:user/release-keys__2021-08-05
Google Pixel 5a (11):Google:Pixel 5a=google/barbet/barbet:11/RD2A.210605.007/7381860:user/release-keys__2021-06-05
Google Pixel C (6.0.1 & 7.0 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0):Google:Pixel C=google/ryu/dragon:6.0.1/MXC89L/3084571:user/release-keys;google/ryu/dragon:7.0/NRD91N/3318108:user/release-keys;google/ryu/dragon:7.1.1/N4F26T/3687331:user/release-keys;google/ryu/dragon:7.1.2/N2G48C/4104010:user/release-keys;google/ryu/dragon:8.0.0/OPR1.170623.032/4397478:user/release-keys;google/ryu/dragon:8.1.0/OPM8.190605.005/5749003:user/release-keys__2019-06-05
HTC 10 (6.0.1):HTC:HTC 10=htc/HTCOneM10vzw/htc_pmewl:6.0.1/MMB29M/774095.8:user/release-keys
HTC U11 (8.0.0):HTC:HTC U-3w=htc/ocndtwl_01405/htc_ocndtwl:8.0.0/OPR6.170623.013/1017190.2:user/release-keys
@ -144,6 +145,7 @@ Motorola Moto X Play (7.1.1):motorola:XT1562=motorola/lux_retasia_ds/lux_uds:7.1
Motorola Moto X4 (8.0.0 & 9):Motorola:moto x4=motorola/payton/payton:8.0.0/OPWS27.57-25-6-10/12:user/release-keys;motorola/payton_fi/payton_sprout:9/PPWS29.69-39-6-6/8c843:user/release-keys__2020-03-01
Motorola Moto Z2 Force T-Mobile (8.0.0):Motorola:Moto Z2=motorola/nash_tmo_c/nash:8.0.0/OCXS27.109-51-14-7/12:user/release-keys__2019-07-01
Motorola Moto Z2 Play (8.0.0):Motorola:Moto Z2 Play=motorola/albus/albus:8.0.0/OPS27.76-12-25/26:user/release-keys
Motorola Moto Z3 Play (9):Motorola:Moto Z3 Play=motorola/beckham/beckham:9/PPWS29.131-27-1-27/34b6d:user/release-keys__2020-07-01
Nextbook Ares 8A (6.0.1):Nextbook:NX16A8116K=NextBook/NX16A8116K/NX16A8116K:6.0.1/MMB29M/V4.0.3:user/release-keys
Nokia 6 TA-1021 (9):Nokia:TA-1021=Nokia/TA-1021_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01
Nokia 6 TA-1025 (9):Nokia:TA-1025=Nokia/TA-1025_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
# =================================================================
@ -9,7 +9,7 @@
# =================================================================
# Required module version (or newer). Do not edit this value!
CONFTRANSF=534
CONFTRANSF=600
# Device fingerprint
CONFFINGERPRINT=""
@ -42,7 +42,21 @@ CONFDEBUGGABLE=""
CONFSECURE=""
CONFTYPE=""
CONFTAGS=""
CONFSELINUX=""
CONFBOOTMODE=""
CONFMODE=""
CONFVENDORMODE=""
CONFHWC=""
CONFHWCOUNTRY=""
CONFSTATE=""
CONFVERIFIEDBOOTSTATE=""
CONFVENDORVERIFIEDBOOTSTATE=""
CONFLOCKED=""
CONFVERITYMODE=""
CONFBOOTWARRANTY_BIT=""
CONFBIT=""
CONFVENDORBOOTWARRANTY_BIT=""
CONFVENDORWARRANTY_BIT=""
CONFVENDORDEVICE_STATE=""
# Set custom props
CONFPROPS=""
@ -106,10 +120,10 @@ CONFBACK=false
# 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
# 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 "post",
# the prop will be set during either the default or post-fs-data stage. The
# late_start service boot stage is used by default as to not cause issues for devices with
# late_start service boot stage is used by default as to not cause issues for devices with
# Keymaster 4 (bootloops). If the prop doesn't seem to set properly, try changing the stage.
# CONFBASICATTEST is used to enable Forced BASIC attestation, which is done by changing the
@ -133,12 +147,27 @@ CONFBACK=false
# 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.
# The MagiskHide prop variables can be set as follows:
# CONFDEBUGGABLE - 0 or 1 (set to "0" by MagiskHide - sensitive value is "1")
# CONFSECURE - 0 or 1 (set to "1" by MagiskHide - sensitive value is "0")
# CONFTYPE - user or userdebug (set to "user" by MagiskHide - sensitive value is "userdebug")
# CONFTAGS - release-keys or test-keys (set to "release-keys" by MagiskHide - sensitive value is "test-keys")
# CONFSELINUX - 0 or 1 (set to "0" by MagiskHide - sensitive value is "1")
# The MagiskHide prop variables can be set as follows
# (note that these props are by default set to the safe value):
# CONFDEBUGGABLE - 0 or 1 (sensitive value is "1")
# CONFSECURE - 0 or 1 (sensitive value is "0")
# CONFTYPE - user or userdebug (sensitive value is "userdebug")
# CONFTAGS - release-keys or test-keys (sensitive value is "test-keys")
# CONFBOOTMODE - unknown or recovery (sensitive value is "recovery")
# CONFMODE - unknown or recovery (sensitive value is "recovery")
# CONFVENDORMODE - unknown or recovery (sensitive value is "recovery")
# CONFHWC - GLOBAL or CN (sensitive value is CN)
# CONFHWCOUNTRY - GLOBAL or China (sensitive value is China)
# CONFSTATE - locked or unlocked (sensitive value is unlocked)
# CONFVERIFIEDBOOTSTATE - green or orange (sensitive value is orange)
# CONFVENDORVERIFIEDBOOTSTATE - green or orange (sensitive value is orange)
# CONFLOCKED - 1 or 0 (sensitive value is 0)
# CONFVERITYMODE - enforcing or permissive (sensitive value is permissive)
# CONFBOOTWARRANTY_BIT - 0 or 1 (sensitive value is "1")
# CONFBIT - 0 or 1 (sensitive value is "1")
# CONFVENDORBOOTWARRANTY_BIT - 0 or 1 (sensitive value is "1")
# CONFVENDORWARRANTY_BIT - 0 or 1 (sensitive value is "1")
# CONFVENDORDEVICE_STATE - locked or unlocked (sensitive value is unlocked)
# CONFPROPS should contain any custom props and the value you want the module to set.
# Any props you've previously edited in build.prop, and more, can be set like this.

View File

@ -1,5 +1,5 @@
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
# This is the settings file for the Magisk module "MagiskHide Props Config" By Didgeridoohan @ XDA Developers.
@ -8,9 +8,9 @@
# In that case, feel free to delete it.
# Script version
SCRIPTV=37
SETTRANSF=3
NOTTRANSF="BRANDSET;NAMESET;DEVICESET;RELEASESET;IDSET;INCREMENTALSET;SDKSET"
SCRIPTV=38
SETTRANSF=4
NOTTRANSF="PROPCOUNT;PROPEDIT;REDEBUGGABLE;RESECURE;RETYPE;RETAGS;REBOOTMODE;REMODE"
# Fingerprint
FINGERPRINTENB=1
@ -19,6 +19,11 @@ PRINTEDIT=0
PRINTVEND=0
PRINTCHK=0
# Basic attestation
BASICATTEST=0
BASICATTLIST=""
BASICATTCUST=""
# Device simulation
DEVSIM=0
BRANDSET=0
@ -34,9 +39,12 @@ MODELSET=0
DESCRIPTIONSET=1
PARTPROPSSET=1
# MagiskHide props
PROPCOUNT=19
PROPEDIT=1
PROPBOOT=0
# Custom props
PROPCOUNT=0
PROPEDIT=0
CUSTOMEDIT=0
DELEDIT=0
@ -68,7 +76,19 @@ ORIGTYPE=""
ORIGTAGS=""
ORIGBOOTMODE=""
ORIGMODE=""
ORIGSELINUX=""
ORIGVENDORMODE=""
ORIGHWC=""
ORIGHWCOUNTRY=""
ORIGSTATE=""
ORIGVERIFIEDBOOTSTATE=""
ORIGVENDORVERIFIEDBOOTSTATE=""
ORIGLOCKED=""
ORIGVERITYMODE=""
ORIGBOOTWARRANTY_BIT=""
ORIGBIT=""
ORIGVENDORBOOTWARRANTY_BIT=""
ORIGVENDORWARRANTY_BIT=""
ORIGVENDORDEVICE_STATE=""
ORIGFINGERPRINT=""
ORIGVENDPRINT=""
ORIGPRODPRINT=""
@ -87,13 +107,25 @@ ORIGMANUFACTURER=""
ORIGMODEL=""
# ---Module values---
MODULEDEBUGGABLE=""
MODULESECURE=""
MODULETYPE=""
MODULETAGS=""
MODULEBOOTMODE=""
MODULEMODE=""
MODULESELINUX=""
MODULEDEBUGGABLE="0"
MODULESECURE="1"
MODULETYPE="user"
MODULETAGS="release-keys"
MODULEBOOTMODE="unknown"
MODULEMODE="unknown"
MODULEVENDORMODE="unknown"
MODULEHWC="GLOBAL"
MODULEHWCOUNTRY="GLOBAL"
MODULESTATE="locked"
MODULEVERIFIEDBOOTSTATE="green"
MODULEVENDORVERIFIEDBOOTSTATE="green"
MODULELOCKED="1"
MODULEVERITYMODE="enforcing"
MODULEBOOTWARRANTY_BIT="0"
MODULEBIT="0"
MODULEVENDORBOOTWARRANTY_BIT="0"
MODULEVENDORWARRANTY_BIT="0"
MODULEVENDORDEVICE_STATE="locked"
MODULEFINGERPRINT=""
# ---Device simulation values---
@ -120,10 +152,22 @@ CUSTOMPROPSLIST="$CUSTOMPROPS $CUSTOMPROPSPOST $CUSTOMPROPSLATE $CUSTOMPROPSDELA
DELETEPROPS=""
# ---MagiskHide sensitive props---
REDEBUGGABLE=false
RESECURE=false
RETYPE=false
RETAGS=false
REBOOTMODE=false
REMODE=false
RESELINUX=false
REDEBUGGABLE=true
RESECURE=true
RETYPE=true
RETAGS=true
REBOOTMODE=true
REMODE=true
REVENDORMODE=true
REHWC=true
REHWCOUNTRY=true
RESTATE=true
REVERIFIEDBOOTSTATE=true
REVENDORVERIFIEDBOOTSTATE=true
RELOCKED=true
REVERITYMODE=true
REBOOTWARRANTY_BIT=true
REBIT=true
REVENDORBOOTWARRANTY_BIT=true
REVENDORWARRANTY_BIT=true
REVENDORDEVICE_STATE=true

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
ADBPATH=/data/adb
@ -66,9 +66,13 @@ if [ "$INSTFN" ]; then
PRINTEDIT
PRINTVEND
PRINTCHK
BASICATTEST
BASICATTLIST
BASICATTCUST
DEVSIM
PROPCOUNT
PROPEDIT
PROPBOOT
CUSTOMEDIT
DELEDIT
PRINTSTAGE
@ -99,7 +103,21 @@ if [ "$INSTFN" ]; then
MODULESECURE
MODULETYPE
MODULETAGS
MODULESELINUX
MODULEBOOTMODE
MODULEMODE
MODULEVENDORMODE
MODULEHWC
MODULEHWCOUNTRY
MODULESTATE
MODULEVERIFIEDBOOTSTATE
MODULEVENDORVERIFIEDBOOTSTATE
MODULELOCKED
MODULEVERITYMODE
MODULEBOOTWARRANTY_BIT
MODULEBIT
MODULEVENDORBOOTWARRANTY_BIT
MODULEVENDORWARRANTY_BIT
MODULEVENDORDEVICE_STATE
MODULEFINGERPRINT
SIMBRAND
SIMNAME
@ -196,9 +214,15 @@ ro.debuggable
ro.secure
ro.build.type
ro.build.tags
ro.bootmode
ro.boot.mode
ro.build.selinux
ro.boot.vbmeta.device_state
ro.boot.verifiedbootstate
ro.boot.flash.locked
ro.boot.veritymode
ro.boot.warranty_bit
ro.warranty_bit
ro.vendor.boot.warranty_bit
ro.vendor.warranty_bit
vendor.boot.vbmeta.device_state
"
# Safe values
@ -207,9 +231,52 @@ ro.debuggable=0
ro.secure=1
ro.build.type=user
ro.build.tags=release-keys
ro.boot.vbmeta.device_state=locked
ro.boot.verifiedbootstate=green
ro.boot.flash.locked=1
ro.boot.veritymode=enforcing
ro.boot.warranty_bit=0
ro.warranty_bit=0
ro.vendor.boot.warranty_bit=0
ro.vendor.warranty_bit=0
vendor.boot.vbmeta.device_state=locked
"
# Trigger props
TRIGGERPROPS="
ro.bootmode
ro.boot.mode
vendor.boot.mode
ro.boot.hwc
ro.boot.hwcountry
"
# Safe values
TRIGGERSAFELIST="
ro.bootmode=unknown
ro.boot.mode=unknown
ro.build.selinux=0
vendor.boot.mode=unknown
ro.boot.hwc=GLOBAL
ro.boot.hwcountry=GLOBAL
"
# Triggering values
TRIGGERLIST="
ro.bootmode=recovery
ro.boot.mode=recovery
vendor.boot.mode=recovery
ro.boot.hwc=CN
ro.boot.hwcountry=China
"
# Late props
LATEPROPS="
vendor.boot.verifiedbootstate
"
# Safe value
LATESAFELIST="
vendor.boot.verifiedbootstate=green
"
# Partitions used for different props
@ -273,10 +340,12 @@ APILVL="
8.1=27
9=28
10=29
11=30
12=31
"
# Values props list
VALPROPSLIST=$PROPSLIST$PRINTPARTS$SNPROPS$ADNPROPS$ADNSIMPROPS
VALPROPSLIST=$PROPSLIST$TRIGGERPROPS$LATEPROPS$PRINTPARTS$SNPROPS$ADNPROPS$ADNSIMPROPS
# Loading module settings
if [ -z "$INSTFN" ]; then
@ -350,6 +419,18 @@ get_prop_type() {
echo "vendprint"
elif [ "$1" == "ro.build.display.id" ]; then
echo "display"
elif [ "$1" == "vendor.boot.mode" ]; then
echo "vendormode"
elif [ "$1" == "vendor.boot.vbmeta.device_state" ]; then
echo "vendordevice_state"
elif [ "$1" == "vendor.boot.verifiedbootstate" ]; then
echo "vendorverifiedbootstate"
elif [ "$1" == "ro.boot.warranty_bit" ]; then
echo "bootwarranty_bit"
elif [ "$1" == "ro.vendor.boot.warranty_bit" ]; then
echo "vendorbootwarranty_bit"
elif [ "$1" == "ro.vendor.warranty_bit" ]; then
echo "vendorwarranty_bit"
else
echo $1 | sed 's|.*\.||' | sed 's|.*\_||'
fi
@ -441,13 +522,15 @@ force_reboot() {
echo -e "${C}Rebooting...${N}"
log_handler "Rebooting."
[ $(getprop sys.boot_completed) == 1 ] && /system/bin/svc power reboot $RBREASON >> $LOGFILE 2>&1 || /system/bin/reboot $RBREASON >> $LOGFILE 2>&1 || setprop sys.powerctl reboot >> $LOGFILE 2>&1
sleep 15
log_handler "Rebooting failed."
echo ""
echo "That doesn't seem like it worked..."
echo "Please reboot manually."
echo ""
exit 0
if [ "$BOOTSTAGE" != "post" -a "$BOOTSTAGE" != "late" ]; then
sleep 15
log_handler "Rebooting failed."
echo ""
echo "That doesn't seem like it worked..."
echo "Please reboot manually."
echo ""
exit 0
fi
}
# Updates placeholders, $1=file, $2=Variable name to replace to, $3=Placeholder name, $4=Value to assign updated variable
@ -673,7 +756,7 @@ config_file() {
echo "ro.vendor.build.fingerprint: ${CONFFINGERPRINT}" >> $LOGFILE 2>&1
fi
# Updates prop values (including fingerprint)
PROPSTMPLIST=$PROPSLIST"
PROPSTMPLIST=$PROPSLIST$TRIGGERPROPS$LATEPROPS"
ro.build.fingerprint
"
for PROPTYPE in $PROPSTMPLIST; do
@ -941,37 +1024,32 @@ update_check() {
# system.prop creation
system_prop() {
if [ "$OPTIONBOOT" == 0 ]; then
if [ "$1" == "install" ]; then
log_print "- Creating system.prop file."
else
log_handler "Creating system.prop file."
echo -e "# This file will be read by resetprop\n\n# MagiskHide Props Config\n# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers\n# Licence: MIT\n" > $MODPATH/system.prop
if [ "$PRINTSTAGE" == 0 ]; then
print_edit "$MODPATH/system.prop"
fi
if [ "$PATCHSTAGE" == 0 ]; then
patch_edit "$MODPATH/system.prop"
fi
#if [ "$BASICATTEST" == 1 ]; then
# forced_basic "$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
# Check for edge case where module has been updated but no reboot has been done yet
if [ -z "$INSTFN" ]; then
if [ -d "$ADBPATH/modules_update/MagiskHidePropsConf" ] && [ -f "$MODPATH/system.prop" ]; then
log_handler "Copying system.prop to update folder."
cp -f $MODPATH/system.prop $ADBPATH/modules_update/MagiskHidePropsConf >> $LOGFILE 2>&1
else
rm -f $ADBPATH/modules_update/MagiskHidePropsConf/system.prop >> $LOGFILE 2>&1
fi
fi
fi
echo -e "# This file will be read by resetprop\n# MagiskHide Props Config\n# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers\n# Licence: MIT" > $MODPATH/system.prop
if [ "$PROPEDIT" == 1 ] && [ "$PROPBOOT" == 0 ]; then
sensitive_props "$PROPSLIST" "$SAFELIST" "$MODPATH/system.prop"
fi
if [ "$OPTIONBOOT" == 0 ] && [ "$PRINTSTAGE" == 0 ]; then
print_edit "$MODPATH/system.prop"
fi
if [ "$OPTIONBOOT" == 0 ] && [ "$PATCHSTAGE" == 0 ]; then
patch_edit "$MODPATH/system.prop"
fi
if [ "$OPTIONBOOT" == 0 ] && [ "$BASICATTEST" == 1 ]; then
forced_basic "$MODPATH/system.prop"
fi
if [ "$OPTIONBOOT" == 0 ] && [ "$SIMSTAGE" == 0 ]; then
dev_sim_edit "$MODPATH/system.prop"
fi
if [ "$OPTIONBOOT" == 0 ] && [ "$CUSTOMPROPS" ]; then
custom_edit "CUSTOMPROPS" "$MODPATH/system.prop"
fi
# Check system.prop content
system_prop_cont
}
# system.prop content
@ -1175,6 +1253,7 @@ script_install() {
bin_check
files_check
settings_placement
log_print "- Updating placeholders"
placeholder_update $MODPATH/post-fs-data.sh MODVERSION VER_PLACEHOLDER "$MODVERSION"
placeholder_update $MODPATH/post-fs-data.sh LATEFILE LATE_PLACEHOLDER "$LATEFILE"
@ -1182,8 +1261,15 @@ script_install() {
placeholder_update $MODPATH/common/util_functions.sh BIN BIN_PLACEHOLDER "$BIN"
placeholder_update $MODPATH/system/$BIN/props ADBPATH ADB_PLACEHOLDER "$ADBPATH"
placeholder_update $MODPATH/system/$BIN/props LATEFILE LATE_PLACEHOLDER "$LATEFILE"
# Retrieving default values from props file
log_print "- Saving device default values."
default_save
log_handler "Default values saved to $LATEFILE."
load_settings
print_files
# Checks for configuration file
CONFFILE=""
for ITEM in $CONFFILELOC; do
@ -1201,9 +1287,10 @@ script_install() {
else
load_settings
# Create system.prop in case of no configuration file
system_prop
system_prop "install"
fi
log_handler "Module installation complete."
log_handler "Script install function finished."
}
# ======================== Fingerprint functions ========================
@ -1259,6 +1346,9 @@ print_edit() {
echo "ro.build.fingerprint=${PRINTCHNG}" >> $1
else
resetprop -nv ro.build.fingerprint "$PRINTCHNG" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
else
log_handler "ro.build.fingerprint not currently set on device. Skipping."
@ -1272,6 +1362,9 @@ print_edit() {
echo "ro.build.description=${SIMDESCRIPTION}" >> $1
else
resetprop -nv ro.build.description "$SIMDESCRIPTION" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
fi
else
@ -1295,6 +1388,9 @@ patch_edit() {
echo "ro.build.version.security_patch=${SECPATCH}" >> $1
else
resetprop -nv ro.build.version.security_patch "$SECPATCH" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
fi
;;
@ -1339,7 +1435,7 @@ print_files() {
TMPI=$(($TMPI - 1))
fi
done
#echo -e "BASICATTMODEL=\"$(get_eq_left "$TMPLINE" | sed "s|^.*\:||")\"" >> $TMPFILE
echo -e "BASICATTMODEL=\"$(get_eq_left "$TMPLINE" | sed "s|^.*\:||")\"" >> $TMPFILE
done
# Check for updated fingerprint
device_print_update "Updating module fingerprint."
@ -1689,6 +1785,9 @@ forced_basic() {
fi
resetprop -nv ro.product.model "$TMPVAL" >> $LOGFILE 2>&1
set_partition_props "none" "ro.product.model" "$TMPVAL"
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
}
@ -1751,6 +1850,9 @@ dev_sim_edit() {
echo "${ITEM}=${TMPVALUE}" >> $1
else
resetprop -nv $ITEM "$TMPVALUE" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
else
log_handler "$ITEM not currently set on device. Skipping."
@ -1853,11 +1955,107 @@ change_sim_partprops() {
}
# ======================== MagiskHide Props functions ========================
# Populate menu, $1=List of props to go through (with safe values), $2=type of list, $3=check if menu items should be printed or only counted
magiskhide_props_menu() {
ACTIVE="${G} (active)${N}"
for ITEM in $1; do
PROP=$(get_prop_type $(get_eq_left "$ITEM"))
ORIGVALUE=$(eval "echo \$$(echo "ORIG${PROP}" | tr '[:lower:]' '[:upper:]')")
if [ "$ORIGVALUE" ] && [ "$(get_eq_right "$ITEM")" != "$ORIGVALUE" ]; then
CTRLTRIGG=false;
if [ "$2" == "trigger" ]; then
magiskhide_trigger "$ITEM"
fi
if [ "$CTRLTRIGG" == "false" ]; then
if [ "$ITEMCOUNT" == 0 ]; then
ITEMCOUNT=1
fi
TMPTXT=""
if [ "$2" == "late" ]; then
TMPTXT=" ${C}(Late prop)${N}"
elif [ "$2" == "trigger" ]; then
TMPTXT=" ${C}(Trigger prop)${N}"
fi
if [ "$(eval "echo \$$(echo "RE${PROP}" | tr '[:lower:]' '[:upper:]')")" == "true" ]; then
if [ "$TMPTXT" ]; then
TMPTXT=$TMPTXT$ACTIVE
else
TMPTXT=$ACTIVE
fi
fi
if [ "$3" != "count" ]; then
echo -e "${G}$ITEMCOUNT${N} - $(get_eq_left "$ITEM")$TMPTXT"
fi
ITEMCOUNT=$(($ITEMCOUNT+1))
fi
fi
done
}
# Set sensitive props, $1=List to get props from, $2=List of safe values, $3=Set to "late" if set in late stage, or file name if saving values to a prop file
sensitive_props() {
if [ "$3" == "late" ]; then
log_handler "Changing sensitive props, late"
else
log_handler "Changing sensitive props"
fi
for ITEM in $1; do
PROP=$(get_prop_type $ITEM)
REPROP=$(echo "RE${PROP}" | tr '[:lower:]' '[:upper:]')
ORIGPROP=$(echo "ORIG${PROP}" | tr '[:lower:]' '[:upper:]')
MODULEPROP=$(echo "MODULE${PROP}" | tr '[:lower:]' '[:upper:]')
REVALUE=$(eval "echo \$$REPROP")
ORIGVALUE=$(eval "echo \$$ORIGPROP")
MODULEVALUE=$(eval "echo \$$MODULEPROP")
if [ "$REVALUE" == "true" ] && [ "$ORIGVALUE" ]; then
CTRLTRIGG=false;
magiskhide_trigger "$ITEM"
if [ "$CTRLTRIGG" == "true" ]; then
for CTRL in $2; do
if [ "$(get_eq_left "$CTRL")" == "$ITEM" ]; then
if [ "$(get_eq_right "$CTRL")" == "$ORIGVALUE" ]; then
log_handler "Skipping $ITEM, already set to the safe value."
else
log_handler "Changing/writing $ITEM."
if [ "$3" ] && [ "$3" != "late" ]; then
echo "${ITEM}=$MODULEVALUE" >> $3
else
resetprop -nv $ITEM "$MODULEVALUE" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
fi
fi
done
else
log_handler "Skipping $ITEM, it is not set to a triggering value."
fi
elif [ "$REVALUE" == "true" ] && [ -z "$ORIGVALUE" ]; then
log_handler "Skipping $ITEM, does not exist on device."
else
log_handler "Skipping $ITEM, not set to change."
fi
done
}
# Check if trigger prop, $1=prop to check
magiskhide_trigger() {
for TRIGG in $TRIGGERLIST; do
if [ "$(get_eq_left "$TRIGG")" == "$(get_eq_left "$1")" ]; then
if [ "$(get_eq_right "$TRIGG")" != "$ORIGVALUE" ]; then
CTRLTRIGG=true;
fi
break
fi
done
}
# Check safe values, $1=header, $2=Currently set prop value
safe_props() {
SAFE=""
if [ "$2" ]; then
for P in $SAFELIST; do
for P in $SAFELIST$TRIGGERSAFELIST$LATESAFELIST; do
if [ "$(get_eq_left "$P")" == "$1" ]; then
if [ "$2" == "$(get_eq_right "$P")" ]; then
SAFE=1
@ -1872,23 +2070,16 @@ safe_props() {
# Find what prop value to change to, $1=header, $2=Currently set prop value
change_to() {
CHANGE=""
case "$1" in
ro.debuggable) if [ "$2" == 0 ]; then CHANGE=1; else CHANGE=0; fi
;;
ro.secure) if [ "$2" == 0 ]; then CHANGE=1; else CHANGE=0; fi
;;
ro.build.type) if [ "$2" == "userdebug" ]; then CHANGE="user"; else CHANGE="userdebug"; fi
;;
ro.build.tags) if [ "$2" == "test-keys" ]; then CHANGE="release-keys"; else CHANGE="test-keys"; fi
;;
ro.bootmode) if [ "$2" == "recovery" ]; then CHANGE="unknown"; else CHANGE="recovery"; fi
;;
ro.boot.mode) if [ "$2" == "recovery" ]; then CHANGE="unknown"; else CHANGE="recovery"; fi
;;
ro.build.selinux) if [ "$2" == 1 ]; then CHANGE=0; else CHANGE=1; fi
;;
esac
for CHPROP in $SAFELIST$TRIGGERSAFELIST$LATESAFELIST; do
if [ "$(get_eq_left "$CHPROP")" == "$1" ]; then
if [ "$2" != "$(get_eq_right "$CHPROP")" ]; then
CHANGE=$(get_eq_right "$CHPROP")
else
CHANGE=$(eval "echo \$$(echo "ORIG$(get_prop_type $(get_eq_left "$CHPROP"))" | tr '[:lower:]' '[:upper:]')")
fi
break
fi
done
}
# Reset the module prop change, $1=prop name, $2=run option
@ -1919,7 +2110,9 @@ reset_prop() {
replace_fn PROPEDIT 1 0 $LATEFILE
fi
after_change "$1" "$2"
if [ "$2" != "none" ]; then
after_change "$1" "$2"
fi
}
# Use prop value, $1=prop name, $2=new prop value, $3=run option
@ -1946,7 +2139,9 @@ change_prop() {
fi
replace_fn PROPEDIT 0 1 $LATEFILE
after_change "$1" "$3"
if [ "$3" != "none" ]; then
after_change "$1" "$3"
fi
}
# Reset all module prop changes, $1=header
@ -1955,7 +2150,7 @@ reset_prop_all() {
log_handler "Resetting all props to default values."
for PROPTYPE in $PROPSLIST; do
for PROPTYPE in $PROPSLIST$TRIGGERPROPS$LATEPROPS; do
PROP=$(get_prop_type $PROPTYPE)
MODULEPROP=$(echo "MODULE${PROP}" | tr '[:lower:]' '[:upper:]')
REPROP=$(echo "RE${PROP}" | tr '[:lower:]' '[:upper:]')
@ -2011,6 +2206,9 @@ custom_edit() {
echo "$(get_eq_left "$ITEM")=${TMPITEM}" >> $2
else
resetprop -nv $(get_eq_left "$ITEM") "${TMPITEM}" >> $LOGFILE 2>&1
if [ "$BOOTSTAGE" == "late" ]; then
PROPLATE=true
fi
fi
fi
done
@ -2229,8 +2427,8 @@ export_settings() {
replace_fn CONFPRINTBOOT default $([ $PRINTSTAGE == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
replace_fn CONFPATCHBOOT late $([ $PATCHSTAGE == 0 ] && echo "default" || $([ $PATCHSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
# Force BASIC attestation
#replace_fn CONFBASICATTEST false $([ $BASICATTEST == 0 ] && echo "false" || echo "true") $EXPORTFILE
#replace_fn CONFBASICATTCUST "\"\"" "\"$BASICATTCUST\"" $EXPORTFILE
replace_fn CONFBASICATTEST false $([ $BASICATTEST == 0 ] && echo "false" || echo "true") $EXPORTFILE
replace_fn CONFBASICATTCUST "\"\"" "\"$BASICATTCUST\"" $EXPORTFILE
# Device Simulation
replace_fn CONFDEVSIM false $([ $DEVSIM == 0 ] && echo "false" || echo "true") $EXPORTFILE
replace_fn CONFBRAND false $([ $BRANDSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
@ -2251,7 +2449,21 @@ export_settings() {
replace_fn CONFSECURE "\"\"" "\"$MODULESECURE\"" $EXPORTFILE
replace_fn CONFTYPE "\"\"" "\"$MODULETYPE\"" $EXPORTFILE
replace_fn CONFTAGS "\"\"" "\"$MODULETAGS\"" $EXPORTFILE
replace_fn CONFSELINUX "\"\"" "\"$MODULESELINUX\"" $EXPORTFILE
replace_fn CONFBOOTMODE "\"\"" "\"$MODULEBOOTMODE\"" $EXPORTFILE
replace_fn CONFMODE "\"\"" "\"$MODULEMODE\"" $EXPORTFILE
replace_fn CONFVENDORMODE "\"\"" "\"$MODULEVENDORMODE\"" $EXPORTFILE
replace_fn CONFHWC "\"\"" "\"$MODULEHWC\"" $EXPORTFILE
replace_fn CONFHWCOUNTRY "\"\"" "\"$MODULEHWCOUNTRY\"" $EXPORTFILE
replace_fn CONFDEVICE_STATE "\"\"" "\"$MODULEDEVICE_STATE\"" $EXPORTFILE
replace_fn CONFVERIFIEDBOOTSTATE "\"\"" "\"$MODULEVERIFIEDBOOTSTATE\"" $EXPORTFILE
replace_fn CONFVENDORVERIFIEDBOOTSTATE "\"\"" "\"$MODULEVENDORVERIFIEDBOOTSTATE\"" $EXPORTFILE
replace_fn CONFLOCKED "\"\"" "\"$MODULELOCKED\"" $EXPORTFILE
replace_fn CONFVERITYMODE "\"\"" "\"$MODULEVERITYMODE\"" $EXPORTFILE
replace_fn CONFBOOTWARRANTY_BIT "\"\"" "\"$MODULEBOOTWARRANTY_BIT\"" $EXPORTFILE
replace_fn CONFWARRANTY_BIT "\"\"" "\"$MODULEWARRANTY_BIT\"" $EXPORTFILE
replace_fn CONFVENDORBOOTWARRANTY_BIT "\"\"" "\"$MODULEVENDORBOOTWARRANTY_BIT\"" $EXPORTFILE
replace_fn CONFVENDORWARRANTY_BIT "\"\"" "\"$MODULEVENDORWARRANTY_BIT\"" $EXPORTFILE
replace_fn CONFVENDORDEVICE_STATE "\"\"" "\"$MODULEVENDORDEVICE_STATE\"" $EXPORTFILE
# Custom props
replace_fn CONFPROPS "\"\"" "\"$CUSTOMPROPS\"" $EXPORTFILE
replace_fn CONFPROPSPOST "\"\"" "\"$CUSTOMPROPSPOST\"" $EXPORTFILE
@ -2271,9 +2483,9 @@ export_settings() {
menu_header "${C}$1${N}"
echo ""
echo "A module configuration file with"
echo "your current settings have been"
echo "your current settings haS been"
echo "saved to your internal storage,"
echo -e "in the ${C}/mhcp${N} directory."
echo -e "in the ${C}/mhpc${N} directory."
echo ""
echo -n "Press enter to continue..."
read -r INPUTTMP

View File

@ -1,6 +1,6 @@
##########################################################################################
# Installation variables and functions for the Magisk module "MagiskHide Props Config"
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers.
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers.
# Licence: MIT
##########################################################################################
@ -23,13 +23,13 @@ echo "***************************************************" > $LOGFILE 2>&1
echo "********* MagiskHide Props Config $MODVERSION ********" >> $LOGFILE 2>&1
echo "***************** By Didgeridoohan ***************" >> $LOGFILE 2>&1
echo "***************************************************" >> $LOGFILE 2>&1
log_handler "Starting module installation script"
log_print "- Starting module installation script"
# Module script installation
script_install
# Permission
log_print "- Setting permissions"
set_perm $MODPATH/system/$BIN/props 0 0 0755
# Remove unused files
rm -f $MODPATH/LICENSE
log_print "- Module installation complete."

View File

@ -1,6 +1,6 @@
id=MagiskHidePropsConf
name=MagiskHide Props Config
version=v5.4.1-v131
versionCode=69
version=v6.0.0-v132
versionCode=70
author=Didgeridoohan
description=Change your device's fingerprint, to pass SafetyNet's CTS Profile check. Set/reset prop values set by MagiskHide. Change any prop values easily, and set your own custom props.
description=Change your device's fingerprint, to pass SafetyNet's CTS Profile check. Set/reset MagiskHide sensitive prop values. Change any prop values easily, and set your own custom props.

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
#anch1
@ -22,6 +22,24 @@
MODVERSIONPH=VER_PLACEHOLDER
LATEFILEPH=LATE_PLACEHOLDER
# Sensitive props
# Safe values
TRIGGERSAFELIST="
ro.bootmode=unknown
ro.boot.mode=unknown
vendor.boot.mode=unknown
ro.boot.hwc=GLOBAL
ro.boot.hwcountry=GLOBAL
"
# Triggering values
TRIGGERLIST="
ro.bootmode=recovery
ro.boot.mode=recovery
vendor.boot.mode=recovery
ro.boot.hwc=CN
ro.boot.hwcountry=China
"
# Saves the previous log (if available) and creates a new one
if [ -f "$LOGFILE" ]; then
mv -f $LOGFILE $LASTLOGFILE
@ -55,6 +73,32 @@
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - $1" >> $LOGFILE 2>&1
}
# Get left side of =, $1=string to check
get_eq_left() {
echo $1 | cut -f 1 -d '='
}
# Get right side of =, $1=string to check
get_eq_right() {
echo $1 | cut -f 2- -d '='
}
# Finding file values, $1=file (with path), $2=string to look for
get_file_value() {
if [ -f "$1" ]; then
echo $(grep $2 $1) | sed "s|.*${2}||" | sed 's|\"||g'
fi
}
# Find prop type, $1=prop name
get_prop_type() {
if [ "$1" == "vendor.boot.mode" ]; then
echo "vendormode"
else
echo $1 | sed 's|.*\.||' | sed 's|.*\_||'
fi
}
# Reset/disable file locations
FILELOCLST="
/data/media/0
@ -79,8 +123,8 @@
# Deletes the post-fs-data control file
rm -f $MHPCPATH/propsconf_postchk >> $LOGFILE 2>&1
# Reboot
log_handler "Rebooting."
/system/bin/reboot "" >> $LOGFILE 2>&1 || setprop sys.powerctl reboot >> $LOGFILE 2>&1
log_handler "Setting reboot flag."
touch $MHPCPATH/reboot >> $LOGFILE 2>&1
fi
# Check for the boot script and restore backup if deleted, or if the reset file is present
@ -105,17 +149,49 @@
else
log_handler "The module settings file could not be found."
fi
fi
fi
log_handler "$RSTTXT module settings file (${LATEFILE})."
cp -af $MODPATH/common/propsconf_late $LATEFILE >> $LOGFILE 2>&1
rm -f $MODPATH/system.prop >> $LOGFILE 2>&1
fi
# Loading module settings
log_handler "Loading module settings"
. $LATEFILE
# 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
if [ "$PROPEDIT" == 1 ] && [ "$PROPBOOT" == 0 ]; then
# Set trigger props
for ITEM in $TRIGGERLIST; do
TMPPROP=$(get_eq_left "$ITEM")
TMPVAL=$(echo $(grep "\[${TMPPROP}\]" "$MHPCPATH/defaultprops") | sed -e "s|.*\]\:\ \[||g;s|\]$||g")
REPROP=$(echo "RE$(get_prop_type "$TMPPROP")" | tr '[:lower:]' '[:upper:]')
REVAL=$(get_file_value $LATEFILE "${REPROP}=")
if [ "$REVAL" == "true" ]; then
if [ "$TMPVAL" == "$(get_eq_right "$ITEM")" ]; then
log_handler "Changing/writing $TMPPROP."
for SAFEVAL in $TRIGGERSAFELIST; do
if [ "$TMPPROP" == "$(get_eq_left "$SAFEVAL")" ]; then
resetprop -nv $(get_eq_left $SAFEVAL) $(get_eq_right $SAFEVAL) >> $LOGFILE 2>&1
break
fi
done
elif [ "$TMPVAL" ]; then
log_handler "Skipping $TMPPROP, not set to triggering value."
else
log_handler "Skipping $TMPPROP, does not exist on device."
fi
fi
done
fi
# Edits prop values if set for post-fs-data
if [ "$OPTIONBOOT" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$PRINTSTAGE" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$PATCHSTAGE" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$SIMSTAGE" == 1 ] || [ "$CUSTOMPROPSPOST" ] || [ "$DELETEPROPS" ]; then
if [ "$OPTIONBOOT" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$PRINTSTAGE" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$PATCHSTAGE" == 1 ] || [ "$OPTIONBOOT" != 1 -a "$SIMSTAGE" == 1 ] || [ "$CUSTOMPROPSPOST" ] || [ "$DELETEPROPS" ] || [ "$PROPBOOT" == 1 ]; then
# Load functions
. $MODPATH/common/util_functions.sh
echo -e "\n----------------------------------------" >> $LOGFILE 2>&1
@ -139,18 +215,23 @@
fi
# Setting custom props
custom_edit "CUSTOMPROPS"
else
# Edit fingerprint if set for post-fs-data
if [ "$PRINTSTAGE" == 1 ]; then
print_edit "none"
fi
# Edit security patch date if set for post-fs-data
if [ "$PATCHSTAGE" == 1 ]; then
patch_edit "none"
fi
# Edit simulation props if set for post-fs-data
if [ "$SIMSTAGE" == 1 ]; then
dev_sim_edit "none"
fi
fi
# Edit fingerprint if set for post-fs-data
if [ "$OPTIONBOOT" != 1 ] && [ "$PRINTSTAGE" == 1 ]; then
print_edit "none"
fi
# Edit security patch date if set for post-fs-data
if [ "$OPTIONBOOT" != 1 ] && [ "$PATCHSTAGE" == 1 ]; then
patch_edit "none"
fi
# Edit simulation props if set for post-fs-data
if [ "$OPTIONBOOT" != 1 ] && [ "$SIMSTAGE" == 1 ]; then
dev_sim_edit "none"
# Edit MagiskHide sensitive props if set for post-fs-data
if [ "$PROPEDIT" == 1 ] && [ "$PROPBOOT" == 1]; then
sensitive_props "$PROPSLIST" "$SAFELIST"
fi
# Edit custom props set for post-fs-data
custom_edit "CUSTOMPROPSPOST"
@ -159,9 +240,8 @@
echo -e "\n----------------------------------------" >> $LOGFILE 2>&1
fi
FNSH="\n$(date +"%Y-%m-%d %H:%M:%S:%N") - post-fs-data.sh module script finished."
echo -e $FNSH >> $LOGFILE 2>&1
echo -e $FNSH >> $RUNFILE 2>&1
log_handler "post-fs-data.sh module script finished."
echo -e "\n$(date +"%Y-%m-%d %H:%M:%S:%N") - post-fs-data.sh module script finished." >> $RUNFILE 2>&1
# Deletes the post-fs-data control file
rm -f $MHPCPATH/propsconf_postchk >> $LOGFILE 2>&1

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
MODPATH=${0%/*}
@ -23,6 +23,12 @@ done
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
@ -62,10 +68,11 @@ fi
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---
# ---Setting/Changing fingerprint---
if [ "$PRINTSTAGE" == 0 ]; then
print_edit "none"
fi
@ -83,38 +90,49 @@ if [ "$OPTIONBOOT" == 2 ]; then
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 fingerprint if set for late_start service
if [ "$OPTIONBOOT" != 2 ] && [ "$PRINTSTAGE" == 2 ]; then
print_edit "none"
# 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" "$SAFELIST"
fi
# Edit late senstive props
sensitive_props "$LATEPROPS" "$LATESAFELIST" "late"
fi
# Edit security patch date if set for late_start service
if [ "$OPTIONBOOT" != 2 ] && [ "$PATCHSTAGE" == 2 ]; then
patch_edit "none"
# Do a soft restart if a prop has been set in service.sh
if [ "$PROPLATE" == "true" ]; then
stop
start
fi
# Edit simulation props if set for late_start service
if [ "$OPTIONBOOT" != 2 ] && [ "$SIMSTAGE" == 2 ]; then
dev_sim_edit "none"
# 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
# Edit custom props set for late_start service
custom_edit "CUSTOMPROPSLATE"
custom_edit "CUSTOMPROPSDELAY"
# 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 -nv $ITEM "$(eval "echo \$$MODULEPROP")" >> $LOGFILE 2>&1
fi
done
stop
start
fi
echo -e "\n----------------------------------------" >> $LOGFILE 2>&1
# Get currently saved values

Binary file not shown.

View File

@ -1,7 +1,7 @@
#!/system/bin/sh
# MagiskHide Props Config
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2021 Didgeridoohan @ XDA Developers
# Licence: MIT
# Uninstalls the module settings file and directory in Magisk's secure directory