• OTA升级常见错误码汇总-CSDN博客


    一、OTA升级脚本ota_info.sh 脚本内容示范:

    update_engine_client --update --follow --payload=file:///data/ota_package/update.zip --offset=3283 --size=1477355701 --headers="FILE_HASH=rW+2uC1eDSj07+1xSwgsyopHUag4wM1g8hNmWX1NWGw=
    FILE_SIZE=1477355701
    METADATA_HASH=CFaa1l58FuWZzOEdt6I2MF0KMOCKqHOyLfXvpnuvV3U=
    METADATA_SIZE=112597

    备注:data/ota_package/update.zip 为升级包的路径

    二、错误码汇总

    ErrorCode::kSuccess (0) 升级成功

    ErrorCode::kSuccess (1) 升级失败

    ErrorCode::kFilesystemCopierError (4) 未知,暂时未使用的错误码

    ErrorCode::kPostinstallRunnerError (5) 升级安装结束,设置启动分区失败

    ErrorCode::kPayloadMismatchedType (6) 升级包的升级类型不匹配或升级包minor version不兼容

    ErrorCode::kInstallDeviceOpenError (7) 无法启动升级。可能是原因:分区错误,设备支持升级的分区和升级包内的不匹配;设备处于disable-verity状态;

    ErrorCode::kKernelDeviceOpenError (8) 未知,暂时未使用的错误码

    ErrorCode::kDownloadTransferError (9) w,找不到升级包

    ErrorCode::kPayloadHashMismatchError (10) FILE_HASH值不匹配

    ErrorCode::kPayloadSizeMismatchError (11) 数据size不匹配

    ErrorCode::kDownloadPayloadVerificationError (12) 签名验证失败

    ErrorCode::kDownloadStateInitializationError (20) 升级包写入时失败  一般都是发生在差分包升级时,检测boot、system、vendor的hash值不匹配。

    ErrorCode::kDownloadInvalidMetadataMagicString (21)  未找到正确bin文件,一般是offset不对导致

    ErrorCode::kDownloadInvalidMetadataSize (32) METADATA_SIZE值不匹配

    ErrorCode::kPayloadTimestampError (51) 升级包的date比机器当前版本早

    具体错误见:system\update_engine\common\error_code.h

    具体原因在system查找返回的错误码即可:

    grep -rn "kDownloadOperationHashMismatch"

    1. update_engine/common/error_code_utils.cc:94: case ErrorCode::kDownloadOperationHashMismatch:
    2. update_engine/common/error_code_utils.cc:95: return "ErrorCode::kDownloadOperationHashMismatch";
    3. update_engine/common/error_code.h:55: kDownloadOperationHashMismatch = 29,
    4. update_engine/payload_consumer/delta_performer.cc:1249: return ErrorCode::kDownloadOperationHashMismatch;
    5. update_engine/payload_consumer/delta_performer_integration_test.cc:847: expected_error = ErrorCode::kDownloadOperationHashMismatch;
    6. update_engine/metrics_utils.cc:63: case ErrorCode::kDownloadOperationHashMismatch:
    7. update_engine/metrics_utils.cc:215: case ErrorCode::kDownloadOperationHashMismatch:
    8. update_engine/cros/payload_state.cc:304: case ErrorCode::kDownloadOperationHashMismatch:
    9. update_engine/update_manager/chromeos_policy.cc:83: case ErrorCode::kDownloadOperationHashMismatch:

    例如:在system\update_engine\payload_consumer\delta_performer.cc

    1. if (calculated_op_hash != expected_op_hash) {
    2. LOG(ERROR) << "Hash verification failed for operation "
    3. << next_operation_num_ << ". Expected hash = ";
    4. utils::HexDumpVector(expected_op_hash);
    5. LOG(ERROR) << "Calculated hash over " << operation.data_length()
    6. << " bytes at offset: " << operation.data_offset() << " = ";
    7. utils::HexDumpVector(calculated_op_hash);
    8. return ErrorCode::kDownloadOperationHashMismatch;
    9. }

  • 相关阅读:
    统一潮流控制器 (UPFC) 的应用,以增强电力系统中的电压稳定性(Matlab代码实现)
    CentOS 系统如何在防火墙开启端口
    docker镜像run后 ps命令查不到解决办法;docker 容器显示exit(1)
    【Java 进阶篇】JavaScript JSON 语法入门:轻松理解数据的序列化和反序列化
    数字滚动组件(react)
    【数据库】oracle安装步骤(详细)
    浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思
    基于springboot+vue的餐饮管理系统实现与设计(源码+数据库+文档)
    数据结构之链表练习与习题详细解析
    夜神模拟器进行APP抓包
  • 原文地址:https://blog.csdn.net/xiaowang_lj/article/details/133387249