Commit graph

7570 commits

Author SHA1 Message Date
Yifan Hong
d81b8e3d77 roots.cpp: convert to C++ Fstab
Convert code to use C++ Fstab struct and C++ std::strings.

Bug: 62292478
Bug: 118634720
Test: boots
Change-Id: Ibdc1df5831bc885d7c1574419f41af026e49a137
2018-12-18 15:57:29 -08:00
Zhomart Mukhamejanov
faf656f3a7 Merge "Add verification before downloading whole package" am: 2e7393dbde am: e84953e9aa
am: d09708940c

Change-Id: Iffa2427f16444a1d51231caa35f26ae8961439fe
2018-12-17 22:45:34 -08:00
Zhomart Mukhamejanov
d09708940c Merge "Add verification before downloading whole package" am: 2e7393dbde
am: e84953e9aa

Change-Id: I71194f48fb58883ab3b64371c4cf9042bf6f84bb
2018-12-17 22:35:27 -08:00
Zhomart Mukhamejanov
e84953e9aa Merge "Add verification before downloading whole package"
am: 2e7393dbde

Change-Id: Ib85a3b957d0350122fa7f004f8f7e66667cde742
2018-12-17 22:31:24 -08:00
Zhomart Mukhamejanov
2e7393dbde Merge "Add verification before downloading whole package" 2018-12-18 06:19:59 +00:00
Zhomart Mukhamejanov
7b49244f04 [automerger skipped] Merge "Add PrepareUpdateService." am: 2e33cbeb20 am: 1811a6b734
am: c244b509ff  -s ours

Change-Id: I50fe80fb1eb62325c3c9d9410f5c247108fbf1ca
2018-12-17 14:37:37 -08:00
Zhomart Mukhamejanov
c244b509ff Merge "Add PrepareUpdateService." am: 2e33cbeb20
am: 1811a6b734

Change-Id: Ibaf4cb155fe3f7043c53d070e4e05ee3c33b6721
2018-12-17 14:33:35 -08:00
Zhomart Mukhamejanov
1811a6b734 Merge "Add PrepareUpdateService."
am: 2e33cbeb20

Change-Id: I5f62286c5454ab5e44d73e99daad3345c1841024
2018-12-17 14:29:31 -08:00
Zhomart Mukhamejanov
c18d488658 Add verification before downloading whole package
UpdateEngine has a feature that verifies
payload without downloading the whole update package.

If UpdateEngine detects invalid payload,
the sample app aborts the update.

No JUnit tests, because it accesses files on the
device and migrating tests to robolectric
is not worth for this sample app.

Bug: 77150191
Test: device
Change-Id: Ib8ce73508a02cf5fdcb326d8ba46c1d05ed5efe5
2018-12-17 14:24:25 -08:00
Zhomart Mukhamejanov
2e33cbeb20 Merge "Add PrepareUpdateService." 2018-12-17 22:19:25 +00:00
Nick Kralevich
cc2879d8b6 Merge "use epoll_create1" am: a8d712ec50 am: 649d2d35dc
am: 78f126e5a2

Change-Id: Ia00a035f2d671baabba7c1a2ed89b703e2241c2a
2018-12-17 14:13:29 -08:00
Nick Kralevich
78f126e5a2 Merge "use epoll_create1" am: a8d712ec50
am: 649d2d35dc

Change-Id: I3067b7381fca78ea7ed862f81dee9efac2f69f1b
2018-12-17 14:05:25 -08:00
Tao Bao
4b93ac7427 Merge "applypatch: Fix comparison of integers of different signs." am: dfbdaf3f1d am: acdb8d8d18
am: b78c30c394

Change-Id: I370318961621b8ffb8d5bb53e5d0b991dfc0808d
2018-12-17 14:01:34 -08:00
Nick Kralevich
649d2d35dc Merge "use epoll_create1"
am: a8d712ec50

Change-Id: I9ddf1a6a059db39ad79d45915f43d9ef6cc456a9
2018-12-17 14:01:26 -08:00
Treehugger Robot
a8d712ec50 Merge "use epoll_create1" 2018-12-17 21:57:27 +00:00
Tao Bao
b78c30c394 Merge "applypatch: Fix comparison of integers of different signs." am: dfbdaf3f1d
am: acdb8d8d18

Change-Id: I29de1277fb4eec55c615c906379c8379ca801a46
2018-12-17 13:48:12 -08:00
Tao Bao
acdb8d8d18 Merge "applypatch: Fix comparison of integers of different signs."
am: dfbdaf3f1d

Change-Id: Ic5c55cefd61bc60536a956216ed56d482110a231
2018-12-17 13:35:08 -08:00
Tao Bao
dfbdaf3f1d Merge "applypatch: Fix comparison of integers of different signs." 2018-12-17 21:22:41 +00:00
Zhomart Mukhamejanov
bc07775393 Add PrepareUpdateService.
It's moved from PrepareStreamingService intent service.
Now PrepareUpdateService takes an UpdateConfig and
builds PayloadSpec for UpdateEngine for both streaming
and non-streaming update.

It allows us to do all preparations in intent service's
thread, without blocking UI.

We will also add checksum verification to
PrepareUpdateService.

Test: device, junit
Bug: 77150191
Change-Id: I15c0bc58e3238bea6ea1c4f13063575e2def89c1
Merged-In: Iea69acd9aa41e17538c26aff60f7598093ca7744
2018-12-17 10:56:28 -08:00
Tao Bao
7ebef8fd40 applypatch: Fix comparison of integers of different signs.
bootable/recovery/applypatch/imgpatch.cpp:57:3: error: comparison of integers of different signs: 'unsigned int' and 'int' [-Werror,-Wsign-compare]
  CHECK_GT(expected_target_length, 0);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bootable/recovery/applypatch/freecache.cpp:145:50: error: comparison of integers of different signs: 'long' and '__fsblkcnt64_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
  if (sf.f_bsize == 0 || free_space / sf.f_bsize != sf.f_bavail) {
                         ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~
bootable/recovery/applypatch/freecache.cpp:190:16: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
  if (free_now >= bytes_needed) {
      ~~~~~~~~ ^  ~~~~~~~~~~~~
bootable/recovery/applypatch/freecache.cpp:233:18: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
    if (free_now >= bytes_needed) {
        ~~~~~~~~ ^  ~~~~~~~~~~~~

Test: `mmma -j bootable/recovery/applypatch` with -Wsign-compare
Test: Run recovery_unit_test on marlin.
Change-Id: I4aa1fd0f9b7205b9e4e50874fc4bccb62951e7fe
2018-12-17 10:07:27 -08:00
Nick Kralevich
39c53c8ac9 use epoll_create1
epoll_create leaks file descriptors. Use epoll_create1(EPOLL_CLOEXEC)
instead.

Bug: 120983106
Test: compiles and boots
Change-Id: I91f213ebb2dd05330dd25ec1ca1fec59b611e7f2
2018-12-17 08:51:38 -08:00
Zhomart Mukhamejanov
75f4073baf Add PrepareUpdateService.
It's moved from PrepareStreamingService intent service.
Now PrepareUpdateService takes an UpdateConfig and
builds PayloadSpec for UpdateEngine for both streaming
and non-streaming update.

It allows us to do all preparations in intent service's
thread, without blocking UI.

We will also add checksum verification to
PrepareUpdateService.

Test: device, junit
Bug: 77150191
Change-Id: Iea69acd9aa41e17538c26aff60f7598093ca7744
2018-12-14 15:07:22 -08:00
koushik panuganti
d5c7fb5e6e Migrate bootable/recovery to androidx.test
See go/jetpack-test-android-migration

Test: make checkbuild
Change-Id: I0740a2205e6b3893ba292cd841592ea85071eefb
2018-12-12 11:29:34 -08:00
Tianjie Xu
0791157424 Merge "Show wipe data confirmation text in recovery mode" am: c456aab7e2 am: 608acc9ca2
am: 9d59cecdf9

Change-Id: I7d67ab6601b3756ef59ca034446d2fa27ed125af
2018-12-11 16:19:08 -08:00
Tianjie Xu
9d59cecdf9 Merge "Show wipe data confirmation text in recovery mode" am: c456aab7e2
am: 608acc9ca2

Change-Id: I60b84434d54669694523d46c4e854d833306722b
2018-12-11 16:08:25 -08:00
Bill Yi
6e186a155f [automerger skipped] Import translations. DO NOT MERGE am: 00ab5cd4f7 -s ours
am: b15357267f  -s ours

Change-Id: I06cacb795cfaca029e65e1d593b290efa57c32b9
2018-12-11 15:59:49 -08:00
Tianjie Xu
608acc9ca2 Merge "Show wipe data confirmation text in recovery mode"
am: c456aab7e2

Change-Id: Id1dfc9ca935b8d5f88387b55809dd152fe600544
2018-12-11 15:39:19 -08:00
Bill Yi
b15357267f [automerger skipped] Import translations. DO NOT MERGE
am: 00ab5cd4f7  -s ours

Change-Id: Ide23d66ac4ba10402828c748b90a59dc02f007e7
2018-12-11 15:29:39 -08:00
Tianjie Xu
c456aab7e2 Merge "Show wipe data confirmation text in recovery mode" 2018-12-11 23:24:05 +00:00
Tianjie Xu
1a0a30a16a Show wipe data confirmation text in recovery mode
After we generate the localized confirmation text images for certain dpi,
we can now load these images and display them under recovery. Devices that
cannot load the images will use the backup text strings as before.

Bug: 74397117
Test: check the menu with multiple locales, and check all the images locally
with locale test, check the fall back strings.
Change-Id: Ic31a55670026c909ec7a05cb0bb4a0fc1d5d15c7
2018-12-11 23:23:41 +00:00
Bill Yi
a6a0031a0c [automerger skipped] Import translations. DO NOT MERGE
am: 2f6ed69b53  -s ours

Change-Id: Idfa442e3aeeea9866bd38c7b18ae8311c5051368
2018-12-11 14:50:30 -08:00
Bill Yi
2f6ed69b53 Import translations. DO NOT MERGE
Change-Id: I1bd6d7f12c7bfffb7e022f09347a5be5a96766a3
Cherry-picked from: f560a89470
Test: mma
Auto-generated-cl: translation import
2018-12-11 20:33:09 +00:00
Bill Yi
00ab5cd4f7 Import translations. DO NOT MERGE
Change-Id: I1bd6d7f12c7bfffb7e022f09347a5be5a96766a3
Cherry-picked from: f560a89470
Test: mma
Auto-generated-cl: translation import
2018-12-11 12:30:44 -08:00
Tao Bao
a96d2db281 Merge "tests: Temporarily disable ScreenRecoveryUITest tests." am: ceab300864 am: f68cf7c34f
am: 073815431d

Change-Id: If6e7e107ed257f756315b0990214b4396d3cf35d
2018-12-07 08:49:14 -08:00
Tao Bao
073815431d Merge "tests: Temporarily disable ScreenRecoveryUITest tests." am: ceab300864
am: f68cf7c34f

Change-Id: I1b94e616756c558bfa577fc1638a0de28cbadec7
2018-12-07 08:45:08 -08:00
Tao Bao
f68cf7c34f Merge "tests: Temporarily disable ScreenRecoveryUITest tests."
am: ceab300864

Change-Id: I64aa4e6e4c8782ee977c41febf625f3935f06af4
2018-12-07 08:41:01 -08:00
Tao Bao
ceab300864 Merge "tests: Temporarily disable ScreenRecoveryUITest tests." 2018-12-07 16:31:18 +00:00
Tao Bao
f242a7ec2c tests: Temporarily disable ScreenRecoveryUITest tests.
Seems they're racing with SurfaceFlinger in acquiring the display, which
occasionally takes down the device and leads to test failures.

Bug: 120601844
Test: Run recovery_unit_test on marlin. ScreenRecoveryUITest not
      triggered.
Change-Id: I80b21595247a87fc1f2f95aa68df59f58bdf0257
2018-12-06 13:05:05 -08:00
Tao Bao
c2d87abbe2 Merge changes Id946ab1c,Ifacd01d6 am: 5de42a592a am: 211fe93f19
am: b69ddfd904

Change-Id: I330b5b3f7064e66ceeff067d1eb7cd88c66b6d59
2018-12-06 10:14:14 -08:00
Tao Bao
b69ddfd904 Merge changes Id946ab1c,Ifacd01d6 am: 5de42a592a
am: 211fe93f19

Change-Id: Ia8c69e46c8ca1bd698f9ade1cc7c7259fda54fcb
2018-12-06 10:07:02 -08:00
Tao Bao
211fe93f19 Merge changes Id946ab1c,Ifacd01d6
am: 5de42a592a

Change-Id: I2a6a5d0b6a4a151fa46467608d3aabe2d341004f
2018-12-06 10:03:05 -08:00
Treehugger Robot
5de42a592a Merge changes Id946ab1c,Ifacd01d6
* changes:
  uncrypt: Fix the comparison in FindBlockDevice().
  uncrypt: Replace a few C-strings with std::string.
2018-12-06 17:47:46 +00:00
Tao Bao
bb134b2613 uncrypt: Fix the comparison in FindBlockDevice().
Previously it considered a match if the given path (i.e. path to an
update package) fully equals to a mount_point.  For example, `uncrypt
/data block.map` or `uncrypt /vendor block.map` would exit successfully,
without producing a block map.

Test: `uncrypt /path/to/package.zip block.map`
Test: `uncrypt /vendor block.map` fails.
Change-Id: Id946ab1c0b158b623013f89463cbb1960141d8b5
2018-12-05 14:44:32 -08:00
Tao Bao
d1670a064d uncrypt: Replace a few C-strings with std::string.
Also use android::base::{Dirname,Realpath,StartsWith}.

Test: Run uncrypt on device (`uncrypt package block.map`).
Change-Id: Ifacd01d6b35d85ea4afcb93a0dbc0235bb765a75
2018-12-05 14:44:24 -08:00
Tom Cherry
e6f2b1eb92 Merge "Move some small users of fstab to new C++ Fstab" am: 62040c53e0 am: 94b3574440
am: c4bd945988

Change-Id: I4327822aedf8ed0d728c628796c125118e1e8f76
2018-12-04 17:06:25 -08:00
Tom Cherry
c4bd945988 Merge "Move some small users of fstab to new C++ Fstab" am: 62040c53e0
am: 94b3574440

Change-Id: Ied287fa138b5b58351d37747e0ae8bd7ced8ef74
2018-12-04 17:01:23 -08:00
Tom Cherry
94b3574440 Merge "Move some small users of fstab to new C++ Fstab"
am: 62040c53e0

Change-Id: I67b07c175d08e5c9166875c9e316831cde425c79
2018-12-04 16:53:20 -08:00
Tom Cherry
62040c53e0 Merge "Move some small users of fstab to new C++ Fstab" 2018-12-05 00:36:14 +00:00
Tom Cherry
772c93ca5c Move some small users of fstab to new C++ Fstab
Bug: 62292478
Test: tree-hugger
Change-Id: Ie2cc10e5168ef3b9dcc42f88e67a1ccd1175fcc5
2018-12-04 11:11:14 -08:00
Elliott Hughes
713313d8ed Merge "C++17 is the default now." am: 8fc15c02bd am: 9f909492c0
am: 4d371e77e1

Change-Id: Ib647755e7a1d69bf60368605a28c7aedb5bf39c7
2018-12-03 15:07:03 -08:00