应用商店下载失败问题排查

583 阅读3分钟

应用信息

分类说明
包名com.m1905.tv
地址dl-tclapp.huan.tv/20230303095…
MD51626a02464549c543acfae6d9fa5228b

报错信息

javax.net.ssl.SSLProtocolException: Read error: ssl=0xcf24cb88: Failure in SSL library, usually a protocol error
error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT (external/boringssl/src/crypto/fipsmodule/cipher/e_aes.c:1307 0xd816864b:0x00000000)
error:1000008b:SSL routines:OPENSSL_internal:DECRYPTION_FAILED_OR_BAD_RECORD_MAC (external/boringssl/src/ssl/tls_record.cc:298 0xd816864b:0x00000000)

参考资料

BoringSSL

Android 正在从使用 OpenSSL 库转向使用 BoringSSL 库。如果您要在应用中使用 Android NDK,请勿链接到并非 NDK API 组成部分的加密库,如 libcrypto.so 和 libssl.so。这些库并非公共 API,可能会在不同版本和设备上毫无征兆地发生变化或出现故障。此外,您还可能让自己暴露在安全漏洞的风险之下。请改为修改原生代码,以通过 JNI 调用 Java 加密 API,或静态链接到您选择的加密库。

github

# TLS connect failed with "SSL3_GET_RECORD:decryption failed or bad record mac"

# 关于C ++:OpenSSL解密失败或记录不正确的Mac Boost

下载过程

下载次数起始位置结束位置说明
109854288
2985428811967094断点续传
31196709412826523断点续传
41282652313479851下载完成

下载完成日志:

...
2023-03-03 09:57:51.554 E/Logger: [b] downloadTask : rwCursor:12826523 0  current:12826523
2023-03-03 09:57:51.555 E/Logger: [b] downloadTask : com.m1905.tv:协程id=0 [0_13479851]开始下载
2023-03-03 09:57:51.561 E/Logger: [b] downloadTask : com.m1905.tv_0 code:206
2023-03-03 09:57:51.562 E/Logger: [b] downloadTask : com.m1905.tv:协程id=0 开始写入文件 start:12826523  end:13479851 
2023-03-03 09:57:51.632 E/Logger: [b] downloadByLaunch : com.m1905.tv:协程id=0 下载大小:13479851 任务大小:13479851 multi:false
2023-03-03 09:57:51.633 E/Logger: [b] downloadByLaunch : 协程完成个数 1
2023-03-03 09:57:51.633 E/Logger: [b] downloadByLaunch : profUrl  null
2023-03-03 09:57:51.633 E/Logger: [b] stream : 文件下载完成
// 此处下载成功
2023-03-03 09:57:51.838 E/Logger: [b] FileDownloadEvent : com.m1905.tv success appMd5:1626a02464549c543acfae6d9fa5228b fileMd5:7f483c9eb8c11b42badd14e0e914c467
// 此处md5校验失败
2023-03-03 09:57:51.861 E/Logger: [f] FileDownloadEvent.Failure  : com.m1905.tv failure MD5 remove Task
2023-03-03 09:57:51.864 E/Logger: [e] executeKillProcess : taskEvent type:41_isOver:true
2023-03-03 09:57:51.864 E/Logger: [e] exitProgress : true true true true true false
2023-03-03 09:57:51.864 E/Logger: [e] executeKillProcess : taskEvent type:41_isOver:true
2023-03-03 09:57:51.865 E/Logger: [e] exitProgress : true true true true true false
2023-03-03 09:57:51.865 E/Logger: [f] FileDownloadEvent :  com.m1905.tv failure code 1005
...

排查过程及结果

问题结果
能否复现该问题?TV可稳定复现
复现机器系统版本是否相同两台复现9652系统版本相同
是否MD5算法问题?对比商店、TCL组件库MD5算法,结果一致,排除算法原因
是否设备加密套件问题?两套MD5算法在不同机器验证,结果一致,排除设备原因
是否下载算法问题?接入TCL下载组件,出现同样错误,排除算法原因
是否设备SSL问题?在Demo下载应用,模拟器正常下载、MD5正确,TV安装Demo仍出现SSL错误