Android update_engine错误码含义

源码路径system/update_engine/common/error_code.h

enum class ErrorCode : int {
  kSuccess = 0,                   // 升级成功
  kError = 1,                     // 通用错误(未明确分类的失败)
  kOmahaRequestError = 2,         // 与Omaha服务器通信请求失败
  kOmahaResponseHandlerError = 3, // 处理Omaha服务器响应失败
  kFilesystemCopierError = 4,     // 文件系统复制操作失败
  kPostinstallRunnerError = 5,    // 安装后脚本执行失败
  kPayloadMismatchedType = 6,     // 负载类型与预期不匹配(如全量/增量)
  kInstallDeviceOpenError = 7,    // 无法打开目标安装设备
  kKernelDeviceOpenError = 8,     // 无法打开内核设备(如分区)
  kDownloadTransferError = 9,     // 下载传输过程中断或失败
  kPayloadHashMismatchError = 10, // 负载哈希值与预期不匹配(完整性校验失败)
  kPayloadSizeMismatchError = 11, // 负载大小与元数据声明不符
  kDownloadPayloadVerificationError = 12, // 下载的负载验证失败(通用)
  kDownloadNewPartitionInfoError = 13,     // 获取新分区信息失败
  kDownloadWriteError = 14,                // 写入下载数据到磁盘失败
  kNewRootfsVerificationError = 15,        // 新根文件系统验证失败
  kNewKernelVerificationError = 16,        // 新内核验证失败
  kSignedDeltaPayloadExpectedError = 17,   // 预期为签名增量负载但未提供
  kDownloadPayloadPubKeyVerificationError = 18, // 负载公钥验证失败(签名无效)
  kPostinstallBootedFromFirmwareB = 19,    // 安装后仍从旧固件B启动(A/B分区问题)
  kDownloadStateInitializationError = 20,  // 下载状态初始化失败
  kDownloadInvalidMetadataMagicString = 21,// 元数据魔数字符串无效(格式错误)
  kDownloadSignatureMissingInManifest = 22,// 清单中缺少必要签名
  kDownloadManifestParseError = 23,        // 清单解析失败(格式/语法错误)
  kDownloadMetadataSignatureError = 24,    // 元数据签名生成/读取失败
  kDownloadMetadataSignatureVerificationError = 25, // 元数据签名验证失败
  kDownloadMetadataSignatureMismatch = 26, // 元数据签名与实际内容不匹配
  kDownloadOperationHashVerificationError = 27,     // 操作哈希验证失败
  kDownloadOperationExecutionError = 28,   // 下载操作执行失败(如网络层错误)
  kDownloadOperationHashMismatch = 29,     // 操作哈希与预期值不匹配
  kOmahaRequestEmptyResponseError = 30,    // Omaha服务器返回空响应
  kOmahaRequestXMLParseError = 31,         // Omaha响应XML解析失败
  kDownloadInvalidMetadataSize = 32,       // 元数据大小无效(超出范围)
  kDownloadInvalidMetadataSignature = 33,  // 元数据签名格式无效
  kOmahaResponseInvalid = 34,              // Omaha响应内容无效(逻辑错误)
  kOmahaUpdateIgnoredPerPolicy = 35,       // 根据策略忽略更新(如版本限制)
  kOmahaUpdateDeferredPerPolicy = 36,      // 根据策略延迟更新(如电量/网络条件)
  kOmahaErrorInHTTPResponse = 37,          // Omaha HTTP响应包含错误状态码
  kDownloadOperationHashMissingError = 38, // 操作哈希缺失(元数据不完整)
  kDownloadMetadataSignatureMissingError = 39, // 元数据签名缺失
  kOmahaUpdateDeferredForBackoff = 40,     // 因退避策略延迟更新(避免频繁请求)
  kPostinstallPowerwashError = 41,         // 安装后清除用户数据失败(恢复出厂设置错误)
  kUpdateCanceledByChannelChange = 42,     // 更新因系统通道切换被取消
  kPostinstallFirmwareRONotUpdatable = 43, // 固件只读不可更新(硬件限制)
  kUnsupportedMajorPayloadVersion = 44,    // 负载主版本不受支持
  kUnsupportedMinorPayloadVersion = 45,    // 负载次版本不受支持
  kOmahaRequestXMLHasEntityDecl = 46,      // Omaha请求XML包含非法实体声明(安全限制)
  kFilesystemVerifierError = 47,           // 文件系统验证失败(如dm-verity错误)
  kUserCanceled = 48,                      // 用户主动取消更新
  kNonCriticalUpdateInOOBE = 49,           // OOBE模式下跳过非关键更新
  kOmahaUpdateIgnoredOverCellular = 50,    // 通过蜂窝网络时忽略更新(策略限制)
  kPayloadTimestampError = 51,             // 负载时间戳无效(如过期或未来时间)
  kUpdatedButNotActive = 52,               // 更新完成但未激活(需重启)
  kNoUpdate = 53,                          // 无可用更新
  kRollbackNotPossible = 54,               // 无法回滚到先前版本
  kFirstActiveOmahaPingSentPersistenceError = 55, // 首次激活Ping状态保存失败
  kVerityCalculationError = 56,            // Verity哈希树计算失败
  kInternalLibCurlError = 57,              // libcurl库内部错误(网络层底层问题)
  kUnresolvedHostError = 58,               // 域名解析失败(如DNS问题)
  kUnresolvedHostRecovered = 59,           // 域名解析失败后恢复成功(重试成功)
  kNotEnoughSpace = 60,                    // 设备存储空间不足
  kDeviceCorrupted = 61                    // 设备关键分区损坏(需恢复模式)
};

补充说明

  1. Omaha:Google的更新协议,用于检查/下载更新(如Chrome OS和Android使用)

  2. A/B分区:Android的无缝更新机制,通过双系统分区实现后台更新

  3. dm-verity:Android的设备映射验证技术,用于防止分区篡改

  4. OOBE:Out-of-Box Experience,设备首次开机配置向导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值