Commit Graph

4273 Commits

Author SHA1 Message Date
Chih-Hung Hsieh 1955ea00a0 Merge \"Add option to dump HTML warnings per project.\"
am: 620ce44a7a

Change-Id: If37ceb0cbbf43356a9df2681eb192b09c2c6a551
2016-07-27 00:45:13 +00:00
Chih-Hung Hsieh ff71afa4e0 Merge \"Add performance* to default global tidy checks.\"
am: 32c8bcf0bd

Change-Id: I9bb84dd4e53d84c3c9ad228616fa7f7839075128
2016-07-27 00:45:11 +00:00
Treehugger Robot 620ce44a7a Merge "Add option to dump HTML warnings per project." 2016-07-26 23:04:29 +00:00
Chih-Hung Hsieh 4354a33874 Add option to dump HTML warnings per project.
* Use --byproject flag to dump warnings in HTML file by projects.
* Add external/google and vendor/google projects, vs other
  external/non-google and vendor/non-google projects.
* Refactor code in dumpcategory to dump warnings by projects
  when --byproject is specified.
* Recognize new compiler -Wvarargs warning pattern.
* No change to default HTML output format.

Change-Id: I2406ad392ab18683357ff0ee0cf6c41f87cf399c
Test: run through current build.log files.
2016-07-26 14:53:28 -07:00
Chih-Hung Hsieh c868293abc Add performance* to default global tidy checks.
* This enables 5 performance related checks:
    performance-faster-string-find
    performance-for-range-copy
    performance-implicit-cast-in-loop
    performance-unnecessary-copy-initialization
    performance-unnecessary-value-param
* Recognize these new warnings in warn.py.

Bug: http://b/27779618
Change-Id: I7af3fdc262dd44db90d3b62eb37c5eac5a2eaa01
Test: build with WITH_TIDY=1 and run warn.py with build.log
2016-07-26 14:36:54 -07:00
Chih-hung Hsieh 94861af0ec Merge \\"Count warnings per project and dump out CSV format.\\" am: 053c54b554
am: d59fe53668

Change-Id: I8eef3954ca560feabf6fcba46a89a3aaa18d88c3
2016-07-22 01:05:15 +00:00
Chih-Hung Hsieh d59fe53668 Merge \"Count warnings per project and dump out CSV format.\"
am: 053c54b554

Change-Id: I22315bc641d501e74b995ddde8d7624fa9a6b883
2016-07-22 01:02:47 +00:00
Chih-Hung Hsieh 48a16ba709 Count warnings per project and dump out CSV format.
* No change to html output, except removing unused "PageTop" anchor.
* Add --gencsv flag to output a CSV file instead of html file.
  CSV files are combined to a table for dashboard charts.
* Count warnings from selected source project directories.
* CSV output lines are:
   num_of_warnings,project_name,warning_description
* project_name is empty for sum of warnings from all projects.
* warning_description could be:
  (1) "<severity>: <warning type description>"
      for one warning type, or
  (2) "<severity> warnings"
      for all warning types of the severity.

Change-Id: I1cf976ed0cf142091226b22665b7f28d383608fd
Test: run through current build.log files.
2016-07-21 14:43:02 -07:00
Chih-Hung Hsieh 586eecfb44 Merge \\"Recognize new clang and clang-tidy warnings.\\" am: 6131119708
am: bdcc181588

Change-Id: I38ded1b02d69b98e7d519cf7c382e7f227c32ba5
2016-07-20 23:11:07 +00:00
Chih-Hung Hsieh bdcc181588 Merge \"Recognize new clang and clang-tidy warnings.\"
am: 6131119708

Change-Id: If307f868da5d961ad3c1cac371ca3e5a42a6b652
2016-07-20 23:08:36 +00:00
Chih-Hung Hsieh c21ddbdcce Recognize new clang and clang-tidy warnings.
* Count new clang-tidy warnings:
    google-runtime-references
    google-runtime-operator
* Count new clang warnings:
    -Wconst-conversion similar to -Wliteral-conversion
    -Wundefined-var-template
* Modified static analyzer warning message about
    "Null passed to a callee that requires a non-null ..."
* Disable google-runtime-references by default and
  disable misc-macro-parentheses in vendor projects;
  too many old C/C++ code have this warning.

Change-Id: Ib35e0af85875aada17c92b0237b76cd5ae3bfcc8
Test: build with clang-tidy.
2016-07-20 14:45:01 -07:00
Chih-Hung Hsieh bac87ed68b Merge \\"Avoid matching the same warning line twice.\\" am: 0cbba3df2a
am: 472589e1cb

Change-Id: I81b387ec3e2892f7f6854482050dc65adf0c277f
2016-07-18 23:40:22 +00:00
Chih-Hung Hsieh 472589e1cb Merge \"Avoid matching the same warning line twice.\"
am: 0cbba3df2a

Change-Id: I641fa895ac7033056833107bf062015987965632
2016-07-18 23:38:24 +00:00
Chih-Hung Hsieh 5ecafd1260 Avoid matching the same warning line twice.
Used to skip only immediately followed identical warning lines.
Now classifywarning is called only once for each unique warning line.

Change-Id: Ie3b77ded70b41dafad91c042dbe15ad2be119e62
Test: run through build.log file
2016-07-18 15:27:02 -07:00
Tao Bao 32aba08598 Merge \\"Fix root_filesystem_config.txt generation\\" am: 461a3283d9
am: f464d8e7d4

Change-Id: I688d6b43735adda95c0fea4db32bb71725e12250
2016-07-13 23:17:58 +00:00
Gaelle Nassiet f464d8e7d4 Merge \"Fix root_filesystem_config.txt generation\"
am: 461a3283d9

Change-Id: I07ebb4520d02948bff90911d03692d7896dff89c
2016-07-13 23:15:12 +00:00
Tao Bao 461a3283d9 Merge "Fix root_filesystem_config.txt generation" 2016-07-13 23:04:10 +00:00
Tao Bao 4a673770cb resolve merge conflicts of 4058a71 to stage-aosp-master
am: 538ed261eb

Change-Id: I2ef81a2279ba62bc00c2a40d703666411877058f
2016-07-11 16:16:10 +00:00
Tao Bao 538ed261eb resolve merge conflicts of 4058a71 to stage-aosp-master
Change-Id: I0816bfc5d8adb20e175617d97651f1474ce4e916
2016-07-11 09:08:24 -07:00
Tao Bao 62a6c464a2 releasetools: Fix the detection of using squashfs.
We should disable using imgdiff if *any* of the source and target
partitions uses squashfs.

Bug: 30004734
Test: Create an incremental with two builds with one of them uses squashfs.
Change-Id: I826cd13d7b852c548e4b45e61f5ae00f6407cac3
(cherry picked from commit f8acad1480)
2016-07-10 23:16:14 -07:00
Tao Bao b6568cd4be releasetools: Disable using imgdiff for squashfs.
We use imgdiff to handle files in zip format (e.g. jar/zip/apk) for
higher compression ratio.

For system/vendor in squashfs, a) all files are compressed in LZ4
format; b) we use 4096-byte block size in their sparse images, but the
files in squashfs may not be laid out as 4K-aligned. So the blocks for
a given file as listed in block map may not form a valid zip file, which
may fail the patch generation with imgdiff.

Disable using imgdiff for squashfs images, and use bsdiff instead.

Bug: 22322817
Change-Id: Ie76aa4cece5c9d38cb1d1a34c505a4a8f37512d3
(cherry picked from commit 293fd135c7)
2016-07-10 23:15:48 -07:00
Tao Bao dd740c6817 Merge \\"releasetools: Fix the payload public key replacement.\\" am: 8a09095c34
am: c4449f819c

Change-Id: I1614d0af292c4cb0b6c9b9bc208194c30179c7b9
2016-07-08 21:12:58 +00:00
Tao Bao c4449f819c Merge \"releasetools: Fix the payload public key replacement.\"
am: 8a09095c34

Change-Id: I464ec9dd1a12dcb06bc1dcbf340fdcbac04b9575
2016-07-08 21:09:20 +00:00
Tao Bao 13b6962e8d releasetools: Fix the payload public key replacement.
update_engine expects the extracted public key instead of the
certificate.

Bug: 28701652
Change-Id: I292d39da9e039f96d01a4214226aeb46f8cb881d
(cherry picked from commit afaf295cb8)
2016-07-08 12:52:45 -07:00
Gaelle Nassiet aa8f2f65a0 Fix root_filesystem_config.txt generation
The first line returned by awk is empty. In consequence, when
fs_config computes its mode it will consider this line as a file (no
trailing slash) and affect the default android_files mode which is
0644. The mode for the root directory should be the default
android_dirs mode 0755.
Add a special case in fs_config to consider empty line as a directory.

Change-Id: I9f33f6fcf4be05c31914db898e65c92b0a611518
Signed-off-by: Gaelle Nassiet <gaellex.nassiet@intel.com>
2016-07-08 10:40:06 +02:00
Alex Klyubin 188a4191d9 Merge \\"Move apksigner library to tools/apksig.\\" am: c78147c650
am: ee7d7e3506

Change-Id: Ic11bee7e6e0fabfd1849ea9dc47fcd6dc5772d1f
2016-07-07 20:43:07 +00:00
Alex Klyubin ee7d7e3506 Merge \"Move apksigner library to tools/apksig.\"
am: c78147c650

Change-Id: I34e66d67736fb0a671f8030b4c94983a908e5d8c
2016-07-07 20:40:05 +00:00
Treehugger Robot c78147c650 Merge "Move apksigner library to tools/apksig." 2016-07-07 20:33:05 +00:00
Chih-Hung Hsieh d04cbc6f76 Merge \\"Recognize new C/C++ compiler and static analyzer warnings.\\" am: 1734523900
am: 6beef3807d

Change-Id: I0452a12af98ef1ea8426c0a54211186e4123afdd
2016-07-07 18:28:56 +00:00
Chih-Hung Hsieh 6beef3807d Merge \"Recognize new C/C++ compiler and static analyzer warnings.\"
am: 1734523900

Change-Id: I71b8f324ad88ff38b077ba1763c163f9d80a30fa
2016-07-07 18:24:12 +00:00
Treehugger Robot 1734523900 Merge "Recognize new C/C++ compiler and static analyzer warnings." 2016-07-07 18:07:21 +00:00
Alex Klyubin 1b09a508ba Move apksigner library to tools/apksig.
This moves build/tools/apksigner/core to its own project tools/apksig.
The move also renames the moved Java packages from
com.android.apksigner.core.* to com.android.apksig.* to reflect the
new name of the library.

Bug: 27461702
Change-Id: Iab812ae2b8f0a741014f842460c78e35bc249d43
2016-07-07 10:53:14 -07:00
Alex Klyubin a03dc9cab6 Merge \\"APK signer primitive.\\" am: d81beca2b2
am: 69c8c38f63

Change-Id: I296cabea0366e48f1ddaa7abcc189a74b90e529d
2016-07-06 23:16:52 +00:00
Alex Klyubin 69c8c38f63 Merge \"APK signer primitive.\"
am: d81beca2b2

Change-Id: I9570df7b5f7a70b4fdd04cbbdeae80d3e5bf9616
2016-07-06 23:14:09 +00:00
Treehugger Robot d81beca2b2 Merge "APK signer primitive." 2016-07-06 22:59:32 +00:00
Chih-Hung Hsieh 8d14543a9b Recognize new C/C++ compiler and static analyzer warnings.
Change-Id: I5f47c45498c640702922704aa5305a85e9493fcc
Test: run with Android build.log.
2016-07-06 10:22:23 -07:00
David Friedman c746bd459c Merge \"Docs: Adding info in support of TOC for new Performance section.\" into nyc-dev
am: 77a4215191

Change-Id: I83cd35ea59fd61d9aeac5961a98970531c68278c
2016-07-01 22:37:09 +00:00
Tianjie Xu 85da4d3566 Merge \"Skip copying existing vendor images\"
am: 1767d3f918

Change-Id: I5f929adedb17b6d32d2e0e284aa37c39c643c3ea
2016-06-29 18:45:57 +00:00
Tianjie Xu aaca421ec1 Skip copying existing vendor images
add_img_to_target_files.py has an option of "-a" to add missing
images only. Under this option, the script should skip copying
the radio images for A/B devices when given image exists already
under "IMAGES/".

Test: Run the command on an A/B device, the existing radio images under "IMAGES/" don't get overwritten; and missing images are added correctly.
Bug: 29608905
Change-Id: Ie034b85a5d777d53e367f99470cea4d19cb1aaaf
2016-06-29 18:32:30 +00:00
Ethan Xia e4efe69fae Merge \\"releasetools: Change the default key path for bvbtool\\" am: 7c7571d510
am: 090e8eff5e

Change-Id: I34f3cc1a38b860fd3100548f55a38af9faf69e19
2016-06-28 01:59:47 +00:00
Ethan Xia 090e8eff5e Merge \"releasetools: Change the default key path for bvbtool\"
am: 7c7571d510

Change-Id: Ic02f432c689edba37ecce684662d8f5f1cfc32b6
2016-06-28 01:57:26 +00:00
David Friedman e0b9229915 Docs: Adding info in support of TOC for new Performance section.
Bug:
Change-Id: Iad34b8d3294ddea714c8933a60fb2615811ac019
2016-06-27 16:40:20 -07:00
Alex Klyubin 819e8485e4 APK signer primitive.
This adds an APK signer primitive which preserves as much of the input
APK as possible. For example, it preserves the order of APK entries
and preserves their contents, including compressed form and alignment
of data.

Bug: 27461702
Change-Id: I51d07c530480182a66379e70a00f680544ff6214
2016-06-27 11:28:08 -07:00
Ethan Xia 37b4a9819b releasetools: Change the default key path for bvbtool
The bvb path has been changed from 'system/bvb' to 'external/bvb'

Change-Id: I8587351b7d702a287883c6bd3c9de1cd3540435b
2016-06-27 17:19:01 +08:00
Chih-hung Hsieh a612b58464 Merge \\"Add +/- buttons to expand/collapse warning categories.\\" am: 4837ce8ca6
am: 320d126394

Change-Id: I637c546da197a7d9cc6b1ea91dc6f45f51f7ecda
2016-06-24 18:17:05 +00:00
Chih-Hung Hsieh 320d126394 Merge \"Add +/- buttons to expand/collapse warning categories.\"
am: 4837ce8ca6

Change-Id: I56057da6bae847533cc59e9881e364f632927cd9
2016-06-24 18:12:10 +00:00
Chih-hung Hsieh 4837ce8ca6 Merge "Add +/- buttons to expand/collapse warning categories." 2016-06-24 18:07:44 +00:00
Tao Bao 1ea603491f Merge \\"Fix the path for verity_key replacement when signing.\\" am: 46abc55954
am: 5b9921369e

Change-Id: Iae1fbc6e07d1cada56d0f34b87dad2074b4664a6
2016-06-24 05:30:31 +00:00
Tao Bao c8338f1c35 Merge \\"Add ability to pass in payload_signer args\\" am: 8e6582b238
am: 8f9df9efb9

Change-Id: I3603ac55a8836406ca60c05959efffffb7ffca3a
2016-06-24 05:30:31 +00:00
Tao Bao 63cc08f93d Merge \\"releasetools: Support using payload_signer.\\" am: 983a42bdf1
am: 9322317ee7

Change-Id: I13c5eede68149c1dda6da9bb33a2527adc05dd8c
2016-06-24 05:30:31 +00:00
Tao Bao fb45739c55 Merge \\"releasetools: replace verity keyid\\" am: 6efa887f9b
am: 45d28d7392

Change-Id: I2104805b0de9ca28fde19f2c460b540977260dc2
2016-06-24 05:30:30 +00:00
Tao Bao b2814336a0 Merge \\"Replace OTA keys when signing for A/B devices.\\" am: f2c34ece3c
am: deb116a65d

Change-Id: Ib57f472bdd232a908e0399dc1365f9aaf8ddf3ba
2016-06-24 05:30:30 +00:00
Tao Bao 5b9921369e Merge \"Fix the path for verity_key replacement when signing.\"
am: 46abc55954

Change-Id: I9496d5826e077a470ac0ddd3565e3547611e6bf1
2016-06-24 05:27:03 +00:00
Baligh Uddin 8f9df9efb9 Merge \"Add ability to pass in payload_signer args\"
am: 8e6582b238

Change-Id: I83ab46e365fd09c7bf3d4a97fddf289e5d819ce0
2016-06-24 05:27:02 +00:00
Tao Bao 9322317ee7 Merge \"releasetools: Support using payload_signer.\"
am: 983a42bdf1

Change-Id: I027ae0f71c3a57ffad476791721b111605844f1d
2016-06-24 05:27:02 +00:00
Badhri Jagan Sridharan 45d28d7392 Merge \"releasetools: replace verity keyid\"
am: 6efa887f9b

Change-Id: I63b11e2e0d27100a58a05ea91c0e7c29bb0597ff
2016-06-24 05:27:01 +00:00
Tao Bao deb116a65d Merge \"Replace OTA keys when signing for A/B devices.\"
am: f2c34ece3c

Change-Id: I7eb287bd486d197b3c2c96616b558e7bc9536329
2016-06-24 05:27:00 +00:00
Tao Bao 8adcfd1688 Fix the path for verity_key replacement when signing.
system_root_image expects the key at ROOT/verity_key as opposed to
BOOT/verity_key. Also refactor the verity key replacement lines.

Bug: 29397395
Test: 'sign_target_files_apks.py --replace_verity_private_key newkey --replace_verity_public_key newkey.pub target_files.zip signed-target_files.zip' and verify the replaced key in boot.img.
Change-Id: I58a5defff4be008ad55d4b5a5b7148569c3b8d66
(cherry picked from commit e0ee794fa1)
2016-06-23 22:17:46 -07:00
Baligh Uddin 34eb000de5 Add ability to pass in payload_signer args
Bug: 28701652
Change-Id: I110d5fc14446e4a6a0f8e25dcb0d300decdf09a4
(cherry picked from commit 2abbbd0333)
2016-06-23 22:16:46 -07:00
Tao Bao 1a5e1d18a7 releasetools: Support using payload_signer.
For A/B OTAs, by default it calls 'openssl pkeyutl' to sign the payload
and metadata with the package private key. If the private key cannot be
accessed directly, a payload signer that knows how to do that should be
supplied via "--payload_signer <signer>".

The signer will be called with "-inkey <path_to_private_key>",
"-in <input_file>" and "-out <output_file>" parameters.

Test: Use a dummy signer, call 'ota_from_target_files.py --payload_signer <signer> <target_files.zip> <ota.zip>' and verify the signatures in the generated package.
Bug: 28701652
Change-Id: I26cfdd3fdba6fc90799221741b75426988e46fd3
(cherry picked from commit dea0f8bfed)
2016-06-23 22:15:30 -07:00
Badhri Jagan Sridharan 35c9b1243f releasetools: replace verity keyid
Replace verity keyid with the keyid extracted from cert
passed through --replace_verity_keyid. The veritykeyid in the
BOOT/cmdline of input target files is replaced with keyid
extracted from --replace_verity_keyid and written to the
output target files.

BUG: 28384658
Change-Id: Ic683f36f543c4fcd94b6f95e40f01200fbf45ee1
(cherry picked from commit b58d23fe00)
2016-06-23 22:13:12 -07:00
Tao Bao a80ed221b8 Replace OTA keys when signing for A/B devices.
It replaces the package verification key (change of path due to
system_root_image flag), as well as the payload verification key.

Bug: 29397395
Change-Id: I10435072aaf4356f2d8b5e1b6e82eb9cead7ad62
(cherry picked from commit 24a7206430)
2016-06-23 22:12:31 -07:00
Chih-Hung Hsieh 465b610183 Add +/- buttons to expand/collapse warning categories.
* Add expand/collapse-all buttons to expand/collapse all warnings.
* Use HTML styles to reduce output file size.

Change-Id: Ica188cc4f123ce0ab8547f88315325c3e0560a39
Test: Checked output html file with Chrome browser.
2016-06-23 13:18:58 -07:00
Alex Klyubin ef11808f84 Merge \\"Use Builder pattern for ApkVerifier parameters.\\" am: 744e7746c4
am: 7dbd1ea408

Change-Id: I425095197f451a3ea089cea75da13fbb01036f43
2016-06-23 00:40:11 +00:00
Alex Klyubin 7dbd1ea408 Merge \"Use Builder pattern for ApkVerifier parameters.\"
am: 744e7746c4

Change-Id: I36d18044ea627ff9f5f83ef8463476de07ce45ff
2016-06-23 00:37:28 +00:00
Alex Klyubin 9a41c93f41 Use Builder pattern for ApkVerifier parameters.
This should make it easier to add parameters/options without breaking
existing clients.

Bug: 27461702
Change-Id: Ia4577f78d703a6b91828dd08492c78d5e9afb110
2016-06-22 14:59:12 -07:00
Tianjie Xu 5371829b86 Merge \"Limit the number of blocks in command zero\" into nyc-dev
am: 0eade3f027

Change-Id: I7f5cc1319863eb1ec1d87b6bf3e9cb62f3401e41
2016-06-22 05:17:42 +00:00
Tianjie Xu b64439b291 Limit the number of blocks in command zero
Limit the number of blocks in command zero to 1024 blocks. This
prevents the target size of one command from being too large and
might help to avoid fsync errors during the OTA update.

Bug: 29535618
Change-Id: Ic630cea2599138516162bd0029e2e4b2af75bf4f
(cherry picked from commit bb848c54a7)
2016-06-21 23:19:30 +00:00
Elliott Hughes 38f9a845ca Merge \\"Remove --no_prereq flag from OTA script.\\" am: bc450fc9c8
am: bd30d5fa16

Change-Id: Ic083c9b038bd5a31f9b52ebd6fc498e0353239ca
2016-06-21 00:08:23 +00:00
Elliott Hughes bd30d5fa16 Merge \"Remove --no_prereq flag from OTA script.\"
am: bc450fc9c8

Change-Id: I35a4400afc829bf2b269135fa99f00979affd3bd
2016-06-21 00:05:51 +00:00
Elliott Hughes d8a52f9785 Remove --no_prereq flag from OTA script.
Bug: http://b/29393071
Test: aosp_flounder "make dist"
Change-Id: I9ec85210e118f7e525291e31ab4081a2bd10f998
2016-06-20 14:44:18 -07:00
Alex Klyubin 7f58c5d8f0 Merge \\"Let caller handle NoSuchAlgorithmException.\\" am: 8427083a26
am: a1daa9d537

Change-Id: I8d9677bdeb39d69fa1631a163229fa2b3a383d1d
2016-06-17 20:49:43 +00:00
Alex Klyubin a1daa9d537 Merge \"Let caller handle NoSuchAlgorithmException.\"
am: 8427083a26

Change-Id: I447c194f8f83cdec00760889f8c8f9278daf0ead
2016-06-17 20:47:02 +00:00
Alex Klyubin cbb41d2717 Merge \\"maxSdkVersion can be specified for APK verification.\\" am: 2ea2e205f4
am: d3ffd9241c

Change-Id: If4dea9509b303386ccb8ae181cd98215055e9fee
2016-06-17 19:24:41 +00:00
Alex Klyubin d3ffd9241c Merge \"maxSdkVersion can be specified for APK verification.\"
am: 2ea2e205f4

Change-Id: I95cb3936c1b60a26ad4002fcb6dc551f58c0ccbd
2016-06-17 19:22:04 +00:00
Alex Klyubin 05f87de7a3 Let caller handle NoSuchAlgorithmException.
This surfaces relevant NoSuchAlgorithmExceptions to the caller instead
of rethrowing as other exception types. Some setups need to be able to
distringuish issues due to their own misconfiguration
(required crypto algorithm mising -- NoSuchAlgorithmException) from
issues with the APK being signed or verified.

Bug: 27461702
Change-Id: I993f73edb29b2cd4cc485734a89a924ec357ef19
2016-06-17 12:15:32 -07:00
Alex Klyubin f31ced2e10 maxSdkVersion can be specified for APK verification.
This enables verification of APKs which are served to a specific
range of Android platform versions, or to replicate behavior of
particular platform versions.

Bug: 27461702
Change-Id: I44ab4c99419eb97d72c4ccd109137fe1efda577d
2016-06-17 10:02:47 -07:00
Alex Klyubin 23bd7d68f8 Merge \\"Reject PKCS#7 SignerInfo with unsupported parameters.\\" am: 21213cff9c
am: 88297dac19

Change-Id: I189a0d980ec51e48237e19670bcd863fdfbd909a
2016-06-17 16:09:19 +00:00
Alex Klyubin 88297dac19 Merge \"Reject PKCS#7 SignerInfo with unsupported parameters.\"
am: 21213cff9c

Change-Id: I9bec518914d7e2eff978dc7d189eb5641148f5ad
2016-06-17 16:06:31 +00:00
Alex Klyubin 21213cff9c Merge "Reject PKCS#7 SignerInfo with unsupported parameters." 2016-06-17 15:56:51 +00:00
Elliott Hughes f66d3e61f8 Merge \\"Remove obsolete MTD support from the releasetools scripts.\\" am: 63fc2b6766
am: ece6ff869c

Change-Id: I4b5f5b6a622a2fbb996861e8832e1fc1d12e6bf4
2016-06-17 05:02:05 +00:00
Elliott Hughes ece6ff869c Merge \"Remove obsolete MTD support from the releasetools scripts.\"
am: 63fc2b6766

Change-Id: I26ed21479ab52d535bcc99b13e55a1476a02f76c
2016-06-17 04:59:26 +00:00
Treehugger Robot 63fc2b6766 Merge "Remove obsolete MTD support from the releasetools scripts." 2016-06-17 04:47:47 +00:00
Elliott Hughes 305b088729 Remove obsolete MTD support from the releasetools scripts.
Bug: http://b/29250988
Change-Id: I653dc306485c6b35411840b53211d42eb6d19e34
2016-06-16 20:48:47 -07:00
Dan Willemsen 947c5715f8 Merge \\"Remove build/libs\\" am: fcb8a89c3b
am: 3c48705b9b

Change-Id: I208cf823efc29610c2978719eed5ca44a16c6454
2016-06-16 23:00:41 +00:00
Dan Willemsen 3c48705b9b Merge \"Remove build/libs\"
am: fcb8a89c3b

Change-Id: Ib52f800fe84b7c3c8d060196713bd5677a9f791c
2016-06-16 22:58:01 +00:00
Dan Willemsen eb4431595c Remove build/libs
There's only a single library, libhost, and it's only used by acp and
atree in build/tools, move it there.

Bug: 28001743
Change-Id: Ie404d2793710de4e265a6fa95d462c32d4042623
2016-06-16 14:52:47 -07:00
Alex Klyubin d7236da153 Reject PKCS#7 SignerInfo with unsupported parameters.
This addresses the TODO to mimic the behavior of Android when
verifying APK JAR signatures. Unfortunately, the behavior of Android
kept changing in interesting ways between different platform versions.
This is hard-coded as a big lookup.

Bug: 27461702
Change-Id: I49bc181ee05f774ef8ee041af870385b35212c23
2016-06-16 12:44:36 -07:00
Mohamad Ayyash 3336f9ae67 Merge \"squashfs: make disable-4k-align a parameter\" into nyc-dev
am: 8ebbc4e7e2

Change-Id: Ia5c59b7bfc7f2b25fa9b13c2ce52c1bd75ccecce
2016-06-16 16:39:39 +00:00
Mohamad Ayyash 8ebbc4e7e2 Merge "squashfs: make disable-4k-align a parameter" into nyc-dev 2016-06-16 16:24:34 +00:00
Tao Bao 7e5205f929 Merge \\"Support wiping userdata for A/B OTA packages.\\" am: b727d5bb32
am: 4f2b227fae

Change-Id: Icf157b44ecda14a2c289d4826e5a55af67e805d5
2016-06-16 15:53:20 +00:00
Tao Bao 4f2b227fae Merge \"Support wiping userdata for A/B OTA packages.\"
am: b727d5bb32

Change-Id: I9d6e67c5e71b025f7cb9119b45f05c51f2cfd340
2016-06-16 15:50:47 +00:00
Tao Bao 7c5dc578b3 Support wiping userdata for A/B OTA packages.
update_engine now accepts POWERWASH=1 to schedule a factory reset in
the post-install phase. Hook up with the --wipe_user_data flag in the
OTA script.

Bug: 28700985
Change-Id: Ie73876a61db90d124d2af588d674757376e9aabc
(cherry picked from commit 38ca0be399)
2016-06-15 23:19:52 -07:00
Mohamad Ayyash 1b6d3485fc squashfs: make disable-4k-align a parameter
BUG: 29388879
Change-Id: I121d2b76db5fb269e2f7152abb2e78098437a0d5
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-06-15 16:37:21 -07:00
Alex Klyubin 37a8cc5f51 Merge \\"Don\\'t depend on Bouncy Castle.\\" am: 1fb96c3ff5
am: 3b36c7960d

Change-Id: Ib33cb3a8aaa94df96731a16f20a7ef5415f42a3f
2016-06-15 20:48:11 +00:00
Alex Klyubin 3b36c7960d Merge \"Don\'t depend on Bouncy Castle.\"
am: 1fb96c3ff5

Change-Id: I04401121eb3ad2e026268f37ffe9d19d95478325
2016-06-15 20:43:46 +00:00
Alex Klyubin 1fb96c3ff5 Merge "Don't depend on Bouncy Castle." 2016-06-15 20:32:35 +00:00
Mohamad Ayyash 52cef0d4f0 Merge \"Pass block_list param to mksquashfs\" into nyc-dev
am: 3bddf74752

Change-Id: I1679c255b297a36bc10b50ff9d6214c92d763489
2016-06-15 16:12:55 +00:00
Tao Bao 46ff838582 Merge \"releasetools: Disable using imgdiff for squashfs.\" into nyc-dev
am: a8d3741f1a

Change-Id: If8392b72a865f53449a1d5ca7b52de7697c4b412
2016-06-15 16:12:52 +00:00
Mohamad Ayyash 3bddf74752 Merge "Pass block_list param to mksquashfs" into nyc-dev 2016-06-15 16:03:08 +00:00
Alex Klyubin 5e8b2c9207 Merge \"Faster and cleaner way to obtain UTF-8 encoded form.\"
am: 98b4f07dfc

Change-Id: Ic5e071d01ea0fd9a091097e3659f16c0b71f5ae6
2016-06-14 22:41:02 +00:00
Treehugger Robot 98b4f07dfc Merge "Faster and cleaner way to obtain UTF-8 encoded form." 2016-06-14 22:37:10 +00:00
Dan Willemsen ffb643e487 Merge \"Use more prebuilt build-tools\"
am: 6c0c720389

Change-Id: Icb67388bf084f2de872e9df8747b70cbde42b5f9
2016-06-14 22:28:02 +00:00
Treehugger Robot 6c0c720389 Merge "Use more prebuilt build-tools" 2016-06-14 22:14:07 +00:00
Alex Klyubin d4761a19b8 Faster and cleaner way to obtain UTF-8 encoded form.
Instead of specifying character encoding by name, the faster, cleaner,
and safer way is to use StandardCharsets.UTF_8.

Bug: 27461702
Change-Id: I897284d3ceeb44a21cc74de09a9b25f6aec8c205
2016-06-14 14:18:21 -07:00
Alex Klyubin d1af20e103 Merge \"APK JAR signature verifier.\"
am: cf89865b95

Change-Id: If54865fdf6d290ab38a3f6a0f3eec2142c55e8d0
2016-06-14 21:03:04 +00:00
Alex Klyubin cf89865b95 Merge "APK JAR signature verifier." 2016-06-14 20:56:28 +00:00
Dan Willemsen 7c2d228701 Use more prebuilt build-tools
For acp, we've been using an old prebuilt in prebuilts/sdk, but it's not
part of the SDK. Instead, we'll use a prebuilt in the build-tools
repository.

For ijar, we've been using the host libstdc++ to workaround the lack of
libc++ on some unbundled branches. Instead, use a prebuilt that can use
libc++.

For ziptime, we've been disabling it on unbundled branches, due to the
lack of libc++. Instead, use a prebuilt version of ziptime that can use
the prebuilt libc++.

Change-Id: If80f845ea06f76e3fe6765964e77c864eaf303d0
2016-06-14 13:50:38 -07:00
Dan Willemsen 38ff3ae039 Merge \"Add a libc++ version of ijar for prebuilt use\"
am: 06f3e8349f

Change-Id: I284c7c85de71551e608e4210ab71b17e36229e09
2016-06-14 20:04:21 +00:00
Alex Klyubin 7f770c0963 Don't depend on Bouncy Castle.
This switches PKCS#7 SignedData generation code from Bouncy Castle to
OpenJDK's proprietary internal API. This is to avoid depending on a
huge library that's not really needed. In the longer term, it's best
to add our own implementation of PKCS#7 SignedData building, parsing,
and verification. This will give the code more power to mimic what the
Android platform does.

Bug: 27461702
Change-Id: I29f1ceea1293e35424fde69c0f2969d551345100
2016-06-14 11:20:49 -07:00
Dan Willemsen e19d451f49 Add a libc++ version of ijar for prebuilt use
I'll remove the old version once we've moved over to the prebuilts.

Change-Id: Ifd8d396f8b653abbe958cd34e69831a6ca378649
2016-06-14 10:30:06 -07:00
Alex Klyubin 8b47001e9b APK JAR signature verifier.
This adds JAR signature verification to ApkVerifier.

Bug: 27461702
Change-Id: Id2b72bea7869be66268f6bc1387e1559ee02ff9d
2016-06-14 10:28:36 -07:00
Alex Klyubin 346a716b87 Merge \\"More general OutputStreamDataSink.\\" am: dca955a9bd
am: 58c8559979

Change-Id: I1caf9f4ae2650dfadcb003315c12a30a3288fd4f
2016-06-13 20:06:33 +00:00
Alex Klyubin dca955a9bd Merge "More general OutputStreamDataSink." 2016-06-13 19:49:01 +00:00
Alex Klyubin 876080b437 Merge \\"Fix inefficiency in APK entry data alignment.\\" am: a85e0aa883
am: 7fe6ba2197

Change-Id: I97934b2a4cdfabb463f5012149ef28a15768c321
2016-06-13 18:26:05 +00:00
Alex Klyubin a85e0aa883 Merge "Fix inefficiency in APK entry data alignment." 2016-06-13 18:14:18 +00:00
Alex Klyubin e54b2753e4 More general OutputStreamDataSink.
This replaces the less general DataSink which outputs into a
ByteArrayOutputStream with a more general DataSink which outputs into
an OutputStream.

Bug: 27461702
Change-Id: I9467f38c41f586b71f35edb3602fd6e57153184f
2016-06-13 10:19:26 -07:00
Tao Bao 293fd135c7 releasetools: Disable using imgdiff for squashfs.
We use imgdiff to handle files in zip format (e.g. jar/zip/apk) for
higher compression ratio.

For system/vendor in squashfs, a) all files are compressed in LZ4
format; b) we use 4096-byte block size in their sparse images, but the
files in squashfs may not be laid out as 4K-aligned. So the blocks for
a given file as listed in block map may not form a valid zip file, which
may fail the patch generation with imgdiff.

Disable using imgdiff for squashfs images, and use bsdiff instead.

Bug: 22322817
Change-Id: Ie76aa4cece5c9d38cb1d1a34c505a4a8f37512d3
2016-06-13 10:04:23 -07:00
Mohamad Ayyash c3484f7f64 Pass block_list param to mksquashfs
Needed to generate image.map and to optimize the OTA size

BUG: 22322817
Change-Id: I7802f4dbb9116a94ea99a00b68c3a7ff180ef08a
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-06-13 09:48:05 -07:00
Alex Klyubin ab2a3b0061 Fix inefficiency in APK entry data alignment.
26f00cda4b introduced a bug where an
APK entry's extra field is padded for alignment purposes when no
padding is necessary because the entry is aligned without any padding
bytes.

Bug: 27461702
Change-Id: Icb164dbaa26d9686412e2920318a9f40c5ce9751
2016-06-11 17:47:20 -07:00
Alex Deymo dbae67fac8 Merge \\"Redirect subprocess stderr to stdout in verbose mode.\\" am: 1318ec93e7
am: 74d7b31f7d

Change-Id: Ia9757f09dead577349b0cf4b97cb062f30d0f45d
2016-06-11 01:12:06 +00:00
Alex Deymo d8d96ecdae Redirect subprocess stderr to stdout in verbose mode.
This patch uses subprocess.communicate instead of subprocess.wait to
prevent deadlock if any of the child processes outputs too much data,
and redirects the subprocess output to stdout when running in verbose
mode.

With this patch `ota_from_target_files -v` prints the delta_generator
output in stdout, and no output if '-v' is not passed.

Bug: None
TEST=ota_from_target_files -v ...

Change-Id: Id66e4f3360a6f91d61a3ce96d53afbccdaa19da5
2016-06-10 16:38:31 -07:00
Tianjie Xu c201d28713 Add build.version.incremental to metadata
am: d06f07eef4

Change-Id: I4f0b89d69154ef32bbb04fa905fdc014c911d571
2016-06-10 17:24:52 +00:00
Tianjie Xu d06f07eef4 Add build.version.incremental to metadata
Add the build property "build.version.incremental" of the source (if
present) and target files to the metadata of the ota update package.

Example of metadata:
....
post-build-incremental=2951741
post-timestamp=1465345123
pre-build-incremental=2943039
pre-device=bullhead
...

Bug: 28658632
Change-Id: I889e8ccf39633b1b35590751001a42d1b05d5514
2016-06-09 17:54:46 -07:00
Alex Klyubin 42c4f541ae Merge \\"APK Signature Scheme v2 APK verifier.\\" am: 4f8bde47ae
am: 9cf15a318b

Change-Id: Iada08b1831d737ab702b6f7aee7cb21648a06bf0
2016-06-08 21:06:41 +00:00
Alex Klyubin 914b771e2f Merge \\"Fix DSA APK signatures for API Level 8 and lower.\\" am: ebe68ec237
am: b926969a84

Change-Id: Ie93b77c066e7637cdb704d3167dc65936aca16b1
2016-06-08 15:31:24 +00:00
Alex Klyubin 8740e9df19 APK Signature Scheme v2 APK verifier.
This adds the ApkVerifier class which verifies APKs using APK
Signature Scheme v2 only. In a follow-up commit this class will be
extended to verify APKs using JAR signature scheme when necessary.

The APK verifier is designed to not just verify an APK, but also
report errors, warnings, and information about signers in a structured
way, to enable tools to surface this information to users in various
ways.

Bug: 27461702
Change-Id: I10c6ba436021d86b6dbf6d3cf44494652adacb66
2016-06-08 08:23:30 -07:00
Alex Klyubin ebe68ec237 Merge "Fix DSA APK signatures for API Level 8 and lower." 2016-06-08 15:17:42 +00:00
Dan Willemsen 6fe82857b5 Merge "Switch some build tools to Soong" am: c52d09e694
am: 8a78c90a95

* commit '8a78c90a95a3a0c5886b333e90994721eeb92734':
  Switch some build tools to Soong

Change-Id: I481784785375dfb6790d14681eb110e0f67bf65c
2016-06-06 23:05:06 +00:00
Treehugger Robot c52d09e694 Merge "Switch some build tools to Soong" 2016-06-06 22:51:57 +00:00
Alex Klyubin 819b5354e0 Fix DSA APK signatures for API Level 8 and lower.
This modifies JAR signing code to produce DSA signatures which are
accepted by all Android platforms rather than only API Level 9 and
higher.

The issue is that by default Bouncy Castle uses OID 1.2.840.10040.4.3
(dsaWithSha1) in PKCS #7 CMS SignerInfo whereas Android accepts that
only since API Level 9. However, OID 1.2.840.10040.4.1 (dsa) is
accepted by all Android platforms.

Bug: 27461702
Change-Id: I24256a255bcdc2108bdb447557af7568a2c096e3
2016-06-06 15:05:08 -07:00
Dan Willemsen 56eb2f9f54 Switch some build tools to Soong
In preparation for including them in prebuilts/build-tools.

acp: We use a prebuilt in prebuilts/sdk, but it's not part of the sdk.

ijar: We use the host libstdc++ to workaround the lack of libc++ on
some unbundled branches.

ziptime: We disable this on unbundled builds, due to the lack of libc++.

Change-Id: Ib9766b1dbddd151c38ff27c529865200ab37fce1
2016-06-06 14:51:52 -07:00
Dan Willemsen 029da90bf4 Merge "Remove dead rgb2565" am: a571e83095
am: d1f0eb15c8

* commit 'd1f0eb15c812b8c4ea8697b9e2171846e6510884':
  Remove dead rgb2565

Change-Id: I6a95c5cf31a05822d85fce16d1e9b311dd759cee
2016-06-06 21:43:16 +00:00
Treehugger Robot a571e83095 Merge "Remove dead rgb2565" 2016-06-06 21:35:47 +00:00
Alex Klyubin 31e3dab7bb Merge "Improve efficiency of using the DataSource abstraction." am: 7353eabd14
am: 732b29a5c3

* commit '732b29a5c38a3a33bdffea662875e6a8dab894b3':
  Improve efficiency of using the DataSource abstraction.

Change-Id: I4b2e05ffc80d59ef19a1b78c3560f0d21c5b04b2
2016-06-06 21:23:05 +00:00
Alex Klyubin 7353eabd14 Merge "Improve efficiency of using the DataSource abstraction." 2016-06-06 21:07:52 +00:00
Dan Willemsen 08b12dc2c8 Remove dead rgb2565
Change-Id: I2397dc97768f24a7c416bff96dd983fc796cbb53
2016-06-06 13:32:11 -07:00
Alex Klyubin 56d75bb19d Merge "Switch signapk to apksigner-core." am: 1a39e8eb34
am: 2f24b771ea

* commit '2f24b771eac14924ba9d5ab1a0e69da1641df582':
  Switch signapk to apksigner-core.

Change-Id: I3b8ddfcf2369247713b1570cb901cc5604622c75
2016-06-06 19:59:12 +00:00
Alex Klyubin 1a39e8eb34 Merge "Switch signapk to apksigner-core." 2016-06-06 19:40:23 +00:00
Alex Klyubin b02eefacbf Improve efficiency of using the DataSource abstraction.
This adds getByteBuffer and copyTo methods to the DataSource
abstraction. These methods enable the client to avoid unnecessary
copying of the data source's data.

Bug: 27461702
Change-Id: If4e9f902ea75c1ca5c7be0e20c0e7218faf9c504
2016-06-06 11:17:03 -07:00
Colin Cross 116a8ef96b Merge "Add --dir option to findleaves.py" am: 40623e2a99
am: 1d7930b2be

* commit '1d7930b2bedad092189bca3336a9cf717b9b4f37':
  Add --dir option to findleaves.py

Change-Id: Id2027d82ae83efd1ca05379b200b7f48ac44b6be
2016-05-28 01:04:52 +00:00
Treehugger Robot 40623e2a99 Merge "Add --dir option to findleaves.py" 2016-05-28 00:53:47 +00:00
Colin Cross 9808645cd9 Add --dir option to findleaves.py
findleaves.py needs to be able to search multiple directories for
multiple filenames (Android.bp and Android.mk).  Add support for a new
--dir= option to specify one or more directories to search, and then
treat any remaining options as filenames.  If no directories are
specified, fall back to treating only the last option as a filename and
the rest as directories.

Change-Id: Ie879facd49192c6b4fafae070ad00eb21b1faa32
2016-05-27 16:05:10 -07:00
Alex Klyubin fa1da6c311 Switch signapk to apksigner-core.
This switches signapk's APK signing from its own signing logic to that
offered by apksigner-core library. OTA update package signing logic
remains inside signapk codebase.

Bug: 27461702
Change-Id: Ibf8435c555fe3f2b621d5189e7ae44f79082c810
2016-05-27 14:45:51 -07:00
Alex Klyubin fe2470994e Merge "Improve DataSource interface." am: ce4c9d7108
am: f41e840250

* commit 'f41e840250e2c0e5cce9263edbcb43fec4163d85':
  Improve DataSource interface.

Change-Id: Ibf017a47be707dbd0576021832ce760a7dcaa21a
2016-05-27 20:12:27 +00:00
Alex Klyubin ef6b69d741 Merge "Store entry alignment information in APK." am: 85f004c6c5
am: 4ea527597e

* commit '4ea527597e72ddff825a32fc24c6e4970d50da8f':
  Store entry alignment information in APK.

Change-Id: I3ab22f58eba48743a6533265217f09ab007840f6
2016-05-27 20:07:40 +00:00
Alex Klyubin ce4c9d7108 Merge "Improve DataSource interface." 2016-05-27 20:00:59 +00:00
Alex Klyubin 7b977ea0e9 Improve DataSource interface.
1. This adds way to obtain a DataSource which represents a region of
   data contained in the DataSource.
2. This fixes a design bug in "feed" method where the size parameter
   was an int instead of long.
3. This fixes a bug in ByteBufferDataSource where its mSize field was
   a long instead of an int (ByteBuffer's length cannot be more than
   2^31).

Bug: 27461702
Change-Id: Ib0812784beb581f19d2412e667b8bd018f0a3c78
2016-05-27 10:28:52 -07:00
Dirk Dougherty bf886f4f3b Fix improper date reference in blog reader. am: 2732bb762a am: 0f6d425804 am: 53cd365b2d
am: a5bce98621

* commit 'a5bce98621ef4aa7632ead4de267118f4832d6c2':
  Fix improper date reference in blog reader.

Change-Id: Iedec1fc31a923e12a9733427a7ee2666c761b3e5
2016-05-26 23:52:30 +00:00
Dirk Dougherty a5bce98621 Fix improper date reference in blog reader. am: 2732bb762a am: 0f6d425804
am: 53cd365b2d

* commit '53cd365b2d2c2b074d628147a8a382275075bd1d':
  Fix improper date reference in blog reader.

Change-Id: I300892c3c4439354917872839c18e4c029160df1
2016-05-26 23:49:38 +00:00