我正在尝试写我自己的基于https://android.googlesource.com/platform/bootable/recovery/+/master/updater_sample的AB流更新,经过许多天的开发和分解,看起来很好。
但是我在使用https协议(默认情况下是必需的)方面有很大的问题。当我尝试从applyUpdate( context,UpdateConfig config)调用方法UpdateManager时,立即得到错误9 (DOWNLOAD_TRANSFER_ERROR)。
这很有趣,因为所有其他元数据都是毫无问题地下载的。看起来问题只是payload.bin的下载。当我试图将协议从https更改为http时(当然,通过在清单中启用并更改json文件中的链接),就不会出现问题。
因此,问题是:
是安卓系统的窃听器吗?你有同样的问题吗(我一年前发现了另一个问题,但没有反应)。对https,webserver有什么特别的要求吗?
是的,我可以离开http协议启用,但我害怕新的步骤从谷歌,他们可以禁止这个选项。
谢谢D
发布于 2022-10-03 09:30:46
我也面临着一个类似的问题,流式AB更新失败了,错误9 (DOWNLOAD_TRANSFER_ERROR),但在安卓10。
这是我设备上的日志
1003/030413.677875:ERROR:libcurl_http_fetcher.cc(436) E/update_engine:
无法获得http响应代码。
I/update_engine: 1003/030413.678370:INFO:libcurl_http_fetcher.cc(467)传输导致错误(0),下载46484字节
I/update_engine: 1003/030413.678435:INFO:libcurl_http_fetcher.cc(481)没有进一步的代理,指示传输已完成
I/update_engine: 1003/030413.678483:INFO:multi_range_http_fetcher.cc(172)接收到的传输完成。
I/update_engine: 1003/030413.678528:INFO:multi_range_http_fetcher.cc(129) TransferEnded w/ code 0
I/update_engine: 1003/030413.678572:INFO:multi_range_http_fetcher.cc(144)没有获得足够的字节。结束失败。
I/update_engine: 1003/030413.678675:INFO:action_processor.cc(116) ActionProcessor:已完成的代码错误代码DownloadAction::kDownloadTransferError
I/update_engine: 1003/030413.678723:INFO:action_processor.cc(121) ActionProcessor:由于失败而中止处理。
I/update_engine:已完成1003/030413.678785:INFO:update_attempter_android.cc(454)处理。
I/update_engine:从设备映射器销毁[] 1003/030413.678834:INFO:dynamic_partition_control_android.cc(151)
D/OTAManager: onStatusUpdate调用,status=0,progress=0.00
D/OTAService:调用onProgressUpdate()
D/OTAService: OTA进展情况:0
I/OTAService: onEngineStatusUpdate -status=空闲/0
D/OTAService:向客户端发送响应:- Msg:6数据:0状态:空闲D/OTAManager: onPayloadApplicationComplete调用,errorCode=9
D/OTAManager: setUpdaterState调用的newState=1
D/OTAService: onUpdaterStateChange state=ERROR/1
I/OTAService: onEnginePayloadApplicationComplete - errorCode=OS更新由于获取有效载荷/9错误而失败
"libcurl_http_fetcher.cc:无法得到HTTP响应“=> --这是罪魁祸首。
为了了解发生这种情况的原因,我运行了以下命令:
亚行壳
卷曲-i https://myurl
对此反应是
curl:(60) SSL证书问题:证书过期了
curl未能验证服务器的合法性,因此无法建立到服务器的安全连接。要了解更多关于这种情况和如何解决的问题,请访问上面提到的网页。
我想我需要更新服务器上的SSL证书。但是,您的问题可能不是完全相同的。但是从亚行shell运行"curl“命令可能会给您一个提示。
希望这能有所帮助。
https://stackoverflow.com/questions/71610724
复制相似问题