microg / microg/GmsCore

[com.google.audio.hearing.visualization.accessibility.scribe] Google Live Transcribe & Notification no interaction possible

Open
#3,185 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
14.6k
Forks
3.2k
Avg merge
12d 11h
Merged PRs (30d)
4

Description

Affected app

Name: Google Live Transcribe & Notification
Package id: com.google.audio.hearing.visualization.accessibility.scribe

Describe the bug

the App doesn't take any input (voice)

To Reproduce
Steps to reproduce the behavior:

  1. install App '...'
  2. Start App '....'
  3. doesn't take any input (voice)

Expected behavior

for the App to take input and transcribe

(the end goal is to hook it up with Google Dialer "Phone", but that is out of scope)

Logcat

W ExtendedAccess: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
E SpatulaClientInterceptor: java.util.concurrent.ExecutionException: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
E CloudSpeechSession: Fatal error, cannot authenticate to Cloud Speech API.
full logcat
12-07 00:18:59.650 19452 19452 D AuthProxyService: onBind: Intent { act=com.google.android.gms.auth.service.START pkg=com.google.android.gms }
12-07 00:18:59.658 19452  2828 D AuthProxyService: bound by: GetServiceRequest[AUTH_PROXY, packageName="com.google.audio.hearing.visualization.accessibility.scribe", gmsVersion=252825000, scopes=[], extras=Bundle[{}], defaultFeatures=[], apiFeatures=[], supportsConnectionInfo=true]
12-07 00:18:59.661 19452  2828 W ExtendedAccess: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at org.microg.gms.common.PackageUtils.assertGooglePackagePermission(PackageUtils.java:68)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at org.microg.gms.auth.proxy.AuthProxyService.handleServiceRequest(AuthProxyService.kt:37)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at org.microg.gms.BaseService$1.handleServiceRequest(BaseService.java:55)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at org.microg.gms.AbstractGmsServiceBroker.getService(AbstractGmsServiceBroker.java:256)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at com.google.android.gms.common.internal.IGmsServiceBroker$Stub.onTransact(IGmsServiceBroker.java:505)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at org.microg.gms.AbstractGmsServiceBroker.onTransact(AbstractGmsServiceBroker.java:272)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at android.os.Binder.execTransactInternal(Binder.java:1406)
12-07 00:18:59.661 19452  2828 W ExtendedAccess: 	at android.os.Binder.execTransact(Binder.java:1350)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: Failed to get service from broker. 
12-07 00:18:59.662  2851  2870 E GoogleApiManager: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Parcel.createExceptionOrNull(Parcel.java:3261)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Parcel.createException(Parcel.java:3245)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Parcel.readException(Parcel.java:3228)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Parcel.readException(Parcel.java:3170)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at clc.s(PG:193)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at bkq.run(PG:397)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Handler.handleCallback(Handler.java:991)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Handler.dispatchMessage(Handler.java:102)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Looper.loopOnce(Looper.java:232)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.Looper.loop(Looper.java:317)
12-07 00:18:59.662  2851  2870 E GoogleApiManager: 	at android.os.HandlerThread.run(HandlerThread.java:85)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: Error getting spatula header
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: java.util.concurrent.ExecutionException: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cmt.bU(PG:32)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cmt.ac(PG:39)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at ddk.b(PG:52)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at ddj.a(PG:3)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at ddl.a(PG:10)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at iqq.f(PG:6)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at iqq.b(PG:15)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at eth.b(PG:314)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at esk.a(PG:7)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at euw.b(PG:225)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at esk.a(PG:7)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at erv.c(PG:272)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at ekt.run(PG:450)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:524)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at java.util.concurrent.FutureTask.run(FutureTask.java:317)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at java.lang.Thread.run(Thread.java:1119)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: Caused by: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cmt.bg(PG:13)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cjc.d(PG:3)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cjv.t(PG:48)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cjv.f(PG:10)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cjv.j(PG:164)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at cjv.i(PG:2)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at bkq.run(PG:427)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at android.os.Handler.handleCallback(Handler.java:991)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at android.os.Handler.dispatchMessage(Handler.java:102)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at android.os.Looper.loopOnce(Looper.java:232)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at android.os.Looper.loop(Looper.java:317)
12-07 00:18:59.663  2851  2931 E SpatulaClientInterceptor: 	at android.os.HandlerThread.run(HandlerThread.java:85)
12-07 00:18:59.664  2851  2931 E CloudSpeechSession: Fatal error, cannot authenticate to Cloud Speech API.
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: Session #7 ended fatally.
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: com.google.android.libraries.grpc.auth.SpatulaAuthException
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at ddj.a(PG:21)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at ddl.a(PG:10)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at iqq.f(PG:6)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at iqq.b(PG:15)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at eth.b(PG:314)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at esk.a(PG:7)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at euw.b(PG:225)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at esk.a(PG:7)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at erv.c(PG:272)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at ekt.run(PG:450)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:524)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at java.util.concurrent.FutureTask.run(FutureTask.java:317)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
12-07 00:18:59.664  2851  2931 E TranscriptionResultRece: 	at java.lang.Thread.run(Thread.java:1119)
12-07 00:18:59.665  2851  2931 I RepeatingRecognitionSes: Closing Session #7 due to non-network error.
12-07 00:18:59.665  2851  2931 I SafeTranscriptionResult: Restarting formatter request queue. null
12-07 00:18:59.666  2851  2931 E ScribeAudioEngine: Stop recognition due to spatulaAuthException happened and mic is recording.

System
Android Version: 15
Custom ROM: /e/OS-v3.2-walleye

microG
microG Core version: 0.3.9.250932-38 (b262aae)
microG Self-Check results: All ticked

Additional context
I speculate that adding the app signing key sha to KNOWN_GOOGLE_PACKAGES could avert missing google package permission for APP_CERT though I'm unsure if "setOf(ACCOUNT, AUTH, OWNER)" will be sufficient:

https://github.com/microg/GmsCore/blob/cb9be8f682d7649dae23bcc1619f8c5717de5b9d/play-services-base/core/src/main/kotlin/org/microg/gms/common/KnownGooglePackages.kt#L58

current apksigner verify --verbose --print-certs outpu:

com.google.audio.hearing.visualization.accessibility.scribe signing key hashes
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: dfa57c73fa2a6f5906c07c3cf82b14f0f0abe0949dd971df5871dcb58aa032b9
Signer #1 certificate SHA-1 digest: c8da753045dd86ad0abc76a85a92da24f9e47702
Signer #1 certificate MD5 digest: da1138b5f407896a961984c827cd25d9
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 4096
Signer #1 public key SHA-256 digest: bcbdfdd89117fa3b5e4bee5b6d22a5ac26159f7a3a309ba6139be5f68f78931e
Signer #1 public key SHA-1 digest: 9c38643b0cbf658d2e92a79398188ef4851bc262
Signer #1 public key MD5 digest: c0ee29501d0811e38c595501726b7f9b
Source Stamp Signer certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Source Stamp Signer certificate SHA-256 digest: 3257d599a49d2c961a471ca9843f59d341a405884583fc087df4237b733bbd6d
Source Stamp Signer certificate SHA-1 digest: b1af3a0bf998aeede1a8716a539e5a59da1d86d6
Source Stamp Signer certificate MD5 digest: 577b8a9fbc7e308321aec6411169d2fb
Source Stamp Signer key algorithm: RSA
Source Stamp Signer key size (bits): 4096
Source Stamp Signer public key SHA-256 digest: 4c53c1d28f2ecceadcb1351603f0b702615b3454b6e30070de759359f241b802
Source Stamp Signer public key SHA-1 digest: 188b067a9ee881bde55dabe0f8f7ecb320b1a091
Source Stamp Signer public key MD5 digest: 965afac83f033aa037a54482eb6922d5

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the authentication failure in the logcat and inspect KnownGooglePackages.kt, especially the referenced package-permission logic. Reproduce with Google Live Transcribe on Android 15 and review the AuthProxyService path. Done means the app can accept microphone input and transcribe speech without the reported authentication errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java, kotlin
Domain
authentication, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.