Unimplemented operation causes API spam to /androidantiabuse.
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 14.6k
- Forks
- 3.2k
- Avg merge
- 12d 11h
- Merged PRs (30d)
- 4
Description
Describe the bug
10-16 03:43:28.315 23563 23672 W DGFallback: create(yt_player_ias)
10-16 03:43:28.315 23563 23672 W DGFallback: kotlin.NotImplementedError: An operation is not implemented: Not yet implemented
10-16 03:43:28.315 23563 23672 W DGFallback: at org.microg.gms.droidguard.core.FallbackCreator.create(FallbackCreator.kt:31)
10-16 03:43:28.315 23563 23672 W DGFallback: at org.microg.gms.droidguard.core.FallbackCreator.create(FallbackCreator.kt:21)
10-16 03:43:28.315 23563 23672 W DGFallback: at org.microg.gms.droidguard.core.DroidGuardHandleImpl.snapshot(DroidGuardHandleImpl.kt:86)
10-16 03:43:28.315 23563 23672 W DGFallback: at com.google.android.gms.droidguard.internal.IDroidGuardHandle$Stub.onTransact(IDroidGuardHandle.java:84)
10-16 03:43:28.315 23563 23672 W DGFallback: at android.os.Binder.execTransactInternal(Binder.java:1280)
10-16 03:43:28.315 23563 23672 W DGFallback: at android.os.Binder.execTransact(Binder.java:1244)
I am also seeing these logs:
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: Error during handle init
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: org.microg.gms.droidguard.core.BytesException: java.lang.reflect.InvocationTargetException
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at org.microg.gms.droidguard.core.HandleProxy.<init>(HandleProxy.kt:26)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at org.microg.gms.droidguard.core.HandleProxyFactory.createHandleProxy(HandleProxyFactory.kt:178)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at org.microg.gms.droidguard.core.HandleProxyFactory.createHandle(HandleProxyFactory.kt:40)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at org.microg.gms.droidguard.core.DroidGuardHandleImpl.initWithRequest(DroidGuardHandleImpl.kt:50)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.android.gms.droidguard.internal.IDroidGuardHandle$Stub.onTransact(IDroidGuardHandle.java:100)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at android.os.Binder.execTransactInternal(Binder.java:1280)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at android.os.Binder.execTransact(Binder.java:1244)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: Caused by: java.lang.reflect.InvocationTargetException
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at java.lang.reflect.Constructor.newInstance0(Native Method)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at org.microg.gms.droidguard.core.HandleProxy.<init>(HandleProxy.kt:24)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: ... 6 more
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: Caused by: java.lang.RuntimeException: Stored in static init
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.ccc.abuse.droidguard.DroidGuard.<init>(PG:21)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.ccc.abuse.droidguard.DroidGuard.<init>(PG:14)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: ... 9 more
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: Caused by: java.lang.RuntimeException: During static init
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.ccc.abuse.droidguard.DroidGuard.<clinit>(PG:10)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: ... 9 more
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: Caused by: java.lang.UnsatisfiedLinkError: Shared library "/data/user/0/com.google.android.gms/app_cache_dg/df99409f14f4904f83f90980b54acda69ae1261e/libd2AB9C144820C.so" already opened by ClassLoader 0x6a7(dalvik.system.DexClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_cache_dg/df99409f14f4904f83f90980b54acda69ae1261e/the.apk"],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64]]]); can't open in ClassLoader 0x7ff853b7386c(dalvik.system.DexClassLoader[DexPathList[[zip file "/data/user/0/com.google.android.gms/app_cache_dg/df99409f14f4904f83f90980b54acda69ae1261e/the.apk"],nativeLibraryDirectories=[/system/lib64, /system_ext/lib64]]])
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at java.lang.Runtime.load0(Runtime.java:929)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at java.lang.System.load(System.java:1625)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.ccc.abuse.droidguard.DroidGuard.d(PG:193)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: at com.google.ccc.abuse.droidguard.DroidGuard.<clinit>(PG:1)
10-16 03:43:28.314 23563 23672 W GmsGuardHandleImpl: ... 9 more
10-16 03:43:28.315 23563 23672 D GmsGuardHandleImpl: snapshot({challenge=a=6&a2=1&b=<string>&c=<number>&d=3&e=<string>&c5a=1&c5b=yt_player_ias&hh=<string>})
To Reproduce
Steps to reproduce the behavior:
- Play a video on YouTube
- YouTube expects a PoToken
- GmsCore replies performs a request to get the DroidGuard program when it should cache it instead
Expected behavior
GmsCore should cache the program.
Screenshots
Note that I am running a specific environment where I have modified YouTube for debugging purposes. The issue may originate from that, but it is highly likely not the cause of the problem:
https://github.com/user-attachments/assets/92254840-e836-4084-b6f9-5decbbb9c948
System
Android Version: 13
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with FallbackCreator.kt, HandleProxy.kt, HandleProxyFactory.kt, and DroidGuardHandleImpl.kt from the reported stack traces, then reproduce the YouTube playback flow. Trace why the DroidGuard program is fetched again and why the native library is opened through another class loader. Done means the program is cached without repeated /androidantiabuse requests or the unimplemented-operation error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java, kotlin
- Domain
- api, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100