使用adb sideload刷入固件时签名验证失败(Techno Gk-8/Gk-8-Gl)
解决Techno Gk-8/Gk-8-Gl ADB侧载固件时签名验证失败(Error 21)的问题
问题背景
Techno Gk-8/Gk-8-Gl因DM-verity过期无法进入系统,尝试侧载官方固件或自制禁用verity压缩包时,均出现以下错误:
Supported API-3 finding_package_update.... verifying package update... E: footer is wrong Update package verification took 0.2s (result - 1) E:Signature verification failed E: error : 21
解决步骤
1. 更新Recovery至对应版本
Recovery版本过旧会导致无法识别新固件的签名格式:
- 进入recovery模式,查看当前版本信息
- 下载对应Gk-8/Gk-8-Gl的官方最新recovery镜像,通过fastboot刷入:
fastboot flash recovery recovery.img - 刷入后重启至recovery,重新尝试
adb sideload操作
2. 规范制作禁用DM-verity的补丁包
自制包格式或签名不符合recovery要求会触发验证失败:
- 解压官方固件,提取
boot.img、vbmeta.img及其他核心分区镜像 - 使用
avbtool工具修改分区镜像以禁用verity:# 处理boot.img,替换<boot分区大小>为设备实际值(可从scatter.txt中获取) avbtool add_hash_footer --image boot.img --partition_size <boot分区大小> --disable-verity --disable-verification # 处理vbmeta.img avbtool disable-verity --image vbmeta.img - 重新打包为OTA格式zip包:
- 保留原固件的
META-INF文件夹(含updater-script等必要文件) - 将修改后的镜像替换原包中对应文件,压缩格式保持与官方一致(建议用标准ZIP压缩)
- 若recovery强制要求签名,可使用测试签名工具生成签名文件放入
META-INF/com/android/otacert
- 保留原固件的
3. 关闭Recovery签名验证开关
部分recovery提供直接关闭验证的选项:
- 在recovery模式中找到「高级选项」或「设置」,勾选「Disable signature verification」
- 若没有该选项,尝试在fastboot模式执行:
执行完成后重启至recovery再侧载固件fastboot oem disable-verification
4. 改用MTK专用工具刷入固件
ADB侧载受限于recovery验证逻辑时,换用SP Flash Tool直接刷入:
- 安装MTK设备驱动,将设备进入Download模式(关机后按住音量下+电源键)
- 打开SP Flash Tool,加载官方固件的
scatter.txt文件 - 点击「Download」按钮,连接设备完成刷入,重启后即可进入系统
内容的提问来源于stack exchange,提问作者Learn Shadow
相关产品推荐
相关产品推荐

