Skip to content
Snippets Groups Projects
README.md 2.47 KiB
Newer Older
chiteroman's avatar
chiteroman committed
# Play Integrity Fix

A Zygisk module which fix "ctsProfileMatch" (SafetyNet) and "MEETS_DEVICE_INTEGRITY" (Play
Integrity).
chiteroman's avatar
chiteroman committed

To use this module you must have one of this:
chiteroman's avatar
chiteroman committed
- Magisk with Zygisk enabled.
- KernelSU with [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext) module installed.

[**Download the latest here**](https://github.com/chiteroman/PlayIntegrityFix/releases/latest).

## Telegram group

https://t.me/playintegrityfix

chiteroman's avatar
chiteroman committed
## Donations
chiteroman's avatar
chiteroman committed
- [PayPal](https://paypal.me/chiteroman)

## Official posts
chiteroman's avatar
chiteroman committed
- [XDA](https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/)

## About module

It injects a classes.dex file to modify few fields in android.os.Build class. Also, in native code
it creates a hook to modify system properties.
chiteroman's avatar
chiteroman committed
The purpose of the module is to avoid a hardware attestation.
chiteroman's avatar
chiteroman committed

## About 'pif.prop' file

You can modify this file to spoof android.os.Build fields in GMS unstable process and try to pass Device verdict.
You can't use values from recent devices due this devices must use a hardware attestation.
chiteroman's avatar
chiteroman committed

## Failing BASIC verdict

If you are failing basicIntegrity (SafetyNet) or MEETS_BASIC_INTEGRITY (Play Integrity) something is
wrong in your setup. My recommended steps in order to find the problem:

chiteroman's avatar
chiteroman committed
- Disable all modules except mine.
- Check your SELinux (must be enforced).

Some modules which modify system can trigger DroidGuard detection, never hook GMS processes.

## Certify Play Store and fix Google Wallet
chiteroman's avatar
chiteroman committed
Follow this steps:
chiteroman's avatar
chiteroman committed
- Flash my module in Magisk/KernelSU (if you already have my module, just ignore this step).
- Clear Google Wallet cache (if you have it).
- Clear Google Play Store cache and data.
VisionR1's avatar
VisionR1 committed
- Clear GMS (com.google.android.gms) cache and data (or just reboot without clear and waiting some time).
chiteroman's avatar
chiteroman committed

chiteroman's avatar
chiteroman committed
Reboot and done!
chiteroman's avatar
chiteroman committed

## Troubleshooting

### Fails to meet device integrity (KernelSU)

- Disable ZygiskNext
- Reboot
- Enable ZygiskNext

### Passes device integrity, but fails in Wallet (even after clearing cache)

- Remove all data from Google Play Services

<details>
<summary>Guide</summary>

![Google services cache](./wallet-troubleshoot-1.jpg)
![Removing all data](./wallet-troubleshoot-2.jpg)

</details>

chiteroman's avatar
chiteroman committed
## Read module logs
chiteroman's avatar
chiteroman committed
You can read module logs using this command:
chiteroman's avatar
chiteroman committed
```
adb shell "logcat | grep 'PIF'"
```

## Can this module pass MEETS_STRONG_INTEGRITY?

chiteroman's avatar
chiteroman committed

## About Play Integrity, SafetyNet is deprecated
chiteroman's avatar
chiteroman committed

You can read more info
here: [click me](https://xdaforums.com/t/info-play-integrity-api-replacement-for-safetynet.4479337/)