Commit Graph

7688 Commits

Author SHA1 Message Date
Tao Bao a4c38d860a Merge "Parse BCB command to enter rescue mode." am: e645ba5aca
am: 2f5b6751d8

Change-Id: I9e12a6091c8513b766765d7e152072d4e665ea25
2019-04-25 16:40:01 -07:00
Tao Bao 2f5b6751d8 Merge "Parse BCB command to enter rescue mode."
am: e645ba5aca

Change-Id: I898b6cc59cbb03109e800ddaf6ee3f642a0078f5
2019-04-25 16:35:00 -07:00
Tao Bao e645ba5aca Merge "Parse BCB command to enter rescue mode." 2019-04-25 23:18:08 +00:00
Tao Bao d9cb014d43 Parse BCB command to enter rescue mode.
bootloader will set `boot-rescue` in BCB command field to indicate
booting into rescue mode. This CL adds the matching parsing code.

This CL changes the on-screen UI to display the default image while
waiting for each sideload / rescue command.

It also changes the minadbd reboot handlers to use REBOOT_ instead of
the previous ENTER_ actions. This ensures a reboot going through
bootloader, which may load a newly installed bootloader/recovery.

Bug: 128505466
Test: Boot into rescue mode. Run `adb rescue getprop` and `adb rescue
      install`. Check the UI. Then run `adb reboot rescue`.
Change-Id: I5b7de9dfd898ed8e14bea0d4ad7385a9bae26e94
2019-04-25 14:02:41 -07:00
Tao Bao 4507b9d0fb Merge "Add TEST_MAPPING." am: c6ebcaaad7
am: d8cecf4df9

Change-Id: Ia7377f8c4baebc4175855465befca024d87243bf
2019-04-24 17:39:28 -07:00
Tao Bao d8cecf4df9 Merge "Add TEST_MAPPING."
am: c6ebcaaad7

Change-Id: Ib9d892cf4657a6b4cce9c15c6f25f5a89b4dbdef
2019-04-24 17:36:26 -07:00
Treehugger Robot c6ebcaaad7 Merge "Add TEST_MAPPING." 2019-04-25 00:18:44 +00:00
Tao Bao a14e860190 Add TEST_MAPPING.
Currently it triggers minadbd_test, recovery_unit_test and
recovery_component_test during presubmit.

Test: TreeHugger
Change-Id: Ie0e2ddc9519a7e9b66d059cdf0b81dcbba631c25
2019-04-24 14:03:52 -07:00
Tao Bao 24eb4d1cdd Merge "minadbd: Support adb reboot under sideload/rescue modes." am: cf1f715d62
am: 0d6f57a90f

Change-Id: I4be98a85565ada3f1e97f038ff116174d7f03559
2019-04-24 13:56:24 -07:00
Tao Bao 0d6f57a90f Merge "minadbd: Support adb reboot under sideload/rescue modes."
am: cf1f715d62

Change-Id: Ie0037cbef2daa1e47f169ff353ca3ac4fd24c164
2019-04-24 13:52:22 -07:00
Tao Bao cf1f715d62 Merge "minadbd: Support adb reboot under sideload/rescue modes." 2019-04-24 20:33:18 +00:00
Tao Bao 10f441a9db minadbd: Support adb reboot under sideload/rescue modes.
Bug: 128415917
Test: Run the following commands under sideload and rescue modes
      respectively.
$ adb reboot
$ adb reboot bootloader
$ adb reboot recovery
$ adb reboot rescue
$ adb reboot invalid
Change-Id: I84daf63e3360b7b4a0af5e055149a4f54e10ba90
2019-04-23 23:50:12 -07:00
Tianjie Xu ba4f02398f Merge "Add test for minadbd" am: c92f412b8d
am: b63e6963ec

Change-Id: I8a1e67369687b2382d822d174570413e143b6bbc
2019-04-23 15:51:19 -07:00
Tianjie Xu b63e6963ec Merge "Add test for minadbd"
am: c92f412b8d

Change-Id: Ie742f6993faa062737ee41cd308a3d249023af97
2019-04-23 15:43:54 -07:00
Tianjie Xu c92f412b8d Merge "Add test for minadbd" 2019-04-23 22:26:54 +00:00
xunchang 9c04eb46b7 Add test for minadbd
Ass some unit tests to check if the minadbd service exit correctly in
the failure case. Also start the fuse and verify the socket communication
between minadbd with adb host, and minadbd with recovery.

Bug: 131037235
Test: run unit tests repeatedly, injects some errors and test fails
without dangling process.
Change-Id: I2f073b701b25d7f1aafc59868a7a91a8cbefaf49
2019-04-23 11:33:57 -07:00
Tianjie Xu 3e165c8607 Merge changes Ibdb7dd0b,Iafd3e846 am: 72e6e55e34
am: 05e295b755

Change-Id: Ie71d74670d017e275329dd5e3b59ca45e9c6524a
2019-04-23 11:26:08 -07:00
Tianjie Xu 05e295b755 Merge changes Ibdb7dd0b,Iafd3e846
am: 72e6e55e34

Change-Id: I2cf9f6e8c489b6c48056687d0405ba3585df5b9a
2019-04-23 11:04:48 -07:00
Tianjie Xu 72e6e55e34 Merge changes Ibdb7dd0b,Iafd3e846
* changes:
  matches_locale no longer accept empty locales in the png file
  Fall back to en-US if localized bitmap is missing for a locale
2019-04-23 17:31:23 +00:00
Tao Bao 2050b0efb9 Merge "minadbd: Support rescue install and getprop commands." am: f365574a60
am: 8c7085878c

Change-Id: Ie21b5177cccdc2e65d7ceedac89b8402a44ced27
2019-04-22 15:45:47 -07:00
xunchang 34723087fe matches_locale no longer accept empty locales in the png file
The legacy png files have an empty line in the end. And the recovery
used to match any missing locale, e.g. "he" with that line and gets an
empty image.

Since the empty image is barely useful, we should just error out and
fall back to the default locale.

This reversed the unit test check added in d17a688525

Bug: 128934634
Test: run locale test with "he" and legacy images, recovery reports
error and doesn't crash even without default locale fall back

Change-Id: Ibdb7dd0b42348de5e392c834cce67ff02be85c24
2019-04-22 15:32:17 -07:00
Tao Bao 8c7085878c Merge "minadbd: Support rescue install and getprop commands."
am: f365574a60

Change-Id: I380d0ae30f1ea9e03bfdb880be1107acd2fb28d8
2019-04-22 15:23:45 -07:00
Tao Bao f365574a60 Merge "minadbd: Support rescue install and getprop commands." 2019-04-22 22:08:52 +00:00
xunchang 9d05c8a357 Fall back to en-US if localized bitmap is missing for a locale
We used to show the image for the last locale or an empty image, if
the localized image is missing for a specific locale. As the default
english one is more meaningful to users, we should just error out and
fall back to use the default locale when the image loading fails.

Bug: 128934634
Test: run graphic test, locale test
Change-Id: Iafd3e8466aec63b4952d1959b2a3d37e358677d4
2019-04-22 14:39:51 -07:00
Tao Bao ed717ca17d minadbd: Support rescue install and getprop commands.
Bug: 128415917
Test: Enter rescue mode on taimen. Send the following commands:
      `adb rescue getprop ro.build.fingerprint`
      `adb rescue getprop ro.build.date.utc`
      `adb rescue install /path/to/package.zip`
Test: Sideload on taimen w/ `adb sideload /path/to/package.zip`.
Change-Id: Ibc25daf9fd13f7002e54789f67aaf85d06976bb8
2019-04-19 12:53:55 -07:00
Tao Bao df739f4835 Merge "Allow entering rescue mode via recovery UI." am: b951138ebe
am: bca2ceb7a7

Change-Id: I0551d7fa0cfd8fa7c8d1ce6e4447e99a584e4c1e
2019-04-18 15:10:24 -07:00
Tao Bao bca2ceb7a7 Merge "Allow entering rescue mode via recovery UI."
am: b951138ebe

Change-Id: I76b5e4de39d45622bb3c644145fd2cbb9a04bd0f
2019-04-18 15:05:29 -07:00
Tao Bao b951138ebe Merge "Allow entering rescue mode via recovery UI." 2019-04-18 21:45:50 +00:00
Bill Yi ca44dc4aa4 [automerger skipped] Import translations. DO NOT MERGE
am: d0052c30ce -s ours
am skip reason: subject contains skip directive

Change-Id: I6f80b1be7b7f0ab1046b1d65e1110de4a093cc83
2019-04-17 15:19:22 -07:00
Tao Bao c6dc325e88 Allow entering rescue mode via recovery UI.
Only enabled on debuggable builds.

Bug: 128415917
Test: Sideload package on taimen.
Test: Choose "Enter rescue" from recovery UI.
Change-Id: I913dbdbcffd3179e6fa72ca862f74ca8f1364b02
2019-04-17 14:07:23 -07:00
xunchang 46ecbc897c DO NOT MERGE: Move load & restore logs to logging.cpp
am: cd780b456f

Change-Id: Ieade28272c726cf7e81da7cc633fe40489db17d4
2019-04-16 22:06:39 -07:00
xunchang fde9a21127 [automerger skipped] DO NOT MERGE: Move wipe cache|data to libinstall
am: 388d253b9c -s ours
am skip reason: SHA1 388d253b9c skipped by user xunchang

Change-Id: I6d2b097e941a5e0c45c420a33d0a733bb384184e
2019-04-16 22:06:32 -07:00
xunchang 06e006ca60 [automerger skipped] DO NOT MERGE: Add socket communication between recovery and minadbd
am: 95d67323a4 -s ours
am skip reason: SHA1 95d67323a4 skipped by user xunchang

Change-Id: I8e5c027a88b224523728a37f1b8b68a1b1490421
2019-04-16 22:06:24 -07:00
Tao Bao b937028417 [automerger skipped] DO NOT MERGE: Build libinstall as a static library.
am: 2f8afba707 -s ours
am skip reason: SHA1 2f8afba707 skipped by user xunchang

Change-Id: Id6835cbd7845acdb91a8bb7b0888a003b01c48a3
2019-04-16 22:06:17 -07:00
Bill Yi d0052c30ce Import translations. DO NOT MERGE
Auto-generated-cl: translation import

Bug: 64712476
Change-Id: Ie58e59d8d2731350f58bc9733e4599f75a3aca61
2019-04-16 19:59:20 -07:00
xunchang cd780b456f DO NOT MERGE: Move load & restore logs to logging.cpp
We perform these steps to perserve the recovery logs when wiping
/cache partition. Move them to logging.cpp to keep the actually
EraseVolume function concise.

Bug: 130166585
Test: unit tests pass, mount cache and check last log after cache
Change-Id: Idc52833817a446f3a0148a3dd2112f911c9ef48d
(cherry picked from commit 2239b9e4dd)
2019-04-16 19:26:44 +00:00
xunchang 388d253b9c DO NOT MERGE: Move wipe cache|data to libinstall
Therefore, libinstall becomes the sole owner to handle the request
from minadbd service.

The change also includes
1. move logging.cpp out of librecovery
2. drop the dependency on common.h
3. now it's more sensible to move the wipe_cache as part of
install_package. move the wipe_cache to the end of the function.

Bug: 130166585
Test: wipe data and cache from menu
Change-Id: I6f356dccdb38015c50acf756bac246f87c30fc1f
(cherry picked from commit 316e971746)
2019-04-16 19:26:31 +00:00
xunchang 95d67323a4 DO NOT MERGE: Add socket communication between recovery and minadbd
This cl adds a socket pair to support the communication between recovery
and minadbd. Therefore, minadbd will be able to issue multiple commands
to recovery and get back the status of each command.

This cl also switches the adb sideload from the recovery menu to use
this protocol; and moves minadbd to a separate binary.

Bug: 130166585
Test: sideload a package
Change-Id: I80d36d5c4e6fe1ae3ea23640907bc50c0dc0d482
(cherry picked from commit 34690ced91)
2019-04-16 19:26:20 +00:00
Tao Bao 2f8afba707 DO NOT MERGE: Build libinstall as a static library.
It was once considered to be shared between recovery and minadbd, so
that the latter can start an install on its own. The plan has been
changed, since package install -- including device wipe operations --
could be device-specific, which should be done by recovery only.

This CL moves libinstall back to a static library, which also saves the
overall size (reducing from 140256 + 660576 to 555880 bytes on
aosp_taimen-userdebug).

Bug: 130166585
Test: Run recovery_component_test.
Test: `adb sideload` on taimen.
Change-Id: Ib1f5f79f235df4682c0bd104425c9c122f6091ba
2019-04-16 19:25:23 +00:00
Tianjie Xu f980ad94ef Merge "Move load & restore logs to logging.cpp" am: 3aff98aee8
am: c3a273b33a

Change-Id: Iea229ce291f97333e1b47cc050731783ffc1e47f
2019-04-16 11:23:54 -07:00
Tianjie Xu c3a273b33a Merge "Move load & restore logs to logging.cpp"
am: 3aff98aee8

Change-Id: I7da098091879ca823be31bd12b60dc12d5c45145
2019-04-16 11:07:47 -07:00
Tao Bao 265ff4fffd Merge "Remove the FD parameter from FuseDataProvider ctor." am: bb0c6e1fe7
am: 510daac2cc

Change-Id: I4bc8b5a42804ec83a29a339f82b8ce4ce3b59709
2019-04-16 10:58:48 -07:00
Tianjie Xu 3aff98aee8 Merge "Move load & restore logs to logging.cpp" 2019-04-16 17:57:02 +00:00
Tao Bao 510daac2cc Merge "Remove the FD parameter from FuseDataProvider ctor."
am: bb0c6e1fe7

Change-Id: I56b4751370b621bb78be64e77c78d44b367c9990
2019-04-16 10:51:23 -07:00
Treehugger Robot bb0c6e1fe7 Merge "Remove the FD parameter from FuseDataProvider ctor." 2019-04-16 17:25:08 +00:00
xunchang 2239b9e4dd Move load & restore logs to logging.cpp
We perform these steps to perserve the recovery logs when wiping
/cache partition. Move them to logging.cpp to keep the actually
EraseVolume function concise.

Bug: 130166585
Test: unit tests pass, mount cache and check last log after cache
Change-Id: Idc52833817a446f3a0148a3dd2112f911c9ef48d
2019-04-15 23:18:13 -07:00
Tao Bao 2be9737cf4 Remove the FD parameter from FuseDataProvider ctor.
This leaves the FD implementation details to subclasses. In particular,
it allows minadbd to do additional works with the FD after sideloading.

Bug: 128415917
Test: atest recovery_component_test
Test: atest minadbd_test
Test: Sideload package on taimen.
Change-Id: I106bbaad05201227bbc5fe28890bbbb06fdcb67e
2019-04-15 16:53:31 -07:00
Tianjie Xu 97e692fab3 Merge "Move wipe cache|data to libinstall" am: 9fc764f1f0
am: 2148d317cd

Change-Id: Ifdfe1766035a0d99b6c608a76c28f6d566cb5f65
2019-04-15 16:03:19 -07:00
Tianjie Xu 2148d317cd Merge "Move wipe cache|data to libinstall"
am: 9fc764f1f0

Change-Id: I6d3fc5b0fa75a25a96d8939e0f9c3b04de1f5245
2019-04-15 15:57:17 -07:00
Tianjie Xu 9fc764f1f0 Merge "Move wipe cache|data to libinstall" 2019-04-15 22:34:19 +00:00