【问题标题】:SecurityException - GoogleCertificatesRslt: not allowedSecurityException - GoogleCertificatesRslt:不允许
【发布时间】:2020-10-04 15:47:03
【问题描述】:

我们有一个拥有数百万用户的应用。在过去的一周里,我们从旧版本的应用中收到了大约 30 个来自 Firebase Crashlytics 的“速度警报”,其中包含如下错误消息:

Fatal Exception: java.lang.SecurityException
GoogleCertificatesRslt: not allowed: pkg=com.example.app, sha1=<sha1 redacted>, atk=false, ver=203914019.true (go/gsrlt)
android.os.Parcel.readException (Parcel.java:1959)
android.os.Parcel.readException (Parcel.java:1905)
com.google.android.gms.common.internal.s.r (s.java:37)
com.google.android.gms.common.internal.W.u (W.java:90)
com.google.android.gms.common.api.internal.At.q (At.java:17)
com.google.android.gms.common.api.internal.rt.run (rt.java:5)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457)
java.util.concurrent.FutureTask.run (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
com.google.android.gms.internal.ef.run (ef.java:6)
java.lang.Thread.run (Thread.java:764)

它不会影响那么多用户,可能是几百到一千。通常我们不会真正注意到这个小问题,但因为对于那些用户来说它似乎一遍又一遍地发生,我们已经收到了所有这些速度警报 - 使其更加明显。

为什么会这样?堆栈跟踪略有不同,但看起来确实与 Google 的 GMS 有关。

我们或我们的用户可以做些什么来避免它?

这个问题似乎分布在 Android 版本和设备供应商之间。

【问题讨论】:

  • 相同。数百名用户造成数千次崩溃。主要是 Android 9。
  • 后台也报告了 80% 的崩溃。不是前景。
  • 有人找到解决这个问题的方法吗?
  • 我发现它说致命异常:java.lang.SecurityException:GoogleCertificatesRslt:使用未知证书(go/gsrlt)签名的包。它仅在 Android 9 设备中 100% 发生
  • 过去 5 天内开始上涨:(1) GoogleCertificatesRslt: Package signed with unknown certificate (go/gsrlt) HE.java for android 9 (2) GoogleCertificatesRslt: not allowed HT.java for android 8 (3) GoogleCertificatesRslt: not allowed nK.java for android 6

标签: android google-api


【解决方案1】:

这是 Google Play 服务中的一个问题,开发人员关系中的某个人证实了这一点。 10 月 2 日针对此问题推出了修复程序,随着更多设备自动更新到最新版本 (20.39.15),我们应该会看到此问题的减少趋势。

【讨论】:

  • 你好,nlmm01,我想知道细节,你能提供任何详细的信息吗? (如谷歌问题跟踪链接)。谢谢。
  • 如果可能,将尝试获取更多信息。
  • 关于这个的帖子在哪里?
  • 我没有官方链接或文档可以指向任何一个,但我也从在这个问题附近工作的人那里得到了同样的信息。这是com.google.android.gms 版本20.39.14 中的一个错误,它已在20.39.15 中修复。具有该确切版本的人 - 在等待升级时 - 可以通过升级他们的 WebView 实现来解决问题。
  • @RoySolberg 你能分享更多与此相关的信息吗?我没有使用 com.google.android.gms 的确切版本;但仍然收到此错误。如何解决这个问题?你的指导可以拯救我的一天!
【解决方案2】:

我在 com.google.android.gms:play-services-basement@17.1.0 中找到 像这样:

package com.google.android.gms.common; 

import javax.annotation.Nullable;

@javax.annotation.CheckReturnValue
class zzl { zzl(boolean paramBoolean, @Nullable String paramString, @Nullable Throwable paramThrowable) { this.zzap = paramBoolean;
    this.zzaq = paramString;
    this.cause = paramThrowable; }
  
  static zzl zze() { return zzao; }
  static zzl zza(java.util.concurrent.Callable<String> paramCallable) { return new zzn(paramCallable, null); }
  static zzl zzb(@androidx.annotation.NonNull String paramString) { return new zzl(false, paramString, null); }
  static zzl zza(@androidx.annotation.NonNull String paramString, @androidx.annotation.NonNull Throwable paramThrowable) { return new zzl(false, paramString, paramThrowable); } @Nullable
  String getErrorMessage() { return this.zzaq; }
  final void zzf() { if ((!this.zzap) && (android.util.Log.isLoggable("GoogleCertificatesRslt", 3))) {
      if (this.cause != null) {
        android.util.Log.d("GoogleCertificatesRslt", getErrorMessage(), this.cause);return; }
      android.util.Log.d("GoogleCertificatesRslt", getErrorMessage()); } }
  
  static String zzc(String paramString, zzd paramzzd, boolean paramBoolean1, boolean paramBoolean2) { String str = paramBoolean2 ? "debug cert rejected" : "not whitelisted";
    
    zzd localzzd = paramzzd;{ str, paramString }[2] = 
    

      com.google.android.gms.common.util.Hex.bytesToStringLowercase(com.google.android.gms.common.util.AndroidUtilsLight.zzj("SHA-1").digest(localzzd.getBytes())); Object[] 
      tmp50_28 = tmp28_24;tmp50_28[3] = 
      Boolean.valueOf(paramBoolean1); Object[] tmp57_50 = tmp50_28;tmp57_50[4] = "12451009.false";
    return String.format("%s: pkg=%s, sha1=%s, atk=%s, ver=%s", tmp57_50); }
  private static final zzl zzao = new zzl(true, null, null);
  final boolean zzap;
  private final String zzaq;
  private final Throwable cause;
}

类似的错误信息。

【讨论】:

  • 这不是解决方案。
猜你喜欢
  • 2023-01-18
  • 2017-02-03
  • 2018-08-02
  • 1970-01-01
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
相关资源
最近更新 更多