Commit Graph

3800 Commits

Author SHA1 Message Date
Tao Bao d66f05b82c Merge "minui: Fix breakage in graphics_adf."
am: 54da112277

Change-Id: Ia65d9494373e6583325779a6fdd27e06dd01902a
2017-04-29 18:50:56 +00:00
Tao Bao 54da112277 Merge "minui: Fix breakage in graphics_adf." 2017-04-29 18:47:53 +00:00
Alistair Strachan 4697d8b11b minui: Fix breakage in graphics_adf.
When graphics_adf was refactored in 557fa1f, a class member was introduced
that was not initialized to zero. This meant that the first time Flip()
was called, current_surface would have a junk value and cause a bad
pointer rereference, crashing recovery.

Make sure current_surface is initialized to 0 for the first Flip().

Test: Ran recovery on a device using the ADF backend.
Change-Id: I9b8fac0a4d48cac990e5e9808a071c232de1ebfb
2017-04-28 16:13:02 -07:00
Tianjie Xu 00a309ab3e Merge "Fix potential OOM in update_verifier"
am: 5443072c3c

Change-Id: I8bfcd49c0a5f57149d6a87ecfb244273acff3208
2017-04-28 18:16:21 +00:00
Tianjie Xu 5443072c3c Merge "Fix potential OOM in update_verifier" 2017-04-28 18:03:24 +00:00
Dmitri Plotnikov 5b27cd1093 Merge "Adding support for quiescent reboot to recovery"
am: 0481faef77

Change-Id: I79e31282bd133e0de5b0f0601c5bc3bd728ddd64
2017-04-27 22:41:33 +00:00
Treehugger Robot 0481faef77 Merge "Adding support for quiescent reboot to recovery" 2017-04-27 22:34:16 +00:00
Tianjie Xu 8fa8f0b16c Fix potential OOM in update_verifier
Limit the size of each read to 1024 * BLOCKSIZE. (Same as the I/O limit
of each transfer command for block based OTA).

Bug: 37729708
Test: U_V sets slot successfully on sailfish, and it takes about ~20s
(no noticeable time increase)
Change-Id: I7a6cdc744fe4c0760e09e0afed75b89c16d8eac3
2017-04-27 14:22:40 -07:00
Tao Bao d8c078d2c6 Merge "Separate libupdate_verifier module and add testcases."
am: c99bb23955

Change-Id: Idfcde607838bbcae2930fbcc9108756296f4ca34
2017-04-27 21:18:47 +00:00
Tao Bao c99bb23955 Merge "Separate libupdate_verifier module and add testcases." 2017-04-27 21:08:54 +00:00
Tao Bao 74812187c0 Merge "libfusesideload: Clean up the CFLAGS for the module."
am: 416c55cf43

Change-Id: Ice50708eb27e01ecad729b0e05af77995b845e39
2017-04-27 18:31:19 +00:00
Tao Bao 416c55cf43 Merge "libfusesideload: Clean up the CFLAGS for the module." 2017-04-27 18:25:52 +00:00
Tao Bao 20126e1e28 libfusesideload: Clean up the CFLAGS for the module.
Remove "-DADB_HOST=0" since it doesn't include adb related stuff.

Test: mmma bootable/recovery
Test: sideload on marlin
Change-Id: Ia83a8edd31eedd803435d687513d561c873ffabe
2017-04-27 11:04:18 -07:00
Tao Bao 83b0780ddd Separate libupdate_verifier module and add testcases.
Enable -Wall and expose verify_image() for testing purpose.

Test: mmma bootable/recovery
Test: recovery_component_test
Change-Id: I1ee1db2a775bafdc1112e25a1bc7194d8d6aee4f
2017-04-27 08:57:23 -07:00
Tao Bao 22b1fa7d61 Merge "applypatch: Remove the obsolete support for "applypatch -s"."
am: d5ae4253c1

Change-Id: Ia790cb8dc24f356703dcad78bfc0f4bb7f0069e5
2017-04-26 16:56:44 +00:00
Tao Bao 282c863524 Merge "applypatch: Add determine the return value of ApplyDiffPatch and capture the error flow."
am: ac78ed8915

Change-Id: I7acad8d3ce6a71554e93d785e6a7e307e2c9f9fe
2017-04-26 16:56:32 +00:00
Tao Bao d5ae4253c1 Merge "applypatch: Remove the obsolete support for "applypatch -s"." 2017-04-26 16:49:48 +00:00
Tao Bao ac78ed8915 Merge "applypatch: Add determine the return value of ApplyDiffPatch and capture the error flow." 2017-04-26 16:49:08 +00:00
Tao Bao 8ab28082b7 applypatch: Remove the obsolete support for "applypatch -s".
The SpaceMode (applypatch -s) was used in amend script (cupcake) only,
which has been removed since commit
9ce2ebf5d300eba5f6086583b0941ef68a3e4b42 (platform/build). The later
(and current) edify script uses apply_patch_space().

Note that other modes (PatchMode, CheckMode) of applypatch executable
are mostly used by install-recovery.sh script.

Test: No active user of "applypatch -s".
Test: recovery_component_test
Change-Id: I1d689b7fedd3884077e88ed1d6c22f7a2198859d
2017-04-25 21:23:12 -07:00
Jinguang Dong 391bb7bb92 applypatch: Add determine the return value of ApplyDiffPatch and
capture the error flow.

Construct ota package which is bsdiff exception scene ,then do
simulation test, native code can not capture exception scenes.

Test: recovery_component_test
Test: Apply an bsdiff exception scene ota package.
Change-Id: Icd9f6eac78739bd35c74b9fcaaf8154335d680a5
2017-04-26 10:59:57 +08:00
Tao Bao f849ff34d4 Merge "minadbd: Fix a failing test due to SIGPIPE."
am: 7b1fffe095

Change-Id: I0feb7529e596a201fb0d683e5054d2b1b4227c1d
2017-04-25 18:29:29 +00:00
Tao Bao 7b1fffe095 Merge "minadbd: Fix a failing test due to SIGPIPE." 2017-04-25 18:23:54 +00:00
Tao Bao 79a0e98bb5 minadbd: Fix a failing test due to SIGPIPE.
Test: minadbd_test on bullhead.
Change-Id: Iab1c51ba8d3113a83e8b464c3640be770a6cda97
2017-04-25 09:37:20 -07:00
Tao Bao 2dad1a9d28 Merge "recovery: Remove the include of adb.h."
am: dff2276012

Change-Id: If6c4e195112f8442535ae9c698277b311e590dbd
2017-04-25 15:53:17 +00:00
Tao Bao dff2276012 Merge "recovery: Remove the include of adb.h." 2017-04-25 15:42:49 +00:00
Tao Bao d8039acce6 recovery: Remove the include of adb.h.
recovery.cpp doesn't have a direct dependency on adb.h (only minadbd
does). 'adb.h' was once needed for DEFAULT_ADB_PORT, until being killed
by commit acb2a2fa4c.

Test: mmma bootable/recovery
Change-Id: I84f87988d01c3f0c3d1383cc3cffde2e7d5e7aea
2017-04-24 12:22:44 -07:00
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
Dmitri Plotnikov 8706a98aa6 Adding support for quiescent reboot to recovery
Bug: 37401320
Test: build and push OTA and hit adb reboot recovery,quiescent. The screen should remain off throughout the upgrade process.
Change-Id: Ibed3795c09e26c4fa73684d40b94e40c78394d3f
2017-04-19 14:43:08 -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