Commit Graph

4966 Commits

Author SHA1 Message Date
Tao Bao 4e3e42bed8 Merge "ui: Manage menu_ with std::vector."
am: f51bb0f2d6

Change-Id: I16dfb5ee848cf97ee98626183aef8fdc228c8dae
2017-09-08 21:51:44 +00:00
Tao Bao f51bb0f2d6 Merge "ui: Manage menu_ with std::vector." 2017-09-08 21:43:41 +00:00
Tianjie Xu e24e90f403 Merge "Improve imgdiff for large zip files"
am: 9f48641784

Change-Id: I999525af80c5423da275025d977de10399140479
2017-09-08 20:46:47 +00:00
Tianjie Xu 9f48641784 Merge "Improve imgdiff for large zip files" 2017-09-08 20:38:52 +00:00
Tao Bao e15d7a5104 ui: Manage menu_ with std::vector.
Prior to this CL, menu_ is allocated with a fixed length of text_rows_.
However, because we support scrollable menu in wear_ui, there might be
more menu entries than text_rows_, which would lead to out-of-bounds
array access. This CL addresses the issue by switching to std::vector.

Bug: 65416558
Test: Run 'View recovery logs' on angler.
Test: Set large margin height that leaves text_rows less than 21. Then
      run 'View recovery logs' with 21 menu entries.
Change-Id: I5d4e3a0a097039e1104eda7d494c6269053dc894
2017-09-08 10:50:07 -07:00
Tianjie Xu 2903cddb58 Improve imgdiff for large zip files
Due to the cache size limit for OTA generation, we used to split large
zip files linearly into pieces and do bsdiff on them. As a result, i) we
lose the advantage of imgdiff; ii) if there's an accidental order change
of some huge files inside the zip, we'll create an insanely large patch.

This patch splits the src&tgt more smartly based on the zip entry_name.
If the entry_name is empty or no matching source is found for a target
chunk, we'll skip adding its source and later do a bsdiff against the
whole split source image (this rarely happens in our use cases except
for the metadata inside a ziparchive).

After the split, the target pieces are continuous and block aligned,
while the sources pieces are mutually exclusive. (Some of the source
blocks may not be used if there's no matching entry_name in the target.)
Then we will generate patches accordingly between each split image
pairs.

Afterwards, if we apply imgpatch to each pair of split source/target
images and add up the patched result, we can get back the original
target image.

For example:
Input: [src_image, tgt_image]
Split: [src-0,tgt-0; src-1,tgt-1, src-2,tgt-2]
Diff:  [  patch-0;     patch-1;    patch-2]

Patch: [(src-0,patch-0)=tgt-0; (src-1,patch-1)=tgt-1;
(src-2,patch-2)=tgt-2;]
Append: [tgt-0 + tgt-1 + tgt-2 = tgt_image]

Peformance:
For the small package in b/34220646, we decrease the patch size of
chrome.apk dramatically from 30M to 400K due to the order change of
two big .so files.

On two versions of angler, I also observe decent patch size decrease.
For chrome.apk, we reduced the size from 5.9M to 3.2M; and for
vevlet.apk from 8.0M to 6.5M.

Bug: 34220646
Test: recovery component test && apply imgdiff & imgpatch on two
chrome.apk
Change-Id: I145d802984fa805efbbac9d01a2e64d82ef9728b
2017-09-05 15:09:58 -07:00
Tao Bao 0cada4da99 Merge "wear_ui: Remove PrintOnScreenOnly() and PrintV()."
am: 8c753f6253

Change-Id: Iefb74df704f4065ff2e87197cb1a505215c8f384
2017-09-01 22:51:56 +00:00
Tao Bao 8c753f6253 Merge "wear_ui: Remove PrintOnScreenOnly() and PrintV()." 2017-09-01 22:26:31 +00:00
Tao Bao ee8a96a581 wear_ui: Remove PrintOnScreenOnly() and PrintV().
They're just copy/pastes from the base class (ScreenRecoveryUI).

Test: mmma bootable/recovery
Change-Id: I341416107a14d89d3366bba757da0b1abb988b15
2017-09-01 11:51:11 -07:00
Tao Bao 3650e7c19b Merge "wear_ui: Remove backgroundIcon."
am: 6e426f2b76

Change-Id: I08682bab314cdf925020d1104a9e1e79ddcee4b9
2017-09-01 18:10:37 +00:00
Tao Bao 6e426f2b76 Merge "wear_ui: Remove backgroundIcon." 2017-09-01 17:58:13 +00:00
Tianjie Xu 365059c61b Merge "Turn on -Wall for libedify"
am: deb5de0bc1

Change-Id: Iace07e47ed07ce3e7336ab93a22cdfd53cfca778
2017-08-30 23:32:51 +00:00
Tianjie Xu deb5de0bc1 Merge "Turn on -Wall for libedify" 2017-08-30 23:04:53 +00:00
Tianjie Xu c7cd918c15 Turn on -Wall for libedify
Bug: 64939312
Test: mma
Change-Id: Ia4afc6241b1f11ce261be6840f21a793b23014a6
2017-08-30 23:04:35 +00:00
Tao Bao 79127102e4 wear_ui: Remove backgroundIcon.
It's covered by the equivalent variable in ScreenRecoveryUI:
  GRSurface* error_icon;

Also refactor WearRecoveryUI::draw_background_locked() to get it
closer to ScreenRecoveryUI code.

Test: Build a wearable target recovery; Run graphics test.
Change-Id: I3a8d0e4dbf6fe170e4f3adde7eaf4a2043132a57
2017-08-30 15:32:41 -07:00
Tianjie Xu 44d0b008c6 Merge "Turn on -Wall for recovery modules"
am: 11f68b6b69

Change-Id: I5f0531de7880682c7dfe75a6274f41519e0c64d6
2017-08-29 17:34:28 +00:00
Tianjie Xu 11f68b6b69 Merge "Turn on -Wall for recovery modules" 2017-08-29 17:21:09 +00:00
Tianjie Xu c89d1e7e2a Turn on -Wall for recovery modules
Turn on -Wall for all modules. Also remove the obsolete file_cmp() in
apply_patch test and now() in wear_ui.

The only exception is lib_edify due to the unused functions in the
intermediate cpp files generated from the lex files. It will be handled
in a seperate CL.

Bug: 64939312
Test: mma, unit tests pass
Change-Id: Ic53f76b60b6401ab20db3d98130d674c08e3702f
2017-08-28 21:56:33 -07:00
Jerry Zhang d21fb1ece0 Merge "Add libasyncio."
am: d179c923d8

Change-Id: If89169d9c962fcbf2a347cd1cb781171421ea85b
2017-08-29 03:38:10 +00:00
Treehugger Robot d179c923d8 Merge "Add libasyncio." 2017-08-29 03:28:25 +00:00
Tao Bao d92baf5988 Merge "wear_ui: Remove kMaxCols/kMaxRows/visible_text_rows/menu_headers_."
am: e9605b8ca0

Change-Id: I4f2ee4b8f545151b76dc47791394e91959243bdf
2017-08-28 19:52:21 +00:00
Tao Bao f351a576ce Merge "wear_ui: Remove dead 'self' and 'progress_t'."
am: 2e125bec2f

Change-Id: Ied701c23bacf63048adce28b18cd6847f8134097
2017-08-28 19:52:06 +00:00
Tao Bao e9605b8ca0 Merge "wear_ui: Remove kMaxCols/kMaxRows/visible_text_rows/menu_headers_." 2017-08-28 19:42:12 +00:00
Tao Bao 2e125bec2f Merge "wear_ui: Remove dead 'self' and 'progress_t'." 2017-08-28 19:41:54 +00:00
Tao Bao 1e27d14eea wear_ui: Remove kMaxCols/kMaxRows/visible_text_rows/menu_headers_.
We've deprecated kMaxCols/kMaxRows in ScreenRecoveryUI since commit
aa0d6afb61. They unnecessarily limit the
screen size to 96x96 characters.

Also remove the recomputations of text_cols, visible_text_rows (which is
the same as text_rows_). Remove the unintentional hiding of menu_headers_.

Test: mmma bootable/recovery
Change-Id: I7d1526b651943312d62d52cd200414b42bf9b12a
2017-08-26 08:47:43 -07:00
Tao Bao cff8269e5c wear_ui: Remove dead 'self' and 'progress_t'.
They were once used for progress_thread() that's pthread_create'd by
WearRecoveryUI::Init(). They have become dead since the removal of
progress_thread() (commit ad8b5a6c11).

Also add the missing include of <pthread.h> for pthread_mutex_lock().

Test: lunch a watch target and `m recoveryimage`.
Change-Id: I748cf4511434ac4ce97dddf89b0e42e68a5da04b
2017-08-26 08:17:36 -07:00
Tianjie Xu 736be2f93e Merge "Add missing report of error code under recovery"
am: 571855b0e6

Change-Id: Ib425356561060c20e0f9643e2f5b302f5c9dd161
2017-08-24 22:25:10 +00:00
Tianjie Xu 571855b0e6 Merge "Add missing report of error code under recovery" 2017-08-24 22:10:25 +00:00
Tianjie Xu 3fec8c6419 Add missing report of error code under recovery
Add report of kMapFileFailure, kForkUpdateBinaryFailure and
kUpdateBinaryCommandFailure.

Test: unit test pass; kMapFileFailure reports correctly.
Change-Id: I858c81b6c750b5e300b1b12760b1f0fa8e23b47d
2017-08-23 00:18:07 -07:00
Tianjie Xu 7379a5290d Merge "Allow comparison against multi serial nums for A/B package" am: 3810046a55 am: e8b02d68e5
am: 968ebdeefd

Change-Id: I21de76c870001cb5faf145d5f39f8fb2cfa58a66
2017-08-22 23:23:07 +00:00
Tianjie Xu 968ebdeefd Merge "Allow comparison against multi serial nums for A/B package" am: 3810046a55
am: e8b02d68e5

Change-Id: Id75270416e1058776b7ed27a4a2d926895f9bf0e
2017-08-22 23:09:57 +00:00
Tianjie Xu e8b02d68e5 Merge "Allow comparison against multi serial nums for A/B package"
am: 3810046a55

Change-Id: Ic9e431b0d31c61484b04ce4f491a584b3eeba09c
2017-08-22 23:00:01 +00:00
Tianjie Xu 3810046a55 Merge "Allow comparison against multi serial nums for A/B package" 2017-08-22 22:40:47 +00:00
Tianjie Xu 69b9649e9b Allow comparison against multi serial nums for A/B package
The metadata file now can have multiple serial numbers in the format:
serialno=serialno1|serialno2|serialno3 ...
Verifier will pass the check if the device serial number matches any of
these numbers.

Bug: 64802465
Test: Create a metadata file with 1000 numbers and sideload in sailfish.
      The checker detects both match and mismatch cases.

Change-Id: I3f12b75e15f4179df260778e37f4563d65db0fa8
2017-08-22 12:05:52 -07:00
Tao Bao 0d0b6a0d2a Merge changes I5d7a6baa,Id0fb2d4e am: 89ad02206a am: cead180a2b
am: cdc6fcaa47

Change-Id: I50f470bc0f772a372a7e36f8726aa5a91b653939
2017-08-22 18:40:35 +00:00
Tao Bao cdc6fcaa47 Merge changes I5d7a6baa,Id0fb2d4e am: 89ad02206a
am: cead180a2b

Change-Id: Iebb98c53e659eae15a2092610ebcd1b57a939c96
2017-08-22 18:38:02 +00:00
Tao Bao cead180a2b Merge changes I5d7a6baa,Id0fb2d4e
am: 89ad02206a

Change-Id: If9a85999d04902e68a3c807d05f3796ac273d3d1
2017-08-22 18:30:56 +00:00
Tao Bao 89ad02206a Merge changes I5d7a6baa,Id0fb2d4e
* changes:
  wear_ui: Expose menu_unusable_rows via Makefile var.
  Allow customizing WearRecoveryUI via Makefile variables.
2017-08-22 17:44:16 +00:00
Tianjie Xu fc569d1516 Merge "Move Image/ImageChunk/PatchChunk declaration into header files" am: b4bc57ed39 am: b127fddf09
am: f5e3cadeca

Change-Id: Ic9056467184e272eec5c0aead3d4a712033b0503
2017-08-19 04:34:03 +00:00
Tianjie Xu f5e3cadeca Merge "Move Image/ImageChunk/PatchChunk declaration into header files" am: b4bc57ed39
am: b127fddf09

Change-Id: Ia1eb8977d076c5ee5557d850afaad5e4a689bc63
2017-08-19 04:30:33 +00:00
Tianjie Xu b127fddf09 Merge "Move Image/ImageChunk/PatchChunk declaration into header files"
am: b4bc57ed39

Change-Id: If254ed9e24bc0cafa19db9766ed36643ca0fed49
2017-08-19 04:27:34 +00:00
Tianjie Xu b4bc57ed39 Merge "Move Image/ImageChunk/PatchChunk declaration into header files" 2017-08-19 04:21:05 +00:00
Tianjie Xu 57dd961995 Move Image/ImageChunk/PatchChunk declaration into header files
1. Move the declaration of the Image classes to the header file to make
testing easier.
2. Also move rangeset.h to bootable/recovery to allow access in imgdiff.

Test: recovery component test
Change-Id: I68a863e60a3f2e7ae46ee48f48eb15391f5f4330
2017-08-18 17:56:22 -07:00
Tianjie Xu 14b3f5e5cc Merge "update_verifier now logs to kmesg" am: f7ad94313d am: 473606847a
am: 8c9c22a3a9

Change-Id: I2e9d3883edb4de803924ff127cf876cc1f6dd485
2017-08-17 19:26:35 +00:00
Tianjie Xu 8c9c22a3a9 Merge "update_verifier now logs to kmesg" am: f7ad94313d
am: 473606847a

Change-Id: I90f254955823bc815d96bf94ae1b2f37c2b0a44a
2017-08-17 19:22:59 +00:00
Tianjie Xu 473606847a Merge "update_verifier now logs to kmesg"
am: f7ad94313d

Change-Id: I24438ea3f7975608358cf676606dc54b98e7092a
2017-08-17 19:19:32 +00:00
Tianjie Xu f7ad94313d Merge "update_verifier now logs to kmesg" 2017-08-17 19:16:11 +00:00
Tao Bao 7f7d9b2f37 Merge "screen_ui: Fix a case that may truncate the last char." am: 2e99c38cfd am: 151126360e
am: 228a2f2a37

Change-Id: I5c672cbf0171be019f7240135f9cf6d26e68de9f
2017-08-17 00:48:48 +00:00
Tao Bao 228a2f2a37 Merge "screen_ui: Fix a case that may truncate the last char." am: 2e99c38cfd
am: 151126360e

Change-Id: Id7117e58e1353ce3e9929908a4de0e8f6f8fe1d2
2017-08-17 00:44:08 +00:00
Tao Bao 151126360e Merge "screen_ui: Fix a case that may truncate the last char."
am: 2e99c38cfd

Change-Id: I948a78eb97fbc098610d3410f126843e360e5f65
2017-08-17 00:42:39 +00:00