
Android P升级
文章平均质量分 74
Give.Me.Five
这个作者很懒,什么都没留下…
展开
-
Android P update_engine分析(七)--升级核心DeltaPerformer的分析
前面几篇分析了update_engine的启动,update_engine_client的使用,boot_control的AB切换,以及update_engine的4个Action,但始终没有看到核心的部分,如何将payload.bin如何下载到目标分区的。之前一直以为是在PostinstallRunnerAction的做的,后面发现错了,升级包里根本没有Postinstall脚本。重新分析之后发现,核心的升级操作都在DownloadAction 里做的,从而牵扯出一个核心的升级类DeltaPerforme原创 2021-08-14 09:50:04 · 2051 阅读 · 2 评论 -
Android P update_engine分析(六)-- PostinstallRunnerAction的工作
上篇已经分析过了InstallPlanAction、DownloadAction、FileSystemVerityAction 三个Action的工作内容,还有一个PostinstallRunnerAction的在这篇中继续分析,每个Action都是从PerformAction开始的:void PostinstallRunnerAction::PerformAction() { CHECK(HasInputObject()); install_plan_ = GetInputObject();原创 2021-08-08 18:09:05 · 1197 阅读 · 1 评论 -
Android P update_engine分析(四) --update_engine_client的工作
当AB系统升级时,有两种方式来调用updateengine,来实现升级,一种方法是直接执行shell命令,调用 update_engine_client,带参数来实现升级,另一种方式是应用层直接调用UpdateEngine的applyPayload方法来升级。update_engine_client 带参升级shell命令调用update_engine_client带参数去升级,具体如下:update_engine_client --payload=file:///sdcard/payload.bin原创 2021-06-13 11:59:16 · 6107 阅读 · 6 评论 -
Android P update_engine分析(三) --boot_control的操作
上篇update-原创 2021-06-05 17:35:45 · 3288 阅读 · 3 评论 -
Android P update_engine分析(二) -- update_engine_daemon的启动
上篇我们在update_engine启动时,分析了update_engine日志logging的启动和log文件的操作。这篇我们继续来研究update_engine_daemon的启动过程。因为updateEngineDaemon是继承brillo::Daemon的。从Daemon.Run()可以看到会调用onInit()函数。int UpdateEngineDaemon::OnInit() { subprocess_.Init(this); //父类初始化 int exit_code = D原创 2021-05-23 18:21:15 · 1349 阅读 · 1 评论