Remove O_SYNC from mzExtractRecursive() and PackageExtractFileFn().
These functions deal with extracting whole files from the update
package onto a filesystem. If run on ext4 on a rotating disk, for
example, the O_SYNC flag will cause serious performance problems
and the extraction proecss can take over 30 minutes, with no
obvious benefits.
This API function already calls fsync(fd) after each file is
extracted to ensure data and metadata is written to the underlying
block device, so the O_SYNC calls should be superfluous and safely
removable.
This change does not affect the OTA patch paths or any modification
of the bootloader partition or writes to other 'emmc' partitions.
Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com>
Change-Id: I9cbb98a98e6278bf5c0d7efaae340773d1fbfcd2
external/bsdiff uses divsufsort which is much faster, and also include
some bug fixes.
Bug: 26982501
Test: ./imgdiff_test.sh
Change-Id: I089a301c291ee55d79938c7a3ca6d509895440d1
An OTA may be skipped due to low battery. But we should always log it to
understand why an update _fails_ to apply.
Bug: 27893175
Change-Id: I50a3fbbb3e51035e0ac5f1cca150e283852825c3
(cherry picked from commit 5687001895)
am: 087c5edd8d
* commit '087c5edd8dc1e7d46a38ff2df220c29e96b17a1b':
Make text for recovery larger on angler
Change-Id: I3b56dff9acced0b355643042a0dffb28bd88d6d2
An OTA may be skipped due to low battery. But we should always log it to
understand why an update _fails_ to apply.
Bug: 27893175
Change-Id: I50a3fbbb3e51035e0ac5f1cca150e283852825c3
Add a new command "--security" to boot commands. If this command is
observed as part of BCB, choose a different background text picture
for installing stage in recovery UI. As a result, users will see
"installing security update" instead of "installing system update"
when applying a security update package.
Bug: 27837319
Change-Id: I2e2253a124993ecc24804fa1ee0b918ac96837c5
am: 4458d3e
* commit '4458d3e552736facb7b9cd832744d8d47325b4a3':
updater: Don't zero out CommandParameters with memset(3).
Change-Id: Icc996f7c038a1eb9f861108fffc55e552aa0c42c
am: df59cee
* commit 'df59ceecfb939c02593425a89757b54c50cc91cf':
updater: Don't zero out CommandParameters with memset(3).
Change-Id: I36d1395257da1d122e76f8552bb3a2a8f96f60b7
Pull in new translations and regenerate the background strings for
recovery UI.
Bug:27837319
Bug:26548285
Change-Id: I274938a5039421b947878da82336443e9647df24
* Use new animation.
* Use new non-holo progress bars.
* Use recommended spacing for recovery UI.
Bug: http://b/26548285
Change-Id: I8411e89d6a6a9ce638b8645e19e5082d0d968cee
[1] switched a few things to android::base::unique_fd including
CommandParameters.fd. However, we were using memset(3) to zero out the
struct, which effectively assigned unique_fd(0) to fd. When it called
fd.reset(), file descriptor 0 was unintentionally closed. When FD 0 was
later reassigned via open(2), it led to lseek(2) errors: "Bad file
descriptor".
This CL switches to using braced-init (i.e. '= {}') instead, so that the
default constructor unique_fd(-1) would be called.
[1]: commit bcabd09293
Bug: 28391985
Change-Id: If1f99932b15552714c399e65c8b80550344b758a
am: 34ca089
* commit '34ca0892f4ae440becbe8097e7b68cd5a6d494d3':
recovery: Dump the signature in the zip package.
Change-Id: I22eb6256f3204f2eac80e729cd0cd5b862b45863
am: 692941be79
* commit '692941be79fd765f8873d810ae627a917dfd791b':
Go back to the old ear-wiggling Android animation.
Change-Id: Ifddb21173e55f9c690dbc0661308575d885f4e76
But keep the new code so we can easily test new animations when we have them.
This change includes tbao's de-interlace script, plus a one-liner that's
necessary to play the animation at the correct speed when there's no
progress bar showing. (This was always a bug, it's just way more noticeable
when your animation only has 7 frames.)
Bug: http://b/28316654
Bug: http://b/26548285
Change-Id: I32c601c352d6be235d1b44f14fca7e125defd77d