yashsingh1/xdaforums huggingface dataset:
[Magisk] G5-User7080:
So umm, I read in here and there and I remember reading osm0sis post about finding fingerprints and looked into some other person's incredibly long noob guide.

Both helped and I managed to find a fp, still have some open questions tho.

First, I never saw any mention on what to do before you can check again, like when applying a new build prop with PF, it's killing gms, is that enough? I just rebooted after trying one and after that it worked.

Secondly,.. I've read that A9 or A10 fp's can work too, but api level needs to be reduced like below 28 (so 27).

That said PF has a button setting level 25, I don't get why, or if 27 would work or wouldn't, I mean 25 worked for me so I'm keeping it, still would like to know if 25 now or 27?

And thanks to you guys for even going into detail about those things in the first place.

And badabing, PF made it super easy.
[Magisk] Nergal di Cuthah:
Yes in most cases
[Magisk] deechte:
I my experience you don't need to do anything. Just place a new FP file and check integrity in Google Play.
[Magisk] Nergal di Cuthah:
If using pixel flasher yes. But placing it yourself where it goes, you must kill gms unstable process
[Magisk] dascotch2:
I have a Xiaomi Redmi Note 10 Pro, running latest PixelExperience v12, with latest Magisk, zygisk and "Enforce DenyList" enabled, but no app actually denied and PlayIntegrityFork v6.

I also have an older Xiaomi Pocophone F1, running stock firmware with Android 10 that passes all integrity checks.

I ran an adb getprop, and got all the values from Poco, then put everything in a custom pif file and uploaded it to the Redmi.

I am checking the log on Redmi and seeing that all the properties below are being spoofed, but it is still not passing "MEETS_DEVICE_INTEGRITY"

I never got it working.

I tried rebooting and clearing cache a few times.

What could be the issue? Do I need to get fingerprints form the same phone model?

[BRAND]:

[DEVICE]:

[DEVICE_INITIAL_SDK_INT]:

[FINGERPRINT]:

[ID]:

[INCREMENTAL]:

[MODEL]:

[PRODUCT]:

[RELEASE]:

[SECURITY_PATCH]:

[ro.build.id]:

[ro.build.version.security_patch]:

[ro.product.first_api_level]:
[Magisk] V0latyle:
If you have found a working print, there's no need to repeatedly recheck it until you have reason to believe that it's no longer working

The only thing I would say is that if you're failing prints you know have worked before, you may need to clear Play Services data. I was testing a few prints, something got borked, and nothing passed anymore. Went back to the working print which still didn't pass. Fixed by clear Play Store data.

No, the print doesn't have to be from the same device. It can be from any device. And the props from a stock device won't necessarily work on a modified device.

Try using PIFS.
[Magisk] osm0sis:
Not all phones are suitable donors, also not all working prints work on all phones. We're still not entirely sure why. Find and try another print, you'll get one eventually. 👍
[Magisk] Nergal di Cuthah:
Some device fingerprints just don't work that's why most use a website file collection or one of the scripts (freeman, next or (since you use xiaomi) the plugin inculded in .eu roms)

Definitely not.
[Magisk] adinechin:
Does the apk from Xiaomi.eu rom work an a not MIUI rom ? Like Lineage or PixelExperience ?
[Magisk] Nergal di Cuthah:
Don't know sorry. I farmed a print and have a pixel.
[Magisk] dascotch2:
Used Freeman's and it is working, yey :):)

Thank you all for your help!
[Magisk] Nergal di Cuthah:
General question:

Does Freeman script, and next and all that stuff, kill unstable like PF does?
[Magisk] simplepinoi177:
it's not quite made for checking specifically when "fp is f'in over", but the below essentially checks for symptoms of when the fp is banana'd...

also, it helps for paranoid users like myself who don't want to suddenly find my tap to pay doesn't work unexpectedly all of a sudden...I can't confirm 100% that it works as my fingerprint isn't banned yet, but I see confirmation toast messages every time I unlock my screen so it does seem promising...

So, essentially, it will run everytime you unlock the screen (so at least that 3-4 times a day) and check if Wallet isn't passing, which indicates the "fp is f'in over"; as stated

GPay Checker: monitor of Google Pay availability

Google Play Protect now triggers onto app (that's honor for me), but here nothing criminal. You can safely skip warning. There is non-zero theoretical possibility, that using this app increases risk of banning your personal fingerprint. There...

xdaforums.com
[Magisk] deechte:
Good one. That's the method I used indeed.
[Magisk] simplepinoi177:
😶‍🌫️😅🤥

it doesn't

HAVE

to be 25, 27 could work just as much...it's just through meticulous testing and experimenting has found that, for whatever reason, 25 is like the magic "Goldilocks" # where it's not too high or too low; case in point, in those experiments, a good multiple number were found that were natively 27 that didn't pass but when changed to 25 it did. But, again, that's not to say having that number at 27 won't pass -- anything up to 33 theoretically (34 and 34+ will trigger the hardware attestation requirement and will surely fail)...
[Magisk] alonsoj636MW:
a weird thing happened today for me...

i have 10 backup pif which all worked fine when i tested them.

suddenly all 10 ones stopped working today at morning and only reported basic integrity (my banking app detected root so i checked integrity), so i thought all fp were "banned"

i re-tested all of them few minutes ago and now all of them are working (reporting device integrity)... is really weird... do anyone faced the same somehow?? 🤔
[Magisk] simplepinoi177:
are you using 15.2? because a lot of many users with custom FPs updating from 15.1 to 15.2 have reported random issues....could be related to that...
[Magisk] alonsoj636MW:
osm0sis's fork
[Magisk] Nergal di Cuthah:
Ver 6
[Magisk] simplepinoi177:
oh okay, as I edited my post afterthefact, if it was 15.2 PIF (not PIFork), then "...because a lot of many users with custom FPs updating from 15.1 to 15.2 have reported random issues....could be related to that...".

You might just have to ask @osm0sis if it keeps bothering you (all prints randomly failing)
[Magisk] alonsoj636MW:
yeah v6

i see... tnx for the explanation, will ask him if the fp fails again...
[Magisk] HippoMan:
One way to decide whether there is a reason to believe it isn't working is to check to see whether or not it's working. :)

In an ideal world, I'd like to be able to do this totally from within the Android device itself via some sort of function call, method call, CLI command invocation, etc.

Unfortunately, our world doesn't seem to be ideal in this manner. Based on some investigation I did concerning this a few weeks ago, there doesn't seem to be any way to automate this totally from within the Android device itself (i.e., without any desktop-computer connection) without some sort of uiautomator() (or uiautomator-like) dialog that clicks through from the top-level Play Store page down to Developer options=>Check integrity

That's better than nothing, but it's a pain to fully implement. I just decided to semi-automate this: total automation up to the click on Check integrity, and then just manually look at the results on the screen. I did it via Tasker using AutoInput, which is one of the "uiautomator-like" ways to do it.
[Magisk] LucasBS1:
Hello

I stole a build.prop from a TV box, and read this tutorial, but I'm missing the part where it teaches how to convert build.prop into custom.pif.json

Without a computer, of course

There are fields like "RELEASE", "ID", "INCREMENTAL", "TYPE" "TAGS", "SECURITY_PATCH", which I have no idea to what they correspond on the build.prop

Also no idea of what to do when the buil.prop doesn't have a field, like "*api_level"

Maybe if someone attached a sample custom.pif.json (even a failed one), I could have a better idea of what to put on those fields
[Magisk] V0latyle:
Use Pixel Flasher, it's the easiest

You can always try substituting an API...minimum 21, max 27
[Magisk] mingaldrichgan:
He said "without a computer", which certainly makes it more challenging.
[Magisk] trevtdogg:
I did it this way - start with the example fingerprint, and then copy paste the donor details into it and save in the correct directory, restart, check integrity to see if it passes.
[Magisk] MrSteelX:
Here is a failed one.
[Magisk] osm0sis:
Use my gen_pif_custom.sh script, linked in my Fork's README and my Odds and Ends thread. It will prompt you for the files you need to get all the fields and properties you need.
[Magisk] V0latyle:
I skimmed too fast

Having a 5 month old is distracting
[Magisk] GN-z11:
I do have some thoughts that what if we instead present the whole build.prop of an old device to DroidGuard so that it'll not try to read other props that are originally from the working device and instead think that we are natively running on the old device's build.prop. Lol
[Magisk] hyad94:
Only hideprops
[Magisk] Depressed T.Bear:
What a bummer.

Does anyone have version 8.8 or 8.9 and can share it here?

Unfortunately, Displax safetynet-fix module (v2.4.0-MOD_2.0) does not work on my device. I'm currently on 8.4 and would like to update "because it has a lot of improvements in native code, specifically in Zygisk" (chiteroman post #906).

Version 9 is for Android 13, so no option for me either :/

Cheers
[Magisk] mcreuter83:
Hey thanks,

but i go back to 8.9. That works well
[Magisk] mcreuter83:
For all ...
[Magisk] tutibreaker:
no you cant google has patched that
[Magisk] hope-faith:
Ohhh thanks man
[Magisk] drahtwurst:
done that. reinstalled banking app, it, same behaviour. wont work b/c of root
[Magisk] chiteroman:
I released a full version for users who still wants my old module. Should pass BASIC and DEVICE verdicts and it will auto remove safetynet-fix module.

In EliteRoms this module doesn't work (fail BASIC and DEVICE).

If you are using a custom ROM firstly check if you can pass PI/SN without any module.
[Magisk] bleez99:
Thanks. A shame that reading comprehension is in a steep decline.

Your original V9 works fine in concert with the displax mod.

The FULL version works fine as a standalone.

P7 Pro, semi stock ROM with Kirisakura_Raviantah
[Magisk] m0han:
Yeah

p.s.: What do you mean by semi stock ROM?
[Magisk] bleez99:
All stock ROM but rooted, with a custom kernel.

Not quite factory.
[Magisk] PropanateShellfish:
on my S10+, using v9.0 made a bank app that was detecting modding (Nubank) work, although momo reports several issues.

Bootloader unlocked, device rooted, magisk 26.3, zygisk enabled, denylist enabled (google apps not in it)

Thanks!
[Magisk] pershoot:
Try shamiko., leave enforce denylist off, have the app added in configure denylist, and launch app (you may need to clear storage for the app and re-set it up, if it still detects).
[Magisk] mcreuter83:
Ok, thanks full V9 works well... without usnf
[Magisk] dystopic.:
Using Fairphone 5 with stock rom, unlocked bootloader and rooted with Magisk.

I'm getting MEETS_DEVICE_INTEGRITY and MEETS_BASIC_INTEGRITY but not MEETS_STRONG_INTEGRITY, same result for both Displax's mod with your PlayIntegrityFix and your PlayIntegrityFix FULL. With your Xposed module I'm not meeting device, basic or strong.

Has an updated fix been made?
[Magisk] pershoot:
@chiteroman Thank you.

Full v9 works well on 7A (A14), thus far. Also, seems to have remediated touch sensitivity from a deeper sleep, when using 'double tap to wake' (AOSPMods + LSPosed) which was present on USNF1.3 and USNF2 + PIF9.
[Magisk] Depressed T.Bear:
Thank you for your work, effort and support. V9 (Full) works like a charm.

There's currently no way to bypass MEETS_STRONG_INTEGRITY. If MEETS_DEVICE_INTEGRITY and MEETS_BASIC_INTEGRITY pass, then the module works perfectly fine.

With Xposed you need to do various steps to hide itself as good as possible - otherwise it's very easy to detect, and you'll fail most tests. Personally, I moved away from using Xposed because of the hassle of hiding it.
[Magisk] downhere:
Hmmmm... has been answered just a few posts ago, same page. Just scroll up a bit...
[Magisk] FIERA03:
It's been a while since this post, but I finally managed to grasp the logic behind this app.

The app seems to check for STRONG only if the device supports NFC-F (incredibly) (because it's writing national number data to NFC-F = FeliCa chip).

🔧 [MODULE] Play Integrity Fix (SafetyNet fix)

PLAY INTEGRITY FIX This module tries to fix Play Integrity and SafetyNet verdicts to get a valid attestation. BEFORE YOU START: - Your ROM must be signed with a private key from maintainer, you can check with this command: unzip -l...

xdaforums.com
[Magisk] osm0sis:
My fork technically allows that, however DG only checks very few actual properties so it wouldn't be worth making a json that huge full of build.prop entries that don't actually do anything.

You can run with "VERBOSE_LOGS": "100" in your custom.pif.json on v6 to see all the Build fields and system properties it could actually look at.

What you'd need to do is add every possible Build field and then every property DG actually looks at, and fill them out using the build.props and then you'd have a decent test set up.

We have tried something similar already, but it didn't seem to make much difference. Unclear why. Maybe because there are certain things it looks at that the value can only likely be found on a running device, or because it knows without a doubt that the KeyStore is modified, or bootloader is unlocked despite all the properties we spoof.
[Magisk] trevtdogg:
I think that's when you can get issues with apps not appearing at all in play store because your phone doesn't meet the minimum requirements, that type of thing.
[Magisk] Iridule:
First fp found Dec 4th still working...also a fp I shared with around 20 people is still active.
[Magisk] Umgak:
Shouldn't cause that issue. Keep in mind spoofed values are only presented to DroidGuard, everything else sees the normal build props, including play store.
[Magisk] pndwal:
Could you give more details about setup here?

Do you mean this failed with no spoofed props set for PIF in general space but passed in second space?... Or props not passing in general space are actually set?... Or other?...

Depending on configuration it may be quite revealing!... 👍 PW
[Magisk] pndwal:
mmm... Wondering now, was USNF not using Zygisk directly? PW
[Magisk] pndwal:
I don't use doordash, however...

I've discussed this many times in detail, but

1) DenyList is NOT a root hiding solution and will a actually break module modifications (eg hiding modules of various sorts) for apps in denylist... Shamiko is proper hiding, used hidelist mode (don't be fooled by the fact that it hijacks list from DenyList), and it adds back hiding functions from MagiskHide incl. resetting sensitive props, plus adds many more like Zygisk hiding etc...

2) Many apps now detect Zygisk... New native-bridge loaded Zygisk is much better hidden than old Zygisk injection... It was available in Alpha fork for some time but is now merged in TJW Magisk and already built in Canary. Nb. (Nota bene, 'Note well') It has NOT yet been built in Stable/Beta Magisk but should arrive with 27.0... Another Zygisk loading method, ptrace+fuse, exists (in ZygiskNext etc. (et cetera, 'and similar') also... Shamiko is compatible with all three Zygisk loading methods and hides Zygisk traces effectively for the latter 2

... Many bank detections are bypassed by native bridge loading but ptrace+fuse may be even better...

🤠 PW
[Magisk] pndwal:
Actually 33+ should always fail (unless Google changed level for no-exception enforcement?)... From Pixel 7 (Launch version Android 13, API level 33), shipping level of 33+ in property settings enforced HARDWARE_BACKED server end evaluationType verdicts across all devices... PW
[Magisk] adsgard:
Yeah I meant that the fingerprint that I use to install did't pass check in the main space but at the same time passes in the Island space. and You can implement any lsposed modules from the mainland into the island and them works well except HMA module from which I have tried. So at the same time I found the island app very useful while you can run 2 vpn or proxies at the same time and you could set 2 different locations for both spaces separately.
[Magisk] aygul12345:
Hi all,

I need some help and advice in this...

I am running Xiaomi 13 Pro with a official ROM with UNLOCKED BOOTLOADER and having root.

Modules enabled:

- Play integrity Fix 15.2 Version Chiteroman

- Shamiko

- Zygisk - LSPosed.

----------------------------

Im not passing Meets_Device_Integrity.

BUT Passing Meets_Basics_integrity.

So my question is, how to pass my Device Integrity? While using a default ROM?
[Magisk] Spartacus500:
Same for me 15.2 🤷
[Magisk] simplepinoi177:
you need to implement a custom fingerprint to pass MEETS_DEVICE_INTEGRITY -- PIF 15.2 or any future versions will not include an embedded fingerprint

...and please read through this thread and/or search through it before you ask, "how to do?" "how can i?" or the like...because it's been answered innumerably before, every day....
[Magisk] Clasimodo:
Still grateful
[Magisk] Vision:
For Anyone who don't want involved with adb command or similar

The same work with @osm0sis module

For quick and easy test (if you have already installed this module, test it only in past with v14 by @chiteroman) if FP working, send the new pif.json file to /data/adb and replaced the existing, go to setting/apps, found the Google Play Services and click force close (no need close the internet etc.) (i try it this with Total Commander the replace) after do the test if pass 2/3
[Magisk] osm0sis:
It didn't use libc hooking to spoof properties to DroidGuard, it only did properties globally.
[Magisk] G5-User7080:
Thats a great tip thanks, I'll note it down.

Did you mean Play Services or Play Store now? or both?
[Magisk] V0latyle:
Play Services. Sometimes Droidguard gets "stuck" and will result in either failing verdicts or time out.

The only time you should need to clear Play Store data is if you are passing DEVICE but Play Store is still showing "Uncertified"
[Magisk] pndwal:
I'm sorry, but I wasn't asking about exclusive spoofing targeting driodguard; I know that's needed...

I was asking about whether injection in general (including for main function, ie. registering a fake keystore provider to overrides the real one and block Key attestation at device level) was done using "direct hooking through Zygisk" in USNF, or if it used either Dobby or Shadowhook like PIF since you commented:

However I know this is not correct:

... USNF certainly used targeted spoofing (to GMS driodguard process which was previously referred to as the safetynet process by TJW and others), it's just that Google was only using model props for enforcement of HARDWARE_BACKED evaluationType initially (others came later)... @kdrag0n wrote:

... Later we needed the fingerprint prop mismatch for bypass purposes also and @Displax forked USNF to add this... His 'interum' builds did use global spoofing for fingerprint initially, but by the time @kdrag0n developed the 'dynamic' (runtime only) spoofing model targeting driodguard process he was happy with and added mismatched fingerprint prop spoofing, a third prop mismatch had become necessary, ie. first API level ('shipping level'), and for reasons I thought strange even then, that was executed globally...

So in 2.4.0 we had dynamic targeted spoofing for model and fingerprint but global for shipping level... Because the globally set shipping level broke voWiFi for P7 (and potentially other functions), @Displax finally made his fork, rebased on 2.4.0, target driodguard for all three needed mismatched props in his last build, 2.4.0 mod 2.0... Unfortunately that soon broke for A13+ devices as it utilised the P2/walleye based spoof for fake STRONG_INTEGRITY pass and null value for shipping level... The purely targeting spoofing for attestation related props did fix issues and worked well while it lasted however.

Many reverted to 2.4.0 mod 1.3 with only 2/3 props targeted at that point, and again experienced issues with global setting for shipping level until we got PIF with 3/3 props targeted again... 🙂 PW
[Magisk] osm0sis:
Go look at the USNF source next time. You're taking my original comment and answer to you out of context. I'm talking about libc hooking.

USNF only spoofs KeyStore and Build fields to DroidGuard, and did this through Zygisk hooks, hence never used a libc hook for targeted system properties spoofing, so never needed to use any libc hooking method like ShadowHook, Dobby or attempt it directly through Zygisk. Meaning property changes were only global for USNF, through the Magisk module .prop and .sh files.

PIF uses Zygisk for KeyStore and Build fields through reflection, and ShadowHook/Dobby for system properties through libc.
[Magisk] blu.italia:
@aygul12345

@Spartacus500

With this

GitHub - osm0sis/PlayIntegrityFork: Fix Play Integrity (and SafetyNet) verdicts, allowing custom fields and props

Fix Play Integrity (and SafetyNet) verdicts, allowing custom fields and props - osm0sis/PlayIntegrityFork

github.com

and this

GitHub - TheFreeman193/PIFS: A collection of build properties for the PIF module

A collection of build properties for the PIF module - TheFreeman193/PIFS

github.com

you have access to many fingerprints that you can automaticly install and try. This doesn't need more then 10 minutes to install and find a working fingerprint.
[Magisk] aygul12345:
Much thanks!
[Magisk] Spartacus500:
@blu.italia

I try fork v6, and only MEETS_BASIC_INTEGRITY 😔
[Magisk] V0latyle:
The print you were using passed DEVICE with v5?
[Magisk] pndwal:
Thanks for the clarification...

I hadn't meant to take your comments out of context... I tend to take things at face value and you hadn't made the distinction between build field properties and system properties AFAICS; just said "it only did properties globally"... Sorry if I'd missed this in earlier discussion.

I'm not here to argue; just to learn/understand/help others like anyone else... Didn't mean to frustrate you. 🤷 PW
[Magisk] simplepinoi177:
with PIFS, you have to keep downloading pif.jsons and testing them all....some get it within the first try or 5 tests, there some that claim that they've tried 200 before landing on one that pass -- it just that nature of it that it takes some perseverance and unfortunately luck
[Magisk] ykjae:
I went back to magisk alpha since that post about doordash not working. I've always used shamiko but kitsune didn't support it. I can now get doordash to work after clearing data but then it errors again after following launch. I can live with that as its not something I use often and I have other devices I'm just not sure what's causing it. I have everything hid and nothing hooking into it as far as lsposed modules, etc
[Magisk] osm0sis:
That's the difference though, Build fields aren't properties, they're Build fields. System properties are properties. I've been saying it for some time.
[Magisk] V0latyle:
This can be confusing to a lot of us though. By "build fields" do you mean the specific values within build.prop, and by "properties" do you mean the general collection of all props inherent to said system?
[Magisk] sawdoctor:
App Devs are getting more and more sneaky. I had 2 bank apps force an update on me and now nothing at all hides root from them. If I hook them with any xposed mod at all (even just update locker) they crash. Unfortunately we have to face the fact that if an app developer really wants to detect root there's nothing we can do.

What is really stupid is you can still access bank apps on a rooted device through the web
[Magisk] buu'buu:
Thank you very much everyone/ @osm0sis @chiteroman @blu.italia @TheFreeman193 / , worked on the first try using the pickaprint.sh script method on Termux.

MEETS_BASIC_INTEGRITY and MEETS_DEVICE_INTEGRITY (y).

Nothing Phone2 with :

-NothingMuchROM 2.5.1.A-ARTER97-R8

-KernelSU version 11434 and arter97 kernel 5.10.198-arter97-r9-kernelsu boot image

-Play Integrity Fork v6