Google Play API Integrity Check failed due to Integrity CANNOT_BIND_TO_SERVICE error (attempting to run Google Pay)

First of all, device info before I continue with my query:

Manufacturer: OnePlus
Model name: OnePlus Nord
codename: avicii
Android version: 12
/e/os version: 1.18-s-20231207360611-stable-avicii
build number: e_avicii-user 12 SQ3A.220705.004.eng.root.20231207.201937 dev-keys
device rooted? yes

Maybe it is a futile effort on my side but I wondered if I can successfully get Google Wallet / Google Pay working. The error which I got before attempting to troubleshoot and which I still get to this day:

Not yet supported:
com.google.android.gms.pay.homescreen.VIEW_HOME

First of all, like with anything custom ROM, I did some basic research. It turns out that since November this year, Google changed their API and thus no longer wants to support the “old way” of SafetyNet. Not only the device needs to pass SafetyNet test, it also needs to pass the Google Play Integrity API check successfully. So in order to have Google Pay working, my device needs to pass this check. For this, I need to hide the fact that my device has unlocked bootloader and a custom ROM installed. For this reason, I rooted my device via Magisk.

  1. Install Magisk and follow the official Magisk’s github page for further help / instructions.
  2. Install https://github.com/chiteroman/PlayIntegrityFix/releases Magisk module
  3. Denylist inside Magisk the Google Wallet, microG frameworks+droidguard+fakestore.
  4. Cleared cache of those apps.
  5. Rebooted the device.

Theoretically, this should do the job but I got the following error as per screenshot. So I digged further and deeper. It turns out that not only they changed the API, they’re also actively snooping fingerprints and blocking the ones which they think might be abused. So this in end-effect means the default fingerprint of the aforementioned magisk module will not pass the Google Play Integrity Check. You need to create (more precisely spoof) your own one, link to XDA here.

So I spoofed my own one (in fact, several others based on stock ROM dumps made by the Android community here https://dumps.tadiphone.dev/dumps/) but I still can’t pass the check. For reference, this is the app I used to check if my device passes. On other like-minded apps, the error is the same.

-9: Integrity API error (-9): Binding to the service in the Play Store has failed. This can be due to having an old Play Store version installed on this device. Ask the user to update Play Store.

(https://developer.android.com/reference/com/google/android/play/core/integrity/model/IntegrityErrorCode.html#CANNOT_BIND_TO_SERVICE)


What can I do from here? As far as I know, I can’t really update FakeStore (com.android.vending) nor any other microG component via F-Droid nor any other source since the .apk’s are incompatible (I think the reason is that /e/os developers use their own signing keys hence why the incompatibility). And any microG updates come first of all with OTA updates once a month (which means I could then retry at spoofing the fingerprint for the Google Pay but I’m afraid the PlayStore would get old as well).

Does anyone else have any ideas? I tried looking through Reddit, XDA and other forums but I can’t find anything useful.

There are different ways to pay online. Why do you want to depend on Google Pay/Wallet when you chose /e/OS? Instead of waiting for MicroG to implement the new functionality, you could consider choosing other payment options which work with /e/OS.

Well, searching on the web for ‘Paypal to Google Pay’ finds out that you can use Paypal for places where you normally use Google Pay. Since Paypal works fine on /e/OS, that is a workaround. Paypal will certainly provide payment info to Google for this service. Setting Paypal to deny trackers, hide location or hide IP will probably mean you can´t do payments, so Paypal’s privacy settings will presumably have to go. Let me know if that’s the case. I’m curious.

I know there are different ways to pay online. But this is a tricky situation because each seller supports different ways. Some merchants support only NFC-based payments, some also support paying with QR code. Besides, not all banking apps support NFC tap-to-pay service out of box, at least the banks I use don’t. However, there’s the option to add the cards into Google Pay. So my only option when I am on-site and do some shopping is to pay with physical cards because again, not every merchant supports QR code payments. Same with Wise. Wise has the option to add the cards to Google Wallet but that’s it.

Ultimately, with payment and banking, I can’t be private and I know that. My goal is not to just disappear off the grid and have no tracking. My goal is to minimize the amount of tracking and data different tech giants like Google sell and that’s why I use /e/os.

Of course, Paypal might be an alternative but right now, I’m affected by this “downloading language files” bug So I’m kind of in a blindspot.

This topic was automatically closed after 90 days. New replies are no longer allowed.