GmsCore
GmsCore copied to clipboard
Play Integrity API error -100
Describe the bug Play Integrity check fails to start with error code -100. Using microg v0.3.6.
To Reproduce
- Use SPIC - Play Integrity Checker
- Make Play Integrity Request
Expected behavior Show at least a failed integrity check result instead of throwing me an error code.
Screenshots
System Android Version: 13 Custom ROM: LineageOS 20
Additional context
The old safetynet check passes with play integrity fix magisk module.
@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?
@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?
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.
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?
Unfortunately, I cannot download the app due to another problem on my OS (I'm using /e/OS)
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.
You can also download the app directly from here: https://github.com/herzhenr/spic-android/releases
Thx for the other download source, here are my results:
Thx for the other download source, here are my results:
![]()
![]()
Are you sure you're using the latest microg v0.3.6 with companion installed? (your "play services version" says otherwise)
microG comes bundled as part of custom ROM (/e/OS) - so I have to wait for an update there 🫤
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).
This has already been asked in the /e/OS community forum and the dev team explicitly discouraged us from doing so 🤷🏻♂️
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
My Fairphone 4 got a system update and should now run on the latest version of microG:
MS Teams still does not work, here are my SPIC results:
@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.
Also try enabling the licensing options in microG settings.
@ale5000-git: what do you mean by this?
@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.
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 :)
@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.
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.
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.
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.
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.
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:
- Sign in to your Google account
- Enable device registration
- Possibly enable cloud messaging
- 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.
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).
Still have this error, Zygisk detach doesnt touch microg service, it has internet access, tried Myppomeu solution too, updated to latest microg, nothing works...
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?
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)
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.