Commit Graph
3017 Commits
Author SHA1 Message Date
Tao Bao 97555da4a6 Add tests for imgdiff.
Factor out libimgdiff static library for testing purpose.

This CL adds the imgdiff tests on host and on target both (similar to
libimgpatch). In practice, we only need imgdiff binary on host, and
libimgpatch on target. But they should build and pass tests on both
platforms.

Test: recovery_host_test passes; recovery_component_test passes.
Change-Id: I0eafb7faf727cdf70066310e845af6ee245d4f60
2016-12-19 16:53:03 -08:00
Tao BaoandGerrit Code Review e81719dde3 Merge "Bugfix:updater always retry apply patch failed,when memcpy failed." 2016-12-19 19:19:41 +00:00
katao 9a6f520419 Bugfix:updater always retry apply patch failed,when memcpy failed.
https://code.google.com/p/android/issues/detail?id=230602
On the second attempt, open the file with O_RDONLY,
which causing a write failure。

Change-Id: If89165b8c7619fe25722073a46b3cc7c61530a71
Signed-off-by: katao <ustckato@gmail.com>
2016-12-19 08:51:07 +00:00
Tao BaoandGerrit Code Review 26d972c9d2 Merge "Add update_bootloader_message() to fix two-step OTAs." 2016-12-15 22:32:37 +00:00
Tao Bao 2292db819b Add update_bootloader_message() to fix two-step OTAs.
This is a retry of commit 7e31f421a5.

Commit bd56f1590c switches to calling
write_bootloader_message(<options>) in get_args(), which
unintentionally resets the stage field thus breaks two-step OTAs.

This CL adds update_bootloader_message(<options>), which only sets
the command field (to "boot-recovery") and the recovery field (with
the specified options).

Bug: 33534933
Test: Apply a two-step package.
Test: recovery_component_test passes.
Change-Id: Ie0b1ed4053d2d3c97d9cb84310d616b28fcfc72e
2016-12-15 12:36:26 -08:00
Tao BaoandGerrit Code Review 07d985b75b Merge "tests: Add tests for bootloader_message." 2016-12-15 20:28:22 +00:00
Tao Bao 8b7301b711 tests: Add tests for bootloader_message.
Test: recovery_component_test passes.
Change-Id: Ib9aa2ffd6b018546223c76b7424f4ba355f5b088
2016-12-14 15:59:32 -08:00
Sen JiangandGerrit Code Review 8c1584feaf Merge "Add a stub recovery UI." 2016-12-14 21:50:49 +00:00
Treehugger RobotandGerrit Code Review 2bb3a2270e Merge "updater: Fix the operator order." 2016-12-14 20:28:31 +00:00
Tao Bao 5354f60f2b updater: Fix the operator order.
Shift operator ("<<") has a higher precedence level than ternary
operator ("?").

Test: BBOTA update log says "performing update" as opposed to
      "performing 0".

Change-Id: I0cf60cbfc11415e94f1f9f6effe75f14d13a1874
2016-12-14 11:34:49 -08:00
Tao BaoandGerrit Code Review 833ecb03f2 Merge "Remove the obsolete comments for firmware update." 2016-12-14 18:34:26 +00:00
Tao Bao c0336399ae Remove the obsolete comments for firmware update.
The corresponding code was removed in commit
e08991e02a in 2010 (Froyo).

Test: N/A
Change-Id: I2b296e1b07d54232bade79fda7501387d65a4c37
2016-12-13 22:36:02 -08:00
Tao BaoandGerrit Code Review 4e48a6c1a1 Merge "Add tests for setup-bcb and clear-bcb via uncrypt." 2016-12-14 05:17:47 +00:00
Tao Bao 1033408801 Add tests for setup-bcb and clear-bcb via uncrypt.
Bug: http://b/33534933
Test: recovery_component_test passes (and fails on buggy build due to
      the CL in [1]).

[1]: commit 7e31f421a5

Change-Id: I120498048ec1db8f9fcbb3cf135c05d3a48cfcdf
2016-12-13 17:46:03 -08:00
Tao BaoandGerrit Code Review 28bbe029b6 Merge "recovery: Clean up the log saving while wiping." 2016-12-13 22:36:38 +00:00
Sen Jiang d530449e54 Add a stub recovery UI.
This allows recovery to work on devices without screen.
The stub recovery UI does nothing except print to stdout.

Test: write 'recovery\n--wipe_data\n--reason=wipe_data_from_ota\n'
      to misc and boot to recovery on a device without screen.
Bug: 33175036

Change-Id: Icde698aa2e2e29f4b3d0532dfd3c6a939ac2bc63
2016-12-13 13:29:33 -08:00
Tao Bao 3f5a3821be recovery: Clean up the log saving while wiping.
Test: Wipe /cache and check the logs.
      Wipe /data and check the logs.
Change-Id: I1968e3a0a9ed80134811a91508c4473f1dcdf953
2016-12-13 11:47:46 -08:00
Tao BaoandGerrit Code Review d6a5005fcb Merge "clang-format: Adjust short functions / if settings." 2016-12-13 18:13:56 +00:00
Tao BaoandGerrit Code Review c908f4f0e3 Merge "Revert "write_bootloader_message(<options>) should not reset stage field."" 2016-12-13 01:24:04 +00:00
Tao Bao 26d5ae741e Revert "write_bootloader_message(<options>) should not reset stage field."
This reverts commit 7e31f421a5.

Bug: 33534933
Change-Id: Ib173f6b1e36a79deafc3592785195693a6779471
2016-12-13 01:06:24 +00:00
Tao Bao e65fa0a892 clang-format: Adjust short functions / if settings.
http://clang.llvm.org/docs/ClangFormatStyleOptions.html

AllowShortFunctionsOnASingleLine: Empty
  Empty functions like "int f() {}" can be put on a single line.

AllowShortIfStatementsOnASingleLine: true
  If true, "if (a) return;" can be put on a single line.

Test: N/A
Change-Id: Ia4f411a958235ab18d16972f2c9d0f55b645b4ba
2016-12-12 15:00:52 -08:00
Tao BaoandGerrit Code Review 594dc4f5be Merge "recovery: Remove obsolete code that supports "CACHE:foo" format." 2016-12-10 20:50:16 +00:00
Tao Bao f038ca00f4 recovery: Remove obsolete code that supports "CACHE:foo" format.
The passing of "--update_package=CACHE:foo" format has been removed
in Gingerbread, with commit 4baf641e7d96375eba3f9a3aff5400b9e3d28cd6
in frameworks/base (core/java/android/os/RecoverySystem.java).

Test: Recovery image with --update_package still works.
Change-Id: I37b56ccf98f62cadf2a3975bbc38b16fea6fe9a1
2016-12-10 09:29:16 -08:00
Tao BaoandGerrit Code Review f28afc191d Merge "write_bootloader_message(<options>) should not reset stage field." 2016-12-09 22:33:49 +00:00
Tao BaoandGerrit Code Review 332af25b7c Merge "recovery: Fix the argument parsing from COMMAND_FILE." 2016-12-09 19:48:58 +00:00
Tao Bao 7d34fa17ab recovery: Fix the argument parsing from COMMAND_FILE.
Commit f0ed159f48 didn't ensure mounting
COMMAND_FILE (i.e. /cache) prior to reading. Also the first argument in
COMMAND_FILE should not be dropped (unlike the first "recovery" argument
in BCB message).

Bug: 33431888
Test: Push /cache/recovery/command and recovery imag parses the
      arguments successfully.

Change-Id: Ica3157a0bb03a2355315123354617eaf3fff15a4
2016-12-08 18:15:29 -08:00
Tao Baoandandroid-build-merger c3ab25c237 Merge "recovery: Clean up get_args()."
am: 3aadbbac39

Change-Id: I8dd8003433ae2a33da51d69c25fe1b51628c8f97
2016-12-05 23:35:16 +00:00
Tao Bao 7e31f421a5 write_bootloader_message(<options>) should not reset stage field.
Commit bd56f1590c switches to calling
write_bootloader_message(<options>) in get_args(), which
unintentionally resets the stage field thus breaks two-step OTAs.

This CL changes write_bootloader_message(<options>) to only set the
command field (to "boot-recovery") and the recovery field (with the
specified options).

Test: Apply a two-step package.
Change-Id: I6905918812c7d3402cc1524688079066a4d22d29
2016-12-05 15:31:52 -08:00
Tao BaoandGerrit Code Review 3aadbbac39 Merge "recovery: Clean up get_args()." 2016-12-05 23:28:36 +00:00
Tao Bao f0ed159f48 recovery: Clean up get_args().
Test: Boot into new recovery image, verify the parsed parameters.
Change-Id: Ieefafb26cc4147ce4cb9ced4297cdb3b5d1d3789
2016-12-05 11:39:46 -08:00
Tao Baoandandroid-build-merger 1d9779b57b Merge "updater: Switch to libbase logging."
am: d2c56629ab

Change-Id: Iadb27da225c4b0c7c6bc80d177d36bdf87296a5b
2016-12-02 05:37:54 +00:00
Tao BaoandGerrit Code Review d2c56629ab Merge "updater: Switch to libbase logging." 2016-12-02 05:27:04 +00:00
Tao Baoandandroid-build-merger 80cd188162 Merge "bootable/recovery: cleanup compiler warnings (unused value)"
am: ef3bea15b8

Change-Id: I401597b9d7bad8a13c98093019cd6ad915d325f3
2016-12-01 17:25:37 +00:00
Tao BaoandGerrit Code Review ef3bea15b8 Merge "bootable/recovery: cleanup compiler warnings (unused value)" 2016-12-01 17:03:13 +00:00
Tao Bao 039f2da3e4 updater: Switch to libbase logging.
Test: Build an updater into a package and apply it on device.
Change-Id: I289b5768e9b1e44ef78e0479c64dbaa36fb1a685
2016-11-30 23:44:41 -08:00
Tao Baoandandroid-build-merger be54feda58 Merge "bootable/recovery: cleanup compiler warnings (potential leak of memory)"
am: d255b661a1

Change-Id: I700b0591b9e67ff7932598da1e48c9fa793bb763
2016-11-30 21:30:01 +00:00
Tao BaoandGerrit Code Review d255b661a1 Merge "bootable/recovery: cleanup compiler warnings (potential leak of memory)" 2016-11-30 21:19:42 +00:00
Rahul Chaudhry a793c58208 bootable/recovery: cleanup compiler warnings (unused value)
bootable/recovery/applypatch/imgdiff.cpp:322:11: warning: Value stored to 'ret' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
bootable/recovery/applypatch/imgdiff.cpp:447:11: warning: Value stored to 'ret' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
bootable/recovery/applypatch/imgdiff.cpp:553:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]

Bug: 26936282
Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mm
Change-Id: I3f865e3e9b9d19e5ea5e8dfd2fe2c644254ffbb5
2016-11-30 11:18:32 -08:00
Connor O'Brienandandroid-build-merger ae2463bb35 Merge "Switch update verifier to HIDL HAL"
am: 1528def46e

Change-Id: I77f12c0c865b04e191039de4b15482c02d5d5d9e
2016-11-30 19:12:14 +00:00
Connor O'BrienandGerrit Code Review 1528def46e Merge "Switch update verifier to HIDL HAL" 2016-11-30 18:58:53 +00:00
Tao Baoandandroid-build-merger 1f934beedd Merge "Remove ota_close(int) and ota_fclose(FILE*)."
am: 7b59b45b08

Change-Id: I5d325de48d99c8056bdf95381537ba6b938822f0
2016-11-29 17:59:10 +00:00
Tao BaoandGerrit Code Review 7b59b45b08 Merge "Remove ota_close(int) and ota_fclose(FILE*)." 2016-11-29 17:55:11 +00:00
Tao Baoandandroid-build-merger 839fbbdad3 Merge "Add ota_close(unique_fd&) and ota_fclose(std::unique_ptr<FILE>&)."
am: eed7f607cf

Change-Id: Ib570d0f548cc680e9c8f38c43573f71c52494ee9
2016-11-29 05:21:37 +00:00
Tao Baoandandroid-build-merger fcfdda98da Merge "tests: Add testcases for EMMC targets."
am: d226f28e87

Change-Id: Ifadb3608e4856e5b4075b717cdb9c21c04162548
2016-11-29 05:21:24 +00:00
Tao BaoandGerrit Code Review eed7f607cf Merge "Add ota_close(unique_fd&) and ota_fclose(std::unique_ptr<FILE>&)." 2016-11-29 05:15:18 +00:00
Tao BaoandGerrit Code Review d226f28e87 Merge "tests: Add testcases for EMMC targets." 2016-11-29 05:13:10 +00:00
Tao Bao 358c2ec1dc Remove ota_close(int) and ota_fclose(FILE*).
We should always use unique_fd or unique_file to hold the FD or FILE*
pointer when opening via ota_(f)open functions.

This CL avoids accidentally closing raw FDs or FILE* pointers that are
managed by unique_fd/unique_file.

Test: recovery_component_test passes.
Change-Id: If58eb8b5c5da507563f85efd5d56276472a1c957
2016-11-28 12:09:39 -08:00
Tao Bao 3dc14cb429 Add ota_close(unique_fd&) and ota_fclose(std::unique_ptr<FILE>&).
We were using the below sequence prior to the CL in [1].

unique_fd fd(ota_open(...));
ota_close(fd);
fd.reset(ota_open(...));

fd.reset() may unintentionally close the newly opened FD if it
has the same value as the early ota_open. The CL in [1] changed to
"ota_close(fd.release())" to avoid the issue. This CL adds a new
overloaded function ota_close(unique_fd&) to handle the release
automatically.

Similarly add ota_fclose(std::unique_ptr<FILE>&).

[1] commit 48cf770471.

Bug: 33034669
Test: recovery_component_test passes.
Change-Id: Ief91edc590e95a7426e33364b28754173efb1056
2016-11-22 16:44:41 -08:00
Tao Bao 8dd44e907a tests: Add testcases for EMMC targets.
There're two types of targets in applypatch: regular files and EMMC
targets. We have two sets of functions to handle them respectively.

This CL adds testcases to use "EMMC:filename:size:sha1" as the target
name, which triggers the code path for patching EMMC targets.

Bug: 33034669
Test: recovery_component_test passes.

Change-Id: I8f10c6c8d2c1fb083f06a83de91d9e23cb41fb6d
2016-11-21 23:32:33 -08:00
Connor O'Brien ad43d2dd30 Switch update verifier to HIDL HAL
Test: UV logs show success in both binderized and passthrough modes.
Bug: 31864052
Change-Id: Ied67a52c458dba7fe600e0fe7eca84db1a9f2587
Signed-off-by: Connor O'Brien <connoro@google.com>
2016-11-21 13:48:42 -08:00