|
Elo
技术支持知识库
|
ZEBRA
公共支持文档
|
解决“签名验证失败错误21”在USB OTA更新期间的问题
受众: Elo和Zebra客户
文章类型: 公共程序
症状
尝试通过USB在基于Android的设备(例如Elo背包)上应用OTA固件更新时,安装过程在Android恢复屏幕中失败,并以验证错误消息中断。
错误屏幕日志的图形表示:
根本原因分析
该错误表示update.zip有效负载在加密上无效或失去了结构完整性。EOCD (End of Central Directory)标记错误明确表示zip的文件结构被截断、损坏或以其他方式不可读。这阻止系统执行其强制签名检查,触发错误代码21作为安全对策,以保护设备免受系统砖化。
这通常是由于:
- 故障USB闪存驱动器: 故障闪存存储块(坏扇区)或不稳定的控制器在本地文件传输过程中会损坏有效负载。
- 下载不完整: OTA包在从门户下载时被中断或损坏。
- 目标镜像不正确: 有效负载的安全证书与物理硬件版本上的BSP固件不匹配。
逐步解决方案
⚠️ 重要注意事项: 在尝试写入操作之前,严格使用FAT32文件系统格式化您的USB闪存驱动器。 NTFS或exFAT等分区样式可能导致在恢复阶段出现挂载问题或不完整的块读取。
-
清除本地文件: 从主计算机和USB驱动器中删除之前的
update.zip以防止意外重用。 -
下载干净的固件有效负载: 从Elo客户支持门户重新下载官方OTA包。如果网站提供MD5/SHA-256哈希,请通过命令行实用程序验证本地文件的完整性(例如,在Windows上使用
CertUtil -hashfile update.zip SHA256)。 - 准备一个新的USB闪存驱动器: 切换到另一个高质量的USB闪存驱动器。 使用FAT32文件系统干净地格式化驱动器。
-
传输有效负载: 将新下载的
update.zip直接复制到USB驱动器的根目录中(请勿提取ZIP容器)。 - 安全弹出和挂载: 从主PC安全弹出USB闪存驱动器,将其插入Elo背包的USB-A接口,然后通过Android恢复控制台继续安装过程。
-
使用替代存储介质: 如果多个USB驱动器上仍然存在验证错误,请尝试使用替代物理介质进行更新。 将高质量MicroSD卡格式化为FAT32,将
update.zip复制到其根目录中,并在恢复菜单中选择从SD卡应用更新的选项。
Please report any broken links by emailing elo.support@zebra.com and include a link to the knowledge article