microg/GmsCore · error · IllegalArgumentException

Missing package name

Error message

Missing package name

What it means

GoogleHelpService.handleServiceRequest validates the incoming binding: when the calling package name cannot be determined, it throws SecurityException/IllegalArgumentException with this message, refusing to serve a request from an unidentified package. This is a generic package-name guard on the service entry point.

Source

Thrown at play-services-core/src/main/kotlin/org/microg/gms/googlehelp/GoogleHelpService.kt:35

import com.google.android.gms.googlehelp.GoogleHelp
import com.google.android.gms.googlehelp.InProductHelp
import com.google.android.gms.googlehelp.SupportRequestHelp
import com.google.android.gms.googlehelp.internal.common.IGoogleHelpCallbacks
import com.google.android.gms.googlehelp.internal.common.IGoogleHelpService
import org.microg.gms.BaseService
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils

private const val TAG = "GoogleHelp"

val FEATURES = arrayOf(
    Feature("user_service_support", 1)
)

class GoogleHelpService : BaseService(TAG, GmsService.GOOGLE_HELP) {
    override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
        val packageName = PackageUtils.getAndCheckCallingPackage(this, request.packageName)
            ?: throw IllegalArgumentException("Missing package name")
        val binder = GoogleHelpServiceImpl(packageName).asBinder()
        callback.onPostInitCompleteWithConnectionInfo(CommonStatusCodes.SUCCESS, binder, ConnectionInfo().apply { features = FEATURES })
    }
}

class GoogleHelpServiceImpl(val packageName: String) : IGoogleHelpService.Stub() {
    override fun processGoogleHelpAndPip(googleHelp: GoogleHelp?, callbacks: IGoogleHelpCallbacks?) {
        Log.d(TAG, "Not yet implemented: processGoogleHelpAndPip($googleHelp)")
        // Strip error report, can be too big
        googleHelp?.errorReport = null
        callbacks?.onProcessGoogleHelpFinished(googleHelp)
    }

    override fun processGoogleHelpAndPipWithBitmap(googleHelp: GoogleHelp?, bitmap: Bitmap?, callbacks: IGoogleHelpCallbacks?) {
        processGoogleHelpAndPip(googleHelp, callbacks)
    }

    override fun saveAsyncHelpPsd(bundle: Bundle?, timestamp: Long, googleHelp: GoogleHelp?, callbacks: IGoogleHelpCallbacks?) {

View on GitHub (pinned to 157c9d86ac)

Solutions

  1. Ensure the calling app is properly bound via GmsClient so PackageUtils can resolve the package
  2. Reject/ignore requests whose caller package cannot be determined
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at play-services-core/src/main/kotlin/org/microg/gms/googlehelp/GoogleHelpService.kt:35 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/ba67da8272e70872. Report an issue: GitHub.