yashsingh1/xdaforums huggingface dataset:
[Magisk] osm0sis:
What? No... Neither of those statements are accurate. And I feel like the 2 of you should know these definitions by now considering all of the conversations you've been a part of. :(

Let me dig up my explanation once again, and I'll link it here.

But for starts just look at the headings in my example.pif.json:

PlayIntegrityFork/module/example.pif.json at main · osm0sis/PlayIntegrityFork

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

github.com

Edit

:

Here, on Tuesday was the last time I explained it for you:

🔧 [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] V0latyle:
Ok...I think I understand the difference in the context of what your module does but I was asking in more of a general sense. Never mind, it doesn't matter.
[Magisk] osm0sis:
There is no general sense. It's not what my module does, it's how Android works, so we need to stop conflating Build Fields and System Properties. (y)
[Magisk] V0latyle:
I'll be honest, I still don't get it (note to everyone: we moderators weren't necessarily chosen for our technical expertise!) but I don't know how important it is that I know the difference so I'll leave it at that :)
[Magisk] bsimpson1:
After getting a fingerprint, at first my device will pass the integrity check. When I wait a few minutes and try again, it always reports "NO_INTEGRITY". I don't understand what's causing it to pass and then fail later on. Is this happening to anyone else?
[Magisk] sawdoctor:
We're all still learning, even the " elite developers" are still learning. @osm0sis learnt about PI and java to make his module. Whats important especially for mods is the fact you try and help and you also ask people who are more knowledgeable when you are unsure.

I used to be able to make custom roms, kernels and build Aosp. Stepped away from modding for a few years and now haven't a clue, everything has changed so much
[Magisk] hayvan96:
So finally, PIF 15.0 (I think) on my wife's device stopped working yesterday (FP banned), so I took the opportunity to switch to osm0sis' fork (v6), and try Freeman's script. Easy peasy after 3 trials.

On my own device, my first FP found manually beginning of December is still working. Thanks for your hard work devs, especially @osm0sis and @TheFreeman193
[Magisk] V0latyle:
What's your configuration? It seems like there are some intermittent bugs with PIF and PINext. Maybe try PIFork.
[Magisk] bsimpson1:
I am using PIFork but I think I figured it out. I am using MicroG and as long as I force stop it before performing the integrity checks, it will consistently pass basic/device integrity. It's definitely something to do with microg but I don't completely understand how since the integrity checks are all handled by Play Store.
[Magisk] chiteroman:
Release v15.3 · chiteroman/PlayIntegrityFix

v15.3 x2

github.com

v15.3 released with a new way to spoof props from Zygisk lib: link

Also, ShadowHook is back!
[Magisk] osm0sis:
Those aren't props, those are fields. :p

That fixes the call timing issue I assume though, eh?
[Magisk] chiteroman:
Well, yep it fixed it but some phones become nukes when installing this module 🤣
[Magisk] chiteroman:
v15.3 will stay as unstable build due crashes in some devices.

You can test it and check if it works in your device: https://github.com/chiteroman/PlayIntegrityFix/releases/tag/v15.3
[Magisk] osm0sis:
Absolutely. Learning more about Java, C++ and JNI every day here, which is the fun of it for sure.

I just want it to be that the people helping others understand enough to do so and are passing on only correct information; it's just important to know what you don't know here, so that you're not passing on things that are incorrect. 👍
[Magisk] Mikes:
Nevermind, I've got it.
[Magisk] chiteroman:
Updated test build v15.3

Release v15.3 · chiteroman/PlayIntegrityFix

v15.3 x2

github.com
[Magisk] doenx:
Help please. All of a sudden this morning my gpay stopped working (used it the night before). Doing a integrity check still showing I'm passing both basic and device integrity. Nothing was changed on my phone in between it working and not working.

Edit: update chiteroman module (was running 14.6) and use a different fingerprint. All is well now. Just panicked gpay failed while still passing basic and device.
[Magisk] pndwal:
Yeah, OK...

Please don't shoot me down, just correct me, but if field values reflect/derive from props (as the code here indicates to me, but I'm certainly not fluent in ANY programming code, just sleuth a bit), ain't fields effectively a vehicle for delivering prop spoofs? Or no?

It seems to me that field use makes the data private, protected, limits accessibility, whereas properties enable data to be accessed easily... Also, if a fingerprint derived from build.prop etc is tendered to driodguard in field form, aren't we still effectively spoofing the fingerprint property, just delivering it in both a private and targeted form?

Incidentally, here's how @kdrag0n's Proton ROMs targeted GMS with Build.FINGERPRINT / PRODUCT_STOCK_FINGERPRINT from ro.build.stock_fingerprint (using com.android.internal.gmscompat hooks?) in case it's useful:

https://github.com/ProtonAOSP/android_frameworks_base/commit/14cadef1690f

Hit me with it... Gently please. 🙃 PW

A ref:

https://stackoverflow.com/questions/295104/what-is-the-difference-between-a-field-and-a-property
[Magisk] patrioticmanan:
Anybody please help me i'm new to rooting world. i have rooted pixel 5 on android 13. I installed the module Play Integrity Fork v6 by Osmosis and using pixel flasher i've added pif.json file. I have passed Device Integrity but i want strong integrity pass. What should i do ?

Also i have tried chiteroman/PlayIntegrityFix latest version and use several pif files but device is only passing basic integrity. Any help would be highly appreciated
[Magisk] simplepinoi177:
You're good if you're passing DEVICE. There's no way to get STRONG with an unlocked bootloader. Good news is hardly any (if any at all) require STRONG to run. All of us are going about without passing that....

@patrioticmanan , Also, as per Forum Rule 5 (relevant excerpts quoted below), do not post duplicate posts.

XDA Developers Forum rules said​

5. Create a thread topic or post a message only once, this includes external links & streaming media.​

As a large forum, we don't need unnecessary clutter. You're free to edit your message as you like, so if you do not receive an answer, revisit your message and see if you can describe your problem better. Not everyone is online at the same time so it might take a while before you receive an answer.​

Duplicate threads and posts will be removed
[Magisk] patrioticmanan:
Thanks for your reply. All i wanted is to stream Netflix in HD. My Device Showing L1 DRM but netflix is still streaming in low quality Not HDR or 1080p i guess. Is this because of unlocked bootloader or their is something else which is causing the issue ?
[Magisk] simplepinoi177:
I'm not super familiar with Netflix and that issue, but as I understand it, it has something to do with "widevine" or something like that....

but that issue has nothing to do with Play Integrity API nor Play Integrity Fix...
[Magisk] pvt.peter:
I get an exception in the spoofProvider function, I also tried the 15.1 and 15.3.3 version, result is the same.

Here is the relevant log:

01-23 12:15:37.848 6768 6768 D PIF : Dex file size: 6732
01-23 12:15:37.849 6768 6768 D PIF : Json file size: 251
01-23 12:15:37.849 6768 6768 D PIF : JSON file doesn't contain FIRST_API_LEVEL key :(
01-23 12:15:37.892 6768 6768 D PIF : get system classloader
01-23 12:15:37.892 6768 6768 D PIF : create class loader
01-23 12:15:37.893 6768 6768 D PIF : load class
01-23 12:15:37.893 6768 6768 D PIF : call init
01-23 12:15:37.896 6768 6768 D PIF : Error trying to spoof Provider: java.lang.IllegalStateException: Failed to obtain application Context from ActivityThread
01-23 12:15:37.896 6768 6768 D PIF : Save BRAND with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Field BUILD_ID not found!
01-23 12:15:37.897 6768 6768 D PIF : Save DEVICE with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Save FINGERPRINT with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Save MANUFACTURER with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Save MODEL with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Save PRODUCT with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Save SECURITY_PATCH with value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Map size: 7
01-23 12:15:37.897 6768 6768 D PIF : Set MANUFACTURER field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set BRAND field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set DEVICE field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set MODEL field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set FINGERPRINT field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set PRODUCT field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Set SECURITY_PATCH field value: XXX
01-23 12:15:37.897 6768 6768 D PIF : Found '__system_property_read_callback' handle at 0x79cc9c9aa0
01-23 12:15:38.011 6768 6768 D PIF : [dalvik.vm.usejitprofiles] -> true
01-23 12:15:38.023 6768 6768 D PIF : [hwservicemanager.ready] -> true
01-23 12:15:38.077 6768 6768 D PIF : [ro.vndk.version] -> 29
01-23 12:15:38.077 6768 6768 D PIF : [sys.use_memfd] -> false
01-23 12:15:38.144 6768 6768 D PIF : [sys.displayfeature_hidl] -> true
01-23 12:15:38.519 6768 6797 D PIF : [dalvik.vm.dexopt.secondary] -> true
01-23 12:15:38.668 6768 6797 D PIF : [ro.secure] -> 1
01-23 12:15:38.668 6768 6797 D PIF : [ro.debuggable] -> 0
01-23 12:15:38.668 6768 6797 D PIF : [sys.usb.state] -> none
01-23 12:15:39.694 6768 6795 D PIF : [ro.secure] -> 1
01-23 12:15:39.694 6768 6795 D PIF : [ro.debuggable] -> 0
01-23 12:15:39.694 6768 6795 D PIF : [sys.usb.state] -> none
01-23 12:16:01.193 8696 8696 D PIF : Dex file size: 6732
01-23 12:16:01.193 8696 8696 D PIF : Json file size: 251

spoofProvider exception: java.lang.IllegalStateException: Failed to obtain application Context from ActivityThread

It comes from KeyStore.getApplicationContext() function, because the application variable is null.

I don't know why ActivityThread.currentApplication(); call will be null.

Do you have any ideas for this?
[Magisk] mike.s:
Restore to an unrooted, factory firmware image and relock your bootloader. If you'd put in even minimal effort, you would have known that before asking.
[Magisk] osm0sis:
Technically yes, but where android.os.Build fields are only populated with those property values by the OS itself at early boot-time, and DroidGuard only checks Build fields for most of the things we need, the distinction remains important, especially for knowing what DroidGuard is doing, and keeping up with what it does in the future.

That quote you've got is about C#, so not really relevant, by the way. Just know that any time I talk about a property, I'm talking about what you see when you type `getprop` on Android.
[Magisk] adinechin:
Hello, for your information I switched to PlayIntegrityNEXT (https://github.com/daboynb/PlayIntegrityNEXT), which is much more easier to use.

But thanks a lot to @chiteroman for the initial job 😉
[Magisk] simplepinoi177:
supposedly, you can use the auto_fp_downloader.apk & playcurl.zip with PIF (as opposed to PINext), but glad you got it working nonetheless!
[Magisk] osm0sis:
Easier to use until you get tired of your fingerprint getting banned. 🤷‍♂️
[Magisk] osm0sis:
PIFork v7 Release Candidate CI build is up if people here could also please give it a spin. See the quoted posts. 🤠
[Magisk] bombadier:
Just updated from v6 and everything still working 👍
[Magisk] guniens:
Hi!

I'm on PIFork V5, can I simply update the module via Magisk and I'm done or other steps are required?

I've flashed the V5 and found a working fingerprint via PIFS and everything's good since then.

Thanks!
[Magisk] LucasBS1:
Just passing to thank those many who answered my question a few pages ago

Will try the suggestions
[Magisk] osm0sis:
v5 should automatically update to v6+ no problem. (y)
[Magisk] HippoMan:
Agreed. And I would just add that terms "property", "attribute", and "field" do not have hard-and-fast, universal definitions in the world of software. These definitions are computer-language-specific and context-specific, and in some cases, they can be used interchangeably.

Given that Android defines things called "build props" or "build properties" which are retrievable via "getprop", I agree that it indeed makes good sense for us to choose to use the word "property" for these items when we are discussing them in this Play-Integrity context, and for clarity, to choose to use a different term (in this case, "fields") for the items that do not correspond directly to Android "build props".
[Magisk] 1jkan:
Only Play integrity NEXT worked for me! Hurray! Thanks!
[Magisk] adinechin:
Is it not the case for all PIF modules now ?
[Magisk] osm0sis:
If you find your own, it basically won't get banned. I'm still on my first ones, which I found Nov. 19th, when PIF v13.1 first added pif.prop support.
[Magisk] V0latyle:
No

Up until recently PIF (original module) had embedded fingerprint that had to be changed when it got flagged

PINext pulls print from Xiaomi.eu

The problem is having lots of people all using the same print. Prints that are shared between a large number of people seem to get the attention that gets them flagged and defeated

Very few people who are using their own prints have had them stop working
[Magisk] adinechin:
Ok understood. But in fact, I'm on a Xiaomi device, so under xiaomi.eu rom I use the apk from xiaomi.eu, but right now I'm trying LineageOS, so using xiaomi.eu fingerprints for me is quite the same 😅

But what you're saying is that I should use and build an official ROM fingerprint to be at ease for some time...?
[Magisk] CZ.Kostra:
With your own FP, you will have a better chance of hiding from Google than with the Xiaomi.eu FP. 😉
[Magisk] simplepinoi177:
PIF only uses custom fingerprints, PINext pulls from the xiaomi.eu custom ROM (as mentioned previously), and PIFork always required a custom fingerprint (it might be considered better implemented and more future-proof). With personally found custom fingerprints, PIFork & PIF is exponentially less likely to get banned by Google than PINext (although PINext is easier to implement; and it can potentially update to a working fingerprint in an hour or a couple of hours). But Google can ban that at any moment (so it doesn't work for me as I rely on Wallet to work at all times) and you are at the mercy of the xiaomi.eu devs updating the fingerprint...
[Magisk] osm0sis:
CI #128 (v7 Release Candidate) up to fix APatch support for replacing custom ROM spoof injector apps (Xiaomi.eu/EliteRoms) (y)

Fix ROM injection app replacement when using APatch · osm0sis/PlayIntegrityFork@198c2e5

Fix Play Integrity (and SafetyNet) verdicts, allowing custom fields and props - Fix ROM injection app replacement when using APatch · osm0sis/PlayIntegrityFork@198c2e5

github.com

And APatch has their new release out so that's one more thing resolved! https://github.com/bmax121/APatch/releases
[Magisk] ew:
I have been trying the fork - and I use Fox's Magisk Module Manager - and it keeps telling me that I have an update. It then updates me back to the original.

I am using version 1.1.0 of the Module Manager - I know that there are newer releases, but I had some issues with the newer releases.
[Magisk] osm0sis:
Nothing on my side there. It works correctly in the Magisk app, and it's using all the normal mechanisms in update.json there. If it doesn't work on their latest Module Manager version I guess report it to Androidacy.
[Magisk] osm0sis:
Oh yeah, I also updated my autopif.sh script with APatch busybox support the other day: https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/page-387#post-89233630

🤘
[Magisk] ew:
Yep - thanks for the help, and a bit of a saga.

The Fox Memory Manager was updated to Anroidacy (as you mentioned). I installed their latest version and still had the prompt to upgrade to the original.

Then, I found another repository manager (seems relatively new) MRepo (https://xdaforums.com/t/mrepo-final...gisk-module-repository-manager.4627283/page-3) and that seems to work better. See the linked site for more information on that manager (and adding repositories).

Do you submit the fork to any repositories? Just wondering about possible simplifications of the update process. If I recall, that was the reason that I began to use a Module Manager (among other reasons) to simplify the update process.

Thanks again for all of your help and support. I am now using your fork and it is passing with my custom fingerprint.
[Magisk] osm0sis:
No, I haven't submitted to any, since the Magisk app works well enough for module updates for me.

My guess would be that the problem with Androidacy MM is this (expand all the minimized comments): https://github.com/Androidacy/MagiskModuleManager/issues/5#issuecomment-1722101493

So it's using only their servers despite my module specifying something different in the update.json, and their server presumably only has chiteroman's PIF module. I guess I could work around it by changing the module id name or making my versionCode higher than chit's, but I really shouldn't have to because the updateJson URL points to mine. 🤔 :p
[Magisk] ew:
Thanks again for the help. I guess I will see what happens as updates are released and as I use it.

However, unlike the Androidacy MM, even though I have added a repository that lists the original module, it is not matching it as a update for the forked version - so it is not prompting me for the upgrade.
[Magisk] sawdoctor:
Just flashed CI #128 on pixel fold (still says v6 in magisk but everything flashed OK so presume that's right). Everything good here still 2 green ticks on my fingerprint that's nearly as old as yours
[Magisk] pndwal:
Sure, and I see your distinction for USNF "only did properties globally" now (although it was effectively spoofing the other (critical) properties to target driodguard by setting these in build fields at boot time... I'd missed that you were speaking technically and excluding those 'prop spoofs', sorry.)

Incidentally since we're discussing spoofs for driodguard and correct information, I was the first in these forums to start referring to the targeted process (com.google.android.gms.unstable) as the 'DroidGuard/attestation' process when others were still calling it the 'Safetynet process'...

TJW, @kdrag0n, even Romain Thomas were all calling it 'Safetynet process', but Romain's white paper comment:

https://www.romainthomas.fr/publication/22-sstic-blackhat-droidguard-safetynet/

was my cue. 🙂 PW
[Magisk] m0han:
Got my hands on an earlier rooted device and tried this for a quick check. The app wouldn't run as expected/designed, so had to go to a Terminal window and do 'su' followed by 'fp'. There were minor hiccups still.
[Magisk] BunnyPig1:
@osm0sis I'm using your fork, currently on v4 and haven't been paying attention to new releases. Will I be able to update to v6/v7 without any issues? Like needing to modify my current json etc?
[Magisk] osm0sis:
It should work as long as you were following the guides and have got either a FIRST_API_LEVEL or DEVICE_INITIAL_SDK_INT entry in there. I added a migration script so people can update without having to worry about the new defaults. 👍

After it migrates you and you reboot, go to the module directory and save your updated file, then you're all set forever. 🤘
[Magisk] osm0sis:
There are some very friendly guides around. Don't sell yourself short!
[Magisk] Jonog:
I softbricked an old phone messing with "props" Im afraid ever since 😀
[Magisk] Lord Sithek:
It's nothing to be messed here, you don't change actual props, you just spoof them for DroidGuard
[Magisk] BunnyPig1:
Thanks! I'll try it, although I will try to do it during the weekend if I do something wrong and have time and access to my pc!

Just wanted to know if I should be prepared for something bad. I have set FIRST_API_LEVEL for all my fps so it should be no issues then. And thanks for the support, very appreciated!
[Magisk] simplepinoi177:
I was under the impression that the migration will happen just implementing the new module (v6, v6+)....as if the new versions run what the migration script does natively...?

Would like to confirm, in the event mine fails and I finally upgrade mine from v3....

sorry if it was the wrong impression (proving just how noob i am and much of this is still going move my head... 😅 )
[Magisk] osm0sis:
It happens only during the update/install process to any newer version, and it's my script that does it. You can also run it again manually any time you want/need. Don't be afraid, just update. Your current print will still work. 😛
[Magisk] simplepinoi177:
I appreciate you clarifying...

You know what, I mistook what you said here

as you "added a migration script" in terms like the script is to be added in conjunction with the module....not that you "added a...script" to the module code..... 🤦‍♂️

Thanks for all the work!
[Magisk] Nergal di Cuthah:
I think i know what's up, but I'll ask anyway. This update, not ready for magisk update yet? Still a release candidate? If not for some reason I'm not seeing the update in magisk.
[Magisk] osm0sis:
Yep it's an RC, only available as a CI build from GitHub Actions, and is otherwise "unreleased". That's why it still shows "v6" in Magisk (though you'll notice on my CI builds the actual versionCode in module.prop is +1 from the last release, e.g. 6001 instead of v6's 6000).

I've got everything ready to go for the release, but I'll wait another day or so for feedback here on the RC first. 👍
[Magisk] doenx:
Ugh. My GPay is failing security requirements again this morning even with passing basic and device integrity.

Running Magisk 26.4 with PIF v15.2 and shamiko 1.0.

OnePlus 8 pro stock oxygenOS 13.

Any suggestions to getting my GPay working again?
[Magisk] osm0sis:
15.2 has a bug that causes intermittent failures, so Wallet must have caught one of those. Either downgrade to 15.1 or come over to my fork.
[Magisk] rogers11:
Confirmed working. 👍
[Magisk] doenx:
Will give your fork a try.
[Magisk] cosy6ay:
does your fork variant work on qpr2b3?

thanks.
[Magisk] Umgak:
It should now that it's using Dobby (although ShadowHook was finally fixed right after the switch).
[Magisk] sawdoctor:
Yep, using on pixel fold QPR2 beta3
[Magisk] cridus:
I've switched to osm0sis' fork but I'm still not meeting the security requirements in Google wallet. I have a OnePlus 7 with android 9. do I need to manually configure something?
[Magisk] simplepinoi177:
if you're passing DEVICE, then there are 2 things you can do; 1) wait 24 hours or 2) clear data for Play Services, Wallet, Gpay, (if you want more for good measure; Google Framework, Play Protect, Play Store), reboot (some say this rebooting is unnecessary). This will remove all cards from Wallet, so you will have to re-add and do verification for them -- but good news is that Wallet will now work as expected (tap to pay, add cards, etc.).
[Magisk] cridus:
actually, I'm not! 🙀 I didn't even check! I'm an idiot.

what should I do if I don't pass even that?
[Magisk] simplepinoi177:
you have to implement a custom fingerprint that works & passes MEETS_DEVICE_INTEGRITY

lol....😅

yeah.... @osm0sis ' fork is one of the only PIF modules that had never had an embedded/included fingerprint....😅
[Magisk] woody4165:
Hoping is not too OT

I've reverted back to stock MIUI on Redmi Note 10 Pro locking back the bootloader, but I get only basic integrity pass, device and strong are NOK.

Is there a way to return stock and get all three integrity pass?

Thanks
[Magisk] chiteroman:
Install this app:

Key Attestation Demo - Apps on Google Play

Demo for Key Attestation feature of the Android system.

play.google.com

And send screenshot.
[Magisk] woody4165:
View attachment 6059263

This is what I get