Commit graph

4797 commits

Author SHA1 Message Date
Tao Bao
0bf20d5133 Don't include "error_code.h" in edify/expr.h.
Use forward declartion to avoid pull in the module that contains
error_code.h (trying to move it into libotautil). Otherwise all the
modules that include "edify/expr.h" need to depend on the module that
exports error_code.h.

.cpp sources should include "error_code.h" explicitly to use the enums.

Test: lunch aosp_{angler,bullhead,dragon,fugu,sailfish}-userdebug;
      mmma bootable/recovery
Change-Id: Ic82db2746c7deb866e8cdfb3c57e0b1ecc71c4dc
2017-10-05 12:46:18 -07:00
Tao Bao
9baa19012a Merge "graphics: add rotation logic" 2017-10-05 19:00:50 +00:00
Tao Bao
b23d29642d Merge "Revert "Move error_code.h into otautil."" 2017-10-05 17:18:04 +00:00
Tao Bao
26436d6d60 Revert "Move error_code.h into otautil."
This reverts commit 623fe7e701.

Reason for revert: Need to address device-specific modules.

Change-Id: Ib7a4191e7f193dfff49b02d3de76dda856800251
2017-10-05 17:16:31 +00:00
Tao Bao
916e155bab Merge "Move error_code.h into otautil." 2017-10-05 16:04:02 +00:00
Tao Bao
623fe7e701 Move error_code.h into otautil.
This way it stops requiring relative path ".." in LOCAL_C_INCLUDES
(uncrypt and edify). Soong doesn't accept non-local ".." in
"local_include_dirs".

Test: mmma bootable/recovery
Change-Id: Ia4649789cef2aaeb2785483660e9ea5a8b389c62
2017-10-04 08:55:24 -07:00
Tao Bao
281d4eefb1 Merge "edify: Remove edify_parser." 2017-10-04 15:48:18 +00:00
Treehugger Robot
2cedab7af9 Merge "otautil: Export headers." 2017-10-03 23:34:36 +00:00
Treehugger Robot
16817312a6 Merge "screen_ui: stage marker positioning" 2017-10-03 23:07:35 +00:00
Tao Bao
6e4a9ae51a edify: Remove edify_parser.
It used to be containing some unit tests for basic edify syntax, which
has been moved into recovery_component_test (commit
d770d2e7af).

The edify_parser host tool supports edify built-in functions only, but
doesn't recognize the ones defined in updater. This makes it much less
useful to do any real analyzing work.

Test: mmma bootable/recovery
Change-Id: I3c12f5402d2d6698e0ef5ac6c2e7804c0fbba78a
2017-10-03 14:55:23 -07:00
Tao Bao
cfe53c2c01 otautil: Export headers.
Test: mmma bootable/recovery
Change-Id: Ic01b68e2a394d578fc9fc09da2dabe9061b98122
2017-10-03 14:41:32 -07:00
Tao Bao
dd7a4b5264 Merge "roots: Fix an issue with volume_for_path()." 2017-10-02 20:48:50 +00:00
Treehugger Robot
88aa128e22 Merge "Use -Werror in bootable/recovery" 2017-10-02 20:25:32 +00:00
Chih-Hung Hsieh
5aa77ca73d Use -Werror in bootable/recovery
* Move -Werror from cppflags to cflags.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: I59147fe24d8b48a0403c67ba07d4d384b8e9c5a3
2017-10-02 11:45:48 -07:00
Tao Bao
3e18f2bf40 roots: Fix an issue with volume_for_path().
The earlier commit in 2dfc1a3898
unintentionally changed the behavior. It gives a different result when
looking up non-existent mount points (e.g. /cache on marlin).

The logic behind volume_for_path("/xyz") is unclear:
- It's fine to return non-null value if it's called by
  ensure_path_mounted() before accessing that file "/xyz". (Just based
  on the function name, we're not actually having this case.)
- It should return nullptr if the caller is interested in the existence
  of that particular mount point "/xyz".

This CL renames the function to volume_for_mount_point(), which does an
exact match by querying the given mount point from libfs_mgr. The former
volume_for_path() has been moved down to function scope for serving
ensure_path_mounted() only.

Test: Build and boot into recovery on bullhead and marlin respectively.
      'View recovery logs'.
Test: 'Mount /system'
Test: 'Apply update from ADB'
Change-Id: I1a16390f57540cae08a2b8f3d439d17886975217
2017-10-02 11:18:13 -07:00
Tao Bao
e8ee697364 Merge "roots: Remove #include "common.h"." 2017-10-02 17:44:27 +00:00
Luke Song
eee1e7656f screen_ui: stage marker positioning
Small fix to position stage markers above screen margin.

Bug: 65556996
Test: Viewed graphics test
Change-Id: Idb4a56b06b8ec4e6653b3d3f3a446fa491f5ccb7
2017-09-29 14:19:23 -07:00
Tao Bao
475794a9af Merge "otafault: Move to soong." 2017-09-29 21:07:21 +00:00
Tao Bao
4289deaf82 Merge "otafault: Move headers under otafault/." 2017-09-29 19:30:16 +00:00
Tao Bao
a26e32d2a3 otafault: Move to soong.
Test: mmma bootable/recovery
Change-Id: I5f2520ea457ba66743aa3aa1d5b3b488a93084a3
2017-09-29 11:05:24 -07:00
Tao Bao
ad774b2970 roots: Remove #include "common.h".
And add the missing include of <string.h> (e.g. for strcmp(3)).

Minor update to the arg of fs_mgr_get_entry_for_mount_point(), which now
accepts std::string.

Test: mmma bootable/recovery
Change-Id: I9cb8c31fe71b5a053f4d84bf1aba00e96c02ed03
2017-09-29 11:03:08 -07:00
Tianjie Xu
e687c5a1e1 Merge "Move the png open and destroy functions into a class" 2017-09-29 17:34:20 +00:00
Tao Bao
d33b2f86b7 otafault: Move headers under otafault/.
Test: mmma bootable/recovery
Change-Id: I3ceb72f703c7c2857d656c137d71baa1fccd8238
2017-09-29 10:29:53 -07:00
Tao Bao
50f5a54a1e Merge "otafault: Remove the use of LOCAL_WHOLE_STATIC_LIBRARIES." 2017-09-29 17:08:01 +00:00
Tao Bao
d9373cf621 Merge "otafault: Clean up header inclusion." 2017-09-29 16:10:41 +00:00
Treehugger Robot
846f307c6f Merge "Integer overflow observed while formatting volume" 2017-09-29 05:09:23 +00:00
Tao Bao
646b05a66c otafault: Remove the use of LOCAL_WHOLE_STATIC_LIBRARIES.
Commit d80a99883d has explanation of
potential issues.

Test: mmma bootable/recovery
Change-Id: I25ca9920952b7bbdd8a661d9dc90962431410bc4
2017-09-28 18:25:10 -07:00
Tao Bao
ac27a7a987 otafault: Clean up header inclusion.
Remove unneeded #includes. Also remove unneeded dependency on libz and
libselinux.

Test: mmma bootable/recovery
Change-Id: Ic8f7f46f4b89762dee384921504489de75320ac0
2017-09-28 18:25:04 -07:00
Tianjie Xu
acba38c288 Move the png open and destroy functions into a class
The open_png() function used to open the png file but didn't close it;
and this caused the leak of fd. However, we cannot close the file inside
open_png() because the png file needs to remain open until the outer
function finishes parsing the file and destroys the png struct.

This CL addresses this issue by implementing a PngReader class to handle
the creation/destruction of the png struct.

Bug: 67010912
Test: Run graphic tests; also run locale tests and check fd.
Change-Id: I9a803b3cd8c16f16a9ffe8f0acc7fe0f42e95eb0
2017-09-28 15:29:37 -07:00
Tao Bao
3a1587f655 Merge "roots: volume_for_path() parses and tries prefixes." 2017-09-28 21:12:53 +00:00
Luke Song
846012fc44 graphics: add rotation logic
Bug: 65556996
Bug: 63541890
Test: Tried 4 rotations, viewed logs and graphics test
Change-Id: I2a6c18c28df03f0461663f63bf16db32c45211ec
2017-09-28 14:11:35 -07:00
Tao Bao
2dfc1a3898 roots: volume_for_path() parses and tries prefixes.
Commit cc323958f99e40fea06c511656c69c0b2e2d47f7 in system/core has
changed fs_mgr_get_entry_for_mount_point() to do an exact match only,
which breaks the behavior in volume_for_path().

This CL changes the volume_for_path() implementation to parse and pass
prefixes locally. For a given path like "/cache/recovery/last_log", it
will in turn attempt the prefixes of "/cache/recovery/last_log",
"/cache/recovery", "/cache", "/" and return the first hit.

Bug: 63912287
Test: Build and boot into recovery image on bullhead. 'View recovery
      logs' works.
Change-Id: Ic8635b0939649dd5cc9ca501ebc3a2d1fbf5849d
2017-09-27 13:22:17 -07:00
Tianjie Xu
4c7608f3ca Merge "Add a new option in recovery menu to test the background texts" 2017-09-27 17:39:05 +00:00
Tianjie Xu
29d5575fa8 Add a new option in recovery menu to test the background texts
Add a new option "Run locale test" to check the background text
images (i.e. texts for "erasing", "error", "no_command" and "installing"
with different locales.)

Use volume up/down button to cycle through all the locales embedded in
the png file, and power button to go back to recovery main menu.

Test: Run locale test with bullhead.
Change-Id: Ib16e119f372110cdb5e611ef497b0f9b9b418f51
2017-09-27 00:27:38 -07:00
Tao Bao
151f0820ac Merge "clang-format: Remove the override of PenaltyExcessCharacter." 2017-09-27 00:57:55 +00:00
Tianjie Xu
7f54fe8841 Merge "Output split information for imgdiff when handling large apks" 2017-09-26 23:57:40 +00:00
Tao Bao
a1f6980af7 clang-format: Remove the override of PenaltyExcessCharacter.
So it falls back (from 32) to the default value in Google style:
PenaltyExcessCharacter: 1000000

This way it no longer allows lines exceeding the 100-char limit.

const char* x[] = { "long enough so that the line has 101 chars", nullptr };

  would become

const char* x[] = { "long enough so that the line has 101 chars",
                    nullptr };

Test: clang-format the line above.
Change-Id: If578dbdae55d6d81f5e47889890e2afa12b4199a
2017-09-26 15:07:45 -07:00
Tianjie Xu
c0123e0c3a Merge "update the recovery background image with new translation" 2017-09-21 22:05:29 +00:00
Tianjie Xu
82582b4562 Output split information for imgdiff when handling large apks
Add a mandatory option in imgdiff to write the split info (i.e.
patch_size, tgt_size, src_ranges) to file when handling large apks.
Therefore, the caller of imgdiff can create split transfers based on
the info.

Bug: 63542719
Test: unit tests pass
Change-Id: I853d55d1f999fd576474faa81077f7307f4d856d
2017-09-21 11:42:16 -07:00
Tianjie Xu
4a47a3e41f update the recovery background image with new translation
Test: recovery manual test && run graphic test under recovery
Change-Id: I2bc514a07a12276f42adb1eec5e208190b4602f2
2017-09-19 23:36:28 -07:00
Treehugger Robot
a815d3fb59 Merge "recovery: reduce overall boot time" 2017-09-18 23:37:59 +00:00
Mark Salyzyn
61744b95d0 recovery: reduce overall boot time
Move recovery-refresh and recovery-persist to onshot exec_background.
synchronous exec commands impact boot time.

Test: none
Bug: 65736247
Change-Id: Ic065c27b21f9bacbadee1e8c07bb15e2c41e0082
2017-09-18 13:55:32 -07:00
Tianjie Xu
ca5a071307 Merge "Fix the dangling pointer when setting up arguments of imgdiff" 2017-09-17 21:39:09 +00:00
Tianjie Xu
8ba7c45e0b Fix the dangling pointer when setting up arguments of imgdiff
Test: unit tests pass
Change-Id: If884e805ccd4df73671ab3436eb90860786ff6c9
2017-09-13 14:05:42 -07:00
Tao Bao
6e7df82c7b Merge "Remove EXPAND/STRINGIFY macros." 2017-09-13 20:53:53 +00:00
Tao Bao
bd0ddcd5e8 Remove EXPAND/STRINGIFY macros.
This reverts commit 8be0f39fec to reland
the change that removes EXPAND/STRINGIFY macros.

It's error-prone by putting anything into a string (e.g.
EXPAND(RECOVERY_API_VERSION) would become "RECOVER_API_VERSION" if we
forgot to pass -DRECOVERY_API_VERSION=3).

The initial attempt put RECOVERY_API_VERSION into common.h, which might
be included by device-specific codes but without defining that when
compiling the module. This CL avoids the issue by using a constant
in the header, with a static_assert in recovery.cpp that guards the
consistency.

Test: recovery_component_test
Test: Sideload OTAs on bullhead and sailfish respectively.
Change-Id: I12af3f73392a85554ba703f04970ec9d984ccbaa
2017-09-13 10:51:09 -07:00
Tianjie Xu
64307daf5b Merge "Close cmd_pipe properly after updater test finishes" 2017-09-12 19:14:38 +00:00
Abhishek Arpure
4fec8e9e9a Integer overflow observed while formatting volume
While calculating volume size, get_block_device_size() returns
u64 value but the returned value is assigned in ssize_t variable.
This may cause integer overflow if the volume size is beyond
ssize_t limit.

Use int64_t instead of ssize_t in get_file_size() and explicitly check
for overflow to fix the issue.

Bug: 65001754
Test: mmma bootable/recovery
Change-Id: I91eb30bff0bf7dcc48678efc2f414d2b79af6d0d
2017-09-11 17:13:15 -07:00
Tao Bao
fc570c317b Merge "ui: Move locale and friends into ScreenRecoveryUI class." 2017-09-11 21:43:03 +00:00
Tianjie Xu
79327ac21d Close cmd_pipe properly after updater test finishes
Otherwise the test may fail after a large number of iterations due to
file open failure.

Bug: 65430057
Test: run recovery_component_test on sailfish for 2000 iterations.
Change-Id: I0d456284d6064467038911d63eade95740cbec2c
2017-09-11 14:38:49 -07:00