Commit Graph

5754 Commits

Author SHA1 Message Date
Tao Bao 17d46f2551 Merge "tests: Setup last_command_file for UpdaterTest."
am: d1e0cda4d6

Change-Id: I8c1ea753886f284d1e8462e16b06968ebdffc874
2018-05-24 23:37:48 -07:00
Tao Bao d1e0cda4d6 Merge "tests: Setup last_command_file for UpdaterTest." 2018-05-25 06:30:36 +00:00
Jiyong Park 6d81f8732c Merge "Mark as recovery_available:true"
am: ddf2947359

Change-Id: I1fbe5d274f1f1b5a00675a80fa9ad76cd603b042
2018-05-24 23:06:29 -07:00
Treehugger Robot ddf2947359 Merge "Mark as recovery_available:true" 2018-05-25 05:58:01 +00:00
Tao Bao 7064aa2862 tests: Setup last_command_file for UpdaterTest.
Otherwise tests may interfere with each other by using the same / default
location.

Test: Run recovery_component_test on marlin.
Change-Id: I6b0455489f2fdce819009964dd92bfd9bfeb06ef
2018-05-24 21:49:58 -07:00
Tao Bao 83e341e754 Merge "tests: Refactor the common lines in UpdaterTest."
am: faa47854f4

Change-Id: Ib674f713c68985ddc826fba83c6bdaaa3c06d623
2018-05-24 16:11:53 -07:00
Tao Bao faa47854f4 Merge "tests: Refactor the common lines in UpdaterTest." 2018-05-24 23:03:05 +00:00
Tianjie Xu 8e72eb7077 Merge "Convert deflate image chunks to raw if the raw data is smaller"
am: fc0f04cba7

Change-Id: I9873d3ef545bb3880a863e76a3782ff119f6c29c
2018-05-24 15:58:51 -07:00
Tianjie Xu fc0f04cba7 Merge "Convert deflate image chunks to raw if the raw data is smaller" 2018-05-24 22:42:54 +00:00
Tianjie Xu cc61cf6a9f Convert deflate image chunks to raw if the raw data is smaller
The imgpatch will fail on empty deflates because the bspatch won't call
the sink function if the target length is zero.

Instead of compressing an empty string, it's cleaner to not generate such
empty deflate chunks in the patch. Therefore, we can just convert the
chunk type to raw if the target length is smaller than the patch data.

Also adjust some unit tests and add the testdata gzipped_source &
gzipped_target. These two files are ~1K each and are generated by
gzipping two slightly different regular files.

Bug: 79265132
Test: unit tests pass, imgpatch applys successfully on the given src/tgt
Change-Id: I6bfff3251918137f6762a6f9e9551642371a1124
2018-05-24 10:49:54 -07:00
Zhomart Mukhamejanov dd885ab568 Merge "updater_sample: create UpdateManager"
am: 2a0b23bdf6

Change-Id: I2d01925d91b028ff9a86aadf2cc8a478c3e42c78
2018-05-24 10:44:06 -07:00
Zhomart Mukhamejanov 2a0b23bdf6 Merge "updater_sample: create UpdateManager" 2018-05-24 16:10:56 +00:00
Tao Bao bc4a6d59f6 tests: Refactor the common lines in UpdaterTest.
Move the common codes into RunBlockImageUpdate(). Also clean up the
partition updated marker after running each test.

Test: Run recovery_component_test on marlin.
Change-Id: Id4302e4da4c664231b737a1e83d2e164ef58ed97
2018-05-24 00:15:56 -07:00
Jiyong Park fafcfccc3c Mark as recovery_available:true
Libraries that are direct or indirect dependencies of modules installed
to recovery partition (e.g. adbd) are marked as recovery_available:
true. This allows a recovery variant of the lib is created when it is
depended by other recovery or recovery_available modules.

Bug: 79146551
Test: m -j
Change-Id: I9ca07ef53fbd89e7c86c0ba269fa52bb48d6deb4
2018-05-24 14:04:32 +09:00
Zhomart Mukhamejanov 6f26e71263 updater_sample: create UpdateManager
- Add UpdateManager - responsible for the update logic.
    Now ui.MainActivity is responsible for only UI.
- Create sample test for UpdateManager
- Remove MainActivityTest - now MainActivity is really simple.
- Add separate callback for progress update.
- MainActivity: UpdateEngine#bind/unbind on pause/resume.

Test: manually on the device
Test: using JUnit4
Change-Id: I1dba7c4ec74b1afb520be762413cfc261ccfbc08
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-23 15:37:43 -07:00
Tao Bao 082733b555 Merge "updater: Use a bool to indicate if allowed to skip a command."
am: 3a8b348936

Change-Id: I3b7fe231de183723be3f5dd158e3d130e3e797f2
2018-05-21 18:42:33 -07:00
Tao Bao 3a8b348936 Merge "updater: Use a bool to indicate if allowed to skip a command." 2018-05-22 01:34:03 +00:00
Jerry Zhang 6283f64568 Merge "recovery: Add ability to set title lines"
am: cba047f944

Change-Id: I6795eba1ab0cbc56e04fbed4d0ae3b8fe4925920
2018-05-21 17:00:23 -07:00
Tao Bao 1e29bb6717 Merge "updater: Clean up the header lines computation."
am: a5735e9b5f

Change-Id: Id8270c2dce8ac907ea443f667ede40f3eba8fa2d
2018-05-21 17:00:02 -07:00
Jerry Zhang cba047f944 Merge "recovery: Add ability to set title lines" 2018-05-21 23:52:43 +00:00
Tao Bao a5735e9b5f Merge "updater: Clean up the header lines computation." 2018-05-21 23:47:51 +00:00
Jerry Zhang 0e577ee424 recovery: Add ability to set title lines
Add the ability to change the contents of
the title lines, displayed at the top of
the screen. Once set, the same lines are
displayed for all menus until changed again.

Test: Recovery works
Bug: 78793464
Change-Id: I7ef5594b0d76dbbd2e01ad7508863af1270b2a2a
2018-05-21 16:37:07 -07:00
Tao Bao dd88112054 Merge "Move stuff from recovery into librecovery."
am: 901f0c3516

Change-Id: Ief503e9d2be627474df385790e5ac55399f08744
2018-05-21 16:21:09 -07:00
Tao Bao 901f0c3516 Merge "Move stuff from recovery into librecovery." 2018-05-21 23:05:45 +00:00
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 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 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
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 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 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 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
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
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 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 0e42c5680c Merge "screen_ui: Fix an issue in RTL locale detection."
am: 13d56e9bed

Change-Id: Icd9b2db1895f3329f34ca959d072abc5226d7cdd
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