microg/GmsCore · error · IllegalArgumentException

Missing package name

Error message

Missing package name

What it means

SignInService.handleServiceRequest validates the caller: when the calling package name cannot be resolved, it throws with this message and refuses the service request. Generic package-name guard on the service entry point.

Source

Thrown at play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt:36

import com.google.android.gms.common.Scopes
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.common.api.Scope
import com.google.android.gms.common.internal.*
import com.google.android.gms.signin.internal.*
import org.microg.gms.BaseService
import org.microg.gms.auth.AuthConstants
import org.microg.gms.auth.signin.SignInConfigurationService
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import org.microg.gms.games.GamesConfigurationService
import org.microg.gms.utils.warnOnTransactionIssues

private const val TAG = "SignInService"

class SignInService : BaseService(TAG, GmsService.SIGN_IN) {
    override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
        val packageName = PackageUtils.getAndCheckCallingPackage(this, request.packageName)
            ?: throw IllegalArgumentException("Missing package name")
        val binder = SignInServiceImpl(this, lifecycle, packageName, request.scopes).asBinder()
        callback.onPostInitComplete(CommonStatusCodes.SUCCESS, binder, Bundle())
    }
}

class SignInServiceImpl(val context: Context, override val lifecycle: Lifecycle, val packageName: String, val scopes: Array<Scope>) : ISignInService.Stub(),
    LifecycleOwner {

    override fun clearAccountFromSessionStore(sessionId: Int) {
        Log.d(TAG, "Not yet implemented: clearAccountFromSessionStore $sessionId")
    }

    override fun putAccount(sessionId: Int, account: Account?, callbacks: ISignInCallbacks?) {
        Log.d(TAG, "Not yet implemented: putAccount")
    }

    override fun saveDefaultAccount(accountAccessor: IAccountAccessor?, sessionId: Int, crossClient: Boolean) {
        Log.d(TAG, "Not yet implemented: saveDefaultAccount $sessionId $crossClient")

View on GitHub (pinned to 157c9d86ac)

Solutions

  1. Ensure the client binds with a valid package UID so PackageUtils can resolve it
  2. Reject requests lacking an attributable caller
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at play-services-core/src/main/kotlin/org/microg/gms/signin/SignInService.kt:36 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of microg/GmsCore@157c9d86ac (2026-09-06). Data as JSON: /api/errors/f9a73c9f65858f98. Report an issue: GitHub.