mirror of
https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf.git
synced 2024-10-02 21:02:09 +00:00
v5.3.1-v97
This commit is contained in:
parent
09842a1bfe
commit
d14318e687
36
README.md
36
README.md
@ -235,7 +235,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)
|
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 - v96_**
|
**_Current fingerprints list version - v97_**
|
||||||
|
|
||||||
|
|
||||||
## Please add support for device X
|
## Please add support for device X
|
||||||
@ -259,7 +259,7 @@ By default this feature will use an old devices model prop value, to make sure t
|
|||||||
|
|
||||||
It is also possible to pick a device manually from the list of fingerprints or set your own custom value.
|
It is also possible to pick a device manually from the list of fingerprints or set your own custom value.
|
||||||
|
|
||||||
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.
|
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 and picking an old enough device will also force a basic attestation.
|
||||||
|
|
||||||
Thanks to @Displax over at XDA-Developers for bringing this to everyones attention.
|
Thanks to @Displax over at XDA-Developers for bringing this to everyones attention.
|
||||||
|
|
||||||
@ -314,14 +314,16 @@ It's quite easy to change prop values with Magisk. With this module it's even ea
|
|||||||
|
|
||||||
A custom prop can also be set by running the `props` command with the prop name and value directly in the command prompt (no need for using the ui). See [Run options](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#run-options).
|
A custom prop can also be set by running the `props` command with the prop name and value directly in the command prompt (no need for using the ui). See [Run options](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#run-options).
|
||||||
|
|
||||||
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:
|
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 four 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).
|
- 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.
|
- 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.
|
- 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).
|
- 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.**
|
||||||
|
|
||||||
Note: post-fs-data runs earlier than late_start service.
|
It is also possible to set a delay for when the prop is supposed to be set. This is useful if a prop value is originally set late during boot, or even a while after the device has finished booting. Pick this option while setting a new prop or editing one that has already been set and enter the amount of seconds you want the delay to be. By default the script will wait for "Boot completed" to be broadcast before starting to count the delay. This option can be disabled on a per prop level if necessary.
|
||||||
|
**Note 1: A prop with a delay will automatically be set during the late_start service boot stage.
|
||||||
|
Note 2: The delay will usually be sligtly longer (usually counted in tenths of a second) than the entered value, due to small delays in execution of the scripts.**
|
||||||
|
|
||||||
## Removing prop values
|
## Removing prop values
|
||||||
If you would like to delete a certain prop value from your system, that can be done with the [Magisk resetprop tool](https://github.com/topjohnwu/Magisk/blob/master/docs/tools.md#resetprop). With this module you can easily set that up by adding whatever prop you want removed to the "Delete props" list. Be very careful when using this option, since removing the wrong prop may cause isses with your device. See ["Device issues because of the module"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#device-issues-because-of-the-module) below if this happens.
|
If you would like to delete a certain prop value from your system, that can be done with the [Magisk resetprop tool](https://github.com/topjohnwu/Magisk/blob/master/docs/tools.md#resetprop). With this module you can easily set that up by adding whatever prop you want removed to the "Delete props" list. Be very careful when using this option, since removing the wrong prop may cause isses with your device. See ["Device issues because of the module"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#device-issues-because-of-the-module) below if this happens.
|
||||||
@ -470,9 +472,9 @@ If you've had any help from me or this module, any kind of [donation](https://fo
|
|||||||
## Credits and mentions
|
## Credits and mentions
|
||||||
@topjohnwu @ XDA Developers, for Magisk.
|
@topjohnwu @ XDA Developers, for Magisk.
|
||||||
@Zackptg5, @veez21 and @jenslody @ XDA Developers, for help and inspiration.
|
@Zackptg5, @veez21 and @jenslody @ XDA Developers, for help and inspiration.
|
||||||
@Some_Random_Username, for all the OnePlus fingerprints.
|
@Some_Random_Username @ XDA Developers, for all the OnePlus fingerprints.
|
||||||
@Displax, for all the prints and the basic attestation workaround.
|
@Displax @ XDA Developers, for all the prints and the basic attestation workaround.
|
||||||
@ipdev, for being always helpful and bringing tons of fingerprints to the module list.
|
@ipdev @ XDA Developers, for being always helpful and bringing tons of fingerprints to the module list.
|
||||||
And of course, everyone that provides fingerprints for me to add to the list. The module wouldn't be the same without you guys. Thank you!
|
And of course, everyone that provides fingerprints for me to add to the list. The module wouldn't be the same without you guys. Thank you!
|
||||||
|
|
||||||
|
|
||||||
@ -486,6 +488,13 @@ Releases from v5.0.0 are recommended for Magisk v19.4+.
|
|||||||
Releases from v5.2.5 will only install on Magisk v20+.
|
Releases from v5.2.5 will only install on Magisk v20+.
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
### v5.3.1
|
||||||
|
- Added a feature to enable a delay for when custom props to be executed (during the late_start service boot stage). See the documentation for details.
|
||||||
|
- Fixed a possibly longstanding bug where props couldn't be set using the ui on some devices (would get stuck on "Working. Please wait...").
|
||||||
|
- Fixed some of the settings in an exported settings file not being set correctly.
|
||||||
|
- Minor adjustments and bugfixes (mainly stupid bugs introduced in the last update).
|
||||||
|
- Added fingerprint for Nokia 6.1, Samsung Galaxy S5, S10 and Tab S4 and Xiaomi Mi 10 Lite 5G. Updated fingerprints for Asus ZenFone Max M1, Google Pixel 2-4 (all variants) and Xiaomi Pocofone F1. List updated to v97.
|
||||||
|
|
||||||
### v5.3.0
|
### v5.3.0
|
||||||
- Added a new feature to force SafteyNet's bootloader check to use basic attestation rather than hardware. See the documentation for details.
|
- Added a new feature to force SafteyNet's bootloader check to use basic attestation rather than hardware. See the documentation for details.
|
||||||
- Added fingerprints for Asus ZenFone Max Pro M2, Fxtec Pro 1, Huawei Honor 6X BLN-L22, Lenovo Tab 4 8 Plus, LG V30, OnePlus 7, 7 Pro, 7T, 7T Pro, 8 and 8 Pro (Chinese variants), OnePlus Nord, Redmi Note 9 Pro, Samsung Galaxy A3 2016 and 2027 and Galaxy Tab 4 7.0, 8.0 and 10.1 and Xiaomi Redmi K20 Pro India. Updated fingerprints for OnePlus 7 Pro NR and 7 Pro NR Spr, 8 (almost all variants) and 8 Pro (all variants), Redmi Note 8 Pro and Xiaomi Mi A1, Mi A3 and Redmi 8. List updated to v95.
|
- Added fingerprints for Asus ZenFone Max Pro M2, Fxtec Pro 1, Huawei Honor 6X BLN-L22, Lenovo Tab 4 8 Plus, LG V30, OnePlus 7, 7 Pro, 7T, 7T Pro, 8 and 8 Pro (Chinese variants), OnePlus Nord, Redmi Note 9 Pro, Samsung Galaxy A3 2016 and 2027 and Galaxy Tab 4 7.0, 8.0 and 10.1 and Xiaomi Redmi K20 Pro India. Updated fingerprints for OnePlus 7 Pro NR and 7 Pro NR Spr, 8 (almost all variants) and 8 Pro (all variants), Redmi Note 8 Pro and Xiaomi Mi A1, Mi A3 and Redmi 8. List updated to v95.
|
||||||
@ -840,13 +849,13 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
|
|
||||||
|
|
||||||
## Current fingerprints list
|
## Current fingerprints list
|
||||||
### List v96
|
### List v97
|
||||||
- Asus Zenfone 2 Laser ASUS_Z00LD (6.0.1)
|
- Asus Zenfone 2 Laser ASUS_Z00LD (6.0.1)
|
||||||
- Asus Zenfone 3 Max ASUS_X00DD (7.1.1 & 8.1.0)
|
- Asus Zenfone 3 Max ASUS_X00DD (7.1.1 & 8.1.0)
|
||||||
- Asus Zenfone 4 Max ASUS_X00HD (7.1.1)
|
- Asus Zenfone 4 Max ASUS_X00HD (7.1.1)
|
||||||
- Asus ZenFone 5Z ASUS_Z01RD (9)
|
- Asus ZenFone 5Z ASUS_Z01RD (9)
|
||||||
- Asus Zenfone 6 ASUS_I01WD (9)
|
- Asus Zenfone 6 ASUS_I01WD (9)
|
||||||
- Asus Zenfone Max M1 ASUS_X00PD (8.0.0)
|
- Asus Zenfone Max M1 ASUS_X00PD (8.0.0 & 9 & 10)
|
||||||
- Asus Zenfone Max Pro M1 ASUS_X00TD (8.1.0)
|
- Asus Zenfone Max Pro M1 ASUS_X00TD (8.1.0)
|
||||||
- Asus Zenfone Max Pro M2 ASUS_X01BD (9)
|
- Asus Zenfone Max Pro M2 ASUS_X01BD (9)
|
||||||
- Asus ZenPad S 8.0 P01MA (6.0.1)
|
- Asus ZenPad S 8.0 P01MA (6.0.1)
|
||||||
@ -947,6 +956,7 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
- Nokia 6 TA-1025 (9)
|
- Nokia 6 TA-1025 (9)
|
||||||
- Nokia 6 TA-1033 (9)
|
- Nokia 6 TA-1033 (9)
|
||||||
- Nokia 6 TA-1039 (9)
|
- Nokia 6 TA-1039 (9)
|
||||||
|
- Nokia 6.1 (10)
|
||||||
- Nokia 6.1 Plus (9 & 10)
|
- Nokia 6.1 Plus (9 & 10)
|
||||||
- Nokia 6.2 (9)
|
- Nokia 6.2 (9)
|
||||||
- Nokia 7 Plus (9 & 10)
|
- Nokia 7 Plus (9 & 10)
|
||||||
@ -1047,7 +1057,8 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
- Samsung Galaxy S3 Neo GT-I9300I (4.4.4)
|
- Samsung Galaxy S3 Neo GT-I9300I (4.4.4)
|
||||||
- Samsung Galaxy S4 GT-I9505 (5.0.1)
|
- Samsung Galaxy S4 GT-I9505 (5.0.1)
|
||||||
- Samsung Galaxy S4 Active GT-I9295 (5.0.1)
|
- Samsung Galaxy S4 Active GT-I9295 (5.0.1)
|
||||||
- Samsung Galaxy S5 SM-G900H (6.0.1)
|
- Samsung Galaxy S5 SM-G900F (6.0.1)
|
||||||
|
- Samsung Galaxy S5 SM-G900H )(6.0.1)
|
||||||
- Samsung Galaxy S6 SM-G920F (7.0)
|
- Samsung Galaxy S6 SM-G920F (7.0)
|
||||||
- Samsung Galaxy S6 Edge SM-G925F (7.0)
|
- Samsung Galaxy S6 Edge SM-G925F (7.0)
|
||||||
- Samsung Galaxy S7 SM-G930F (8.0.0)
|
- Samsung Galaxy S7 SM-G930F (8.0.0)
|
||||||
@ -1056,6 +1067,7 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
- Samsung Galaxy S8 Plus SM-G955F (8.0.0)
|
- Samsung Galaxy S8 Plus SM-G955F (8.0.0)
|
||||||
- Samsung Galaxy S9 SM-G960F (8.0.0)
|
- Samsung Galaxy S9 SM-G960F (8.0.0)
|
||||||
- Samsung Galaxy S9 Plus SM-G965F (8.0.0)
|
- Samsung Galaxy S9 Plus SM-G965F (8.0.0)
|
||||||
|
- Samsung Galaxy S10 SM-G973F (10)
|
||||||
- Samsung Galaxy S10 Plus SM-G975F (10)
|
- Samsung Galaxy S10 Plus SM-G975F (10)
|
||||||
- Samsung Galaxy S10 Plus SM-G975U (9)
|
- Samsung Galaxy S10 Plus SM-G975U (9)
|
||||||
- Samsung Galaxy S10e SM-G970N (10)
|
- Samsung Galaxy S10e SM-G970N (10)
|
||||||
@ -1070,6 +1082,7 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
- Samsung Galaxt Tab A LTE SM-T597 (9)
|
- Samsung Galaxt Tab A LTE SM-T597 (9)
|
||||||
- Samsung Galaxy Tab S2 SM-T813 (7.0)
|
- Samsung Galaxy Tab S2 SM-T813 (7.0)
|
||||||
- Samsung Galaxy Tab S3 LTE SM-T825 (8.0.0)
|
- Samsung Galaxy Tab S3 LTE SM-T825 (8.0.0)
|
||||||
|
- Samsung Galaxy Tab S4 SM-T380 (10)
|
||||||
- Samsung Galaxy Tab S5e SM-T720 (9)
|
- Samsung Galaxy Tab S5e SM-T720 (9)
|
||||||
- Sony Xperia M (4.3)
|
- Sony Xperia M (4.3)
|
||||||
- Sony Xperia X F5121 (8.0.0)
|
- Sony Xperia X F5121 (8.0.0)
|
||||||
@ -1120,6 +1133,7 @@ Releases from v5.2.5 will only install on Magisk v20+.
|
|||||||
- Xiaomi Mi 9T Global (10)
|
- Xiaomi Mi 9T Global (10)
|
||||||
- Xiaomi Mi 9T Pro (9 & 10)
|
- Xiaomi Mi 9T Pro (9 & 10)
|
||||||
- Xiaomi Mi 10 (10)
|
- Xiaomi Mi 10 (10)
|
||||||
|
- Xiaomi Mi 10 Lite 5G (10)
|
||||||
- Xiaomi Mi 10 Pro (10)
|
- Xiaomi Mi 10 Pro (10)
|
||||||
- Xiaomi Mi A1 (7.1.2 & 8.0.0 & 8.1.0 & 9)
|
- Xiaomi Mi A1 (7.1.2 & 8.0.0 & 8.1.0 & 9)
|
||||||
- Xiaomi Mi A2 (8.1.0 & 9 & 10)
|
- Xiaomi Mi A2 (8.1.0 & 9 & 10)
|
||||||
|
@ -4,17 +4,18 @@
|
|||||||
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
|
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
|
||||||
# Licence: MIT
|
# Licence: MIT
|
||||||
|
|
||||||
PRINTSV=96
|
PRINTSV=97
|
||||||
PRINTSTRANSF=520
|
PRINTSTRANSF=520
|
||||||
|
|
||||||
# Certified fingerprints
|
# Certified fingerprints
|
||||||
|
# Current fingerprints count=475
|
||||||
PRINTSLIST="
|
PRINTSLIST="
|
||||||
Asus ZenFone 2 Laser ASUS_Z00LD (6.0.1):Asus:ASUS_Z00LD=asus/WW_Z00L/ASUS_Z00L_63:6.0.1/MMB29P/WW_user_21.40.1220.2196_20180308:user/release-keys
|
Asus ZenFone 2 Laser ASUS_Z00LD (6.0.1):Asus:ASUS_Z00LD=asus/WW_Z00L/ASUS_Z00L_63:6.0.1/MMB29P/WW_user_21.40.1220.2196_20180308:user/release-keys
|
||||||
Asus ZenFone 3 Max ASUS_X00DD (7.1.1 & 8.1.0):Asus:ASUS_X00DD=asus/WW_Phone/ASUS_X00DD:7.1.1/NMF26F/14.0200.1712.347-20171214:user/release-keys;asus/WW_Phone/ASUS_X00DD:8.1.0/OPM1.171019.011/15.0200.1812.503-0:user/release-keys__2018-12-05
|
Asus ZenFone 3 Max ASUS_X00DD (7.1.1 & 8.1.0):Asus:ASUS_X00DD=asus/WW_Phone/ASUS_X00DD:7.1.1/NMF26F/14.0200.1712.347-20171214:user/release-keys;asus/WW_Phone/ASUS_X00DD:8.1.0/OPM1.171019.011/15.0200.1812.503-0:user/release-keys__2018-12-05
|
||||||
Asus ZenFone 4 Max ASUS_X00HD (7.1.1):Asus:ASUS_X00HD=asus/WW_Phone/ASUS_X00HD_4:7.1.1/NMF26F/14.2016.1801.372-20180119:user/release-keys
|
Asus ZenFone 4 Max ASUS_X00HD (7.1.1):Asus:ASUS_X00HD=asus/WW_Phone/ASUS_X00HD_4:7.1.1/NMF26F/14.2016.1801.372-20180119:user/release-keys
|
||||||
Asus ZenFone 5Z ASUS_Z01RD (9):Asus:ASUS_Z01RD=asus/WW_Z01RD/ASUS_Z01R_1:9/PPR1.180610.009/WW_90.11.162.72_20190531:user/release-keys__2019-05-01
|
Asus ZenFone 5Z ASUS_Z01RD (9):Asus:ASUS_Z01RD=asus/WW_Z01RD/ASUS_Z01R_1:9/PPR1.180610.009/WW_90.11.162.72_20190531:user/release-keys__2019-05-01
|
||||||
Asus ZenFone 6 ASUS_I01WD (9):Asus:ASUS_I01WD=asus/WW_I01WD/ASUS_I01WD:9/PPR2.181005.003/16.1220.1909.193-0:user/release-keys__2019-09-01
|
Asus ZenFone 6 ASUS_I01WD (9):Asus:ASUS_I01WD=asus/WW_I01WD/ASUS_I01WD:9/PPR2.181005.003/16.1220.1909.193-0:user/release-keys__2019-09-01
|
||||||
Asus ZenFone Max M1 ASUS_X00PD (8.0.0):Asus:ASUS_X00PD=asus/WW_X00PD/ASUS_X00P_4:8.0.0/OPR1.170623.032/15.00.1907.103:user/release-keys__2019-07-05
|
Asus ZenFone Max M1 ASUS_X00PD (8.0.0 & 9 & 10):Asus:ASUS_X00PD=asus/WW_X00PD/ASUS_X00P_1:8.0.0/OPR1.170623.032/15.00.2007.122:user/release-keys__2020-07-05;asus/WW_X00PD/ASUS_X00P_1:9/PPR1.180610.009/16.00.1906.411:user/release-keys__2019-06-05;asus/WW_X00PD/ASUS_X00P_1:10/QKQ1.191002.002/17.00.2003.23-20200401:user/release-keys__2020-03-05
|
||||||
Asus ZenFone Max Pro M1 ASUS_X00TD (8.1.0):Asus:ASUS_X00TD=asus/RU_X00TD/ASUS_X00T_6:8.1.0/OPM1/15.2016.1902.340-20190216:user/release-keys__2019-02-01
|
Asus ZenFone Max Pro M1 ASUS_X00TD (8.1.0):Asus:ASUS_X00TD=asus/RU_X00TD/ASUS_X00T_6:8.1.0/OPM1/15.2016.1902.340-20190216:user/release-keys__2019-02-01
|
||||||
Asus ZenFone Max Pro M2 ASUS_X01BD (9):asus:ASUS_X01BD=asus/WW_X01BD/ASUS_X01BD_1:9/PKQ1/16.2017.2007.094-20200705:user/release-keys__2020-07-05
|
Asus ZenFone Max Pro M2 ASUS_X01BD (9):asus:ASUS_X01BD=asus/WW_X01BD/ASUS_X01BD_1:9/PKQ1/16.2017.2007.094-20200705:user/release-keys__2020-07-05
|
||||||
Asus ZenPad S 8.0 P01MA (6.0.1):Asus:P01MA=asus/WW_P01M/P01M_3:6.0.1/MMB29P/WW_P01M-V5.6.0-20170608:user/release-keys
|
Asus ZenPad S 8.0 P01MA (6.0.1):Asus:P01MA=asus/WW_P01M/P01M_3:6.0.1/MMB29P/WW_P01M-V5.6.0-20170608:user/release-keys
|
||||||
@ -38,14 +39,14 @@ Google Nexus 10 (5.1.1):Samsung:Nexus 10=google/mantaray/manta:5.1.1/LMY49J/2640
|
|||||||
Google Nexus Player (5.0 & 5.1 & 5.1.1 & 6.0.1 & 7.0 & 7.1.1 & 7.1.2 & 8.0.0):Asus:Nexus Player=google/fugu/fugu:5.0/LRX21V/1586762:user/release-keys;google/fugu/fugu:5.1/LMY47D/1743759:user/release-keys;google/fugu/fugu:5.1.1/LMY48N/2167335:user/release-keys;google/fugu/fugu:6.0.1/MOB30W/3031100:user/release-keys;google/fugu/fugu:7.0/NRD91N/3318108:user/release-keys;google/fugu/fugu:7.1.1/NMF27D/3783773:user/release-keys;google/fugu/fugu:7.1.2/N2G48C/4104010:user/release-keys;google/fugu/fugu:8.0.0/OPR2.170623.027/4397545:user/release-keys
|
Google Nexus Player (5.0 & 5.1 & 5.1.1 & 6.0.1 & 7.0 & 7.1.1 & 7.1.2 & 8.0.0):Asus:Nexus Player=google/fugu/fugu:5.0/LRX21V/1586762:user/release-keys;google/fugu/fugu:5.1/LMY47D/1743759:user/release-keys;google/fugu/fugu:5.1.1/LMY48N/2167335:user/release-keys;google/fugu/fugu:6.0.1/MOB30W/3031100:user/release-keys;google/fugu/fugu:7.0/NRD91N/3318108:user/release-keys;google/fugu/fugu:7.1.1/NMF27D/3783773:user/release-keys;google/fugu/fugu:7.1.2/N2G48C/4104010:user/release-keys;google/fugu/fugu:8.0.0/OPR2.170623.027/4397545:user/release-keys
|
||||||
Google Pixel (7.1 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0 & 9 & 10):Google:Pixel=google/sailfish/sailfish:7.1/NDE63V/3389651:user/release-keys;google/sailfish/sailfish:7.1.1/NOF27D/3757586:user/release-keys;google/sailfish/sailfish:7.1.2/NJH47F/4146041:user/release-keys;google/sailfish/sailfish:8.0.0/OPR3.170623.013/4397526:user/release-keys;google/sailfish/sailfish:8.1.0/OPM4.171019.021.P1/4820305:user/release-keys__2018-07-05;google/sailfish/sailfish:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/sailfish/sailfish:10/QP1A.191005.007.A3/5972272:user/release-keys__2019-10-06
|
Google Pixel (7.1 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0 & 9 & 10):Google:Pixel=google/sailfish/sailfish:7.1/NDE63V/3389651:user/release-keys;google/sailfish/sailfish:7.1.1/NOF27D/3757586:user/release-keys;google/sailfish/sailfish:7.1.2/NJH47F/4146041:user/release-keys;google/sailfish/sailfish:8.0.0/OPR3.170623.013/4397526:user/release-keys;google/sailfish/sailfish:8.1.0/OPM4.171019.021.P1/4820305:user/release-keys__2018-07-05;google/sailfish/sailfish:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/sailfish/sailfish:10/QP1A.191005.007.A3/5972272:user/release-keys__2019-10-06
|
||||||
Google Pixel XL (7.1 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0 & 9 & 10):Google:Pixel XL=google/marlin/marlin:7.1/NDE63V/3389651:user/release-keys;google/marlin/marlin:7.1.1/NOF27D/3757586:user/release-keys;google/marlin/marlin:7.1.2/NJH47F/4146041:user/release-keys;google/marlin/marlin:8.0.0/OPR3.170623.013/4397526:user/release-keys;google/marlin/marlin:8.1.0/OPM4.171019.021.P1/4820305:user/release-keys__2018-07-05;google/marlin/marlin:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/marlin/marlin:10/QP1A.191005.007.A3/5972272:user/release-keys__2019-10-06
|
Google Pixel XL (7.1 & 7.1.1 & 7.1.2 & 8.0.0 & 8.1.0 & 9 & 10):Google:Pixel XL=google/marlin/marlin:7.1/NDE63V/3389651:user/release-keys;google/marlin/marlin:7.1.1/NOF27D/3757586:user/release-keys;google/marlin/marlin:7.1.2/NJH47F/4146041:user/release-keys;google/marlin/marlin:8.0.0/OPR3.170623.013/4397526:user/release-keys;google/marlin/marlin:8.1.0/OPM4.171019.021.P1/4820305:user/release-keys__2018-07-05;google/marlin/marlin:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/marlin/marlin:10/QP1A.191005.007.A3/5972272:user/release-keys__2019-10-06
|
||||||
Google Pixel 2 (8.0.0 & 8.1.0 & 9 & 10):Google:Pixel 2=google/walleye/walleye:8.0.0/OPD1.170816.025/4424668:user/release-keys;google/walleye/walleye:8.1.0/OPM2.171026.006.G1/4820017:user/release-keys__2018-07-05;google/walleye/walleye:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/walleye/walleye:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 2 (8.0.0 & 8.1.0 & 9 & 10):Google:Pixel 2=google/walleye/walleye:8.0.0/OPD1.170816.025/4424668:user/release-keys;google/walleye/walleye:8.1.0/OPM2.171026.006.G1/4820017:user/release-keys__2018-07-05;google/walleye/walleye:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/walleye/walleye:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 2 XL (8.0.0 & 8.1.0 & 9 & 10):Google:Pixel 2 XL=google/taimen/taimen:8.0.0/OPD1.170816.025/4424668:user/release-keys;google/taimen/taimen:8.1.0/OPM2.171026.006.H1/4833802:user/release-keys__2018-07-05;google/taimen/taimen:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/taimen/taimen:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 2 XL (8.0.0 & 8.1.0 & 9 & 10):Google:Pixel 2 XL=google/taimen/taimen:8.0.0/OPD1.170816.025/4424668:user/release-keys;google/taimen/taimen:8.1.0/OPM2.171026.006.H1/4833802:user/release-keys__2018-07-05;google/taimen/taimen:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/taimen/taimen:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 3 (9 & 10):Google:Pixel 3=google/blueline/blueline:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/blueline/blueline:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 3 (9 & 10):Google:Pixel 3=google/blueline/blueline:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/blueline/blueline:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 3 XL (9 & 10):Google:Pixel 3 XL=google/crosshatch/crosshatch:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/crosshatch/crosshatch:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 3 XL (9 & 10):Google:Pixel 3 XL=google/crosshatch/crosshatch:9/PQ3A.190801.002/5670241:user/release-keys__2019-08-01;google/crosshatch/crosshatch:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 3a (9 & 10):Google:Pixel 3a=google/sargo/sargo:9/PQ3B.190801.002/5674421:user/release-keys__2019-08-01;google/sargo/sargo:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 3a (9 & 10):Google:Pixel 3a=google/sargo/sargo:9/PQ3B.190801.002/5674421:user/release-keys__2019-08-01;google/sargo/sargo:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 3a XL (9 & 10):Google:Pixel 3a XL=google/bonito/bonito:9/PQ3B.190801.002/5674421:user/release-keys__2019-08-01;google/bonito/bonito:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 3a XL (9 & 10):Google:Pixel 3a XL=google/bonito/bonito:9/PQ3B.190801.002/5674421:user/release-keys__2019-08-01;google/bonito/bonito:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 4 (10):Google:Pixel 4=google/flame/flame:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 4 (10):Google:Pixel 4=google/flame/flame:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-05
|
||||||
Google Pixel 4 XL (10):Google:Pixel 4 XL=google/coral/coral:10/QQ3A.200705.002/6506677:user/release-keys__2020-07-05
|
Google Pixel 4 XL (10):Google:Pixel 4 XL=google/coral/coral:10/QQ3A.200805.001/6578210:user/release-keys__2020-08-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
|
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 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
|
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
|
||||||
@ -115,6 +116,7 @@ Nokia 6 TA-1021 (9):Nokia:TA-1021=Nokia/TA-1021_00WW/PLE:9/PKQ1.181105.001/00WW_
|
|||||||
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
|
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
|
||||||
Nokia 6 TA-1033 (9):Nokia:TA-1033=Nokia/TA-1033_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01
|
Nokia 6 TA-1033 (9):Nokia:TA-1033=Nokia/TA-1033_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01
|
||||||
Nokia 6 TA-1039 (9):Nokia:TA-1039=Nokia/TA-1039_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01
|
Nokia 6 TA-1039 (9):Nokia:TA-1039=Nokia/TA-1039_00WW/PLE:9/PKQ1.181105.001/00WW_6_19C:user/release-keys__2020-01-01
|
||||||
|
Nokia 6.1 (10):Nokia:Nokia 6.1=Nokia/Plate2_00WW/PL2_sprout:10/QKQ1.190828.002/00WW_4_15E:user/release-keys__2020-06-01
|
||||||
Nokia 6.1 Plus (9 & 10):Nokia:Nokia 6.1 Plus=Nokia/Dragon_00WW/DRG_sprout:9/PPR1.180610.011/00WW_3_54J:user/release-keys__2019-08-01;Nokia/Dragon_00WW/DRG_sprout:10/QKQ1.190828.002/00WW_4_15C:user/release-keys__2020-05-01
|
Nokia 6.1 Plus (9 & 10):Nokia:Nokia 6.1 Plus=Nokia/Dragon_00WW/DRG_sprout:9/PPR1.180610.011/00WW_3_54J:user/release-keys__2019-08-01;Nokia/Dragon_00WW/DRG_sprout:10/QKQ1.190828.002/00WW_4_15C:user/release-keys__2020-05-01
|
||||||
Nokia 6.2 (9):Nokia:Nokia 6.2=Nokia/Starlord_00WW/SLD_sprout:9/PKQ1.190118.001/00WW_1_170:user/release-keys__2020-01-05
|
Nokia 6.2 (9):Nokia:Nokia 6.2=Nokia/Starlord_00WW/SLD_sprout:9/PKQ1.190118.001/00WW_1_170:user/release-keys__2020-01-05
|
||||||
Nokia 7 Plus (9 & 10):Nokia:Nokia 7 plus=Nokia/Onyx_00WW/B2N_sprout:9/PPR1.180610.011/00WW_3_53B:user/release-keys__2019-05-01;Nokia/Onyx_00WW/B2N_sprout:10/QKQ1.190828.002/00WW_4_15D:user/release-keys__2020-05-01
|
Nokia 7 Plus (9 & 10):Nokia:Nokia 7 plus=Nokia/Onyx_00WW/B2N_sprout:9/PPR1.180610.011/00WW_3_53B:user/release-keys__2019-05-01;Nokia/Onyx_00WW/B2N_sprout:10/QKQ1.190828.002/00WW_4_15D:user/release-keys__2020-05-01
|
||||||
@ -215,6 +217,7 @@ Samsung Galaxy Note 10.1 2014 SM-P600 (5.1.1):Samsung:SM-P600=samsung/lt03wifixx
|
|||||||
Samsung Galaxy S3 Neo GT-I9300I (4.4.4):Samsung:GT-I9300I=samsung/s3ve3gdd/s3ve3gdd:4.4.4/KTU84P/I9300IDDUBQE2:user/release-keys
|
Samsung Galaxy S3 Neo GT-I9300I (4.4.4):Samsung:GT-I9300I=samsung/s3ve3gdd/s3ve3gdd:4.4.4/KTU84P/I9300IDDUBQE2:user/release-keys
|
||||||
Samsung Galaxy S4 GT-I9505 (5.0.1):Samsung:GT-I9505=samsung/jfltexx/jflte:5.0.1/LRX22C/I9505XXUHPF4:user/release-keys
|
Samsung Galaxy S4 GT-I9505 (5.0.1):Samsung:GT-I9505=samsung/jfltexx/jflte:5.0.1/LRX22C/I9505XXUHPF4:user/release-keys
|
||||||
Samsung Galaxy S4 Active GT-I9295 (5.0.1):Samsung:GT-I9295=samsung/jactiveltexx/jactivelte:5.0.1/LRX22C/I9295XXSDQD6:user/release-keys
|
Samsung Galaxy S4 Active GT-I9295 (5.0.1):Samsung:GT-I9295=samsung/jactiveltexx/jactivelte:5.0.1/LRX22C/I9295XXSDQD6:user/release-keys
|
||||||
|
Samsung Galaxy S5 SM-G900F (6.0.1):Samsung:SM-G900F=samsung/kltexx/klte:6.0.1/MMB29M/G900FXXU1CRH1:user/release-keys
|
||||||
Samsung Galaxy S5 SM-G900H (6.0.1):Samsung:SM-G900H=samsung/k3gxx/k3g:6.0.1/MMB29K/G900HXXU1CPF2:user/release-keys
|
Samsung Galaxy S5 SM-G900H (6.0.1):Samsung:SM-G900H=samsung/k3gxx/k3g:6.0.1/MMB29K/G900HXXU1CPF2:user/release-keys
|
||||||
Samsung Galaxy S6 SM-G920F (7.0):Samsung:SM-G920F=samsung/zerofltexx/zeroflte:7.0/NRD90M/G920FXXS5EQL1:user/release-keys
|
Samsung Galaxy S6 SM-G920F (7.0):Samsung:SM-G920F=samsung/zerofltexx/zeroflte:7.0/NRD90M/G920FXXS5EQL1:user/release-keys
|
||||||
Samsung Galaxy S6 Edge SM-G925F (7.0):Samsung:SM-G925F=samsung/zeroltexx/zerolte:7.0/NRD90M/G925FXXS5EQL1:user/release-keys
|
Samsung Galaxy S6 Edge SM-G925F (7.0):Samsung:SM-G925F=samsung/zeroltexx/zerolte:7.0/NRD90M/G925FXXS5EQL1:user/release-keys
|
||||||
@ -224,6 +227,7 @@ Samsung Galaxy S8 SM-G950F (8.0.0):Samsung:SM-G950F=samsung/dreamltexx/dreamlte:
|
|||||||
Samsung Galaxy S8 Plus SM-G955F (8.0.0):Samsung:SM-G955F=samsung/dream2ltexx/dream2lte:8.0.0/R16NW/G955FXXU1CRC7:user/release-keys
|
Samsung Galaxy S8 Plus SM-G955F (8.0.0):Samsung:SM-G955F=samsung/dream2ltexx/dream2lte:8.0.0/R16NW/G955FXXU1CRC7:user/release-keys
|
||||||
Samsung Galaxy S9 SM-G960F (8.0.0):Samsung:SM-G960F=samsung/starltexx/starlte:8.0.0/R16NW/G960FXXU1ARCC:user/release-keys
|
Samsung Galaxy S9 SM-G960F (8.0.0):Samsung:SM-G960F=samsung/starltexx/starlte:8.0.0/R16NW/G960FXXU1ARCC:user/release-keys
|
||||||
Samsung Galaxy S9 Plus SM-G965F (8.0.0):Samsung:SM-G965F=samsung/star2ltexx/star2lte:8.0.0/R16NW/G965FXXU1ARCC:user/release-keys
|
Samsung Galaxy S9 Plus SM-G965F (8.0.0):Samsung:SM-G965F=samsung/star2ltexx/star2lte:8.0.0/R16NW/G965FXXU1ARCC:user/release-keys
|
||||||
|
Samsung Galaxy S10 SM-G973F (10):Samsung:SM-G973F=samsung/beyond1ltexx/beyond1:10/QP1A.190711.020/G973FXXS3BSL4:user/release-keys__2020-01-01
|
||||||
Samsung Galaxy S10 Plus SM-G975F (10):Samsung:SM-G975F=samsung/beyond2ltexx/beyond2:10/QP1A.190711.020/G975FXXU3BSKO:user/release-keys__2019-12-01
|
Samsung Galaxy S10 Plus SM-G975F (10):Samsung:SM-G975F=samsung/beyond2ltexx/beyond2:10/QP1A.190711.020/G975FXXU3BSKO:user/release-keys__2019-12-01
|
||||||
Samsung Galaxy S10 Plus SM-G975U (9):Samsung:SM-G975U=samsung/beyond2qlteue/beyond2q:9/PPR1.180610.011/G975U1UEU1ASD3:user/release-keys__2019-03-01
|
Samsung Galaxy S10 Plus SM-G975U (9):Samsung:SM-G975U=samsung/beyond2qlteue/beyond2q:9/PPR1.180610.011/G975U1UEU1ASD3:user/release-keys__2019-03-01
|
||||||
Samsung Galaxy S10e SM-G970N (10):Samsung:SM-G970N=samsung/beyond0lteks/beyond0:10/QP1A.190711.020/G970NKSU4CTC9:user/release-keys__2020-04-01
|
Samsung Galaxy S10e SM-G970N (10):Samsung:SM-G970N=samsung/beyond0lteks/beyond0:10/QP1A.190711.020/G970NKSU4CTC9:user/release-keys__2020-04-01
|
||||||
@ -238,6 +242,7 @@ Samsung Galaxt Tab A LTE SM-T595 (9):Samsung:SM-T595=samsung/gta2xlltexx/gta2xll
|
|||||||
Samsung Galaxt Tab A LTE SM-T597 (9):Samsung:SM-T597=samsung/gta2xlltespr/gta2xlltespr:9/PPR1.180610.011/T597PVPU2BSH7:user/release-keys__2019-08-01
|
Samsung Galaxt Tab A LTE SM-T597 (9):Samsung:SM-T597=samsung/gta2xlltespr/gta2xlltespr:9/PPR1.180610.011/T597PVPU2BSH7:user/release-keys__2019-08-01
|
||||||
Samsung Galaxy Tab S2 SM-T813 (7.0):samsung:SM-T813=samsung/gts210vewifixx/gts210vewifi:7.0/NRD90M/T813XXS2BSJ3:user/release-keys__2019-08-01
|
Samsung Galaxy Tab S2 SM-T813 (7.0):samsung:SM-T813=samsung/gts210vewifixx/gts210vewifi:7.0/NRD90M/T813XXS2BSJ3:user/release-keys__2019-08-01
|
||||||
Samsung Galaxy Tab S3 LTE SM-T825 (8.0.0):Samsung:SM-T825=samsung/gts3lltexx/gts3llte:8.0.0/R16NW/T825XXU2BRL2:user/release-keys__2018-12-01
|
Samsung Galaxy Tab S3 LTE SM-T825 (8.0.0):Samsung:SM-T825=samsung/gts3lltexx/gts3llte:8.0.0/R16NW/T825XXU2BRL2:user/release-keys__2018-12-01
|
||||||
|
Samsung Galaxy Tab S4 SM-T830 (10):samsung:SM-T830=samsung/gts4lwifixx/gts4lwifi:10/QP1A.190711.020/T830XXU4CTF5:user/release-keys__2020-06-01
|
||||||
Samsung Galaxy Tab S5e SM-T720 (9):samsung:SM-T720=samsung/gts4lvwifixx/gts4lvwifi:9/PPR1.180610.011/T720XXS1ASL3:user/release-keys__2020-01-01
|
Samsung Galaxy Tab S5e SM-T720 (9):samsung:SM-T720=samsung/gts4lvwifixx/gts4lvwifi:9/PPR1.180610.011/T720XXS1ASL3:user/release-keys__2020-01-01
|
||||||
Sony Xperia M (4.3):Sony:C1905=Sony/C1905/C1905:4.3/15.4.A.1.9/eng.user.20140509.125022:user/release-keys
|
Sony Xperia M (4.3):Sony:C1905=Sony/C1905/C1905:4.3/15.4.A.1.9/eng.user.20140509.125022:user/release-keys
|
||||||
Sony Xperia X F5121 (8.0.0):Sony:F5121=Sony/F5121/F5121:8.0.0/34.4.A.2.118/1631208121:user/release-keys__2018-09-01
|
Sony Xperia X F5121 (8.0.0):Sony:F5121=Sony/F5121/F5121:8.0.0/34.4.A.2.118/1631208121:user/release-keys__2018-09-01
|
||||||
@ -288,6 +293,7 @@ Xiaomi Mi 9T European (9 & 10):Xiaomi:Mi 9T=Xiaomi/davinci_eea/davinci:9/PKQ1.19
|
|||||||
Xiaomi Mi 9T Global (10):Xiaomi:Mi 9T=Xiaomi/davinci/davinci:10/QKQ1.190825.002/V11.0.1.0.QFJMIXM:user/release-keys__2019-12-01
|
Xiaomi Mi 9T Global (10):Xiaomi:Mi 9T=Xiaomi/davinci/davinci:10/QKQ1.190825.002/V11.0.1.0.QFJMIXM:user/release-keys__2019-12-01
|
||||||
Xiaomi Mi 9T Pro (9 & 10):Xiaomi:Mi 9T Pro=Xiaomi/raphael/raphael:9/PKQ1.181121.001/V10.3.14.0.PFKCNXM:user/release-keys__2019-06-01;Xiaomi/raphael/raphael:10/QKQ1.190825.002/V11.0.1.0.QFKMIXM:user/release-keys__2019-10-01
|
Xiaomi Mi 9T Pro (9 & 10):Xiaomi:Mi 9T Pro=Xiaomi/raphael/raphael:9/PKQ1.181121.001/V10.3.14.0.PFKCNXM:user/release-keys__2019-06-01;Xiaomi/raphael/raphael:10/QKQ1.190825.002/V11.0.1.0.QFKMIXM:user/release-keys__2019-10-01
|
||||||
Xiaomi Mi 10 (10):Xiaomi:Mi 10=Xiaomi/umi/umi:10/QKQ1.191117.002/V11.0.15.0.QJBCNXM:user/release-keys__2020-02-01
|
Xiaomi Mi 10 (10):Xiaomi:Mi 10=Xiaomi/umi/umi:10/QKQ1.191117.002/V11.0.15.0.QJBCNXM:user/release-keys__2020-02-01
|
||||||
|
Xiaomi Mi 10 Lite 5G (10):Xiaomi:M2002J9G=Xiaomi/monet_eea/monet:10/QKQ1.191222.002/V12.0.1.0.QJIEUXM:user/release-keys__2020-06-01
|
||||||
Xiaomi Mi 10 Pro (10):Xiaomi:Mi 10 Pro=Xiaomi/cmi/cmi:10/QKQ1.191117.002/V11.0.13.0.QJACNXM:user/release-keys__2020-02-01
|
Xiaomi Mi 10 Pro (10):Xiaomi:Mi 10 Pro=Xiaomi/cmi/cmi:10/QKQ1.191117.002/V11.0.13.0.QJACNXM:user/release-keys__2020-02-01
|
||||||
Xiaomi Mi A1 (7.1.2 & 8.0.0 & 8.1.0 & 9):Xiaomi:Mi A1=xiaomi/tissot/tissot_sprout:7.1.2/N2G47H/7.12.19:user/release-keys;xiaomi/tissot/tissot_sprout:8.0.0/OPR1.170623.026/V.9.5.10.0.ODHMIFA:user/release-keys__2018-04-01;xiaomi/tissot/tissot_sprout:8.1.0/OPM1.171019.026/V9.6.8.0.ODHMIFE:user/release-keys__2018-11-01;xiaomi/tissot/tissot_sprout:9/PKQ1.180917.001/V10.0.23.0.PDHMIXM:user/release-keys__2020-07-01
|
Xiaomi Mi A1 (7.1.2 & 8.0.0 & 8.1.0 & 9):Xiaomi:Mi A1=xiaomi/tissot/tissot_sprout:7.1.2/N2G47H/7.12.19:user/release-keys;xiaomi/tissot/tissot_sprout:8.0.0/OPR1.170623.026/V.9.5.10.0.ODHMIFA:user/release-keys__2018-04-01;xiaomi/tissot/tissot_sprout:8.1.0/OPM1.171019.026/V9.6.8.0.ODHMIFE:user/release-keys__2018-11-01;xiaomi/tissot/tissot_sprout:9/PKQ1.180917.001/V10.0.23.0.PDHMIXM:user/release-keys__2020-07-01
|
||||||
Xiaomi Mi A2 (8.1.0 & 9 & 10):Xiaomi:Mi A2=xiaomi/jasmine/jasmine_sprout:8.1.0/OPM1.171019.011/V9.6.17.0.ODIMIFE:user/release-keys__2018-11-05;xiaomi/jasmine/jasmine_sprout:9/PKQ1.180904.001/V10.0.18.0.PDIMIXM:user/release-keys__2019-12-05;xiaomi/jasmine/jasmine_sprout:10/QKQ1.190910.002/V11.0.11.0.QDIMIXM:user/release-keys__2020-06-01
|
Xiaomi Mi A2 (8.1.0 & 9 & 10):Xiaomi:Mi A2=xiaomi/jasmine/jasmine_sprout:8.1.0/OPM1.171019.011/V9.6.17.0.ODIMIFE:user/release-keys__2018-11-05;xiaomi/jasmine/jasmine_sprout:9/PKQ1.180904.001/V10.0.18.0.PDIMIXM:user/release-keys__2019-12-05;xiaomi/jasmine/jasmine_sprout:10/QKQ1.190910.002/V11.0.11.0.QDIMIXM:user/release-keys__2020-06-01
|
||||||
@ -305,7 +311,7 @@ Xiaomi Mi Note 3 (8.1.0):Xiaomi:Mi Note 3=Xiaomi/jason/jason:8.1.0/OPM1.171019.0
|
|||||||
Xiaomi Mi Note 10 European (9):Xiaomi:Mi Note 10=Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.11.0.PFDEUXM:user/release-keys__2019-11-01
|
Xiaomi Mi Note 10 European (9):Xiaomi:Mi Note 10=Xiaomi/tucana_eea/tucana:9/PKQ1.190302.001/V11.0.11.0.PFDEUXM:user/release-keys__2019-11-01
|
||||||
Xiaomi Mi Pad (4.4.4):Xiaomi:MI PAD=Xiaomi/mocha/mocha:4.4.4/KTU84P/V7.5.2.0.KXFMIDE:user/release-keys
|
Xiaomi Mi Pad (4.4.4):Xiaomi:MI PAD=Xiaomi/mocha/mocha:4.4.4/KTU84P/V7.5.2.0.KXFMIDE:user/release-keys
|
||||||
Xiaomi Mi Pad 4 (8.1.0):Xiaomi:MI PAD 4=Xiaomi/clover/clover:8.1.0/OPM1.171019.019/V10.1.1.0.ODJCNFI:user/release-keys__2018-10-01
|
Xiaomi Mi Pad 4 (8.1.0):Xiaomi:MI PAD 4=Xiaomi/clover/clover:8.1.0/OPM1.171019.019/V10.1.1.0.ODJCNFI:user/release-keys__2018-10-01
|
||||||
Xiaomi Pocophone F1 (9 & 10):Xiaomi:POCOPHONE F1=Xiaomi/beryllium/beryllium:9/PKQ1.180729.001/V11.0.5.0.PEJMIXM:user/release-keys__2019-10-01;Xiaomi/beryllium/beryllium:10/QKQ1.190828.002/V11.0.8.0.QEJMIXM:user/release-keys__2020-04-01
|
Xiaomi Pocophone F1 (9 & 10):Xiaomi:POCOPHONE F1=Xiaomi/beryllium/beryllium:9/PKQ1.180729.001/V11.0.5.0.PEJMIXM:user/release-keys__2019-10-01;Xiaomi/beryllium/beryllium:10/QKQ1.190828.002/V11.0.9.0.QEJMIXM:user/release-keys__2020-06-01
|
||||||
Xiaomi Redmi 3/3 Pro (5.1.1):Xiaomi:Redmi 3=Xiaomi/ido/ido:5.1.1/LMY47V/V9.6.2.0.LAIMIFD:user/release-keys
|
Xiaomi Redmi 3/3 Pro (5.1.1):Xiaomi:Redmi 3=Xiaomi/ido/ido:5.1.1/LMY47V/V9.6.2.0.LAIMIFD:user/release-keys
|
||||||
Xiaomi Redmi 3S/X Prime (6.0.1):Xiaomi:Redmi 3S=Xiaomi/land/land:6.0.1/MMB29M/V9.5.1.0.MALMIFA:user/release-keys
|
Xiaomi Redmi 3S/X Prime (6.0.1):Xiaomi:Redmi 3S=Xiaomi/land/land:6.0.1/MMB29M/V9.5.1.0.MALMIFA:user/release-keys
|
||||||
Xiaomi Redmi 4 Pro (6.0.1):Xiaomi:Redmi 4=Xiaomi/markw/markw:6.0.1/MMB29M/V9.5.3.0.MBEMIFA:user/release-keys
|
Xiaomi Redmi 4 Pro (6.0.1):Xiaomi:Redmi 4=Xiaomi/markw/markw:6.0.1/MMB29M/V9.5.3.0.MBEMIFA:user/release-keys
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# =================================================================
|
# =================================================================
|
||||||
|
|
||||||
# Required module version (or newer). Do not edit this value!
|
# Required module version (or newer). Do not edit this value!
|
||||||
CONFTRANSF=520
|
CONFTRANSF=531
|
||||||
|
|
||||||
# Device fingerprint
|
# Device fingerprint
|
||||||
CONFFINGERPRINT=""
|
CONFFINGERPRINT=""
|
||||||
@ -17,6 +17,10 @@ CONFVENDPRINT=false
|
|||||||
CONFPRINTBOOT=default
|
CONFPRINTBOOT=default
|
||||||
CONFPATCHBOOT=late
|
CONFPATCHBOOT=late
|
||||||
|
|
||||||
|
# Force BASIC attestation
|
||||||
|
CONFBASICATTEST=false
|
||||||
|
CONFBASICATTCUST=""
|
||||||
|
|
||||||
# Device simulation
|
# Device simulation
|
||||||
CONFDEVSIM=false
|
CONFDEVSIM=false
|
||||||
CONFBRAND=false
|
CONFBRAND=false
|
||||||
@ -44,6 +48,7 @@ CONFSELINUX=""
|
|||||||
CONFPROPS=""
|
CONFPROPS=""
|
||||||
CONFPROPSPOST=""
|
CONFPROPSPOST=""
|
||||||
CONFPROPSLATE=""
|
CONFPROPSLATE=""
|
||||||
|
CONFPROPSDELAY=""
|
||||||
PROPOPTION=replace
|
PROPOPTION=replace
|
||||||
|
|
||||||
# Delete props
|
# Delete props
|
||||||
@ -69,7 +74,8 @@ CONFBACK=false
|
|||||||
# Example:
|
# Example:
|
||||||
# CONFFINGERPRINT=preserve
|
# CONFFINGERPRINT=preserve
|
||||||
|
|
||||||
# When placed in /cache or /data, the module will load these
|
# When placed in the root of your internal storage (/sdcard), in /data
|
||||||
|
# or in /cache (or /data/cache if you're using an A/B device), the module will load these
|
||||||
# values during boot and the configuration file will be deleted. Keep a backup of the
|
# 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).
|
# file if you want to reuse it at a later time (clean ROM flash, etc).
|
||||||
|
|
||||||
@ -105,6 +111,11 @@ CONFBACK=false
|
|||||||
# 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.
|
# 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
|
||||||
|
# variable to 'true'. To set a custom value, change CONFBASICATTCUST to the value you want.
|
||||||
|
# Example:
|
||||||
|
# CONFBASICATTCUST="randommodelname"
|
||||||
|
|
||||||
# CONFDEVSIM and the following CONFBRAND, CONFNAME, CONFDEVICE, CONFRELEASE
|
# CONFDEVSIM and the following CONFBRAND, CONFNAME, CONFDEVICE, CONFRELEASE
|
||||||
# CONFID, CONFINCREMENTAL, CONFDESCRIPTION, CONFDISPLAY, CONFSDK, CONFMANUFACTURER and CONFMODEL
|
# CONFID, CONFINCREMENTAL, CONFDESCRIPTION, CONFDISPLAY, CONFSDK, CONFMANUFACTURER and CONFMODEL
|
||||||
# are used to set a number of props to simulate a certain deviced based on the fingerprint used.
|
# are used to set a number of props to simulate a certain deviced based on the fingerprint used.
|
||||||
@ -143,6 +154,9 @@ CONFBACK=false
|
|||||||
# use either CONFPROPSPOST or CONFPROPSLATE instead. Any props added to CONFPROPS
|
# use either CONFPROPSPOST or CONFPROPSLATE instead. Any props added to CONFPROPS
|
||||||
# will run in the boot stage currently set in the module options (see CONFLATE below).
|
# will run in the boot stage currently set in the module options (see CONFLATE below).
|
||||||
#
|
#
|
||||||
|
# The CONFPROPSDELAY option is used to set a delay for when a specific custom prop is set. Will automacially
|
||||||
|
# set the prop during the late_start service boot stage.
|
||||||
|
#
|
||||||
# With PROPOPTION you can decide if the current custom prop list should
|
# With PROPOPTION you can decide if the current custom prop list should
|
||||||
# be replaced, added to or preserved. Add the corresponding words "replace",
|
# be replaced, added to or preserved. Add the corresponding words "replace",
|
||||||
# "add", or "preserve". The default option is to replace the list.
|
# "add", or "preserve". The default option is to replace the list.
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
# In that case, feel free to delete it.
|
# In that case, feel free to delete it.
|
||||||
|
|
||||||
# Script version
|
# Script version
|
||||||
SCRIPTV=34
|
SCRIPTV=35
|
||||||
SETTRANSF=3
|
SETTRANSF=3
|
||||||
NOTTRANSF="BRANDSET;NAMESET;DEVICESET;RELEASESET;IDSET;INCREMENTALSET;SDKSET"
|
NOTTRANSF="BRANDSET;NAMESET;DEVICESET;RELEASESET;IDSET;INCREMENTALSET;SDKSET"
|
||||||
|
|
||||||
@ -117,8 +117,8 @@ SIMMODEL=""
|
|||||||
CUSTOMPROPS=""
|
CUSTOMPROPS=""
|
||||||
CUSTOMPROPSPOST=""
|
CUSTOMPROPSPOST=""
|
||||||
CUSTOMPROPSLATE=""
|
CUSTOMPROPSLATE=""
|
||||||
CUSTOMPROPSLIST="$CUSTOMPROPS $CUSTOMPROPSPOST $CUSTOMPROPSLATE"
|
|
||||||
CUSTOMPROPSDELAY=""
|
CUSTOMPROPSDELAY=""
|
||||||
|
CUSTOMPROPSLIST="$CUSTOMPROPS $CUSTOMPROPSPOST $CUSTOMPROPSLATE $CUSTOMPROPSDELAY"
|
||||||
|
|
||||||
# ---Delete prop values---
|
# ---Delete prop values---
|
||||||
DELETEPROPS=""
|
DELETEPROPS=""
|
||||||
|
@ -4,17 +4,41 @@
|
|||||||
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
|
# Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers
|
||||||
# Licence: MIT
|
# Licence: MIT
|
||||||
|
|
||||||
# Finding file values
|
ADBPATH=/data/adb
|
||||||
|
MHPCPATH=$ADBPATH/mhpc
|
||||||
|
if [ "$INSTFN" ]; then
|
||||||
|
LOGFILE=$MHPCPATH/propsconf_install.log
|
||||||
|
else
|
||||||
|
LOGFILE=$MHPCPATH/propsconf.log
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Finding and setting up installed Busybox
|
||||||
|
if [ -z "$INSTFN" ] && [ "$BOOTSTAGE" != "post" -a "$BOOTSTAGE" != "late" ]; then
|
||||||
|
BBPATH=$ADBPATH/magisk/busybox
|
||||||
|
if [ -f "$BBPATH" ]; then
|
||||||
|
for ITEM in $($BBPATH --list | tail -n +3); do
|
||||||
|
alias $ITEM="$BBPATH $ITEM"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ -f "$BBPATH" ]; then
|
||||||
|
echo "" >> $LOGFILE 2>&1
|
||||||
|
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - Using $($BBPATH | head -1)." >> $LOGFILE 2>&1
|
||||||
|
echo "$BBPATH" >> $LOGFILE 2>&1
|
||||||
|
else
|
||||||
|
echo "" >> $LOGFILE 2>&1
|
||||||
|
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - No Busybox found." >> $LOGFILE 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Finding file values, $1=file (with path), $2=string to look for
|
||||||
get_file_value() {
|
get_file_value() {
|
||||||
if [ -f "$1" ]; then
|
if [ -f "$1" ]; then
|
||||||
grep $2 $1 | sed "s|.*${2}||" | sed 's|\"||g'
|
echo $(grep $2 $1) | sed "s|.*${2}||" | sed 's|\"||g'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Variables ========================
|
# ======================== Variables ========================
|
||||||
ADBPATH=/data/adb
|
|
||||||
MODULESPATH=$ADBPATH/modules
|
MODULESPATH=$ADBPATH/modules
|
||||||
MHPCPATH=$ADBPATH/mhpc
|
|
||||||
LATEFILE=$MHPCPATH/propsconf_late
|
LATEFILE=$MHPCPATH/propsconf_late
|
||||||
MIRRORLOC=/sbin/.magisk/mirror/system
|
MIRRORLOC=/sbin/.magisk/mirror/system
|
||||||
VENDLOC=/sbin/.magisk/mirror/vendor
|
VENDLOC=/sbin/.magisk/mirror/vendor
|
||||||
@ -38,7 +62,6 @@ if [ "$INSTFN" ]; then
|
|||||||
$CACHELOC/propsconf_install.log
|
$CACHELOC/propsconf_install.log
|
||||||
$CACHELOC/propsconf_last.log
|
$CACHELOC/propsconf_last.log
|
||||||
"
|
"
|
||||||
LOGFILE=$MHPCPATH/propsconf_install.log
|
|
||||||
SETTINGSLIST="
|
SETTINGSLIST="
|
||||||
FINGERPRINTENB
|
FINGERPRINTENB
|
||||||
PRINTMODULE
|
PRINTMODULE
|
||||||
@ -46,6 +69,8 @@ if [ "$INSTFN" ]; then
|
|||||||
PRINTVEND
|
PRINTVEND
|
||||||
PRINTCHK
|
PRINTCHK
|
||||||
BASICATTEST
|
BASICATTEST
|
||||||
|
BASICATTLIST
|
||||||
|
BASICATTCUST
|
||||||
DEVSIM
|
DEVSIM
|
||||||
PROPCOUNT
|
PROPCOUNT
|
||||||
PROPEDIT
|
PROPEDIT
|
||||||
@ -99,11 +124,10 @@ if [ "$INSTFN" ]; then
|
|||||||
"
|
"
|
||||||
else
|
else
|
||||||
# Placeholder variables
|
# Placeholder variables
|
||||||
MODVERSION=v5.3.0
|
MODVERSIONPH=VER_PLACEHOLDER
|
||||||
BIN=xbin
|
BINPH=BIN_PLACEHOLDER
|
||||||
|
|
||||||
# Log variables
|
# Log variables
|
||||||
LOGFILE=$MHPCPATH/propsconf.log
|
|
||||||
LASTLOGFILE=$MHPCPATH/propsconf_last.log
|
LASTLOGFILE=$MHPCPATH/propsconf_last.log
|
||||||
VLOGFILE=$MHPCPATH/propsconf_verbose.log
|
VLOGFILE=$MHPCPATH/propsconf_verbose.log
|
||||||
VLASTLOGFILE=$MHPCPATH/propsconf_verbose_last.log
|
VLASTLOGFILE=$MHPCPATH/propsconf_verbose_last.log
|
||||||
@ -242,25 +266,6 @@ APILVL="
|
|||||||
10=29
|
10=29
|
||||||
"
|
"
|
||||||
|
|
||||||
# List of aliases to set from Busybox
|
|
||||||
ALIASLIST="
|
|
||||||
awk
|
|
||||||
cat
|
|
||||||
cp
|
|
||||||
cut
|
|
||||||
grep
|
|
||||||
head
|
|
||||||
id
|
|
||||||
mv
|
|
||||||
printf
|
|
||||||
sed
|
|
||||||
sort
|
|
||||||
tar
|
|
||||||
tr
|
|
||||||
wc
|
|
||||||
wget
|
|
||||||
"
|
|
||||||
|
|
||||||
# Values props list
|
# Values props list
|
||||||
VALPROPSLIST=$PROPSLIST$PRINTPARTS$SNPROPS$ADNPROPS$ADNSIMPROPS
|
VALPROPSLIST=$PROPSLIST$PRINTPARTS$SNPROPS$ADNPROPS$ADNSIMPROPS
|
||||||
|
|
||||||
@ -276,46 +281,37 @@ if [ "$BOOTSTAGE" != "post" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# ======================== General functions ========================
|
# ======================== General functions ========================
|
||||||
# Log functions
|
# Log functions, $1=Log text
|
||||||
|
# Print to log
|
||||||
log_handler() {
|
log_handler() {
|
||||||
if [ "$(id -u)" == 0 ] ; then
|
if [ "$(id -u)" == 0 ] ; then
|
||||||
echo "" >> $LOGFILE 2>&1
|
echo "" >> $LOGFILE 2>&1
|
||||||
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - $1" >> $LOGFILE 2>&1
|
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - $1" >> $LOGFILE 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Print to log and screen
|
||||||
log_print() {
|
log_print() {
|
||||||
if [ "$INSTFN" ]; then
|
if [ "$INSTFN" ]; then
|
||||||
ui_print "$1"
|
ui_print "$1"
|
||||||
else
|
else
|
||||||
echo "$1"
|
echo -e "$1"
|
||||||
fi
|
fi
|
||||||
log_handler "$1"
|
log_handler "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Print to controll file for boot scripts
|
||||||
log_script_chk() {
|
log_script_chk() {
|
||||||
log_handler "$1"
|
log_handler "$1"
|
||||||
echo -e "$(date +"%m-%d-%Y %H:%M:%S") - $1" >> $RUNFILE 2>&1
|
echo -e "$(date +"%m-%d-%Y %H:%M:%S") - $1" >> $RUNFILE 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Finding and setting up installed Busybox
|
|
||||||
if [ ! "$INSTFN" ] && [ "$BOOTSTAGE" != "post" -a "$BOOTSTAGE" != "late" ]; then
|
|
||||||
log_handler "Setting up Busybox."
|
|
||||||
BBPATH=$ADBPATH/magisk/busybox
|
|
||||||
if [ "$BBPATH" ]; then
|
|
||||||
log_handler "Using $($BBPATH | head -1)."
|
|
||||||
echo "$BBPATH" >> $LOGFILE 2>&1
|
|
||||||
for ITEM in $ALIASLIST; do
|
|
||||||
alias $ITEM="$BBPATH $ITEM"
|
|
||||||
done
|
|
||||||
else
|
|
||||||
log_handler "No Busybox found."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Divider
|
#Divider
|
||||||
DIVIDER="${Y}=====================================${N}"
|
DIVIDER="${Y}=====================================${N}"
|
||||||
|
|
||||||
# Header
|
# Header, $1=header text
|
||||||
menu_header() {
|
menu_header() {
|
||||||
|
# Don't clear screen if running from adb or if testing flag is active
|
||||||
if [ -z "$ANDROID_SOCKET_adbd" ] && [ "$DEVTESTING" == "false" ]; then
|
if [ -z "$ANDROID_SOCKET_adbd" ] && [ "$DEVTESTING" == "false" ]; then
|
||||||
clear
|
clear
|
||||||
fi
|
fi
|
||||||
@ -325,12 +321,12 @@ menu_header() {
|
|||||||
VERSIONTXT=$MODVERSION
|
VERSIONTXT=$MODVERSION
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
echo "${W}MagiskHide Props Config $VERSIONTXT${N}"
|
echo -e "${W}MagiskHide Props Config $VERSIONTXT${N}"
|
||||||
echo "${W}by Didgeridoohan @ XDA Developers${N}"
|
echo -e "${W}by Didgeridoohan @ XDA Developers${N}"
|
||||||
echo ""
|
echo ""
|
||||||
echo $DIVIDER
|
echo -e $DIVIDER
|
||||||
echo -e " $1"
|
echo -e " $1"
|
||||||
echo $DIVIDER
|
echo -e $DIVIDER
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get module version
|
# Get module version
|
||||||
@ -339,7 +335,7 @@ module_v_ctrl() {
|
|||||||
VERSIONTMP=$(echo $(get_file_value $MODPATH/module.prop "version="))
|
VERSIONTMP=$(echo $(get_file_value $MODPATH/module.prop "version="))
|
||||||
}
|
}
|
||||||
|
|
||||||
# Find prop type
|
# Find prop type, $1=prop name
|
||||||
get_prop_type() {
|
get_prop_type() {
|
||||||
if [ "$1" == "ro.vendor.build.fingerprint" ]; then
|
if [ "$1" == "ro.vendor.build.fingerprint" ]; then
|
||||||
echo "vendprint"
|
echo "vendprint"
|
||||||
@ -350,22 +346,22 @@ get_prop_type() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get left side of =
|
# Get left side of =, $1=string to check
|
||||||
get_eq_left() {
|
get_eq_left() {
|
||||||
echo $1 | cut -f 1 -d '='
|
echo $1 | cut -f 1 -d '='
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get right side of =
|
# Get right side of =, $1=string to check
|
||||||
get_eq_right() {
|
get_eq_right() {
|
||||||
echo $1 | cut -f 2 -d '='
|
echo $1 | cut -f 2 -d '='
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the list of print version
|
# Get the list of print version, $1=Fingerprint device info with android versions
|
||||||
get_print_versions() {
|
get_print_versions() {
|
||||||
echo "$1" | sed 's|.*(||' | sed 's|).*||' | sed 's| \& | |g'
|
echo "$1" | sed 's|.*(||' | sed 's|).*||' | sed 's| \& | |g'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get Android version with 3 digits for input
|
# Get Android version with 3 digits for input, $1=version string to convert to three digits
|
||||||
get_android_version() {
|
get_android_version() {
|
||||||
VERTMP=$(echo $1 | sed 's|\.||g')
|
VERTMP=$(echo $1 | sed 's|\.||g')
|
||||||
if [ "${#VERTMP}" -lt 3 ]; then
|
if [ "${#VERTMP}" -lt 3 ]; then
|
||||||
@ -376,17 +372,37 @@ get_android_version() {
|
|||||||
echo $VERTMP
|
echo $VERTMP
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get security patch date for current fingerprint
|
# Get security patch date for current fingerprint, $1=fingerprint string, including appended security patch date
|
||||||
get_sec_patch() {
|
get_sec_patch() {
|
||||||
echo $1 | sed 's|.*\_\_||'
|
echo $1 | sed 's|.*\_\_||'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the fingerprint for displaying in the ui
|
# Get the fingerprint for displaying in the ui, $1=fingerprint
|
||||||
get_print_display() {
|
get_print_display() {
|
||||||
echo $1 | sed 's|\_\_.*||'
|
echo $1 | sed 's|\_\_.*||'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Replace file values
|
# Get prop value for custom props, $1=full prop string with name and value
|
||||||
|
get_prop_value() {
|
||||||
|
echo "$(get_eq_right "$1")" | sed 's|_sp_| |g' | sed 's|\;.*$||'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get delay for custom props, $1=full prop string with name, value and delay. If no delay is set, 0 is returned
|
||||||
|
get_prop_delay() {
|
||||||
|
TMPVAL="$(echo "$(get_eq_right "$1")" | sed 's|^.*\;||' | sed 's|\_\_.*$||')"
|
||||||
|
if [ "$TMPVAL" ]; then
|
||||||
|
echo "$TMPVAL"
|
||||||
|
else
|
||||||
|
echo "0"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get execution point for custom prop delay, $1=full prop string with name, value and delay
|
||||||
|
get_prop_delay_exec() {
|
||||||
|
echo "$(get_eq_right "$1")" | sed 's|^.*\_\_||'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Replace file values, $1=Variable to update, $2=Original variable value, $3=New variable value, $4=File, $5=control option for placeholder replacement
|
||||||
replace_fn() {
|
replace_fn() {
|
||||||
if [ "$5" == "placeholder" ]; then
|
if [ "$5" == "placeholder" ]; then
|
||||||
sed -i "s|${1}PH=${2}|${1}=${3}|" $4 >> $LOGFILE 2>&1
|
sed -i "s|${1}PH=${2}|${1}=${3}|" $4 >> $LOGFILE 2>&1
|
||||||
@ -395,7 +411,7 @@ replace_fn() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Format user files to remove Windows file endings
|
# Format user files to remove Windows file endings, $1=file to format
|
||||||
format_file() {
|
format_file() {
|
||||||
log_handler "Formating file (${1})."
|
log_handler "Formating file (${1})."
|
||||||
# Remove Windows line endings
|
# Remove Windows line endings
|
||||||
@ -409,9 +425,9 @@ format_file() {
|
|||||||
# Reboot the device
|
# Reboot the device
|
||||||
force_reboot() {
|
force_reboot() {
|
||||||
echo ""
|
echo ""
|
||||||
echo "${C}Rebooting...${N}"
|
echo -e "${C}Rebooting...${N}"
|
||||||
log_handler "Rebooting."
|
log_handler "Rebooting."
|
||||||
[ "$(getprop sys.boot_completed)" == 1 ] && /system/bin/svc power reboot "" >> $LOGFILE 2>&1 || /system/bin/reboot "" >> $LOGFILE 2>&1 || setprop sys.powerctl reboot >> $LOGFILE 2>&1
|
[ $(getprop sys.boot_completed) == 1 ] && /system/bin/svc power reboot "" >> $LOGFILE 2>&1 || /system/bin/reboot "" >> $LOGFILE 2>&1 || setprop sys.powerctl reboot >> $LOGFILE 2>&1
|
||||||
sleep 15
|
sleep 15
|
||||||
log_handler "Rebooting failed."
|
log_handler "Rebooting failed."
|
||||||
echo ""
|
echo ""
|
||||||
@ -421,7 +437,7 @@ force_reboot() {
|
|||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Updates placeholders
|
# Updates placeholders, $1=file, $2=Variable name to replace to, $3=Placeholder name, $4=Value to assign updated variable
|
||||||
placeholder_update() {
|
placeholder_update() {
|
||||||
log_handler "Checking for ${3} in ${1}."
|
log_handler "Checking for ${3} in ${1}."
|
||||||
if [ -f "$1" ]; then
|
if [ -f "$1" ]; then
|
||||||
@ -512,11 +528,11 @@ all_values() {
|
|||||||
before_change() {
|
before_change() {
|
||||||
if [ -z "$INSTFN" ]; then
|
if [ -z "$INSTFN" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "${C}Working. Please wait...${N}"
|
echo -e "${C}Working. Please wait...${N}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run after updated props/settings
|
# Run after updated props/settings, $1=header, $2=Run options, $3=Reboot or not
|
||||||
after_change() {
|
after_change() {
|
||||||
if [ "$2" == "file" ]; then
|
if [ "$2" == "file" ]; then
|
||||||
# Load module settings
|
# Load module settings
|
||||||
@ -535,7 +551,7 @@ after_change() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reboot function
|
# Reboot function, $1=header, $2=Run options
|
||||||
reboot_fn() {
|
reboot_fn() {
|
||||||
INPUT5=""
|
INPUT5=""
|
||||||
while true
|
while true
|
||||||
@ -556,13 +572,13 @@ reboot_fn() {
|
|||||||
echo "Reboot for changes to take effect."
|
echo "Reboot for changes to take effect."
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
echo "Do you want to reboot now (y/n)?"
|
echo -e "Do you want to reboot now (${G}y/n${N})?"
|
||||||
echo ""
|
echo ""
|
||||||
if [ "$2" == "p" ] || [ "$2" == "r" ] || [ "$2" == "reset-script" ]; then
|
if [ "$2" == "p" ] || [ "$2" == "r" ] || [ "$2" == "reset-script" ]; then
|
||||||
echo -n "Enter ${G}y${N}(es) or ${G}n${N}(o): "
|
echo -en "Enter ${G}y${N}(es) or ${G}n${N}(o): "
|
||||||
INV1=2
|
INV1=2
|
||||||
else
|
else
|
||||||
echo -n "Enter ${G}y${N}(es), ${G}n${N}(o) or ${G}e${N}(xit): "
|
echo -en "Enter ${G}y${N}(es), ${G}n${N}(o) or ${G}e${N}(xit): "
|
||||||
INV1=3
|
INV1=3
|
||||||
fi
|
fi
|
||||||
read -r INPUT5
|
read -r INPUT5
|
||||||
@ -595,7 +611,7 @@ reboot_fn() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset module
|
# Reset module, $1=header, $2=Run options
|
||||||
reset_fn() {
|
reset_fn() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1108,12 +1124,12 @@ script_install() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Fingerprint functions ========================
|
# ======================== Fingerprint functions ========================
|
||||||
# Get full device info from fingerprint string
|
# Get full device info from fingerprint string, $1=full fingerprint string, including device info
|
||||||
get_device() {
|
get_device() {
|
||||||
echo $1 | cut -f 1 -d '=' | sed "s|\:.*$||"
|
echo $1 | cut -f 1 -d '=' | sed "s|\:.*$||"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get first word in fingerprint string
|
# Get first word in fingerprint string, $1=full fingerprint string, including device info
|
||||||
get_first() {
|
get_first() {
|
||||||
case $1 in
|
case $1 in
|
||||||
*\ *) echo $1 | sed 's|\ .*||'
|
*\ *) echo $1 | sed 's|\ .*||'
|
||||||
@ -1123,22 +1139,22 @@ get_first() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the device for current fingerprint
|
# Get the device for current fingerprint, $1=fingerprint
|
||||||
get_device_used() {
|
get_device_used() {
|
||||||
PRINTTMP=$(cat $MODPATH/common/prints.sh | grep "$1")
|
PRINTTMP=$(cat $MODPATH/common/prints.sh | grep "$1")
|
||||||
if [ "$PRINTTMP" ]; then
|
if [ "$PRINTTMP" ]; then
|
||||||
echo "${C}$(get_device "$PRINTTMP" | sed "s| (.*||")${N}"
|
echo -e "${C}$(get_device "$PRINTTMP" | sed "s| (.*||")${N}"
|
||||||
echo ""
|
echo ""
|
||||||
elif [ -s "$CSTMPRINTS" ]; then
|
elif [ -s "$CSTMPRINTS" ]; then
|
||||||
PRINTTMP=$(cat $CSTMPRINTS | grep "$1")
|
PRINTTMP=$(cat $CSTMPRINTS | grep "$1")
|
||||||
if [ "$PRINTTMP" ]; then
|
if [ "$PRINTTMP" ]; then
|
||||||
echo "${C}$(get_device "$PRINTTMP" | sed "s| (.*||")${N} (from custom list)"
|
echo -e "${C}$(get_device "$PRINTTMP" | sed "s| (.*||")${N} (from custom list)"
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set new fingerprint
|
# Set new fingerprint, $1=file to add prop info to
|
||||||
print_edit() {
|
print_edit() {
|
||||||
if [ "$1" != "none" ]; then
|
if [ "$1" != "none" ]; then
|
||||||
before_change
|
before_change
|
||||||
@ -1181,7 +1197,7 @@ print_edit() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Edit security patch date if included
|
# Edit security patch date if included, $1=file to add prop info to
|
||||||
patch_edit() {
|
patch_edit() {
|
||||||
if [ "$1" != "none" ]; then
|
if [ "$1" != "none" ]; then
|
||||||
before_change
|
before_change
|
||||||
@ -1246,6 +1262,7 @@ print_files() {
|
|||||||
device_print_update "Updating module fingerprint."
|
device_print_update "Updating module fingerprint."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check for and update used fingerprint, $1=header
|
||||||
device_print_update() {
|
device_print_update() {
|
||||||
log_handler "$1"
|
log_handler "$1"
|
||||||
if [ "$OPTIONUPDATE" == 1 ]; then
|
if [ "$OPTIONUPDATE" == 1 ]; then
|
||||||
@ -1301,8 +1318,9 @@ device_print_update() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Checks and updates the prints list
|
# Checks and updates the prints list, $1=run option
|
||||||
download_prints() {
|
download_prints() {
|
||||||
|
# Don't clear screen if running through adb or if testing flag is used
|
||||||
if [ -z "$ANDROID_SOCKET_adbd" ] && [ "$DEVTESTING" == "false" ]; then
|
if [ -z "$ANDROID_SOCKET_adbd" ] && [ "$DEVTESTING" == "false" ]; then
|
||||||
clear
|
clear
|
||||||
fi
|
fi
|
||||||
@ -1359,7 +1377,7 @@ download_prints() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset the module fingerprint change
|
# Reset the module fingerprint change, $1=prop name, $2=run option
|
||||||
reset_print() {
|
reset_print() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1380,7 +1398,7 @@ reset_print() {
|
|||||||
after_change "$1" "$2"
|
after_change "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use fingerprint
|
# Use fingerprint, $1=header, $2=fingerprint
|
||||||
change_print() {
|
change_print() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1406,7 +1424,7 @@ change_print() {
|
|||||||
after_change "$1" "$3" "$REBOOTCHK"
|
after_change "$1" "$3" "$REBOOTCHK"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use vendor fingerprint
|
# Use vendor fingerprint, $1=header, $2=Current state of option (enabled or disabled)
|
||||||
change_print_vendor() {
|
change_print_vendor() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1439,7 +1457,7 @@ change_print_vendor() {
|
|||||||
after_change "$1" "$3"
|
after_change "$1" "$3"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Save props values from fingerprint parts
|
# Save props values from fingerprint parts, $1=fingerprint
|
||||||
print_parts() {
|
print_parts() {
|
||||||
DLIM1=1
|
DLIM1=1
|
||||||
DLIM2=1
|
DLIM2=1
|
||||||
@ -1526,7 +1544,7 @@ set_partition_props() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Force BASIC attestation ========================
|
# ======================== Force BASIC attestation ========================
|
||||||
# Switch/set forced basic attestation
|
# Switch/set forced basic attestation, $1=header/file to change (system.prop), $2=model prop value from fingerprint, $3=custom model prop value, $4=reset flag
|
||||||
forced_basic() {
|
forced_basic() {
|
||||||
# Find what brand is being used
|
# Find what brand is being used
|
||||||
if [ "$FINGERPRINTENB" == 1 -o "$PRINTMODULE" == 0 ] && [ "$PRINTEDIT" == 1 ] && [ "$MODULEFINGERPRINT" ]; then
|
if [ "$FINGERPRINTENB" == 1 -o "$PRINTMODULE" == 0 ] && [ "$PRINTEDIT" == 1 ] && [ "$MODULEFINGERPRINT" ]; then
|
||||||
@ -1580,21 +1598,21 @@ forced_basic() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set a list value for forced basic attestation
|
# Set a list value for forced basic attestation, $1=header, $2=model prop value
|
||||||
forced_list_confirm() {
|
forced_list_confirm() {
|
||||||
log_handler "Setting value for forced basic attestation to \"$2\" (from fingerprints list)."
|
log_handler "Setting value for forced basic attestation to \"$2\" (from fingerprints list)."
|
||||||
|
|
||||||
forced_basic "$1" "$2"
|
forced_basic "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set a custom value for forced basic attestation
|
# Set a custom value for forced basic attestation, $1=header, $2=custom model prop value
|
||||||
forced_custom_confirm() {
|
forced_custom_confirm() {
|
||||||
log_handler "Setting custom value for forced basic attestation to \"$2\"."
|
log_handler "Setting custom value for forced basic attestation to \"$2\"."
|
||||||
|
|
||||||
forced_basic "$1" "" "$2"
|
forced_basic "$1" "" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset the values for forced basic attestation
|
# Reset the values for forced basic attestation, $1=header, $2=reset type
|
||||||
forced_reset() {
|
forced_reset() {
|
||||||
LISTVAL="$BASICATTLIST"
|
LISTVAL="$BASICATTLIST"
|
||||||
CUSTVAL="$BASICATTCUST"
|
CUSTVAL="$BASICATTCUST"
|
||||||
@ -1618,7 +1636,7 @@ forced_reset() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Device simulation functions ========================
|
# ======================== Device simulation functions ========================
|
||||||
# Edit the simulation props
|
# Edit the simulation props, $1=file to edit (system.prop)
|
||||||
dev_sim_edit() {
|
dev_sim_edit() {
|
||||||
if [ "$1" != "none" ]; then
|
if [ "$1" != "none" ]; then
|
||||||
before_change
|
before_change
|
||||||
@ -1657,7 +1675,7 @@ dev_sim_edit() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Enable/disable the option
|
# Enable/disable the option, $1=header, $2=run option
|
||||||
change_dev_sim() {
|
change_dev_sim() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1686,7 +1704,7 @@ change_dev_sim() {
|
|||||||
after_change "$1" "$2"
|
after_change "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Change if prop should be simulated or not
|
# Change if prop should be simulated or not, $1=header, $2=prop name, $3=prop value, $4=run option
|
||||||
change_sim_prop() {
|
change_sim_prop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1706,7 +1724,7 @@ change_sim_prop() {
|
|||||||
after_change "$1" "$4"
|
after_change "$1" "$4"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Change if description should be simulated or not
|
# Change if description should be simulated or not, $1=header, $2=Check if option is enabled or disabled, $3=run option
|
||||||
change_sim_descr() {
|
change_sim_descr() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1723,7 +1741,7 @@ change_sim_descr() {
|
|||||||
after_change "$1" "$3"
|
after_change "$1" "$3"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Change if partition specific props should be simulated or not
|
# Change if partition specific props should be simulated or not, $1=header, $2=Check if option is enabled or disabled, $3=run option
|
||||||
change_sim_partprops() {
|
change_sim_partprops() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1741,7 +1759,7 @@ change_sim_partprops() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== MagiskHide Props functions ========================
|
# ======================== MagiskHide Props functions ========================
|
||||||
# Check safe values
|
# Check safe values, $1=header, $2=Currently set prop value
|
||||||
safe_props() {
|
safe_props() {
|
||||||
SAFE=""
|
SAFE=""
|
||||||
if [ "$2" ]; then
|
if [ "$2" ]; then
|
||||||
@ -1758,7 +1776,7 @@ safe_props() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Find what prop value to change to
|
# Find what prop value to change to, $1=header, $2=Currently set prop value
|
||||||
change_to() {
|
change_to() {
|
||||||
CHANGE=""
|
CHANGE=""
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -1779,7 +1797,7 @@ change_to() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset the module prop change
|
# Reset the module prop change, $1=prop name, $2=run option
|
||||||
reset_prop() {
|
reset_prop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1810,7 +1828,7 @@ reset_prop() {
|
|||||||
after_change "$1" "$2"
|
after_change "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use prop value
|
# Use prop value, $1=prop name, $2=new prop value, $3=run option
|
||||||
change_prop() {
|
change_prop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1837,7 +1855,7 @@ change_prop() {
|
|||||||
after_change "$1" "$3"
|
after_change "$1" "$3"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset all module prop changes
|
# Reset all module prop changes, $1=header
|
||||||
reset_prop_all() {
|
reset_prop_all() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1863,7 +1881,7 @@ reset_prop_all() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Custom Props functions ========================
|
# ======================== Custom Props functions ========================
|
||||||
# Set custom props
|
# Set custom props, $1=custom type (default, post, late, delay) , $2=file to edit
|
||||||
custom_edit() {
|
custom_edit() {
|
||||||
if [ "$2" ]; then
|
if [ "$2" ]; then
|
||||||
before_change
|
before_change
|
||||||
@ -1873,33 +1891,54 @@ custom_edit() {
|
|||||||
if [ "$TMPLST" ]; then
|
if [ "$TMPLST" ]; then
|
||||||
log_handler "Writing custom props."
|
log_handler "Writing custom props."
|
||||||
for ITEM in $TMPLST; do
|
for ITEM in $TMPLST; do
|
||||||
|
TMPITEM=$(get_prop_value "$ITEM")
|
||||||
|
if [ "$1" == "CUSTOMPROPSDELAY" ]; then
|
||||||
|
{
|
||||||
|
TMPBOOTTXT=""
|
||||||
|
TMPDELAY=$(get_prop_delay "$ITEM")
|
||||||
|
# Wait for "Boot completed", if enabled
|
||||||
|
if [ "$(get_prop_delay_exec "$ITEM")" == "boot" ]; then
|
||||||
|
TMPBOOTTXT=" after \"Boot completed\""
|
||||||
|
until [ $(getprop sys.boot_completed) == 1 ]; do
|
||||||
|
sleep 0.1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
TMPI=1
|
||||||
|
until [ "$TMPI" -gt "$TMPDELAY" ]; do
|
||||||
|
sleep 1
|
||||||
|
TMPI=$(($TMPI + 1))
|
||||||
|
done
|
||||||
|
log_handler "Changing/writing $(get_eq_left "$ITEM") with a delay of $TMPDELAY seconds${TMPBOOTTXT}."
|
||||||
|
resetprop -nv $(get_eq_left "$ITEM") "${TMPITEM}" >> $LOGFILE 2>&1
|
||||||
|
} &
|
||||||
|
else
|
||||||
log_handler "Changing/writing $(get_eq_left "$ITEM")."
|
log_handler "Changing/writing $(get_eq_left "$ITEM")."
|
||||||
TMPITEM=$(echo $(get_eq_right "$ITEM") | sed 's|_sp_| |g')
|
|
||||||
if [ "$2" ]; then
|
if [ "$2" ]; then
|
||||||
echo "$(get_eq_left "$ITEM")=${TMPITEM}" >> $2
|
echo "$(get_eq_left "$ITEM")=${TMPITEM}" >> $2
|
||||||
else
|
else
|
||||||
resetprop -nv $(get_eq_left "$ITEM") "$TMPITEM" >> $LOGFILE 2>&1
|
resetprop -nv $(get_eq_left "$ITEM") "${TMPITEM}" >> $LOGFILE 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Find custom props module set value
|
# Find custom props module set value, $1=prop name
|
||||||
custprop_value() {
|
custprop_value() {
|
||||||
TMPLST="$CUSTOMPROPSLIST"
|
TMPLST="$CUSTOMPROPSLIST"
|
||||||
if [ "$TMPLST" ]; then
|
if [ "$TMPLST" ]; then
|
||||||
for ITEM in $TMPLST; do
|
for ITEM in $TMPLST; do
|
||||||
case "$ITEM" in
|
case "$ITEM" in
|
||||||
*$1*)
|
*$1*)
|
||||||
echo $(get_eq_right "$ITEM" | sed 's|_sp_| |g')
|
get_prop_value "$ITEM"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set custom prop value
|
# Set custom prop value, $1=prop name, $2=prop value , $3=boot stage , $4=original value, $5=delay, $6=exectuion timing ("boot completed" or now)
|
||||||
set_custprop() {
|
set_custprop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1918,26 +1957,31 @@ set_custprop() {
|
|||||||
elif [ "$3" == "both" ]; then
|
elif [ "$3" == "both" ]; then
|
||||||
PROPSBOOTSTAGE="CUSTOMPROPSPOST CUSTOMPROPSLATE"
|
PROPSBOOTSTAGE="CUSTOMPROPSPOST CUSTOMPROPSLATE"
|
||||||
PROPSTXT="post-fs-data/late_start service"
|
PROPSTXT="post-fs-data/late_start service"
|
||||||
|
elif [ "$3" == "delay" ]; then
|
||||||
|
PROPSBOOTSTAGE="CUSTOMPROPSDELAY"
|
||||||
|
PROPSTXT="late_start service"
|
||||||
|
fi
|
||||||
|
DELAYVAL=""
|
||||||
|
DELAYLOG=""
|
||||||
|
DELAYBOOT=""
|
||||||
|
if [ "$3" == "delay" ] && [ "$5" ]; then
|
||||||
|
DELAYVAL=";$5"
|
||||||
|
DELAYLOG=", with a delay of $5 seconds"
|
||||||
|
elif [ "$3" == "delay" ] && [ -z "$5" ]; then
|
||||||
|
DELAYVAL=";0"
|
||||||
|
fi
|
||||||
|
if [ "$3" == "delay" ] && [ "$6" == "boot" ]; then
|
||||||
|
DELAYBOOT="__boot"
|
||||||
fi
|
fi
|
||||||
TMPVALUE=$(echo "$2" | sed 's| |_sp_|g')
|
TMPVALUE=$(echo "$2" | sed 's| |_sp_|g')
|
||||||
TMPORIG=$(echo "$4" | sed 's| |_sp_|g')
|
TMPORIG=$(echo "$4" | sed 's| |_sp_|g')
|
||||||
DLIMTMP=1
|
DLIMTMP=1
|
||||||
for ITEM in $PROPSBOOTSTAGE; do
|
for ITEM in $PROPSBOOTSTAGE; do
|
||||||
CURRCUSTPROPS=$(get_file_value $LATEFILE "${ITEM}=")
|
CURRCUSTPROPS=$(get_file_value $LATEFILE "${ITEM}=")
|
||||||
case "$CURRCUSTPROPS" in
|
TMPCUSTPROPS=$(echo "$CURRCUSTPROPS ${1}=${TMPVALUE}${DELAYVAL}${DELAYBOOT}" | sed 's|^[ \t]*||')
|
||||||
*$1*)
|
|
||||||
if [ "$(echo $CUSTOMPROPSLIST | grep -Eo "(^| )$1($| )")" ]; then
|
|
||||||
TMPCUSTPROPS=$(echo "$CURRCUSTPROPS" | sed "s|${1}=${TMPORIG}|${1}=${TMPVALUE}|")
|
|
||||||
else
|
|
||||||
TMPCUSTPROPS=$(echo "$CURRCUSTPROPS ${1}=${TMPVALUE}" | sed 's|^[ \t]*||')
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*) TMPCUSTPROPS=$(echo "$CURRCUSTPROPS ${1}=${TMPVALUE}" | sed 's|^[ \t]*||')
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
SORTCUSTPROPS=$(echo $(printf '%s\n' $TMPCUSTPROPS | sort -u))
|
SORTCUSTPROPS=$(echo $(printf '%s\n' $TMPCUSTPROPS | sort -u))
|
||||||
|
|
||||||
log_handler "Setting custom prop $1 in $(echo $PROPSTXT | cut -f $DLIMTMP -d '/') stage."
|
log_handler "Setting custom prop $1 in $(echo $PROPSTXT | cut -f $DLIMTMP -d '/') stage${DELAYLOG}."
|
||||||
replace_fn $ITEM "\"$CURRCUSTPROPS\"" "\"$SORTCUSTPROPS\"" $LATEFILE
|
replace_fn $ITEM "\"$CURRCUSTPROPS\"" "\"$SORTCUSTPROPS\"" $LATEFILE
|
||||||
replace_fn CUSTOMEDIT 0 1 $LATEFILE
|
replace_fn CUSTOMEDIT 0 1 $LATEFILE
|
||||||
DLIMTMP=$(($DLIMTMP + 1))
|
DLIMTMP=$(($DLIMTMP + 1))
|
||||||
@ -1947,7 +1991,7 @@ set_custprop() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset all custom prop values
|
# Reset all custom prop values, $1=after_change option (run from configuration file or not)
|
||||||
reset_all_custprop() {
|
reset_all_custprop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -1956,27 +2000,50 @@ reset_all_custprop() {
|
|||||||
replace_fn CUSTOMPROPS "\"$CUSTOMPROPS\"" "\"\"" $LATEFILE
|
replace_fn CUSTOMPROPS "\"$CUSTOMPROPS\"" "\"\"" $LATEFILE
|
||||||
replace_fn CUSTOMPROPSPOST "\"$CUSTOMPROPSPOST\"" "\"\"" $LATEFILE
|
replace_fn CUSTOMPROPSPOST "\"$CUSTOMPROPSPOST\"" "\"\"" $LATEFILE
|
||||||
replace_fn CUSTOMPROPSLATE "\"$CUSTOMPROPSLATE\"" "\"\"" $LATEFILE
|
replace_fn CUSTOMPROPSLATE "\"$CUSTOMPROPSLATE\"" "\"\"" $LATEFILE
|
||||||
|
replace_fn CUSTOMPROPSDELAY "\"$CUSTOMPROPSDELAY\"" "\"\"" $LATEFILE
|
||||||
replace_fn CUSTOMEDIT 1 0 $LATEFILE
|
replace_fn CUSTOMEDIT 1 0 $LATEFILE
|
||||||
|
|
||||||
after_change "Resetting all custom props" "$1"
|
after_change "Resetting all custom props" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset custom prop value
|
# Reset custom prop value, $1=prop name, $2=prop value, $3=run after_change or not
|
||||||
reset_custprop() {
|
reset_custprop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
log_handler "Resetting custom prop $1."
|
log_handler "Resetting custom prop $1."
|
||||||
PROPSBOOTSTAGE="CUSTOMPROPS CUSTOMPROPSPOST CUSTOMPROPSLATE"
|
PROPSBOOTSTAGE="CUSTOMPROPS CUSTOMPROPSPOST CUSTOMPROPSLATE CUSTOMPROPSDELAY"
|
||||||
TMPVALUE=$(echo "$2" | sed 's| |_sp_|g')
|
TMPVALUE=$(echo "$2" | sed 's| |_sp_|g')
|
||||||
|
|
||||||
for ITEM in $PROPSBOOTSTAGE; do
|
for ITEM in $PROPSBOOTSTAGE; do
|
||||||
CURRCUSTPROPS=$(get_file_value $LATEFILE "${ITEM}=")
|
CURRCUSTPROPS=$(get_file_value $LATEFILE "${ITEM}=")
|
||||||
TMPCUSTPROPS=$(echo $CURRCUSTPROPS | sed "s|${1}=${TMPVALUE}||" | tr -s " " | sed 's|^[ \t]*||;s|[ \t]*$||')
|
if [ "$CURRCUSTPROPS" ]; then
|
||||||
|
TMPDELAY=""
|
||||||
|
TMPBOOTEXEC=""
|
||||||
|
if [ "$ITEM" == "CUSTOMPROPSDELAY" ]; then
|
||||||
|
for PROP in $CURRCUSTPROPS; do
|
||||||
|
case $PROP in
|
||||||
|
*$TMPVALUE*)
|
||||||
|
TMPDELAY=";$(get_prop_delay "$PROP")"
|
||||||
|
case $PROP in
|
||||||
|
*\_\_*)
|
||||||
|
TMPBOOTEXEC="$(get_prop_delay_exec "$PROP")"
|
||||||
|
if [ "$TMPBOOTEXEC" ]; then
|
||||||
|
TMPBOOTEXEC="__$TMPBOOTEXEC"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
TMPCUSTPROPS=$(echo $CURRCUSTPROPS | sed "s|${1}=${TMPVALUE}${TMPDELAY}${TMPBOOTEXEC}||" | tr -s " " | sed 's|^[ \t]*||;s|[ \t]*$||')
|
||||||
# Updating custom props string
|
# Updating custom props string
|
||||||
replace_fn $ITEM "\"$CURRCUSTPROPS\"" "\"$TMPCUSTPROPS\"" $LATEFILE
|
replace_fn $ITEM "\"$CURRCUSTPROPS\"" "\"$TMPCUSTPROPS\"" $LATEFILE
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$CUSTOMPROPS" ] && [ -z "$CUSTOMPROPSPOST" ] && [ -z "$CUSTOMPROPSLATE" ]; then
|
if [ -z "$CUSTOMPROPS" ] && [ -z "$CUSTOMPROPSPOST" ] && [ -z "$CUSTOMPROPSLATE" ] && [ -z "$CUSTOMPROPSDELAY" ]; then
|
||||||
replace_fn CUSTOMEDIT 1 0 $LATEFILE
|
replace_fn CUSTOMEDIT 1 0 $LATEFILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1992,7 +2059,6 @@ prop_del() {
|
|||||||
log_handler "Deleting props."
|
log_handler "Deleting props."
|
||||||
for ITEM in $DELETEPROPS; do
|
for ITEM in $DELETEPROPS; do
|
||||||
log_handler "Deleting $ITEM."
|
log_handler "Deleting $ITEM."
|
||||||
TMPITEM=$( echo $(get_eq_right "$ITEM") | sed 's|_sp_| |g')
|
|
||||||
case "$ITEM" in
|
case "$ITEM" in
|
||||||
persist*)
|
persist*)
|
||||||
resetprop -pv --delete $ITEM >> $LOGFILE 2>&1
|
resetprop -pv --delete $ITEM >> $LOGFILE 2>&1
|
||||||
@ -2005,7 +2071,7 @@ prop_del() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set prop to delete
|
# Set prop to delete, $1=prop name, $2=run option
|
||||||
set_delprop() {
|
set_delprop() {
|
||||||
if [ "$1" ]; then
|
if [ "$1" ]; then
|
||||||
before_change
|
before_change
|
||||||
@ -2021,7 +2087,7 @@ set_delprop() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset all props to delete
|
# Reset all props to delete, $1=run option
|
||||||
reset_all_delprop() {
|
reset_all_delprop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -2033,7 +2099,7 @@ reset_all_delprop() {
|
|||||||
after_change "Reset all props to delete." "$1"
|
after_change "Reset all props to delete." "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset prop to delete
|
# Reset prop to delete, $1=prop name
|
||||||
reset_delprop() {
|
reset_delprop() {
|
||||||
before_change
|
before_change
|
||||||
|
|
||||||
@ -2052,7 +2118,7 @@ reset_delprop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Options functions ========================
|
# ======================== Options functions ========================
|
||||||
# Export all settings to a module configuration file
|
# Export all settings to a module configuration file, $1=header
|
||||||
export_settings() {
|
export_settings() {
|
||||||
before_change
|
before_change
|
||||||
log_handler "Exporting module settings to $EXPORTFILE."
|
log_handler "Exporting module settings to $EXPORTFILE."
|
||||||
@ -2063,10 +2129,15 @@ export_settings() {
|
|||||||
# Create file and Delete instructions
|
# Create file and Delete instructions
|
||||||
head -n 59 $MODPATH/common/propsconf_conf > $EXPORTFILE
|
head -n 59 $MODPATH/common/propsconf_conf > $EXPORTFILE
|
||||||
# Export settings
|
# Export settings
|
||||||
|
# Fingerprint
|
||||||
replace_fn CONFFINGERPRINT "\"\"" "\"$MODULEFINGERPRINT\"" $EXPORTFILE
|
replace_fn CONFFINGERPRINT "\"\"" "\"$MODULEFINGERPRINT\"" $EXPORTFILE
|
||||||
replace_fn CONFVENDPRINT false $([ $PRINTEDIT == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFVENDPRINT false $([ $PRINTVEND == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFPRINTBOOT default $([ $PRINTSTAGE == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
replace_fn CONFPRINTBOOT default $([ $PRINTSTAGE == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
||||||
replace_fn CONFPATCHBOOT late $([ $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
|
||||||
|
# Device Simulation
|
||||||
replace_fn CONFDEVSIM false $([ $DEVSIM == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFDEVSIM false $([ $DEVSIM == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFBRAND false $([ $BRANDSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFBRAND false $([ $BRANDSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFNAME false $([ $NAMESET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFNAME false $([ $NAMESET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
@ -2081,15 +2152,20 @@ export_settings() {
|
|||||||
replace_fn CONFDESCRIPTION true $([ $DESCRIPTIONSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFDESCRIPTION true $([ $DESCRIPTIONSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFPARTPROPS true $([ $PARTPROPSSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFPARTPROPS true $([ $PARTPROPSSET == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFSIMBOOT default $([ $SIMSTAGE == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
replace_fn CONFSIMBOOT default $([ $SIMSTAGE == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
||||||
replace_fn CONFDEBUGGABLE "\"\"" $MODULEDEBUGGABLE $EXPORTFILE
|
# MagiskHide sensitive props
|
||||||
replace_fn CONFSECURE "\"\"" $MODULESECURE $EXPORTFILE
|
replace_fn CONFDEBUGGABLE "\"\"" "\"$MODULEDEBUGGABLE\"" $EXPORTFILE
|
||||||
replace_fn CONFTYPE "\"\"" $MODULETYPE $EXPORTFILE
|
replace_fn CONFSECURE "\"\"" "\"$MODULESECURE\"" $EXPORTFILE
|
||||||
replace_fn CONFTAGS "\"\"" $MODULETAGS $EXPORTFILE
|
replace_fn CONFTYPE "\"\"" "\"$MODULETYPE\"" $EXPORTFILE
|
||||||
replace_fn CONFSELINUX "\"\"" $MODULESELINUX $EXPORTFILE
|
replace_fn CONFTAGS "\"\"" "\"$MODULETAGS\"" $EXPORTFILE
|
||||||
|
replace_fn CONFSELINUX "\"\"" "\"$MODULESELINUX\"" $EXPORTFILE
|
||||||
|
# Custom props
|
||||||
replace_fn CONFPROPS "\"\"" "\"$CUSTOMPROPS\"" $EXPORTFILE
|
replace_fn CONFPROPS "\"\"" "\"$CUSTOMPROPS\"" $EXPORTFILE
|
||||||
replace_fn CONFPROPSPOST "\"\"" "\"$CUSTOMPROPSPOST\"" $EXPORTFILE
|
replace_fn CONFPROPSPOST "\"\"" "\"$CUSTOMPROPSPOST\"" $EXPORTFILE
|
||||||
replace_fn CONFPROPSLATE "\"\"" "\"$CUSTOMPROPSLATE\"" $EXPORTFILE
|
replace_fn CONFPROPSLATE "\"\"" "\"$CUSTOMPROPSLATE\"" $EXPORTFILE
|
||||||
|
replace_fn CONFPROPSDELAY "\"\"" "\"$CUSTOMPROPSDELAY\"" $EXPORTFILE
|
||||||
|
# Delete props
|
||||||
replace_fn CONFDELPROPS "\"\"" "\"$DELETEPROPS\"" $EXPORTFILE
|
replace_fn CONFDELPROPS "\"\"" "\"$DELETEPROPS\"" $EXPORTFILE
|
||||||
|
# Module settings
|
||||||
replace_fn CONFBOOT default $([ $OPTIONBOOT == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
replace_fn CONFBOOT default $([ $OPTIONBOOT == 0 ] && echo "default" || $([ $PRINTSTAGE == 1 ] && echo "post" || echo "late")) $EXPORTFILE
|
||||||
replace_fn CONFCOLOUR true $([ $OPTIONCOLOUR == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFCOLOUR true $([ $OPTIONCOLOUR == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
replace_fn CONFWEB true $([ $OPTIONWEB == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
replace_fn CONFWEB true $([ $OPTIONWEB == 0 ] && echo "false" || echo "true") $EXPORTFILE
|
||||||
@ -2102,14 +2178,14 @@ export_settings() {
|
|||||||
echo "A module configuration file with"
|
echo "A module configuration file with"
|
||||||
echo "your current settings have been"
|
echo "your current settings have been"
|
||||||
echo "saved to your internal storage,"
|
echo "saved to your internal storage,"
|
||||||
echo "in the ${C}/mhcp${N} directory."
|
echo -e "in the ${C}/mhcp${N} directory."
|
||||||
echo ""
|
echo ""
|
||||||
echo -n "Press enter to continue..."
|
echo -n "Press enter to continue..."
|
||||||
read -r INPUTTMP
|
read -r INPUTTMP
|
||||||
}
|
}
|
||||||
|
|
||||||
# ======================== Log collecting functions ========================
|
# ======================== Log collecting functions ========================
|
||||||
# Collects useful logs and info for troubleshooting
|
# Collects useful logs and info for troubleshooting, $1=header, $2=Run as a command flag or not
|
||||||
collect_logs() {
|
collect_logs() {
|
||||||
log_handler "Collecting logs and information."
|
log_handler "Collecting logs and information."
|
||||||
# Create temporary directory
|
# Create temporary directory
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
id=MagiskHidePropsConf
|
id=MagiskHidePropsConf
|
||||||
name=MagiskHide Props Config
|
name=MagiskHide Props Config
|
||||||
version=v5.3.0-v95
|
version=v5.3.1-v97
|
||||||
versionCode=61
|
versionCode=62
|
||||||
author=Didgeridoohan
|
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 prop values set by MagiskHide. Change any prop values easily, and set your own custom props.
|
||||||
|
@ -36,14 +36,14 @@
|
|||||||
echo "***************** By Didgeridoohan ***************" >> $LOGFILE 2>&1
|
echo "***************** By Didgeridoohan ***************" >> $LOGFILE 2>&1
|
||||||
echo "***************************************************" >> $LOGFILE 2>&1
|
echo "***************************************************" >> $LOGFILE 2>&1
|
||||||
echo ""
|
echo ""
|
||||||
STRST="$(date +"%m-%d-%Y %H:%M:%S:%N") - Log start (regular execution)."
|
STRST="$(date +"%m-%d-%Y %H:%M:%S.%3N") - Log start (regular execution)."
|
||||||
echo -e $STRST >> $LOGFILE 2>&1
|
echo -e $STRST >> $LOGFILE 2>&1
|
||||||
echo -e $STRST > $RUNFILE 2>&1
|
echo -e $STRST > $RUNFILE 2>&1
|
||||||
|
|
||||||
# Save default prop values
|
# Save default prop values
|
||||||
getprop > $MHPCPATH/defaultprops
|
getprop > $MHPCPATH/defaultprops
|
||||||
echo "" >> $LOGFILE 2>&1
|
echo "" >> $LOGFILE 2>&1
|
||||||
echo -e "$(date +"%Y-%m-%d %H:%M:%S:%N") - Saved default values" >> $LOGFILE 2>&1
|
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - Saved default values" >> $LOGFILE 2>&1
|
||||||
|
|
||||||
{
|
{
|
||||||
# Creates/updates the script control file
|
# Creates/updates the script control file
|
||||||
@ -52,7 +52,7 @@
|
|||||||
# Logging
|
# Logging
|
||||||
log_handler() {
|
log_handler() {
|
||||||
echo "" >> $LOGFILE 2>&1
|
echo "" >> $LOGFILE 2>&1
|
||||||
echo -e "$(date +"%Y-%m-%d %H:%M:%S:%N") - $1" >> $LOGFILE 2>&1
|
echo -e "$(date +"%Y-%m-%d %H:%M:%S.%3N") - $1" >> $LOGFILE 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reset/disable file locations
|
# Reset/disable file locations
|
||||||
|
@ -98,6 +98,7 @@ if [ "$OPTIONBOOT" != 2 ] && [ "$SIMSTAGE" == 2 ]; then
|
|||||||
fi
|
fi
|
||||||
# Edit custom props set for late_start service
|
# Edit custom props set for late_start service
|
||||||
custom_edit "CUSTOMPROPSLATE"
|
custom_edit "CUSTOMPROPSLATE"
|
||||||
|
custom_edit "CUSTOMPROPSDELAY"
|
||||||
|
|
||||||
# Edit MagiskHide sensitive values
|
# Edit MagiskHide sensitive values
|
||||||
if [ "$PROPEDIT" == 1 ]; then
|
if [ "$PROPEDIT" == 1 ]; then
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user