【发布时间】:2020-07-07 22:19:08
【问题描述】:
我正在为我的自定义 Android 10 构建构建一个 OTA 更新,如下所示:
./build/make/tools/releasetools/ota_from_target_files \
--output_metadata_path metadata.txt \
target-files.zip \
ota.zip
根据 update_engine_client 的 android 文档,可以通过提取 payload.bin 和 payload_properties.txt 来应用生成的 ota.zip。
update_engine_client --payload=file:///<wherever>/paypload.bin \
--update \
--headers=<Contents of payload_properties.txt>
这一切正常,因此我很确定从这个结果中我已经正确创建了 OTA,但是,我希望能够下载元数据并验证是否可以在客户端下载之前应用有效负载整个有效载荷。
查看 update_engine_client --help 选项,似乎可以按如下方式验证元数据:
update_engine_client --verify --metadata=<path to metadata.txt from above>
这是我未能达到预期结果的地方。我收到一条错误消息,提示它无法解析有效负载标头。 kDownloadInvalidMetadataMagicString 失败了,当我读取源代码时,它似乎是元数据的前 4 个字节。显然我创建的 metadata.txt 不适合验证工具。
所以我希望有人能指出正确的方向,以正确生成元数据或告诉我如何正确使用该工具。
【问题讨论】:
-
0911/160344.475208:INFO:delta_performer.cc(208)] 已完成 0/?操作,已下载 16264/927311316 字节 (0%),总体进度 0% [0911/160344.475270:ERROR:payload_metadata.cc(74)] 有效负载格式错误 - 增量魔法无效。 [0911/160344.475295:ERROR:download_action.cc(336)] DeltaPerformer 的 Write 方法在处理接收到的有效负载时出现错误 ErrorCode::kDownloadInvalidMetadataMagicString (21) -- 终止处理 [0911/160344.475329:INFO:delta_performer.cc(313)] 丢弃24 个未使用的下载字节
标签: updates android-source ota