我正在构建自己的AOSP,其中包括完整和增量的OTA更新。我的设备是一个运行7.1.1的谷歌像素。
我可以完美地构建Android图像并生成OTA 在AOSP中,我的步骤如下:
然后我会生成这样的OTA包:
$ ./build/tools/releasetools/ota_from_target_files dist_output/tardis-target_files.zip ota_update.zip
和
$ ./build/tools/releasetools/ota_from_target_files -i PREVIOUS-tardis-target_files.zip dist_output/tardis-target_files.zip incremental_ota_update.zip # make incremental from the older version
它适用于完整的OTA,但是对于差分OTA而言却失败了。我在应用OTA时使用的logcat如下:
04-05 08:13:07.156 2407 2421 D AMA.ou.Update:onStatusUpdate:status = 3,progression = 31.58676%
04-05 08:13:07.157 2407 2420 D AMA.ou.Update:onStatusUpdate:status = 3,progression = 32.635754%
04-05 08:13:07.166 2407 2407 D AMA.ou.UpdateView:将进度条更新为26%
04-05 08:13:07.166 2407 2407 D AMA.ou.UpdateView:将进度条更新为27%
04-05 08:13:07.166 2407 2407 D AMA.ou.UpdateView:将进度条更新为28%
04-05 08:13:07.167 2407 2407 D AMA.ou.UpdateView:将进度条更新为29%
04-05 08:13:07.167 2407 2407 D AMA.ou.UpdateView:将进度条更新为30%
04-05 08:13:07.167 2407 2407 D AMA.ou.UpdateView:将进度条更新为31%
04-05 08:13:07.168 2407 2407 D AMA.ou.UpdateView:将进度条更新为32%
04-05 08:13:08.783 643 643 I update_engine:[0405/081308:INFO:delta_performer.cc(359)]应用8991操作来分区“system”
04-05 08:13:08.800 643 643 E update_engine:[0405/081308:错误:delta_performer.cc(1060)]
此操作的磁盘上源数据的哈希值与预期值不匹配。这可能意味着增量更新有效负载是针对另一个版本的,或者源分区在安装后进行了修改,例如,通过挂载文件系统。
04-05 08:13:08.800 643 643 E update_engine:[0405/081308:错误:delta_performer.cc(1065)]预期:sha256 | hex = 8F508C72E6E95A3D98EA0B5F3A5D29BADE2224A09930FF479B1B4FE2D7AAAEDA
04-05 08:13:08.800 643 643 E update_engine:[0405/081308:错误:delta_performer.cc(1068)]计算:sha256 | hex = 6BAA0BB1F6E02DBE752235E0BC7F5DA075340781B78E88BC61214C0DE353E5A6
04-05 08:13:08.800 643 643 E update_engine:[0405/081308:错误:delta_performer.cc(1077)]块中的操作源(偏移量:大小):129:16
8月4日至五日:13:08.800 643 643èupdate_engine:[0405/081308:错误:delta_performer.cc(1142)]。ValidateSourceHash(source_hasher.raw_hash(),操作中,错误)失败
8月4日至五日:13:08.800 643 643èupdate_engine:[0405/081308:错误:delta_performer.cc(283)]无法执行SOURCE_COPY操作13,这是在分区中的操作2 “系统”
04-05 08:13:08.800 643 643 E update_engine:[0405/081308:错误:download_action.cc(273)]处理接收到的有效负载时DeltaPerformer的Write方法出错20 - 终止处理
04-05 08:13:08.806 1033 1721 D DnsEventListenerService:记录100个netId 100的结果
04-05 08:13:08.809 643 643 I update_engine:[0405/081308:INFO:multi_range_http_fetcher.cc(171)]收到转移终止。
04-05 08:13:08.809 643 643 I update_engine:[0405/081308:INFO:multi_range_http_fetcher.cc(123)] TransferEnded w / code 200
04-05 08:13:08.809 643 643 I update_engine:[0405/081308:INFO:multi_range_http_fetcher.cc(125)]终止。
8月4日至5日:13:08.809 643 643我update_engine:[0405/081308:INFO:action_processor.cc(116)] ActionProcessor:成品DOWNLOADACTION与代码错误码:: kDownloadStateInitializationError
04-05 08:13:08.809 643 643 I update_engine:[0405/081308:INFO:action_processor.cc(121)] ActionProcessor:由于失败而中止处理。
04-05 08:13:08.809 643 643 I update_engine:[0405/081308:INFO:update_attempter_android.cc(282)]处理完成。
04-05 08:13:08.810 643 643 I update_engine:[0405/081308:INFO:update_attempter_android.cc(302)]重置更新进度。
04-05 08:13:08.811 2407 2407 D AMA.ou.UpdateView:将进度条更新为0%
04-05 08:13:08.811 2407 2420 D AMA.ou.Update:onStatusUpdate:status = 0,progression = 0.0%
04-05 08:13:08.814 2407 2420 D AMA.ou.Update:onPayloadApplicationComplete:20
04-05 08:13:12.348 1033 1033 W WindowManager:尝试删除不存在的令牌:android.os.Binder@ced7efb
有没有人知道可能是什么问题?