Late LSPosed generally hides itself from Play Integrity API... Try disabling all XPosed modules and keep LSPosed Magisk module enabled...I wonder if there is a similar module like Lsposed because there are some apps in my device that require the Lsposed on
ok I will try it nowLate LSPosed generally hides itself from Play Integrity API... Try disabling all XPosed modules and keep LSPosed Magisk module enabled...
And please say if succeed / which module causes issues...PW
Yup, that's often a culprit and also detected by banks easily due to folder it creates in /data/system...I found it. its Xprivacylua module from Lsposed I disable it and it fix everything
Expected.
Which Magisk are you using?Is there a guide somewhere on how to use the "additional" modules such as LSposed + Shamiko?
My main bank's app somehow still detects root and disables fingerprint login. My secondary bank's app won't work at all - after blocking in DenyList, it still complains about USB Debugging being enabled.
There is HMA thread about HMA. Shamiko doesn't require special settings (just Zygisk and DenyList). You can try also App Data Isolation (Magisk module) and DevOpts Hide (for LSPosed) to hide Dev. OptionsIs there a guide somewhere on how to use the "additional" modules such as LSposed + Shamiko?
My main bank's app somehow still detects root and disables fingerprint login. My secondary bank's app won't work at all - after blocking in DenyList, it still complains about USB Debugging being enabled.
I tried 25.2 with just Displax USNF module, then 26.1 with Lsposed+Shamiko and DenyList unenforced
HMA?There is HMA thread about HMA. Shamiko doesn't require special settings (just Zygisk and DenyList). You can try also App Data Isolation (Magisk module) and DevOpts Hide (for LSPosed) to hide Dev. Options
Didn't work for this particular app.
Try latest Magisk Alpha, maybe apps are detecting original Magisk zygisk.I tried 25.2 with just Displax USNF module, then 26.1 with Lsposed+Shamiko and DenyList unenforced
I'm not sure I want to switch to a different branch. Everything else works so I'm not exactly inclined to break everything just because one thing doesn't. Lol.Try latest Magisk Alpha, maybe apps are detecting original Magisk zygisk.
Download the apk from their Telegram, completely uninstall Magisk, and then boot to TWRP and flash the apk to install Alpha. Zero problems in my device.I'm not sure I want to switch to a different branch. Everything else works so I'm not exactly inclined to break everything just because one thing doesn't. Lol.
I'm on a Pixel, no recovery partition.Download the apk from their Telegram, completely uninstall Magisk, and then boot to TWRP and flash the apk to install Alpha. Zero problems in my device.
So you can download it, give root permissions to Alpha and direct install it.I'm on a Pixel, no recovery partition.
I also don't like joining random TG channels
Do I have to replace Magisk core with the Alpha core? Or just use the app?So you can download it, give root permissions to Alpha and direct install it.
Random Telegram channel? The dev is one of the contributors of official Magisk, LSPosed and Shamiko. I don't think it's a random telegram channel
Give it a try: https://t.me/s/magiskalpha
Glad you got to the bottom of that... Baffles me why they bother to do local validation and stop short of Googles model gift-horse... It must have a nice mouth...In case it's helpful, some banking apps rely on local bootloader attestations instead of Play Integrity, as it was in my case. The lsposed module "BootloaderSpoofer" fixed this problem. Took me half a year to figure this out.
Nah... Key Attestation (Verifying hardware-backed key pairs) is an independent approach... PWI believe the Play Integrity fix is supposed to do this as well.
Official Google API documentation:Hello all,
Nice topic. I was wondering how is the app attestation done. In particular, how is the playintegritytoken generated. It is within the code that is on the app or it "calls" googleplay to generate the token.
This is an example from the app talked on the first post :
Code:token=eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIn0.RkbBrsVSkWklHO1xM3L_xxBSSdl4zNspSTIIGewF4iGq21Ys7eOJrg.lCdBHKK0RRma6qA0.6DebtQsXvPnYvpTNrLmgheDiwR46aVAIcLuD_Djm1L9I9xLsC4TAuV0wWTRA3w6oZLFhT9wMD2n-NnqUwZBBj8Z3Ohk-wQRvspCT8GQKTsLaIK60VSsAd_YFijX2DDTkAG2RVPkS8uXKKIyOPgmQH1TCVBNm1-cGvLJZ11SsCaVaeBS_HGbyCNr18DSErv13UeNhWQ2CmUJBaxb5vokPmyl28VxfXGZM3IueSpEQTqAEV713-u-znPft7LHa1nVj6lsubGRcYit41kBYVDgh2obR3mJlbXDwwPmNhg1dR64G5gxR-ioeV1z4P8OD1_F9RNAe234xtUbkV5Qr-mDKgQFJuQ_WGmhqzMAdC6yrqUlg9QWCw1QMYbHx5PhMjfYdxhz5vGfUPpLN5A7tNaVaT7XNmM-fsa_GuuD8w9buULtOw6pembC8Eak1gj11uxTxkQsiKDLgh5tLREY8MyT297t13fBgAnEk1EuOrvkiW1nDxshGbdRF2OwHM28-B6jE8dvaoyf2IiazKK0vGN7O1t718Poq045t83wi86qosQ9DtcJLvZbz5mLeLtjgGtN5cWVlmOFhag6X1VYZPsuRMq3X5xqc0aj-EteuJrJozK1eXRmdjmEsEhkpOk3m0rL2uIuPi9PcR7qbLBy0LlJOeajT0tyVm4_z9dgM8vKFoZl9ZN_3n8jAMkSOGLe27DrjsT8Zgkju5n_qHmDU08iRNbe1JMsTBDfEXRdeGJoHxqwJGsAjkxn8SyvWKiH7wsSeD80IjF4CARPgaqh3ft6fQM78kr8TcTEFvqJf1HXMC6nuHzlMyQOmuUGhMPqcOmKQTXYTnaqDyEijSK7BVUbLux-0Riiy5jzyuskYq04SF9mAlf2msO4KqBqWizIvTBkjGxZ-ZYMtqwk_dWJnEP-ZqJxDJioCfH4MC1OGwE330WxP0VxKXJD8K-BD2208w3Wkh1hv7yqyPOirfFv-qH1XXn8YWSD7ZSPneRn5DCxtXJ4hHZNx2R_Pmhpj1z1bU-UMuslCk-z1blsF6cdgtPrAjNppNqMMJtAy5Emzu9xOnspO9oj-DTPpzkXkrLma7z7Ua_1xRZMVazttINYWSeecT8-pCFMVwt6yf9-S8q-shgmJ1LB2Pg7_n1ptGruAKBjsZyu7F26NDFUrsisdbiYPKrUNDfJQl6fXpKPs_RqIcuRATM_RzY3clrDB58bMkCsrdI8SW7MBf62WQ3yh.WlA2RemvVmVuRSCZfwPJNA
You get
Code:{"requestDetails":{"requestPackageName":"gr.nikolasspyr.integritycheck","timestampMillis":"1695496791294","nonce":"ageWOMCbXNyF1YpTsY5bxJezKrjBGlLDRHZxlrBMm0Q7ESmWHg=="},"appIntegrity":{"appRecognitionVerdict":"PLAY_RECOGNIZED","packageName":"gr.nikolasspyr.integritycheck","certificateSha256Digest":["F5UrXPhnBbreh3Q_WjMe_kyYK_tNoNL9XXC_wjXPeeM"],"versionCode":"10"},"deviceIntegrity":{"deviceRecognitionVerdict":["MEETS_BASIC_INTEGRITY","MEETS_DEVICE_INTEGRITY"]},"accountDetails":{"appLicensingVerdict":"LICENSED"}}
Please correct me if I'm wrong and thank you for any info.
Nope, was asking the rhetorical question of "why aren't they using PI" but as you pointed out, if they did, that would affect a significant portion of their user baseProbably a misunderstanding then. Reading your statement I felt like you are somewhat asking developers to implement strong, while being a rooted user, very weird?
Eh...dunno if it's so much a game as it is mousetraps and idiots. Someone always builds a better mousetrap, then eventually someone makes a better idiotAfter all, we have already known that the big banking bois and Google has won the modding game with PI strong.
MEETS_DEVICE_INTEGRITY
: Corresponds to SafetyNet ctsProfileMatch
. The app is running on an Android device powered by Google Play services. The device passes system integrity checks and meets Android compatibility requirements. (Device profile matches that of a device that has passed Compatibility Test Suite) A device that fails this will appear as Uncertified in Play Store.MEETS_BASIC_INTEGRITY
: Corresponds to SafetyNet basicIntegrity
. The app is running on a device that passes basic system integrity checks. The device may not meet Android compatibility requirements and may not be approved to run Google Play services. For example, the device may be running an unrecognized version of Android, may have an unlocked bootloader, or may not have been certified by the manufacturer. Most devices should pass this, even if they're rooted.MEETS_STRONG_INTEGRITY
: Corresponds to SafetyNet HARDWARE_BACKED
evaluationType. The app is running on an Android device powered by Google Play services and has a strong guarantee of system integrity such as a hardware-backed proof of boot integrity. The device passes system integrity checks and meets Android compatibility requirements. An unlocked bootloader will ALWAYS fail this label because boot integrity cannot be verified, meaning that hardware backed attestation methods cannot be used.BASIC
and DEVICE
. But if they really want to ensure that they're running on a trusted platform, they can require STRONG
attestation, which cannot be spoofed or bypassed. BASIC and DEVICE can, because they use the same mechanisms that SafetyNet did. The million dollar question is whether they ever will. I'm posting this WOT.Is there a fix for this? ... Can't pass MEETS_STRONG_INTEGRITY.
For STRONG integrity you just need: