Commit graph

3131 commits

Author SHA1 Message Date
Tao Bao
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'Brien
ae2463bb35 Merge "Switch update verifier to HIDL HAL"
am: 1528def46e

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

Change-Id: I5d325de48d99c8056bdf95381537ba6b938822f0
2016-11-29 17:59:10 +00:00
Tao Bao
7b59b45b08 Merge "Remove ota_close(int) and ota_fclose(FILE*)." 2016-11-29 17:55:11 +00:00
Tao Bao
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 Bao
fcfdda98da Merge "tests: Add testcases for EMMC targets."
am: d226f28e87

Change-Id: Ifadb3608e4856e5b4075b717cdb9c21c04162548
2016-11-29 05:21:24 +00:00
Tao Bao
eed7f607cf Merge "Add ota_close(unique_fd&) and ota_fclose(std::unique_ptr<FILE>&)." 2016-11-29 05:15:18 +00:00
Tao Bao
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
Tao Bao
1aa41a106d Merge "applypatch: Release FD when explicitly calling close."
am: a511a3c407

Change-Id: Ie4188abf0d9a9dec56ae162f7bd6d1cd35aacb0f
2016-11-21 19:32:37 +00:00
Treehugger Robot
a511a3c407 Merge "applypatch: Release FD when explicitly calling close." 2016-11-21 19:24:09 +00:00
Tao Bao
2a962adc85 Merge "Fail gracefully when we fail to fork the update binary"
am: 340a2d364f

Change-Id: If68e5c3b97e01186804076caf516512d8b9977b3
2016-11-21 19:11:35 +00:00
Tao Bao
340a2d364f Merge "Fail gracefully when we fail to fork the update binary" 2016-11-21 19:06:37 +00:00
Tao Bao
48cf770471 applypatch: Release FD when explicitly calling close.
We use android::base::unique_fd() to avoid leaking FD. We also want to
call close (or ota_close) to explicitly check the close result. When
combining the two together, we need to release the unique_fd to avoid
closing the same FD twice.

Bug: 33034669
Test: Trigger applypatch with install-recovery.sh.
Change-Id: I1a4f5d5fba7a23ef98d8bd7b7b07e87ae6f705c5
2016-11-21 09:47:34 -08:00
Matthew Bouyack
10cd48da1d Fail gracefully when we fail to fork the update binary
This change was original made in cw-f-dev but caused failures in
nyc-mr1-dev-plus-aosp due to lack of support for 'LOGE'

This version of the change uses the new 'LOG(ERROR)' style logging
instead.

See bug b/31395655
Test: attempt a memory intensive incremental OTA on a low-memory device

Change-Id: Ia87d989a66b0ce3f48e862abf9b9d6943f70e554
(cherry picked from commit c8db481780)
2016-11-20 22:38:37 -08:00
TreeHugger Robot
cf589f523a Merge "Import translations. DO NOT MERGE" into stage-aosp-master 2016-11-21 01:24:53 +00:00
Bill Yi
9a4ff5a900 Import translations. DO NOT MERGE
Auto-generated-cl: translation import

Bug: 32177112
Change-Id: I4d68cd0c69b40d1765cd74dfa730f56be01b5b23
2016-11-20 15:25:37 -08:00
Tao Bao
fa62ae6d0b Merge "Call update_engine_sideload from recovery."
am: 1d77c93bcc

Change-Id: I110237afa38d616138e2ec8eec17b9c46b009a13
2016-11-20 18:19:37 +00:00
Tao Bao
1d77c93bcc Merge "Call update_engine_sideload from recovery." 2016-11-20 18:13:14 +00:00
Alex Deymo
9b10e6095a Call update_engine_sideload from recovery.
This patch enables sideloading an OTA on A/B devices while running from
recovery. Recovery accepts the same OTA package format as recent
versions of GMS, which consists of .zip file with the payload in it.

Bug: 27178350
TEST=`adb sideload` successfully a full OTA (*)
TEST=Failed to take several invalid payloads (wrong product,
fingerprint, update type, serial, etc).

<small>(*) with no postinstall script.</small>

Change-Id: I951869340100feb5a37e41fac0ee59c10095659e
(cherry picked from commit 4344d636d4)
2016-11-19 22:39:51 -08:00
Tao Bao
146f92ab3e Merge "updater: Refactor set_stage() and get_stage() functions."
am: c627cd6486

Change-Id: Ie4ff6fa512c875c6be65b02908eadb498d3f9644
2016-11-20 05:09:49 +00:00
Tao Bao
ad57e2ca2c Merge "update_verifier: Sync Android.mk with aosp-master." into stage-aosp-master 2016-11-20 05:06:00 +00:00
Tao Bao
c627cd6486 Merge "updater: Refactor set_stage() and get_stage() functions." 2016-11-20 05:04:54 +00:00
Tao Bao
fbde508ace bootloader_message: Remove the no-op blank line.
This single blank line was introduced by some cherry-pick, which is
causing merge conflicts.

Test: N/A
Change-Id: Ida527b76fca7cc916499c5f888476c8e51ba3eaa
2016-11-18 16:00:23 -08:00
Tao Bao
5422d80961 update_verifier: Sync Android.mk with aosp-master.
It's out of sync due to the cherry-pick in commit
d007cf2da2.

Test: mmma bootable/recovery
Change-Id: I286fe89c4c7d09de3a06d09f9a2b0cdecef326f5
2016-11-18 15:10:01 -08:00
Connor O'Brien
6fd51ffdaa Merge "Revert "Convert update_verifier to boot HIDL HAL""
am: fc6e8cae9c  -s ours

Change-Id: I767f58a16ec318d760c64782a2215e0bac60a283
2016-11-18 20:39:42 +00:00
Connor O'Brien
fc6e8cae9c Merge "Revert "Convert update_verifier to boot HIDL HAL"" 2016-11-18 20:24:58 +00:00
Connor O'Brien
30628db65c Revert "Convert update_verifier to boot HIDL HAL"
This reverts commit f50593c447.

Bug: 32973182
Change-Id: I5b14a812671ea02575cb452242ff1a6f05edb9c1
2016-11-18 20:16:53 +00:00
Tao Bao
bedf5fc11c updater: Refactor set_stage() and get_stage() functions.
Add read_bootloader_message_from() and write_bootloader_message_to() to
allow specifying the BCB device (/misc).

Also add testcases for set_stage() and get_stage().

Test: recovery_component_test passes.
Test: Build a recovery image and apply a two-step OTA package.
Change-Id: If5ab06a1aaaea168d2a9e5dd63c07c0a3190e4ae
2016-11-18 12:04:48 -08:00
Tao Bao
d109c788ad Merge "updater: Add testcase for package_extract_dir()."
am: 23e785935e

Change-Id: I9827d196b8cccd138e244a1aad64202baa1dd600
2016-11-18 17:45:58 +00:00
Tao Bao
23e785935e Merge "updater: Add testcase for package_extract_dir()." 2016-11-18 17:40:40 +00:00
Tao Bao
1036d36542 updater: Add testcase for package_extract_dir().
Test: recovery_component_test passes.
Change-Id: I3af4707bc42c7331ca961be8b967a53de82ea25b
2016-11-17 23:02:13 -08:00
Tao Bao
d2cd8b4d30 Merge "applypatch: Use unique_fd to avoid leaking FDs."
am: 2e5cf3c0bc

Change-Id: I4e4cabf7b58a691236ea193f5b11962b2bb740bd
2016-11-18 02:10:12 +00:00
Tao Bao
2e5cf3c0bc Merge "applypatch: Use unique_fd to avoid leaking FDs." 2016-11-18 02:02:43 +00:00
Tao Bao
100dba35f9 Merge "updater: Add "write_value()" function."
am: d00046b691

Change-Id: I016c1e2fda1fd0d2e85d07c79f36c27f3c8a8a22
2016-11-18 00:42:42 +00:00
Tao Bao
d00046b691 Merge "updater: Add "write_value()" function." 2016-11-18 00:16:41 +00:00
Tao Bao
9e4ba70b7f Merge "applypatch: Clean up LoadPartitionContents()."
am: c6ee8cf8df

Change-Id: I2c20eb8b2c8f5bba40e71f6b267152f3bfab0316
2016-11-17 20:14:40 +00:00
Tao Bao
c6ee8cf8df Merge "applypatch: Clean up LoadPartitionContents()." 2016-11-17 20:06:57 +00:00
Connor O'Brien
b9d1cd7713 Merge "Convert update_verifier to boot HIDL HAL"
am: 5b171d30ab  -s ours

Change-Id: I30f99aae371bf51c161c482e53c3032d321fb53a
2016-11-17 20:05:51 +00:00
Tao Bao
6e02ea92ec applypatch: Use unique_fd to avoid leaking FDs.
Add unique_fd that calls ota_close() instead of the default closer.

Test: recovery_component_test passes.
Test: Apply a package that calls apply_patch().

Change-Id: I0c19921731757934f76cf7d5215916673a8f2777
2016-11-17 12:01:44 -08:00
Connor O'Brien
5b171d30ab Merge "Convert update_verifier to boot HIDL HAL" 2016-11-17 19:07:21 +00:00
Tao Bao
8fce75a069 applypatch: Clean up LoadPartitionContents().
We don't need three vectors to sort the (size, SHA-1) pairs.

Test: recovery_component_test passes.
Test: Apply a package that calls apply_patch_check() to patch EMMC
      partitions.
Change-Id: I4a6620630a6711f490822cf30f1e7fe5cea6ce49
2016-11-17 00:02:52 -08:00
Tao Bao
d0f3088aa9 updater: Add "write_value()" function.
write_value(value, filename) writes 'value' to 'filename'. It can be
used to tune device settings when applying an OTA package. For example,
write_value("960000", "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq").

Bug: 32463933
Test: recovery_component_test passes.
Test: Apply an OTA package that contains a call to write_value(), and
      check the result.

Change-Id: Ib009ecb8a45a94353f10c59e2383fe1f49796e35
2016-11-16 15:51:53 -08:00
Rahul Chaudhry
849a911dee Merge "Remove unnecessary uses of reinterpret_cast."
am: c470dc8681

Change-Id: I44081a387bfc60ce9f9cacf5b8db0b9248c84c4d
2016-11-16 21:37:25 +00:00
Treehugger Robot
c470dc8681 Merge "Remove unnecessary uses of reinterpret_cast." 2016-11-16 21:27:32 +00:00