Commit Graph

5113 Commits

Author SHA1 Message Date
Tao Bao dd7e23a069 ui: Manage menu_ with std::vector.
am: 17fa5c7cab

Change-Id: Ifa4f8333a445bdf92a9cc19dacd2223260dcff45
2017-09-09 01:13:25 +00:00
Tao Bao 17fa5c7cab 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
(cherry picked from commit e15d7a5104)
2017-09-08 15:28:04 -07:00
Tao Bao ce2e47729e Merge "wear_ui: Remove Print()/ShowFile()/PutChar()." am: fa4f014063 am: 5f5ccacef7
am: 53bb5ff137

Change-Id: I63e10488999f16429c9ada2215de716bf4aceb2e
2017-09-08 21:57:34 +00:00
Tao Bao 8ca81ce581 Merge "ui: Manage menu_ with std::vector." am: f51bb0f2d6 am: 4e3e42bed8
am: 77425c5e15

Change-Id: I6bf15912d53af213fde9225061367e1edfb4c2ec
2017-09-08 21:57:15 +00:00
Tao Bao 53bb5ff137 Merge "wear_ui: Remove Print()/ShowFile()/PutChar()." am: fa4f014063
am: 5f5ccacef7

Change-Id: I287ef8936851abe69b50e1f3ca5f5dd0d752d9d6
2017-09-08 21:53:28 +00:00
Tao Bao 77425c5e15 Merge "ui: Manage menu_ with std::vector." am: f51bb0f2d6
am: 4e3e42bed8

Change-Id: I413c3d1734c51046784b9f2b94a2305023c2a890
2017-09-08 21:53:14 +00:00
Tao Bao 5f5ccacef7 Merge "wear_ui: Remove Print()/ShowFile()/PutChar()."
am: fa4f014063

Change-Id: If47ce2f16e839c10ac8447ef69eb40392abeaf00
2017-09-08 21:51:58 +00:00
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 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 ff0bcf6bef Merge "Improve imgdiff for large zip files" am: 9f48641784 am: e24e90f403
am: b2dac70423

Change-Id: If2923c5afd304893161e1b2949c7a6afa74306f3
2017-09-08 20:50:41 +00:00
Tianjie Xu b2dac70423 Merge "Improve imgdiff for large zip files" am: 9f48641784
am: e24e90f403

Change-Id: I2692f832b720bdf966263d35f8e0a0bab8fe0699
2017-09-08 20:48:45 +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 f05e2bcff2 wear_ui: Remove Print()/ShowFile()/PutChar().
They're mostly identical to the ones in ScreenRecoveryUI, except for the
(legacy) use of 'text_top_'. Because wear_ui.cpp misses the change in
[1] that uses an alternate screen for viewing recovery logs.

Also clean up the included headers.

[1] commit c049163234 ('Add an alternate
screen for viewing recovery logs.').

Test: Build a wearable target recovery; `View recovery logs`.
Change-Id: Ic9208c42a11c037469f5b073ef7d9b721c14d1f3
2017-09-08 12:22:43 -07: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 036dec3944 Merge "wear_ui: Remove PrintOnScreenOnly() and PrintV()." am: 8c753f6253 am: 0cada4da99
am: 0f7d56fe81

Change-Id: I0d3fcb92109bc5fa8bd84736b6228be90f800de9
2017-09-01 23:01:26 +00:00
Tao Bao 0f7d56fe81 Merge "wear_ui: Remove PrintOnScreenOnly() and PrintV()." am: 8c753f6253
am: 0cada4da99

Change-Id: I49803c522f3f40a0ac8d70b5bf1eaf83a2c7d2f8
2017-09-01 22:56:26 +00: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 27c4410a48 Merge "wear_ui: Remove backgroundIcon." am: 6e426f2b76 am: 3650e7c19b
am: b457e24fac

Change-Id: Id46eadff2d1f005fe6b57691924a0525866b7360
2017-09-01 18:21:08 +00:00
Tao Bao b457e24fac Merge "wear_ui: Remove backgroundIcon." am: 6e426f2b76
am: 3650e7c19b

Change-Id: Ibd04e9d48187a48389805eca796426df63aa31a4
2017-09-01 18:16:45 +00: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 a8c009106c Merge "Turn on -Wall for libedify" am: deb5de0bc1 am: 365059c61b
am: 36983d8dd0

Change-Id: I28fe4e12228bf6c75280c04f27407e2ee8588e67
2017-08-31 00:03:02 +00:00
Tianjie Xu 36983d8dd0 Merge "Turn on -Wall for libedify" am: deb5de0bc1
am: 365059c61b

Change-Id: Ib17d03c23bb3a94cbd886190ccfeb0a323d8143b
2017-08-30 23:43:24 +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
Bill Yi 5dac1e08ea Import translations. DO NOT MERGE
am: c16d222593  -s ours

Change-Id: Ie85856e9683cba8534abc07f4f7dbd0dee19ead9
2017-08-30 00:46:13 +00:00
Bill Yi c16d222593 Import translations. DO NOT MERGE
Auto-generated-cl: translation import
Exempt-From-Owner-Approval: translation import

Bug: 64712476
Change-Id: Ife1e0455a5433bc0cb0e15b0aabf2beef1ba8827
2017-08-29 13:28:09 -07:00
Tianjie Xu eb958f0d9e Merge "Turn on -Wall for recovery modules" am: 11f68b6b69 am: 44d0b008c6
am: 447da69c14

Change-Id: Ic2cba08a3e9f691f94e0adccc767ab0e7ea73d67
2017-08-29 17:45:17 +00:00
Tianjie Xu 447da69c14 Merge "Turn on -Wall for recovery modules" am: 11f68b6b69
am: 44d0b008c6

Change-Id: I61ffc86b34762e90e8be8225cb8ab9cc428c3b61
2017-08-29 17:38:28 +00: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 94c7f017d6 Merge "Add libasyncio." am: d179c923d8 am: d21fb1ece0
am: 4dc141e6ba

Change-Id: Ia52bb1b556822cfa3adbe89ec0e414da851f1213
2017-08-29 03:48:07 +00:00
Jerry Zhang 4dc141e6ba Merge "Add libasyncio." am: d179c923d8
am: d21fb1ece0

Change-Id: I8b42f0c03f8a95d6ce10cf7ac229106059273610
2017-08-29 03:43:03 +00: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 f0487569fa Merge "wear_ui: Remove kMaxCols/kMaxRows/visible_text_rows/menu_headers_." am: e9605b8ca0 am: d92baf5988
am: 35d36d1fa6

Change-Id: I12f355cba92116ddb2616248d846067041af6ec9
2017-08-28 20:06:26 +00:00
Tao Bao 99c932716a Merge "wear_ui: Remove dead 'self' and 'progress_t'." am: 2e125bec2f am: f351a576ce
am: 813120749d

Change-Id: I8a52750375fd46b43b8135d75fe1dd3940c8a36c
2017-08-28 20:06:07 +00:00
Tao Bao 35d36d1fa6 Merge "wear_ui: Remove kMaxCols/kMaxRows/visible_text_rows/menu_headers_." am: e9605b8ca0
am: d92baf5988

Change-Id: Id98f998569e0e07296d69030c3d555cd32203e70
2017-08-28 19:57:19 +00:00
Tao Bao 813120749d Merge "wear_ui: Remove dead 'self' and 'progress_t'." am: 2e125bec2f
am: f351a576ce

Change-Id: Ida6b81f4d87550503e6a77e7163c1c50ebe0e36a
2017-08-28 19:57:06 +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