v3.0.0-v42

This commit is contained in:
Didgeridoohan 2019-02-02 13:37:20 +01:00 committed by GitHub
parent 416ddbc390
commit 27c62203a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1110 additions and 638 deletions

View File

@ -19,6 +19,7 @@ Keep reading below to find out more details about the different parts of the mod
- [Installation](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#installation)
- [Usage](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#usage)
- [Spoofing device's fingerprint to pass the ctsProfile check](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#spoofing-devices-fingerprint-to-pass-the-ctsprofile-check)
- [Use vendor fingerprint](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#use-vendor-fingerprint
- [Matching the Android security patch date](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#matching-the-android-security-patch-date)
- [Can I use any fingerprint?](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#can-i-use-any-fingerprint)
- [Finding a certified fingerprint](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#finding-a-certified-fingerprint)
@ -31,6 +32,7 @@ Keep reading below to find out more details about the different parts of the mod
- [Current fingerprints list version](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#current-fingerprints-list-version)
- [Please add support for device X](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#please-add-support-for-device-x)
- [Please update fingerprint X](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#please-update-fingerprint-x)
- [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation)
- [Improved root hiding - Editing build.prop and default.prop](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#improved-root-hiding---editing-buildprop-and-defaultprop)
- [Set/reset MagiskHide Sensitive props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#setreset-magiskhide-sensitive-props)
- [Change/set custom prop values](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values)
@ -40,7 +42,7 @@ Keep reading below to find out more details about the different parts of the mod
- [Script colours](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#script-colours)
- [Fingerprints list check](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#fingerprints-list-check)
- [Configuration file](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#configuration-file)
- [Setting up the module on a clean ROM flash](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#setting-up-the-module-on-a-clean-rom-flash)
- [Setting up the module on a clean Magisk/ROM flash](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#setting-up-the-module-on-a-clean-magiskrom-flash)
- [Miscellaneous MagiskHide issues](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues)
- [Issues, support,etc](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#issues-support-etc)
- [Known issues](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#known-issues)
@ -51,10 +53,12 @@ Keep reading below to find out more details about the different parts of the mod
- [Device issues because of the module](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#device-issues-because-of-the-module)
- [Logs](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#logs)
- [Collecting logs manually](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#collecting-logs-manually)
- [Donations](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#donations)
- [Source](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#source)
- [Credits](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#credits)
- [Changelog](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changelog)
- [Current fingerprints list](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#current-fingerprints-list)
- [Licence](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#mit-licence)
## Prerequisites
@ -79,12 +83,19 @@ If your device can't pass SafetyNet fully, the CTS profile check fails while bas
This might be because your device simply hasn't been certified or that the ROM you are using on your device isn't recognised by Google (because it's a custom ROM).
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.
To fix this, you can use a known working device fingerprint (`ro.build.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. 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.
After having applied a device fingerprint from the module, whenever that particular print is updated in the included prints list, the chosen fingerprint will be automatically updated when the fingerprints list is. Just reboot to apply the new fingerprint.
If you are using a Treble GSI ROM you can enable the [Use vendor fingerprint](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#use-vendor-fingerprint-for-treble-gsi-roms) option (for more details, see below) in the `Edit device fingerprint` menu.
### Use vendor fingerprint (for Treble GSI ROMs)
When using a Treble GSI ROM with a stock vendor partition, it is possible to use the vendor fingerprint to make the device pass the CTS profile check. Enabling this option will make the module scripts pull the vendor fingerprint on each boot and use this to spoof the device fingerprint. This in turn means you will only have to enable this option once and even if you update your vendor partition the fingerprint used will always be the latest one.
### 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 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.
@ -156,6 +167,8 @@ 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.
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.
**_Current fingerprints list version - v42_**
@ -173,6 +186,20 @@ If you have an updated fingerprint available (and you've posted it for me to upd
You can enter the fingerprint manually in the `Edit device fingerprint` menu in the module, you can use the [configuration file](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#configuration-file), or you can make a [custom fingerprints list](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#custom-fingerprints-list).
## Device simulation
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
- ro.product.device
- ro.build.version.release
- ro.build.id
- ro.build.version.incremental
By default all props are set when this option is activated, but it is possible to activate and deactivate each prop individually.
Whenever a fingerprint is set by the module, the `ro.build.description` prop will be set automatically independently from if the general device simulation option is enabled or not.
## Improved root hiding - Editing build.prop and default.prop
In some rare cases, apps and services look at the actual files (build.prop and default.prop), rather than the set prop values. With this module feature you can make sure that the actual prop in build.prop and default.prop is changed to match whatever value the prop has been set to by either MagiskHide or the module. If there's a prop value set by the module (see ["Set/reset MagiskHide Sensitive props"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#setreset-magiskhide-sensitive-props) below), that value takes precedence.
@ -189,12 +216,13 @@ If, for some reason, you need one or more of these to be kept as their original
## 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.
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).
When setting a custom prop you can also pick in what boot stage it should be set in. This can also be changed later for each individual custom prop. There are three options:
- Default - The main module option will decide (see [Prop script settings](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#boot-stage) below).
- post-fs-data - The prop will always be set in post-fs-data, regardless of the main module option.
- late_start service - The prop will always be set in late_start service, regardless of the main module option.
- Both post-fs-data late_start service - In some special cases you would want the prop to be set during both boot stages. An example would be if the system reapplies the stock prop value late in the boot process (after post-fs-data).
Note: post-fs-data runs earlier than late_start service.
@ -234,12 +262,16 @@ This option will disable or enable the automatic updating of the fingerprints li
## Configuration file
You can use a configuration file to set your desired options, rather than running the `props` command. Download the [settings file](https://raw.githubusercontent.com/Magisk-Modules-Repo/MagiskHide-Props-Config/master/common/propsconf_conf) or extract it from the module zip (in the common folder), fill in the desired options (follow the instructions in the file), place it in /cache (or /data/cache if you're using an A/B device) and reboot. If you edit the configuration file in Windows, make sure that you use a text editor that can handle [Unix file endings](https://en.m.wikipedia.org/wiki/Newline), such as Notepad++ and similar editors (not regular Notepad).
You can use a configuration file to set your desired options, rather than running the `props` command. This is particularly useful if you have a large amount of custom props you want to set. Download the [settings file](https://raw.githubusercontent.com/Magisk-Modules-Repo/MagiskHide-Props-Config/master/common/propsconf_conf) or extract it from the module zip ('propsconf_conf' in the common folder), fill in the desired options (follow the instructions in the file), place it /data or /cache (or /data/cache if you're using an A/B device) and reboot. You can also use the configuration file when first installing the module. Just place the file in the root of your internal storage (or one of the other previously mentioned locations) before flashing the module and the installation script will set everything up.
This can also be done directly at the first install (through Manager or recovery) and even on a brand new clean install of Magisk, before even rebooting your device. Upon detecting the file, the module boot script will load the configured values and then delete the the configuration file. Instant settings.
If you edit the configuration file in Windows, make sure that you use a text editor that can handle [Unix file endings](https://en.m.wikipedia.org/wiki/Newline), such as Notepad++ and similar editors (not regular Windows Notepad).
### Setting up the module on a clean ROM flash
After having made a clean ROM flash, the configuration file can be used to set the module up as you want without even having to boot first. Just flash the ROM, Magisk and then the module. If you then place a configuration file with your desired settings (fingerprint, custom props, etc) in /cache (or /data/cache if you're using an A/B device), this will be loaded during the first boot. It is possible that this won't work an all device/ROM combinations. If you experience issues, let the ROM boot once before setting everything up.
This can also be done directly at the first install (through Manager or recovery) and even on a brand new clean install of Magisk, before even rebooting your device (also see "Setting up the module on a clean Magisk/ROM flash" below).
**NOTE!** Upon detecting the file, the module installation/boot script will load the configured values into the module and then delete the the configuration file, so keep a copy somewhere if you want to use the same settings later.
### Setting up the module on a clean Magisk/ROM flash
After having made a clean ROM flash, the configuration file can be used to set the module up as you want without even having to boot first. First flash the ROM and Magisk. After that you can place the configuration file (see above) with your desired settings (fingerprint, custom props, etc) in the root of your internal storage, /data or /cache (or /data/cache if you're using an A/B device) and then install the module. This will set the module up just as you want it without having to do anything else. It is also possible to place the configuration file after having installed the module and rebooting (although you can only use /data or /cache as a location for the file). This will set everything up during boot, but it is possible that this won't work an all device/ROM combinations. If you experience issues, let the ROM boot once before setting everything up.
## Miscellaneous MagiskHide issues
@ -252,13 +284,15 @@ But first: have you tried turning it off and on again? Toggling MagiskHide off a
If you have questions, suggestions or are experiencing some kind of issue, visit the [module support thread](https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228) @ XDA.
### 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.
- 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 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", or if conflicting modules that also Magic Mounts build.prop are found.
- _"Edit device fingerprint"_ will be disabled if another Magisk module that is known to also edit the device fingerprint is installed.
- _"Device simulation"_ will be disabled if there is no device fingerprint set by the module.
- _"Improved hiding"_ will be disable if all relevant prop values already are "safe" (in other words: the option isn't needed), or if a conflicting module that also Magic Mounts build.prop is 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.
@ -293,6 +327,10 @@ The logs will also automatically be saved to the root of the device's internal s
If you can't run the `props` script for some reason, the logs are also stored in /cache (or /data/cache for A/B devices). The Magisk log and any files starting with "propsconf" would be useful for troubleshooting (if you don't, or can't, use the "Collect logs" option mentioned above). Providing the output from terminal might also be useful.
## Donations
If you've had any help from me or this module, any kind of [URL="https://forum.xda-developers.com/donatetome.php?u=4667597"]donation[/URL] to support the work involved would of course be appreciated.
## Source
[GitHub](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config)
@ -310,6 +348,21 @@ Releases from v2.4.1 are compatible with Magisk v17+.
## Changelog
### v3.0.0
- New function for device simulation. The module sets a number of device specifying props based on the used fingerprint. See the documentation for details.
- New function for Treble GSI users that have a stock vendor partition: The module can use the certified vendor fingerprint found there. See the documentation for details. Thank you to @oF2pks for making me aware of this possibility.
- New function where the currently used fingerprint automatically will be updated if there's a new fingerprint for that device added to the fingerprints list. See the documentation for details.
- New function to set custom props in both post-fs-data and late_start service mode. See the documentation for details. See the documentation for details.
- Updated the configuration file function so that the file will now be detected during installation or at boot. See the documentation for details.
- Updated the locations for placing the configuration file when importing settings to the module. See the documentation for details.
- Updated the configuration file to be version specific. Make sure you use the latest available configuration file.
- Fixed compatibility with changed boot stages in Magisk v18.1-d73127b1(18006).
- Fixed double download of fingerprints file if using the -f option and cleaned up the runtime options a bit.
- Fixed module reset option.
- Optimised variable and settings retrieval.
- Optimised module boot scripts.
- A whole bunch of minor fixes and cleanups.
### v2.7.2
- Re-run the post-fs-data script if the Magisk image wasn't mounted yet or if the script has been reset.
- Added fingeprints for Razer Phone 1 & 2 and Xiaomi Mi Pad 4, and updated fingerprints for Xiaomi Mi 8, Mi A2 & Pocophone F1. List v40.
@ -664,7 +717,7 @@ Releases from v2.4.1 are compatible with Magisk v17+.
## MIT Licence
*Copyright (c) 2018 Didgeridoohan*
*Copyright (c) 2018-2019 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

@ -7,35 +7,35 @@ MODPATH=${0%/*}
# More info in the main Magisk thread
# MagiskHide Props Config
# By Didgeridoohan @ XDA Developers
# Variables
IMGPATH=$(dirname "$MODPATH")
COREPATH=$(dirname "$IMGPATH")
POSTLOGFILE=$CACHELOC/propsconf_postfile.log
POSTDEL=0
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers
# Licence: MIT
# Load functions
. $MODPATH/util_functions.sh
if [ ! -f "$POSTCHKFILE" ]; then
touch $POSTCHKFILE
# Variables
IMGPATH=$(dirname "$MODPATH")
COREPATH=$(dirname "$IMGPATH")
# Start logging
log_start
# Clears out the script check file
rm -f $RUNFILE
touch $RUNFILE
# Clears out the script control file
touch $POSTCHKFILE
# Checks the reboot and print update variables in propsconf_late
if [ "$REBOOTCHK" == 1 ]; then
replace_fn REBOOTCHK 1 0 $LATEFILE
fi
if [ "$PRINTCHK" == 1 ]; then
replace_fn PRINTCHK 1 0 $LATEFILE
fi
# Check for boot scripts and restore backup if deleted, or if the resetfile is present
if [ ! -f "$POSTFILE" ]; then
# Start logging
log_start
log_handler "post-fs-data boot script not found."
log_handler "Restoring post-fs-data boot script (${POSTFILE})."
cp -af $MODPATH/propsconf_post $POSTFILE >> $LOGFILE 2>&1
chmod -v 755 $POSTFILE >> $LOGFILE 2>&1
placeholder_update $POSTFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
placeholder_update $POSTFILE CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
# Deleting settings script to force a restore
rm -f $LATEFILE
POSTDEL=1
fi
# Check for the boot script and restore backup if deleted, or if the resetfile is present
if [ ! -f "$LATEFILE" ] || [ -f "$RESETFILE" ]; then
if [ -f "$RESETFILE" ]; then
RSTTXT="Resetting"
@ -47,20 +47,118 @@ if [ ! -f "$LATEFILE" ] || [ -f "$RESETFILE" ]; then
log_handler "$RSTTXT late_start service boot script (${LATEFILE})."
cp -af $MODPATH/propsconf_late $LATEFILE >> $LOGFILE 2>&1
chmod -v 755 $LATEFILE >> $LOGFILE 2>&1
placeholder_update $LATEFILE POSTFILE POST_PLACEHOLDER "$POSTFILE"
placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
placeholder_update $LATEFILE CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
fi
# Checking if the post-fs-data boot script ran during boot
if [ -f "$POSTLOGFILE" ] || [ "$POSTDEL" == 1 ]; then
if [ "$(cat $POSTLOGFILE | grep "Module no longer installed.")" ] || [ "$POSTDEL" == 1 ]; then
log_handler "post-fs-data boot script did not run. Attempting a re-run."
. $POSTFILE
# Checks for the Universal SafetyNet Fix module and similar modules editing the device fingerprint
PRINTMODULE=false
for USNF in $USNFLIST; do
if [ -d "$IMGPATH/$USNF" ]; then
NAME=$(get_file_value $IMGPATH/$USNF/module.prop "name=")
log_handler "'$NAME' installed (modifies the device fingerprint)."
PRINTMODULE=true
fi
done
if [ "$PRINTMODULE" == "true" ]; then
replace_fn FINGERPRINTENB 1 0 $LATEFILE
replace_fn PRINTMODULE 0 1 $LATEFILE
log_handler "Fingerprint modification disabled."
else
replace_fn FINGERPRINTENB 0 1 $LATEFILE
replace_fn PRINTMODULE 1 0 $LATEFILE
fi
log_handler "post-fs-data.sh module script finished.\n\n===================="
# Get default values
log_handler "Checking device default values."
curr_values
# Get the current original values saved in propsconf_late
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")"
CURRPROP="CURR${TMPPROP}"
CURRTMP="$(eval "echo \$$CURRPROP")"
replace_fn $ORIGPROP "\"$ORIGTMP\"" "\"$CURRTMP\"" $LATEFILE
done
log_handler "Default values saved to $LATEFILE."
# Check if default file values are safe
orig_safe
# Loading the new values
. $LATEFILE
# Checks for configuration file
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 [ "$OPTIONLATE" == 0 ]; then
# ---Setting/Changing fingerprint---
print_edit
# ---Setting device simulation props---
dev_sim_edit
# ---Setting custom props---
custom_edit "CUSTOMPROPS"
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 [ "$FILESAFE" == 0 ]; then
log_handler "Checking for conflicting build.prop modules."
# Checks if any other modules are using a local copy of build.prop
BUILDMODULE=false
MODID=$(get_file_value $MODPATH/module.prop "id=")
for D in $(ls $IMGPATH); do
if [ $D != "$MODID" ]; then
if [ -f "$IMGPATH/$D/system/build.prop" ] || [ "$D" == "safetypatcher" ]; then
NAME=$(get_file_value $IMGPATH/$D/module.prop "name=")
log_handler "Conflicting build.prop editing in module '$NAME'."
BUILDMODULE=true
fi
fi
done
if [ "$BUILDMODULE" == "true" ]; then
replace_fn BUILDPROPENB 1 0 $LATEFILE
else
replace_fn BUILDPROPENB 0 1 $LATEFILE
fi
# Copies the stock build.prop to the module. Only if set in propsconf_late.
if [ "$BUILDPROPENB" == 1 ] && [ "$BUILDEDIT" == 1 ]; then
log_handler "Stock build.prop copied to module."
cp -af $MIRRORLOC/build.prop $MODPATH/system/build.prop >> $LOGFILE 2>&1
# Edits the module copy of build.prop
log_handler "Editing build.prop."
# ro.build props
change_prop_file "build"
# Fingerprint
if [ "$MODULEFINGERPRINT" ] && [ "$SETFINGERPRINT" == "true" ] && [ "$FINGERPRINTENB" == 1 ]; then
PRINTSTMP="$(grep "$ORIGFINGERPRINT" $MIRRORLOC/build.prop)"
for ITEM in $PRINTSTMP; do
replace_fn $(get_eq_left "$ITEM") $(get_eq_right "$ITEM") $(echo $MODULEFINGERPRINT | sed 's|\_\_.*||') $MODPATH/system/build.prop && log_handler "$(get_eq_left "$ITEM")=$(echo $MODULEFINGERPRINT | sed 's|\_\_.*||')"
done
fi
else
rm -f $MODPATH/system/build.prop
log_handler "Build.prop editing disabled."
fi
else
rm -f $MODPATH/system/build.prop
log_handler "Prop file editing disabled. All values ok."
fi
log_script_chk "post-fs-data.sh module script finished.\n\n===================="
# Deletes the post-fs-data control file
rm -f $POSTCHKFILE
rm -f $POSTCHKFILE

View File

@ -1,10 +1,11 @@
#!/system/bin/sh
# MagiskHide Props Config
# By Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers
# Licence: MIT
PRINTSV=42
PRINTSTRANSF=250
PRINTSTRANSF=260
# Certified fingerprints
PRINTSLIST="

View File

@ -1,41 +1,96 @@
#!/system/bin/sh
# MagiskHide Props Config
# By Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers
# Licence: MIT
# Required module version
CONFTRANSF=300
# Device fingerprint
CONFFINGERPRINT=""
CONFVENDPRINT=false
# Device simulation
CONFDEVSIM=false
CONFBRAND=true
CONFNAME=true
CONFDEVICE=true
CONFRELEASE=true
CONFID=true
CONFINCREMENTAL=true
CONFDESCRIPTION=true
# Edit prop files
CONFPROPFILES=false
# MagiskHide sensitive props
CONFDEBUGGABLE=""
CONFSECURE=""
CONFTYPE=""
CONFTAGS=""
CONFSELINUX=""
# Set custom props
CONFPROPS=""
CONFPROPSPOST=""
CONFPROPSLATE=""
PROPOPTION=replace
# Delete props
CONFDELPROPS=""
DELPROPOPTION=replace
# Module settings
CONFLATE=false
CONFCOLOUR=enabled
CONFWEB=enabled
CONFCOLOUR=true
CONFWEB=true
# =================================================================
# ========================== Instructions =========================
# =================================================================
# Set the above variables to the desired prop/configuration values.
# If any variables are left unset, that particular prop/configuration
# will be cleared and the device/Magisk default values will be used.
# If you want to keep any current module settings (for those that
# aren't true/false options), add "preserve" to the variable.
# Example:
# CONFFINGERPRINT=preserve
# When placed in /cache or the root of your internal storage, the module will load these
# values during boot and the configuration file will be deleted. Keep a backup of the
# file if you want to reuse it at a later time (clean ROM flash, etc).
# For more information, see the documentation:
# https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md
# and the support thread @ XDA Developers:
# https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228
# =================================================================
# =========================== Variables ===========================
# =================================================================
# CONFFINGERPRINT should be set to the fingerprint of a ROM that passes
# the ctsProfile check. See the prints.sh file for usable prints,
# or the documentation for information on how to find one.
# Note that Android builds after March 16 2018 often also need to match the Android
# security patch date. Use the CONFPROPS setting to set ro.build.version.security_patch
# to the matching date (example: 2018-10-05).
# security patch date. Add the date to the end of the fingerprint, preceeded by
# two underscores (example: __2018-10-05), or use the CONFPROPS setting
# to set ro.build.version.security_patch to the matching date (example: 2018-10-05).
#
# Changing CONFVENDPRINT to 'true' will enable using the stock vendor
# fingerprint for Treble GSI ROMs (so only us this if you're on a Treble GSI ROM).
# NOTE! Keep in mind that there is no need to enter a fingerprint in
# CONFFINGERPRINT when enabling this option, or setting a security patch date.
# CONFDEVSIM and the following CONFBRAND, CONFNAME, CONFDEVICE, CONFRELEASE
# CONFID, CONFINCREMENTAL and CONFDESCRIPTION are used to set a number
# of props to simulate a certain deviced based on the fingerprint used.
# CONFDESCRIPTION will automatically be applied if a fingerprint is set
# by the module, but the other props will only be set if CONFDEVSIM is
# set to true, and the default setting for all props are that they will be
# set by the module. If you want to change this, change "true" to "false"
# for the applicable variables.
# CONFPROPFILES should be set to "true" if you want to mask the file
# values in build.prop and default.prop. For better root hiding.
@ -65,7 +120,7 @@ CONFWEB=enabled
# With PROPOPTION you can decide if the current custom prop list should
# be replaced, added to or preserved. Add the corresponding words "replace",
# "add", or "preserve". The default option is to replace the list.
# This option supersedes the preserve option described below, but only
# This option supersedes the preserve option described above, but only
# for the CONFPROPS variables.
# CONFDELPROPS is a list of props you want to remove from your system.
@ -82,7 +137,7 @@ CONFWEB=enabled
# With DELPROPOPTION you can decide if the current custom prop list should
# be replaced, added to or preserved. Add the corresponding words "replace",
# "add", or "preserve". The default option is to replace the list.
# This option supersedes the preserve option described below, but only
# This option supersedes the preserve option described above, but only
# for the CONFDELPROPS variable.
# CONFLATE is by default set to "false". This loads the boot script during the
@ -91,19 +146,4 @@ CONFWEB=enabled
# useful if the module's boot script seems to be causing issues during boot.
#
# CONFCOLOUR and CONFWEB are the options for colour and automatic fingerprints
# list update. See the module documentation for more details. Set to "enabled" or "disabled".
# If any variables are left unset, that particular prop/configuration
# will be cleared and the device/MagiskHide default values will be used.
# If you want to keep any current module settings, add "preserve" to the variable.
# Example:
# CONFFINGERPRINT=preserve
# When placed in /cache or the root of your internal storage, the module will load these
# values during boot and the configuration file will be deleted. Keep a backup of the
# file if you want to reuse it at a later time (clean ROM flash, etc).
# For more information, see the documentation:
# https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md
# and the support thread @ XDA Developers:
# https://forum.xda-developers.com/apps/magisk/module-magiskhide-props-config-t3789228
# list update. See the module documentation for more details. Set to "true" or "false".

View File

@ -1,15 +1,16 @@
#!/system/bin/sh
# MagiskHide Props Config
# By Didgeridoohan @ XDA Developers
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers
# Licence: MIT
# This is a script file for the Magisk module "MagiskHide Props Config" By Didgeridoohan @ XDA Developers.
# This is the settings file for the Magisk module "MagiskHide Props Config" By Didgeridoohan @ XDA Developers.
# DO NOT DELETE!
# Unless: If you don't have the module installed something has gone horribly wrong and this file is an orphan.
# In that case, feel free to delete it.
# Script version
SCRIPTV=21
SCRIPTV=22
SETTRANSF=2
NOTTRANSF="OPTIONLATE"
@ -18,11 +19,13 @@ COREPATH=CORE_PLACEHOLDER
IMGPATH=$COREPATH/img
MODPATH=$IMGPATH/MagiskHidePropsConf
CACHELOC=CACHE_PLACEHOLDER
POSTFILE=POST_PLACEHOLDER
LATELOGFILE=$CACHELOC/propsconf_latefile.log
FINGERPRINTENB=1
PRINTMODULE=0
PRINTEDIT=0
PRINTVEND=0
DEVSIM=0
BUILDPROPENB=1
FILESAFE=1
BUILDEDIT=0
@ -32,18 +35,89 @@ PROPEDIT=0
CUSTOMEDIT=0
DELEDIT=0
REBOOTCHK=0
PRINTCHK=0
OPTIONLATE=0
OPTIONCOLOUR=1
OPTIONWEB=1
OPTIONUPDATE=1
BRANDSET=1
NAMESET=1
DEVICESET=1
RELEASESET=1
IDSET=1
INCREMENTALSET=1
DESCRIPTIONSET=1
CACHEFILES="
propsconf_conf
reset_mhpc
"
# ---Original values---
# default.prop
ORIGDEBUGGABLE=""
ORIGSECURE=""
# build.prop
ORIGTYPE=""
ORIGTAGS=""
ORIGSELINUX=""
ORIGFINGERPRINT=""
ORIGVENDPRINT=""
ORIGPATCH=""
ORIGBRAND=""
ORIGNAME=""
ORIGDEVICE=""
ORIGRELEASE=""
ORIGID=""
ORIGINCREMENTAL=""
ORIGDESCRIPTION=""
# ---Module values---
MODULEDEBUGGABLE=""
MODULESECURE=""
MODULETYPE=""
MODULETAGS=""
MODULESELINUX=""
MODULEFINGERPRINT=""
# ---Device simulation values---
SIMBRAND=""
SIMNAME=""
SIMDEVICE=""
SIMRELEASE=""
SIMID=""
SIMINCREMENTAL=""
SIMDESCRIPTION=""
# ---Custom prop values---
CUSTOMPROPS=""
CUSTOMPROPSPOST=""
CUSTOMPROPSLATE=""
# ---Delete prop values---
DELETEPROPS=""
# ---MagiskHide sensitive props---
REDEBUGGABLE=false
RESECURE=false
RETYPE=false
RETAGS=false
RESELINUX=false
# ---Editing default.prop---
SETDEBUGGABLE=false
SETSECURE=false
# ---Editing build.prop---
SETTYPE=false
SETTAGS=false
SETSELINUX=false
SETFINGERPRINT=false
rm -f $LATELOGFILE
# Function to clean up different files after the module has been uninstalled
# Function to clean up some files after the module has been uninstalled
cleanup() {
echo "Cleaning up files in $CACHELOC." >> $LATELOGFILE 2>&1
for ITEM in $CACHEFILES; do
@ -53,8 +127,7 @@ cleanup() {
fi
done
# Suicide.
echo "Removing scripts." >> $LATELOGFILE 2>&1
rm -f $POSTFILE >> $LATELOGFILE 2>&1
echo "Removing script." >> $LATELOGFILE 2>&1
rm -f $0 >> $LATELOGFILE 2>&1
}
@ -65,120 +138,6 @@ if [ -d "$MODPATH" ]; then
echo "Module set for removal." >> $LATELOGFILE 2>&1
# Cleanup
cleanup
else
# Load functions
. $MODPATH/util_functions.sh
if [ "$OPTIONLATE" == 0 ]; then
until [ ! -f "$POSTCHKFILE" ]; do
sleep 1
done
fi
log_script_chk "Running late_start service boot script."
if [ -f "$MODPATH/disable" ]; then
log_handler "Module disabled."
else
# Check the reboot variable
if [ "$(get_file_value $LATEFILE "REBOOTCHK\=")" == 1 ]; then
replace_fn REBOOTCHK 1 0 $LATEFILE
fi
# ---Original values---
# default.prop
ORIGDEBUGGABLE=""
ORIGSECURE=""
# build.prop
ORIGTYPE=""
ORIGTAGS=""
ORIGSELINUX=""
ORIGFINGERPRINT=""
ORIGPATCH=""
# ---Module values---
MODULEDEBUGGABLE=""
MODULESECURE=""
MODULETYPE=""
MODULETAGS=""
MODULESELINUX=""
MODULEFINGERPRINT=""
# ---Custom prop values---
CUSTOMPROPS=""
CUSTOMPROPSPOST=""
CUSTOMPROPSLATE=""
# ---Delete prop values---
DELETEPROPS=""
# ---MagiskHide sensitive props---
REDEBUGGABLE=false
RESECURE=false
RETYPE=false
RETAGS=false
RESELINUX=false
# ---Editing default.prop---
SETDEBUGGABLE=false
SETSECURE=false
# ---Editing build.prop---
SETTYPE=false
SETTAGS=false
SETSELINUX=false
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"
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
log_handler "Editing default.prop."
mount -wo remount rootfs /
change_prop_file "default"
mount -ro remount rootfs /
else
log_handler "Default.prop editing disabled."
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 "late_start service boot script finished.\n\n=================="
fi
fi
else
echo "$MODPATH not found." >> $LATELOGFILE 2>&1

67
common/service.sh Normal file
View File

@ -0,0 +1,67 @@
#!/system/bin/sh
# Please don't hardcode /magisk/modname/... ; instead, please use $MODPATH/...
# This will make your scripts compatible even if Magisk change its mount point in the future
MODPATH=${0%/*}
# This script will be executed in late_start service mode
# More info in the main Magisk thread
# MagiskHide Props Config
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers
# Licence: MIT
# Load functions
. $MODPATH/util_functions.sh
if [ "$OPTIONLATE" == 0 ]; then
until [ ! -f "$POSTCHKFILE" ]; do
sleep 1
done
fi
log_script_chk "Running service.sh module script."
# 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 device simulation props---
dev_sim_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
# ---Edits default.prop---
if [ "$DEFAULTEDIT" == 1 ] && [ "$FILESAFE" == 0 ]; then
log_handler "Editing default.prop."
mount -wo remount rootfs /
change_prop_file "default"
mount -ro remount rootfs /
else
log_handler "Default.prop editing disabled."
fi
# Get currently saved values
log_handler "Checking current values."
curr_values
log_script_chk "service.sh module script finished.\n\n=================="

File diff suppressed because it is too large Load Diff

225
config.sh
View File

@ -4,41 +4,19 @@
# by topjohnwu
#
##########################################################################################
##########################################################################################
#
# Instructions:
#
# 1. Place your files into system folder (delete the placeholder file)
# 2. Fill in your module's info into module.prop
# 3. Configure the settings in this file (config.sh)
# 4. If you need boot scripts, add them into common/post-fs-data.sh or common/service.sh
# 5. Add your additional or modified system properties into common/system.prop
#
##########################################################################################
##########################################################################################
# Configs
##########################################################################################
# Set to true if you need to enable Magic Mount
# Most mods would like it to be enabled
AUTOMOUNT=true
# Set to true if you need to load system.prop
PROPFILE=false
# Set to true if you need post-fs-data script
POSTFSDATA=true
# Set to true if you need late_start service script
LATESTARTSERVICE=false
LATESTARTSERVICE=true
##########################################################################################
# Installation Message
##########################################################################################
# Set what you want to show when installing your mod
print_modname() {
MODVERSION=$(echo $(get_file_value $INSTALLER/module.prop "version=") | sed 's|-.*||')
ui_print "*******************************"
@ -51,19 +29,6 @@ print_modname() {
# Replace list
##########################################################################################
# List all directories you want to directly replace in the system
# Check the documentations for more info about how Magic Mount works, and why you need this
# This is an example
REPLACE="
/system/app/Youtube
/system/priv-app/SystemUI
/system/priv-app/Settings
/system/framework
"
# Construct your own list here, it will override the example above
# !DO NOT! remove this if you don't need to replace anything, leave it empty as it is now
REPLACE="
"
@ -72,52 +37,24 @@ REPLACE="
##########################################################################################
set_permissions() {
# Only some special files require specific permissions
# The default permissions should be good enough for most cases
# Here are some examples for the set_perm functions:
# set_perm_recursive <dirname> <owner> <group> <dirpermission> <filepermission> <contexts> (default: u:object_r:system_file:s0)
# set_perm_recursive $MODPATH/system/lib 0 0 0755 0644
# set_perm <filename> <owner> <group> <permission> <contexts> (default: u:object_r:system_file:s0)
# set_perm $MODPATH/system/bin/app_process32 0 2000 0755 u:object_r:zygote_exec:s0
# set_perm $MODPATH/system/bin/dex2oat 0 2000 0755 u:object_r:dex2oat_exec:s0
# set_perm $MODPATH/system/lib/libart.so 0 0 0644
# The following is default permissions, DO NOT remove
set_perm_recursive $MODPATH 0 0 0755 0644
# Permissions for the props file
set_perm $MODPATH/system/$BIN/props 0 0 0777
# Permissions for boot scripts
set_perm $LATEFILE 0 0 0755
set_perm $POSTFILE 0 0 0755
}
##########################################################################################
# Custom Functions
##########################################################################################
# This file (config.sh) will be sourced by the main flash script after util_functions.sh
# If you need custom logic, please add them here as functions, and call these functions in
# update-binary. Refrain from adding code directly into update-binary, as it will make it
# difficult for you to migrate your modules to newer template versions.
# Make update-binary as clean as possible, try to only do function calls in it.
##########################################################################################
# Installation variables and functions for the Magisk module "MagiskHide Props Config"
# by Didgeridoohan @ XDA Developers.
# Copyright (c) 2018-2019 Didgeridoohan @ XDA Developers.
# Licence: MIT
##########################################################################################
# Finding file values
get_file_value() {
cat $1 | grep $2 | sed "s|.*$2||" | sed 's|\"||g'
grep $2 $1 | sed "s|.*$2||" | sed 's|\"||g'
}
# Get left side of =
get_eq_left() {
echo $1 | sed 's|=.*||'
echo $1 | cut -f 1 -d '='
}
# Get first word in string
get_first() {
@ -141,33 +78,37 @@ $BOOTMODE && IMGPATH=$BIMGPATH || IMGPATH=$MOUNTPATH
if [ "$MAGISK_VER_CODE" -ge 17316 ]; then
POSTPATH=$ADBPATH/post-fs-data.d
SERVICEPATH=$ADBPATH/service.d
POSTHOLDER=$ADBPATH/post-fs-data.d/propsconf_post
LATEHOLDER=$ADBPATH/service.d/propsconf_late
else
POSTPATH=$IMGPATH/.core/post-fs-data.d
SERVICEPATH=$IMGPATH/.core/service.d
POSTHOLDER=$BIMGPATH/.core/post-fs-data.d/propsconf_post
LATEHOLDER=$BIMGPATH/.core/service.d/propsconf_late
fi
POSTFILE=$POSTPATH/propsconf_post
UPDATEPOSTFILE=$INSTALLER/common/propsconf_post
LATEFILE=$SERVICEPATH/propsconf_late
POSTLATEFILE=$POSTPATH/propsconf_late
UPDATELATEFILE=$INSTALLER/common/propsconf_late
MIRRORLOC=/sbin/.magisk/mirror/system
if [ -z $SLOT ]; then
SYSTEMLOC=/system
CACHELOC=/cache
else
SYSTEMLOC=/system_root/system
CACHELOC=/data/cache
fi
CONFFILELST="
$CACHELOC/propsconf_conf
/data/propsconf_conf
/sdcard/propsconf_conf
"
INSTLOG=$CACHELOC/propsconf_install.log
UPDATEV=$(get_file_value $UPDATELATEFILE "SCRIPTV=")
UPDATETRANSF=$(get_file_value $UPDATELATEFILE "SETTRANSF=")
NOTTRANSF=$(get_file_value $UPDATELATEFILE "NOTTRANSF=")
SETTINGSLIST="
FINGERPRINTENB
PRINTMODULE
PRINTEDIT
PRINTVEND
DEVSIM
BUILDPROPENB
FILESAFE
BUILDEDIT
@ -177,9 +118,18 @@ PROPEDIT
CUSTOMEDIT
DELEDIT
REBOOTCHK
PRINTCHK
OPTIONLATE
OPTIONCOLOUR
OPTIONWEB
OPTIONUPDATE
BRANDSET
NAMESET
DEVICESET
RELEASESET
IDSET
INCREMENTALSET
DESCRIPTIONSET
"
PROPSETTINGSLIST="
MODULEDEBUGGABLE
@ -188,6 +138,13 @@ MODULETYPE
MODULETAGS
MODULESELINUX
MODULEFINGERPRINT
SIMBRAND
SIMNAME
SIMDEVICE
SIMRELEASE
SIMID
SIMINCREMENTAL
SIMDESCRIPTION
CUSTOMPROPS
CUSTOMPROPSPOST
CUSTOMPROPSLATE
@ -206,7 +163,7 @@ USNFLIST="xiaomi-safetynet-fix safetynet-fingerprint-fix VendingVisa DeviceSpoof
# Log functions
log_handler() {
echo "" >> $INSTLOG
echo -e "$(date +"%m-%d-%Y %H:%M:%S") - $1" >> $INSTLOG 2>&1
echo -e "$(date +"%Y-%m-%d %H:%M:%S:%N") - $1" >> $INSTLOG 2>&1
}
log_start() {
if [ -f "$INSTLOG" ]; then
@ -227,8 +184,10 @@ log_print() {
# Places various module scripts in their proper places
script_placement() {
if [ -f "$LATEFILE" ]; then
FILEV=$(get_file_value $LATEFILE "SCRIPTV=")
FILETRANSF=$(get_file_value $LATEFILE "SETTRANSF=")
# Load module settings
load_settings
FILEV=$SCRIPTV
FILETRANSF=$SETTRANSF
else
FILEV=0
FILETRANSF=$UPDATETRANSF
@ -236,8 +195,6 @@ script_placement() {
log_print "- Installing scripts"
cp -af $INSTALLER/common/util_functions.sh $MODPATH/util_functions.sh >> $INSTLOG 2>&1
cp -af $INSTALLER/common/prints.sh $MODPATH/prints.sh >> $INSTLOG 2>&1
cp -af $UPDATEPOSTFILE $MODPATH/propsconf_post >> $INSTLOG 2>&1
cp -af $UPDATEPOSTFILE $POSTFILE >> $INSTLOG 2>&1
cp -af $UPDATELATEFILE $MODPATH/propsconf_late >> $INSTLOG 2>&1
if [ "$FILEV" ]; then
# New script
@ -340,9 +297,29 @@ print_files() {
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
grep $OEM >> $MODPATH/printfiles/${OEM}\.sh $MODPATH/prints.sh
echo -e "\"" >> $MODPATH/printfiles/${OEM}\.sh
done
# Check for updated fingerprint
device_print_update
}
device_print_update() {
if [ "$OPTIONUPDATE" == 1 ]; then
if [ "$FINGERPRINTENB" == 1 -o "$PRINTMODULE" == 0 ] && [ "$PRINTEDIT" == 1 ] && [ "$MODULEFINGERPRINT" ]; then
TMPDEV="${VARBRAND}\.${VARNAME}\.${VARDEVICE}"
TMPPRINT=$(echo $PRINTSLIST | grep $TMPDEV )
if [ "$TMPDEV" ] && [ "$TMPPRINT" ]; then
if [ "$(echo $MODULEFINGERPRINT | sed 's|\_\_.*||')" != "$(echo $TMPPRINT | cut -f 2 -d '=' | sed 's|\_\_.*||')" ]; then
log_handler "Updating module fingerprint."
sed -i "s|MODULEFINGERPRINT=$MODULEFINGERPRINT|MODULEFINGERPRINT=$(echo $TMPPRINT | cut -f 2 -d '=')|" $LATEFILE
log_handler "Changing device fingerprint to $(echo $TMPPRINT | cut -f 2 -d '=' | sed 's|\_\_.*||')."
# Reloading module settings
load_settings
fi
fi
fi
fi
}
# Updates placeholders
@ -361,7 +338,7 @@ build_prop_check() {
log_print "- Checking for build.prop conflicts"
for D in $(ls $IMGPATH); do
if [ "$D" != "$MODID" ]; then
if [ -f "$IMGPATH/$D/system/build.prop" ]; then
if [ -f "$IMGPATH/$D/system/build.prop" ] || [ "$D" == "safetypatcher" ]; then
NAME=$(get_file_value $IMGPATH/$D/module.prop "name=")
ui_print "!"
log_print "! Another module editing build.prop detected!"
@ -412,12 +389,69 @@ install_check() {
fi
}
# Check for late_start service boot script in post-fs-data.d, in case someone's moved it
# Check for late_start service boot script in post-fs-data.d, in case someone's moved it and also delete the old propsconf_post boot script if present
post_check() {
if [ -f "$POSTLATEFILE" ]; then
log_handler "Removing late_start service boot script from post-fs-data.d."
rm -f $POSTLATEFILE
fi
if [ -f "$POSTFILE" ]; then
log_handler "Removing old post-fs-data boot script from post-fs-data.d"
rm -f $POSTFILE
fi
if [ -f "$CACHELOC/propsconf_postfile.log" ]; then
log_handler "Removing old post-fs-data log from /cache."
rm -f $CACHELOC/propsconf_postfile.log
fi
}
# Save props values from fingerprint parts
print_parts() {
DLIM1=1
DLIM2=1
for ITEM in $PROPSETTINGSLIST; do
case $ITEM in
SIMDESCRIPTION) # Do nothing with the description variable
;;
SIM*)
TMPVAR="$(echo $ITEM | sed 's|SIM||')"
TMPVALUE=$(echo $1 | sed 's|\:user/release-keys.*||' | cut -f $DLIM1 -d ':' | cut -f $DLIM2 -d '/')
eval "VAR${TMPVAR}='$TMPVALUE'"
DLIM2=$(($DLIM2 + 1))
if [ "$DLIM2" == 4 ]; then
DLIM1=2
DLIM2=1
fi
;;
esac
done
VARDESCRIPTION="${VARNAME}-user $VARRELEASE $VARID $VARINCREMENTAL release-keys"
}
# Update the device simulation variables if a fingerprint is set
devsim_update() {
if [ "$MODULEFINGERPRINT" ]; then
log_handler "Updating device simulation variables."
print_parts $MODULEFINGERPRINT
for ITEM in $PROPSETTINGSLIST; do
case $ITEM in
SIM*)
SUBA="$(get_file_value $LATEFILE "${ITEM}=")"
TMPVAR="$(echo $ITEM | sed 's|SIM|VAR|')"
TMPPROP="$(eval "echo \$$TMPVAR")"
sed -i "s|${ITEM}=\"${SUBA}\"|${ITEM}=\"${TMPPROP}\"|" $LATEFILE
;;
esac
done
# Reload module settings
load_settings
fi
}
# Load module settings and reapply the MODPATH variable
load_settings() {
. $LATEFILE
MODPATH=$MOUNTPATH/$MODID
}
# Installs everything
@ -429,23 +463,38 @@ script_install() {
script_placement
log_print "- Updating placeholders"
placeholder_update $LATEFILE CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
placeholder_update $MODPATH/util_functions.sh BIN BIN_PLACEHOLDER "$BIN"
placeholder_update $MODPATH/util_functions.sh USNFLIST USNF_PLACEHOLDER "$USNFLIST"
placeholder_update $MODPATH/util_functions.sh SYSTEMLOC SYSTEM_PLACEHOLDER "$SYSTEMLOC"
placeholder_update $MODPATH/util_functions.sh MIRRORLOC MIRROR_PLACEHOLDER "$MIRRORLOC"
placeholder_update $MODPATH/util_functions.sh CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
placeholder_update $MODPATH/util_functions.sh LATEFILE LATE_PLACEHOLDER "$LATEHOLDER"
placeholder_update $MODPATH/util_functions.sh POSTFILE POST_PLACEHOLDER "$POSTHOLDER"
placeholder_update $MODPATH/util_functions.sh MODVERSION VER_PLACEHOLDER "$MODVERSION"
placeholder_update $MODPATH/util_functions.sh BBWWWPATH BB_PLACEHOLDER "$BBWWWPATH"
placeholder_update $POSTFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
placeholder_update $POSTFILE CACHELOC CACHE_PLACEHOLDER "$CACHELOC"
placeholder_update $LATEFILE POSTFILE POST_PLACEHOLDER "$POSTHOLDER"
placeholder_update $LATEFILE COREPATH CORE_PLACEHOLDER "$COREPATH"
placeholder_update $MODPATH/system/$BIN/props LATEFILE LATE_PLACEHOLDER "$LATEHOLDER"
placeholder_update $MODPATH/system/$BIN/props COREPATH CORE_PLACEHOLDER "$COREPATH"
load_settings
devsim_update
print_files
ui_print ""
ui_print "- Make sure to have Busybox installed."
ui_print "- osm0sis' Busybox is recommended."
ui_print ""
log_handler "Installation complete."
# Checks for configuration file
CONFFILE=""
for ITEM in $CONFFILELST; do
if [ -s "$ITEM" ]; then
CONFFILE="$ITEM"
break
fi
done
if [ "$CONFFILE" ]; then
. $MODPATH/util_functions.sh
LOGFILE=$INSTLOG
MODPATH=$MOUNTPATH/$MODID
ui_print "- Configuration file found."
ui_print "- Installing..."
ui_print ""
config_file
fi
}

View File

@ -1,7 +1,7 @@
id=MagiskHidePropsConf
name=MagiskHide Props Config
version=v2.7.2-v42
versionCode=36
version=v3.0.0-v42
versionCode=37
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

Binary file not shown.