提问人:Sergey Shpital 提问时间:3/15/2023 更新时间:3/16/2023 访问量:130
Fido2ApiCall 在 Android 版 Chromium 中失败,模式 = 浏览器
Fido2ApiCall failed in Chromium for Android, mode = BROWSER
问:
- 签出并构建适用于 Android 的 Chromium (https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/android_build_instructions.md)
- 安装并运行适用于 Android 的 Chromium
- 导航 https://webauthn.io
- 输入任何用户名
- 按注册按钮
03-09 11:48:37.073 996 2738 I [email protected]: total connections for service : com.google.android.gms/.chimera.GmsBoundBrokerServiceare :1
03-09 11:48:37.073 996 2738 I [email protected]: total connections for client : org.chromium.chromeare :5
03-09 11:48:37.074 1935 5157 D CompatibilityInfo: mCompatibilityFlags - 0
03-09 11:48:37.074 1935 5157 D CompatibilityInfo: applicationDensity - 440
03-09 11:48:37.074 1935 5157 D CompatibilityInfo: applicationScale - 1.0
03-09 11:48:37.074 996 2738 I [email protected]: startService() is called for servicecom.google.android.gms/.chimera.GmsBoundBrokerService
03-09 11:48:37.078 30122 30122 D BoundBrokerSvc: onBind: Intent { act=com.google.android.gms.fido.fido2.privileged.START pkg=com.google.android.gms }
03-09 11:48:37.078 30122 30122 D BoundBrokerSvc: Loading bound service for intent: Intent { act=com.google.android.gms.fido.fido2.privileged.START pkg=com.google.android.gms }
03-09 11:48:37.079 2895 6467 I SarService: Receiver polling >>>> Change receiver mode: off
03-09 11:48:37.086 30122 30448 E Fido : [FidoBrowserApiChimeraService] Rejecting browser request from org.chromium.chrome because the hash of the certificate (32A2FC74D731105859E5A85DF16D95F102D85B22099B8064C5D8915C61DAD1E0) is not recognised. [CONTEXT service_id=149 ]
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: FIDO2 API call failed
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: com.google.android.gms.common.api.ApiException: 17: API: Fido.FIDO2_PRIVILEGED_API is not available on this device. Connection failed with: ConnectionResult{statusCode=RESTRICTED_PROFILE, resolution=null, message=null}
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.0.1:3)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.ApiExceptionMapper.getException(com.google.android.gms:play-services-base@@18.0.1:1)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.zag.zad(com.google.android.gms:play-services-base@@18.0.1:1)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.0.1:7)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.0.1:2)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.0.1:24)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.api.internal.zabq.onConnectionFailed(com.google.android.gms:play-services-base@@18.0.1:1)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.zai.onConnectionFailed(com.google.android.gms:play-services-base@@18.0.1:1)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.zzf.zzb(com.google.android.gms:play-services-basement@@18.1.0:2)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.zza.zza(com.google.android.gms:play-services-basement@@18.1.0:3)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.zzc.zze(com.google.android.gms:play-services-basement@@18.1.0:3)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at com.google.android.gms.common.internal.zzb.handleMessage(com.google.android.gms:play-services-basement@@18.1.0:31)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at android.os.Handler.dispatchMessage(Handler.java:106)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at android.os.Looper.loop(Looper.java:236)
03-09 11:48:37.089 12271 12271 E cr_Fido2Request: at android.os.HandlerThread.run(HandlerThread.java:67)
03-09 11:48:37.257 594 594 E SELinux : avc: denied { find } for pid=4620 uid=10199 name=tethering scontext=u:r:vendor_systemhelper_app:s0:c512,c768 tcontext=u:object_r:tethering_service:s0 tclass=service_manager permissive=0
适用于 Linux 的 Chromium 工作正常。 需要为 android 配置哪些设置?感谢您的任何帮助
答:
2赞
agl
3/16/2023
#1
请注意日志中的这一行:
拒绝来自 org.chromium.chrome 的浏览器请求,因为无法识别证书的哈希值 (32A2FC74D731105859E5A85DF16D95F102D85B22099B8064C5D8915C61DAD1E0)。
Play 服务仅允许已识别的浏览器访问用户的 WebAuthn 凭据。
评论
0赞
Sergey Shpital
3/16/2023
谢谢你的回答。我没有找到任何关于如何做到这一点的提及。在“API 和服务”列表中没有像 WebAuthn 这样的东西。
1赞
agl
3/17/2023
是否要将浏览器应用程序添加到列表中?我认为可能有一个页面记录了该过程,但我现在找不到它。如果您提供电子邮件地址,我可以启动该过程。如果这是为了开发,那么我相信指纹在用户调试设备上是可信的。flash.android.com/welcome 可以在支持的设备上安装此类映像。
0赞
Sergey Shpital
3/17/2023
我只找到了 chromium.org/developers/how-tos/api-keys 但我在这里没有看到任何关于 fido 的信息。在标准文档中,未描述浏览器模式下的 android Fido2ApiCall。明天我将尝试检查userdebug手机,我希望它能正常工作。谢谢你的帮助 ( sergey.shpital 'at' gmail.com )
评论