Commit Graph

3773 Commits

Author SHA1 Message Date
Tao Bao 5f85d07e87 Merge "Add more tests for verify_package_compatibility()."
am: a9dd77fa84

Change-Id: Ie0eeef3f0f188236b502d378140041931c2b7fb1
2017-04-24 18:39:35 +00:00
Tao Bao 8a3325dc8a Merge "tests: Remove obsolete classes in applypatch_test."
am: f17aa960db

Change-Id: I4e9f49255f8cdeb1bded80a578a82772c6ebb8c2
2017-04-24 18:39:17 +00:00
Tao Bao 0cf72f0f14 Merge "librecovery: Remove -Wno-unused-parameter and add -Wall."
am: b6c9c41a3d

Change-Id: I4ec01251132d6dc871cec19cf7c8577e33aac193
2017-04-24 18:39:02 +00:00
Tao Bao a9dd77fa84 Merge "Add more tests for verify_package_compatibility()." 2017-04-24 18:08:55 +00:00
Tao Bao f17aa960db Merge "tests: Remove obsolete classes in applypatch_test." 2017-04-24 18:01:02 +00:00
Tao Bao b6c9c41a3d Merge "librecovery: Remove -Wno-unused-parameter and add -Wall." 2017-04-24 18:00:26 +00:00
Tao Bao b24510cd60 librecovery: Remove -Wno-unused-parameter and add -Wall.
Test: mmma bootable/recovery
Change-Id: I5598d32bebb9dbda4a183a1502e0b7dc4918392e
2017-04-24 09:06:38 -07:00
Tianjie Xu 4849c87033 Merge "Reboot the device on user build after the install fails"
am: d6f436849d

Change-Id: I72eae6c525d6dd39c86a74b144d0970ad8793b42
2017-04-22 00:19:18 +00:00
Treehugger Robot d6f436849d Merge "Reboot the device on user build after the install fails" 2017-04-22 00:11:52 +00:00
Tianjie Xu d9d16297dd Reboot the device on user build after the install fails
Users can't do much after the install fails with the device showing
"error" under recovery. So our best choice is to reboot the device
since sometimes the system image is still bootable (i.e. on package
verification failure). At worst the device would stuck in a boot loop
where the users need the same professional knowledge to recover as
before.

Behaviors after installation failure (including data wipe):
If recovery text is visible:
No change.

If recovery text is not visible:
Old behavior: Wait under "error" screen. Reboot after UI timeout (120s)
              if not connected to usb charger.
New behavior: Wait for 5s (shortens from the 120s timeout) under "error"
              screen and reboot (w or w/o charger).

sideload-auto-reboot (only available for userdebug):
Old behavior: Reboot immediately after installation failure.
New behavior: Wait for 5s under "error" screen and reboot.

Bug: 35386985
Test: On angler user, device auto reboots 5s after a failing OTA.

Change-Id: I3ff0ead86e2ccec9445d6a2865bc2c463855f23c
2017-04-21 22:49:30 +00:00
Tao Bao 0a3e4dca58 tests: Remove obsolete classes in applypatch_test.
ApplyPatchFullTest and ApplyPatchDoubleCacheTest were used for defining
testcases for file-based OTA. The testcases have already been removed by
commit 40e144dae8. This CL removes the
obsolete class defnitions.

Bug: 37559618
Test: recovery_component_test on angler and marlin respectively.
Change-Id: I3f4f1dfc8580cf010365e671de256f68bbc0d99a
2017-04-21 09:52:27 -07:00
Tianjie Xu 235a2cc1c7 Merge "Minor clean up to minadbd_services.cpp"
am: fa7d55a7e3

Change-Id: I741417224e3ee22916e5b0ae6adc237887bd3ecb
2017-04-20 01:39:20 +00:00
Tianjie Xu fa7d55a7e3 Merge "Minor clean up to minadbd_services.cpp" 2017-04-20 01:34:30 +00:00
Tao Bao 8e7884abcc Merge "Call libvintf to verify package compatibility."
am: b0945e1a23

Change-Id: I1c54dafa606aa4ba0955983f3a5023d7b65ded1b
2017-04-20 00:17:15 +00:00
Tao Bao f2784b6a43 Add more tests for verify_package_compatibility().
This now covers the actual calls to libvintf, and asserts we're getting
identical results through verify_package_compatibility() and by calling
libvintf directly.

We were missing the coverage and introduced the double free bug (fixed
by commit f978278995).

Bug: 37413730
Test: recovery_component_test passes.
Test: recovery_component_test fails w/o commit
      f978278995.
Change-Id: If5195ea1c583fd7c440a1de289da82145e80e23c
2017-04-19 17:10:34 -07:00
Tao Bao b0945e1a23 Merge "Call libvintf to verify package compatibility." 2017-04-20 00:10:09 +00:00
Tao Bao 919d2c9a53 Call libvintf to verify package compatibility.
The libvintf API has landed. Hook up to do the actual verification.

Bug: 36597505
Test: recovery_component_test
Test: m recoveryimage; adb sideload on angler and sailfish, with
      packages that contain dummy compatibility entries.
Test: m recoveryimage; adb sideload on angler and sailfish, with
      packages that don't contain any compatibility entries.
Change-Id: Idbd6f5aaef605ca51b20e667505d686de5ac781f
(cherry picked from commit da320ac6ab)
2017-04-19 15:17:16 -07:00
Tianjie Xu 6af51a0eef Minor clean up to minadbd_services.cpp
Switch some function signatures to std::string to avoid memory leak.

Bug: 30039381
Test: sideload a package on angler
Change-Id: Iae1e75871a782d6e5d6dde5dcf3f18469eb63f7d
2017-04-19 14:54:04 -07:00
Tao Bao c08c055ce0 Merge "Add tests for read_metadata_from_package()."
am: e888d45950

Change-Id: I182da1ac7d39120d8959b96dfbd70b344c27d600
2017-04-19 18:55:22 +00:00
Tao Bao e888d45950 Merge "Add tests for read_metadata_from_package()." 2017-04-19 18:51:15 +00:00
Tao Bao 668e84233d Merge "Minor clean up to install.cpp."
am: 08146728c1

Change-Id: Ie1f04ce992d48f37fae1fc8c8f083b21634e1024
2017-04-19 18:05:18 +00:00
Tao Bao 08146728c1 Merge "Minor clean up to install.cpp." 2017-04-19 18:01:08 +00:00
Tao Bao 8a7afcc6ed Add tests for read_metadata_from_package().
Test: recovery_component_test
Change-Id: I672a6a4f101c72e82b9f25f165dccd1c9520627b
2017-04-18 22:07:44 -07:00
Tao Bao f8119fbafb Minor clean up to install.cpp.
- Move some macros / constants into functions;
- Remove unneeded #include "minui/minui.h";
- Remove two dead constants (DEFAULT_{FILES,IMAGES}_PROGRESS_FRACTION).

Test: mmma bootable/recovery
Change-Id: Ib808f14b7569e06e23a8a7cc9b2d4e9aa5469de1
2017-04-18 22:07:00 -07:00
Tao Bao 1fc109bdc7 Merge "Add tests for update_binary_command()."
am: 44f61b4ce5

Change-Id: I12b49334130d68305753096f6a3376e246f947bc
2017-04-19 01:48:23 +00:00
Tao Bao 44f61b4ce5 Merge "Add tests for update_binary_command()." 2017-04-19 01:43:03 +00:00
Tianjie Xu 4575986069 Merge "Add 'system' to update_verifier's gid"
am: ba3f078f6f

Change-Id: Iff90d951f8a45df2bd6f11329ad2d33399d61ec6
2017-04-18 20:42:43 +00:00
Tianjie Xu ba3f078f6f Merge "Add 'system' to update_verifier's gid" 2017-04-18 20:30:03 +00:00
Tianjie Xu 0ad2de5eab Add 'system' to update_verifier's gid
This addresses the denial to /dev/cpuset/tasks:
update_verifier: type=1400 audit(0.0:377): avc: denied { dac_override }
for capability=1 scontext=u:r:update_verifier:s0
tcontext=u:r:update_verifier:s0 tclass=capability permissive=1

update_verifier: type=1400 audit(0.0:378): avc: granted { write } for
name="tasks" dev="cgroup" ino=5 scontext=u:r:update_verifier:s0
tcontext=u:object_r:cgroup:s0 tclass=file

Bug: 37358323
Test: denial message gone after adding system group
Change-Id: I66b4925295a13fbc1c6f26a1bb9bd2f9cebcec3d
2017-04-18 11:34:30 -07:00
Tom Cherry 9fcc7c8253 Merge "init.rc: Remove sys.powerctl action"
am: 9848209088

Change-Id: I8ca8866c43e6c8edf1a4aa39ad0934b2f92eae0a
2017-04-18 18:22:07 +00:00
Tom Cherry 9848209088 Merge "init.rc: Remove sys.powerctl action" 2017-04-18 18:14:18 +00:00
Tao Bao bc4b1fe4c4 Add tests for update_binary_command().
Expose update_binary_command() through private/install.h for testing
purpose.

Also make minor clean-ups to install.cpp: a) adding more verbose logging
on ExtractToMemory failures; b) update_binary_command() taking
std::string instead of const char*; c) moving a few macro and global
constants into update_binary_command().

Bug: 37300957
Test: recovery_component_test on marlin
Test: Build new recovery and adb sideload on angler and sailfish.
Change-Id: Ib2d9068af3fee038f01c90940ccaeb0a7da374fc
2017-04-17 20:44:37 -07:00
Tao Bao dc388aab8b Merge "Fix the double free in verify_package_compatibility()."
am: ce91df8293

Change-Id: I44f27412ad803b560a0ea317e7e0e2837e6fad39
2017-04-18 03:27:23 +00:00
Tao Bao beb1cb1df5 Merge changes from topic 'libvintf'
am: c1ca21a32d

Change-Id: I8ba8fc5a7f403a554cf5c1f01b0ccd0b19848277
2017-04-18 03:27:10 +00:00
Tao Bao ce91df8293 Merge "Fix the double free in verify_package_compatibility()." 2017-04-18 03:21:07 +00:00
Tao Bao c1ca21a32d Merge changes from topic 'libvintf'
* changes:
  Add the missing LOCAL_CFLAGS for librecovery.
  Verify the package compatibility with libvintf.
2017-04-18 03:20:49 +00:00
Tom Cherry 4608daf0fe init.rc: Remove sys.powerctl action
Init now handles this property change directly.

Bug: 37209359
Bug: 37415192

Test: Init reboots normally.
Change-Id: I9a4925897fb83bed180d12c871d9a71126fa4aa8
2017-04-17 16:55:54 -07:00
Tao Bao 7e031fdfe6 Merge "libmounts: Remove two dead functions."
am: 4854e77fd2

Change-Id: Iac3ba66cea9a551141ba7c2c97b8eae14b9ec881
2017-04-17 23:18:54 +00:00
Tao Bao 4854e77fd2 Merge "libmounts: Remove two dead functions." 2017-04-17 23:10:28 +00:00
Tao Bao 99c549db74 Fix the double free in verify_package_compatibility().
"""
void* cookie;
std::unique_ptr<void, decltype(&EndIteration)> guard(cookie, EndIteration);
  ...
EndIteration(cookie);
"""

The above pattern is buggy that frees 'cookie' twice.

Bug: 37413730
Test: Build new recovery and adb sideload a previously crashed package
      that contains 'compatibility.zip'.
Change-Id: I183c33827fb28a438ebaedda446e84cabe7cb92d
(cherry picked from commit f978278995)
2017-04-17 15:59:10 -07:00
Tao Bao 7fdcb19e10 Add the missing LOCAL_CFLAGS for librecovery.
The -DAB_OTA_UDPATER part was missing when separating the librecovery
module (commit 62e0bc7586).

Bug: 37300957
Test: Build sailfish recovery image and sideload full OTA.
Change-Id: Idd25662f6bc812c1aca95b096802f59b051f8d63
(cherry picked from commit 25dbe1717e)
2017-04-17 15:58:56 -07:00
Tao Bao e95902280c libmounts: Remove two dead functions.
find_mounted_volume_by_device() and remount_read_only() have no active
users. And we don't have a code logic that requires these two functions.

Test: mmma bootable/recovery
Test: Code search shows no user.
Change-Id: Ib11c2ba93ee087ea020c1337eb06686a6165f894
2017-04-16 15:53:47 -07:00
Josh Gao 0836159ce1 Merge "minadbd: switch adb_thread_create to std::thread."
am: d3d91e5595

Change-Id: If7c9c8cf8d2d8c93c521d3426c55be9068c817cc
2017-04-14 20:07:46 +00:00
Josh Gao d3d91e5595 Merge "minadbd: switch adb_thread_create to std::thread." 2017-04-14 20:04:04 +00:00
Josh Gao 2aa0d3abb4 minadbd: switch adb_thread_create to std::thread.
Test: treehugger
Change-Id: I7edcb13eb1fc6d4f36f5a764a1b647fbf9cd063e
2017-04-13 14:28:00 -07:00
Tao Bao 1d866050eb Verify the package compatibility with libvintf.
verify_package_compatibility() is added to parse the compatibility entry
(compatibility.zip) in a given OTA package. If entry is present, the
information is sent to libvintf to check the compatibility.

This CL doesn't actually call libvintf, since the API there is not
available yet.

Bug: 36597505
Test: Doesn't break the install with existing packages (i.e. w/o the
      compatibility entry).
Test: recovery_component_test
Change-Id: I3903ffa5f6ba33a5c0d761602ade6290c6752596
(cherry picked from commit 62e0bc7586)
2017-04-12 22:46:09 -07:00
Tianjie Xu 461188865b Merge "Protect filename_cache with lock in ota fault"
am: 1b28a27c33

Change-Id: Ie5ed472ddb83f4101b54e74d74a550a0cc5237da
2017-04-11 05:14:04 +00:00
Tianjie Xu 1b28a27c33 Merge "Protect filename_cache with lock in ota fault" 2017-04-11 05:08:05 +00:00
Tianjie Xu 4bb11c745b Protect filename_cache with lock in ota fault
Bug: 33173924
Test: Apply a successfully update on bullhead
Change-Id: I28cc356e216a3e957b5533c338ee6bc3c0920222
2017-04-10 16:21:09 -07:00
Tianjie Xu bc66528cb9 Merge "Abort the update if there's not enough new data"
am: b4b0c49c48

Change-Id: Id2eece5eabd369e0de5b06fc3d5a953a78ef563f
2017-04-10 18:24:24 +00:00