Commit Graph

150 Commits

Author SHA1 Message Date
Johan Harvyl d38ddde181 Merge "Handle error from fopen_path in finish_recovery" am: 8a4333f3b9 am: a550ee0df7
am: b33a6f8342

Change-Id: I24871e2d2259cb3444082ae89e4a59979ad5e197
2016-08-09 20:04:17 +00:00
Johan Harvyl a550ee0df7 Merge "Handle error from fopen_path in finish_recovery"
am: 8a4333f3b9

Change-Id: I9225bcbe1ed82a63f70c7c6a984fd043ac77100b
2016-08-09 19:50:15 +00:00
Johan Harvyl 8569142147 Handle error from fopen_path in finish_recovery
The fopen_path will fail here e.g. if /cache is corrupt and could
not be mounted. Not properly handling an error code from
fopen_path() results in a boot loop into recovery as fwrite() on
a NULL FILE object will crash the recovery app.

Change-Id: I1ccff5a8cb620a32f32adfe97a3fae8e5e908f39
2016-08-08 08:28:30 +02:00
Chih-Hung Hsieh b32823b7e7 Merge \\\"Fix clang-tidy performance warnings.\\\" am: 2a3b695168 am: 977903da49
am: fc7cbe465f

Change-Id: I06aef6bf6f2865b2b33f90bf539118c39118b09c
2016-07-27 20:56:02 +00:00
Chih-Hung Hsieh 977903da49 Merge \"Fix clang-tidy performance warnings.\"
am: 2a3b695168

Change-Id: I55cadf517ec612f1b03de71ce7ca5cff69bc80d0
2016-07-27 20:49:34 +00:00
Chih-Hung Hsieh 23abfd37a5 Fix clang-tidy performance warnings.
* Use const reference parameter type to avoid unnecessary copy.
* Use more efficient overloaded string methods.

Bug: 30407689
Bug: 30411878
Change-Id: Iefab05c077367f272abf545036b853e8a295c8cd
Test: build with WITH_TIDY=1
2016-07-27 10:19:47 -07:00
Tianjie Xu 7831762308 Skip update-on-boot for bootreason in blacklist
am: 27b9fc8a36

Change-Id: Icb5c2cfb2430e767f81506b20912f52d74d719d5
2016-07-13 00:41:01 +00:00
Tianjie Xu 27b9fc8a36 Skip update-on-boot for bootreason in blacklist
Skip the OTA installation when bootreason is 'kernel_panic',
'Panic' etc.

Change-Id: Ic1202492bffefa1a9d8d0e691b5af979285e552c
Test: On angler, ota installation skips for one bootreason in the blacklist.
Bug: 29978689
2016-07-11 18:37:34 -07:00
Yabin Cui 9b15ba8269 resolve merge conflicts of 2f272c0 to nyc-mr1-dev-plus-aosp
Change-Id: I889d94a723415ad2e660b8c99e66935142918bc4
2016-06-30 15:13:12 -07:00
Yabin Cui 2f272c0551 Create bootloader_message static library.
bootloader_messages merges bootloader_message_writer
and bootloader.cpp, so we can use the same library to
manage bootloader_message in normal boot and recovery mode.

Bug: 29582118

Change-Id: I9efdf776ef8f02b53911ff43a518e035e0c29618
2016-06-30 11:02:38 -07:00
Tianjie Xu 3afc54c007 Increase EIO retry count am: c37c5c3410
am: 6074099cb9

Change-Id: I8ca63b936530c156cb465fc1f0791253996b5fe2
2016-06-24 00:29:10 +00:00
Tianjie Xu 6074099cb9 Increase EIO retry count
am: c37c5c3410

Change-Id: I163541137bf8c421276383855d36ab127d2ddf95
2016-06-24 00:26:51 +00:00
Tianjie Xu e5c6d47f52 Increase EIO retry count
am: c37c5c3410

Change-Id: Idfc957d24e6f5efe32cf68dc696355c456ffde34
2016-06-24 00:26:36 +00:00
Tianjie Xu c37c5c3410 Increase EIO retry count
Increase the number of attempts of an OTA update from 3 to 5 in case
an I/O error happened. This should increase the success rate of the
update.

Bug: 29619468
Change-Id: I88a067d9debd55a07be22ed981f395f6e47ec28f
2016-06-23 17:15:25 -07:00
Yabin Cui bf049bffe2 resolve merge conflicts of ed4c49c to nyc-mr1-dev-plus-aosp
Change-Id: I8788cc80473dc77bfa0cd2682f3acb6e17ac36df
2016-06-21 11:09:38 -07:00
Yabin Cui 6faf0265c9 Verify wipe package when wiping A/B device in recovery.
To increase the security of wiping A/B devices, let uncrypt write
wipe package in misc partition. Then recovery verifies the wipe
package before wiping the device.

Bug: 29159185

Change-Id: I186691bab1928d3dc036bc5542abd64a81bc2168
2016-06-20 18:18:02 -07:00
Tao Bao 0146b37256 Merge \"recovery: Track the name change for wipe_ab.\" into nyc-mr1-dev
am: dc1393d09b

Change-Id: I7ec8d93bb41d0bd7f921fbb97c5b8639798e3bec
2016-06-13 16:50:43 +00:00
Tao Bao 108ab21b21 recovery: Track the name change for wipe_ab.
Bug: 27253717
Change-Id: I6e63b2a80b7b2948c16e1b57dedc856d52456ac9
2016-06-10 10:13:32 -07:00
Tao Bao ba33da2884 resolve merge conflicts of fe8e356 to nyc-dev-plus-aosp
Change-Id: I18ecc333a76860405028b90b0baf2fba78d3942e
2016-06-03 14:57:34 -07:00
Tao Bao b083818612 recovery: Add support to brick a device.
When recovery starts with --brick, it tries to brick the device by
securely wiping all the partitions as listed in /etc/recovery.brick.

This is designed to support bricking lost devices.

Bug: 27253717
Change-Id: Ib0bd4f0a3bdaca4febc91fce6b682e3ec74354e2
(cherry picked from commit 862a4c1119)
2016-06-03 14:43:05 -07:00
Tao Bao 862a4c1119 recovery: Add support to brick a device.
When recovery starts with --brick, it tries to brick the device by
securely wiping all the partitions as listed in /etc/recovery.brick.

This is designed to support bricking lost devices.

Bug: 27253717
Change-Id: Ib0bd4f0a3bdaca4febc91fce6b682e3ec74354e2
2016-06-03 11:01:41 -07:00
Tianjie Xu 84478e8823 resolve merge conflicts of 50f6417 to nyc-dev-plus-aosp
Change-Id: I42c127f7946e678acf6596f6352f090abc0ca019
2016-05-23 12:24:28 -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
Tao Bao 37c45027bb recovery: Always log the update attempt.
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)
2016-05-02 21:27:43 -07:00
Tianjie Xu cacb47b2a3 resolve merge conflicts of 5823dd4 to nyc-dev-plus-aosp
Change-Id: I4ec33904a6af38d81b422c7be6f40b828fbc7525
2016-05-02 18:09:26 +00:00
Tianjie Xu 5823dd46df Merge "Add ability to show "installing security update"" into nyc-dev 2016-05-02 17:38:17 +00:00
Tao Bao e0c8a9bb02 recovery: Always log the update attempt.
am: 5687001895

* commit '568700189528c69a6cdd7a246127ce01463e033d':
  recovery: Always log the update attempt.

Change-Id: Ibf0d564c26bb5045fe24466a415dea13cd3a5a18
2016-05-02 16:32:41 +00:00
Tao Bao 5687001895 recovery: Always log the update attempt.
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
2016-04-29 15:41:25 -07:00
Tianjie Xu 35926c4b89 Add ability to show "installing security update"
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
2016-04-29 12:19:43 -07:00
Chih-hung Hsieh 0231e7016d Merge "Fix google-runtime-int warnings." am: a1f4a1e
am: bcad1d1

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

Change-Id: Ifad31026502e3375f4833899056662da540319b5
2016-04-18 22:34: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
Elliott Hughes 4846bc461c Merge "Update the system update animation." into nyc-dev
am: e8d0ecc

* commit 'e8d0ecccf7e54e73418cac94b0b136bfed94d51a':
  Update the system update animation.

Change-Id: I5d0ad44b13a505bca62a5316447603fab4d280aa
2016-04-15 20:00:26 +00:00
Elliott Hughes 498cda6ef6 Update the system update animation.
Switch to a Wear-like intro/loop system. We don't have an intro yet,
but hopefully this will let Wear delete more code when they move to N.
Unlike them, we don't hard-code the number of frames: we just look to
see what we have available. We do hard-code the fps though.

Also add a graphics test mode so you can see a demo of the UI components
without having to actually apply an OTA.

Also fix a bug where default locale is null rather than en-US: it's
more useful to show _some_ text if we don't have a locale (which should
only be during development anyway).

Bug: http://b/26548285
Change-Id: I63422e3fef3c41109f924d96fb5ded0b3ae7815d
2016-04-14 22:44:23 -07:00
Elliott Hughes 5c23b801e5 Merge "Move selinux dependencies out of header files." am: 8124750
am: dc91161

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

Change-Id: I439d352c9366dbed201a5592059b886968324633
2016-04-02 16:06:57 +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
Mark Salyzyn 9b9e5843d2 Merge "recovery: use __android_log_pmsg_file_write for log files" am: 75da771
am: 6f83130

* commit '6f83130d7acd85df89a80e691d3aa63bd2ceda39':
  recovery: use __android_log_pmsg_file_write for log files

Change-Id: Id2e7a76bae8eb061f6f57249dd912f25cd6332c6
2016-03-31 21:00:59 +00:00
Mark Salyzyn 13aca598f8 recovery: use __android_log_pmsg_file_write for log files
(cherry-pick from commit a4f701af93)

- Add call to __android_log_pmsg_file_write for recovery logging.
- Add call to refresh pmsg if we reboot back into recovery and then
  allow overwrite of those logs.
- Add a new one-time executable recovery-refresh that refreshes pmsg
  in post-fs phase of init. We rely on pmsg eventually scrolling off
  to age the content after recovery-persist has done its job.
- Add a new one-time executable recovery-persist that transfers from
  pmsg to /data/misc/recovery/ directory if /cache is not mounted
  in post-fs-data phase of init.
- Build and appropriately trigger the above two as required if
  BOARD_CACHEIMAGE_PARTITION_SIZE is undefined.
- Add some simple unit tests

NB: Test failure is expected on systems that do not deliver either
the recovery-persist or recovery-refresh executables, e.g. systems
with /cache. Tests also require a timely reboot sequence of test
to truly verify, tests provide guidance on stderr to direct.

Bug: 27176738
Change-Id: I17bb95980234984f6b2087fd5941b0a3126b706b
2016-03-31 13:52:54 -07:00
Mark Salyzyn a4f701af93 recovery: use __android_log_pmsg_file_write for log files
- Add call to __android_log_pmsg_file_write for recovery logging.
- Add call to refresh pmsg if we reboot back into recovery and then
  allow overwrite of those logs.
- Add a new one-time executable recovery-refresh that refreshes pmsg
  in post-fs phase of init. We rely on pmsg eventually scrolling off
  to age the content after recovery-persist has done its job.
- Add a new one-time executable recovery-persist that transfers from
  pmsg to /data/misc/recovery/ directory if /cache is not mounted
  in post-fs-data phase of init.
- Build and appropriately trigger the above two as required if
  BOARD_CACHEIMAGE_PARTITION_SIZE is undefined.
- Add some simple unit tests

NB: Test failure is expected on systems that do not deliver either
the recovery-persist or recovery-refresh executables, e.g. systems
with /cache. Tests also require a timely reboot sequence of test
to truly verify, tests provide guidance on stderr to direct.

Bug: 27176738
Change-Id: I17bb95980234984f6b2087fd5941b0a3126b706b
2016-03-28 11:07:00 -07:00
Tianjie Xu 180de7a58c Merge "Clean up intent_file related code in recovery.cpp"
am: 7e18ce2

* commit '7e18ce221fac387d5f08da2519879c1fc2046a4a':
  Clean up intent_file related code in recovery.cpp
2016-03-25 21:21:11 +00:00
Tianjie Xu c14d95da58 Clean up intent_file related code in recovery.cpp
No one in recovery or framework is utilizing intent file. Clean
up the code.

Bug:27725880
Change-Id: I78b37ff94261793e0d6a86a0fa6d27dcfe3f4783
2016-03-24 12:49:46 -07: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 9a83ca02a3 Merge "Reboot and retry on I/O errors" am: 94dc34148c
am: 90f01a4203

* commit '90f01a4203de453a2c6b940c39289b629ae3b654':
  Reboot and retry on I/O errors
2016-03-08 07:44:47 +00:00
Tianjie Xu 94dc34148c Merge "Reboot and retry on I/O errors" 2016-03-07 23:47:14 +00:00
Tao Bao c36b919525 Merge "recovery: Handle devices without /cache partition." am: 479d9dc2f2
am: f2726712ea

* commit 'f2726712ea1e02fdabf595ece1cfeab9a6147386':
  recovery: Handle devices without /cache partition.
2016-03-04 20:28:38 +00:00
Tao Bao ae6408d1a2 recovery: Handle devices without /cache partition.
Since we may not have /cache partition on A/B devices, let recovery
handle /cache related operations gracefully if /cache doesn't exist.

(1) Disable the wipe for /cache partition.

(2) Skip wiping /cache while wiping /data (i.e. factory reset).

(3) Disable logging-related features, until we figure out better
ways / places to store recovery logs (mainly for factory resets on A/B
devices).

Bug: 27176738
Change-Id: I7b14e53ce18960fe801ddfc15380dac6ceef1198
(cherry picked from commit 26112e5870)
2016-03-04 12:23:10 -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
Tao Bao 26112e5870 recovery: Handle devices without /cache partition.
Since we may not have /cache partition on A/B devices, let recovery
handle /cache related operations gracefully if /cache doesn't exist.

(1) Disable the wipe for /cache partition.

(2) Skip wiping /cache while wiping /data (i.e. factory reset).

(3) Disable logging-related features, until we figure out better
ways / places to store recovery logs (mainly for factory resets on A/B
devices).

Bug: 27176738
Change-Id: I7b14e53ce18960fe801ddfc15380dac6ceef1198
2016-03-02 15:33:32 -08:00
Paul Lawrence 661f8a69f2 Move recovery's convert_fbe folder to /tmp
The cache folder is no longer available at this time

Bug: 27355824
Change-Id: I74e33266c1ff407364981b186613f81319dd22dc
2016-02-25 13:07:16 -08:00
Yabin Cui 99281df8e2 recovery: check battery level before installing package.
Bug: 26879394

Change-Id: I63dce5bc50c2e104129f1bcab7d3cad5682bf45d
(cherry picked from commit 53e7a0628f)
2016-02-23 11:03:10 -08:00
Yabin Cui 53e7a0628f recovery: check battery level before installing package.
Bug: 26879394

Change-Id: I63dce5bc50c2e104129f1bcab7d3cad5682bf45d
2016-02-19 18:08:09 -08:00