Commit Graph

207 Commits

Author SHA1 Message Date
Tianjie Xu 8a43084979 resolve merge conflicts of 3aabd77 to nyc-mr1-dev-plus-aosp
am: 549745cc87

* commit '549745cc8778f806e46809e472fbcf3c7f066b83':
  Allow recovery to return error codes

Change-Id: I474bc0afb4e92ffafec9de60e1665e3aa3c2cf10
2016-05-23 21:28:44 +00:00
Tianjie Xu 549745cc87 resolve merge conflicts of 3aabd77 to nyc-mr1-dev-plus-aosp
Change-Id: I834aba65cb29102055ff9e70969973a7870d0e60
2016-05-23 12:30:42 -07:00
Tianjie Xu 162558382b Allow recovery to return error codes
Write error code, cause code, and retry count into last_install. So we
can have more information about the reason of a failed OTA.

Example of new last_install:
@/cache/recovery/block.map     package name
0                              install result
retry: 1                       retry count (new)
error: 30                      error code (new)
cause: 12                      error cause (new)

Details in:
go/android-ota-errorcode

Bug: 28471955
Change-Id: I00e7153c821e7355c1be81a86c7f228108f3dc37
2016-05-20 13:56:53 -07:00
Tianjie Xu 0f85209b2e Add time and I/O info to last_install am: dd874b1c87 am: 027b403e8a
am: fb5d7f6172

* commit 'fb5d7f6172f88a9e26ef554ef56717798f83522d':
  Add time and I/O info to last_install

Change-Id: I3e80f862aff97a2fbbd2324cbbc5d16aede196f3
2016-05-18 18:54:59 +00:00
Tianjie Xu fb5d7f6172 Add time and I/O info to last_install am: dd874b1c87
am: 027b403e8a

* commit '027b403e8aa90ddc533e39e623df09fc319bb6ee':
  Add time and I/O info to last_install

Change-Id: I04c368dd551946427f683df906eb42e0f2f740e9
2016-05-18 18:47:31 +00:00
Tianjie Xu dd874b1c87 Add time and I/O info to last_install
One example of last_install is:

/sideload/package.zip
1
time_total: 101
bytes_written_system: 14574000
bytes_stashed_system: 100
bytes_written_vendor: 5107400
bytes_stashed_vendor: 0

Bug: 28658632
Change-Id: I4bf79ea71a609068d38fbce6b41bcb892524aa7a
2016-05-16 14:54:37 -07:00
Tao Bao d654c35ab2 Merge "updater, minzip: Remove unnecessary O_SYNC flags." am: c7d7eb2225 am: d03ee52eb7 am: eef053fda1
am: aec86d3692

* commit 'aec86d3692a9271db027e4478178c02451c558cc':
  updater, minzip: Remove unnecessary O_SYNC flags.

Change-Id: I21018c49066f9bb69d21f358f1b684da5bd53add
2016-05-08 18:12:51 +00:00
Alistair Strachan 733285fea2 updater, minzip: Remove unnecessary O_SYNC flags.
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
2016-05-05 16:04:58 -07:00
Chih-hung Hsieh f81339203a Merge "Fix google-explicit-constructor warnings." am: fafa6a6531 am: 77d7cb1d0a am: 8d3b85a320
am: ac7d8f278b

* commit 'ac7d8f278b65142ddd84bc15331e3daef5946059':
  Fix google-explicit-constructor warnings.

Change-Id: I333dd160ccee076431e5accc51d91646c5ead1ac
2016-04-29 22:38:20 +00:00
Chih-hung Hsieh fafa6a6531 Merge "Fix google-explicit-constructor warnings." 2016-04-29 22:26:41 +00:00
Chih-Hung Hsieh 49c5c79df1 Fix google-explicit-constructor warnings.
Bug: 28341362
Change-Id: I5b35ae16c069e7e9229e66963386f322bd808af1
2016-04-29 14:16:35 -07:00
Tao Bao d9237d27ea Merge "updater: Don\'t zero out CommandParameters with memset(3)." am: df59cee am: 4458d3e am: 6bfe76e
am: 187e7c7

* commit '187e7c7ab027af90409371fd08386e6d1c2eac3b':
  updater: Don't zero out CommandParameters with memset(3).

Change-Id: I0e894b103a5c1a43a24177707fc1190764c1ea45
2016-04-28 04:45:05 +00:00
Tao Bao 730646199b updater: Don't zero out CommandParameters with memset(3).
[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
2016-04-26 17:36:13 -07:00
Chih-hung Hsieh 7140a083c7 Merge "Fix google-runtime-int warnings." am: a1f4a1e am: bcad1d1 am: 0231e70
am: ed4c0c4

* commit 'ed4c0c4ca04943a79d2dc7ac2c095ed6ca20f749':
  Fix google-runtime-int warnings.

Change-Id: Ifbed57a32b75f1baf9d31126087a2d3eb2983d8b
2016-04-18 22:39:41 +00:00
Chih-Hung Hsieh 54a2747ef3 Fix google-runtime-int warnings.
Bug: 28220065
Change-Id: Ida199c66692a1638be6990d583d2ed42583fb592
2016-04-18 12:29:30 -07:00
Mattias Nissler ecd32c786c resolve merge conflicts of 2bf95ac to nyc-dev-plus-aosp
am: 6e2a8b1

* commit '6e2a8b11ecb0bdfd6f4a2f096519075663a2d1c2':
  Convert recovery to use BoringSSL instead of mincrypt.

Change-Id: Ief6b279d1e7fd00af4e8153ac29212343493b293
2016-04-13 01:49:17 +00:00
Mattias Nissler 452df6d99c Convert recovery to use BoringSSL instead of mincrypt.
This changes the verification code in bootable/recovery to use
BoringSSL instead of mincrypt.

Change-Id: I37b37d84b22e81c32ac180cd1240c02150ddf3a7
2016-04-06 15:54:17 +02:00
Elliott Hughes 844007b722 Merge "Move selinux dependencies out of header files." am: 8124750 am: dc91161
am: 5c23b80

* commit '5c23b801e5f29ca85dde4a58fde4a69faacd7c6c':
  Move selinux dependencies out of header files.

Change-Id: I191e0337501fc5520da1fa726911ffabd5d156c9
2016-04-02 16:12:29 +00:00
Elliott Hughes 4bbd5bf8a6 Move selinux dependencies out of header files.
Bug: http://b/27764900
Change-Id: Ib62a59edcb13054f40f514c404d32b87b14ed5f1
2016-04-01 18:24:39 -07:00
Elliott Hughes 54937d0b59 resolve merge conflicts of 5cf4701 to nyc-dev-plus-aosp
am: 20ab2db

* commit '20ab2db8f1e04f4f9b4c1dc0e9377f0586bfc10a':
  Switch to <android-base/unique_fd.h>.

Change-Id: I3ad1eae327ad83c82aa684e4a2846d4313fd4486
2016-03-29 18:29:55 +00:00
Elliott Hughes bcabd09293 Switch to <android-base/unique_fd.h>.
Change-Id: I13ba3f40bd52b5f3e3fe9002a45a9a8630040129
2016-03-29 08:18:34 -07:00
Tianjie Xu 7eca97e75d Skip stashing source blocks in verify mode
Currently block_image_verify() stashes source blocks to /cache and
in some case triggers I/O errors. To avoid this risk, We create
a map from the hash value to the source blocks' range_set. When
executing stash command in verify mode, source range is saved but block
contents aren't stashed. And load_stash could get its value from
either the stashed file from the previous update, or the contents on
the source partition specified by the saved range.

Bug: 27584487
Bug: 25633753
Change-Id: I775baf4bee55762b6e7b204f8294afc597afd996
(cherry picked from commit 0188935d55)
2016-03-25 14:56:21 -07:00
Tianjie Xu 8085b38c18 Merge "Skip stashing source blocks in verify mode" into nyc-dev am: adca297
am: 7781778

* commit '77817789e04337011d4a659114795d745c98bf7a':
  Skip stashing source blocks in verify mode
2016-03-24 00:40:01 +00:00
Tianjie Xu 77817789e0 Merge "Skip stashing source blocks in verify mode" into nyc-dev
am: adca297

* commit 'adca29794376e4936824b60aeaa53b285962ee05':
  Skip stashing source blocks in verify mode
2016-03-24 00:37:55 +00:00
Tianjie Xu 0188935d55 Skip stashing source blocks in verify mode
Currently block_image_verify() stashes source blocks to /cache and
in some case triggers I/O errors. To avoid this risk, We create
a map from the hash value to the source blocks' range_set. When
executing stash command in verify mode, source range is saved but block
contents aren't stashed. And load_stash could get its value from
either the stashed file from the previous update, or the contents on
the source partition specified by the saved range.

Bug: 27584487
Bug: 25633753
Change-Id: I775baf4bee55762b6e7b204f8294afc597afd996
2016-03-23 15:19:18 -07:00
Jed Estep 9d8a68099f Control fault injection with config files instead of build flags am: ff6df89
am: 6f78768

* commit '6f7876816b2322169432658235ebf7882ced0564':
  Control fault injection with config files instead of build flags
2016-03-21 21:40:15 +00:00
Jed Estep 6f7876816b Control fault injection with config files instead of build flags
am: ff6df89

* commit 'ff6df890a2a01bf3bf56d3f430b17a5ef69055cf':
  Control fault injection with config files instead of build flags
2016-03-21 21:37:33 +00:00
Jed Estep ff6df890a2 Control fault injection with config files instead of build flags
Bug: 27724259
Change-Id: I65bdefed10b3fb85fcb9e1147eaf0687d7d438f4
2016-03-18 17:58:25 -07:00
Tao Bao 156de0473e resolve merge conflicts of ce58688 to nyc-dev-plus-aosp
am: 6f44637

* commit '6f446373fdda9e084e7cce86c4694f365e75951b':
  Revert "DO NOT MERGE Control fault injection with config files instead of build flags"
2016-03-17 22:57:55 +00:00
Tao Bao 6f446373fd resolve merge conflicts of ce58688 to nyc-dev-plus-aosp
Change-Id: Ia9bfb989b6d13ee4f6a22216beb94065a9487484
2016-03-17 15:46:10 -07:00
Tao Bao ce5868862a Revert "DO NOT MERGE Control fault injection with config files instead of build flags"
This reverts commit f73abf36bc.

Bug: 27724259
Change-Id: I1301fdad15650837d0b1febd0c3239134e2b94fb
2016-03-17 22:29:23 +00:00
Jed Estep f73abf36bc DO NOT MERGE Control fault injection with config files instead of build flags
Bug: 26570379
Change-Id: I76109d09276d6e3ed3a32b6fedafb2582f545c0c
2016-03-16 12:36:57 -07:00
Yabin Cui 1c522df25f applypatch: use vector to store data in FileContents.
Cherry pick this patch because it fixes the problem that
a newed Value is released by free().

Bug: 26906416
Change-Id: Ib53b445cd415a1ed5e95733fbc4073f9ef4dbc43
(cherry picked from commit d6c93afcc2)
2016-03-11 11:11:11 -08:00
Tianjie Xu fa12b9737d Reboot and retry on I/O errors
When I/O error happens, reboot and retry installation two times
before we abort this OTA update.

Bug: 25633753
Change-Id: Iba6d4203a343a725aa625a41d237606980d62f69
(cherry picked from commit 3c62b67faf)
2016-03-10 11:50:28 -08:00
Tianjie Xu 6289e79532 Merge "Reboot and retry on I/O errors" am: 94dc34148c am: 90f01a4203
am: 9a83ca02a3

* commit '9a83ca02a32a21f00c7328269ab2c05940928452':
  Reboot and retry on I/O errors
2016-03-08 07:47:05 +00:00
Tianjie Xu 94dc34148c Merge "Reboot and retry on I/O errors" 2016-03-07 23:47:14 +00:00
Tao Bao 558a1942c5 Merge "Fix the improper use of LOCAL_WHOLE_STATIC_LIBRARIES." am: f639490a51 am: 038c294453
am: d29a16afc7

* commit 'd29a16afc7918ee921a995950f31dd1d6be6823f':
  Fix the improper use of LOCAL_WHOLE_STATIC_LIBRARIES.
2016-03-04 20:32:38 +00:00
Tao Bao d80a99883d Fix the improper use of LOCAL_WHOLE_STATIC_LIBRARIES.
If two libraries both use LOCAL_WHOLE_STATIC_LIBRARIES and include a same
library, there would be linking errors when generating a shared library
(or executable) that depends on the two libraries both.

Also clean up Android.mk files.

Remove the "LOCAL_MODULE_TAGS := eng" line for the updater module. The
module will then default to "optional" which won't be built until needed.

Change-Id: I3ec227109b8aa744b7568e7f82f575aae3fe0e6f
2016-03-03 14:52:44 -08:00
Tianjie Xu 3c62b67faf Reboot and retry on I/O errors
When I/O error happens, reboot and retry installation two times
before we abort this OTA update.

Bug: 25633753
Change-Id: Iba6d4203a343a725aa625a41d237606980d62f69
2016-03-02 17:31:05 -08:00
Jed Estep 30ed5b99f5 Merge "Control fault injection with config files instead of build flags" 2016-02-23 01:37:09 +00:00
Jed Estep 39c1b5e872 Control fault injection with config files instead of build flags
Bug: 26570379
Change-Id: I76109d09276d6e3ed3a32b6fedafb2582f545c0c
(cherry picked from commit d940887dde)
2016-02-22 17:31:12 -08:00
Jed Estep d940887dde Control fault injection with config files instead of build flags
Bug: 26570379
Change-Id: I76109d09276d6e3ed3a32b6fedafb2582f545c0c
2016-02-19 15:32:12 -08:00
Yabin Cui a029c9a458 Fix integer overflows in recovery procedure.
Bug: 26960931
Change-Id: Ieae45caccfb4728fcf514f0d920976585d8e6caf
2016-02-18 14:07:36 -08:00
Yabin Cui d6c93afcc2 applypatch: use vector to store data in FileContents.
Bug: 26906416
Change-Id: Ib53b445cd415a1ed5e95733fbc4073f9ef4dbc43
2016-02-11 18:10:31 -08:00
Jed Estep a7b9a4660c IO fault injection for OTA packages
Bug: 25951086
Change-Id: I31c74c735eb7a975b7f41fe2b2eff042e5699c0c
(cherry-picked from commit f1fc48c6e6)
2016-02-10 10:49:38 -08:00
Yabin Cui 6ab3c817ff Merge "updater: fix memory leak based on static analysis." am: e50d447692
am: 66b02c4ce5

* commit '66b02c4ce5b175451e723c463e6e9d19ab7872fa':
  updater: fix memory leak based on static analysis.
2016-02-05 17:25:49 +00:00
Yabin Cui 64be2135d8 updater: fix memory leak based on static analysis.
Bug: 26907377
Change-Id: I384c0131322b2d12f0ef489735e70e86819846a4
2016-02-04 14:49:06 -08:00
Tao Bao 50aa63f9bd resolve merge conflicts of 7b6027dde4 to master.
Change-Id: I1d5232f61744bb18ca5de3a16a340bc3afd110bb
2016-02-04 11:26:29 -08:00
Sen Jiang c48cb5e597 Switch from mincrypt to BoringSSL in applypatch and updater.
Bug: 18790686
Change-Id: I7d2136fb39b2266f5ae5be24819c617b08a6c21e
2016-02-04 16:27:43 +08:00
Jed Estep b1cc5d8434 Merge "IO fault injection for OTA packages" 2016-01-08 23:28:32 +00:00