yashsingh1/xdaforums huggingface dataset:
[Magisk] majorfigjam:
Well basically they know as soon as you turn on your device. If the bootloader is unlocked, then it warns when you switch on, unless your custom rom hides that. That "flag" will be set up on boot.

If you run logs for a stock locked device that can't meet strong integrity (3/3) and an unlocked rooted one using an identical spoofed set of props, you will see that calling gms.unstable in play store follows an entirely different path. Try it with your stock 2xl, then spoof its props in a newer rooted or custom rom device.

For the locked stock device, Play store and its integrity check "know" that the bootloader is safe, and return values based on the handset (usually 2/3). For the spoofed set, they know the device is unlocked, so do the fingerprint check to see if they match a known safe and unblocked 2/3 device. If they don't, the rooted device will fail with 0/3 or 1/3.

In this way, there's no risk of an older stock device failing and bring unable to use apps such as wallet which need 2/3 to work.

Finding the "safe" flag, ie being able to spoof the locked bootloader, is a work in progress. Chiteroman has shown some progress with keys that have escaped into github, but there's no widely available answer to that.
[Magisk] fbirraque:
I confirm that Netflix and Disney+ doesn't install anymore from Play Store even when Certified Safety Net and Play Integrity.
[Magisk] shoey63:
Read the post above yours and try again.
[Magisk] swieder711:
Play Integrity Next working with no extra steps.
[Magisk] BROKEN1981:
Well, my print just got black listed.
[Magisk] majorfigjam:
Would you care to elaborate? There have been a few car crashes today due to the ongoing rapid evolution of Chiteroman's releases. You need to clear all artefacts, or the process breaks. ( Agile development is great, except when it isn't!)

Are you on his latest fix? If so, flip to Osm0sis fork, rename json etc, and try again.

All is not lost!
[Magisk] HippoMan:
I already have a script that automatedly checks developer options in that way, but it only can reliably work on my own device, because I can only get to the developer options by issuing one pseudo mouse click at a specific set of screen coordinates. Those coordinatess are device-specific, so I can't release this as a generally usable script.

By testing for the installability of an app like Netflix, I'm hoping I can come up with a script that's universally usable, and that I could therefore release for general use.
[Magisk] Ermann123:
it would really ne great to not receive a new update day by day or even hour by hour, nor let the beta testing be done by end users
[Magisk] majorfigjam:
So use the Osm0sis fork. Only one update this month, and rock solid for me at least. My print from early December is still going strong - in fact too strong judging by my bank statement!
[Magisk] Depressed T.Bear:
My first fingerprint just got banned 🤣

TBO it could be found in the public repos, just didn't thought it'd get banned so soon.

Luckily I mined now a total of 19 which aren't in any public list.

Regarding the latest developments around PIF, I think that the majority is now just switching to PIFNext, aka the Xiaomi FP cloner... So there's actually no real gain for us with chiteromans 'un-xiaomi-fingerprinted' releases...

Unless either PIF comes with some sort of randomized FP picker (like with Freeman's script) or many people start using it by themselfs.

Or maybe we wait for PIF V.15.0.1:

- Discovered and fixed leaking real device fingerprint.

- Improve code logic.

- more methodically and consistent development to avoid further grey hairs for osm0sis.

- new integration support for BootloaderSpoofer 4.0 for strong integrity.
[Magisk] mike.s:
Great. Fork one of the projects and do your own!
[Magisk] Nergal di Cuthah:
Would you like to be running with a bad fingerprint and a flaw in the code? You should be thanking for quick reaction. Beta testing? You think developer has foreknowledge of banned prints that they could test with someone. Please take this into account.
[Magisk] fbirraque:
The latest PI 14.8 has the pif.json with less fields...

{

"PRODUCT": "",

"DEVICE": "",

"MANUFACTURER": "",

"BRAND": "",

"MODEL": "",

"FINGERPRINT": "",

"FIRST_API_LEVEL": 21

}

But I didn't get why the "FIRST_API_LEVEL": set as 21 in the model pif.json file.

Should I change my current working custom pif.json to 21 value? Please clarify.
[Magisk] BROKEN1981:
It was my own print. Nothing to do with Chit
[Magisk] immortalwon:
Maybe u should read the first post of this thread?
[Magisk] harkirtancr7:
I have a personal fingerprint, it works great with 14.5 and it doesn't pass the device verdict on 14.8? what could be the reason?
[Magisk] gj4560:
Hello,

Using a Pixel 7 Pro, I updated the module to 14.8 and found device integrity no longer passes, when I then came to the realisation that I need my own fingerprint now. I am using TheFreeman193's sh script to pick a fingerprint but have not been able to get a fingerprint yet which passes device integrity, am I missing something? My understanding is that since the script kills the GMS unstable process I can just go into the Play store developer options and run a play integrity test straight away to check if it worked, right? I don't need to restart my phone every time I choose a different fingerprint?
[Magisk] TotallyAnxious:
7 is unlucky. Irresponsible to release it. /s
[Magisk] squish72:
I'm wondering the same thing... After changing the fingerprint do you need to reboot?
[Magisk] fbirraque:
All my custom/personal previous pif.json still working flawlessly in PI 14.8 even if didn't been change for the new format.
[Magisk] HippoMan:
As mentioned in the post you replied to, all you need to do after a fingerprint change is to kill the GMS process. No reboot is necessary.
[Magisk] jabennett:
Probably swatting flies with a sledgehammer here, but I half-seriously wonder how much time and effort it might take to get a simple app submitted to the Play Store, for the (possibly unstated) true purpose of merely requiring Play Integrity certification to install? 🤔
[Magisk] sawdoctor:
You do know you don't have to update. I'm running v14 with custom fingerprint some are still running early versions
[Magisk] msi68:
Is there any reasons why to update from DEV v1 to 14.8?
[Magisk] xcl1pse:
There's no reason. Just a big ego to get the latest updates 😂
[Magisk] beeshyams:
Thanks

Yesterday, spent about half an hour following the steps on the Github and failed with errors which I couldn't resolve

Same now after reading and trying your posts and then a light shone in this foggy old brain.. Errors were mostly related to curl (of course I had curl installed and updated) so it was due to Adguard.

Exclude Termux from Adguard

Hope that helps some folks!
[Magisk] squish72:
After fighting with this for hours, this comment was my fix.
[Magisk] Umgak:
Oh my, osm0sis certainly changed the custom.pif.json format.

A few lines of PowerShell later and all of my old dumped jsons have been converted to the new format, tested and working, even with release, incremental, type, and tags extracted from fingerprint via string.split method and a couple goofy substrings. Automation truly is the greatest, isn't it?

Edit: also while poking around, for some reason a few of my prints (which are all from the exact same device) have different values for DEVICE_INITIAL_SDK_INT, ranging from 23-25. It released at 25 on 7.1.1, then dropped to 23 with Android 8.0.0 release, went back to 25 with 8.1.0, then down to 24 with 9, and finally stayed there with 10. Comments in core/java/android/os/Build.java say this should never change during the lifetime of the device, but I guess manufacturers didn't get the memo. I wonder if that's why some prints work with various API levels?
[Magisk] shoey63:
Keep trying. Sometimes you get one on the first try, other times it might take 10 or 20

No need to reboot after GMS unstable is killed by the script.

Just run it, test it and run it again until you get a working print
[Magisk] majorfigjam:
Good thing about Osm0sis fork is that you don't need all of those fields. You can stick with the initial set of 8 from the very first releases that supported custom props, and they still work ( for me at least).
[Magisk] Umgak:
Mine were still working too, I mostly just wanted it to be "proper" but many of the values in the json are just the individual values that make up the fingerprint again.

Fingerprint is:

BRAND/PRODUCT/DEVICE:RELEASE/ID/INCREMENTAL:TYPE/TAGS

And I imagine any missing values are inherited from the fingerprint itself.
[Magisk] Vision:
That is strange, mine after 2 hour of clear Google Play & Services, show it
[Magisk] xdatin1:
I there some simple way to find fingerprints to test?

Some idiots diy way :)

I am on 14.6 version
[Magisk] TheFreeman193:
Looks like your shell doesn't like the old-style POSIX conditionals - try replacing sh with the path to Termux's bash:

/data/data/com.termux/files/usr/bin/curl "https://raw.githubusercontent.com/TheFreeman193/PIFS/main/pickaprint.sh" | /data/data/com.termux/files/usr/bin/bash
[Magisk] ionut310:
Also Revolut. On my Pixel 6a with forkV4 and custom PIF it worked until yesterday. I also tried another PIF on a Pixel 2XL with A11 and its the same. Both phones have device certified in play store.
[Magisk] majorfigjam:
Yes, but you have to read back at least 2 pages to find it.
[Magisk] miho171:
I can't read, only write random words
[Magisk] omokas:
Many thanks was looking for a solution this worked just fine after a few tries :)

Now device integrity and basic are back

Device Xiaomi Redmi Note 9 Pro MIUI 13.0.4
[Magisk] HippoMan:
https://xdaforums.com/t/how-to-sear...scussion-for-complete-noobs-from-one.4645816/
[Magisk] osm0sis:
About the level changing between releases... Weird! Also worth noting from Google's source that it's not actually always the first API/SDK level the device launched with, for older devices it's the first API/SDK level the device had *when that property was first added to the device* 🤯
[Magisk] zgfg:
Search to find collection ready for download😁
[Magisk] xSnowLeopardx:
That's kinda a you problem then.
[Magisk] TheFreeman193:
Love this. I feel a Magisk module coming on...
[Magisk] crayoneater:
I'm installed PIF 14.8 using my own device's fingerprint, for stock ROM plus magisk. I am meeting basic integrity but I am failing device and strong integrity. How can I meet device integrity? Do I need to use a fingerprint from a device that is not my actual device?

Also, GMS keeps on removing itself from the magisk denylist on its own accord.... every time that happens I have to manually put it back on the denylist and then `pkill -f com.google.android.gms.unstable` or clear GMS storage by hand. How can I permanently put it on the magisk denylist or automate this process?
[Magisk] sawdoctor:
Running v14 with a custom fingerprint for 3 weeks on the pixel fold. Just installed Revolut , netflix and Disney+ all with no issues. Might be related to the PIF version that users are on then
[Magisk] chrbur:
I have no problems with any App. Netflix, Disney, Banking (...). But Device Integrity failed. So I can't use Google Wallet. Is it possible to fix it with a Play Integrity Update 14.XXX? The Freeman193 Solution doesn't work. Pixel7Pro
[Magisk] changhuapeng:
Extract Xiaomi.eu PIF​

For all you lazy bones out there who are still too lazy to find their own fingerprint, here's another PIF solution that will complement your laziness.

Extract Xiaomi.eu PIF is a Tasker app that can extract the fingerprint from Xiaomi.eu module APK and let you use the extracted strings for your PIF's custom pif.json.

How it works:​

The app will look for Xiaomi.eu module app from your installed apps and create a custom pif.json after extracting its fingerprint props. The custom pif.json will then be copied automatically to either /data/adb or /data/adb/modules/playintegrityfix, depending on if you have installed chiteroman's PlayIntegrityFix or osm0sis's PlayIntegrityFork.

How to use:​

Install the latest Xiaomi.eu module APK

Install Extract Xiaomi.eu PIF APK

Allow the app "Files" access permission

Allow the app the permission to "Display over other apps"

Give the app root access (optional)

Run Extract Xiaomi.eu PIF app

????

PROFIT!!!

Demo:​

FAQ:​

Q:

Why does this app needs root access?

​

A: The app will need root access only if you want it to automatically copy the custom pif.json into your Magisk modules directory. Without root access, the app will save the extracted custom pif.json to /sdcard/Android/data/com.eu.xiaomi.pif.extract/files/XiaomiEU.pif.json and you will have to manually copy to and rename the file in your Magisk modules directory.​

​

Q:

Does my phone needs to be on <specific> ROM?

​

A: No, this app will work on any ROM, as long as Xiaomi.eu module APK is installed.​

​

Q:

Why is there FIRST_API_LEVEL in the extracted custom pif.json when the actual Xiaomi.eu module APK doesn't have it?

​

A: For compatibility reasons, the app will automatically set FIRST_API_LEVEL to 23 if it is not found in Xiaomi.eu module APK.​

​

Q:

I don't want to install an APK, is there a Tasker's project that I can import to my Tasker?

​

A: You can import this project on https://taskernet.com/shares/?user=...wKYjJ3JDY6lP8hvUg07+lhoYlwf/s=&id=Project:PIF and run the Extract Xiaomi.eu PIF task.​

​

Changelog:​

Version 1.1

Update compatibility with osm0sis's Play Integrity Fork v5

Version 1.0

Initial Build

IMPORTANT: Some virus scanners may flagged this app as suspicious or malicious.​

The app is a direct port from my Tasker project (shared in the FAQ section) and was packaged into an APK using https://play.google.com/store/apps/details?id=net.dinglisch.android.appfactory. I would say those scans are false positives, perhaps due to the permissions required and that apk is not a typical Android app.​

Since the app doesn't require Internet connection, feel free to block the app with your firewall app if you have those installed. Otherwise, you may want to import the project and use it on Tasker instead.​

Meanwhile, here are the "source code" for the Tasker project that consists of 2 Tasker's tasks: https://pastebin.com/T6rJqg3M​

To the mods: I'm not sure if there's a more appropriate place besides this thread for this post, please feel free to move this post to where it should belong.
[Magisk] bakaekze:
Do NOT add gms to denylist, the module takes care of handling gms

As for fingerprint, read: https://xdaforums.com/t/how-to-sear...scussion-for-complete-noobs-from-one.4645816/
[Magisk] manjaroid:
Yup, my first try worked and is still going weeks later. Just luck I reckon but I'm also expecting reserve prints that took far more effort to be banned by now.
[Magisk] vamteusz:
hoe many tries are required? i retrying this procedure from 30 minutes and not even once fingerprint is valid
[Magisk] sawdoctor:
Not on beta firmware are you? I stayed on v14 as some newer versions didn't work on A14 beta
[Magisk] TheFreeman193:
Some newer Pixel devices don't seem to work with arm64-v8a profiles. Try overriding by setting the following in your shell and running again:

export FORCEABI="arm64-v8a,armeabi-v7a,armeabi"
[Magisk] squish72:
I tried over 30 times and never got one to work. Either I had something wrong, so it wasn't doing what it was supposed to or I was just unlucky and could have eventually got one to work. It took me less than 2 mins to get the gms to work
[Magisk] shoey63:
You might strike gold on your next attempt 🤞

No errors in termux?

I doubt you are doing anything wrong but maybe a screenshot of the terminal output would be helpful.
[Magisk] Vision:
Yeah, before 1 month have write about this with qti, have confused me, the proper value is in /vendor

View attachment 6047217
[Magisk] chrbur:
I'm on Magisk Delta 26.403 / Fix 14.8 / Shamiko 0.7.5 / Zygis 1.9.2 / Android 13

Pixel 8 Pro with Magisk Stable or Canary doesn't pass too.
[Magisk] Stef_:
🤔 https://www.virustotal.com/gui/file...d9172eac1c5ab6e61a407195b39172e6d433f/summary
[Magisk] Gilg@mesh:
my one and only fp still works over 3 weeks now. 🙏
[Magisk] Umgak:
Having it in denylist would prevent module code from running in its space, which is why the module checks and removes it from denylist.
[Magisk] TheRomRooster:
cause its not public so the 2 detection methods the google uses, which are most likely checking what ancient PIF suddnely hammers their API OR just looking into chiteromans module and reading them out doesnt work here. My private pif also works since the day there was custom PIF support and i have 1-2 more as backups in case too many people use them and they get banned or chitero happens to use mine by the low chance that has so once mine gets nuked, ill have a few more to go. This took some work tho, i think out of 70ish PIFs i only managed to get 4 working ones. Recently started to just run osm0sis pif generator on my laptop as it works natively in arch and is a lot less cumbersome than transfering the required files to yor phone
[Magisk] ionut310:
Cleared data from play services and it fixed itself after a couple of hours.
[Magisk] xSnowLeopardx:
One of my 20 is also doing great, 3 weeks as well.
[Magisk] changhuapeng:
The app is a direct port from my Tasker project (shared in the FAQ section) and was packaged into an APK using https://play.google.com/store/apps/details?id=net.dinglisch.android.appfactory. I would say those scans are false positives, perhaps due to the permissions required and that apk is not a typical Android app.

Since the app doesn't require Internet connection, feel free to block the app with your firewall app if you have those installed. Otherwise, you may want to import the project and use it on Tasker instead.

Meanwhile, here are the "source code" for the Tasker project that consists of 2 Tasker's tasks: https://pastebin.com/aENWfkz0
[Magisk] beeshyams:
Matter of luck I guess. I got one in 4 or 5 tries
[Magisk] TheRomRooster:
it is indeed, had 50 dead ones followed by 2 working one within like 5 tries
[Magisk] simplepinoi177:
You don't necessarily need to use a fingerprint from another device and can use your own, but it is extremely unlikely to be successful (depending on your device; the more popular, or new [FIRST_API_LEVEL should be below 34 which all newer device are above 33], and/or whether it is a Google device [Pixel, Nexus]).

As replied to in the quote, that is normal behavior as Displax MOD (which much of PIF is based off of) takes care of it under the hood, which inadvertently removes itself from DenyList. In the end, the module disables it automatically that it doesn't matter whether or not it's enabled in the DenyList, because it's already taken care of -- kinda like crosswalk or elevator close-door buttons wired to nothing.
[Magisk] supermansaga:
Just to clarify, I was referring to windows Subsystem for Android. Maybe it simply won't work.
[Magisk] Stillhard:
Lol, why increment version number?

Anyway, result on the way

Result:

Cts profile match failed

Edited:

Looks like after awhile it passed :D

@chiteroman
[Magisk] immortalwon:
It works on Android 11, one plus pro 9 but no passing strong as expected. Passes BASIC integrity and CTS profile.
[Magisk] fbirraque:
Does Test v8.6 the same as PlayIntegrityFix v8.4 + BootloaderSpoofer v1.2?
[Magisk] zgfg:
v8 6 passing Basic and Device on Xiaomi.eu MIUI 12.5

:/ # logcat | grep SNFix
09-19 07:10:28.608 10046 10046 D SNFix/Zygisk: Dex file size: 6328
09-19 07:10:28.608 10046 10046 D SNFix/Zygisk: getSystemClassLoader
09-19 07:10:28.608 10046 10046 D SNFix/Zygisk: InMemoryDexClassLoader
09-19 07:10:28.609 10046 10046 D SNFix/Zygisk: loadClass
09-19 07:10:28.610 10046 10046 D SNFix/Zygisk: init
09-19 07:10:28.612 10046 10046 D SNFix/Zygisk: clean
09-19 07:10:28.628 10046 10046 D SNFix/Zygisk: Got __system_property_read_callback handle and hooked it at 0xb400007ebbb76e40
09-19 07:10:37.155 10046 10124 I SNFix/Java: DroidGuard detected
09-19 07:10:39.235 10046 10124 I SNFix/Java: DroidGuard detected
09-19 07:10:40.926 10046 10124 I SNFix/Java: DroidGuard detected
09-19 07:11:08.076 11904 11904 D SNFix/Zygisk: Dex file size: 6328
09-19 07:11:08.076 11904 11904 D SNFix/Zygisk: getSystemClassLoader
09-19 07:11:08.076 11904 11904 D SNFix/Zygisk: InMemoryDexClassLoader
09-19 07:11:08.077 11904 11904 D SNFix/Zygisk: loadClass
09-19 07:11:08.077 11904 11904 D SNFix/Zygisk: init
09-19 07:11:08.078 11904 11904 D SNFix/Zygisk: clean
09-19 07:11:08.082 11904 11904 D SNFix/Zygisk: Got __system_property_read_callback handle and hooked it at 0xb400007ebbb76e40
09-19 07:11:10.185 11904 11945 I SNFix/Java: DroidGuard detected
09-19 07:11:13.704 11904 11945 I SNFix/Java: DroidGuard detected
09-19 07:12:44.088 11904 11965 I SNFix/Java: DroidGuard detected
09-19 07:13:13.728 11904 11965 I SNFix/Java: DroidGuard detected
09-19 07:13:13.818 11904 12971 I SNFix/Java: DroidGuard detected
[Magisk] supermansaga:
What's bootloaderspoofer?
[Magisk] zgfg:
Find on the Github from the same developer

Not related to Strong Integrity
[Magisk] omerqw2323:
you can reupload the version 8.1 please?
[Magisk] chiteroman:
I lost it 😂
[Magisk] omerqw2323:
:cry::cry::cry:
[Magisk] chiteroman:
But why you want ShadowHook version?
[Magisk] omerqw2323:
i search for skeleton that use ShadowHook in magisk module to develop my own and in this version you use ShadowHook
[Magisk] casouzaj:
V8.6 fails device integrity in my wife's Xperia XZ2, running LineageOS 20.0, with Magisk Delta Canary. Back to v8.4, which works fine.
[Magisk] ValerioWasTaken:
it's here on this tg channel. Mod edit: TG link removed.

Badger50 Senior Moderator

alot of versions are there too
[Magisk] supermansaga:
Thanks. Can it trick Google One VPN?
[Magisk] omerqw2323:
you have the source code and no the zip file ? i need skeleton template to develop another module
[Magisk] zgfg:
I don't use G1

However, I would expect that all Google apps rely on their PlayIntegrity - they developed PI and they advise to use PI and not some ad-hoc solutions (like banking and similar apps do)

Eg., Google Wallet fully relies on PlayIntegrity where Device and Basic are enough (Strong not required)

Btw, test yourself, no cost and no harm

Edit:

Btw, if G1 additionally forbids VPN, that has nothing to do with PI, this module or Bootloader and BootloaderSpoofer
[Magisk] chiteroman:
Why do you have Shadowhook based module source code? Do you want to hack a game? XD

I prefer using Dobby and built it inside Zygisk lib.
[Magisk] omerqw2323:
I do it with Dobby and i want also to do zygisk module with ShadowHook, But I failed to do that with ShadowHook, that's why I need the source code to see why I fail.

You will be very helpful if you send me the source code of version 8.1
[Magisk] zgfg:
BTW, IDK why do you delete the old versions from GitHub😒

For Bootloader Spoofer, I see under Releases now only the latest v1.2

Fortunately, I found v1.1 on my backup

---

Ie, I just realized that on my Xiaomi.eu MIUI 12.5 (with Magisk Delta - IMO, it shouldn't matter) with Spoofer v1 2, KeyAttestation shows that Certificate is 'not trusted'

With v1.1 it works perfectly, Bootloader is (spoofed to) locked

Without Spoofer, Bootloader is unlocked but there is no problem with Certificate

Screenshots attached
[Magisk] Vision:
Good, what in the video? can't play
[Magisk] HippoMan:
You are very kind and generous to do all this work to help others!

And what you describe is a very well-thought-out design.

Another place where it would be helpful to annouce this module is in the TG group ... although if you don't manage to convince the powers-that-be there to pin your announcment to that chat group, it will very quickly disappear into the miasma of literally thousands of messages that get posted there every day ... which means that it would have to be frequently reposted there to get it noticed by a significant number of people.
[Magisk] HippoMan:
crDroid build for which device? And which Android version? I have been happily using crDroid on and off for several years on a few different phones, and I'm getting tired of stock Pixel OS headaches and limitations.
[Magisk] xSnowLeopardx:
Mhm, crDroid? Have fun with the battery drain lol.

On a serious note: nice stuff. Do the starts in that wallpaper twinkle or are my eyes deceiving me right now?