Skip to content

bug: Apps that sign in with the One Tap API can't get past the Google button under MicroG-RE #176

Description

@arandomhooman

Apps that sign in with the One Tap API can't get past the Google button under MicroG-RE. The call they make is:

Identity.getSignInClient(context)
    .getSignInIntent(GetSignInIntentRequest.builder().setServerClientId("<web client id>").build())

That binds the service auth.api.identity.service.signin.START, which MicroG-RE doesn't have, so the request fails and no account picker opens.

Tested on MicroG-RE 6.1.4 (latest), with a re-signed app whose only login option is Google. The GmsCore redirect and signature spoof are fine (no error 9). it reaches MicroG-RE and then dies at the bind.

Logcat when tapping sign-in:

W ServiceBindIntentUtils: Dynamic lookup for intent failed for action: app.revanced.android.gms.auth.api.identity.service.signin.START
W ActivityManager: Unable to start service Intent { act=...auth.api.identity.service.signin.START ... pkg=app.revanced.android.gms } not found
W GmsClient: unable to connect to service: ...auth.api.identity.service.signin.START on app.revanced.android.gms

Services MicroG-RE declares (dumpsys package app.revanced.android.gms):

auth.api.signin.service.START -- present (legacy GoogleSignIn)
credential.manager.service.firstparty.START -- present (Credential Manager)
auth.api.credentials.PICKER -- present
auth.api.identity.service.signin.START -- missing

What would fix it is the SignInClient surface, mainly these two methods:

  • getSignInIntent(GetSignInIntentRequest) returns a PendingIntent that launches the picker
  • getSignInCredentialFromIntent(Intent) returns a SignInCredential with the id token for the request's serverClientId

It looks like this could reuse the existing org.microg.gms.auth.signin flow, since that already produces an id token for a web client id. More apps are switching to this API from the old GoogleSignIn one. Happy to test builds.

Acknowledgements

  • I have checked all open and closed bug reports and this is not a duplicate.
  • All requested information has been provided properly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions