yashsingh1/xdaforums huggingface dataset:
[Magisk] beeshyams:
Realistically speaking, it looks like are on the losing side. All it needs is one bank to implement strong integrity and others will follow ...hell even my hospital appointment booking app doesn't work unless I put it in deny list

OTOH their Gpay (we don't have wallet in India) works fine with basic integrity and is immensely popular, even street cart vendors use it and they probably wouldn't do anything to upset the users
[Magisk] Nekromantik:
It opens but everything disabled.

Yes root given to shell so I can adb and run commands with su from my computer without issues
[Magisk] xcl1pse:
Well theres one...

https://play.google.com/store/apps/details?id=com.CIB.Digital.MB

But it can be bypassed using bootloaderspoofing
[Magisk] osm0sis:
Worked on my Fossil watch when my old phone was failing, and still works on my Pixel Watch 2 when my new phone failed from me testing. I can tap with my watch still even when my phone isn't there. You have to add the cards to your watch separately when you set it up. It's definitely its own thing, at least on the watches I've owned.
[Magisk] intel_core_i7:
Then it does not require strong. bootloaderspoofer only spoof local attestations and well cib worked because, you should have known by now, by only using local bootloader checks. If it require strong then nothing could bypass it since it will contact google servers to check the private TEE key on your phone that the OEM registered with google. Uber driver is told to be one of the examples.
[Magisk] badabing2003:
Please report this in PF thread and provide a support file.

It should work, and if my memory serves me well (which often it doesn't) @Emmes used with KernelSU

Found it here
[Magisk] xcl1pse:
If uber driver using that, why my friend can using them using kitsune mask?
[Magisk] intel_core_i7:
I did not claim it's true, I just quote people's speculation

View attachment 6043467

right inside this thread. It may apply different checks by region? Who knows, I'm not a taxi driver and uber isn't evan available here.
[Magisk] xcl1pse:
This is the real app that require strong

https://play.google.com/store/apps/details?id=io.faceapp

IIRC, you can't use filters in Impression tab if you don't pass strong
[Magisk] intel_core_i7:
Updated with screenshots above, if it doesn't require strong then many would want your friend's help
[Magisk] xcl1pse:
Last time I asked, he just say "set like I normally do (enforced sulist)"
[Magisk] intel_core_i7:
Weird. Probably different region or his phone has broken TEE by chance? Many xda members fail to spoof it, I have read one managed to spoof it but it takes like 20-ish steps and there isn't another member who could do it to back up if the spoof actually exists and works
[Magisk] xcl1pse:
Hes using samsung like me, so no chance TEE will break but simulated that TEE broke yes. Also he refuses to elaborate more :p
[Magisk] rodken:
[Off-topic] It's good to know that one can make a number of offline payments before needing to reconnect to the phone which of course, varies depending on the card issuer.
[Magisk] intel_core_i7:
Of course, if someone actually finds some strong spoof then why would you disclose and have your months or years worth of work wasted? @pndwal you may want to have a look at this?
[Magisk] HippoMan:
Instead of a smartwatch, I recommend this alternative hardware-based wallet which doesn't need a device connection at all ...
[Magisk] DougMG:
That is incorrect. Your watch is it's own independent device and Wallet will work on it regardless of your phones status.
[Magisk] Nekromantik:
Will re try
[Magisk] Imnoa:
Don't challenge me, If I could unlock the bootloader of my leather wallet I would
[Magisk] badabing2003:
You have to use WalletFlasher ;)

View attachment 6043487
[Magisk] Homeboy76:
As @badabing2003 stated the

antivirus

information is in the Pixel Flasher OP, under Important. :)
[Magisk] Nekromantik:
not true on the pixel watch as it links to the wallet app on phone. you cant add cards to just the watch its all done via phone and if phone wallet does not work then nor will pixel watch

wallet on my phone detects root and when i open wallet on watch it says suspended
[Magisk] Wolfcity:
Question from a non-Samsung user:

Do you need a Samsung device to use for example a Samsung S3 frontier watch?

I'm looking for a cheap smartwatch, not primarily for NFC payment. Should look good too.😉Main device is Xiaomi.
[Magisk] sawdoctor:
All i can say is i have a pixel fold and a pixel watch and I've never failed PI or had a payment declined on my watch
[Magisk] V0latyle:
I hear the battery life on these is insane
[Magisk] zgfg:
A bare minimalistic but simple for maintenance shell script for automatic testing the JSON files with SPIC (Simple PI Checker) - app must be installed) to the phone.

No need for PC, ADB, additional tools or programs- test directly from the phone

Unzip and copy the attached script to Internal memory - eg into the Download folder.

Copy the *.json files you wanna test into the SAME folder

Run the script - I run by taking Execute in the MiXPlorer (MiX must have the root granted) - screenshot attached

Script will test one by one *.json from the folder and will delete those that don't result with Device (or Strong) Integrity

Script is adapted for @chiteroman PI Fix DEV, uncomment the alternative custom_json path if using @osm0sis PI Fork

If you see that it doesn't automatically kick "Make Play Integrity" button in SPIC, edit the script / try with smaller y coordinate, eg 920 instead of 1020:

input tap 300 1020

It waits 10 seconds for each PI test - be patient.

You can put shorter sleep but if it doesn't obtain verdict in time, test will fail and script will delete that json file as not valid

Credits to @badabing2003 - mostly based on his automatic testing in PixelFlasher

PS: For those who want to run the script from Terminal emulator, script must be copied to eg /data/local/tmp with chmod 755

Copy also your *.json files there or call the script with

/data/local/tmp/pif-test.sh <path to the folder with json files>

Edit:

NEW VERSION attached, handling white spaces in file names

Edit 1:

NEWER VERSION attached, if DEVICE_INTEGRITY fails, the script will automatically try again by changing FIRST_API_LEVEL to 25 and then (if failed again) 23

But FIRST_API_LEVEL must be the last field in the JSON file

Also, script doesn't check if FIRST_API_LEVELwas already eg 25, so it will 'change' to 25 and will try again - ad hoc solution, to be improved
[Magisk] chiteroman:
Unhackable 🤣
[Magisk] badabing2003:
Add it while passing the test on the phone, and then even it starts failing on the phone, watch still works.
[Magisk] manjaroid:
Tried it but WalletFlasher logs tell me

Nothing to do... Wallet is empty.
[Magisk] HippoMan:
After adding the bank cards in that manner, will there ever be a need to re-add them to the watch? I think I recall reading somewhere recently that the cards on the watch need to be periodically refreshed from the device. Is that correct?
[Magisk] V0latyle:
We're sorry, this transaction cannot be processed at this time. It appears your balance is too low. For more information, please ask your wife for an allowance.
[Magisk] badabing2003:
bootloader unlock wipes it, that's the problem.

So first backup your money before unlocking the bootloader, otherwise you can kiss goodbye to your money.
[Magisk] Claus….:
Sounds good. When Google at some point ban these old phones without the chip. Would that mean game over?
[Magisk] EuK_V:
Sorry for the OT, but how to use bootloader spoofer apk by @chiteroman?

I install it, but there's no shortcut, how to select apps from which I want hide unlocked bootloader?
[Magisk] zgfg:
Open its Settings from LSPosed and configure - see the screenshot

Save and reboot
[Magisk] EuK_V:
Oh, I need LSPosed.. I see. I don't have one installed.

Thanks for the info.
[Magisk] zgfg:
But don't expect Strong Integrity or any improvement in PI

Moreover, you will have to hide the Bootloader Spoofer - bank apps, etc, look for LSPosed and its modules
[Magisk] EuK_V:
I definitely do not :)

I'll try it. Thanks!
[Magisk] billycar11:
I know it's a joke but the reason I want gwallet is so company's can't store my real card number
[Magisk] hassanhassan:
I can't find addon.d directory in the system folder
[Magisk] V0latyle:
Why would they?

At some point in the future I suppose it is possible, but all the mechanisms SafetyNet (and now Play Integrity) uses have been in place for nearly a decade, with hardware attestation required of new devices since Android 8. But, since there are literally millions of devices that are now EOL running old versions of Android, fragmentation is working in our favor because Google doesn't want to push forced obsolescence. As a moderator I still see posts daily in the old Galaxy S II/ S3 forums so it's clear there's still quite a few people out there using ancient phones. Google knows this too, and instead of pulling an Apple by forcing everyone to buy newer phones when they're obsolete, they've continued to support older devices running older builds. You can still use Android 5 phones with GMS today, and the fact that Google has afforded basic attestation fallback in the first place tells me they don't plan on leaving older devices out in the cold.

I only think this would change when they start seeing market saturation with older devices/builds drop off, but considering they're still going strong nearly 10 years later, I doubt that will be soon.
[Magisk] HippoMan:
I can tap-and-pay with all my plastic debit and credit cards, so no one gets any more info from them than they would get from my Android device.
[Magisk] billycar11:
I think the one in the credit card stays the same the one in gwallet changes every few transactions but not sure
[Magisk] wfred:
You have to have a Samsung phone if you want to use Samsung Pay on the watch. Doesn't matter if you use Google Pay/Wallet on the watch
[Magisk] osm0sis:
Those who know, know. 😏
[Magisk] stanley321:
Thank you for updating your fork! Your README.md is a proper real read me! Thank you!
[Magisk] sawdoctor:
I thought java was just a type of coffee ☕😂. You've more patience than me learning a new language
[Magisk] osm0sis:
I mean... StackOverflow exists. 🤘😆
[Magisk] Nekromantik:
how long does it take people to find working fingerprint?
[Magisk] EasyDeath:
30 min - 1h first time, i found 5 working

Next time maybe it will take less time.

You just need to find a way to download ROM's or dumps from correct devices, then extract build.prop and test it with pixel flasher
[Magisk] d4m4s74:
When I still did it completely manually by downloading roms, extracting the build.prop files and copying them I spent 8 hours to find the first one. When I started using scripts like the osm0sis one and online repositories I found 3 in 2 hours, and with better scripts like the one by juleast 5 within one hour.

With a slightly edited version of the script in combination with pixelflasher I was able to check 100 builds in 10 minutes for valid fingerprints.

I'm at 23 now.
[Magisk] Claus….:
Thanks for a very good explaination. I thought we had maximum 1-2 years left, but I guess I am wrong.
[Magisk] Nergal di Cuthah:
Kinda a wide question. i had many (5+) hours (which is a lot in my world and "freetime") looking and learning. And leaning on others in this thread, i got sorted, but will have to research for more precious hours if my current solution is banana-d
[Magisk] Nekromantik:
i am using juleast along with random dumps from the website he recommended and found none that work in 2 days lol :(

tried phones from 2019 to 2017.
[Magisk] rom-g:
Same here.
[Magisk] ScottIsMyName:
I think this file is only present when magisk is installed and does the mount? How do you get to this file otherwise?
[Magisk] BROKEN1981:
Axon 7 is banned now? WTF??? I had that on a back burner.
[Magisk] BROKEN1981:
Windows doesn't like it either. Just ignore it. False positive
[Magisk] BROKEN1981:
With the OG Pixel Watch, I can't pay if my phone fails PI. I can't add cards either if I don't hide the Watch app in Magisk.
[Magisk] BROKEN1981:
Just find a link where it list build prop so you don't have to download a ROM.
[Magisk] BROKEN1981:
So you have a working fingerprint? Congratulations bud!!
[Magisk] Nergal di Cuthah:
1 and maybe i didnt actually find it, it found me with love to this community

But i know better how to find one and hold hopes it will be a shorter trial
[Magisk] Nekromantik:
im using the build github repo easy to find 1 for basic integrity but not device
[Magisk] ScottIsMyName:
Try lowering the API level down and it might start getting approved
[Magisk] Nekromantik:
@osm0sis on your github page for your module fork you say for kernelsu if you dont pass device integrity then disable zygisknext reboot and re-enable. do you need to do this every time you try fingerprint if you on kernelsu?
[Magisk] osm0sis:
No idea, I don't use KernelSU. Those were just the instructions chiteroman had up there, (and still does on his wiki). I think they just mean if you're having random fail problems and know it should otherwise pass from testing on a different device.
[Magisk] Nekromantik:
ah ok

anyone here using KSU had to do anything different to get fingerprint?
[Magisk] ziddey:
@Nekromantik any chance you're on a14 qpr2? Pixel 7 here, and I lost device integrity sometime last week. Plowed through a ton of fingerprints before I realized the one used by 14.2/14.3 hasn't been banned. Tested on another device, and sure enough, both 14.2 and using a random fp I previously tried worked for basic+device integrity. Tried disabling all modules except play integrity fix, but still no dice.

ref: https://xdaforums.com/t/module-play-integrity-fix-safetynet-fix.4607985/post-89207597
[Magisk] Nekromantik:
im on pixel 7 pro but not on the beta firmware but on official december build
[Magisk] majorfigjam:
I believe QPR2 is not compatible with Zygisk up to 26402, so PIF is also broken on latest beta Pixels.

Stock QPR1 December is fine
[Magisk] ziddey:
Started happening last week before qpr2 beta2 was released. Like @acwcanada reported, 14.1 worked until the fp was banned, but 14.2+ and custom fps no longer work (tried with dev-1 and osm0sis' fork)

As far as magisk, latest canary 26403 dropped 4h ago with KieronQuinn's fix. Or kitsune mask works as well.
[Magisk] sawdoctor:
Hmm I'm on QPR 2 beta 1 pixel fold and the only PIF working for me ATM is PIF 14 with a custom fingerprint. Hopefully that helps narrow down the issue
[Magisk] sawdoctor:
QPR2 is/was fine it's QPR2 beta 2 that dropped 2 days ago that was the issue QPR2 beta 1 was fine.
[Magisk] acwcanada:
Magisk canary-26403 is out, people who have problems (such as lost root and/or not able to turn on Zygisk) before on their pixel phones which are on A14 QPR2 beta 2, should update to this, it would solve most of your problems.
[Magisk] Klappp:
With the module enabled and a custom .json file in the correct directory, why does kernelsu still show me my custom rom's fingerprint instead of my custom one?

I still haven't tested wallet

Edit: CTS profile match fails
[Magisk] anas sami:
My banking apps are not working after updating to Android 14, Dec update, Pixel 7. I have masked magisk. Hide root-related apps with hidemyapps and blacklisted all the banking apps in magisk denylist. I'm using Play Integrity fix 14.3. no shamiko. Please help. (Solved)
[Magisk] Klappp:
Nevermind. I switched to v14.3 and put the pif.json in the right place and everything is fine now. cheers!
[Magisk] simonpunk2013:
I just wrote a script and donwload all dumped device repo and generated all device props for testing, I soon found one working fingerprint already, very nice.
[Magisk] arda99:
@osm0sis

Tested your v4 fork got an error on my A11 phone as "DEVICE_INITIAL_SDK_INT" is not found, turns out it's "FIRST_SDK_INT" before A12. May be unnecessarily to support "FIRST_SDK_INT" in json but let's get it set in older devices.

static void spoofDevice() {
for (String key : map.keySet()) {
// Backwards compatibility for chiteroman's alternate API naming
if (key.equals("BUILD_ID") || key.equals("ID")) {
setField("ID", map.get(key));
} else if (key.equals("FIRST_API_LEVEL") || key.equals("DEVICE_INITIAL_SDK_INT") || key.equals("FIRST_SDK_INT")) {
//https://android.googlesource.com/platform/cts/+/refs/tags/android-12.0.0_r1%5E1..refs/tags/android-12.0.0_r1/
if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.R)
setField("DEVICE_INITIAL_SDK_INT", map.get(key));
else
setField("FIRST_SDK_INT", map.get(key));
} else {
setField(key, map.get(key));
}
}
}
[Magisk] osm0sis:
Send me a PR? Happy to have your help officially. 🙂

Edit: Oh wait, the workaround is unnecessary because I designed it to now use any valid field! Simply put FIRST_API_INT and DEVICE_INITIAL_SDK_INT/FIRST_API_LEVEL (for the prop spoofing) in your json and it'll already work.

A bit more onus on the end user to discover what an older Android version might need, but hot damn I like having it be immediately extensible without a rebuild. 😁
[Magisk] arda99:
Still need it, or c++ code needs to be updated to set FIRST_API_INT => FIRST_API_LEVEL, unless user put both fields.

I think it's better to keep current "DEVICE_INITIAL_SDK_INT" in json(and document), just handle the "FIRST_API_INT" inside java, as "FIRST_API_INT" is depreciated so no need to add more confusion.

This doesn't affect the module anyway, the original PIF module has this ignored in java and only in c++ part.
[Magisk] ziddey:
huh thanks! rolled back to 14.0 with custom pif and indeed have device integrity back. Then tested using the pif from 14.3 (which failed) and it still passes.
[Magisk] osm0sis:
Yeah, the Build field for DEVICE_INITIAL_SDK_INT actually behaves quite oddly, it only allows access to it the first time directly after boot, then it basically can't be found after that. I think I recall @Displax talking about its odd behavior before in USNF, so that's why it basically has to be set using the system props.

Mind if I PM you? I was hoping to discuss some C++ changes for the module.
[Magisk] osm0sis:
The logs from @sawdoctor show it fails to hook GMS as intended:

12-13 23:28:09.847 12034 12034 D PIF/Native: Couldn't find '__system_property_read_callback' handle

So something changed with QPR2 there. Basically it's just failing because the system properties (like first_api_level and security_patch) aren't being changed anymore.

The fact that PIF 14.0 still works suggests that this might be some actual evidence of Dobby working better than ShadowHook for once.. 😛

Not sure if ShadowHook itself needs an update, or perhaps the new Zygisk API v5 from latest Canary to address QPR2 issues could be of some help. Will need to be looked into!
[Magisk] UberNorse:
Same thing here, reverted to 14.0 with custom prop and passing as well.
[Magisk] EuK_V:
Before installing lsposed i had Magisk 26.4 PI and Shamiko modules. Magisk hidden. Banking apps worked well not detecting root. Momo didn't detect root either.

Installed lsposed and bootloader spoofer apk. Momo doesn't detect unlocked bootloader, but detects zigysk now. Did i miss something?
[Magisk] osm0sis:
Oh wow, chiteroman deleted his custom/dev branch again. 😯

Now, technically, the DEV v1 and v2 zips he left up in Releases are in violation of his own license... 😉
[Magisk] zgfg:
Yeah, that's it
[Magisk] khusika:
DEV branch has been deleted, but the tags are still there (DEV-v1; DEV-v2) .

Maybe it's related to his statement
[Magisk] xSnowLeopardx:
12 days later, still a working FP (first one)
[Magisk] purgy:
I haven't even bothered searching beyond the first working one I found lol.

It seems pretty clear by now that unless you luck out by using an fp that ends up being used by PIF or a custom rom that you should be right.
[Magisk] beeshyams:
Me.. Feeling like a fool for mining 24+
[Magisk] bombadier:
Fingerprint fever, got to control the urge, I stopped after about 6 but can see how the grinding could get out of control, a few on here are in danger of needing to check into rehab :)
[Magisk] bombadier:
There 14.3 stopped working
[Magisk] Fishawy:
Another one gone, multiple reports on Telegram that 14.3 got banned.

I just don't know what to say anymore.
[Magisk] awarexda:
14.3 fp dead
[Magisk] intel_core_i7:
xiaomi.eu has come with a new one again, so expect 14.4 coming in a bit.

fp burning rate seems to be twice a week, one on Monday and one on around Thursday or Friday. Seems like some actual human's job, so if mr.playintegrity is reading this, can you slow the rate down to once per month, perhaps? :)
[Magisk] EpicSauce:
After diving into the excellent help and tools from osm0sis and badabing2003 I got lucky yesterday on my first foray and don't feel inclined to search for more now I've learnt how.
[Magisk] Imnoa:
The Fingerprint is dead, long live the Fingerprint!
[Magisk] chiteroman:
v14.4 released to fix Google update!

Changelog:

- Update default fields values!

- Merge DEV branch, this module can read /data/adb/pif.json file

- Fixed issues.

You must move the template from module folder to adb dir if you want to use your custom props.

Thanks to Xiaomi.eu devs for the fingerprint 🥰

Also, this version uses Dobby and not Shadowhook, seems like Shadowhook isn't working in newer Android builds 😭

To use default fingerprint inbuild in the module just remove pif.json file.

Release v14.4 · chiteroman/PlayIntegrityFix

Update default fields values! Merge DEV branch, this module can read /data/adb/pif.json file Fixed issues. You must move the template from module folder to adb dir if you want to use your custom p...

github.com

View attachment 6043854
[Magisk] sawdoctor:
Chiteroman has published a new update so should work on all devices as he's switched back to Dobby. Thanks for switching back @chiteroman , at least i now know why only some of the PIF releases were working for m

Edit

Was beaten to the punch by the OP lol
[Magisk] Imnoa:
So just to be sure:

If there (already) is a pif.json in /data/adb/ the module will use that regardless? Or do I need to remove the (empty) pif.json file from /data/adb/modules/playintegrityfix/ too to enable the custom pif in /data/adb/ ?

I'm not sure if I'm passing integrity check now because of the builtin print or because of the custom prop I provided (and I can't check logcat right now)

Edit:

Just checked logcat, the fingerprint is spoofed to my custom print with the "empty" pif.json still present in /data/adb/modules/playintegrityfix/

So no need to remove or rename files
[Magisk] chiteroman:
If the file doesn't exist it will use default values hardcoded in the module.

If the file exists but one of the keys or values is empty, it will use default values hardcoded in the module. (Except the FIRST_API_LEVEL, BUILD_ID and VNDK_VERSION values).
[Magisk] Nekromantik:
Default fp in 14.4 doesn't pass device integrity for me. So I think something else on my phone is causing it to fail
[Magisk] Imnoa:
Thanks!

I was just able to check, and it still used my custom json in /data/adb/ with the template pif.json in /data/adb/modules/playintegrityfi/ still present. That's what I needed to know.
[Magisk] Imnoa:
But it did pass in 14.3 or DEV-2?
[Magisk] Vision:
@chiteroman still in development mode, when will you release it?
[Magisk] Nekromantik:
Nope not since 14.

Only difference I have is I using resetprops binary as otherwise my bank app doesn't work.

So not sure if that's causing it to fail
[Magisk] Vision:
First you say have this existing Zygisk module and now keep it private, not fair 🤣 how we will learn more knowledge now
[Magisk] DivintyQQ:
So, who lost the fingerprint roulette this time?
[Magisk] Imnoa:
NVIDIA, Asus is up next
[Magisk] Imnoa:
Let's build our own Bootloader spoofer, with blackjack...and snookers!
[Magisk] zgfg:
So, if FIRST_API_LEVEL is missing, would your v14.4 force 23 (like your old versions) or would it leave the current API level as on the phone?

In the second case, if API level on the phone is higher, eg 31, JSON (without FIRST_API_LEVEL) that was previously mined and worked, must be manually extended now with FIRST_API_LEVEL = 23
[Magisk] hassanhassan:
nice
[Magisk] Timmmmaaahh!:
I tweaked the original word to keep it a bit more family friendly... it rhymes! ☝️