Commit Graph

4789 Commits

Author SHA1 Message Date
Tao Bao f0ca4f8f2d otafault: Add the missing #include <string>.
Test: mmma bootable/recovery
Change-Id: If7610ba55a2d2dd4257ff38c44d252c9c6bbfe40
2017-10-11 12:21:17 -07: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 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
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
Tao Bao efb49add97 ui: Move locale and friends into ScreenRecoveryUI class.
Localized texts only make sense on devices with screens.

Test: Run fake OTA on angler; check the on-screen texts.
Change-Id: I3a644294c8b1f2056cfb78b2d61a598b8ddf2acf
2017-09-11 12:19:32 -07:00
Tao Bao 568644197f Merge "ui: Remove text_top_." 2017-09-11 19:06:12 +00:00
Tao Bao 79a23b30d2 Merge "ui: Refactor the declaration orders." 2017-09-11 18:06:24 +00:00
Tao Bao 7577965ba1 ui: Refactor the declaration orders.
By grouping similar kinds together, in an order of types, constants,
ctor/dtor, all other methods and data members.

Also rename ScreenRecoveryUI::density_ to ScreenRecoveryUI::kDensity to
align with others.

Test: mmma bootable/recovery
Change-Id: I1ba2d15c05ba7be8c39762f3d9dadf1fb2130de4
2017-09-10 11:36:54 -07:00
Tao Bao cb5524c23a ui: Remove text_top_.
After the cleanup to WearRecoveryUI, text_top_ now always equals to
((text_row_ + 1) % text_rows_).

Test: Check the recovery UI and 'View recovery logs'.
Change-Id: I69a7f377bbd990db2194f9d3efae257c323c06a8
2017-09-08 23:31:31 -07:00
Tao Bao fa4f014063 Merge "wear_ui: Remove Print()/ShowFile()/PutChar()." 2017-09-08 21:44:40 +00:00
Tao Bao f51bb0f2d6 Merge "ui: Manage menu_ with std::vector." 2017-09-08 21:43:41 +00:00
Tianjie Xu 9f48641784 Merge "Improve imgdiff for large zip files" 2017-09-08 20:38:52 +00:00