Commit Graph

5547 Commits

Author SHA1 Message Date
Tao Bao 2de12da142 Merge "Drop '#include "ui.h"' from device.h." 2018-05-01 01:54:45 +00:00
Tao Bao c16fd8a931 Drop '#include "ui.h"' from device.h.
We don't need the dependency in the header.

Test: mmma -j bootable/recovery
Change-Id: I03741ae7911a7e8bf1284b2821cf986ca0ab434e
2018-04-30 17:15:17 -07:00
Tao Bao e4d65b681a Merge changes I78839ed4,I75ac0e26
* changes:
  recovery: Move a few constants closer to their uses.
  recovery: Fix the return value when failing to convert to FBE.
2018-04-30 19:39:42 +00:00
Tao Bao aac9d9fcf8 recovery: Move a few constants closer to their uses.
Test: mmma -j bootable/recovery
Change-Id: I78839ed487ef41b4eaa3787cb7b4bf33fb0d164a
2018-04-30 10:57:36 -07:00
Tao Bao 406a6ff5e6 recovery: Fix the return value when failing to convert to FBE.
Test: Build and flash aosp_angler-userdebug. Choose 'Convert to file
      encryption' from Developer Options. Converting to FBE still works.
Change-Id: I75ac0e266af2d00bfaff0664f8bcee74a5f16b41
2018-04-30 10:55:59 -07:00
android-build-prod (mdb) 686353215f Merge "Merge libmounts into libotautil." 2018-04-28 16:46:19 +00:00
Tao Bao 9a319f01f8 Merge libmounts into libotautil.
Export its header (mounts.h) from there, and drop the dot dot dependency
from libupdater / updater.

Test: mmma bootable/recovery
Test: recovery_component_test
Change-Id: Ic26a6b9b78a34dbe1f178b138f3abaafffbec44c
2018-04-27 21:13:57 -07:00
Tao Bao 3de3756081 Merge "recovery: Revoke (most of) short options." 2018-04-27 23:09:31 +00:00
Tao Bao f9f17347c8 recovery: Revoke (most of) short options.
`recovery` is not a command line tool, and these short options don't
have the common meanings that are used elsewhere.

In the platform code, we're not actively using the short forms.
 - bootable/recovery/uncrypt/uncrypt.cpp
 - bootable/recovery/updater/install.cpp
 - frameworks/base/core/java/android/os/RecoverySystem.java
 - system/core/adb/services.cpp
 - system/core/init/builtins.cpp
 - system/update_engine/hardware_android.cc
 - system/vold/cryptfs.cpp
(Callers must have used libbootloader_message.)

'--show_text' and '--just_exit' are not that obvious from the initial
commit messages. They appear to be used by vendor code (e.g.
'--show_text' is optionally used by bootloader, as in the noted bug). So
this CL keeps them as is for now.

Test: `mmma -j bootable/recovery`
Test: Check the code search for possible callers to recovery.
Change-Id: I8a87f5fb50131d647dfc8290381ca47a60f543fa
2018-04-27 12:34:14 -07:00
Tianjie Xu 957c1abfba Merge "Save the target file when applypatch tests fail" 2018-04-27 16:45:25 +00:00
Zhomart Mukhamejanov 2573b6fa1c Merge "updater_sample: fix gen_update_config.py" 2018-04-27 04:25:23 +00:00
android-build-prod (mdb) ca456f3964 Merge "recovery: Print the actually required battery level." 2018-04-27 04:03:13 +00:00
Tianjie Xu 3f638ee834 Save the target file when applypatch tests fail
Save the target file to tempfile upon unittest failures so that we can
try to decompress the deflate chunks in the flaky unittests. And print
the zlib version in case that gets changed.

Also the SHA1 of the uncompressed data seems correct; so only keep the
final SHA1 to double confirm.

Bug: 67849209
Test: recovery_component_test
Change-Id: Ic6447c2b75c29379d6844cd23a0ff1c4305694a0
2018-04-26 19:46:39 -07:00
Zhomart Mukhamejanov 72a4d465bf updater_sample: fix gen_update_config.py
Fix gen_update_config.py.
And add tests for gen_update_config.py.

Test: python3 updater_sample/tools/gen_update_config_test.py

Change-Id: I0d270f1d5d7635855ee9acb0dd094e083cd33e3a
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-04-26 19:40:48 -07:00
Tao Bao f2ea6d7999 recovery: Print the actually required battery level.
It should be one of BATTERY_OK_PERCENTAGE (20) and
BATTERY_WITH_CHARGER_OK_PERCENTAGE (15), depending on the charger state.

Also move the battery level related constants next to their users.

Test: mmma -j bootable/recovery
Test: Build and boot into recovery with a pending OTA. Check the log.
Change-Id: I7513f59c4718ec8e2db16c5266928470c2308648
Merged-In: I7513f59c4718ec8e2db16c5266928470c2308648
2018-04-26 15:21:34 -07:00
Tao Bao 220b531e3d Merge "Mark ui_print with __printflike." 2018-04-26 22:18:17 +00:00
Tao Bao aae7efd7a2 Mark ui_print with __printflike.
And fix an issue as a result of the change.

Test: mmma -j bootable/recovery
Change-Id: I94e6384a1f39e9c37a8ed029d235142738d6e5d3
Merged-In: I94e6384a1f39e9c37a8ed029d235142738d6e5d3
2018-04-26 13:42:42 -07:00
Zhomart Mukhamejanov 6bd1d9b8d9 Merge "sample_updater: create tools/gen_update_config.py" 2018-04-26 19:21:08 +00:00
Zhomart Mukhamejanov 7d064166ce Merge "sample_updater: add tests resources" 2018-04-26 19:20:56 +00:00
Tianjie Xu cc8587b508 Merge "Dump the uncompressed data's SHA1 to debug flaky tests" 2018-04-26 17:23:00 +00:00
android-build-prod (mdb) 49c7f1cec3 Merge "Rename CacheLocation to Paths." 2018-04-26 16:24:41 +00:00
Tao Bao 641fa97def Rename CacheLocation to Paths.
We have a general need for overriding more paths (e.g. "/tmp"), mostly
for testing purpose. Rename CacheLocation to Paths, and use that to
manage TEMPORARY_{INSTALL,LOG}_FILE.

Test: mmma -j bootable/recovery
Test: recovery_component_test
Change-Id: Ia8ce8e5695df37ca434f13ac4d3206de1e8e9396
2018-04-25 21:46:00 -07:00
Tianjie Xu 9e1ccd47b4 Dump the uncompressed data's SHA1 to debug flaky tests
Dump the SHA1 of the uncompressed data in applypatch to confirm if we
are at least doing the bspatch part correctly. (I expect so since the actual
length of the uncompressed data matches the expected length).

Also try to decompress the deflate chunk inside the recovery image for
these two flacky tests. In theory, there shouldn't be randomness in
zlib; so we would know if we process the data wrongly if the deflate fails
to decompress.

Bug: 67849209
Test: recovery_component_test
Change-Id: Id947522153b1eeb0d10d161298a96fb045f92018
2018-04-25 20:00:56 -07:00
Zhomart Mukhamejanov 02e912c235 sample_updater: add tests resources
This resource files are used in tests. ota package zip file
contains only text files.
Config files are generated using tools/gen_update_config.py

Test: N/A

Change-Id: I9d3d0f81472dc20db18b32f4a9445a998b68b0e3
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-04-25 18:18:46 -07:00
Zhomart Mukhamejanov d5a41822c2 sample_updater: create tools/gen_update_config.py
gen_update_config.py generates JSON config files
from given OTA image zip files.

README.md is updated.

Test: manually

Change-Id: Ifd09b49a73983a42752ee3842a566cecedb9cae0
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-04-25 17:43:26 -07:00
Zhomart Mukhamejanov d97b643de4 Merge "updater_sample: Use stubs libs for android.test.base / runner." 2018-04-26 00:39:20 +00:00
android-build-prod (mdb) a544bfab2b Merge "Rename the dir for SystemUpdaterSample." 2018-04-26 00:10:33 +00:00
Tao Bao daa65aed99 updater_sample: Use stubs libs for android.test.base / runner.
To address the warning below (which will be disallowed):
bootable/recovery/updater_sample/tests/Android.mk: warning:
SystemUpdaterSampleTests (java:system) should not link to
android.test.runner (java:platform)

(See b/69899800 or the commit message in [1] for detailed discussions.)

[1]: https://android-review.googlesource.com/c/platform/frameworks/ml/+/666428

Test: `mmma -j bootable/recovery` gives no warning.
Test: Install and run SystemUpdaterSampleTests on device.
Change-Id: I12a1556d572d9f332fcf43dc84cbe8fd1b6df89b
2018-04-25 15:59:53 -07:00
Tao Bao 32118f6690 Rename the dir for SystemUpdaterSample.
Also replace the occurrence in README.md and PREUPLOAD.cfg.

Test: mmma -j bootable/recovery
Change-Id: I04c0ef00dd64f49e008ad2a4a2c1e8eaed76bf8d
2018-04-25 15:34:37 -07:00
Zhomart Mukhamejanov 4816fc1c46 Merge "sample_updater: add non-streaming demo" 2018-04-25 18:56:26 +00:00
Zhomart Mukhamejanov f4d280ce40 sample_updater: add non-streaming demo
SampleUpdater app was tested manually on a device.
There are unit tests for utility classes.

SampleUpdater app demonstrates how to use Android Update Engine to
apply A/B (seamless) update.
This CL contains demo of non-stream update using async update_engine,
which is accessed directly from an activity.
This app also shows logs from update_engine on the UI.
Instructions can be found in `README.md`.

- Create a UI with list of configs, current version, control buttons and a progress bar
- Add PayloadSpec and PayloadSpecs for working with update zip file
- Add UpdateConfig for working with json config files
- Add applying non-streaming update

Test: tested manually and unit tests for utilities
Change-Id: I05d4a46ad9cf8b334c9c60c7dd4da486dac0400a
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-04-25 18:55:25 +00:00
android-build-prod (mdb) ab3c24bd51 Merge "updater: Remove an unneeded strdup()." 2018-04-25 17:57:12 +00:00
Tao Bao 188f3a5bf8 updater: Remove an unneeded strdup().
StringValue() makes a copy of the arg.

Test: mmma bootable/recovery
Change-Id: I1002994e7496c840aa05c785019bdeca281f467e
2018-04-25 07:16:00 -07:00
Treehugger Robot 897385bfe2 Merge "Wipe the metadata partition when we wipe data." 2018-04-25 02:38:11 +00:00
Paul Crowley 3b4d516151 Wipe the metadata partition when we wipe data.
Bug: 78469201
Test: Wipe from recovery menu, check that wipe is logged correctly
    and boot works as expected.
Change-Id: I5bc8ef1b83d78de8b5edba6cc17882edcc744356
2018-04-24 17:08:22 -07:00
Tianjie Xu fe527cced4 Merge "Dump debug information for apply_patch unit tests" 2018-04-24 18:30:29 +00:00
Tianjie Xu ffed57a7a3 Dump debug information for apply_patch unit tests
The apply patch test should have a deterministic way to append patch
data. Add debug logs to dump the length and SHA1 of each step to further
track down the flakiness.

Also redirect the debug logging to stdout in case the logcat becomes too
chatty.

Bug: 67849209
Test: Run recovery_component_test
Change-Id: I42bafef2d9dee599719ae57840b3d8c00d243ebd
2018-04-24 09:56:55 -07:00
Tao Bao ed022fccdf Merge "update_verifier: Move to Soong." 2018-04-23 22:33:56 +00:00
Tao Bao ea63f59469 Merge "Make update_verifier generic across verified boot versions." 2018-04-23 22:33:45 +00:00
Tao Bao afb9fc29a2 update_verifier: Move to Soong.
Test: mmma -j bootable/recovery
Change-Id: I3a3574c89318304231c01f7633d32ece31df098c
2018-04-20 14:26:38 -07:00
Tao Bao 1cc0351915 Make update_verifier generic across verified boot versions.
This allows the update_verifier in a general system image to work across
devices that have different verified boot versions (i.e. not supported /
verified boot 1.0 / verified boot 2.0 / disabled).

Bug: 78283982
Test: Run recovery_component_test on both of marlin and walleye.
Test: Generate an OTA that has this CL. Install this OTA and check the
      update_verifier log during the post-reboot verification, on both
      of marlin (VB 1.0) and walleye (VB 2.0).
Test: Build and flash walleye image with verified boot disabled. Check
      that update_verifier marks the slot as successfully booted.
Change-Id: I828d87d59f911786531f774ffcf9b2ad7c2ca007
2018-04-20 14:26:38 -07:00
Treehugger Robot bcb015239c Merge "applypatch: Drop the SHA_CTX parameter in Apply{BSDiff,Image}Patch." 2018-04-20 18:03:42 +00:00
Tao Bao 8b0b0f1f02 applypatch: Drop the SHA_CTX parameter in Apply{BSDiff,Image}Patch.
As they're accepting the SinkFn callback, it makes more sense to leave
the work to their callers.

Test: mmma -j bootable/recovery
Test: Run recovery_component_test on marlin.
Test: No other active user of the two functions.
Change-Id: I8d67b38ce037925442296f136b483e0c71983777
2018-04-20 09:27:50 -07:00
Tao Bao d2c32b281b Merge "applypatch: Dump patch info on mismatching patching result." 2018-04-19 21:33:30 +00:00
Tao Bao 4f83430471 applypatch: Dump patch info on mismatching patching result.
After splitting the previously flaky
ApplyPatchModesTest#PatchModeEmmcTarget tests,
PatchModeEmmcTargetWithMultiplePatches now becomes the sole victim. This
CL dumps additional info to narrow down the cause.

Bug: 67849209
Test: `recovery_component_test` on marlin.
Test: It dumps additional info after using corrupt bonus.file.
Change-Id: Ic5436de457cc882a51d03f49d5cee70077f7d3df
2018-04-19 12:46:22 -07:00
Zhomart Mukhamejanov 73e6644777 Merge "Add sample_updater style check to PREUPLOAD.cfg" 2018-04-18 00:52:20 +00:00
Zhomart Mukhamejanov 0e007e8edc Add sample_updater style check to PREUPLOAD.cfg
Test: N/A
Change-Id: I13f4295a85d50c0a63cac5680e7a3200b0e6c909
2018-04-17 16:09:31 -07:00
Treehugger Robot 07d0032def Merge "tests: Move ResourcesTest into component test." 2018-04-17 00:00:00 +00:00
Tao Bao 6b28f05c5b tests: Move ResourcesTest into component test.
Although the tests were initially written for checking the validity of
the text images, it doesn't hurt to run them continuously as part of the
component test (recovery_manual_test requires reboots during the run,
due to the nature of the tests of recovery-{refresh,persist}). This also
allows detecting breaking changes to libminui or libpng.

There's a catch that the ResourcesTest won't be triggered via `atest`,
as the res-* testdata won't be picked up via AndroidTest.xml. Explored
a few options but not addressing that in this CL:
- `atest` is not fully working in AOSP yet (missing support in
  tools/tradefederation/core/atest/atest.py).
- `atest` doesn't allow specifying the testdata with path in the 'push'
  option.
- It won't fail the test run though, as ResourcesTest will skip the
  tests automatically when it finds no text image file.
- APCT and manual `adb sync data` are not affected, and I don't see an
  active user of `atest` other than a tool for manual test invocation.
- Unrelated to this CL, `atest` doesn't seem to work well with
  recovery_component_test or recovery_unit_test while we have both of
  them in one AndroidTest.xml. It randomly triggers only one of them,
  despite of the given test name. When splitting AndroidTest.xml into
  two, it tends to pick up the wrong testdata subdir and gives wrong
  results.

Test: Run recovery_manual_test and recovery_component_test on marlin.
Change-Id: I3a237499a7770356e14085674bc8b9cb4551db85
2018-04-16 11:29:06 -07:00
Treehugger Robot 0c8eea86f9 Merge "Disable lld where it fails." 2018-04-16 18:25:33 +00:00