前言

这款APP最初是为了方便我的魅族20Pro使用的,慢慢的也改了很多BUG,更新了很多,也完善了很多,最近花时间重新写了一下APP,自己也了解了许多关于OTA相关的东西。特别是基本上把update_engine源码看了一遍,更为了解Android OTA升级过程。

软件特色

  1. 理论支持所有V-A/B机型使用
  2. 在魅族20系列上判断当前解锁方案是否为完成解锁,如果不是,将转换为完整解锁用来解决非法解锁问题
  3. 更新后由用户选择保留Root的方案(支持 MagiskKernelSUAPatch)
  4. 当选择的Rom为增量包时,提供还原镜像操作(支持 MagiskKernelSUAPatch)

注意事项

  1. 因为Android对后台服务的限制,请在更新时尽量保持软件前台
  2. 如果出现卡进度的情况,可以结束应用后台,重新选择ROM包刷入,刷入的进度不会重置
  3. 在刷入时请确保ROM包是完整的
  4. 在保留Root时,不支持互转环境(例如:当前为KernelSU,保留时选择APatch)
  5. 如果给了Root权限后,依旧提示无权限,请结束app后重新打开即可
  6. 增量包更新的出现错误码20,需要首次在助手里使用全量包进行更新,这样后续就能使用增量包了(部分设备)

软件截图

软件主页

更新日志

修复APath还原镜像问题

update_engine错误码errorcode

//android/system/update_engine/common/error_code.h
// Action exit codes.
enum class ErrorCode : int {
  kSuccess = 0,   //升级成功
  kError = 1,  //升级失败
  kOmahaRequestError = 2, //请求action错误(action机制用于控制升级每个步骤)
  kOmahaResponseHandlerError = 3,   //返回handler action错误
  kFilesystemCopierError = 4,  //文件系统拷贝错误
  kPostinstallRunnerError = 5,   //预编译运行步骤错误(PostinstallRunner是一个升级步骤)
  kPayloadMismatchedType = 6,    //NOT NEED
  kInstallDeviceOpenError = 7, //安装设备打开错误
  kKernelDeviceOpenError = 8, //内核设备打开错误
  kDownloadTransferError = 9, //下载传输错误
  kPayloadHashMismatchError = 10, //升级包hash未匹配错误
  kPayloadSizeMismatchError = 11,   //升级包size未匹配错误
  kDownloadPayloadVerificationError = 12, //下载过程升级包校验错误
  kDownloadNewPartitionInfoError = 13, //下载过程新分区信息错误
  kDownloadWriteError = 14,   //下载过程数据写入错误
  kNewRootfsVerificationError = 15, //升级分区hash校验失败
  kNewKernelVerificationError = 16, //升级kernel校验失败
  kSignedDeltaPayloadExpectedError = 17,  //NOT NEED
  kDownloadPayloadPubKeyVerificationError = 18, //下载过程升级包public key公钥校验错误
  kPostinstallBootedFromFirmwareB = 19,   //NOT NEED
  kDownloadStateInitializationError = 20, //下载状态初始化错误
  kDownloadInvalidMetadataMagicString = 21, //NOT NEED
  kDownloadSignatureMissingInManifest = 22,  //下载过程manifest缺少签名错误
  kDownloadManifestParseError = 23, //下载过程manifest分析错误
  kDownloadMetadataSignatureError = 24,   //下载过程元数据签名错误
  kDownloadMetadataSignatureVerificationError = 25,   //下载过程元数据签名校验错误
  kDownloadMetadataSignatureMismatch = 26,   //下载过程元数据签名不匹配错误
  kDownloadOperationHashVerificationError = 27, //下载过程操作hash校验错误
  kDownloadOperationExecutionError = 28,  //下载过程操作执行错误
  kDownloadOperationHashMismatch = 29, //下载过程操作hash不匹配错误
  kOmahaRequestEmptyResponseError = 30,   //请求action无返回错误
  kOmahaRequestXMLParseError = 31,  //请求action分析xml错误
  kDownloadInvalidMetadataSize = 32,   //下载过程非法元数据大小
  kDownloadInvalidMetadataSignature = 33, //下载过程非法元数据签名
  kOmahaResponseInvalid = 34, //返回action非法错误
  kOmahaUpdateIgnoredPerPolicy = 35,   //NOT NEED(含义是接收已回滚版本,忽略此次升级)
  kOmahaUpdateDeferredPerPolicy = 36,  //NOT NEED(含义是因更新策略延迟,忽略此次升级)
  kOmahaErrorInHTTPResponse = 37,   //HTTP返回错误
  kDownloadOperationHashMissingError = 38,   //下载过程操作时缺失hash错误
  kDownloadMetadataSignatureMissingError = 39,  //下载过程元数据签名缺失错误
  kOmahaUpdateDeferredForBackoff = 40,    //NOT NEED(含义是忽略本次升级)
  kPostinstallPowerwashError = 41,  //NOT NEED(回滚报错,该版本已去除版本回滚限制)
  kUpdateCanceledByChannelChange = 42, //通道变化升级取消
  kPostinstallFirmwareRONotUpdatable = 43, //NOT NEED(需要升级固件firmware时才会取消,因为无法从FW B分区启动到FW A分区)
  kUnsupportedMajorPayloadVersion = 44, //获取manifest偏移量错误
  kUnsupportedMinorPayloadVersion = 45,   //未manifest可支持更小版本错误
  kOmahaRequestXMLHasEntityDecl = 46, //请求action xml hash非法错误
  kFilesystemVerifierError = 47, //文件系统校验错误(FilesystemVerifier是一个升级步骤)
  kUserCanceled = 48, //用户取消
  kNonCriticalUpdateInOOBE = 49, //NOT NEED(Ignoring a non-critical Omaha update before OOBE completion.)
  kOmahaUpdateIgnoredOverCellular = 50,   //NOT NEED(未设置设备策略,因此用户首选项需要覆盖是否允许通过蜂窝网络进行更新)
  kPayloadTimestampError = 51, //升级包时间戳错误 (payload.bin是OTA镜像打包文件)
  kUpdatedButNotActive = 52,  //升级分区非action状态错误
  kNoUpdate = 53, //无升级(There are no updates. Aborting.)
  kRollbackNotPossible = 54,  //NOT NEED
  kFirstActiveOmahaPingSentPersistenceError = 55,  //NOT NEED(用于旧设备的Omaha校验)
  kVerityCalculationError = 56,  //校验计算错误(在FilesystemVerifier步骤中进行分区校验时)

下载地址

蓝奏云下载:https://yowal.lanzoub.com/b028mu4ah

Github

https://github.com/King-Maple/V-ABHelper

最后修改:2024 年 10 月 23 日
如果觉得我的文章对你有用,请随意赞赏