microg/GmsCore · error · IllegalArgumentException
Missing package name
Error message
Missing package name
What it means
FacsCacheService.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/udc/FacsCacheService.kt:29
import com.google.android.gms.common.api.Status
import com.google.android.gms.common.internal.GetServiceRequest
import com.google.android.gms.common.internal.IGmsCallbacks
import com.google.android.gms.facs.cache.FacsCacheCallOptions
import com.google.android.gms.facs.cache.GetActivityControlsSettingsResult
import com.google.android.gms.facs.cache.internal.IFacsCacheCallbacks
import com.google.android.gms.facs.cache.internal.IFacsCacheService
import org.microg.gms.BaseService
import org.microg.gms.common.GmsService
import org.microg.gms.common.PackageUtils
import org.microg.gms.utils.warnOnTransactionIssues
private const val TAG = "GmsFacsCache"
class FacsCacheService : BaseService(TAG, GmsService.FACS_CACHE) {
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest?, service: GmsService?) {
Log.d(TAG, "handleServiceRequest request=${request} ")
val packageName = PackageUtils.getAndCheckCallingPackage(this, request?.packageName)
?: throw IllegalArgumentException("Missing package name")
callback.onPostInitComplete(0, FacsCacheServiceImpl(this, packageName).asBinder(), null)
}
}
class FacsCacheServiceImpl(val context: Context, val packageName: String) : IFacsCacheService.Stub() {
override fun forceSettingsCacheRefresh(callbacks: IFacsCacheCallbacks, options: FacsCacheCallOptions) {
Log.d(TAG, "forceSettingsCacheRefresh")
callbacks.onForceSettingsCacheRefreshResult(Status.CANCELED, null)
}
override fun updateActivityControlsSettings(callbacks: IFacsCacheCallbacks, bytes: ByteArray, options: FacsCacheCallOptions) {
Log.d(TAG, "updateActivityControlsSettings")
callbacks.onUpdateActivityControlsSettingsResult(Status.CANCELED, null)
}
override fun getActivityControlsSettings(callbacks: IFacsCacheCallbacks, options: FacsCacheCallOptions) {
Log.d(TAG, "getActivityControlsSettings requestPackageName: $packageName, options: $options")View on GitHub (pinned to 157c9d86ac)
Solutions
- Ensure the caller binds with a resolvable package identity
- Reject requests whose caller package is unavailable
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at play-services-core/src/main/kotlin/org/microg/gms/udc/FacsCacheService.kt:29 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/74ddb921a6c286d4.
Report an issue: GitHub.