7f4bc3f009c711b5bd1bd145f7f53cd837ed6414 |
|
11-Jan-2017 |
Ben Chan <benchan@chromium.org> |
update_engine: resume suspended PostInstall action to handle termination PostinstallRunnerActionTest.RunAsRootCancelPostinstallActionTest exposes an issue when PostinstallRunnerAction tries to terminate an action that has been suspended. PostinstallRunnerAction::TerminateProcessing() uses Subprocess::KillExec() to terminate the action by sending SIGTERM to the child process associated with the action. However, if the action has been suspended by PostinstallRunnerAction::SuspendAction(), the child process won't receive the SIGTERM until it's resumed. This CL changes PostinstallRunnerAction::TerminateProcessing() to resume the child process after issuing SIGTERM. BUG=chromium:678643 TEST=Verified that no orphaned 'sleep' process is left after running PostinstallRunnerActionTest.RunAsRootCancelPostinstallActionTest. Reviewed-on: https://chromium-review.googlesource.com/426878 Commit-Ready: Ben Chan <benchan@chromium.org> Tested-by: Ben Chan <benchan@chromium.org> Reviewed-by: Luigi Semenzato <semenzato@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> (cherry picked from commit f13a40924e0b1d71df07738078cebc933dd90a7e) Change-Id: I631da8bb5bf29141623f3eef3fc7c438cbccc98a
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
fb905d9b8d49f8fe41297c7aba2dd0942f1be311 |
|
04-Jun-2016 |
Alex Deymo <deymo@google.com> |
Implement powerwash on Android. Powerwash, the name for the equivalent of a factory reset or /data wipe, can be triggered in Android by writing the desired command to the recovery command file and rebooting into recovery. This patch moves the powerwash scheduling/canceling logic to the HardwareInterface and implements it on Android. Bug: 28700985 TEST=Called update_engine_client passing POWERWASH=1, BCB is stored up to offset 832. Change-Id: If737fd4b9b3e2ed9bce709b3b59f22e9f0a3dc9a
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
0d29854cf5bb05a22cf161b50052539aa420a36e |
|
31-Mar-2016 |
Alex Deymo <deymo@google.com> |
Parse postinstall program progress updates. In Android postinstall is expected to take a long time in common cases. This patch allows the postinstall program to report back to the updater a progress indication, which will then be forwarded to all the clients listening. These progress updates are part of the FINALIZING status. Bug: 27880754 TEST=Added unittests. Deployed an update to an edison-eng and post-install reported progress back with the postinstall_example. Change-Id: I35f96b92f090219c54cca48d8ab07c54cf8b4ab1
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
d15c546ed794293d0a63770467a0f3c4c84c6214 |
|
10-Mar-2016 |
Alex Deymo <deymo@google.com> |
Implement susped, resume and cancel for the Postinstall action. This patch sends SIGSTOP/SIGCONT to the running postinstall program to suspend/resume the child process, and SIGKILL when cancelling it. Bug: 27272144 TEST=Added unittest to check the signal being sent. Change-Id: Iebe9bd34448ad1d0a5340c82e1fd839ff8c69dd2
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
cbc2274c4160805bf726df872390112654816ca7 |
|
05-Mar-2016 |
Alex Deymo <deymo@google.com> |
Rework postinstall unittests to pass on Android. Postinstall unittests were creating and mounting an image on each test run. This patch adds several test scripts to one of the pre-generated images and uses that image during postinstall testing instead. To workaround problems with mount/umount of loop devices on Android, this patch rewrites the `losetup` logic to make the appropriate syscalls and create the loop device with mknod if it doesn't exists. The tests require some extra SELinux policies to run in enforcing mode. Bug: 26955860 TEST=Ran all Postinstall unittests. Change-Id: I47a56b80b97596bc65ffe30cbc8118f05faff0ae
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
390efedcb7e17587da765b6d682077cb7fa46ee1 |
|
18-Feb-2016 |
Alex Deymo <deymo@google.com> |
Parse postinstall parameters from the payload metadata. Payload v2 includes a description of the post-install command it should run, while in payload v1 we use the default values. This patch mounts the partition on the new top-level directory called /postinstall that should already be created. Bug: 27177071 TEST=FEATURES=test emerge-link update_engine Change-Id: Iaedf3b01e5e1ad57c68bd316b4b6e79cbab35bb6
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
b15a0b8eaf18c9e9341706df9f4ab59ce595a67c |
|
26-Nov-2015 |
Alex Deymo <deymo@google.com> |
Remove SystemState from post-install step. The post-install action only requires to mark the new slot as ready, for which it was including a reference to the whole SystemState. This patch removes said dependency replacing it for just the BootControlInterface. Bug: 25773375 TEST=FEATURES=test emerge-link update_engine; mma Change-Id: I814d47c138c7565e9a80f316f25e124adb0d9c4e
/system/update_engine/payload_consumer/postinstall_runner_action.h
|
39910dcd1d68987ccee7c3031dc269233a8490bb |
|
10-Nov-2015 |
Alex Deymo <deymo@google.com> |
Split payload application code into a subdirectory. This patch splits from the main libupdate_engine code the part that is strictly used to download and apply a payload into a new static library, moving the code to subdirectories. The new library is divided in two subdirectories: common/ and payload_consumer/, and should not depend on other update_engine files outside those two subdirectories. The main difference between those two is that the common/ tools are more generic and not tied to the payload consumer process, but otherwise they are both compiled together. There are still dependencies from the new libpayload_consumer library into the main directory files and DBus generated files. Those will be addressed in follow up CLs. Bug: 25197634 Test: FEATURES=test emerge-link update_engine; `mm` on Brillo. Change-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23
/system/update_engine/payload_consumer/postinstall_runner_action.h
|