• 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. }

  • 相关阅读:
    猿创征文|【JavaSE】 Collection集合全家桶
    基于51单片机DHT11温湿度测量仪protues仿真设计(源码+仿真+讲解视频+设计报告)
    数字政府建设要补上“+互联网”这一环
    react context原理
    数据结构:二叉查找树
    阿里巴巴为什么能抗住90秒100亿?看完这篇你就明白了!
    JUC并发编程第八篇,谈谈你对CAS的理解?自旋锁,CAS底层原理和存在的问题?
    VMware Workstation Player虚拟机Ubuntu启用Windows共享目录
    猿创征文|瑞吉外卖——移动端_地址管理
    网络编程03-UDP协议
  • 原文地址:https://blog.csdn.net/xiaowang_lj/article/details/133387249