diff --git a/CHANGELOG.md b/CHANGELOG.md index 77dad92..174834b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,19 +1,23 @@ -## Custom Fork v12 -- Add support to autopif2 for generating from Pixel Beta point releases -- Improve autopif2 by catching more unsupported/broken environments -- Improve migrate parsing lines with comments -- Update default/example app replace list for helluvaOS -- Fix retaining disabled non-system ROM apps on KSU/APatch -- Add autopif2 --strong arg for initial setup with Tricky Store -- Add skipping resetprop --delete to avoid app detections if skipdelprop file exists +## Custom Fork v13 -## Custom Fork v11 -- Improve autopif busybox tests, default api_level 32, pass --advanced arg -- Improve scripts for special configs with Tricky Store -- Fix resetprop fallback Magisk check -- Add Action button support to run autopif in root managers -- Fix root check for Termux/KSU/APatch -- Improve PixelPropsUtils workaround on more setups -- Replace autopif with autopif2 to generate a random print from latest Pixel Beta +- Improve Action on KSU/APatch, KSU-Next, MMRL +- Improve autopif2 to ignore Preview builds by default +- Remove unnecessary adb props spoof +- Add all known opt-out props for PPU/PIH variants/hybrids +- Add new verified boot error props deletion +- Update killgms to killpi by adding vending +- Improve autopif2 to populate TS's optional security_patch.txt +- Improve ROM overlay xml disabling support +- Improve autopif2 for wget2 on arm +- Improve Action to use Platform Preview builds + +## Custom Fork v12 +- Improve autopif2 to generate from Pixel Beta point releases +- Improve autopif2 to catch more broken environments +- Improve migrate parsing lines with comments +- Update default app replace list for helluvaOS +- Fix retaining replaced non-system ROM apps on KSU/APatch +- Add autopif2 --strong for initial setup with TS +- Add skipping prop deletion to avoid app detections if skipdelprop file exists _[Previous changelogs](https://github.com/osm0sis/PlayIntegrityFork/releases)_ diff --git a/README.md b/README.md index f4c2f06..4cd4150 100644 --- a/README.md +++ b/README.md @@ -6,27 +6,26 @@ [![GitHub Releases](https://img.shields.io/github/downloads/osm0sis/PlayIntegrityFork/latest/total?label=Downloads%20%28Latest%20Release%29&color=blue&style=flat)](https://github.com/osm0sis/PlayIntegrityFork/releases/latest) [![GitHub All Releases](https://img.shields.io/github/downloads/osm0sis/PlayIntegrityFork/total?label=Total%20Downloads%20%28All%20Releases%29&color=brightgreen&style=flat)](https://github.com/osm0sis/PlayIntegrityFork/releases) -A Zygisk module which fixes "ctsProfileMatch" (SafetyNet) and "MEETS_DEVICE_INTEGRITY" for "legacyDeviceRecognitionVerdict" (Play Integrity). +A Zygisk module which fixes "MEETS_DEVICE_INTEGRITY" for "legacyDeviceRecognitionVerdict" or Android <13 "deviceRecognitionVerdict" in the Play Integrity API. To use this module you must have one of the following (latest versions): - [Magisk](https://github.com/topjohnwu/Magisk) with Zygisk enabled (and Enforce DenyList enabled if NOT also using [Shamiko](https://github.com/LSPosed/LSPosed.github.io/releases) or [Zygisk Assistant](https://github.com/snake-4/Zygisk-Assistant), for best results) - [KernelSU](https://github.com/tiann/KernelSU) with [Zygisk Next](https://github.com/Dr-TSNG/ZygiskNext) module installed +- [KernelSU-Next)(https://github.com/KernelSU-Next/KernelSU-Next) with [Zygisk Next](https://github.com/Dr-TSNG/ZygiskNext) module installed - [APatch](https://github.com/bmax121/APatch) with [Zygisk Next](https://github.com/Dr-TSNG/ZygiskNext) module installed ## About module -It injects a classes.dex file to modify fields in the android.os.Build class. Also, it creates a hook in the native code to modify system properties. These are spoofed only to Google Play Services' DroidGuard (SafetyNet/Play Integrity) service. - -The purpose of the module is to avoid hardware attestation. +It injects a classes.dex file to modify fields in the android.os.Build class. Also, it creates a hook in the native code to modify system properties. These are spoofed only to Google Play Services' DroidGuard (Play Integrity) service. ## About 'custom.pif.json' file You can fill out the included template [example.pif.json](https://raw.githubusercontent.com/osm0sis/PlayIntegrityFork/main/module/example.pif.json) from the module directory (/data/adb/modules/playintegrityfix) then rename it to custom.pif.json to spoof custom values to the GMS unstable process. It will be used instead of any included pif.json (none included currently). -Note this is just a template with the current suggested defaults, but with this fork you can include as few or as many android.os.Build class fields and Android system properties as needed to pass DEVICE verdict now and in the future if the enforced checks by Play Integrity change. +Note this is just a template with the current suggested default entries, but with this fork you can include as few or as many android.os.Build class fields and Android system properties as needed to pass DEVICE verdict now and in the future if the enforced checks by Play Integrity change. -As a general rule you can't use values from recent devices due to them only being allowed with full hardware backed attestation. A script to extract the latest Pixel Beta fingerprint is included with the module; see the autopif section below for usage and caveats, and see the Resources below for information and scripts to help find a working private fingerprint. +As a general rule you can't use values from recent devices due to them only being allowed with full hardware backed attestation. A script to extract the latest Pixel Beta fingerprint is included with the module; see the autopif2 section below for usage and caveats, and see the Resources below for information and scripts to help find a working private fingerprint. Older formatted custom.pif.json files from cross-forks and previous releases will be automatically migrated to the latest format. Simply ensure the filename is custom.pif.json and place it in the module directory before upgrading. @@ -50,6 +49,10 @@ A migration may also be performed manually with `sh migrate.sh` and custom.pif.j - [pif-test-json-file.sh](https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/post-89561228) - Script to automate generating and testing json files to attempt to find working fingerprints - [install-random-fp.sh](https://xdaforums.com/t/script-for-randomly-installing-custom-device-fingerprints.4647408/) - Script to randomly switch between multiple working fingerprints found by the user +- Apps: + - [FP BETA Checker](https://xdaforums.com/t/tricky-store-bootloader-keybox-spoofing.4683446/post-89754890) - Tasker App to check the estimated expiry of the Pixel Beta fingerprint and trigger autopif2.sh to update + - [FP XEU Checker](https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/post-89390931) - Tasker App to check for a new Xiaomi.eu public fingerprint and trigger autopif.sh to update + ## About 'custom.app_replace.list' file @@ -58,9 +61,9 @@ You can customize the included default [example.app_replace.list](https://raw.gi ## About 'autopif2.sh' and 'killpi.sh' script files -There's intentionally no pif.json in the module because the goal remains to be futureproof, and including something that may be banned and obsolete within days would be contrary to that goal. If you don't care to have your own private fingerprint to use or don't have time to look for one currently then simply run the generation script from a root manager app that supports the module Action button, a root prompt with `sh autopif2.sh` in the module directory (/data/adb/modules/playintegrityfix), or from a file explorer app that supports script execution. +There's intentionally no pif.json in the module because the goal remains to be futureproof, and including something that may be banned and obsolete within days would be contrary to that goal. If you don't care to have your own private fingerprint to use or don't have time to look for one currently (since very few remain) then simply run the generation script from a root manager app that supports the module Action button, a root prompt with `sh autopif2.sh --preview` in the module directory (/data/adb/modules/playintegrityfix), or from a file explorer app that supports script execution. For arm/x86 devices wget2 is required but may be installed via [addon module](https://xdaforums.com/t/tools-zips-scripts-osm0sis-odds-and-ends-multiple-devices-platforms.2239421/post-89991315). -The autopif2 script generates a random device fingerprint from the latest Pixel Beta, ideally only to test an initial setup, since they expire roughly every 6 weeks from the Pixel Beta release date (dates included in the generated fingerprint), and the public mass-used ones from other modules or ROMs may also get banned or may be banned for RCS use while otherwise passing Play Integrity and SafetyNet in that time. +The autopif2 script generates a random device fingerprint from the latest Pixel Beta, ideally only to test an initial setup, since they expire roughly every 6 weeks from the Pixel Beta release date (dates included in the generated fingerprint), and the public mass-used ones from other modules or ROMs may also get banned or may be banned for RCS use while otherwise passing Play Integrity in that time. Notable advanced commandline options are: `-p` or `--preview` forces not to ignore Android Platform Preview builds (Developer Previews and Betas); and `-d #` or `--depth #` chooses the depth to crawl down the QPR Betas list when there are multiple active Betas, e.g. when QPR2 is concurrent with QPR1 the default value of 1 would get the first listed (QPR2) and `-d 2` would force it to get the second listed (QPR1). The killpi script forces the Google Play Services DroidGuard (com.google.android.gms.unstable) and Play Store (com.android.vending) processes to end, making them restart with the next attestation attempt; useful for testing out different fingerprints without requiring a reboot in between. @@ -68,18 +71,18 @@ The killpi script forces the Google Play Services DroidGuard (com.google.android Make sure Google Play Services (com.google.android.gms) is NOT on the Magisk DenyList if Enforce DenyList is enabled since this interferes with the module; the module does prevent this using scripts but it only happens once during each reboot. -Note: The below verdicts are all referring to the legacyDeviceRecognitionVerdict Play Integrity API, not the newer deviceRecognitionVerdict on Android 13+ (which relies on locked bootloader checks to pass even DEVICE verdict). +Note: The below verdicts are all referring to the legacyDeviceRecognitionVerdict or Android <13 deviceRecognitionVerdict Play Integrity API, not the Android 13+ deviceRecognitionVerdict (which relies on locked bootloader checks to pass even DEVICE verdict). ### Failing BASIC verdict -If you are failing basicIntegrity (SafetyNet) or MEETS_BASIC_INTEGRITY (Play Integrity) something is wrong in your setup. Recommended steps in order to find the problem: +If you are failing MEETS_BASIC_INTEGRITY (Play Integrity) something is wrong in your setup. Recommended steps in order to find the problem: - Disable all modules except this one - Try a different (ideally known working) custom.pif.json Note: Some modules which modify system (e.g. Xposed) can trigger DroidGuard detections, as can any which hook GMS processes (e.g. custom fonts). -### Failing DEVICE verdict (on KernelSU/APatch) +### Failing DEVICE verdict (on KernelSU/KernelSU-Next/APatch) - Disable Zygisk Next - Reboot @@ -128,19 +131,19 @@ The advanced spoofing options add granular control over what exactly gets spoofe
Details -- Adding the Advanced Settings entries is best done using the migration script with the `sh migrate.sh --force --advanced` or `sh migrate.sh -f -a` command. They may also be added on initial setups using the `sh autopif2.sh --advanced` or `sh autopif2.sh -a` command or configured directly for Tricky Store to achieve STRONG integrity (see below) with the `sh autopif2.sh --strong` or `sh autopif2.sh -s` command. Other than for the "verboseLogs" entry (see above), they are all 0 (disabled) or 1 (enabled). +- Adding the Advanced Settings entries is best done using the migration script with the `sh migrate.sh --force --advanced` or `sh migrate.sh -f -a` command. They may also be added on initial setups using the `sh autopif2.sh --advanced --preview` or `sh autopif2.sh -a -p` command or configured directly for Tricky Store to achieve ## About Scripts-only mode -An advanced feature intended for older Android <10 ROMs, mostly stock ROMs or those with stock-like values, (and some other rare special cases), since they generally only need a few prop changes to pass Play Integrity DEVICE verdict. Due to this the majority of the previous information does not apply to or contradicts that of Scripts-only mode, so to avoid confusion it's contained in the Details area below. +An advanced feature intended for older Android <10 ROMs, mostly stock ROMs or those with stock-like values, (and some other rare special cases), since they generally only need a few prop changes to pass Play Integrity Legacy/ Details @@ -157,10 +160,12 @@ An advanced feature intended for older Android <10 ROMs, mostly stock ROMs or th An advanced feature (unrelated to Play Integrity) intended for those who also need to use apps which detect prop tampering. To avoid triggering these detections by skipping any `resetprop --delete` commands in the module scripts, manually opt-in by creating a file named skipdelprop in the module directory after installation, either from a root prompt with `touch /data/adb/modules/playintegrityfix/skipdelprop` or from a file explorer app, then reboot. -## About Play Integrity (SafetyNet is deprecated) +## About Play Integrity (SafetyNet has been shut down) [Play Integrity API](https://xdaforums.com/t/info-play-integrity-api-replacement-for-safetynet.4479337/) - FAQ/information about PI (Play Integrity) replacing SN (SafetyNet) +[Play Integrity Improved Verdicts](https://developer.android.com/google/play/integrity/improvements) - Information about the more secure verdicts for Android 13+ ROMs (also see the spoofing Advanced Settings section above) + ## Credits Original concept and general mechanism of PIF were from kdrag0n's [ProtonAOSP](https://protonaosp.org/) and [Universal SafetyNet Fix (USNF)](https://github.com/kdrag0n/safetynet-fix) projects. diff --git a/module/module.prop b/module/module.prop index 455be96..fff9ec9 100644 --- a/module/module.prop +++ b/module/module.prop @@ -1,7 +1,7 @@ id=playintegrityfix name=Play Integrity Fork -version=v12 -versionCode=120001 +version=v13 +versionCode=130000 author=osm0sis & chiteroman @ xda-developers -description=Fix ctsProfile (SafetyNet) and DEVICE (Play Integrity) verdicts +description=Fix