update_engine: support update DLC modules |
||||
Issue descriptionupdate_engine supports installing DLC modules by AttemptInstall API. The disruption to Android side is contained since DLC code path is triggered by a Chrome OS API. And Android has the ability to support DLC relatively simply by adding their own API to trigger the shared DLC code path. However, such a methodology is no longer clearly valid for DLC modules update: 1) update_engine needs to depend on dlcservice which is not present for Android. 2) This changes the platform update flow (modifies existing code path) which has a bigger disruption to platform update. A proposed solution: a) Adding a common interface (DlcServiceInterface, names TBD) along with platform-dependent (DlcServiceAndroid and DlcServiceChromeOS) implementations. b) OmahaRequestAction calls DlcServiceInterface to get a list of DLC modules installed. Failure of this API call should not block the platform update flow. And Android side is expected to fail. This should address both 1) and 2). Later Android side can relatively easily support DLC module update by implementing their own DlcServiceAndroid. Can you please take a look and see if this makes sense?
,
Oct 31
Cool if #ifdef is the way to go. The change could be as simple as this:
bool UpdateAttempter::CheckForUpdate(const string& app_version,
const string& omaha_url,
UpdateAttemptFlags flags) {
dlc_ids_.clear();
...
-->
bool UpdateAttempter::CheckForUpdate(const string& app_version,
const string& omaha_url,
UpdateAttemptFlags flags) {
#ifdef __ANDROID__
// call dlcservice to get a list of DLC modules.
...
#endif // __ANDROID__
...
,
Oct 31
,
Nov 7
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/171c438f797b8482a31dad17364e79e1eb6b5497 commit 171c438f797b8482a31dad17364e79e1eb6b5497 Author: Xiaochu Liu <xiaochu@chromium.org> Date: Wed Nov 07 14:34:12 2018 dlcservice-client: add a 9999 ebuild file The ebuild file is to build the D-Bus client library for DlcService. The library is used by UpdateEngine for now. BUG= chromium:898711 TEST=emerge-kefka dlcservice-client CQ-DEPEND=CL:1318196 Change-Id: I00940578282620ab1ba5efbef032342299c88ad5 Reviewed-on: https://chromium-review.googlesource.com/1318685 Commit-Ready: Xiaochu Liu <xiaochu@chromium.org> Tested-by: Xiaochu Liu <xiaochu@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [add] https://crrev.com/171c438f797b8482a31dad17364e79e1eb6b5497/chromeos-base/dlcservice-client/dlcservice-client-9999.ebuild
,
Nov 7
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/632a51afe63fdbe590ac0d33b93394bc76b056d1 commit 632a51afe63fdbe590ac0d33b93394bc76b056d1 Author: Xiaochu Liu <xiaochu@chromium.org> Date: Wed Nov 07 14:34:12 2018 dlcservice: add dlcservice D-Bus client library Add build-related files. The client library will be used by update_engine etc. to make D-Bus calls directly to dlcservice. BUG= chromium:898711 TEST=emerge-kefka dlcservice-client Change-Id: I0f2041e6e5d35bb8545b853159514371af14f3e4 Reviewed-on: https://chromium-review.googlesource.com/1318196 Commit-Ready: Xiaochu Liu <xiaochu@chromium.org> Tested-by: Xiaochu Liu <xiaochu@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Xiaochu Liu <xiaochu@chromium.org> [modify] https://crrev.com/632a51afe63fdbe590ac0d33b93394bc76b056d1/dlcservice/README.md [add] https://crrev.com/632a51afe63fdbe590ac0d33b93394bc76b056d1/dlcservice/client/BUILD.gn [add] https://crrev.com/632a51afe63fdbe590ac0d33b93394bc76b056d1/dlcservice/client/libdlcservice-client-test.pc.in [add] https://crrev.com/632a51afe63fdbe590ac0d33b93394bc76b056d1/dlcservice/client/libdlcservice-client.pc.in
,
Nov 7
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/f6be7e32b6d2bbd2631619d8de56841be9806320 commit f6be7e32b6d2bbd2631619d8de56841be9806320 Author: Xiaochu Liu <xiaochu@chromium.org> Date: Wed Nov 07 19:40:46 2018 common-mk: add dlc USE flag in common.gypi update_engine ebuild uses 'dlc' USE flag to selectively import libraries and compile source code that are DLC update specific. We do this since we want to avoid activate DLC code path when platform is doing an update. BUG= chromium:898711 TEST=USE="dlc" emerge-kefka update_engine CQ-DEPEND=CL:1318685 Change-Id: I7bb62a0e7f42f04fcbbcd112a48fdb77fb7bc5aa Reviewed-on: https://chromium-review.googlesource.com/1320550 Commit-Ready: Xiaochu Liu <xiaochu@chromium.org> Tested-by: Xiaochu Liu <xiaochu@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/f6be7e32b6d2bbd2631619d8de56841be9806320/common-mk/common.gypi
,
Nov 7
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/38fcd55e18303132bc1657471d27f900381144e3 commit 38fcd55e18303132bc1657471d27f900381144e3 Author: Xiaochu Liu <xiaochu@chromium.org> Date: Wed Nov 07 19:40:46 2018 update_engine: selectively depends dlcservice-client We depends on dlcservice-client only when USE="dlc" is used to compile update_engine. BUG= chromium:898711 TEST=USE="dlc" emerge-kefka update_engine CQ-DEPEND=CL:1320550 Change-Id: I2959bf07513da0620cd234791e979aaa031fc3ea Reviewed-on: https://chromium-review.googlesource.com/1320513 Commit-Ready: Xiaochu Liu <xiaochu@chromium.org> Tested-by: Xiaochu Liu <xiaochu@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/38fcd55e18303132bc1657471d27f900381144e3/chromeos-base/update_engine/update_engine-9999.ebuild
,
Nov 14
,
Nov 26
|
||||
►
Sign in to add a comment |
||||
Comment 1 by ahass...@chromium.org
, Oct 25