前言
这款APP最初是为了方便我的魅族20Pro使用的,慢慢的也改了很多BUG,更新了很多,也完善了很多,最近花时间重新写了一下APP,自己也了解了许多关于OTA
相关的东西。特别是基本上把update_engine
源码看了一遍,更为了解Android OTA升级
过程。
软件特色
- 理论支持所有
V-A/B
机型使用 - 在魅族20系列上判断当前解锁方案是否为
完成解锁
,如果不是,将转换为完整解锁
用来解决非法解锁
问题 - 更新后由用户选择保留
Root
的方案(支持Magisk
,KernelSU
,APatch
) - 当选择的
Rom
为增量包时,提供还原镜像操作(支持Magisk
,KernelSU
,APatch
)
注意事项
- 因为Android对后台服务的限制,请在更新时尽量保持软件前台
- 如果出现卡进度的情况,可以结束应用后台,重新选择ROM包刷入,刷入的进度不会重置
- 在刷入时请确保ROM包是完整的
- 在保留Root时,不支持互转环境(例如:当前为KernelSU,保留时选择APatch)
- 如果给了Root权限后,依旧提示无权限,请结束app后重新打开即可
- 增量包更新的出现错误码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
51 条评论
请问OriginOS5怎么保root升级小版本
一样的,全量包直接刷
请问错误代码60是什么问题,需要怎么解决
附议
一直卡在准备更新这
应该是包不完整,重新下一下包
覆盖了全量包依然提示错误20是什么原因?
可能是包不完整,你校验下哈希值
反正小米也能拿来更新系统
蓝厂已root手机可以用吗
可以哒
强解BL的也直接刷就行吗,不用关模块那些吗?
想问一下大佬我现在是最新系统,我去官网再下载一个最新系统的安装包更新会怎样,或者更新完跟之前有什么区别
就是平刷系统一样,没啥区别,
安卓跨版本也可以吗
可以的。但是跨版本最好清数据,毕竟更新了底层
请问这个是全机型通用的吗
请问V-AB更新后,系统进了Recovery,必须要清除数据才能打开,是哪里操作问题吗,魅族的系统
版本数据结构有变化,这种情况下是需要清数据的,(大概是版本相差大)
请问V-AB更新后,系统进了Recovery,必须要清除数据才能打开,是哪里操作问题吗,魅族的系统
理论上是的
打赏二维码图片被图床删了
V-AB要是能做成xposed模块hook系统更新实现安装ota包保留root就更酷了
有想过这个方式,但是这样,我觉得麻烦,一样要给系统更新root权限才可以
大佬 报错 51 是什么原因呢
时间戳错误,应该是你要降级
怎么解决
之前还可以降级呢
魅族21,解bl了,magisk,更新时提示错误代号7,求大佬解惑
错误代号7是很迷的,我都不止是啥
我也遇到错误代码7,就魅族官方自带的解root,我本来解过bl锁了,但手贱试了一下魅族设置里自带的官方root,然后再这个助手更新会失败,magisk本身也会出问题
俺也一样
更新包删完重新下载试试
试过了,没有用
2.25可以获得root权限,但3.0.3就没有root提示,咋解决?
魅族20c,已解锁。
2.25可以更新,但更新后提示清除数据。
现10.5.5.1想升级11,用的全量包。
这种情况下还是需要清除数据的,
魅族20无界版,更新助手3.0.3,授权root会黑屏,然后提示获取失败,有办法解决吗?
希望小米14 Pro也能无损使用该APP,感谢分享
可以的,能用的
跪求大佬适配Apatch的保留root更新
这个我还没用过呢,首先我还得了解下,怎么去判断当前root是apatch方式的,过几天有时间可以研究下。
魅族20在9.10内测升级到9.18内测时提示错误代码51,重启无解,root方式为apatch
我哭死 还有歌
目前apatch有保root更新的sh,不知道这个对您是否有帮助,您好像已经换手机了,如果您愿意适配我可以提供来测试!
已适配
大佬会适配apatch next吗
魅族18x降级后无法开机
降级需要清数据才行
求一个解锁的方法
魅族只能花钱解锁了....
好嘛