Commit Graph

5790 Commits

Author SHA1 Message Date
David Anderson b0d9b3594b Merge "recovery: add --fsck_unshare_blocks option for adb remount"
am: bda4495176

Change-Id: I7ca5126573f977d8e6204420d66617a7dc207688
2018-05-31 18:01:58 -07:00
Treehugger Robot bda4495176 Merge "recovery: add --fsck_unshare_blocks option for adb remount" 2018-06-01 00:28:52 +00:00
Zhomart Mukhamejanov a37a085a11 Merge "updater_sample: Add @GuardedBy"
am: 2759733136

Change-Id: I7c0811201ec55e64aba60f6582ee2c0c1ddca870
2018-05-31 16:21:11 -07:00
Zhomart Mukhamejanov 86f05074d2 Merge "updater_sample: Improve update completion handling"
am: 9455173f87

Change-Id: Id4b1ff4cc2afe36a0acffe3bc0a323cc06416c6c
2018-05-31 16:20:50 -07:00
Zhomart Mukhamejanov 2759733136 Merge "updater_sample: Add @GuardedBy" 2018-05-31 23:12:34 +00:00
Zhomart Mukhamejanov f6522eba71 updater_sample: Add @GuardedBy
Test: on the device
Change-Id: I15762dafec1814980e1c2529f5fc2048853c8ff2
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-31 23:12:28 +00:00
Zhomart Mukhamejanov 9455173f87 Merge "updater_sample: Improve update completion handling" 2018-05-31 23:12:15 +00:00
Tao Bao 838f30a8f7 Merge "updater: Drop the 'blocks' parameter in LoadStash()."
am: 0b80ba14d7

Change-Id: I24ed7f67fb2a8c4eaccaa075a73dbfc006d16f93
2018-05-31 16:00:40 -07:00
Zhomart Mukhamejanov 7671f68ab8 updater_sample: Improve update completion handling
Currently sample app relies on onPayloadApplicationComplete
callback. It might not get invoked when app is unbound and
update is complete.
On the other hand, onStatusUpdate gets invoked always
(except when update_engine fails to init).
It's good to rely on onStatusUpdate callback to
reapply the update if it's IDLE but sample app state
is RUNNING.

- Add methods to ensure correct updater state.
- Update README.md.

BUG: 80205922
Test: on the device
Change-Id: Ic2f390e85af43556e227362321ab69f0ff146188
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-31 21:13:05 +00:00
Tao Bao 0b80ba14d7 Merge "updater: Drop the 'blocks' parameter in LoadStash()." 2018-05-31 20:22:25 +00:00
Tao Bao 64957ce4b1 updater: Drop the 'blocks' parameter in LoadStash().
None of the callers actually uses the value.

(Even in the earlier versions, e.g. the one in M, the value wasn't used
either.)

Test: Run recovery_component_test on marlin.
Change-Id: I53e61a1afa211f71a200889ed3aa4046763b46ea
2018-05-30 16:34:24 -07:00
David Anderson edee8361d7 recovery: add --fsck_unshare_blocks option for adb remount
Allow "adb remount" on deduplicated filesystems to reboot into recovery
and run e2fsck to undo deduplication. The e2fsck binary is copied from
the system partition into tmpfs, and the system partition is unmounted
so e2fsck can run safely.

Bug: 64109868
Test: recovery with --fsck_unshare_blocks; adb remount
Change-Id: I7558749b018b58f3c4339e51a95831dbd5be1ae3
2018-05-30 13:24:30 -07:00
Zhomart Mukhamejanov b2a0611ea7 Merge "updater_sample: add UpdaterState"
am: 721f6d851f

Change-Id: Ic5f9ecadcb2af07048dd60660c1fbb64591aa547
2018-05-29 18:49:49 -07:00
Zhomart Mukhamejanov 8dd98e8c45 Merge "updater_sample: add UpdateData"
am: 8f15a82229

Change-Id: I0b155b9b49e7686170cc51adf6bd84d54e0bc0f1
2018-05-29 18:49:15 -07:00
Zhomart Mukhamejanov 721f6d851f Merge "updater_sample: add UpdaterState" 2018-05-30 01:36:36 +00:00
Zhomart Mukhamejanov 8f15a82229 Merge "updater_sample: add UpdateData" 2018-05-30 01:34:53 +00:00
Jerry Zhang 956580b139 Merge "recovery: c++ify pthread use in UI"
am: 85a007c47c

Change-Id: Ib060a22927dd7299d567d3961064119cac69bfef
2018-05-29 18:34:12 -07:00
Jerry Zhang 85a007c47c Merge "recovery: c++ify pthread use in UI" 2018-05-30 00:48:30 +00:00
Jerry Zhang b31f9ce6d1 recovery: c++ify pthread use in UI
Change pthread usage to std::mutex,
lock_guard, unique_lock, thread, or
condition_variable as appropriate.

Test: Recovery works, recovery_component_test pass
Bug: 78793464
Change-Id: Ibf0b1bbedcf0b6e32fc4ee6aaadd17f21b4d7077
2018-05-29 15:20:58 -07:00
Tao Bao 4fcc200272 Merge "ui: Use std::thread to create input/progress threads."
am: b8634ca793

Change-Id: I18e13b53ad6a828f41fb7afc116178e2ae4a44f2
2018-05-29 14:16:52 -07:00
Tao Bao b8634ca793 Merge "ui: Use std::thread to create input/progress threads." 2018-05-29 21:06:34 +00:00
Tao Bao 89d65805c6 Merge "updater: Add Commmand class to manage BBOTA commands."
am: a488bd992f

Change-Id: I43b6fc941dc412478fff937f08306990ff74d9e2
2018-05-29 12:39:12 -07:00
Tao Bao a488bd992f Merge "updater: Add Commmand class to manage BBOTA commands." 2018-05-29 19:32:22 +00:00
Tao Bao 9016deefe4 Merge "tools: Move to Soong."
am: 6b16093b29

Change-Id: I08afe905ab4ece8e90ac5685f8fa7e48c597b7a0
2018-05-29 11:04:21 -07:00
Tao Bao 6b16093b29 Merge "tools: Move to Soong." 2018-05-29 17:55:39 +00:00
Zhomart Mukhamejanov 674aa6c611 updater_sample: add UpdaterState
- Add UpdaterState - atomic class, handles proper
  state changes.
- Remove util.UpdaterStates.

Test: compiled and ran on the device
Change-Id: I7fa87bbf09f8289632e8de1f26654365f4891700
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-25 23:27:07 -07:00
Zhomart Mukhamejanov b34f7ea9a5 updater_sample: add UpdateData
This class allows easily passing update data to
apply payload, re-applying the updata data,
and in the future persisting.

Test: on the device
Change-Id: Ie01c5f3384c421bf1180122f27811c644179e3f5
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-25 23:23:30 -07:00
Tao Bao c3901231ce updater: Add Commmand class to manage BBOTA commands.
Move the commands map parsing out of PerformBlockImageUpdate(), as this
can be done more easily by the caller.

The goal (not done in this CL) is to decouple command parsing logic from
the performers. This allows (a) focusing on the command logic in the
performer; and (b) extending BBOTA commands syntax separately.

Test: Run recovery_unit_test and recovery_component_test.
Change-Id: Ife202398a7660b152d84a3ba17b90f93d19c55f2
2018-05-25 15:26:42 -07:00
Tao Bao 101af85e34 Merge "updater_sample: Add OWNERS."
am: 44e857390a

Change-Id: Ie7934d1a0b87741d21ad83ed2822af0602b507b6
2018-05-25 11:23:38 -07:00
Treehugger Robot 44e857390a Merge "updater_sample: Add OWNERS." 2018-05-25 18:15:13 +00:00
Zhomart Mukhamejanov 4e17087235 Merge "updater_sample: add updater state"
am: c290e088ed

Change-Id: I714b69a34be85fa46df2f533328a20efe45c5f83
2018-05-25 11:13:06 -07:00
Zhomart Mukhamejanov c290e088ed Merge "updater_sample: add updater state" 2018-05-25 18:03:17 +00:00
Tao Bao 35db9cf666 updater_sample: Add OWNERS.
Test: N/A
Change-Id: I519a0fa38b87c7d826ed07414d14a4f7a858aeb4
2018-05-25 09:43:08 -07:00
Zhomart Mukhamejanov 8f4059d603 updater_sample: add updater state
- Add util.UpdaterStates - the state of SystemUpdaterSample.
    It's different from status of UpdateEngine;
    when UpdateEngine#cancel is used to suspend the update,
    UpdateEngine sets status to IDLE, which cannot be used
    to track the suspended state.
- UI: Change 'Update status' to 'Engine status'.
- UI: Change 'Update completion' to 'Engine error code'.
- UI: Add 'Updater state'.

Test: manually on the device
Test: using JUnit4
Change-Id: I9c58b5ed0eae3be7ab8b217fc01a621e8fb2f4bf
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
2018-05-25 16:25:34 +00:00
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