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
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.
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.
Read my post again, I'm afraid you're the one jumping to conclusions my friend. My point was, and your statement reinforces this, that an app not working on man unlocked/rooted device might not even be using Play Integrity.An app requiring android 5 and up implementing PI hardware? I think you should check the app's OS requirement before jumping to conlusions. PI software (basic/device) is just too easily to be bypassed, so custom methods must come to play.
Like you guys have discussed before, the risk of leaving a large proportion of customers behind with a such high android version requirement (5.0 -> 8.0) bump is significant, and then depending on the market (e.g Vietnam) where lots of devices are imported from other markets (mainly China with some Google-related software problems), users are likely to unlock the bootloader and flash a modified stock ROM, or a full fledged custom ROM. Banking is a business after all, and they need customers.
And also, some of the mousetraps (not the better ones) are made by some of the better idiots.Someone always builds a better mousetrap, then eventually someone makes a better idiot
mmm ... If we're discussing the comment following these: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 base
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...![]()
, ie:
, I assumed member was saying Starling seems to be using key attestation with server side validation and extraction of extension data to detect compromised device, not asking anything... Again (assuming the comment was a continuation of the conversation), this provision for polling AVB etc, is independent of Google's device integrity APIs, whether deviceIntegrity, strongIntegrity or other verdict labels...One of the first apps to use it seems to be starling huge bummer
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 idiot
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: