Commit graph

3086 commits

Author SHA1 Message Date
Tianjie Xu
ab1abae59c Avoid to call UI functions in child process
ui_print uses a mutex to protect the critical section. And a forked
child process may intialize the mutex inappropriatly, which leads to a
hanging child process. So we shall avoid to call the UI functions in
child process.

Bug: 34769056
Test: fake ota on fugu failed as expected due to updater format mismatch.
Change-Id: I81bc942a796878fac19cf712512092c2b0d807c9
2017-02-03 20:35:40 +00:00
Alex Deymo
56ff8061b1 Merge "Remove '_static' suffix from libext2* references." 2017-01-25 23:48:43 +00:00
Treehugger Robot
c8f7b5bad7 Merge "Use flash erase & logical block size for userdata wipe" 2017-01-25 04:14:00 +00:00
Connor O'Brien
98a658bb54 Use flash erase & logical block size for userdata wipe
If flash erase and logical block size are available, then pass them
to libext4_utils when rebuilding userdata.

Test: Factory reset marlin in recovery, confirmed params passed correctly
Bug: 33243520
Change-Id: I6bed976a73e7a64a80eaac50f48fbacb6d812517
Signed-off-by: Connor O'Brien <connoro@google.com>
2017-01-24 18:04:02 -08:00
Tao Bao
a476312714 Merge "minui: Move callback functions to std::function." 2017-01-25 00:49:48 +00:00
Tao Bao
42906e06b3 Merge "update_verifier: Move property_get() to android::base::GetProperty()." 2017-01-24 23:37:22 +00:00
Tao Bao
90deaf9ab7 Merge "Print with newline for ui_print." 2017-01-24 04:54:52 +00:00
Alex Deymo
7c5dbd6751 Remove '_static' suffix from libext2* references.
Bug: 34220783
Test: make checkbuild
Change-Id: Iceea20e440a4bb6a3b254486a65a86401a2241ef
2017-01-23 15:18:29 -08:00
Chris Phoenix
cf1af460d5 Merge "bootctrl HAL uses "default" service name" 2017-01-23 20:48:32 +00:00
Tianjie Xu
c1df344381 Merge "Restore the max width for recovery background texts" 2017-01-23 20:37:12 +00:00
Tao Bao
0b1118d6b9 minui: Move callback functions to std::function.
Also make minor clean up to the header includes.

Test: mmma bootable/recovery system/core/healthd system/extra/slideshow
Change-Id: I3bfcf2c0e203c26a98ee08f1f8036c68356a69fd
2017-01-23 16:59:56 +00:00
Tianjie Xu
0f7031e295 Restore the max width for recovery background texts
Restore the max width to 900px for xxhdpi and 1200px for xxxhdpi

Bug: 34541299
Test: Checked width and images passed recovery_manual_test
Change-Id: If0fd51f93cfb3f965d4e9e69be5626eba89eb857
2017-01-22 18:46:04 -08:00
Tao Bao
f013642477 Print with newline for ui_print.
Currently the ui_print command between the recovery and updater doesn't
append newline. Updater has to send an extra "ui_print" command without
any argument to get the line break. This looks unnecessary. And not all
the callers (including the ones in bootable/recovery) are following this
protocol when sending the ui_print command.

This CL simplifies the protocol to always print with a newline for
ui_print command. When updating from an old recovery with the new
updater, all the ui_print'd strings would appear in one line as a side
effect. But a) it would only affect the text-mode UI, which won't be
shown to users; b) log files won't be affected.

Bug: 32305035
Test: Apply an update with the new updater on top of an old and new
      recovery image respectively.
Change-Id: I305a0ffc6f180daf60919cf99d24d1495d68749b
2017-01-21 20:43:45 -08:00
Chris Phoenix
0157c78674 bootctrl HAL uses "default" service name
The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.

Test: builds; verify HAL still works

In support of b/33844934

Change-Id: I5ce988128b0471384e1472298a0ae383df2b7c3e
Merged-In: I86c44aaaaf663e774c631a469ebf2b81619f89c4
2017-01-20 14:17:10 -08:00
Tao Bao
4f8d217971 update_verifier: Move property_get() to android::base::GetProperty().
Also make minor changes to android::base::ParseUint(), which accepts
std::string now.

Test: Flash an A/B device and make sure update_verifier works (by
      marking the active slot as successfully booted).

Change-Id: Id6e578671cb3c87160c2b6ca717ee618ecf2342a
2017-01-20 12:19:23 -08:00
Tao Bao
e78ca37656 Merge "imgpatch: Compile with ZLIB_CONST defined." 2017-01-20 20:15:57 +00:00
Tao Bao
087bc0c7d3 imgpatch: Compile with ZLIB_CONST defined.
So z_stream.next_in takes pointer to const data.

Test: mmma bootable/recovery/applypatch
Change-Id: If269b766a7c84fa2f67424ee61ba5afab0159261
2017-01-20 12:13:28 -08:00
Sen Jiang
37bda6a004 Merge "imgdiff: cache bsdiff suffix array in zip mode." 2017-01-19 20:45:27 +00:00
Tianjie Xu
69e73ab7a9 Merge "Add checkers and tests for empty locale in PNG file" 2017-01-19 19:17:18 +00:00
Tianjie Xu
d17a688525 Add checkers and tests for empty locale in PNG file
match_locale() will return false for empty locale string in the PNG
file. Also add a manual test to validate if a PNG file is qualified to
use under recovery.

Bug: 34054052
Test: recovery_manual_test catches invalid PNG files successfully & Locale_test passed

Change-Id: Id7e2136e1d8abf20da15825aa7901effbced8b03
2017-01-18 19:37:06 -08:00
Sen Jiang
930edb6661 imgdiff: cache bsdiff suffix array in zip mode.
In zip mode, if a chunk is not deflate or its filename can't be found
in source chunks, the entire source file is used as old data for bsdiff,
To avoid repeatedly construct the suffix array used by bsdiff, we cache
the suffix array of the entire source file.

Bug: 34281147
Test: =time -v imgdiff -z Chrome-ORF74B.apk Chrome-ORF76B.apk Chrome.imgdiff
Change-Id: Ifd957ccecf7226fcb44dbf28c58969a06ef74f4b
2017-01-18 17:26:42 -08:00
Tao Bao
13d15af08f Merge "minui: Export minui/minui.h." 2017-01-17 19:08:48 +00:00
Tao Bao
0ecbd76b22 minui: Export minui/minui.h.
For libminui static and shared libraries.

Test: build
Change-Id: Ib30dc5e2ef4a3c8b3ca3a0cec68cb65e229a0c16
2017-01-16 21:28:18 -08:00
Tao Bao
ebb4e96a71 Merge "recovery: Move property_get() to android::base::GetProperty()." 2017-01-14 15:37:01 +00:00
Tianjie Xu
f0af02fea6 Merge "Update background text images in recovery" 2017-01-13 23:02:17 +00:00
Tao Bao
efc35594dd recovery: Move property_get() to android::base::GetProperty().
Test: Apply two A/B incremental OTAs with the new recovery image. The
      one with incorrect pre-build should be blocked, while the other
      works fine.

Change-Id: I94d97eb8798599da1630f66343fb603e87464187
2017-01-13 12:08:34 -08:00
Alex Deymo
8031c2d2bb Merge changes from topic 'host_suffix_cleanup'
* changes:
  Remove "_static" suffix from libsparse
  Remove "_static" suffix from libext4_utils.
2017-01-12 21:23:10 +00:00
Alex Deymo
67f3aa8804 Remove "_static" suffix from libsparse
Bug: 34220783

Change-Id: I358f931f0b29f5bd526e1475180e477e2e90b936
2017-01-11 14:38:30 -08:00
Alex Deymo
31653660ad Remove "_static" suffix from libext4_utils.
Bug: 34220783
Change-Id: I34ccc3b11da0d1b48805967ad75b9ddade569930
2017-01-11 14:02:13 -08:00
Tianjie Xu
37d74f3e20 Merge "Do not inject I/O fault on a retry" 2017-01-10 19:00:15 +00:00
Elliott Hughes
77ec0071cf Merge "Address review comment." 2017-01-10 00:55:53 +00:00
Tianjie Xu
4728242070 Do not inject I/O fault on a retry
We could inject I/O faults during an OTA update for test purpose. But we
should skip the injection if the update is an retry. Otherwise the
update test will simply keeps failing.

Bug: 34159970
Test: Apply the same package on angler and the update succeeds on the 2nd try.
Change-Id: Id274e5475e3bc8d25d50a8cf61a77d2e32c569d6
2017-01-09 14:51:15 -08:00
Elliott Hughes
ff8fdc955a Address review comment.
Bug: N/A
Test: N/A
Change-Id: I9467286e57522c6ed640a3599cb678ac10d9e2a4
2017-01-09 14:28:42 -08:00
Elliott Hughes
2fc1ff3b32 Merge "Move to .md files for even trivial documentation." 2017-01-09 22:25:53 +00:00
Tao Bao
33808f16c5 Merge "recovery: Fix the argument parsing." 2017-01-09 21:28:19 +00:00
Tao Bao
570af9dca3 recovery: Fix the argument parsing.
Commit f0ed159f48 unintentionally changed
the behavior when parsing the arguments from BCB and command file. It
should only parse the command file for arguments if BCB doesn't supply
any.

As a result, it shows the following from the log:
I:Got 2 arguments from boot message
I:Got 3 arguments from /cache/recovery/command

Test: Set arguments in BCB and command file both. It should only use the
      arguments from BCB.

Change-Id: Idf371137aa9177f1b2dfdfecf0c9f46959d2ee76
2017-01-09 10:35:42 -08:00
Elliott Hughes
7a890e5cf5 Move to .md files for even trivial documentation.
So it's automatically displayed for folks browsing the source.

Bug: N/A
Test: N/A
Change-Id: Ie9b190072ebdf0faf06cc1fd7b3467c031056753
2017-01-07 12:49:32 -08:00
Tianjie Xu
ceafe69fb8 Merge "Retry ioctl in uncrypt if it returns block# 0" 2017-01-07 01:11:13 +00:00
Tianjie Xu
a78b2d2256 Update background text images in recovery
Locale texts are missing in the recovery log due to an extra empty
locale chunk in the png file. Fix the bug in the app and regenerate all
the background texts and compress the file with pngcrush + zopflipng.

Bug: 34054052
Test: Locale texts logged successfully on angler
Change-Id: I89f823a53c1eb69756183e8e11113216d093304f
2017-01-07 00:32:40 +00:00
Treehugger Robot
095675a3eb Merge "recovery: Clean up try_update_binary() in install.cpp." 2017-01-06 19:07:59 +00:00
Tao Bao
478a5ec9c7 Merge "tests: Add testcase for show_progress() and set_progress()." 2017-01-06 17:42:29 +00:00
Tao Bao
20c581e35d recovery: Clean up try_update_binary() in install.cpp.
Move functions over to android::base versions.
- strtok(3) => android::base::Split()
- strtol(3) => android::base::ParseInt()
- strtof(3) => android::base::ParseDouble()

Test: Build recovery image and apply a package that calls ui_print /
      progress / set_progress commands.
Change-Id: I953b4985e0bd9e277362ae53e233d755cf27d80c
2017-01-06 09:25:32 -08:00
Tao Bao
9aa7ab5b10 tests: Add testcase for show_progress() and set_progress().
Test: recovery_component_test passes.
Change-Id: I4f00d0171cf86699e9ce747d07d7d44a01906e81
2017-01-05 17:50:10 -08:00
Tao Bao
91f74c82cd Merge "updater: Clean up CreateStash()." 2017-01-05 21:14:43 +00:00
Tao Bao
3b828d879b Merge "imgdiff: Fix an edge case that leads to infinite loop." 2017-01-04 21:59:26 +00:00
Jerry Zhang
1302ea8725 Merge "Write aliases before ffs mount in recovery" 2017-01-04 19:24:02 +00:00
Jerry Zhang
a61a672674 Write aliases before ffs mount in recovery
This is necessary to support kernel changes
that allow for multiple ffs functions. Some
kernels require aliases in order to name
function instances before mount time.

Test: Reboot into recovery, verify adb works
Bug: 34070894
Change-Id: I8376304d92af9b3e8c734fdb8cc77f0dc8bc4850
2017-01-04 11:20:19 -08:00
Tao Bao
56fc8fa376 Merge "recovery: Fix the broken UI text." 2017-01-04 19:11:24 +00:00
Tao Bao
736d59c567 recovery: Fix the broken UI text.
UI text is broken (doesn't show any text during FDR) due to commit
d530449e54, which reordered the calls to
RecoveryUI::SetLocale() and RecoveryUI::Init().

Because Init() uses the locale info to load the localized texts (from
images), the locale must be set prior to that via SetLocale(). This CL
refactors Init() to take the locale parameter, and removes the odd
SetLocale() API.

Bug: 34029338
Test: 'Run graphics test' under recovery.
Change-Id: I620394a3d4e3705e9af5a1f6299285d143ae1b01
2017-01-03 22:40:03 -08:00
Tao Bao
466e1b396a Merge "updater: Refactor parse_range()." 2017-01-04 06:06:22 +00:00