Rewrite comment as requested.

There was a poorly worded comment related to bsdiff blacklisting that caused
confusion. Rewording it to be clearer (I hope).

BUG=None
TEST=Built, visual inspection that it's a comment change only.

Change-Id: Ib69c3ab168ffbba79ee430e5baa0dc4eca1e90b2
Reviewed-on: https://gerrit.chromium.org/gerrit/45165
Reviewed-by: David Dorwin <ddorwin@chromium.org>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Enhanced channel changing behavior

This CL adds a new DBUS API to UpdateEngine called SetTargetChannel to
change the current channel of the device with an option to indicate
whether to do eventually or immediately.

The API will be called with the option to do it immediately in a
subsequent CL in Chrome UI. For now the old API (set_track) has been
wired up to call the new API to produce the old behavior (i.e. change
eventually). The old API will be removed after Chrome UI code stops
using it.

It's the UI's responsibility to ask the user for confirmation for the
powerwash that may happen in some cases and call the API with the
appropriate value whether or not the powerwash should happen.

For now, we're restricting the changing of channels to only those
devices that are on canary-channel or running test builds. This
restriction will be lifted off once the UI work is ready to give
warning to the users about the powerwash that may happen when they move
to a more stable channel.

We also enforce ReleaseChannelDelegated and ReleaseChannel policies
correctly now as follows:

* If ReleaseChannelDelegated is false, SetTargetChannel will fail as we
need to honor (only) the ReleaseChannel value in this case.
* If ReleaseChannelDelegated is true, we'll allow the SetTargetChannel
call to specify. In this case, we'll ignore the value of ReleaseChannel,
if any.

BUG=chromium-os:39095
TEST=Tested on ZGB by going from canary to dev-channel with and without
powerwash.
TEST=Existing unit tests have been updated and they pass.
TEST=New unit tests have been added.

Change-Id: Ifbf806a06e1c30d2f318e94d73735d1812049abd
Reviewed-on: https://gerrit.chromium.org/gerrit/44619
Commit-Queue: Jay Srinivasan <jaysri@chromium.org>
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
Fix update_disabled flag to be set to false when there's no policy.

My previous check-in introduced an uninitialized variable which
may cause some random AU failures because of the update_disbled
flag being initialized to true based on the contents of the stack.

This CL fixes it by always setting it to false.

BUG=chromium:222161
TEST=Unit Tests Pass, work as expected on my ZGB.

Change-Id: I80fce1db566f6cea0ea80370c4a90dc538215316
Reviewed-on: https://gerrit.chromium.org/gerrit/45941
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
AU: uprev the default BASE_VER value for local builds

We seem to be baking a default value in SConstruct, which became
outdated, hence this fix.

BUG=None
TEST=./build now works

Change-Id: I72de470de920582883f92f0fd8f4a195041456f3
Reviewed-on: https://gerrit.chromium.org/gerrit/45996
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Jay Srinivasan <jaysri@chromium.org>
AU: improve/clarify signature padding

Reformatted and added comments that make it clear what exactly this
padding stands for.

BUG=None
TEST=Builds, unit tests

Change-Id: I7b0b57f6791c4706ede1fd957214236c7921f50e
Reviewed-on: https://gerrit.chromium.org/gerrit/45993
Commit-Queue: Gilad Arnold <garnold@chromium.org>
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
fix(UpdateEngine): use coreos user not chronos
feat(main): introduce no_connection_manager flag

Create a NoopConnectionManager that always says we are connected to
Ethernet and use it to implement a flag that makes update_engine work
without a connection manager running.

This is useful on systems without a connection manager.