Commit graph

6224 commits

Author SHA1 Message Date
Tao Bao
26efb0ae3a updater: Use a bool to indicate if allowed to skip a command.
This avoids the signedness issue, and makes the code more readable.

Test: mmma bootable/recovery
Test: Run recovery_component_test.
Change-Id: I01c3a0357887cfd7c9d4aba4239ef650cfa18388
2018-05-21 15:05:53 -07:00
Tao Bao
ab20706a84 updater: Clean up the header lines computation.
It no longer needs to be conditional, as we've removed the support for
BBOTA v1/v2.

Test: mmma bootable/recovery
Change-Id: I881de8afa38cc5b41b48e6d48d85170699ea5eb4
2018-05-21 14:48:49 -07:00
Zhomart Mukhamejanov
154cdd99d6 Merge "updater_config: make utils/PayloadSpecs non-static" am: 928f2cbf9b
am: 3714929c32

Change-Id: I970eb576513cbc8f088e9edbdb4a229820b58cbf
2018-05-21 10:37:47 -07:00
Zhomart Mukhamejanov
3714929c32 Merge "updater_config: make utils/PayloadSpecs non-static"
am: 928f2cbf9b

Change-Id: Iec6299559d502989fadd08f6622aef9c320af478
2018-05-21 10:29:15 -07:00
Zhomart Mukhamejanov
928f2cbf9b Merge "updater_config: make utils/PayloadSpecs non-static" 2018-05-21 16:54:04 +00:00
Zhomart Mukhamejanov
b0361ffa3e updater_config: make utils/PayloadSpecs non-static
PayloadSpecs has complicated methods, which makes hard
to test other dependent classes.
Making it non-static allows mocking it, which makes
testing other classes easier.

Test: manually
Test: using JUnit4
Change-Id: I818dc59c6bb0e7d131439d0d41f88d5cd9a451b4
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-18 10:38:33 -07:00
Jerry Zhang
901fb2c811 Merge "recovery: Reset optind to 1 after getopt" am: 38d90316b2
am: 25d31c9f9c

Change-Id: Id2d80584075c3482748e5946d39fe8ef572aea45
2018-05-17 14:48:15 -07:00
Jerry Zhang
25d31c9f9c Merge "recovery: Reset optind to 1 after getopt"
am: 38d90316b2

Change-Id: I06fecd4bc886741901715201b14ff31b6932d05d
2018-05-17 14:44:41 -07:00
Treehugger Robot
38d90316b2 Merge "recovery: Reset optind to 1 after getopt" 2018-05-17 21:38:26 +00:00
Tao Bao
e462cdffe9 tools: Move to Soong.
Test: `mmma -j bootable/recovery/`
Test: Build and run RecoveryLocalizer on device.
Change-Id: I3359223c82bd670c94ad51296cb8b357b04f5349
2018-05-17 13:10:08 -07:00
Jerry Zhang
49fd5d262c recovery: Reset optind to 1 after getopt
The getopt library exposes optind which is the
next index to be processed. When scanning is
restarted, optind has to be reset to 1.

Test: Recovery works
Bug: 78793464
Change-Id: I1efca3fb985ffbdfe91e43767469733cda6e7d5b
2018-05-17 19:56:42 +00:00
Tao Bao
6feecf0337 Merge "updater_sample: add switch slot demo" am: 2ddc54f5fd
am: 4f26e44969

Change-Id: If5faa3401c43c321c5566ee049113d8dd152ed74
2018-05-17 12:44:55 -07:00
Tao Bao
4f26e44969 Merge "updater_sample: add switch slot demo"
am: 2ddc54f5fd

Change-Id: Ie29bdc24f011744e8d13ea0b5c5608d4d3851792
2018-05-17 12:39:53 -07:00
Tao Bao
2ddc54f5fd Merge "updater_sample: add switch slot demo" 2018-05-17 19:21:54 +00:00
Tao Bao
371fe6e8bc Move stuff from recovery into librecovery.
Move most source files into librecovery so they become testable. Only
recovery_main.cpp and logging.cpp are built into recovery module, as
they perform one-time setup (e.g. setting up logger).

Test: `mmma -j bootable/recovery` with
      aosp_{angler,bullhead,fugu,dragon,marlin}-userdebug
Test: recovery_host_test; recovery_unit_test; recovery_component_test;
      recovery_manual_test
Test: Build and boot into recovery image on angler.
Change-Id: Ic4444f87a2f123557c71085f81dc2b2764c05ed8
Merged-In: Ic4444f87a2f123557c71085f81dc2b2764c05ed8
2018-05-17 09:59:26 -07:00
Zhomart Mukhamejanov
238beb7373 updater_sample: add switch slot demo
- Add util/UpdateEngineProperties.java
- Set SWITCH_SLOT_ON_REBOOT=0 when update is applied
- Allow user to switch slot to the updated partition manually
- Add config "ab_config.force_switch_slot"
- Add ab_force_switch_slot to tools/gen_update_config.py

Test: manually on the marlin device
Bug: 79492522
Change-Id: I52f818b576d52a052b5427ba3f732cb2371ddb06
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-17 16:29:57 +00:00
Tao Bao
fd0ace8f6e Move stuff from recovery into librecovery.
Move most source files into librecovery so they become testable. Only
recovery_main.cpp and logging.cpp are built into recovery module, as
they perform one-time setup (e.g. setting up logger).

Test: `mmma -j bootable/recovery` with
      aosp_{angler,bullhead,fugu,dragon,marlin}-userdebug
Test: recovery_host_test; recovery_unit_test; recovery_component_test;
      recovery_manual_test
Test: Build and boot into recovery image on angler.
Change-Id: Ic4444f87a2f123557c71085f81dc2b2764c05ed8
(cherry picked from commit bf4c006d7bc8a4517c82399bbffd9cb09971c0b4)
2018-05-16 22:31:41 -07:00
Tao Bao
41e47d6d0a [automerger skipped] Merge "recovery: Refactor common setup into main()" am: 5b3d6cf58b
am: 0abc18d520  -s ours

Change-Id: I6e90e6810feefaa7b6b028259591e5cced2b5c3f
2018-05-16 17:03:35 -07:00
Tao Bao
0abc18d520 Merge "recovery: Refactor common setup into main()"
am: 5b3d6cf58b

Change-Id: I33558285e87b03af06d02f735e7e06e89404f9ad
2018-05-16 16:59:37 -07:00
Tao Bao
5b3d6cf58b Merge "recovery: Refactor common setup into main()" 2018-05-16 23:46:01 +00:00
Tianjie Xu
567570954e Merge "Last command file should be updated after a command finishes" am: 6dfc54cae1
am: 45b7dbea74

Change-Id: Ic9da282f5b09e36b0b64c56f595b25ebc6cf60c6
2018-05-16 16:05:19 -07:00
Tianjie Xu
45b7dbea74 Merge "Last command file should be updated after a command finishes"
am: 6dfc54cae1

Change-Id: I0a99acaf18a1b3f386aa79bea210eb3a04929e54
2018-05-16 16:00:46 -07:00
Tianjie Xu
6dfc54cae1 Merge "Last command file should be updated after a command finishes" 2018-05-16 22:55:39 +00:00
Jerry Zhang
f5e319ac96 recovery: Refactor common setup into main()
Move more common setup into the main function.
Main() handles all 1 time setup, such as ui,
logging, and secontext. Recovery_main()
takes in command line arguments, does any
necessary recovery work, and can be called
multiple times from main().

Test: Recovery works
Bug: 78793464
Change-Id: I2d2595fc342b4ddfa80f4e06b30e44263132acd9
Merged-In: I2d2595fc342b4ddfa80f4e06b30e44263132acd9
2018-05-16 19:32:06 +00:00
Jerry Zhang
726c9271db Merge "recovery: Refactor common setup into main()" into pi-dev-plus-aosp 2018-05-16 19:18:53 +00:00
Tao Bao
6171da90c5 Merge "wear_ui: Address a TODO regarding {intro,loop}_frames." am: 0f3aa6ec38
am: b730743b40

Change-Id: I0a8ba6bf7836bde00e93f2ce9a011ace9acbac5d
2018-05-15 21:16:22 -07:00
Tao Bao
b730743b40 Merge "wear_ui: Address a TODO regarding {intro,loop}_frames."
am: 0f3aa6ec38

Change-Id: Ia9bc12ff45cf42124601cffb33da960bd9e377c1
2018-05-15 21:12:19 -07:00
Tianjie Xu
c2b2bb5d78 Last command file should be updated after a command finishes
The last command file has the last executed stash command by convention.
So we should update the file after we actually finishes executing the command;
instead of after loading src/tgt.

Bug: 79756267
Test: unit tests pass
Change-Id: I4535b5836e7eb13b3abe3d02f9f362ec5e9ec969
2018-05-15 21:05:30 -07:00
Tao Bao
0f3aa6ec38 Merge "wear_ui: Address a TODO regarding {intro,loop}_frames." 2018-05-16 04:04:54 +00:00
Jerry Zhang
6a64804965 recovery: Refactor common setup into main()
Move more common setup into the main function.
Main() handles all 1 time setup, such as ui,
logging, and secontext. Recovery_main()
takes in command line arguments, does any
necessary recovery work, and can be called
multiple times from main().

Test: Recovery works
Bug: 78793464
Change-Id: I2d2595fc342b4ddfa80f4e06b30e44263132acd9
2018-05-16 00:20:45 +00:00
Tao Bao
152e0eb20b wear_ui: Address a TODO regarding {intro,loop}_frames.
Also add tests for LoadAnimation that cover the change.

Test: Run `recovery_unit_test` on marlin.
Change-Id: I0380a5cdd0d85d55baecf7759eb647b6a9f3a085
2018-05-14 11:14:00 -07:00
Tao Bao
554a876cc1 Merge "Clean up the Makefile for recovery and tests." am: 1f0b9962b0
am: 0c2998ffe3

Change-Id: I5d4765279fa10317e7f8d61cc4f0972baf10040e
2018-05-11 18:06:19 -07:00
Tao Bao
0c2998ffe3 Merge "Clean up the Makefile for recovery and tests."
am: 1f0b9962b0

Change-Id: I79b21e9b93f8876a00176751a4664f6175a384be
2018-05-11 18:01:48 -07:00
Tao Bao
1f0b9962b0 Merge "Clean up the Makefile for recovery and tests." 2018-05-12 00:55:35 +00:00
Tao Bao
9e30997676 Clean up the Makefile for recovery and tests.
Reorder librecovery and librecovery_ui, so that librecovery stays closer
to recovery (in preparation for later changes that move more files
between the two). For the libraries in LOCAL_STATIC_LIBRARIES, reorder
them based on the dependency - local modules coming first, with external
libraries near the end. Sort the local / external modules, unless a
specific order is needed.

In tests/Android.mk, split the monolithic list of LOCAL_STATIC_LIBRARIES
based on modules. This makes adding / finding libraries easier.

There's no functionality in this CL.

Test: mmma -j bootable/recovery
Change-Id: I6836be574df565001ae9cd3d466a2b6460d90d08
2018-05-11 15:53:58 -07:00
Tao Bao
a8c819d98c Merge "screen_ui: Fix an issue in RTL locale detection." am: 13d56e9bed
am: 0e42c5680c

Change-Id: Id4819920e9fca4223cd7e3b80a7b909f392ab008
2018-05-11 14:50:40 -07:00
Tao Bao
0e42c5680c Merge "screen_ui: Fix an issue in RTL locale detection."
am: 13d56e9bed

Change-Id: Icd9b2db1895f3329f34ca959d072abc5226d7cdd
2018-05-11 14:50:21 -07:00
Tao Bao
81726e4430 Merge "Move device.cpp into librecovery_ui." am: db6dc14bff
am: fb8636f48f

Change-Id: I18cad42da6f9f560c3ed1568a20889419520cd21
2018-05-11 14:50:21 -07:00
Treehugger Robot
13d56e9bed Merge "screen_ui: Fix an issue in RTL locale detection." 2018-05-11 21:46:52 +00:00
Tao Bao
fb8636f48f Merge "Move device.cpp into librecovery_ui."
am: db6dc14bff

Change-Id: I2ebd04cded12b61173d9334ddd241511efc6e406
2018-05-11 14:46:51 -07:00
Tao Bao
db6dc14bff Merge "Move device.cpp into librecovery_ui." 2018-05-11 21:38:01 +00:00
Tao Bao
e0871294aa Merge "tests: Add tests for ScreenRecoveryUI." am: 8c6f699b36
am: ca88c67135

Change-Id: I238b8b412046c883863828d2b7578d51dadef9e0
2018-05-11 13:22:26 -07:00
Tao Bao
ca88c67135 Merge "tests: Add tests for ScreenRecoveryUI."
am: 8c6f699b36

Change-Id: I1fc42208d91ed211ac4b45c2d392a251c3d5ae53
2018-05-11 13:18:25 -07:00
Tao Bao
8c6f699b36 Merge "tests: Add tests for ScreenRecoveryUI." 2018-05-11 20:06:22 +00:00
Tao Bao
20976a0913 Merge "recovery: Configure device menu based on runtime info." am: e498ef2f03
am: bd32e1b50b

Change-Id: Id611c10a6f84afdec38ca01d6932f4c964f9c2ac
2018-05-11 10:57:40 -07:00
Tao Bao
bd32e1b50b Merge "recovery: Configure device menu based on runtime info."
am: e498ef2f03

Change-Id: Ib513582394b796ca64c5e3ce46fc2bd535c621de
2018-05-11 10:54:10 -07:00
Tao Bao
6a542dcc3b Move device.cpp into librecovery_ui.
librecovery_ui will be exposed for device-specific RecoveryUI. With the
current code structure, 'device.h' and 'ui.h' will always be needed in
order to implement device-specific RecoveryUI.

Bug: 76436783
Test: lunch aosp_{angler,marlin,dragon,walleye}-userdebug;
      `mmma -j bootable/recovery` respectively.
Change-Id: I15e8851b230a65526ac9310e0ee6621b7daea589
2018-05-11 10:51:26 -07:00
Tao Bao
e498ef2f03 Merge "recovery: Configure device menu based on runtime info." 2018-05-11 17:34:01 +00:00
Tao Bao
e5d2c25ecf recovery: Configure device menu based on runtime info.
Drop the dependency on build time flag of AB_OTA_UPDATER when compiling
device.cpp. Note that AB_OTA_UPDATER still guards the package install
behavior (install.cpp).

This can be extended to cover the entry of "Apply update from SD card".

Test: Build and boot into recovery on angler and walleye respectively.
      Check the recovery menu.
Change-Id: I36a6a6b4101ba61d4d374e32353c36cc5716f9ce
2018-05-10 20:46:46 -07:00
Zhomart Mukhamejanov
9ca1e2778a Merge "updater_sample: add HAL compatibility check" am: 563d34f712
am: 0045e76c7c

Change-Id: I433e03d9f9fad55b2b8b0b5a4b3eb492af34e8a5
2018-05-10 20:19:57 -07:00