Commit graph

3043 commits

Author SHA1 Message Date
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
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
Tao Bao
c844c06faf updater: Refactor parse_range().
Returning the parsed RangeSet directly (as opposed to using some pointer
parameter) to make the code cleaner.

Test: Apply an incremental with the new updater.
Change-Id: I8c99e701f189eb6a3eacc0d647e5a3a85fbeb3eb
2017-01-03 17:51:30 -08:00
Tao Bao
71633ebfb0 Merge "Remove outdated reference to icon_installing.png" 2017-01-04 01:26:56 +00:00
Tim Kryger
825b6b0c0b Remove outdated reference to icon_installing.png
The Wear recovery UI doesn't draw the installing icon but it was still
trying to open it.  Ever since these images were removed eight months
ago, this has resulted in an error printing to the screen at runtime.
Since the image wasn't really used, the lines to open it can simply be
removed.

Bug: 33203397
Change-Id: Id820f6d75e316c51d19b6095df407ecd61c0410e
(cherry picked from commit 48be23c8ed)
2017-01-03 16:28:13 -08:00
Tao Bao
f9684c22c1 Merge "updater: Update the header name for bootloader.h." 2017-01-03 23:45:02 +00:00
Tao Bao
5141221211 updater: Clean up CreateStash().
Change the stash size computation from int to size_t.

Test: Apply an incremental BBOTA with the new updater.
Change-Id: Ib45b71b826fec6aa0ffafc67c17735825634eae0
2016-12-28 16:22:16 -08:00
Tao Bao
0d3f84f237 updater: Update the header name for bootloader.h.
We should include "bootloader_message/bootloader_message.h" now.

Test: m updater
Change-Id: I65b22a8a0bcc5976ff1ba827bd30b46ee9d59c53
2016-12-28 15:09:20 -08:00
Tao Bao
d37ce8f082 imgdiff: Fix an edge case that leads to infinite loop.
When the input image ends with the magic value sequence of 0x1f, 0x8b,
0x0b (optionally with 0x00), the image parsing code will be stuck in an
infinite loop.

Test: recovery_component_test passes.
Change-Id: Ie3629dfdc41360387b19cc3e0359c95ae4fb998e
2016-12-28 14:29:48 -08:00
Tao Bao
b8d6523acf Merge "applypatch: Don't expose FindMatchingPatch()." 2016-12-28 22:11:49 +00:00
Tao Bao
c8e79340e4 applypatch: Don't expose FindMatchingPatch().
Test: make
Change-Id: Ic77c4669574b6129e06aa6051804f419bcc8196c
2016-12-28 10:11:22 -08:00
Tao Bao
344c8eb453 Merge "Add tests for imgdiff." 2016-12-28 18:05:45 +00:00
Tao Bao
f24d2a6b39 Merge "tests: Add test coverage for DirUtil." 2016-12-23 17:22:51 +00:00
Tao Bao
f19295c5dc tests: Add test coverage for DirUtil.
Test: recovery_unit_test passes.
Change-Id: I764c56404c7ccdd57ae5486c946fbc9ac6ae7bc9
2016-12-22 09:57:49 -08:00
Tao Bao
3b9645288e Merge "tests: Replace the O_RDONLY in access(2)." 2016-12-22 17:13:44 +00:00
Tao Bao
aa305e9ce8 Merge "tests: Add testcase for ZipUtil." 2016-12-22 17:13:30 +00:00
Treehugger Robot
7ec4e6f5a3 Merge "Support a "ask before wiping" boot flag." 2016-12-22 15:52:43 +00:00
Tao Bao
e7e7b46666 tests: Add testcase for ZipUtil.
Test: recovery_unit_test passes.
Change-Id: I8ad364e88aaee31579ed7206aad8e5620518d797
2016-12-21 20:39:58 -08:00
Tao Bao
a3ece96f9f tests: Replace the O_RDONLY in access(2).
Although O_RDONLY gives the same value as F_OK (0), it's not the right
friend of access(2).

Also clean up the temporary files from ZipTest (TemporaryDir doesn't
like non-empty directory).

Test: recovery_unit_test passes and has no leftover.
Change-Id: I66b90e43c0954c89ce08b36b9e2b4e84183b28f5
2016-12-21 18:56:53 -08:00
Paul Crowley
08404b48f7 Support a "ask before wiping" boot flag.
In the event of a catastrophic data error which should never happen,
ask the user before wiping the device.

Test: Cause an init builtin to fail and generate this error, observe.
Bug: 28693324
Change-Id: I38a2b815157d816cba1f30ad37eb4cdcc01db582
2016-12-21 13:38:48 -08:00
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 Bao
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 Bao
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 Bao
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 Jiang
8c1584feaf Merge "Add a stub recovery UI." 2016-12-14 21:50:49 +00:00
Treehugger Robot
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 Bao
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 Bao
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 Bao
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 Bao
d6a5005fcb Merge "clang-format: Adjust short functions / if settings." 2016-12-13 18:13:56 +00:00
Tao Bao
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 Bao
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 Bao
f28afc191d Merge "write_bootloader_message(<options>) should not reset stage field." 2016-12-09 22:33:49 +00:00