Commit Graph

2194 Commits

Author SHA1 Message Date
Tianjie Xu e830a51351 DO NOT MERGE: Initialize the ZipArchive to zero before parsing
The fields of the ZipArchive on the stack are not initialized before we
call libminzip to parse the zip file. As a result, some random memory
location is freed unintentionally when we close the ZipArchive upon
parsing failures.

Bug: 35385357
Test: recompile and run the poc with asan.
Change-Id: I7e7f8ab4816c84a158af7389e1a889f8fc65f079
2018-09-07 16:09:28 -07:00
Tianjie Xu 510b13acd8 DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours am: 8bdb13dd9a am: 0d750f900b -s ours am: 457ad2dc3c am: d1c3bdd8c2 am: 9930b28456
am: 0a627e5a5f  -s ours

Change-Id: I503597404e665b723337ee56a46c719890a547a1
2017-01-20 03:38:14 +00:00
Tianjie Xu 0a627e5a5f DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours am: 8bdb13dd9a am: 0d750f900b -s ours am: 457ad2dc3c am: d1c3bdd8c2
am: 9930b28456

Change-Id: Ib4853ac0b4f56534130a6b40fbe4ea1a95131cca
2017-01-20 03:23:12 +00:00
Tianjie Xu 9930b28456 DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours am: 8bdb13dd9a am: 0d750f900b -s ours am: 457ad2dc3c
am: d1c3bdd8c2

Change-Id: I8dbfd452ad4bae3374efa7395b8189db00cdfbe1
2017-01-20 03:08:41 +00:00
Tianjie Xu d1c3bdd8c2 DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours am: 8bdb13dd9a am: 0d750f900b -s ours
am: 457ad2dc3c

Change-Id: Ic6e056e6a50066eb6d123b150e928533633f96e0
2017-01-20 02:55:39 +00:00
Tianjie Xu 457ad2dc3c DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours am: 8bdb13dd9a
am: 0d750f900b  -s ours

Change-Id: Iaab9c0e9d8e5a5198bcad373d229915c6bc62c79
2017-01-20 02:43:07 +00:00
Tianjie Xu 0d750f900b DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours am: 3591cb48f5 -s ours
am: 8bdb13dd9a

Change-Id: Ieb6efb9b8efec556f401325fb8449e56b2f9d4bc
2017-01-20 02:35:07 +00:00
Tianjie Xu 8bdb13dd9a DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev am: 4eb997d52b -s ours
am: 3591cb48f5  -s ours

Change-Id: I173c8f1c1f68b57b3046f91525c5ac3d3acf184d
2017-01-20 02:26:06 +00:00
Tianjie Xu 3591cb48f5 DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev
am: 4eb997d52b  -s ours

Change-Id: If5c4537e910fffddd757be2a80ca9c949e93ed93
2017-01-20 02:19:36 +00:00
Tianjie Xu 4eb997d52b DO NOT MERGE: resolve merge conflicts of 5346da02 to klp-modular-dev
Change-Id: Ie52a9abae416bbb84ddc61bb7159a531de778c15
2017-01-19 16:18:31 -08:00
Tianjie Xu 67b69c05c6 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours am: 94c8b5e5a6 am: 2b1bcab427 -s ours am: 37a5941440 am: ddca75fb0a am: b21b92b386
am: 8a51334062  -s ours

Change-Id: I7f2969a4bd8192f2c700945a493d2c32af91af70
2017-01-19 18:55:04 +00:00
Tianjie Xu 8a51334062 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours am: 94c8b5e5a6 am: 2b1bcab427 -s ours am: 37a5941440 am: ddca75fb0a
am: b21b92b386

Change-Id: I30cc5605866bc087fc6afdad2b2d7e033cd2f25e
2017-01-19 18:52:33 +00:00
Tianjie Xu b21b92b386 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours am: 94c8b5e5a6 am: 2b1bcab427 -s ours am: 37a5941440
am: ddca75fb0a

Change-Id: I8010afacf2d0299715cb3b11b81f31d6baca1083
2017-01-19 18:50:33 +00:00
Tianjie Xu ddca75fb0a DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours am: 94c8b5e5a6 am: 2b1bcab427 -s ours
am: 37a5941440

Change-Id: I87b102e92e9ee2bc49af6b7c8ec4d0a48894f732
2017-01-19 18:48:03 +00:00
Tianjie Xu 37a5941440 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours am: 94c8b5e5a6
am: 2b1bcab427  -s ours

Change-Id: I74119e64e0d5fe813c18191a201fadbf9870c400
2017-01-19 18:45:32 +00:00
Tianjie Xu 2b1bcab427 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours am: 051dfa7ec3 -s ours
am: 94c8b5e5a6

Change-Id: I42132e10d5ba4cdf77232dadb88100e6c29acf80
2017-01-19 18:43:02 +00:00
Tianjie Xu 94c8b5e5a6 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours am: a41cc29447 -s ours
am: 051dfa7ec3  -s ours

Change-Id: I88ff80ef082f32825f4ed860af9b9d67d282e11a
2017-01-19 18:41:01 +00:00
Tianjie Xu 051dfa7ec3 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726 am: 5346da0220 -s ours
am: a41cc29447  -s ours

Change-Id: Ib3a827173380145bf7a3fcd7e4f8386571228699
2017-01-19 18:39:02 +00:00
Tianjie Xu a41cc29447 DO NOT MERGE: Add a checker for signature boundary in verifier am: f616da1726
am: 5346da0220  -s ours

Change-Id: I2952d0746c6cc00837c90370d09a30049d462df3
2017-01-19 18:36:01 +00:00
Tianjie Xu ca50d7b66a Add a checker for signature boundary in verifier am: 54ea136fde am: 0a34b17c8b am: fb80b4f72d am: d3d5e54a45 am: 6ea9888d51 am: a055eb93c3
am: 15ca2a4763

Change-Id: I5481d39f0d2fdb92c95e964d2a55512f4df3acb3
2017-01-18 22:34:18 +00:00
Tianjie Xu 15ca2a4763 Add a checker for signature boundary in verifier am: 54ea136fde am: 0a34b17c8b am: fb80b4f72d am: d3d5e54a45 am: 6ea9888d51
am: a055eb93c3

Change-Id: I8d26eefd2de6b7245a110c27d4210d5fdd2bd151
2017-01-18 22:32:47 +00:00
Tianjie Xu a055eb93c3 Add a checker for signature boundary in verifier am: 54ea136fde am: 0a34b17c8b am: fb80b4f72d am: d3d5e54a45
am: 6ea9888d51

Change-Id: I7bbabdbe543c54f18dd42cb64030ca2174bf9bf2
2017-01-18 22:30:47 +00:00
Tianjie Xu 6ea9888d51 Add a checker for signature boundary in verifier am: 54ea136fde am: 0a34b17c8b am: fb80b4f72d
am: d3d5e54a45

Change-Id: Ib892c1745197ccb42d77c7bc8647f2e6b725a7dd
2017-01-18 22:28:46 +00:00
Tianjie Xu d3d5e54a45 Add a checker for signature boundary in verifier am: 54ea136fde am: 0a34b17c8b
am: fb80b4f72d

Change-Id: Iba2da78981e4bd7a2b263b2f6b18ab6c176e5fc8
2017-01-18 22:26:47 +00:00
Tianjie Xu fb80b4f72d Add a checker for signature boundary in verifier am: 54ea136fde
am: 0a34b17c8b

Change-Id: I4dbba92ea717951307dbcb6bf287edf4f6144a38
2017-01-18 22:24:16 +00:00
Tianjie Xu 0a34b17c8b Add a checker for signature boundary in verifier
am: 54ea136fde

Change-Id: Ide2da96e322c6a913b7f2e950e43c4d11278338e
2017-01-18 22:22:16 +00:00
Tianjie Xu 5346da0220 DO NOT MERGE: Add a checker for signature boundary in verifier
am: f616da1726

Change-Id: I05a1a6775229a1041e1a93388a86262d36d6581b
2017-01-18 22:22:16 +00:00
Tianjie Xu f616da1726 DO NOT MERGE: Add a checker for signature boundary in verifier
The 'signature_start' variable marks the location of the signature
from the end of a zip archive. And a boundary check is missing where
'signature_start' should be within the EOCD comment field. This causes
problems when sideloading a malicious package. Also add a corresponding
test.

Bug: 31914369
Test: Verification fails correctly when sideloading recovery_test.zip on
angler.

Change-Id: I6ea96bf04dac5d8d4d6719e678d504f957b4d5c1
(cherry-picked from f69e6a9475)
(cherry picked from commit 54ea136fde)
2016-12-19 16:46:44 -08:00
Tianjie Xu 54ea136fde Add a checker for signature boundary in verifier
The 'signature_start' variable marks the location of the signature
from the end of a zip archive. And a boundary check is missing where
'signature_start' should be within the EOCD comment field. This causes
problems when sideloading a malicious package. Also add a corresponding
test.

Bug: 31914369
Test: Verification fails correctly when sideloading recovery_test.zip on
angler.

Change-Id: I6ea96bf04dac5d8d4d6719e678d504f957b4d5c1
(cherry-picked from f69e6a9475)
2016-12-16 16:24:09 -08:00
Andriy Naborskyy b8c1788e7b DO NOT MERGE ANYWHERE init: move healthd to late-init am: 195ff7f79e -s ours
am: 7ceb371048  -s ours

Change-Id: I5c36f2e8ee5e410e9027376c32e86baa7fa2e65a
2016-10-27 16:07:25 +00:00
Andriy Naborskyy 7ceb371048 DO NOT MERGE ANYWHERE init: move healthd to late-init
am: 195ff7f79e  -s ours

Change-Id: Ibf16373a783458fd91284254156d5a9a0d70252d
2016-10-27 16:02:24 +00:00
Andriy Naborskyy 195ff7f79e DO NOT MERGE ANYWHERE init: move healthd to late-init
Starting healthd in early-init can cause SELinux denials if healthd
or any device-specific libraries try to log.

Now healthd is starting at boot as usual service.

Bug: 30292927
Change-Id: I367d022f5885122da49181db3db536012e83f564
2016-10-25 19:49:57 +00:00
Tianjie Xu c37c5c3410 Increase EIO retry count
Increase the number of attempts of an OTA update from 3 to 5 in case
an I/O error happened. This should increase the success rate of the
update.

Bug: 29619468
Change-Id: I88a067d9debd55a07be22ed981f395f6e47ec28f
2016-06-23 17:15:25 -07:00
Tianjie Xu 31f8cc84cf Check the results from applypatch
Check the results from applypatch in PerformCommandDiff; and abort the
update on failure.

Bug:29339536
Change-Id: I5087d79ba532b54250f4c17560524255c8a4fabc
2016-06-15 23:26:59 +00:00
Tao Bao 490fad6791 applypatch: Don't call inflate() when it expects zero-length output.
We may have expanded_len == 0 when calling inflate(). After switching to
using std::vector, it passes a nullptr buffer to inflate() and leads to
Z_STREAM_ERROR.

Bug: 29312140
Change-Id: Iab7c6c07a9e8488e844e7cdda76d02bd60d2ea98
2016-06-13 16:42:52 -07:00
Tianjie Xu b0ddae55e5 Log source/target build version to last_install
Parse the build.version.incremental from the metadata of the update
package; and log it to last_install.
Example:
In metadata we read:
post-build-incremental=2951741
pre-build-incremental=2943039

In last install we log:
source_build: 2943039
target_build: 2951741

Bug: 28658632
Change-Id: I0a9cc2d01644846e18bda31f4193ff40e8924486
2016-06-09 17:29:04 -07:00
Alain Vongsouvanh 771b6eb8d9 resolve merge conflicts of 6aa6ddb to nyc-dev
Change-Id: I3696fe3e86e0222c7c26b0aa2bf1dd8e03ac5315
2016-06-08 08:30:48 -07:00
Alain Vongsouvanh 6aa6ddb3c5 recovery: Make wear recovery more customizable.
am: 5b00110e3d

Change-Id: I88ab75e875cea8813ab4bdc9f099c31609ace6fd
2016-06-08 15:10:54 +00:00
Alain Vongsouvanh 5b00110e3d recovery: Make wear recovery more customizable.
Making animation_fps protected and adding support for 0 frames intro.

BUG: 29085786
Change-Id: I07b44570022bad89661973178d453592c01f3f10
2016-06-07 10:05:29 -07:00
Tianjie Xu 7ce287d432 Call ioctl before each write on retry
If the update is a retry, ioctl(BLKDISCARD) the destination blocks before
writing to these blocks.

Bug: 28990135
Change-Id: I1e703808e68ebb1292cd66afd76be8fd6946ee59
2016-06-03 12:12:50 -07:00
Tianjie Xu 50f6417317 Merge "Allow recovery to return error codes" into nyc-dev 2016-05-23 18:03:41 +00:00
Tianjie Xu 162558382b Allow recovery to return error codes
Write error code, cause code, and retry count into last_install. So we
can have more information about the reason of a failed OTA.

Example of new last_install:
@/cache/recovery/block.map     package name
0                              install result
retry: 1                       retry count (new)
error: 30                      error code (new)
cause: 12                      error cause (new)

Details in:
go/android-ota-errorcode

Bug: 28471955
Change-Id: I00e7153c821e7355c1be81a86c7f228108f3dc37
2016-05-20 13:56:53 -07:00
Matt Sarett 75dea9ca3a resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630 am: ca45737e27 am: 8a1d4e97ad am: aa02888e55 am: 300af0779d am: fc1d9a49d1
am: b02b2fe392

* commit 'b02b2fe392827a423c7783522edc5b9ad3d4f130':
  DO NOT MERGE Use updated libpng API

Change-Id: Ie6e8c5118687f0d34fc4acffdcb1d784e71e411f
2016-05-19 23:25:43 +00:00
Matt Sarett b02b2fe392 resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630 am: ca45737e27 am: 8a1d4e97ad am: aa02888e55 am: 300af0779d
am: fc1d9a49d1

* commit 'fc1d9a49d1e33c133c96cf6b04d6f47d3cfaa496':
  DO NOT MERGE Use updated libpng API

Change-Id: Id9da4d3980f394bf19032581629d0baf9c30e0fc
2016-05-19 23:22:55 +00:00
Matt Sarett fc1d9a49d1 resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630 am: ca45737e27 am: 8a1d4e97ad am: aa02888e55
am: 300af0779d

* commit '300af0779de3c2658f32e3de40adc41dae92df1e':
  DO NOT MERGE Use updated libpng API

Change-Id: Iac60caa51e747fcde2c08ddf06323e8b1e98f36a
2016-05-19 23:20:22 +00:00
Matt Sarett 300af0779d resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630 am: ca45737e27 am: 8a1d4e97ad
am: aa02888e55

* commit 'aa02888e55147ec78fa5636a87e2447bda136d68':
  DO NOT MERGE Use updated libpng API

Change-Id: I10705dd579623e4b208093cfc4839aad496081c8
2016-05-19 23:17:52 +00:00
Matt Sarett aa02888e55 resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630 am: ca45737e27
am: 8a1d4e97ad

* commit '8a1d4e97ad3b748a06db618f9d7ccf5114ea16d0':
  DO NOT MERGE Use updated libpng API

Change-Id: I09e8917976c05beec8bf881140539948c323ce58
2016-05-19 23:14:39 +00:00
Matt Sarett 8a1d4e97ad resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e am: 1f814d7630
am: ca45737e27

* commit 'ca45737e272aeefd657451a6faaa088d1903378c':
  DO NOT MERGE Use updated libpng API

Change-Id: Ia9c36583c9d60d01fec7ee9aefc973dabb1c07d3
2016-05-19 23:12:10 +00:00
Matt Sarett ca45737e27 resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f am: 36acff7d7e
am: 1f814d7630

* commit '1f814d7630c56cc9e825ed411e068414c97acb6c':
  DO NOT MERGE Use updated libpng API

Change-Id: Ib381e8ccefe9181911a2144d7255ecadefb42b5c
2016-05-19 23:08:54 +00:00
Matt Sarett 1f814d7630 resolve merge conflicts of 86a28d0 to klp-modular-dev am: a5bc59620f
am: 36acff7d7e

* commit '36acff7d7e88549bbeab6a08488ab48596d7fbc5':
  DO NOT MERGE Use updated libpng API

Change-Id: I7f01d932235ef69640ed4859d0e62344b3b774de
2016-05-19 23:06:06 +00:00