diff --git a/README.md b/README.md index 27c5857..b1c8ef7 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,6 @@ Keep in mind that this module cannot help you pass CTS if your device uses hardw - [The AndroidDumps method](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#the-androiddumps-method) - [The firmware.mobi method](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#the-firmwaremobi-method) - [Custom fingerprints list](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#custom-fingerprints-list) - - [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) - [Keeping your device "certified"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#keeping-your-device-certified) - [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) @@ -70,6 +69,7 @@ Keep in mind that this module cannot help you pass CTS if your device uses hardw - [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) + - [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) - [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) - [props not found](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#props-not-found) - [The boot scripts did not run](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#the-boot-scripts-did-not-run) @@ -101,7 +101,7 @@ Let's start off with a warning. This module changes your devices prop values. Fingerprint, model and whatever prop you want (depending on what options you use). This may have consequences (everything in life does, live with it). Your device might be perceived as a different device (which can create issues with the Play Store, YouTube video resolution, OTA updates, etc) and cause system instabilities and even bootloops. -Read through the documentation to find more details and how to fix your device if things go south. +Read through the documentation to find more details and how to fix your device if things go south. ## Prerequisites @@ -153,7 +153,7 @@ If you can't pass the CTS profile check of the SafetyNet check there are two fea If you are using a custom ROM (or have a stock ROM on a device that isn't certified by Google) you most likely need to change the device fingerprint to one that has been Google certified. Use the "[Edit device fingerprint"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#spoofing-devices-fingerprint-to-pass-the-ctsprofile-check) feature. -It is also possible that you need to change your devices model to force SafetyNet to use basic key attestation rather than hardware backed. This might be applicable to both custom and stock ROMs. Use the "[Force BASIC key attestation"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) feature. +It is also possible that you need to change your devices model to force SafetyNet to use basic key attestation rather than hardware backed. This might be applicable to both custom and stock ROMs. Use the "[Force BASIC key attestation"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) feature. If the SafteyNet check in the Magisk Manager fails CTS and shows "evalType HARDWARE" you'll need to use this feature. ### Simulating other devices Simple: use the ["Device simulation"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature. @@ -232,7 +232,7 @@ Once you have the file downloaded, there are several different ways that the fin - Sometimes there'll be a build.prop file directly in the zip/package. You might find the fingerprint in there. - For some devices you'll have to unpack the system.img to get to the build.prop or default.prop file, where you might find the info you want.This can sometimes be done with a simple archive app/program, but sometimes more advanced utilities are needed. On Windows, you can use something like [this tool](https://forum.xda-developers.com/showpost.php?p=57742855&postcount=42). You'll also find more info in the [main thread for that post](https://forum.xda-developers.com/android/software-hacking/how-to-conver-lollipop-dat-files-to-t2978952). - Other times you'll find the fingerprint in META-INF\com\google\android\updater-script. Look for "Target:" and you'll likely find the fingerprint there. -- Etc... Experiment, the fingerprint will be in there somewhere. +- Etc... Experiment, the fingerprint will be in there somewhere. #### The AndroidDumps method @@ -253,19 +253,6 @@ Google Nexus 6 (7.1.1):Motorola:Nexus 6=google/shamu/shamu:7.1.1/N8I11B/4171878: **NOTE 2:** If you want the [device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature of the module to work properly with the prints from the custom list you will also have to include the manufacturer and module in the list. This is done by adding the values for these two props right before the equal sign (=) that separates the device name from the fingerprint. Separate the device name and android versions and the two values with colons (:). See the example above. -### I still can't pass the ctsProfile check -If you've picked a certified fingerprint from the provided list, or you're using a fingerprint that you know is certified but still can't pass the ctsProfile check, try one or more of the following: -- Make sure that [MagiskHide is enabled and working](https://www.didgeridoohan.com/magisk/MagiskHide#hn_Test_MagiskHide). -- Check if your device uses [hardware backed key attestation to detect an unlocked bootloader](https://www.didgeridoohan.com/magisk/MagiskHide#hn_Unlocked_bootloader_3). If it does, you can try using the [Force BASIC key attestation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) option.. -- Do you pass basicIntegrity? If you don't, there's something else going on that this module can't help you with. Take a look under ["Miscellaneous MagiskHide issues"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues) below. -- Go to the "Edit fingerprints menu", select "Boot stages", and start by changing the security patch date boot stage to either default or post-fs-data. If that doesn't work, also try changing the fingerprint boot stage to post-fs-data. The default boot stage can also be changed if you go into the script options and change the boot stage to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) below. -- Try a different fingerprint (pick one from the provided list). You might want to reset the "Boot stage" settings to the default values first though. -- If you're not using one of the fingerprints provided in the module, make sure you have a matching security patch date set in [Custom props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values). See ["Matching the Android security patch date"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#matching-the-android-security-patch-date) above. -- Some ROMs will just not be able to pass the ctsProfile check, if they contain signs of a rooted/modified device that Magisk can't hide, or that they are built in a way that makes it impossible to pass SafetyNet. Check in your ROM thread or with the creator/developer. -- You might have remnants of previous modifications that trigger SafetyNet on your device. A clean install of your system may be required. -- If you can't get things working, and want help, make sure to provide logs and details. See ["Logs"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#logs) below. - - ## Keeping your device "certified" If you're using a custom ROM, the chances of it being [perceived as uncertified by Google](https://www.xda-developers.com/google-blocks-gapps-uncertified-devices-custom-rom-whitelist/) are pretty high. If your ROM has a build date after March 16 2018, this might mean that you can't even log into your Google account or use Gapps without [whitelisting your device with Google](https://www.google.com/android/uncertified/) first. @@ -285,12 +272,12 @@ Just run the `props` command and the list will be updated automatically. Use the If you already have a device fingerprint set by the module, and it has been updated in the current fingerprints list, it will be automatically updated when the prints list gets an update. Just reboot to apply. This function can be turned of in the script settings (see ["Prop script settings"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#prop-script-settings) below) -**_Current fingerprints list version - v105_** +**_Current fingerprints list version - v106_** ## Please add support for device X Adding device fingerprints to the list relies heavily on the users. You guys. I've looked up a fingerprint from time to time, but it is a bit time consuming and I don't have that time... - + If you want a specific device fingerprint to be added to the module, see [Finding a certified fingerprint](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#finding-a-certified-fingerprint) above. If you can find a fingerprint for the device you have in mind, [submit](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#how-do-i-submit-a-fingerprint) it for inclusion in the list of certified fingerprints. @@ -303,23 +290,23 @@ You can enter the fingerprint manually in the `Edit device fingerprint` menu in ## Force BASIC key attestation -See here for details on hardware based key attestation for detecting the bootloader state: https://www.didgeridoohan.com/magisk/MagiskHide#hn_Unlocked_bootloader_3 +If the SafteyNet check in the Magisk Manager fails CTS and shows "evalType HARDWARE" you'll need to use this feature. See here for details on hardware based key attestation for detecting the bootloader state: https://www.didgeridoohan.com/magisk/MagiskHide#hn_Unlocked_bootloader_3 This feature has nothing to do with the device fingerprint, but uses the included fingerprints list to find the necessary value to use for the `ro.product.modle` prop. As long as Google doesn't roll out hardware based key attestation universally, it seems like we can fool SafetyNet into using the basic attestation by changing the `ro.product.model` prop (to pass the CTS profile check even with an unlocked bootloader). The module scripts will also alter partition specific props (odm, product, system, vendor and system_ext) to match, if they are available. Thank you to @Displax over at XDA for finding this: https://forum.xda-developers.com/showpost.php?p=83028387&postcount=40658 -By default this feature will use an old devices model prop value, to make sure that it is recognised as a device without the necessary hardware (picked from the available fingerprints in the module list). Using an actual model value from an old device may also help with keeping OEM specific features working (like the Samsung Galaxy Store). If OEM specific features still don't work after activating this option, try picking a device manually from the included list. If no model prop value from an old enough device is available, the value from `ro.product.device` will be used instead. +By default this feature will use an old devices model prop value, based on your device or currently set fingerprint, to make sure that it is recognised as a device without the necessary hardware (picked from the available devices in the module fingerprints list). Using an actual model value from an old device may also help with keeping OEM specific features working (like the Samsung Galaxy Store). If device/OEM specific features still doesn't work after activating this option, or your device is otherwise behaving strangely, try picking a device manually from the included list (see below). If no model prop value from an old enough device is available, the value from `ro.product.device` will be used instead. -It is also possible to pick a device manually from the list of devices (based on the included fingerprints list) or set your own custom value. +It is also possible to pick a device manually from the list of devices (based on the module fingerprints list) or set your own custom value. Do NOT pick your own device, instead try a device that is as close to your actual device as possible. It is possible that any device will work as long as it isn't the same model as your own, and the closer it is to your device the less things will stop working as a result of the model prop change. -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. +Note that using the [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature to simulate `ro.product.model` (and related props) will be disabled when this feature is enabled (all other simiulation props will still work though). It is also worth noting that using the [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation) feature to change ro.product.model will also force a basic key attestation. -Thanks to @Displax over at XDA-Developers for bringing this to everyones attention. +Thanks to @Displax over at XDA-Developers for bringing this to everyone's attention. ## Device simulation -**_NOTE! This feature is not needed to pass SafetyNet's CTS profile test and may even cause issues. Only enable it if you actually need it!_** +**_NOTE! This feature is not generally needed to pass SafetyNet's CTS profile test and may even cause issues. Only enable it if you actually need it!_** 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 can be set are (currently): - ro.product.brand @@ -449,6 +436,19 @@ If you have questions, suggestions or are experiencing some kind of issue, visit For the moment, nothing special (I think). If you've got issues, take a look at the most common problems listed below. +### I still can't pass the ctsProfile check +If you've picked a certified fingerprint from the provided list, or you're using a fingerprint that you know is certified but still can't pass the ctsProfile check, try one or more of the following: +- Make sure that [MagiskHide is enabled and working](https://www.didgeridoohan.com/magisk/MagiskHide#hn_Test_MagiskHide). +- Check if your device uses [hardware backed key attestation to detect an unlocked bootloader](https://www.didgeridoohan.com/magisk/MagiskHide#hn_Unlocked_bootloader_3). If it does, you can try using the [Force BASIC key attestation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#force-basic-key-attestation) option.. +- Do you pass basicIntegrity? If you don't, there's something else going on that this module can't help you with. Take a look under ["Miscellaneous MagiskHide issues"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#miscellaneous-magiskhide-issues) below. +- Go to the "Edit fingerprints menu", select "Boot stages", and start by changing the security patch date boot stage to either default or post-fs-data. If that doesn't work, also try changing the fingerprint boot stage to post-fs-data. The default boot stage can also be changed if you go into the script options and change the boot stage to post-fs-data. See ["Boot stage"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#boot-stage) below. +- Try a different fingerprint (pick one from the provided list). You might want to reset the "Boot stage" settings to the default values first though. +- If you're not using one of the fingerprints provided in the module, make sure you have a matching security patch date set in [Custom props](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config/blob/master/README.md#changeset-custom-prop-values). See ["Matching the Android security patch date"](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf#matching-the-android-security-patch-date) above. +- Some ROMs will just not be able to pass the ctsProfile check, if they contain signs of a rooted/modified device that Magisk can't hide, or that they are built in a way that makes it impossible to pass SafetyNet. Check in your ROM thread or with the creator/developer. +- You might have remnants of previous modifications that trigger SafetyNet on your device. A clean install of your system may be required. +- If you can't get things working, and want help, make sure to provide logs and details. See ["Logs"](https://github.com/Magisk-Modules-Repo/MagiskHide-Props-Config#logs). + + ### Device issues because of the module A common reason for issues with booting the device or with system apps force closing, etc, is having enabled [Device simulation](https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/blob/master/README.md#device-simulation). This feature is not needed for passing SafetyNet's CTS profile check. Only enable it if you actually need it, and keep in mind that it may cause issues when activated. @@ -551,7 +551,7 @@ Please provide the above mentioned files in an archive (zip-file), for simplicit ## Donations -If you've had any help from me or this module, any kind of [donation](https://forum.xda-developers.com/donatetome.php?u=4667597) to support the work involved would of course be appreciated. +If you've had any help from me or this module, any kind of [donation](https://forum.xda-developers.com/donatetome.php?u=4667597) to support the work involved would of course be appreciated. ## Source @@ -573,11 +573,16 @@ Any previous releases can be found on [GitHub](https://github.com/Magisk-Modules Releases up until v2.4.0 are compatible with Magisk v15 to v16.7. Releases from v2.4.1 are compatible with Magisk v17 to v18.1. Releases from v4.0.0 are compatible with Magisk v19+. -Releases from v5.0.0 are recommended for Magisk v19.4+. +Releases from v5.0.0 are recommended for Magisk v19.4+. Releases from v5.2.5 will only install on Magisk v20+. ## Changelog +### v5.3.6 +- Updated the menu item for picking a device manually for the "Force BASIC key attestation" feature to better match the menu option. Press "f" to pay respect. +- Minor updates to the "Force BASIC key attestation" menus to be more clear and informative (hopefully). +- Added fingerprints for Nvidia Shield TV 2015, 2015 Pro, 2019 and 2019 Pro, OnePlus 8T (several variants), Redmi Note 8 Pro Global and Xiaomi Mi 10 Lite 5G Global and Mi 10 Ultra. Updated fingerprints for Nvidia Shield TV 2017, OnePlus 6, 6T, 8 (most variants) and 8 Pro (most variants), POCO F2 Pro European, Samsung Galaxy A40 and Note 20 Ultra 5G and Xiaomi Mi 9T Europe and Global, Mi A2, Mi A2 Lite, Pocophone F1 and Redmi Note 8. List updated to v106. + ### v5.3.5 - Fixed issue with partition model props not being set correctly. - Make sure that simulating ro.product.model is completely disabled when enabling "Force BASIC key attestation". @@ -619,7 +624,7 @@ Releases from v5.2.5 will only install on Magisk v20+. ### v5.2.6 - Fixed the supposedly "improved" verbose boot logging. - Change to using Magisk's internal Busybox for the `props` script (the boot scripts are already using it without issues and have for some time). Separately installed Busybox no longer needed. Thank you @Juzman for the push. -- Added info about MagiskHide's status in the "Edit device fingeprint" menu. +- Added info about MagiskHide's status in the "Edit device fingeprint" menu. - Added fingerprint for Lenovo Tab 4 10 Plus TB-X704F and TB-X704L, Samsung Galaxy Note 4 SM-N910G and Xiaomi Redmi Note 8. Updated fingerprints for Google Pixel 2-4 XL, Motorola Moto G7 Power, OnePlus 5, 5T, 6, 6T, several variants of 7, 7 Pro, several variants of 7T and 7T Pro and several variants of 8 and 8 Pro, Poco X2, Redmi K30 Pro, Samsung Galaxy A5 2017 and Xiaomi Mi A2, Mi A2 Lite and PocoPhone F1. List updated to v92. ### v5.2.5 @@ -962,7 +967,7 @@ Releases from v5.2.5 will only install on Magisk v20+. ## Current fingerprints list -### List v105 +### List v106 - Asus ZenFone 2 Laser ASUS_Z00LD (6.0.1) - Asus ZenFone 3 Max ASUS_X00DD (7.1.1 & 8.1.0) - Asus ZenFone 3 Ultra ASUS_A001 (7.0) @@ -1086,7 +1091,11 @@ Releases from v5.2.5 will only install on Magisk v20+. - Nokia 7.1 TA-1095 (10) - Nvidia Shield K1 (7.0) - Nvidia Shield Tablet (7.0) +- Nvidia Shield TV 2015 (8.0.0 & 9) +- Nvidia Shield TV 2015 Pro (8.0.0 & 9) - Nvidia Shield TV 2017 (8.0.0 & 9) +- Nvidia Shield TV 2019 (9) +- Nvidia Shield TV 2019 Pro (9) - Nvidia Shield TV Pro (8.0.0 & 9) - OnePlus One (6.0.1) - OnePlus 2 (6.0.1) @@ -1098,44 +1107,48 @@ Releases from v5.2.5 will only install on Magisk v20+. - OnePlus 6 (8.1.0 & 9 & 10) - OnePlus 6T (9 & 10) - OnePlus 6T T-Mobile (9) -- OnePlus 7 GM1900 (10) +- OnePlus 7 China GM1900 (10) - OnePlus 7 GM1901 (9 & 10) -- OnePlus 7 GM1903 (9 & 10) +- OnePlus 7 Europe GM1903 (9 & 10) - OnePlus 7 GM1905 (9 & 10) -- OnePlus 7 Pro GM1910 (10) +- OnePlus 7 China Pro GM1910 (10) - OnePlus 7 Pro GM1911 (9 & 10) -- OnePlus 7 Pro GM1913 (9 & 10) -- OnePlus 7 Pro GM1915 (9) +- OnePlus 7 Europe Pro GM1913 (9 & 10) +- OnePlus 7 T-Mobile Pro GM1915 (9) - OnePlus 7 Pro GM1917 (9 & 10) -- OnePlus 7 Pro NR GM1920 (9 & 10) -- OnePlus 7 Pro NR Spr GM1925 (9 & 10) -- OnePlus 7T HD1900 (10) +- OnePlus 7 Pro NR Europe GM1920 (9 & 10) +- OnePlus 7 Pro NR Sprint GM1925 (9 & 10) +- OnePlus 7T China HD1900 (10) - OnePlus 7T HD1901 (10) -- OnePlus 7T HD1903 (10) +- OnePlus 7T Europe HD1903 (10) - OnePlus 7T HD1905 (10) -- OnePlus 7T Pro HD1910 (10) +- OnePlus 7T Cina Pro HD1910 (10) - OnePlus 7T Pro HD1911 (10) -- OnePlus 7T Pro HD1913 (10) +- OnePlus 7T Europe Pro HD1913 (10) - OnePlus 7T Pro HD1917 (10) - OnePlus 7T Pro NR HD1925 (10) -- OnePlus 8 IN2010 (10) -- OnePlus 8 IN2011 (10) -- OnePlus 8 IN2013 (10) -- OnePlus 8 IN2015 (10 & 11) -- OnePlus 8 IN2015 Visible (10) -- OnePlus 8 IN2017 (10) -- OnePlus 8 IN2019 (10) -- OnePlus 8 Pro IN2020 (10) -- OnePlus 8 Pro IN2021 (10) -- OnePlus 8 Pro IN2023 (10) -- OnePlus 8 Pro IN2025 (10 & 11) -- OnePlus Nord AC2001 (10) -- OnePlus Nord European AC2003 (10) +- OnePlus 8 China IN2010 (10) +- OnePlus 8 India IN2011 (10 & 11) +- OnePlus 8 Europe IN2013 (10 & 11) +- OnePlus 8 Global IN2015 (10 & 11) +- OnePlus 8 Visible IN2015 (10) +- OnePlus 8 T-Mobile IN2017 (10) +- OnePlus 8 Verizon IN2019 (10) +- OnePlus 8 China Pro IN2020 (10) +- OnePlus 8 India Pro IN2021 (10 & 11) +- OnePlus 8 Europe Pro IN2023 (10 & 11) +- OnePlus 8 Global Pro IN2025 (10 & 11) +- OnePlus 8T India KB2001 (11) +- OnePlus 8T Europe KB2003 (11) +- OnePlus 8T Global KB2005 (11) +- OnePlus 8T T-Mobile KB2007 (11) +- OnePlus Nord India AC2001 (10) +- OnePlus Nord Europe AC2003 (10) - OnePlus Nord Global AC2003 (10) -- OPPO Find X2 Neo CPH2009 European (10) +- OPPO Find X2 Neo Europe CPH2009 (10) - OPPO Neo 7 A33w (5.1) - OPPO Neo 7 A1603 (5.1) -- POCO F2 Pro European (10) +- POCO F2 Pro Europe (10) - POCO F2 Pro Global (10) - POCO X2 (10) - POCO X3 NFC Global (10) @@ -1145,11 +1158,12 @@ Releases from v5.2.5 will only install on Magisk v20+. - Redmi K30 Pro (10) - Redmi K30 Pro Zoom Edition (10) - Redmi K30 Ultra (10) +- Redmi Note 8 Pro Global (9 & 10) - Redmi Note 8 Pro India (9 & 10) - Redmi Note 8 Pro Russia (9 & 10) -- Redmi Note 9 Pro European (10) +- Redmi Note 9 Pro Europe (10) - Redmi Note 9 Pro Global (10) -- Redmi Note 9S European (10) +- Redmi Note 9S Europe (10) - Redmi Note 9S Global (10) - Samsung Galaxy A01 Core (10) - Samsung Galaxy A3 2015 SM-A300FU (6.0.1) @@ -1191,6 +1205,7 @@ Releases from v5.2.5 will only install on Magisk v20+. - Samsung Galaxy Note 10 Plus SM-N975U (10) - Samsung Galaxy Note 10.1 2014 SM-P600 (5.1.1) - Samsung Galaxy Note 20 Ultra SM-N986U (10) +- Samsung Galaxy Note 20 Ultra 5G SM-N9860 (10) - Samsung Galaxy S3 Neo GT-I9300I (4.4.4) - Samsung Galaxy S4 GT-I9505 (5.0.1) - Samsung Galaxy S4 Active GT-I9295 (5.0.1) @@ -1267,16 +1282,18 @@ Releases from v5.2.5 will only install on Magisk v20+. - Xiaomi Mi 5S Plus (6.0.1 & 7.0) - Xiaomi Mi 6 (8.0.0 & 9) - Xiaomi Mi 8 (8.1.0 & 9 & 10) -- Xiaomi Mi 9 European (9) +- Xiaomi Mi 9 Europe (9) - Xiaomi Mi 9 Lite (9) - Xiaomi Mi 9 SE (9) -- Xiaomi Mi 9T European (9 & 10) +- Xiaomi Mi 9T Europe (9 & 10) - Xiaomi Mi 9T Global (10) - Xiaomi Mi 9T Pro (9 & 10) -- Xiaomi MI 10 European (10) +- Xiaomi MI 10 Europe (10) - Xiaomi Mi 10 Global (10 & 11) -- Xiaomi Mi 10 Lite 5G (10) +- Xiaomi Mi 10 Lite 5G Europe (10) +- Xiaomi Mi 10 Lite 5G Global (10) - Xiaomi Mi 10 Pro (10 & 11) +- Xiaomi Mi 10 Ultra (10) - Xiaomi Mi A1 (7.1.2 & 8.0.0 & 8.1.0 & 9) - Xiaomi Mi A2 (8.1.0 & 9 & 10) - Xiaomi Mi A2 Lite (8.1.0 & 9 & 10) @@ -1290,7 +1307,7 @@ Releases from v5.2.5 will only install on Magisk v20+. - Xiaomi Mi Mix 3 (9 & 10) - Xiaomi Mi Note 2 (7.0 & 8.0.0) - Xiaomi Mi Note 3 (8.1.0) -- Xiaomi Mi Note 10 European (9) +- Xiaomi Mi Note 10 Europe (9) - Xiaomi Mi Pad (4.4.4) - Xiaomi Mi Pad 4 (8.1.0) - Xiaomi Pocophone F1 (9 & 10) @@ -1322,7 +1339,7 @@ Releases from v5.2.5 will only install on Magisk v20+. - Xiaomi Redmi Note 7 (9) - Xiaomi Redmi Note 7 Pro (9) - Xiaomi Redmi Note 8 (9) -- Xiaomi Redmi Note 8T European (9) +- Xiaomi Redmi Note 8T Europe (9) - Xiaomi Redmi Y1 (7.1.2) - ZTE Axon 7 (7.1.1 & 8.0.0) - ZTE Blade (6.0.1) diff --git a/common/prints.sh b/common/prints.sh index 1a7156d..77e4ac9 100644 --- a/common/prints.sh +++ b/common/prints.sh @@ -4,12 +4,12 @@ # Copyright (c) 2018-2020 Didgeridoohan @ XDA Developers # Licence: MIT -PRINTSV=105 +PRINTSV=106 PRINTSTRANSF=520 # Certified fingerprints -# Current fingerprints count=526 -# Unique devices=365 +# Current fingerprints count=546 +# Unique devices=377 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 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 @@ -134,7 +134,11 @@ Nokia 7 Plus (9 & 10):Nokia:Nokia 7 plus=Nokia/Onyx_00WW/B2N_sprout:9/PPR1.18061 Nokia 7.1 TA-1095 (10):Nokia:Nokia 7.1=Nokia/Crystal_00WW/CTL_sprout:10/QKQ1.190828.002/00WW_4_08B:user/release-keys__2019-11-01 Nvidia Shield K1 (7.0):NVIDIA:SHIELD Tablet=nvidia/sb_na_wf/shieldtablet:7.0/NRD90M/1928188_1065.2559:user/release-keys Nvidia Shield Tablet (7.0):NVIDIA:SHIELD Tablet=nvidia/wx_na_wf/shieldtablet:7.0/NRD90M/1928188_904.2811:user/release-keys -Nvidia Shield TV 2017 (8.0.0 & 9):NVIDIA:SHIELD Android TV=NVIDIA/darcy/darcy:8.0.0/OPR6.170623.010/3507953_1441.7411:user/release-keys__2018-12-05;NVIDIA/darcy/darcy:9/PPR1.180610.011/4086637_1604.6430:user/release-keys__2019-07-05 +Nvidia Shield TV 2015 (8.0.0 & 9):NVIDIA:SHIELD Android TV=NVIDIA/foster_e/foster:8.0.0/OPR6.170623.010/3507953_1441.7411:user/release-keys__2018-12-05;NVIDIA/foster_e/foster:9/PPR1.180610.011/4079208_2235.1395:user/release-keys__2020-07-05 +Nvidia Shield TV 2015 Pro (8.0.0 & 9):NVIDIA:SHIELD Android TV=NVIDIA/foster_e_hdd/foster:8.0.0/OPR6.170623.010/3507953_1441.7411:user/release-keys__2018-12-05;NVIDIA/foster_e_hdd/foster:9/PPR1.180610.011/4079208_2235.1395:user/release-keys__2020-07-05 +Nvidia Shield TV 2017 (8.0.0 & 9):NVIDIA:SHIELD Android TV=NVIDIA/darcy/darcy:8.0.0/OPR6.170623.010/3507953_1441.7411:user/release-keys__2018-12-05;NVIDIA/darcy/darcy:9/PPR1.180610.011/4079208_2235.1395:user/release-keys__2020-07-05 +Nvidia Shield TV 2019 (9):NVIDIA:SHIELD Android TV=NVIDIA/sif/sif:9/PPR1.180610.011/4079180_2235.1395:user/release-keys__2020-07-05 +Nvidia Shield TV 2019 Pro (9):NVIDIA:SHIELD Android TV=NVIDIA/mdarcy/mdarcy:9/PPR1.180610.011/4079208_2235.1395:user/release-keys__2020-07-05 Nvidia Shield TV Pro (8.0.0 & 9):NVIDIA:SHIELD Android TV=NVIDIA/foster_e_hdd/foster:8.0.0/OPR6.170623.010/3507953_1441.7411:user/release-keys__2018-12-05;NVIDIA/foster_e_hdd/foster:9/PPR1.180610.011/4086637_1604.6430:user/release-keys__2019-07-05 OnePlus One (6.0.1):OnePlus:A0001=oneplus/bacon/A0001:6.0.1/MMB29X/ZNH0EAS2JK:user/release-keys OnePlus 2 (6.0.1):OnePlus:ONE A2003=OnePlus/OnePlus2/OnePlus2:6.0.1/MMB29M/1447858500:user/release-keys @@ -143,47 +147,51 @@ OnePlus 3 (8.0.0 & 9):OnePlus:ONEPLUS A3000=OnePlus/OnePlus3/OnePlus3:8.0.0/OPR1 OnePlus 3T (8.0.0 & 9):OnePlus:ONEPLUS A3003=OnePlus/OnePlus3/OnePlus3T:8.0.0/OPR1.170623.032/1812060016:user/release-keys__2018-11-01;OnePlus/OnePlus3/OnePlus3T:9/PKQ1.181203.001/1911042108:user/release-keys__2019-10-01 OnePlus 5 (8.1.0 & 9 & 10):OnePlus:ONEPLUS A5000=OnePlus/OnePlus5/OnePlus5:8.1.0/OPM1.171019.011/1809241512:user/release-keys__2018-09-01;OnePlus/OnePlus5/OnePlus5:9/PKQ1.180716.001/2002242003:user/release-keys__2020-02-01;OnePlus/OnePlus5/OnePlus5:10/QKQ1.191014.012/2006012143:user/release-keys__2020-04-05 OnePlus 5T (7.1.1 & 8.0.0 & 8.1.0 & 9 & 10):OnePlus:ONEPLUS A5010=OnePlus/OnePlus5T/OnePlus5T:7.1.1/NMF26X/12152312:user/release-keys;OnePlus/OnePlus5T/OnePlus5T:8.0.0/OPR1.170623.032/02040656:user/release-keys;OnePlus/OnePlus5T/OnePlus5T:8.1.0/OPM1.171019.011/1809241512:user/release-keys__2018-09-01;OnePlus/OnePlus5T/OnePlus5T:9/PKQ1.180716.001/2002242012:user/release-keys__2020-02-01;OnePlus/OnePlus5T/OnePlus5T:10/QKQ1.191014.012/2006012146:user/release-keys__2020-04-05 -OnePlus 6 (8.1.0 & 9 & 10):OnePlus:ONEPLUS A6003=OnePlus/OnePlus6/OnePlus6:8.1.0/OPM1.171019.011/06140300:user/release-keys;OnePlus/OnePlus6/OnePlus6:9/PKQ1.180716.001/1908012000:user/release-keys__2019-08-01;OnePlus/OnePlus6/OnePlus6:10/QKQ1.190716.003/2007191452:user/release-keys__2020-07-01 -OnePlus 6T (9 & 10):OnePlus:ONEPLUS A6013=OnePlus/OnePlus6T/OnePlus6T:9/PKQ1.180716.001/1909112330:user/release-keys__2019-08-01;OnePlus/OnePlus6T/OnePlus6T:10/QKQ1.190716.003/2007171848:user/release-keys__2020-07-01 +OnePlus 6 (8.1.0 & 9 & 10):OnePlus:ONEPLUS A6003=OnePlus/OnePlus6/OnePlus6:8.1.0/OPM1.171019.011/06140300:user/release-keys;OnePlus/OnePlus6/OnePlus6:9/PKQ1.180716.001/1908012000:user/release-keys__2019-08-01;OnePlus/OnePlus6/OnePlus6:10/QKQ1.190716.003/2010042216:user/release-keys__2020-09-01 +OnePlus 6T (9 & 10):OnePlus:ONEPLUS A6013=OnePlus/OnePlus6T/OnePlus6T:9/PKQ1.180716.001/1909112330:user/release-keys__2019-08-01;OnePlus/OnePlus6T/OnePlus6T:10/QKQ1.190716.003/2010042216:user/release-keys__2020-09-01 OnePlus 6T T-Mobile (9):OnePlus:ONEPLUS A6013=OnePlus/OnePlus6TSingle/OnePlus6TSingle:9/PKQ1.180716.001/1810291147:user/release-keys__2018-11-01 -OnePlus 7 GM1900 (10):OnePlus:GM1900=OnePlus/OnePlus7_CH/OnePlus7:10/QKQ1.190716.003/2005132200:user/release-keys__2020-05-01 +OnePlus 7 China GM1900 (10):OnePlus:GM1900=OnePlus/OnePlus7_CH/OnePlus7:10/QKQ1.190716.003/2005132200:user/release-keys__2020-05-01 OnePlus 7 GM1901 (9 & 10):OnePlus:GM1901=OnePlus/OnePlus7/OnePlus7:9/PKQ1.190110.001/1907280700:user/release-keys__2019-08-01;OnePlus/OnePlus7/OnePlus7:10/QKQ1.190716.003/2009152051:user/release-keys__2020-09-01 -OnePlus 7 GM1903 (9 & 10):OnePlus:GM1903=OnePlus/OnePlus7_EEA/OnePlus7:9/PKQ1.190110.001/1907280700:user/release-keys__2019-08-01;OnePlus/OnePlus7_EEA/OnePlus7:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 +OnePlus 7 Europe GM1903 (9 & 10):OnePlus:GM1903=OnePlus/OnePlus7_EEA/OnePlus7:9/PKQ1.190110.001/1907280700:user/release-keys__2019-08-01;OnePlus/OnePlus7_EEA/OnePlus7:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 OnePlus 7 GM1905 (9 & 10):OnePlus:GM1905=OnePlus/OnePlus7/OnePlus7:9/PKQ1.190110.001/1907280700:user/release-keys__2019-08-01;OnePlus/OnePlus7/OnePlus7:10/QKQ1.190716.003/2009152051:user/release-keys__2020-09-01 -OnePlus 7 Pro GM1910 (10):OnePlus:GM1910=OnePlus/OnePlus7Pro_CH/OnePlus7Pro:10/QKQ1.190716.003/2005132200:user/release-keys__2020-05-01 +OnePlus 7 China Pro GM1910 (10):OnePlus:GM1910=OnePlus/OnePlus7Pro_CH/OnePlus7Pro:10/QKQ1.190716.003/2005132200:user/release-keys__2020-05-01 OnePlus 7 Pro GM1911 (9 & 10):OnePlus:GM1911=OnePlus/OnePlus7Pro/OnePlus7Pro:9/PKQ1.190110.001/1907281556:user/release-keys__2019-08-01;OnePlus/OnePlus7Pro/OnePlus7Pro:10/QKQ1.190716.003/2009281532:user/release-keys__2020-09-01 -OnePlus 7 Pro GM1913 (9 & 10):OnePlus:GM1913=OnePlus/OnePlus7Pro_EEA/OnePlus7Pro:9/PKQ1.190110.001/1907281556:user/release-keys__2019-08-01;OnePlus/OnePlus7Pro_EEA/OnePlus7Pro:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 -OnePlus 7 Pro GM1915 (9):OnePlus:GM1915=OnePlus/OnePlus7ProTMO/OnePlus7ProTMO:9/PKQ1.190110.001/1905021004:user/release-keys__2019-03-01 +OnePlus 7 Europe Pro GM1913 (9 & 10):OnePlus:GM1913=OnePlus/OnePlus7Pro_EEA/OnePlus7Pro:9/PKQ1.190110.001/1907281556:user/release-keys__2019-08-01;OnePlus/OnePlus7Pro_EEA/OnePlus7Pro:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 +OnePlus 7 T-Mobile Pro GM1915 (9):OnePlus:GM1915=OnePlus/OnePlus7ProTMO/OnePlus7ProTMO:9/PKQ1.190110.001/1905021004:user/release-keys__2019-03-01 OnePlus 7 Pro GM1917 (9 & 10):OnePlus:GM1917=OnePlus/OnePlus7Pro/OnePlus7Pro:9/PKQ1.190110.001/1907281556:user/release-keys__2019-08-01;OnePlus/OnePlus7Pro/OnePlus7Pro:10/QKQ1.190716.003/2009281532:user/release-keys__2020-09-01 -OnePlus 7 Pro NR GM1920 (9 & 10):OnePlus:GM1920=OnePlus/OnePlus7ProNR_EEA/OnePlus7ProNR:9/PKQ1.190223.001/1912171007:user/release-keys__2019-12-01;OnePlus/OnePlus7ProNR_EEA/OnePlus7ProNR:10/QKQ1.190716.003/2009072253:user/release-keys__2020-09-01 -OnePlus 7 Pro NR Spr GM1925 (9 & 10):OnePlus:GM1925=OnePlus/OP7ProNRSpr/OP7ProNRSpr:9/PKQ1.190223.001/1908201041:user/release-keys__2019-08-01;OnePlus/OP7ProNRSpr/OP7ProNRSpr:10/QKQ1.190716.003/2006051914:user/release-keys__2020-06-01 -OnePlus 7T HD1900 (10):OnePlus:HD1900=OnePlus/OnePlus7T_CH/OnePlus7T:10/QKQ1.190716.003/2005131900:user/release-keys__2020-05-01 +OnePlus 7 Pro NR Europe GM1920 (9 & 10):OnePlus:GM1920=OnePlus/OnePlus7ProNR_EEA/OnePlus7ProNR:9/PKQ1.190223.001/1912171007:user/release-keys__2019-12-01;OnePlus/OnePlus7ProNR_EEA/OnePlus7ProNR:10/QKQ1.190716.003/2009072253:user/release-keys__2020-09-01 +OnePlus 7 Pro NR Sprint GM1925 (9 & 10):OnePlus:GM1925=OnePlus/OP7ProNRSpr/OP7ProNRSpr:9/PKQ1.190223.001/1908201041:user/release-keys__2019-08-01;OnePlus/OP7ProNRSpr/OP7ProNRSpr:10/QKQ1.190716.003/2006051914:user/release-keys__2020-06-01 +OnePlus 7T China HD1900 (10):OnePlus:HD1900=OnePlus/OnePlus7T_CH/OnePlus7T:10/QKQ1.190716.003/2005131900:user/release-keys__2020-05-01 OnePlus 7T HD1901 (10):OnePlus:HD1901=OnePlus/OnePlus7T/OnePlus7T:10/QKQ1.190716.003/2009281618:user/release-keys__2020-09-01 -OnePlus 7T HD1903 (10):OnePlus:HD1903=OnePlus/OnePlus7T_EEA/OnePlus7T:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 +OnePlus 7T Europe HD1903 (10):OnePlus:HD1903=OnePlus/OnePlus7T_EEA/OnePlus7T:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 OnePlus 7T HD1905 (10):OnePlus:HD1905=OnePlus/OnePlus7T/OnePlus7T:10/QKQ1.190716.003/2009281618:user/release-keys__2020-09-01 -OnePlus 7T Pro HD1910 (10):OnePlus:HD1910=OnePlus/OnePlus7TPro_CH/OnePlus7TPro:10/QKQ1.190716.003/2005131900:user/release-keys__2020-05-01 +OnePlus 7T Cina Pro HD1910 (10):OnePlus:HD1910=OnePlus/OnePlus7TPro_CH/OnePlus7TPro:10/QKQ1.190716.003/2005131900:user/release-keys__2020-05-01 OnePlus 7T Pro HD1911 (10):OnePlus:HD1911=OnePlus/OnePlus7TPro/OnePlus7TPro:10/QKQ1.190716.003/2009281542:user/release-keys__2020-09-01 -OnePlus 7T Pro HD1913 (10):OnePlus:HD1913=OnePlus/OnePlus7TPro_EEA/OnePlus7TPro:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 +OnePlus 7T Europe Pro HD1913 (10):OnePlus:HD1913=OnePlus/OnePlus7TPro_EEA/OnePlus7TPro:10/QKQ1.190716.003/2009281503:user/release-keys__2020-09-01 OnePlus 7T Pro HD1917 (10):OnePlus:HD1917=OnePlus/OnePlus7TPro/OnePlus7TPro:10/QKQ1.190716.003/2009281542:user/release-keys__2020-09-01 OnePlus 7T Pro NR HD1925 (10):OnePlus:HD1925=OnePlus/OnePlus7TProNR/OnePlus7TProNR:10/QKQ1.190716.003/2009150235:user/release-keys__2020-08-01 -OnePlus 8 IN2010 (10):OnePlus:IN2010=OnePlus/OnePlus8_CH/OnePlus8:10/QKQ1.191222.002/2006300106:user/release-keys__2020-06-01 -OnePlus 8 IN2011 (10):OnePlus:IN2011=OnePlus/OnePlus8_IND/OnePlus8:10/QKQ1.191222.002/2008080019:user/release-keys__2020-08-01 -OnePlus 8 IN2013 (10):OnePlus:IN2013=OnePlus/OnePlus8_EEA/OnePlus8:10/QKQ1.191222.002/2008150504:user/release-keys__2020-08-01 -OnePlus 8 IN2015 (10 & 11):OnePlus:IN2015=OnePlus/OnePlus8/OnePlus8:10/QKQ1.191222.002/2008080019:user/release-keys__2020-08-01;OnePlus/OnePlus8/OnePlus8:11/RP1A.201005.001/2009181200:user/release-keys__2020-09-01 -OnePlus 8 IN2015 Visible (10):OnePlus:IN2015=OnePlus/OnePlus8Visible/OnePlus8Visible:10/QKQ1.191222.002/2007221621:user/release-keys__2020-06-01 -OnePlus 8 IN2017 (10):OnePlus:IN2017=OnePlus/OnePlus8TMO/OnePlus8TMO:10/QKQ1.191222.002/2006102149:user/release-keys__2020-06-01 -OnePlus 8 IN2019 (10):OnePlus:IN2019=OnePlus/OnePlus8VZW/OnePlus8VZW:10/QKQ1.191222.002/2004072220:user/release-keys__2020-02-01 -OnePlus 8 Pro IN2020 (10):OnePlus:IN2020=OnePlus/OnePlus8Pro_CH/OnePlus8Pro:10/QKQ1.191222.002/2007021926:user/release-keys__2020-06-01 -OnePlus 8 Pro IN2021 (10):OnePlus:IN2021=OnePlus/OnePlus8Pro_IND/OnePlus8Pro:10/QKQ1.191222.002/2008080018:user/release-keys__2020-08-01 -OnePlus 8 Pro IN2023 (10):OnePlus:IN2023=OnePlus/OnePlus8Pro_EEA/OnePlus8Pro:10/QKQ1.191222.002/2008150503:user/release-keys__2020-08-01 -OnePlus 8 Pro IN2025 (10 & 11):OnePlus:IN2025=OnePlus/OnePlus8Pro/OnePlus8Pro:10/QKQ1.191222.002/2008080018:user/release-keys__2020-08-01;OnePlus/OnePlus8Pro/OnePlus8Pro:11/RP1A.201005.001/2009181200:user/release-keys__2020-09-01 -OnePlus Nord AC2001 (10):OnePlus:AC2001=OnePlus/Nord_IND/Nord:10/QKQ1.200412.002/2009260350:user/release-keys__2020-09-01 -OnePlus Nord European AC2003 (10):OnePlus:AC2003=OnePlus/Nord_EEA/Nord:10/QKQ1.200412.002/2009260426:user/release-keys__2020-09-01 +OnePlus 8 China IN2010 (10):OnePlus:IN2010=OnePlus/OnePlus8_CH/OnePlus8:10/QKQ1.191222.002/2006300106:user/release-keys__2020-06-01 +OnePlus 8 India IN2011 (10 & 11):OnePlus:IN2011=OnePlus/OnePlus8_IND/OnePlus8:10/QKQ1.191222.002/2008080019:user/release-keys__2020-08-01;OnePlus/OnePlus8_IND/OnePlus8:11/RP1A.201005.001/2009301800:user/release-keys__2020-09-01 +OnePlus 8 Europe IN2013 (10 & 11):OnePlus:IN2013=OnePlus/OnePlus8_EEA/OnePlus8:10/QKQ1.191222.002/2008150504:user/release-keys__2020-08-01;OnePlus/OnePlus8_EEA/OnePlus8:11/RP1A.201005.001/2009301800:user/release-keys__2020-09-01 +OnePlus 8 Global IN2015 (10 & 11):OnePlus:IN2015=OnePlus/OnePlus8/OnePlus8:10/QKQ1.191222.002/2008080019:user/release-keys__2020-08-01;OnePlus/OnePlus8/OnePlus8:11/RP1A.201005.001/2010031600:user/release-keys__2020-09-01 +OnePlus 8 Visible IN2015 (10):OnePlus:IN2015=OnePlus/OnePlus8Visible/OnePlus8Visible:10/QKQ1.191222.002/2007221621:user/release-keys__2020-06-01 +OnePlus 8 T-Mobile IN2017 (10):OnePlus:IN2017=OnePlus/OnePlus8TMO/OnePlus8TMO:10/QKQ1.191222.002/2006102149:user/release-keys__2020-06-01 +OnePlus 8 Verizon IN2019 (10):OnePlus:IN2019=OnePlus/OnePlus8VZW/OnePlus8VZW:10/QKQ1.191222.002/2004072220:user/release-keys__2020-02-01 +OnePlus 8 China Pro IN2020 (10):OnePlus:IN2020=OnePlus/OnePlus8Pro_CH/OnePlus8Pro:10/QKQ1.191222.002/2007021926:user/release-keys__2020-06-01 +OnePlus 8 India Pro IN2021 (10 & 11):OnePlus:IN2021=OnePlus/OnePlus8Pro_IND/OnePlus8Pro:10/QKQ1.191222.002/2008080018:user/release-keys__2020-08-01;OnePlus/OnePlus8Pro_IND/OnePlus8Pro:11/RP1A.201005.001/2009301800:user/release-keys__2020-09-01 +OnePlus 8 Europe Pro IN2023 (10 & 11):OnePlus:IN2023=OnePlus/OnePlus8Pro_EEA/OnePlus8Pro:10/QKQ1.191222.002/2008150503:user/release-keys__2020-08-01;OnePlus/OnePlus8Pro_EEA/OnePlus8Pro:11/RP1A.201005.001/2009301800:user/release-keys__2020-09-01 +OnePlus 8 Global Pro IN2025 (10 & 11):OnePlus:IN2025=OnePlus/OnePlus8Pro/OnePlus8Pro:10/QKQ1.191222.002/2008080018:user/release-keys__2020-08-01;OnePlus/OnePlus8Pro/OnePlus8Pro:11/RP1A.201005.001/2010031600:user/release-keys__2020-09-01 +OnePlus 8T India KB2001 (11):OnePlus:KB2001=OnePlus/OnePlus8T_IND/OnePlus8T:11/RP1A.201005.001/2009181137:user/release-keys__2020-09-01 +OnePlus 8T Europe KB2003 (11):OnePlus:XX2013=OnePlus/OnePlus8T_EEA/OnePlus8T:11/RP1A.201005.001/2009210039:user/release-keys__2020-09-01 +OnePlus 8T Global KB2005 (11):OnePlus:KB2005=OnePlus/OnePlus8T/OnePlus8T:11/RP1A.201005.001/2009181139:user/release-keys__2020-09-01 +OnePlus 8T T-Mobile KB2007 (11):OnePlus:KB2007=OnePlus/OnePlus8TTMO/OnePlus8TTMO:11/RP1A.201005.001/2009240808:user/release-keys__2020-09-01 +OnePlus Nord India AC2001 (10):OnePlus:AC2001=OnePlus/Nord_IND/Nord:10/QKQ1.200412.002/2009260350:user/release-keys__2020-09-01 +OnePlus Nord Europe AC2003 (10):OnePlus:AC2003=OnePlus/Nord_EEA/Nord:10/QKQ1.200412.002/2009260426:user/release-keys__2020-09-01 OnePlus Nord Global AC2003 (10):OnePlus:AC2003=OnePlus/Nord/Nord:10/QKQ1.200412.002/2009260426:user/release-keys__2020-09-01 -OPPO Find X2 Neo European CPH2009 (10):OPPO:CPH2009=OPPO/CPH2009EEA/OP4C2DL1:10/QKQ1.200216.002/1596223341:user/release-keys__2020-08-05 +OPPO Find X2 Neo Europe CPH2009 (10):OPPO:CPH2009=OPPO/CPH2009EEA/OP4C2DL1:10/QKQ1.200216.002/1596223341:user/release-keys__2020-08-05 OPPO Neo 7 A33w (5.1):Oppo:A33w=OPPO/A33w/A33w:5.1/LMY47I/1487829433:user/release-keys OPPO Neo 7 A1603 (5.1):Oppo:A1603=OPPO/A1603/A1603:5.1/LMY47I/1489407760:user/release-keys -POCO F2 Pro European (10):POCO:POCO F2 Pro=POCO/lmi_eea/lmi:10/QKQ1.191117.002/V12.0.2.0.QJKEUXM:user/release-keys__2020-07-01 +POCO F2 Pro Europe (10):POCO:POCO F2 Pro=POCO/lmi_eea/lmi:10/QKQ1.191117.002/V12.0.3.0.QJKEUXM:user/release-keys__2020-09-01 POCO F2 Pro Global (10):Xiaomi:POCO F2 Pro=POCO/lmi_global/lmi:10/QKQ1.191117.002/V12.0.4.0.QJKMIXM:user/release-keys__2020-09-01 POCO X2 (10):POCO:POCO X2=POCO/phoenixin/phoenixin:10/QKQ1.190825.002/V12.0.1.0.QGHINXM:user/release-keys__2020-07-01 POCO X3 NFC Global (10):POCO:M2007J20CG=POCO/surya_global/surya:10/QKQ1.200512.002/V12.0.2.0.QJGMIXM:user/release-keys__2020-09-01 @@ -193,11 +201,12 @@ Realme X2 Pro (10):Realme:RMX1931=realme/RMX1931EEA/RMX1931L1:10/QKQ1.191021.002 Redmi K30 Pro (10):Redmi:Redmi K30 Pro=Redmi/lmi/lmi:10/QKQ1.191117.002/V12.0.1.0.QJKCNXM:user/release-keys__2020-06-01 Redmi K30 Pro Zoom Edition (10):Redmi:Redmi K30 Pro Zoom Edition=Redmi/lmipro/lmipro:10/QKQ1.191117.002/V11.0.16.0.QJKCNXM:user/release-keys__2020-04-01 Redmi K30 Ultra (10):Redmi:M2006J10C=Redmi/cezanne/cezanne:10/QP1A.190711.020/V12.0.12.0.QJNCNXM:user/release-keys__2020-09-01 +Redmi Note 8 Pro Global (9 & 10):Redmi:Redmi Note 8 Pro=Redmi/begonia/begonia:9/PPR1.180610.011/V10.4.1.0.PGGMIXM:user/release-keys__2019-09-01;Redmi/begonia/begonia:10/QP1A.190711.020/V12.0.3.0.QGGMIXM:user/release-keys__2020-08-01 Redmi Note 8 Pro India (9 & 10):Redmi:Redmi Note 8 Pro=Redmi/begoniain/begoniain:9/PPR1.180610.011/V10.4.4.0.PGGINXM:user/release-keys__2019-09-01;Redmi/begoniain/begoniain:10/QP1A.190711.020/V11.0.2.0.QGGINXM:user/release-keys__2020-02-01 Redmi Note 8 Pro Russia (9 & 10):Redmi:Redmi Note 8 Pro=Redmi/begonia_ru/begonia:9/PPR1.180610.011/V11.0.3.0.PGGRUXM:user/release-keys__2019-11-01;Redmi/begonia_ru/begonia:10/QP1A.190711.020/V11.0.2.0.QGGRUXM:user/release-keys__2020-02-01 -Redmi Note 9 Pro European (10):Redmi:Redmi Note 9 Pro=Redmi/joyeuse_eea/joyeuse:10/QKQ1.191215.002/V11.0.4.0.QJZEUXM:user/release-keys__2020-07-01 +Redmi Note 9 Pro Europe (10):Redmi:Redmi Note 9 Pro=Redmi/joyeuse_eea/joyeuse:10/QKQ1.191215.002/V11.0.4.0.QJZEUXM:user/release-keys__2020-07-01 Redmi Note 9 Pro Global (10):Redmi:Redmi Note 9 Pro=Redmi/joyeuse_global/joyeuse:10/QKQ1.191215.002/V11.0.5.0.QJZMIXM:user/release-keys__2020-07-01 -Redmi Note 9S European (10):Redmi:Redmi Note 9S=Redmi/curtana_eea/curtana:10/QKQ1.191215.002/V11.0.4.0.QJWEUXM:user/release-keys__2020-07-01 +Redmi Note 9S Europe (10):Redmi:Redmi Note 9S=Redmi/curtana_eea/curtana:10/QKQ1.191215.002/V11.0.4.0.QJWEUXM:user/release-keys__2020-07-01 Redmi Note 9S Global (10):Redmi:Redmi Note 9S:=Redmi/curtana_global/curtana:10/QKQ1.191215.002/V11.0.10.0.QJWMIXM:user/release-keys__2020-07-01 Samsung Galaxy A01 Core (10):Samsung:SM-A013G=samsung/a01corextc/a01core:10/QP1A.190711.020/A013GXXU1ATGE:user/release-keys__2020-07-01 Samsung Galaxy A3 2015 SM-A300FU (6.0.1):Samsung:SM-A300FU=samsung/a3ultexx/a3ulte:6.0.1/MMB29M/A300FUXXU1CRF1:user/release-keys @@ -210,7 +219,7 @@ Samsung Galaxy A7 2017 SM-A720F (8.0.0):Samsung:SM-A720F=samsung/a7y17ltexx/a7y1 Samsung Galaxy A7 2018 SM-A750GN (9 & 10):samsung:SM-A750GN=samsung/a7y18ltedx/a7y18lte:9/PPR1.180610.011/A750GNDXU2BSD2:user/release-keys__2019-04-01;samsung/a7y18ltedx/a7y18lte:10/QP1A.190711.020/A750GNDXS6CTE1:user/release-keys__2020-06-01 Samsung Galaxy A8 Plus SM-A730F (7.1.1):Samsung:SM-A730F=samsung/jackpot2ltexx/jackpot2lte:7.1.1/NMF26X/A730FXXU2ARD1:user/release-keys Samsung Galaxy A20 SM-A205W (9):Samsung:SM-A205W=samsung/a20cs/a20:9/PPR1.180610.011/A205WVLU3ASK2:user/release-keys__2019-11-01 -Samsung Galaxy A40 SM-A405FN (10):Samsung:SM-A405FN=samsung/a40xx/a40:10/QP1A.190711.020/A405FNXXU3BTG2:user/release-keys__2020-07-01 +Samsung Galaxy A40 SM-A405FN (10):Samsung:SM-A405FN=samsung/a40xx/a40:10/QP1A.190711.020/A405FNXXS3BTI3:user/release-keys__2020-09-01 Samsung Galaxy A50 SM-A505F (9):Samsung:SM-A505F=samsung/a50dd/a50:9/PPR1.180610.011/A505FDDU1ASD6:user/release-keys__2019-04-01 Samsung Galaxy A51 SM-A515F (10):Samsung:SM-A515F=samsung/a51nsxx/a51:10/QP1A.190711.020/A515FXXU1ASKJ:user/release-keys__2019-12-01 Samsung Galaxy A90 5G SM-A908B (9):samsung:SM-A908B=samsung/r3qxx/r3q:9/PPR1.180610.011/A908BXXU2ASK5:user/release-keys__2019-11-01 @@ -239,6 +248,7 @@ Samsung Galaxy Note 10 Plus SM-N975F (10):Samsung:SM-N975F=samsung/d2sxx/d2s:10/ Samsung Galaxy Note 10 Plus SM-N975U (10):Samsung:SM-N975U=samsung/d2qsq/d2q:10/QP1A.190711.020/N975USQU2BTA1:user/release-keys__2020-01-01 Samsung Galaxy Note 10.1 2014 SM-P600 (5.1.1):Samsung:SM-P600=samsung/lt03wifixx/lt03wifi:5.1.1/LMY47X/P600XXUDOJ3:user/release-keys Samsung Galaxy Note 20 Ultra SM-N986U (10):Samsung:SM-N986U=samsung/c2qsqw/c2q:10/QP1A.190711.020/N986USQU1ATH3:user/release-keys__2020-08-01 +Samsung Galaxy Note 20 Ultra 5G SM-N9860 (10):Samsung:SM-N9860=samsung/c2qzhx/c2q:10/QP1A.190711.020/N9860ZSU1ATJ6:user/release-keys__2020-09-01 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 Active GT-I9295 (5.0.1):Samsung:GT-I9295=samsung/jactiveltexx/jactivelte:5.0.1/LRX22C/I9295XXSDQD6:user/release-keys @@ -315,19 +325,21 @@ Xiaomi Mi 5S (7.0):Xiaomi:MI 5s=Xiaomi/capricorn/capricorn:7.0/NRD90M/V9.5.4.0.N Xiaomi Mi 5S Plus (6.0.1 & 7.0):Xiaomi:MI 5s Plus=Xiaomi/natrium/natrium:6.0.1/MXB48T/V8.5.2.0.MBGMIED:user/release-keys;Xiaomi/natrium/natrium:7.0/NRD90M/V9.6.2.0.NBGMIFD:user/release-keys Xiaomi Mi 6 (8.0.0 & 9):Xiaomi:MI 6=Xiaomi/sagit/sagit:8.0.0/OPR1.170623.027/V9.2.3.0.OCAMIEK:user/release-keys;Xiaomi/sagit/sagit:9/PKQ1.190118.001/V11.0.6.0.PCAMIXM:user/release-keys__2019-09-01 Xiaomi Mi 8 (8.1.0 & 9 & 10):Xiaomi:MI 8=Xiaomi/dipper/dipper:8.1.0/OPM1.171019.011/V9.5.5.0.OEAMIFA:user/release-keys;Xiaomi/dipper/dipper:9/PKQ1.180729.001/V10.2.3.0.PEAMIXM:user/release-keys__2019-02-01;Xiaomi/dipper/dipper:10/QKQ1.190828.002/V11.0.3.0.QEAMIXM:user/release-keys__2020-01-01 -Xiaomi Mi 9 European (9):Xiaomi:MI 9=Xiaomi/cepheus_eea/cepheus:9/PKQ1.181121.001/V10.2.27.0.PFAEUXM:user/release-keys__2019-06-01 +Xiaomi Mi 9 Europe (9):Xiaomi:MI 9=Xiaomi/cepheus_eea/cepheus:9/PKQ1.181121.001/V10.2.27.0.PFAEUXM:user/release-keys__2019-06-01 Xiaomi Mi 9 Lite (9):Xiaomi:Mi 9 Lite=Xiaomi/pyxis/pyxis:9/PKQ1.181121.001/V11.3.3.0.PFCMIXM:user/release-keys__2019-10-01 Xiaomi Mi 9 SE (9):MI 9 SE=Xiaomi/grus/grus:9/PKQ1.181121.001/V11.0.4.0.PFBMIXM:user/release-keys__2019-10-01 -Xiaomi Mi 9T European (9 & 10):Xiaomi:Mi 9T=Xiaomi/davinci_eea/davinci:9/PKQ1.190302.001/V10.3.12.0.PFJEUXM:user/release-keys__2019-07-01;Xiaomi/davinci_eea/davinci:10/QKQ1.190825.002/V12.0.2.0.QFJEUXM:user/release-keys__2020-07-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 Europe (9 & 10):Xiaomi:Mi 9T=Xiaomi/davinci_eea/davinci:9/PKQ1.190302.001/V10.3.12.0.PFJEUXM:user/release-keys__2019-07-01;Xiaomi/davinci_eea/davinci:10/QKQ1.190825.002/V12.0.3.0.QFJEUXM:user/release-keys__2020-10-01 +Xiaomi Mi 9T Global (10):Xiaomi:Mi 9T=Xiaomi/davinci/davinci:10/QKQ1.190825.002/V12.0.5.0.QFJMIXM:user/release-keys__2020-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 European (10):Xiaomi:Mi 10=Xiaomi/umi_eea/umi:10/QKQ1.191117.002/V11.0.10.0.QJBEUVF:user/release-keys__2020-07-01 +Xiaomi MI 10 Europe (10):Xiaomi:Mi 10=Xiaomi/umi_eea/umi:10/QKQ1.191117.002/V11.0.10.0.QJBEUVF:user/release-keys__2020-07-01 Xiaomi Mi 10 Global (10 & 11):Xiaomi:Mi 10=Xiaomi/umi/umi:10/QKQ1.191117.002/V11.0.15.0.QJBCNXM:user/release-keys__2020-02-01;Xiaomi/umi/umi:11/RKQ1.200710.002/V12.1.3.0.RJBCNXM:user/release-keys__2020-09-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 Lite 5G Europe (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 Lite 5G Global (10):Xiaomi:M2002J9G=Xiaomi/monet_global/monet:10/QKQ1.191222.002/V12.0.1.0.QJIMIXM:user/release-keys__2020-08-01 Xiaomi Mi 10 Pro (10 & 11):Xiaomi:Mi 10 Pro=Xiaomi/cmi/cmi:10/QKQ1.191117.002/V12.0.4.0.QJACNXM:user/release-keys__2020-07-01;Xiaomi/cmi/cmi:11/RKQ1.200710.002/V12.1.2.0.RJACNXM:user/release-keys__2020-09-01 +Xiaomi Mi 10 Ultra (10):Xiaomi:Mi 10 Ultra=Xiaomi/cas/cas:10/QKQ1.200419.002/V12.0.10.0.QJJCNXM:user/release-keys__2020-08-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.24.0.PDHMIXM:user/release-keys__2020-08-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.13.0.QDIMIXM:user/release-keys__2020-08-05 -Xiaomi Mi A2 Lite (8.1.0 & 9 & 10):Xiaomi:Mi A2 Lite=xiaomi/daisy/daisy_sprout:8.1.0/OPM1.171019.019/V9.6.11.0.ODLMIFF:user/release-keys__2018-11-01;xiaomi/daisy/daisy_sprout:9/PKQ1.180917.001/V10.0.20.0.PDLMIXM:user/release-keys__2020-03-01;xiaomi/daisy/daisy_sprout:10/QKQ1.191002.002/V11.0.11.0.QDLMIXM:user/release-keys__2020-09-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.15.0.QDIMIXM:user/release-keys__2020-10-01 +Xiaomi Mi A2 Lite (8.1.0 & 9 & 10):Xiaomi:Mi A2 Lite=xiaomi/daisy/daisy_sprout:8.1.0/OPM1.171019.019/V9.6.11.0.ODLMIFF:user/release-keys__2018-11-01;xiaomi/daisy/daisy_sprout:9/PKQ1.180917.001/V10.0.20.0.PDLMIXM:user/release-keys__2020-03-01;xiaomi/daisy/daisy_sprout:10/QKQ1.191002.002/V11.0.12.0.QDLMIXM:user/release-keys__2020-10-01 Xiaomi Mi A3 (9 & 10):Xiaomi:Mi A3=Xiaomi/laurel_sprout/laurel_sprout:9/PKQ1.190416.001/V10.3.16.0.PFQMIXM:user/release-keys__2020-03-05;Xiaomi/laurel_sprout/laurel_sprout:10/QKQ1.190910.002/V11.0.20.0.QFQMIXM:user/release-keys__2020-08-05 Xiaomi Mi Box S (9):Xiaomi:MIBOX4=Xiaomi/oneday/oneday:9/PI/2231:user/release-keys__2019-11-05 Xiaomi Mi Max (6.0.1):Xiaomi:MI MAX=Xiaomi/helium/helium:6.0.1/MMB29M/V8.2.3.0.MBDMIDL:user/release-keys @@ -338,10 +350,10 @@ Xiaomi Mi Mix 2S (8.0.0 & 9 & 10):Xiaomi:Mi MIX 2S=Xiaomi/polaris/polaris:8.0.0/ Xiaomi Mi Mix 3 (9 & 10):Xiaomi:Mi MIX 3=Xiaomi/perseus/perseus:9/PKQ1.180729.001/V10.3.1.0.PEEMIXM:user/release-keys__2019-03-01;Xiaomi/perseus/perseus:10/QKQ1.190828.002/V11.0.3.0.QEEMIXM:user/release-keys__2020-02-01 Xiaomi Mi Note 2 (7.0 & 8.0.0):Xiaomi:Mi Note 2=Xiaomi/scorpio/scorpio:7.0/NRD90M/V9.2.1.0.NADMIEK:user/release-keys;Xiaomi/scorpio/scorpio:8.0.0/OPR1.170623.032/V9.6.1.0.OADCNFD:user/release-keys Xiaomi Mi Note 3 (8.1.0):Xiaomi:Mi Note 3=Xiaomi/jason/jason:8.1.0/OPM1.171019.019/V10.2.2.0.OCHMIXM:user/release-keys__2018-12-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 Note 10 Europe (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 (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/V12.0.1.0.QEJMIXM:user/release-keys__2020-08-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/V12.0.2.0.QEJMIXM:user/release-keys__2020-09-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 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 @@ -362,15 +374,15 @@ Xiaomi Redmi Note 3 Pro SE (6.0.1):Xiaomi:Redmi Note 3=Xiaomi/kate/kate:6.0.1/MM Xiaomi Redmi Note 4 (7.0):Redmi Note 4=xiaomi/mido/mido:7.0/NRD90M/V11.0.2.0.NCFMIXM:user/release-keys__2018-12-01 Xiaomi Redmi Note 4X (7.0):Redmi Note 4X=xiaomi/mido/mido:7.0/NRD90M/V11.0.2.0.NCFMIXM:user/release-keys__2018-12-01 Xiaomi Redmi Note 4 Mediatek (6.0):Xiaomi:Redmi Note 4=Xiaomi/nikel/nikel:6.0/MRA58K/V9.2.2.0.MBFMIEK:user/release-keys -Xiaomi Redmi Note 5 (7.1.2 & 8.1.0):Redmi Note 5=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys:xiaomi/vince/vince:8.1.0/OPM1.171019.019/V10.2.1.0.OEGMIXM:user/release-keys__2019-03-01 +Xiaomi Redmi Note 5 (7.1.2 & 8.1.0):Redmi Note 5=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys;xiaomi/vince/vince:8.1.0/OPM1.171019.019/V10.2.1.0.OEGMIXM:user/release-keys__2019-03-01 Xiaomi Redmi Note 5 Plus (7.1.2 & 8.1.0):Xiaomi:Redmi 5 Plus=xiaomi/vince/vince:7.1.2/N2G47H/V9.5.4.0.NEGMIFA:user/release-keys;xiaomi/vince/vince:8.1.0/OPM1.171019.019/V10.2.1.0.OEGMIXM:user/release-keys__2019-03-01 Xiaomi Redmi Note 5 Pro (8.1.0 & 9):Xiaomi:Redmi Note 5 Pro=xiaomi/whyred/whyred:8.1.0/OPM1.171019.011/V10.0.6.0.OEIMIFH:user/release-keys__2018-11-01;xiaomi/whyred/whyred:9/PKQ1.180904.001/V11.0.3.0.PEIMIXM:user/release-keys__2019-11-05 Xiaomi Redmi Note 5A Lite (7.1.2):Xiaomi:Redmi Note 5A=xiaomi/ugglite/ugglite:7.1.2/N2G47H/V9.1.2.0.NDFMIEI:user/release-keys Xiaomi Redmi Note 6 Pro (8.1.0):Xiaomi:Redmi Note 6 Pro=xiaomi/tulip/tulip:8.1.0/OPM1.171019.011/V10.0.5.0.OEKMIFH:user/release-keys__2018-10-01 Xiaomi Redmi Note 7 (9):Xiaomi:Redmi Note 7=xiaomi/lavender/lavender:9/PKQ1.180904.001/V11.0.5.0.PFGMIXM:user/release-keys__2020-01-05 Xiaomi Redmi Note 7 Pro (9):Xiaomi:Redmi Note 7 Pro=xiaomi/violet/violet:9/PKQ1.181203.001/V10.3.13.0.PFHINXM:user/release-keys__2019-08-01 -Xiaomi Redmi Note 8 (9):Xiaomi:Redmi Note 8=xiaomi/ginkgo/ginkgo:9/PKQ1.190616.001/V11.0.8.0.PCOMIXM:user/release-keys__2020-03-01 -Xiaomi Redmi Note 8T European (9):Redmi:Redmi Note 8T=xiaomi/willow_eea/willow:9/PKQ1.190616.001/V10.3.5.0.PCXEUXM:user/release-keys__2019-10-01 +Xiaomi Redmi Note 8 (9):Xiaomi:Redmi Note 8=xiaomi/ginkgo/ginkgo:9/PKQ1.190616.001/V11.0.11.0.PCOMIXM:user/release-keys__2020-09-01 +Xiaomi Redmi Note 8T Europe (9):Redmi:Redmi Note 8T=xiaomi/willow_eea/willow:9/PKQ1.190616.001/V10.3.5.0.PCXEUXM:user/release-keys__2019-10-01 Xiaomi Redmi Y1 (7.1.2):Xiaomi:Redmi Y1=xiaomi/ugg/ugg:7.1.2/N2G47H/V9.6.2.0.NDKMIFD:user/release-keys__2018-07-01 ZTE Axon 7 (7.1.1 & 8.0.0):ZTE:ZTE A2017=ZTE/P996A01_N/ailsa_ii:7.1.1/NMF26V/20171211.005949:user/release-keys;ZTE/P996A01_O/ailsa_ii:8.0.0/OPR1.170623.032/20180815.171922:user/release-keys__2018-07-01 ZTE Blade (6.0.1):ZTE:Blade A310=ZTE/P809A50_MY_MAX/P809A50:6.0.1/MMB29M/20161017.095504:user/release-keys diff --git a/common/util_functions.sh b/common/util_functions.sh index 5335990..5f8d1ce 100644 --- a/common/util_functions.sh +++ b/common/util_functions.sh @@ -12,7 +12,7 @@ else LOGFILE=$MHPCPATH/propsconf.log fi -# Finding and setting up installed Busybox +# Checking Magisk Busybox if [ -z "$INSTFN" ] && [ "$BOOTSTAGE" != "post" -a "$BOOTSTAGE" != "late" ]; then BBPATH=$ADBPATH/magisk/busybox if [ -f "$BBPATH" ]; then @@ -323,7 +323,7 @@ DIVIDER="${Y}=====================================${N}" # Header, $1=header text menu_header() { - # Don't clear screen if running from adb or if testing flag is active + # Don't clear screen if running from adb or if testing flag is active if [ -z "$ANDROID_SOCKET_adbd" ] && [ "$DEVTESTING" == "false" ]; then clear fi @@ -594,7 +594,7 @@ reboot_fn() { echo -en "Enter ${G}y${N}(es) or ${G}n${N}(o): " INV1=2 else - echo -en "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 fi read -r INPUT5 @@ -630,7 +630,7 @@ reboot_fn() { # Reset module, $1=header, $2=Run options reset_fn() { before_change - + cp -af $MODPATH/common/propsconf_late $LATEFILE >> $LOGFILE 2>&1 if [ "$FINGERPRINTENB" ] && [ "$FINGERPRINTENB" != 1 ]; then replace_fn FINGERPRINTENB 1 $FINGERPRINTENB $LATEFILE @@ -675,7 +675,7 @@ config_file() { CONFFINGERPRINT=$(getprop ro.vendor.build.fingerprint) echo "ro.vendor.build.fingerprint: ${CONFFINGERPRINT}" >> $LOGFILE 2>&1 fi - # Updates prop values (including fingerprint) + # Updates prop values (including fingerprint) PROPSTMPLIST=$PROPSLIST" ro.build.fingerprint " @@ -1468,7 +1468,7 @@ download_prints() { # Reset the module fingerprint change, $1=prop name, $2=run option reset_print() { before_change - + log_handler "Resetting device fingerprint to default system value." # Saves new module valueS @@ -1489,12 +1489,12 @@ reset_print() { # Use fingerprint, $1=header, $2=fingerprint change_print() { before_change - + log_handler "Changing device fingerprint to $2." # Saves new module values replace_fn MODULEFINGERPRINT "\"$MODULEFINGERPRINT\"" "\"$2\"" $LATEFILE - + # Updates prop change variables in propsconf_late replace_fn PRINTEDIT 0 1 $LATEFILE @@ -1515,7 +1515,7 @@ change_print() { # Use vendor fingerprint, $1=header, $2=Current state of option (enabled or disabled) change_print_vendor() { before_change - + if [ $2 == 1 ]; then STATETXT="Enabling" TMPVAL=0 @@ -1580,7 +1580,7 @@ print_parts() { fi replace_fn SIMDESCRIPTION "\"$SIMDESCRIPTION\"" "\"$VARDESCRIPTION\"" $LATEFILE replace_fn SIMDISPLAY "\"$SIMDISPLAY\"" "\"$VARDESCRIPTION\"" $LATEFILE - replace_fn SIMSDK "\"$SIMSDK\"" "\"$VARSDK\"" $LATEFILE + replace_fn SIMSDK "\"$SIMSDK\"" "\"$VARSDK\"" $LATEFILE TMPPARTS=$(get_eq_left "$(grep $1 $PRINTSLOC)" | sed 's|.*)\:||') if [ -z "$TMPPARTS" -a -s "$CSTMPRINTS" ]; then TMPPARTS=$(get_eq_left "$(grep $1 $CSTMPRINTS)" | sed 's|.*)\:||') @@ -1632,22 +1632,27 @@ set_partition_props() { } # ======================== Force 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() { +# Find OEM print file +fn_oem_file() { # Find what brand is being used if [ "$FINGERPRINTENB" == 1 -o "$PRINTMODULE" == 0 ] && [ "$PRINTEDIT" == 1 ] && [ "$MODULEFINGERPRINT" ]; then BASICATTDEV="$SIMBRAND" else BASICATTDEV="$(getprop ro.product.brand)" fi + # Find the OEM print file + TMPFILE="$(ls $MODPATH/printfiles | grep -i $BASICATTDEV)" + BASICATTMODEL="$(get_file_value "$MODPATH/printfiles/$TMPFILE" "BASICATTMODEL=")" +} + +# 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() { if [ "$BASICATTCUST" ]; then BASICATTMODEL=$BASICATTCUST elif [ "$BASICATTLIST" ]; then BASICATTMODEL=$BASICATTLIST else - # Find the OEM print file - TMPFILE="$(ls $MODPATH/printfiles | grep -i $BASICATTDEV)" - BASICATTMODEL="$(get_file_value "$MODPATH/printfiles/$TMPFILE" "BASICATTMODEL=")" + fn_oem_file fi # Write or load values if [ "$1" != "none" ]; then @@ -1768,7 +1773,7 @@ dev_sim_edit() { # Enable/disable the option, $1=header, $2=run option change_dev_sim() { before_change - + if [ $DEVSIM == 0 ]; then STATETXT="Enabling" TMPVAL=1 @@ -1797,7 +1802,7 @@ change_dev_sim() { # Change if prop should be simulated or not, $1=header, $2=prop name, $3=prop value, $4=run option change_sim_prop() { before_change - + if [ $3 == 1 ]; then STATETXT="enabled" else @@ -1817,7 +1822,7 @@ change_sim_prop() { # Change if description should be simulated or not, $1=header, $2=Check if option is enabled or disabled, $3=run option change_sim_descr() { before_change - + if [ $2 == 1 ]; then STATETXT="enabled" else @@ -1834,7 +1839,7 @@ change_sim_descr() { # 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() { before_change - + if [ $2 == 1 ]; then STATETXT="enabled" else @@ -1921,7 +1926,7 @@ reset_prop() { # Use prop value, $1=prop name, $2=new prop value, $3=run option change_prop() { before_change - + # Sets variables PROP=$(get_prop_type $1) MODULEPROP=$(echo "MODULE${PROP}" | tr '[:lower:]' '[:upper:]') @@ -1948,7 +1953,7 @@ change_prop() { # Reset all module prop changes, $1=header reset_prop_all() { before_change - + log_handler "Resetting all props to default values." for PROPTYPE in $PROPSLIST; do @@ -1962,7 +1967,7 @@ reset_prop_all() { # Changes prop replace_fn $REPROP "true" "false" $LATEFILE done - + # Updates prop change variables in propsconf_late replace_fn PROPCOUNT $PROPCOUNT 0 $LATEFILE replace_fn PROPEDIT 1 0 $LATEFILE @@ -2125,7 +2130,7 @@ reset_custprop() { break ;; esac - done + done fi TMPCUSTPROPS=$(echo $CURRCUSTPROPS | sed "s|${1}=${TMPVALUE}${TMPDELAY}${TMPBOOTEXEC}||" | tr -s " " | sed 's|^[ \t]*||;s|[ \t]*$||') # Updating custom props string @@ -2147,7 +2152,7 @@ reset_custprop() { prop_del() { if [ "$DELEDIT" == 1 ]; then log_handler "Deleting props." - for ITEM in $DELETEPROPS; do + for ITEM in $DELETEPROPS; do log_handler "Deleting $ITEM." case "$ITEM" in persist*) diff --git a/module.prop b/module.prop index 38d4f04..4919d3c 100644 --- a/module.prop +++ b/module.prop @@ -1,6 +1,6 @@ id=MagiskHidePropsConf name=MagiskHide Props Config -version=v5.3.5-v105 -versionCode=66 +version=v5.3.6-v106 +versionCode=67 author=Didgeridoohan description=Change your device's fingerprint, and/or force basic attestation, 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. diff --git a/system/binpath/props b/system/binpath/props index a01fe98..c58c3d5 100644 --- a/system/binpath/props +++ b/system/binpath/props @@ -29,7 +29,7 @@ MODPATH=$ADBPATH/modules/MagiskHidePropsConf LATEFILEPH=LATE_PLACEHOLDER BOOTSTAGE="props" -# Development testing set to false +# Development testing check DEVTESTING=false case "$1" in *t*) # Development testing @@ -96,7 +96,7 @@ if [ ! -f "$BBPATH" ]; then echo "logs (see the module documentation)." echo "" log_handler "No Busybox found." - log_handler "Exiting... Bye bye.\n\n====================" + log_handler "Exiting... Bye bye.\n\n====================" exit 0 fi @@ -181,7 +181,7 @@ invalid_input() { exit_fn() { menu_header "${C}Bye bye.${N}" echo "" - log_handler "Exiting... Bye bye.\n\n====================" + log_handler "Exiting... Bye bye.\n\n====================" exit 0 } @@ -642,7 +642,7 @@ menu_reset_print() { read -r INPUT3 fi case "$INPUT3" in - y|Y) + y|Y) reset_print "$1" INPUT2="" break @@ -722,7 +722,7 @@ menu_update_print() { read -r INPUT3 fi case "$INPUT3" in - y|Y) + y|Y) download_prints "manual" INPUT2="" break @@ -901,8 +901,13 @@ menu_force_basic() { while true do if [ "$BASICATTEST" == 0 ]; then + fn_oem_file # Find the OEM print file used STATETXT="${G}enable${N}" - YTXT=" (use default value)" + if [ "$BASICATTMODEL" ]; then + YTXT=" (use default value, ${C}$BASICATTMODEL${N})" + else + YTXT=" (use default value, ${C}$(getprop ro.product.device)${N})" + fi else STATETXT="${R}disable${N}" YTXT="" @@ -935,7 +940,7 @@ menu_force_basic() { echo "" echo -e "${G}y${N} - Yes$YTXT" echo -e "${G}n${N} - No" - echo -e "${G}f${N} - Pick from device list$LISTTXT" + echo -e "${G}d${N} - Pick from device list$LISTTXT" echo -e "${G}c${N} - Custom value$CUSTTXT" if [ "$BASICATTCUST" ] || [ "$BASICATTLIST" ]; then echo -e "${G}r${N} - Reset" @@ -963,7 +968,7 @@ menu_force_basic() { INPUT="" break ;; - f|F) + d|D) forced_list_menu "$1" INPUT="" ;; @@ -1021,6 +1026,14 @@ forced_list_menu() { echo -e "${G}b${N} - Go back" echo -e "${G}e${N} - Exit" echo "" + echo "Do NOT use your actual device." + echo "Pick a device as close to yours" + echo "as you can, to possibly keep" + echo "device specific features working." + echo "" + echo "See the module readme or the" + echo "support thread @ XDA for details." + echo "" echo -n "Enter your desired option: " read -r INPUT3 else @@ -1081,6 +1094,7 @@ forced_list_menu() { # Fourth menu level - reset list value, $1=header forced_list_reset_menu() { INPUT4="" + fn_oem_file # Find the OEM print file used while true do if [ -z "$INPUT4" ]; then @@ -1088,7 +1102,12 @@ forced_list_reset_menu() { echo "" echo "Are you sure you want to reset" echo "the list value for forced BASIC" - echo "key attestation to the default." + echo "key attestation to the default" + if [ "$BASICATTMODEL" ]; then + echo -e "value (${C}$BASICATTMODEL${N})?" + else + echo -e "value (${C}$(getprop ro.product.device)${N})?" + fi echo "" echo -e "${G}y${N} - Yes" echo -e "${G}n${N} - No" @@ -1311,7 +1330,12 @@ forced_custom_reset_menu() { echo "" echo "Are you sure you want to reset" echo "the custom value for forced BASIC" - echo "key attestation to the default." + echo "key attestation to the default" + if [ "$BASICATTMODEL" ]; then + echo -e "value (${C}$BASICATTMODEL${N})?" + else + echo -e "value (${C}$(getprop ro.product.device)${N})?" + fi echo "" echo -e "${G}y${N} - Yes" echo -e "${G}n${N} - No" @@ -2051,7 +2075,7 @@ menu_magiskhide_props() { invalid_input 7 2 fi ;; - 1) menu_change_prop "ro.debuggable" $CURRDEBUGGABLE $ORIGDEBUGGABLE $MODULEDEBUGGABLE + 1) menu_change_prop "ro.debuggable" $CURRDEBUGGABLE $ORIGDEBUGGABLE $MODULEDEBUGGABLE ;; 2) menu_change_prop "ro.secure" $CURRSECURE $ORIGSECURE $MODULESECURE ;; @@ -2155,7 +2179,7 @@ menu_change_prop() { PROPMODULETXT="" BACKTXT="" fi - echo -e "Currently set to ${C}$2${N}${PROPMODULETXT}." + echo -e "Currently set to ${C}$2${N}${PROPMODULETXT}." if [ "$2" != "$3" ]; then echo -e "The original value is ${C}$3${N}." fi @@ -2230,7 +2254,7 @@ menu_reset_prop_all() { read -r INPUT3 fi case "$INPUT3" in - y|Y) + y|Y) reset_prop_all "$1" INPUT2="" break @@ -2264,7 +2288,7 @@ menu_reset_prop() { read -r INPUT3 fi case "$INPUT3" in - y|Y) + y|Y) reset_prop "$2" INPUT2="" break @@ -2651,7 +2675,7 @@ menu_set_new_custprop() { echo "or select from the options below." echo "" echo "The currently set value is:" - if [ "$TMPPROP" ]; then + if [ "$TMPPROP" ]; then echo -e "${C}$TMPPROP${N}" echo "Please enter the new value." else @@ -2838,7 +2862,7 @@ menu_set_custprop() { echo "" if [ "$4" == "option" ]; then echo "The currently set value is:" - if [ "$(getprop "$1")" ]; then + if [ "$(getprop "$1")" ]; then echo -e "${C}$(getprop "$1")${N}" echo "Please enter the new value." else @@ -3192,7 +3216,7 @@ menu_delete_props() { if [ -z "$INPUT2" ]; then ITEMCOUNT=0 menu_header "${C}$1${N}\n Select an option below:" - echo "" + echo "" if [ "$DELEDIT" == 0 ] && [ "$DELETEPROPS" ]; then CTRLSET=0 echo -e "You have a list of ${C}props to delete${N}," @@ -3830,12 +3854,12 @@ menu_update_check() { read -r INPUT2 fi case "$INPUT2" in - y|Y) + y|Y) update_check "manual" INPUT="" break ;; - n|N) + n|N) INPUT="" break ;; @@ -3875,13 +3899,13 @@ reset_everything() { read -r INPUT2 fi case "$INPUT2" in - y|Y) + y|Y) log_handler "Resetting all module settings$LOGTXT." reset_fn "$1" "$2" INPUT="" break ;; - n|N) + n|N) if [ "$2" == "r" ]; then exit_fn else @@ -3889,7 +3913,7 @@ reset_everything() { break fi ;; - e|E) + e|E) if [ "$2" == "r" ]; then invalid_input $INV1 $INV2 else @@ -4039,7 +4063,7 @@ if [ "$1" ]; then echo "" log_handler "Exiting... Bye bye.\n\n====================" exit 0 - ;; + ;; esac # Run options