GmsCore icon indicating copy to clipboard operation
GmsCore copied to clipboard

Play Integrity API error -100

Open steveglowplunk opened this issue 11 months ago • 29 comments

Describe the bug Play Integrity check fails to start with error code -100. Using microg v0.3.6.

To Reproduce

  1. Use SPIC - Play Integrity Checker
  2. Make Play Integrity Request

Expected behavior Show at least a failed integrity check result instead of throwing me an error code.

Screenshots Image

System Android Version: 13 Custom ROM: LineageOS 20

Additional context The old safetynet check passes with play integrity fix magisk module. Image

steveglowplunk avatar Jan 04 '25 17:01 steveglowplunk

@steveglowplunk: I can longer sign in to Microsoft Teams on my Fairphone 4 using /e/OS 2.6.3 as the SafetyNet attestation fails. Could it be related to this issue?

mu88 avatar Jan 05 '25 16:01 mu88

@steveglowplunk: I can longer sign in to Microsoft Teams on my Fairphone 4 using /e/OS 2.6.3 as the SafetyNet attestation fails. Could it be related to this issue?

Try the play integrity checker app and see what you get. There are others who can get a proper play integrity report with the latest microg if you look around the github issues, which bums me out because I can’t :/ Also to my knowledge, microsoft teams never needed safetynet / play integrity. What does the ms teams app tell you?

steveglowplunk avatar Jan 05 '25 17:01 steveglowplunk

It's not MS Teams itself, but my company has added MS Company Portal as another layer of security when signing in to MS Teams. And the Company Portal app reports my FP4 as unregistered regarding SafetyNet / Play Integrity.

mu88 avatar Jan 06 '25 06:01 mu88

It's not MS Teams itself, but my company has added MS Company Portal as another layer of security when signing in to MS Teams. And the Company Portal app reports my FP4 as unregistered regarding SafetyNet / Play Integrity.

Are you able to check the play integrity report with the checker app?

steveglowplunk avatar Jan 06 '25 10:01 steveglowplunk

Unfortunately, I cannot download the app due to another problem on my OS (I'm using /e/OS)

mu88 avatar Jan 06 '25 10:01 mu88

Unfortunately, I cannot download the app due to another problem on my OS (I'm using /e/OS)

I think it's hard to judge whether it's a play integrity problem if you can't check it. If the trouble is from downloading apps from Google Play, try Aurora Store.

steveglowplunk avatar Jan 06 '25 11:01 steveglowplunk

You can also download the app directly from here: https://github.com/herzhenr/spic-android/releases

ale5000-git avatar Jan 06 '25 11:01 ale5000-git

Thx for the other download source, here are my results: Image Image Image

mu88 avatar Jan 06 '25 16:01 mu88

Thx for the other download source, here are my results: Image Image Image

Are you sure you're using the latest microg v0.3.6 with companion installed? (your "play services version" says otherwise)

steveglowplunk avatar Jan 08 '25 00:01 steveglowplunk

microG comes bundled as part of custom ROM (/e/OS) - so I have to wait for an update there 🫤

mu88 avatar Jan 08 '25 06:01 mu88

microG comes bundled as part of custom ROM (/e/OS) - so I have to wait for an update there 🫤

I believe you can update it as simple as installing the apk from github releases (both microg and companion).

steveglowplunk avatar Jan 09 '25 00:01 steveglowplunk

This has already been asked in the /e/OS community forum and the dev team explicitly discouraged us from doing so 🤷🏻‍♂️

mu88 avatar Jan 09 '25 08:01 mu88

I also have -100 error. I did some investigations and added some logging. Here is a stacktrace of an error:

org.microg.gms.droidguard.BytesException: java.lang.reflect.InvocationTargetException
01-09 16:05:31.007  8758  8758 W System.err: 	at coil.request.RequestService.<init>(SourceFile:36)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.droidguard.DroidGuardApiClient.handleDroidGuardData(SourceFile:291)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.droidguard.DroidGuardClientImpl$$ExternalSyntheticLambda1.execute(SourceFile:5)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.droidguard.DroidGuardClientImpl$$ExternalSyntheticLambda1.execute(SourceFile:17)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.common.api.GoogleApiManager$ConnectionCallback.onConnected(SourceFile:48)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.common.GmsClient$GmsCallbacks.onPostInitComplete(SourceFile:84)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.android.gms.common.internal.IGmsCallbacks$Stub.onTransact(SourceFile:122)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Binder.execTransactInternal(Binder.java:1500)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Binder.execTransact(Binder.java:1444)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.BinderProxy.transactNative(Native Method)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.BinderProxy.transact(BinderProxy.java:586)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.android.gms.common.internal.IGmsServiceBroker$Stub$Proxy.getService(SourceFile:35)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.common.GmsClient$GmsServiceConnection.onServiceConnected(SourceFile:59)
01-09 16:05:31.007  8758  8758 W System.err: 	at org.microg.gms.common.MultiConnectionKeeper$Connection$1.onServiceConnected(SourceFile:59)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:2210)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:2243)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Handler.handleCallback(Handler.java:959)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:100)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Looper.loopOnce(Looper.java:232)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.os.Looper.loop(Looper.java:317)
01-09 16:05:31.007  8758  8758 W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:8705)
01-09 16:05:31.007  8758  8758 W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
01-09 16:05:31.007  8758  8758 W System.err: Caused by: java.lang.reflect.InvocationTargetException
01-09 16:05:31.007  8758  8758 W System.err: 	at java.lang.reflect.Constructor.newInstance0(Native Method)
01-09 16:05:31.007  8758  8758 W System.err: 	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
01-09 16:05:31.007  8758  8758 W System.err: 	... 24 more
01-09 16:05:31.007  8758  8758 W System.err: Caused by: java.lang.RuntimeException: Stored in static init
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.ccc.abuse.droidguard.DroidGuard.<init>(PG:11)
01-09 16:05:31.007  8758  8758 W System.err: 	... 26 more
01-09 16:05:31.007  8758  8758 W System.err: Caused by: java.lang.RuntimeException: During static init
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.ccc.abuse.droidguard.DroidGuard.<clinit>(PG:10)
01-09 16:05:31.007  8758  8758 W System.err: 	... 26 more
01-09 16:05:31.007  8758  8758 W System.err: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "/data/user/0/com.android.vending/app_cache_dg/EA77286092255610BD653E1A63B845FDE2310FA1/libd88ED819AB82F.so" segment 1: Permission denied
01-09 16:05:31.007  8758  8758 W System.err: 	at java.lang.Runtime.load0(Runtime.java:933)
01-09 16:05:31.007  8758  8758 W System.err: 	at java.lang.System.load(System.java:1729)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.ccc.abuse.droidguard.DroidGuard.d(PG:193)
01-09 16:05:31.007  8758  8758 W System.err: 	at com.google.ccc.abuse.droidguard.DroidGuard.<clinit>(PG:1)
01-09 16:05:31.007  8758  8758 W System.err: 	... 26 more

Gerrerer avatar Jan 09 '25 13:01 Gerrerer

My Fairphone 4 got a system update and should now run on the latest version of microG:

Image

MS Teams still does not work, here are my SPIC results:

Image Image

mu88 avatar Jan 17 '25 16:01 mu88

@mu88 Download the apk of the SPIC app on the PC and then install it with: adb install -r -g -i "com.android.vending" "/apk-path/apk-file" It will make it think it is installed from the Play Store.

Also try enabling the licensing options in microG settings.

These changes will probably improve your Play Integrity result.

ale5000-git avatar Jan 17 '25 21:01 ale5000-git

Also try enabling the licensing options in microG settings.

@ale5000-git: what do you mean by this?

mu88 avatar Jan 18 '25 17:01 mu88

@ale5000-git: what do you mean by this?

Since in your screenshot I see "App licensing verdict: Unevaluated" I guessed that it may be related to the licensing code (that is disabled by default in microG) but I'm not sure.

ale5000-git avatar Jan 18 '25 18:01 ale5000-git

Hello,

I have the same issue on LineageOS 22.1 and microG 0.3.6.244735 from F-droid repo

I enabled all microG options.

Please let me know how I can help debugging this :)

elacheche avatar Feb 06 '25 19:02 elacheche

@mu88 Download the apk of the SPIC app on the PC and then install it with: adb install -r -g -i "com.android.vending" "/apk-path/apk-file" It will make it think it is installed from the Play Store.

Also try enabling the licensing options in microG settings.

These changes will probably improve your Play Integrity result.

I did this using Obtainium's setting to spoof Play Store as the installer.

But as I've found previously, when a device has microG Companion installed it will show that as the installer string (eg in the ROM's page for that app) when using com.android.vending as the installer agent.

In any case it did not change my PI result. (Pixel 7 Pro running CalyxOS A15) More or less the same as @mu88's latest PI result.

Luckily in my case the vast majority of my apps don't care, so far.

Sapiosenses avatar Feb 07 '25 10:02 Sapiosenses

I found the culprit. It was a mistake on my end. I used microG Installer Revived to install microg as a system app. What I did wrong is that I edited the script to forcefully bump the version check, which apparently causes some weird problems. So what I did now is simply install microg v0.3.4, then the installer module unedited, and then update microg to v0.3.6. Play integrity check actually works now.

steveglowplunk avatar Feb 24 '25 19:02 steveglowplunk

Conpanion needs to be enabled for PI to be checked, but I now get full legacy Integrity.

When the PI stub was added, I got the new A13+ 2/3 PI, later 2/3 legacy, now I get 3/3 legacy.

I started to use Play Integrity Fix, Trickystore, NeoZygisk, ZygiskNext, Shaminko, Zygisk Assistance. I have no Google Play store installed, only Aurora.

RCS does not work.

BurhanBudak avatar Mar 12 '25 19:03 BurhanBudak

Conpanion needs to be enabled for PI to be checked, but I now get full legacy Integrity.

When the PI stub was added, I got the new A13+ 2/3 PI, later 2/3 legacy, now I get 3/3 legacy.

I started to use Play Integrity Fix, Trickystore, NeoZygisk, ZygiskNext, Shaminko, Zygisk Assistance. I have no Google Play store installed, only Aurora.

RCS does not work.

You mean play integrity is not passing? Afaik you need something called a keybox for tricky store.

steveglowplunk avatar Mar 12 '25 21:03 steveglowplunk

Conpanion needs to be enabled for PI to be checked, but I now get full legacy Integrity.

When the PI stub was added, I got the new A13+ 2/3 PI, later 2/3 legacy, now I get 3/3 legacy.

I started to use Play Integrity Fix, Trickystore, NeoZygisk, ZygiskNext, Shaminko, Zygisk Assistance. I have no Google Play store installed, only Aurora.

RCS does not work.

You mean play integrity is not passing? Afaik you need something called a keybox for tricky store.

It is now passing 3/3 legacy after test a lot of module combinations but even if I passed 3/3 A13+ it would still not be that useful yet....they say in May there could be a new wave of apps with anti root policy, I hope my daily apps don't jump the sharp and keep the same policy. McD and Google can screw off, I won't give them the satisfaction of metadata.

BurhanBudak avatar Mar 13 '25 07:03 BurhanBudak

For someone who is following my path and can't figure out why the checks don't work. In the microg settings you need to:

  1. Sign in to your Google account
  2. Enable device registration
  3. Possibly enable cloud messaging
  4. Enable Google SafetyNet -> allow device status check

Install Magisk, then in Magisk itself install the Play Integrity Fix module from the archive. Reboot. On the Magisk modules tab, click Action. Maybe reboot again.

You can check the status either from microg or using SPIC or Play Integrity API Checker applications. The phone must pass the device and basic checks.

It worked in my case.

Xiaomi Mi 8, LineageOS 22.1 2025-03-06 with microG 0.3.6.244735. LOS builded by microg project. Aurora store from F-Droid in work profile (maked with Shelter). Magisk 28.1.

Myppomeu avatar Mar 27 '25 20:03 Myppomeu

No doubt it works for many, the point is subject of this "issue" - Play Integrity API error -100 Happened on a device took few hours to figure, in this case issue was directly related to usage of: Zygisk-detach Magisk Module - it was set to detach "MicroG Service" (com.google.android.gms) as such, the check fails right away with -100. Simply unchecking, then error goes away and checks pass. Hopefully/Maybe PIF can "detect" this condition, and in Action, PRINT something to that effect (alert users).

stormy1777 avatar May 22 '25 16:05 stormy1777

Still have this error, Zygisk detach doesnt touch microg service, it has internet access, tried Myppomeu solution too, updated to latest microg, nothing works...

d1stru3t0r avatar Oct 19 '25 09:10 d1stru3t0r

Still have this error, Zygisk detach doesnt touch microg service, it has internet access, tried Myppomeu solution too, updated to latest microg, nothing works...

"Latest" is vague. Have you updated both microG Services and microG Companion to v0.3.10?

ale5000-git avatar Oct 19 '25 12:10 ale5000-git

Still have this error, Zygisk detach doesnt touch microg service, it has internet access, tried Myppomeu solution too, updated to latest microg, nothing works...

"Latest" is vague. Have you updated both microG Services and microG Companion to v0.3.10?

Im using Google Official services, and I dont have MicroG companion (i meant i updated microg from 5.10 to 5.13)

d1stru3t0r avatar Oct 19 '25 14:10 d1stru3t0r

Still have this error, Zygisk detach doesnt touch microg service, it has internet access, tried Myppomeu solution too, updated to latest microg, nothing works...

"Latest" is vague. Have you updated both microG Services and microG Companion to v0.3.10?

Im using Google Official services, and I dont have MicroG companion (i meant i updated microg from 5.10 to 5.13)

That's not microG from microG.org or github.com/microG, it's the "fake" "Microg RE" which is actually just someone's hack of the YouTube app that breaks 90% of official microG functions.

Go to their website if you need help with that thing.

Sapiosenses avatar Oct 19 '25 15:10 Sapiosenses