Commit Graph

1016 Commits

Author SHA1 Message Date
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
Tianjie Xu 97be5b9b6e Merge "Report error codes in the OTA update script" into nyc-dev
am: 654e4fb023

* commit '654e4fb02368b05cbfba3246b4c634512fa84464':
  Report error codes in the OTA update script

Change-Id: I333bd45886d5915858b762e086d8a263f81b26e2
2016-05-25 21:11:12 +00:00
Tianjie Xu 7d1dd8e310 Merge "Report error codes in the OTA update script" into nyc-dev am: 654e4fb023
am: 6a912c14dd

* commit '6a912c14ddc39e3ef70ba2b4b484ef080ef61d3b':
  Report error codes in the OTA update script

Change-Id: I2fc44e04861523d21724d39ab7e5fa2c0d6a4af7
2016-05-25 21:06:31 +00:00
Tianjie Xu 6a912c14dd Merge "Report error codes in the OTA update script" into nyc-dev
am: 654e4fb023

* commit '654e4fb02368b05cbfba3246b4c634512fa84464':
  Report error codes in the OTA update script

Change-Id: Ic8d04a484bdf6d08af5109a71967c3d5f8f0be27
2016-05-25 21:02:21 +00:00
Tianjie Xu 209db46be1 Report error codes in the OTA update script
Modify the abort() function in the OTA update generation script to
report an error code. The recoveryimage will parse the code and write it
into last_install for further data analysis.

Bug: 28934032
Change-Id: I2d62f81fd352c3102fb84f054972ac0ecb965a21
2016-05-25 12:22:31 -07:00
Mohamad Ayyash 000d71dc1d Pass squashfs block size as a parameter
am: dfec815882

* commit 'dfec815882d2253c6c9130e3241a1906161f3824':
  Pass squashfs block size as a parameter

Change-Id: Ie767254ce653b6a0d21ca9922434ad350fd61a48
2016-05-24 21:08:17 +00:00
Mohamad Ayyash dfec815882 Pass squashfs block size as a parameter
BUG: 28920352
Change-Id: Ifed02bd1565131814047991ec87fa61691bfe240
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-05-24 20:55:13 +00:00
Mohamad Ayyash 465acf8631 Use fs_config files for mksquashfs
BUG: 27467028
Change-Id: I7648030ad4b31d70a5d439e9552fd2cbfe288b74
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
BUG: 28704419
2016-05-12 18:44:48 -07:00
Wei Wang 2c5e71fbe8 Merge "Include BRILLO_VENDOR_PARTITIONS in target zip generation" am: 648ea82b04
am: a22d0a88ba

* commit 'a22d0a88ba74bba43a8683e542b5f46eb9afce22':
  Include BRILLO_VENDOR_PARTITIONS in target zip generation

Change-Id: I44390a1512b24880183d40d35087409b9693435f
2016-05-11 22:03:31 +00:00
Wei Wang 2e735ca34e Include BRILLO_VENDOR_PARTITIONS in target zip generation
This change will enable the target zip to include partition defined in
BRILLO_VENDOR_PARTITIONS. This is necessary for OTA to support
partitions other than boot and system in ab_partitions.txt.

The target zip will include images in BRILLO_VENDOR_PARTITIONS if
defined, under VENDOR_IMAGES/ with path kept. Also any vendor partitions
defined in AB_OTA_PARTITIONS will be copied to IMAGES/ in the target zip.

BUG: 28623063
Change-Id: Ic479048dfb8ac506acf827865e784fcb0432a1d5
2016-05-11 12:26:04 -07:00
Tao Bao ec960e2b55 Merge "Revert "Include vendor partitions in target zip generation"" am: 7ff7c2d870
am: b1963b65a4

* commit 'b1963b65a45ddef3159b542ee49d82a6c310f1d4':
  Revert "Include vendor partitions in target zip generation"

Change-Id: I468caee113cba2b51ca225a9d8de8b791ed502fd
2016-05-11 15:21:28 +00:00
Wei Wang 05e6f679e6 Revert "Include vendor partitions in target zip generation"
This reverts commit 421fe44ae8.

Change-Id: Id45781de73735783bc7dfb6fc2838957578d00d3
2016-05-11 14:49:50 +00:00
Wei Wang 90b4658904 Merge "Include vendor partitions in target zip generation" am: bb05fd768c
am: eb06b4d3b3

* commit 'eb06b4d3b3862759ca15e9c52802808debc0a295':
  Include vendor partitions in target zip generation

Change-Id: I9646c90fbe5c57a1f8c6022b8aad03f4e19f56e7
2016-05-11 02:27:00 +00:00
Wei Wang 421fe44ae8 Include vendor partitions in target zip generation
This change will enable the target zip to include partition defined in
BRILLO_VENDOR_PARTITIONS. This is necessary for OTA to support
partitions other than boot and system in ab_partitions.txt.

BUG: 28623063
Change-Id: I6e0969c31c9ad2e8285c6f560825c160aa8c4d55
2016-05-10 11:00:09 -07:00
Tao Bao ce0c7f8840 Merge "releasetools: Perform erase commands first." into nyc-dev
am: 25fe877c61

* commit '25fe877c6138afc122331038a271cc80bd78f394':
  releasetools: Perform erase commands first.

Change-Id: Ia8b081097bb98adbf5acfd57d05368f9ca7eb4fa
2016-05-04 22:36:15 +00:00
Tao Bao 25fe877c61 Merge "releasetools: Perform erase commands first." into nyc-dev 2016-05-04 22:32:39 +00:00
Tao Bao 66f1fa6565 releasetools: Perform erase commands first.
We used to erase all the unused blocks at the end of an update. In order
to work around the eMMC issue in b/28347095, we move part of the erase
commands, which won't be used during the update, to the beginning. The
reset would be erased at the end. This is in hopes of avoiding eMMC
getting starved for clean blocks which would otherwise fail an OTA.

Bug: 28347095
Change-Id: Ia96b06216b35d6700858687a66734af36d0ec213
2016-05-04 12:21:42 -07:00
Tao Bao e094740249 releasetools: Change the base_fs assertion into warnings.
am: b079b50e2a

* commit 'b079b50e2ae2748f77139618cd5dfb8ef06d8418':
  releasetools: Change the base_fs assertion into warnings.

Change-Id: Iaa24f81e864886ef6f4ebe05ea514fa977306fb4
2016-05-03 16:59:17 +00:00
Tao Bao b079b50e2a releasetools: Change the base_fs assertion into warnings.
commit f54216f292 packed the base_fs files
into target_files.zip and added assertion to ensure the existence of the
files. We don't want to fail the OTA generation for the target_files.zip
without the base_fs files. Change the assertion into warnings instead.

Bug: 28547368
Change-Id: I6fd758a0a4fdfff02d1640fa46cf43d971627e26
2016-05-03 08:05:09 -07:00
Tao Bao be9457cad2 Pack base_fs files into target_files.zip.
am: f54216f292

* commit 'f54216f29238a67aad1199a0e85d09e443740bf0':
  Pack base_fs files into target_files.zip.

Change-Id: Ia68c3a707def1865151f071ca33a3bdc513f9045
2016-05-02 16:45:31 +00:00
Tao Bao f54216f292 Pack base_fs files into target_files.zip.
Pack the base_fs files ({system,vendor}.map) into target_files.zip,
which would be needed when rebuilding the images at signing.

Reset the base_fs paths to point to the files in META/.

Also add blk_alloc_to_base_fs into otatools.zip.

Bug: 27698960
Change-Id: If4eb274b3f3d839c4365624f46f0dc89bd2fa440
2016-04-30 23:56:10 -07:00
Tao Bao 6e1b35d625 target_files_diff: Fix the issue with file type change.
am: f31a6de

* commit 'f31a6deeeeb896cc516c2f2f91ceff1fd0702938':
  target_files_diff: Fix the issue with file type change.

Change-Id: I4f13b01aa009d7f33692eb20d6ff2c6de241b728
2016-04-25 18:35:20 +00:00
Tao Bao 00dbe29173 target_files_diff: Fix the issue with file type change.
When a file is switched from a regular file to a symlink, we should skip
the comparasion.

Bug: 28373409
Change-Id: I8fef00ab9f2d6f811fde1cadf595e8bd46af2dfd
(cherry picked from commit f31a6deeee)
2016-04-25 11:29:48 -07:00
Tao Bao f31a6deeee target_files_diff: Fix the issue with file type change.
When a file is switched from a regular file to a symlink, we should skip
the comparasion.

Bug: 28373409
Change-Id: I8fef00ab9f2d6f811fde1cadf595e8bd46af2dfd
2016-04-25 10:07:20 -07:00
Tao Bao 314719a0b6 Merge "Skip verifying the partition with no changed blocks." into nyc-dev
am: 05ce0a9

* commit '05ce0a94a5a6eec3113b62a39f97401e6a3fb3a0':
  Skip verifying the partition with no changed blocks.

Change-Id: I8a3a9f8fe7bcf25fd719940d883a22a7adcfdef9
2016-04-15 03:29:42 +00:00
Tao Bao 962dfdcdac Skip verifying the partition with no changed blocks.
For incremental BBOTAs, commit [1] changed to verify only the touched
blocks to reduce the update time. This CL fixes the bug when there's no
changed block between the two builds.

[1]: commit d522bdc9ed

Bug: 27813356
Bug: 28195498
Change-Id: Ia752d3cf034c544517458ed15df509d4596e21fa
(cherry picked from commit f9efe284a4)
2016-04-14 20:23:17 -07:00
Tao Bao f9efe284a4 Skip verifying the partition with no changed blocks.
For incremental BBOTAs, commit [1] changed to verify only the touched
blocks to reduce the update time. This CL fixes the bug when there's no
changed block between the two builds.

[1]: commit d522bdc9ed

Bug: 27813356
Bug: 28195498
Change-Id: Ia752d3cf034c544517458ed15df509d4596e21fa
2016-04-14 16:12:06 -07:00
David Zeuthen 39b6a8db6a Merge "Add support for Brillo partitioning." am: 2528968
am: 93a3423

* commit '93a34234c6a032251163992728def631c14a6e90':
  Add support for Brillo partitioning.

Change-Id: I349463c75e8ddb312cf83bad845864e530c50405
2016-04-14 16:20:15 +00:00
David Zeuthen 2528968871 Merge "Add support for Brillo partitioning." 2016-04-14 16:04:30 +00:00
Tao Bao 24105eaab8 Merge "releasetools: Only verify the blocks to be touched." into nyc-dev
am: 21528c5

* commit '21528c5e053e28cd52d603eded53ffaf36d22637':
  releasetools: Only verify the blocks to be touched.

Change-Id: I053c7da789c44916456109c5153f6628fe38c849
2016-04-14 00:02:41 +00:00
Tao Bao d4caaae160 releasetools: Only verify the blocks to be touched.
For incremental BBOTAs, we used to verify the integrity of all the
blocks in the source partition. In order to reduce the time cost under
recovery, this CL changes to only verify the blocks that will be touched
in the given OTA package (BBOTA >= 3 only). This is a trade-off between
performance and reliability.

Bug: 27813356
Change-Id: I3975ae6f461f0f7e58d24f1df7df46a449d2988b
(cherry picked from commit d522bdc9ed)
2016-04-13 17:00:34 -07:00
Tao Bao 21528c5e05 Merge "releasetools: Only verify the blocks to be touched." into nyc-dev 2016-04-13 23:59:36 +00:00
Tianjie Xu c6e9dc5343 Merge "Monotonic flag sets incorrectly in rangelib" am: 323e3d4
am: afc92d1

* commit 'afc92d1d45a8ee4de14a059fa4039b5a6dbe072a':
  Monotonic flag sets incorrectly in rangelib

Change-Id: I9b8eeb6e357aee66720c1776a383533016aa1269
2016-04-13 22:06:55 +00:00
Tianjie Xu 8e1fb06f38 Monotonic flag sets incorrectly in rangelib
After applying update_target_files_incr_ext4.sh, some files may end up
occupying unsorted block fragments. In one example, an apk file has the
block range [258768-259211,196604]. The monotonic flag in rangelib sets
incorrectly for this example and leads to a bad input file for imgdiff.
After fixing the flag, bsdiff is called instead of imgdiff and the
incremental OTA package generates successfully.

Bug:28053885
(cherry picked from commit cd1e16a761)

Change-Id: If286eb382e59b3084a8313ae853b807e4648e5a2
2016-04-13 15:02:20 -07:00
Tianjie Xu 323e3d4c18 Merge "Monotonic flag sets incorrectly in rangelib" 2016-04-13 21:48:53 +00:00
Tianjie Xu cd1e16a761 Monotonic flag sets incorrectly in rangelib
After applying update_target_files_incr_ext4.sh, some files may end up
occupying unsorted block fragments. In one example, an apk file has the
block range [258768-259211,196604]. The monotonic flag in rangelib sets
incorrectly for this example and leads to a bad input file for imgdiff.
After fixing the flag, bsdiff is called instead of imgdiff and the
incremental OTA package generates successfully.

Bug:28053885
Change-Id: Ib841bf449ff6a29314fc4a1b8fba941a6dc532ac
2016-04-13 12:36:14 -07:00
Tianjie Xu dea8b94f98 Merge "Remove post-install verification" 2016-04-13 19:19:03 +00:00
David Zeuthen 25328627ba Add support for Brillo partitioning.
To generate partition tables in the Android build system, simply add
the path to a .bpt file to the BOARD_BPT_INPUT_FILES variable.

 BOARD_BPT_INPUT_FILES += "hardware/bsp/vendor/soc/board/board-specific.bpt"

The variable BOARD_BPT_DISK_SIZE can be used to specify or override
the disk size, for example:

 BOARD_BPT_DISK_SIZE := "10 GiB"

Additional arguments to 'bpttool make_table' can be specified in the
variable BOARD_BPT_MAKE_TABLE_ARGS.

If BOARD_BPT_INPUT_FILES is set, the build system generates two files

 partition-table.img
 partition-table.bpt

in ${ANDROID_PRODUCT_OUT} using 'bpttool make_table'. The former is
the binary partition tables generated using bptool's --output_gpt
option and the latter is a JSON file generated using the --output_json
option. These files will also be put in the IMAGES/ directory of
target-files.zip when running 'm dist'.

BUG=27831397
TEST=Manually tested.

Change-Id: Iedd15354afb2dd483dcb9bc001360b2a37fd6dc0
2016-04-13 12:45:20 -04:00
Tao Bao d522bdc9ed releasetools: Only verify the blocks to be touched.
For incremental BBOTAs, we used to verify the integrity of all the
blocks in the source partition. In order to reduce the time cost under
recovery, this CL changes to only verify the blocks that will be touched
in the given OTA package (BBOTA >= 3 only). This is a trade-off between
performance and reliability.

Bug: 27813356
Change-Id: I3975ae6f461f0f7e58d24f1df7df46a449d2988b
2016-04-12 16:41:01 -07:00
Tianjie Xu bf7981c24f Merge "Remove post-install verification" into nyc-dev
am: 3ebddd4

* commit '3ebddd40e0b3c0848bb066e1e39c406c7a852100':
  Remove post-install verification

Change-Id: I9622385ef80c32a2a98dbac492fcc45f48f1918d
2016-04-12 22:49:49 +00:00
Tianjie Xu 618a81e818 Remove post-install verification
post-install verification calls range_sha1() and checks if the given
partition has expected contents. It takes roughly 20 seconds on
angler with 2.8G system image. Remove it to speed up OTA update. Also
abort the update if block_image_update() fails, as we were relying on
post-install verification to capture block_image_update() failures.

cherry-picked from commit b2deb22033
Bug: 27729678
Change-Id: I8123cd8929295ec26df247acf6bb51df813771d9
2016-04-12 15:41:14 -07:00
Tianjie Xu 3ebddd40e0 Merge "Remove post-install verification" into nyc-dev 2016-04-12 22:38:24 +00:00
Tianjie Xu b2deb22033 Remove post-install verification
post-install verification calls range_sha1() and checks if the given
partition has expected contents. It takes roughly 20 seconds on
angler with 2.8G system image. Remove it to speed up OTA update. Also
abort the update if block_image_update() fails, as we were relying on
post-install verification to capture block_image_update() failures.

Bug: 27729678
Change-Id: I8123cd8929295ec26df247acf6bb51df813771d9
2016-04-12 11:40:03 -07:00
Tao Bao 41e5c4e065 releasetools: Use fixed timestamp in otacerts.zip.
am: 7ee3a96

* commit '7ee3a9678e7191c48f0ba4e04792fe97925c1aa1':
  releasetools: Use fixed timestamp in otacerts.zip.

Change-Id: I9e8260491819e00eea6f4eb55b1722ae1670ae85
2016-04-12 15:44:31 +00:00
Tao Bao 83cd79d340 releasetools: Use fixed timestamp in otacerts.zip.
We were using zipfile.write() to write system/etc/security/otacerts.zip
when signing for release. It led to unexpected timestamp change in the
generated otacerts.zip and non-idempotent signed images when signing the
same target_files.zip.

Replace with common.ZipWrite() to always use a fixed timestamp.

Bug: 28122968
Change-Id: Ia6cf4b7d380cbf72ed7050ebb60c932dc8826d87
(cherry picked from commit 7ee3a9678e)
2016-04-12 08:34:43 -07:00
Tao Bao 7ee3a9678e releasetools: Use fixed timestamp in otacerts.zip.
We were using zipfile.write() to write system/etc/security/otacerts.zip
when signing for release. It led to unexpected timestamp change in the
generated otacerts.zip and non-idempotent signed images when signing the
same target_files.zip.

Replace with common.ZipWrite() to always use a fixed timestamp.

Bug: 28122968
Change-Id: Ia6cf4b7d380cbf72ed7050ebb60c932dc8826d87
2016-04-11 23:10:00 -07:00
Mohamad Ayyash 230ef583b0 Merge "Use fs_config files for mksquashfs" into nyc-dev
am: b354a61

* commit 'b354a61f3ec3b4c6463aac2a80f23e5772b6b164':
  Use fs_config files for mksquashfs

Change-Id: I422bd6f5b8e7e587bec3caef1525497904268a96
2016-04-08 17:52:24 +00:00
Mohamad Ayyash 8837882fb9 Use fs_config files for mksquashfs
BUG: 27467028
Change-Id: I7648030ad4b31d70a5d439e9552fd2cbfe288b74
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-04-07 22:10:51 -07:00
Ying Wang be667a1128 Merge "Correct usage message for build_image.py" am: d63ec28
am: 334a418

* commit '334a4185a5ca29086963a8d450fb7a9e972cbd77':
  Correct usage message for build_image.py

Change-Id: Iee000ee9974b4cb7329fab87dc81fdba2affe93d
2016-04-07 22:24:15 +00:00
Ying Wang d63ec28bcf Merge "Correct usage message for build_image.py" 2016-04-07 21:51:21 +00:00
Maria Bornski 885dbb5111 Correct usage message for build_image.py
target_out_dir is now a required argument. Include this in the usage message.

Change-Id: If77d94ec5350b2c737d1dd1df28a51167b173058
2016-04-06 17:26:31 -07:00
Tao Bao 40361b2787 Merge "rangelib.py: Add parse_raw() method."
am: 973ce2f

* commit '973ce2f018a30b9bf1c282b48990e271b11dcb6a':
  rangelib.py: Add parse_raw() method.
2016-03-25 20:06:51 +00:00
Tao Bao 8179d68458 rangelib.py: Add parse_raw() method.
parse_raw() parses a string generated by RangeSet.to_string_raw().

>>> RangeSet.parse_raw(RangeSet("0-9").to_string_raw())
<RangeSet("0-9")>

Change-Id: Ia74daa30476d5e9ad73c368f4ecc64c755b734a5
2016-03-24 11:08:51 -07:00
David Zeuthen 1b61e038e6 Merge "Add support for Brillo Verified Boot."
am: 003bec4

* commit '003bec431cc133134bbb29040f6c01d3f608e6ee':
  Add support for Brillo Verified Boot.
2016-03-21 15:55:23 +00:00
David Zeuthen d995f4b04d Add support for Brillo Verified Boot.
The following variables are introduced

 BOARD_BVB_ENABLE: can be set to true to build boot.img and system.img
 files compatible with Brillo Verfied Boot.

 BOARD_BVB_ROLLBACK_INDEX: can be set to an integer to use for the
 rollback index.

 BOARD_BVB_KEY_PATH, BOARD_BVB_ALGORITHM: If set, the former must be a
 path to the private key used to sign the boot image and the latter must
 be the algorithm to use. If unset, a test-key stored in the tree will
 be used.

 BOARD_BVB_MAKE_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 make_boot_image'.

 BOARD_BVB_SIGN_BOOT_IMAGE_ARGS: Extra options to pass to 'bvbtool
 sign_boot_image'.

 BOARD_BVB_ADD_IMAGE_HASHES_ARGS: Extra options to pass to 'bvbtool
 add_image_hashes'.

 BOARD_CUSTOM_BVBTOOL: Can be set to specify what bvbtool program to
 use.

The existing BOARD_KERNEL_CMDLINE variable is also used, as are existing
kernel and initrd-related variables. Therefore, simply adding

 BOARD_BVB_ENABLE := true

to an existing Makefile should do the trick.

Bug: 26185038
TEST=Added 'BOARD_BVB_ENABLE := true' to hardware/bsp/intel/soc/edison/soc.mk
  and built an image and then ran bvbtool's info_boot_image and
  info_image_hashes commands on the resulting boot.img and system.img
  files and verified that the information was correct. Also ran 'm dist'
  and verified that the boot.img and system.img files in the resulting
  target_files.zip file had similar information.

Change-Id: I08045ed8b0cbddc7c3acdd3a6f2c4bb75cb44bbc
2016-03-18 15:25:43 -04:00
Tao Bao 384dbd939c Merge "Revert "Revert "releasetools: Support OTAs that have OEM properties changes."""
am: fd52990

* commit 'fd529902f8731b028fac38b0c31a2c6d170c2726':
  Revert "Revert "releasetools: Support OTAs that have OEM properties changes.""
2016-03-16 19:21:49 +00:00
Tao Bao 3e30d97dde Revert "Revert "releasetools: Support OTAs that have OEM properties changes.""
This CL fixes the bug in [1] (copy-paste error) and reenables it.

We need to handle a special case that an OTA goes from a source build
without OEM properties to a target build with those properties (or vice
versa). Add support in OTA scripts to deal the case properly, by a)
using two oem_props variables to handle source and target builds
respectively; b) adjusting the fingerprint/thumbprint assertions to
allow a mix of both.

[1] commit c086370440

Change-Id: I98118d77d5a0ff694fa1ee33602b5ee5e048599b
2016-03-15 13:28:49 -07:00
Tao Bao a1dc633a7f Merge "Revert "releasetools: Support OTAs that have OEM properties changes.""
am: 3c37889299

* commit '3c37889299b7ab8df676fed7b8157484a7e5315a':
  Revert "releasetools: Support OTAs that have OEM properties changes."
2016-03-15 19:24:21 +00:00
Tao Bao 3c37889299 Merge "Revert "releasetools: Support OTAs that have OEM properties changes."" 2016-03-15 19:16:33 +00:00
Tao Bao 838c68fa1a Revert "releasetools: Support OTAs that have OEM properties changes."
Broke some builds.

This reverts commit c086370440.

Change-Id: If07006db412fea6c04f8698776a2ab418125a469
2016-03-15 19:16:18 +00:00
Tao Bao 122f8823be Merge "releasetools: Support OTAs that have OEM properties changes."
am: 61cebe79f4

* commit '61cebe79f4949217181431fb347b7577d74ecc75':
  releasetools: Support OTAs that have OEM properties changes.
2016-03-15 18:43:03 +00:00
Tao Bao 61cebe79f4 Merge "releasetools: Support OTAs that have OEM properties changes." 2016-03-15 18:33:20 +00:00
Sami Tolvanen a8c37be285 Revert "Revert "build: pass version and patch level to mkbootimg""
This reverts commit 494a9090f9.

Bug: 27498078
Bug: 22914603
Change-Id: Iee6a784271ec32c6bfcc0a6ad3f0395d82016df3
(cherry picked from commit 3303d909a1)
2016-03-15 11:23:56 -07:00
Sami Tolvanen 4abe19c584 Merge "Revert "Revert "build: pass version and patch level to mkbootimg"""
am: b1e99acb00

* commit 'b1e99acb00818c0dc244a4203106177eb28ca66b':
  Revert "Revert "build: pass version and patch level to mkbootimg""
2016-03-15 17:47:08 +00:00
Sami Tolvanen b1e99acb00 Merge "Revert "Revert "build: pass version and patch level to mkbootimg""" 2016-03-15 17:37:27 +00:00
Sami Tolvanen 3303d909a1 Revert "Revert "build: pass version and patch level to mkbootimg""
This reverts commit 494a9090f9.

Bug: 27498078
Bug: 22914603
Change-Id: Iee6a784271ec32c6bfcc0a6ad3f0395d82016df3
2016-03-15 16:49:30 +00:00
Sami Tolvanen b3038bedcd Merge "Revert "build: pass version and patch level to mkbootimg"" into nyc-dev 2016-03-14 15:49:15 +00:00
Sami Tolvanen 1bca9fb6d4 Revert "build: pass version and patch level to mkbootimg"
This reverts commit e555f77962.

Bug: 27580174
Change-Id: I0fd1ddb64d2fd4f91b0ecbc1ab8953a1324a10eb
2016-03-14 15:47:11 +00:00
Sami Tolvanen 478eb605b7 Merge "Revert "build: pass version and patch level to mkbootimg""
am: 926096eff6

* commit '926096eff685265912f3050bb43715cfa36df0aa':
  Revert "build: pass version and patch level to mkbootimg"
2016-03-11 00:24:23 +00:00
Sami Tolvanen 926096eff6 Merge "Revert "build: pass version and patch level to mkbootimg"" 2016-03-11 00:11:25 +00:00
Sami Tolvanen 494a9090f9 Revert "build: pass version and patch level to mkbootimg"
This reverts commit 8fb47f191f.

Bug: 27580174
Change-Id: Id87fd1e8da217438757d5a0fa4bbef7aea6770fc
2016-03-11 00:08:57 +00:00
Mohamad Ayyash 2b4ddff0eb Merge "Hook incremental ext4 image generation into build" into nyc-dev
am: 6a3185f23d

* commit '6a3185f23d820f31cc928d5467eda94f3a93e31c':
  Hook incremental ext4 image generation into build
2016-03-09 21:07:30 +00:00
Mohamad Ayyash 6a3185f23d Merge "Hook incremental ext4 image generation into build" into nyc-dev 2016-03-09 20:56:19 +00:00
Tao Bao 00ed831a11 resolve merge conflicts of 2ad8b97577 to nyc-dev
Change-Id: Ifa7501e58dd25e73ed760b1383a1873e4d449885
2016-03-08 21:39:13 -08:00
Tao Bao 7302eb7dd6 Use the update-binary in the source build for downgrade OTAs.
am: fa41fb2705

* commit 'fa41fb27054185b3fba0519d01dabd21444fe772':
  Use the update-binary in the source build for downgrade OTAs.
2016-03-09 05:27:36 +00:00
Tao Bao e6caa33438 Merge "Use the update-binary in the source build for downgrade OTAs."
am: 6be54d774b

* commit '6be54d774ba13c79e96b12b797e95bd5bdba0344':
  Use the update-binary in the source build for downgrade OTAs.
2016-03-09 03:32:44 +00:00
Tao Bao ff75c23086 releasetools: Fix the bug in AssertSequenceGood.
We use a bitset for blocks in the target image to assert a block hasn't
been touched before reading. Skip checking the blocks that are in the
source image only.

Bug: 27556903
Change-Id: I3a77292da673c813bd20d8dc177ff36419d8ecae
(cherry picked from commit dca2200c8a)
2016-03-08 19:01:26 -08:00
Tao Bao fa41fb2705 Use the update-binary in the source build for downgrade OTAs.
We used to use the update-binary from the target build when creating
incremental OTAs. But for downgrade OTAs, we should use the one in the
source build instead, which is actually newer.

Bug: 27556903
Change-Id: Ib6415729b979dbffdebdda24902f7f560942801a
(cherry picked from commit 4996cf03d2)
2016-03-08 18:48:40 -08:00
Tao Bao 4996cf03d2 Use the update-binary in the source build for downgrade OTAs.
We used to use the update-binary from the target build when creating
incremental OTAs. But for downgrade OTAs, we should use the one in the
source build instead, which is actually newer.

Bug: 27556903
Change-Id: Ib6415729b979dbffdebdda24902f7f560942801a
2016-03-08 17:57:40 -08:00
Sami Tolvanen e555f77962 build: pass version and patch level to mkbootimg
Add --os_version and --os_patch_level arguments to mkbootimg.

Needs matching changes from
  I57682611e0c27fec5ed284da7d9a788383ff98b1

Bug: 27498078
Bug: 22914603
Change-Id: I04e20b0de40d864aac92ac7bcf466a6cbde3d0e4
(cherry pick from commit 8fb47f191f)
2016-03-08 08:21:52 -08:00
Sami Tolvanen 01347fce66 Merge "build: pass version and patch level to mkbootimg" am: b32d845090
am: 450f15111c

* commit '450f15111ccd9fa54382e159a145954273f45b15':
  build: pass version and patch level to mkbootimg
2016-03-08 16:10:23 +00:00
Sami Tolvanen b32d845090 Merge "build: pass version and patch level to mkbootimg" 2016-03-08 16:02:24 +00:00
Tao Bao ae6864933d Merge "releasetools: Fix the bug in AssertSequenceGood." am: 236e664efa
am: cc9c8ce966

* commit 'cc9c8ce96639e0e7c100744703733ff3bb5c75ce':
  releasetools: Fix the bug in AssertSequenceGood.
2016-03-08 07:45:37 +00:00
Tao Bao 84bc4b78cc resolve merge conflicts of 08a3a32fa9 to nyc-dev
Change-Id: I6fd55b3d2bd0c396018163dd4f54970cb55432cd
2016-03-07 21:49:33 -08:00
Tao Bao bd25fcdc02 resolve merge conflicts of 177c610e7f to cw-e-dev
Change-Id: Iba7820247d0b53d7f9553290eb0db3547f31beda
2016-03-07 21:24:40 -08:00
Tao Bao 177c610e7f DO NOT MERGE releasetools: Support generating downgrade incremental OTAs.
Add --downgrade flag to ota_from_target_files.py script. It allows
generating an incremental OTA that updates from a newer build to an
older one (based on timestamp comparison). "post-timestamp" line in the
metadata file will be replaced by "ota-downgrade=yes". A data wipe will
always be enforced, so "ota-wipe=yes" will also be included in the
metadata file.

Bug: 26883782
Change-Id: Iaa05f662d948b7ab632a9fbb7051cc3f8bf68c21
(cherry picked from commit 5d1825664a)
2016-03-07 21:02:36 -08:00
Tao Bao c086370440 releasetools: Support OTAs that have OEM properties changes.
We need to handle a special case that an OTA goes from a source build
without OEM properties to a target build with those properties (or vice
versa). Add support in OTA scripts to deal the case properly, by a)
using two oem_props variables to handle source and target builds
respectively; b) adjusting the fingerprint/thumbprint assertions to
allow a mix of both.

Change-Id: Ib517c366730b967a974c89528df9d42887c92ec2
2016-03-07 13:14:49 -08:00
Sami Tolvanen 8fb47f191f build: pass version and patch level to mkbootimg
Add --os_version and --os_patch_level arguments to mkbootimg.

Needs matching changes from
  I57682611e0c27fec5ed284da7d9a788383ff98b1

Bug: 27498078
Bug: 22914603
Change-Id: I04e20b0de40d864aac92ac7bcf466a6cbde3d0e4
2016-03-07 11:55:22 -08:00
Tao Bao dca2200c8a releasetools: Fix the bug in AssertSequenceGood.
We use a bitset for blocks in the target image to assert a block hasn't
been touched before reading. Skip checking the blocks that are in the
source image only.

Change-Id: I3a77292da673c813bd20d8dc177ff36419d8ecae
2016-03-04 15:26:26 -08:00
Tao Bao a1d5fd2384 Merge "releasetools: Fix one missing case for --oem_no_mount." am: 4e677900f7
am: aa82bd62cb

* commit 'aa82bd62cb65ae91eadd53f2d37ac5b57c1fc584':
  releasetools: Fix one missing case for --oem_no_mount.
2016-03-04 19:32:02 +00:00
Tao Bao 1bb5a18918 releasetools: Fix one missing case for --oem_no_mount.
The CL in [1] added support for --oem_no_mount. It missed one place that
guards the OEM mounting.

[1] commit 8608cde944

Change-Id: I6ecaa94cd0866e0fd4fc88cb0aa3ebf55cde2968
2016-03-04 09:45:39 -08:00
Mohamad Ayyash f876555893 Hook incremental ext4 image generation into build
Allows passing the *.base_fs or *.map files for system and vendor in
INTERNAL_SYSTEM_BASE_FS_PATH and INTERNAL_VENDOR_BASE_FS_PATH variables
respectively.

Internal Design Doc: go/incremental-ext4
BUG: 26839493
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>

Change-Id: Ie57ef6dbfa6084268b6535fe0a673a3b4aaa6e2f
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2016-03-03 12:07:21 -08:00
Tao Bao 8cad831b39 resolve merge conflicts of 9baa993c07 to nyc-dev
Change-Id: Ifcfb2da03662ef1b6677c0974605189e2a8e3d20
2016-03-01 15:08:51 -08:00
Tao Bao 25e45b6d63 Merge "releasetools: Add --oem_no_mount option." am: 1e0367410d
am: f457860e46

* commit 'f457860e468dfa25b51980aa2aa37aeb77e9134a':
  releasetools: Add --oem_no_mount option.
2016-02-27 00:15:30 +00:00
Tao Bao df4cb0b2c1 releasetools: Add --oem_no_mount option.
We may have devices with OEM-specific properties but without an OEM
partition (e.g. the properties might be set by init based on hardware
SKUs). For such devices, we supply --oem_no_mount to skip mounting the
OEM partition in the updater-script. The option is only meaningful when
-o (--oem_settings) is specified.

Bug: 27359929
Change-Id: Ic08396e478a82be4188e980e704b33b4f704a8d7
(cherry picked from commit 8608cde944)
2016-02-26 16:10:34 -08:00
Tao Bao 8608cde944 releasetools: Add --oem_no_mount option.
We may have devices with OEM-specific properties but without an OEM
partition (e.g. the properties might be set by init based on hardware
SKUs). For such devices, we supply --oem_no_mount to skip mounting the
OEM partition in the updater-script. The option is only meaningful when
-o (--oem_settings) is specified.

Bug: 27359929
Change-Id: Ic08396e478a82be4188e980e704b33b4f704a8d7
2016-02-26 16:07:16 -08:00
Tao Bao 313f63c99e Merge "releasetools: Support generating downgrade incremental OTAs." am: 1284954db0
am: 5a697261fd

* commit '5a697261fd97c05ca8cc29c5696b29819fc6aad9':
  releasetools: Support generating downgrade incremental OTAs.
2016-02-26 00:43:39 +00:00
Tao Bao 4da324e1a4 releasetools: Support generating downgrade incremental OTAs.
Add --downgrade flag to ota_from_target_files.py script. It allows
generating an incremental OTA that updates from a newer build to an
older one (based on timestamp comparison). "post-timestamp" line in the
metadata file will be replaced by "ota-downgrade=yes". A data wipe will
always be enforced, so "ota-wipe=yes" will also be included in the
metadata file.

Bug: 26883782
Change-Id: Iaa05f662d948b7ab632a9fbb7051cc3f8bf68c21
(cherry picked from commit 5d1825664a)
2016-02-25 16:39:42 -08:00
Tao Bao 5d1825664a releasetools: Support generating downgrade incremental OTAs.
Add --downgrade flag to ota_from_target_files.py script. It allows
generating an incremental OTA that updates from a newer build to an
older one (based on timestamp comparison). "post-timestamp" line in the
metadata file will be replaced by "ota-downgrade=yes". A data wipe will
always be enforced, so "ota-wipe=yes" will also be included in the
metadata file.

Bug: 26883782
Change-Id: Iaa05f662d948b7ab632a9fbb7051cc3f8bf68c21
2016-02-24 11:31:17 -08:00
Alex Klyubin b05b62df2e Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

(cherry picked from commit 2cfd1d108c)

Change-Id: I38450d07ddc05c705de40313f843beada8db7d98
2016-02-10 17:19:08 -08:00
Alex Klyubin fec3a14892 Merge "Sign APKs using SHA-256 instead of SHA-1 when possible."
am: 07d3dbd2ed

* commit '07d3dbd2eda1aa5b3283191e681d48b341c635bf':
  Sign APKs using SHA-256 instead of SHA-1 when possible.
2016-02-10 21:46:53 +00:00
Alex Klyubin 07d3dbd2ed Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." 2016-02-10 21:35:06 +00:00
Sami Tolvanen 0975d70e33 Fix metadata location when file system doesn\'t span the partition
am: 405e71dcd3

* commit '405e71dcd3e96457766c3ac3f2aa3d4bd9f95e32':
  Fix metadata location when file system doesn't span the partition
2016-02-10 19:33:05 +00:00
Sami Tolvanen 405e71dcd3 Fix metadata location when file system doesn't span the partition
Pad the sparse image with a zero fill chunk to correctly position
verity and FEC metadata at the end of the partition.

Bug: 27073791
Change-Id: I9f70d579a42e5007d50e9c02a98a608d2815f0ed
(cherry picked from commit 6a8781a251)
2016-02-10 10:53:47 -08:00
Sami Tolvanen 7855c9aadf Merge "Fix metadata location when file system doesn't span the partition" 2016-02-10 18:50:17 +00:00
Alex Klyubin 2cfd1d108c Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

Change-Id: I3f2faaf49c6fa392ffbf1ee9f30de476f9f73231
2016-02-10 09:40:31 -08:00
Sami Tolvanen 6a8781a251 Fix metadata location when file system doesn't span the partition
Pad the sparse image with a zero fill chunk to correctly position
verity and FEC metadata at the end of the partition.

Bug: 27073791
Change-Id: I9f70d579a42e5007d50e9c02a98a608d2815f0ed
2016-02-10 09:37:59 -08:00
Tao Bao b4cfca530c releasetools: Add two new entries to metadata.
Add "ota-required-cache" into the metadata file in an OTA package,
which shows the minimum free space on /cache to apply the update.

Add "ota-type" into the metadata file, which shows the OTA type for
this package (i.e. one of FILE, BLOCK and AB).

Also add the cache free space check into updater-script when generating
block-based incremental OTAs (we only had such lines for file-based
incrementals before).

Bug: 26731903
Change-Id: Id6ff0fc4cdfb1443636b0b3800b0f8bddb5bb1d0
(cherry picked from commit d8d14bec0d)
2016-02-10 09:37:40 -08:00
Tao Bao ebadc3bd8e Merge "improve performance of blockimgdiff" into nyc-dev 2016-02-10 17:36:59 +00:00
Doug Zongker 6ab2a5017e improve performance of blockimgdiff
Substantially improves the performance of some BlockImageDiff steps on
large images.  GenerateDigraph and AssertSequenceGood are now linear in
the number of blocks in the target image rather than quadratic in the
size of the partition.  FindVertexSequence tracks the score of each
vertex, the set of sources and sinks, and maintains a heap for finding
the best vertex to use for the greedy step, instead of repeatedly
re-scanning the set of remaining vertexes.

Change-Id: Ifeea5053d80ef4f06a5aa239c9a1797dd5e47841
(cherry picked from commit 2d2dd1526d)
2016-02-10 09:36:22 -08:00
Tao Bao 214773499c Merge "releasetools: Add two new entries to metadata."
am: 8290ba9e0d

* commit '8290ba9e0df3e6f4ef8c21e3964862f90944ead2':
  releasetools: Add two new entries to metadata.
2016-02-10 17:10:51 +00:00
Tao Bao 8290ba9e0d Merge "releasetools: Add two new entries to metadata." 2016-02-10 17:05:47 +00:00
Doug Zongker 52970f60e0 Merge "improve performance of blockimgdiff"
am: ae91d54e89

* commit 'ae91d54e899768d0a185b2fead0e42627b30376d':
  improve performance of blockimgdiff
2016-02-10 16:57:12 +00:00
Doug Zongker 2d2dd1526d improve performance of blockimgdiff
Substantially improves the performance of some BlockImageDiff steps on
large images.  GenerateDigraph and AssertSequenceGood are now linear in
the number of blocks in the target image rather than quadratic in the
size of the partition.  FindVertexSequence tracks the score of each
vertex, the set of sources and sinks, and maintains a heap for finding
the best vertex to use for the greedy step, instead of repeatedly
re-scanning the set of remaining vertexes.

Change-Id: Ifeea5053d80ef4f06a5aa239c9a1797dd5e47841
2016-02-10 07:44:21 -08:00
Patrick Tjin 2ef3ca59be Add compressor options for squashfs vendor images
am: e11aa50bb2

* commit 'e11aa50bb21e7b7afa17f19085cc20b23683cc18':
  Add compressor options for squashfs vendor images
2016-02-10 00:17:13 +00:00
Patrick Tjin e11aa50bb2 Add compressor options for squashfs vendor images
Change-Id: I4f9f5d62e24654cb37d436cb73dd5893aed30fa8
2016-02-09 15:41:07 -08:00
Dan Willemsen a465cf681b Merge "Revert "Do not diff .odex files"" 2016-02-08 22:40:33 +00:00
Dan Willemsen 86c8ebb6ef Revert "Do not diff .odex files"
The bug has been fixed, .odex files are deterministic.

This reverts commit c4438d3d29.

Bug: 26956807
Change-Id: Iaa42dfba5cf79ee64ac20cf4f1f3a4598f4275f4
2016-02-08 20:48:48 +00:00
Tao Bao d8d14bec0d releasetools: Add two new entries to metadata.
Add "ota-required-cache" into the metadata file in an OTA package,
which shows the minimum free space on /cache to apply the update.

Add "ota-type" into the metadata file, which shows the OTA type for
this package (i.e. one of FILE, BLOCK and AB).

Also add the cache free space check into updater-script when generating
block-based incremental OTAs (we only had such lines for file-based
incrementals before).

Bug: 26731903
Change-Id: Id6ff0fc4cdfb1443636b0b3800b0f8bddb5bb1d0
2016-02-08 11:00:27 -08:00
Alex Deymo db82f72752 Merge "ota_from_target_files: Include the payload properties." 2016-02-05 23:11:18 +00:00
Alex Deymo 19241c11bd ota_from_target_files: Include the payload properties.
When building an A/B OTA package, include the payload.bin properties as
a key-value pairs text file, so it can easily be passed to
update_engine during payload application.

Bug: 26991255
TEST=`ota_from_target_files out/dist/${BOARD}-target_files.zip full-ota.zip` includes the properties.

Change-Id: I445c8a8e412a8e16b48b6ee626db8e27d48a38a9
2016-02-04 23:29:50 -08:00
Dan Willemsen c4438d3d29 Do not diff .odex files
They still are not deterministic -- only the boot images were made
deterministic (.oat/.art).

Bug: 26956807
Change-Id: I2e00bb6662b4c8d184c48ef9aa34b39142c94893
2016-02-03 10:46:39 -08:00
Dan Willemsen 8c915ee2ef Diff libpac.so now that it is deterministic
Bug: 25348136
Change-Id: I008902299281b5ddd55a9b8c405d53eea2d56c8b
2016-02-03 10:45:25 -08:00
Dan Willemsen 734d78cdf6 Diff .art/.oat/.odex files now that they are deterministic
This also whitelists the ro.build.user property, which may change based
on host username.

Bug: 26687569
Change-Id: I8f3244c2325dd80a7961c474655f0c50670d1b46
2016-02-01 13:41:30 -08:00
Alex Klyubin 061289c432 Revert "Sign APKs using SHA-256 instead of SHA-1 when possible." This is breaking CTS.
This reverts commit c2a36afd67.

Change-Id: I4389bf99aeb213198c1c501ba9462bd4a4540d0a
2016-01-29 23:56:44 +00:00
Alex Klyubin c2a36afd67 Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280

(cherry picked from commit de5bc04717)

Change-Id: I4b100750e47788ab6ed897a0a5abfd33542e8676
2016-01-29 10:17:02 -08:00
Alex Klyubin a80a8085e0 Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
This reverts commit 74df828cb5. This commit is breaking a build, again...

Change-Id: I2df561d68302ba4c83e90a64a7bf203645033a3b
2016-01-27 17:45:42 +00:00
Alex Klyubin 74df828cb5 Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280
Change-Id: I058393e0971d0d6559dbd69ea902754c6c7cab14
(cherry picked from commit de5bc04717)
2016-01-26 18:41:57 +00:00
Alex Klyubin 7382bdf8c1 Merge "Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."" 2016-01-25 17:19:02 +00:00
Alex Klyubin 1429d5e14c Revert "Sign APKs using SHA-256 instead of SHA-1 when possible."
This reverts commit de5bc04717 because it's breaking some builds. Turns out some APKs have multiple sdkVersion attributes returned by aapt.

Change-Id: I013d6ef5eac473dd3900e0b9edf4c32cdc838bab
2016-01-25 17:17:09 +00:00
Alex Klyubin b763b29267 Merge "Sign APKs using SHA-256 instead of SHA-1 when possible." 2016-01-25 16:42:27 +00:00
Alex Klyubin de5bc04717 Sign APKs using SHA-256 instead of SHA-1 when possible.
This changes the build system to provide the signapk tool with the
minSdkVersion of the APK being signed. signapk in turn will then use
SHA-256 instead of SHA-1 if minSdkVersion is 18 (JB MR2) or higher
(see c2c49ed0c1).

To avoid increasing incremental OTA update package sizes for already
released platforms, release build scripts disable the above logic when
signing target files ZIPs for pre-N platforms.

Bug: 25643280
Change-Id: I048393e0971d0d6559dbd69ea902754c6c7cab14
2016-01-21 10:25:12 -08:00
Tao Bao c098e9efd9 Generate OTA packages for A/B update.
It calls brillo_update_payload to generate the payload for A/B update.
And packages the payload according to Android OTA package format.

Note that it only supports generating full/incremental OTAs with this
CL. Signing for release may not work properly at the moment.

Bug: 25715402
Change-Id: I4ac8505bacad28a572a9320dc8b52dd0f1ce47f5
2016-01-19 15:46:34 -08:00
Tianjie Xu ebe39a096a Fix print error of numbers of blocks
The total number of blocks to pack as new data was printed incorrectly.
Fix printing.

Change-Id: I6a6bb8dd6682d9c57943ceb1a728995f9529e2fd
2016-01-14 19:13:21 -08:00
Tianjie Xu 9b2fe7e0b8 Merge "Adjust the size limit for splitting large files" 2016-01-14 19:17:00 +00:00
Tianjie Xu bb86e1d9c2 Adjust the size limit for splitting large files
Modify the number of max blocks per transfer to reduce splitting of
large files during patch generation. This will reduce the size of
final incremental OTA updater package. In specific, the size limit
for each file to transfer is set to 1/8 cachesize instead of a fix
number.

Bug: 26472126

Change-Id: Iffb135e378c4c7a91640f2fc4c40e9e93d1fe4bb
2016-01-13 18:21:26 -08:00
Tianjie Xu 0b109751b8 Merge "Check block0 for remounting partition R/W" 2016-01-08 00:49:49 +00:00
Daniel Rosenberg 40ef35b9e9 Allow building recovery as boot.
With BOARD_USES_RECOVERY_AS_BOOT = true, we skip building the
non-ramdisk boot.img but building the recovery image as boot.img. It
contains recovery's ramdisk (e.g. with /sbin/recovery). It depends on
the bootloader parameter (skip_initramfs) to determine the actual mode
to boot into.

Change-Id: Id6e2d0a2b94383944ca8f35bba688c6401745622
(cherry picked from commit d80bef2b9e)
2015-12-21 11:17:08 -08:00
Tianjie Xu fc3422ad36 Check block0 for remounting partition R/W
Add a function check_first_block to read block0 and output a message
on screen if the device has been remounted. The function is called
for version >= 4 only; it executes after a failing block verification
and before recovery attempts.

Bug: 21124327
Change-Id: I49dc0b861c702698896a2495ca094215705d4650
(cherry picked from commit 9dac797013)
2015-12-18 11:05:34 -08:00
Sami Tolvanen 4a0600406e build_image: don't call append2simg for FEC
append2simg can be slow, so generate error correction data before verity
data is appended, and append all metadata to the image at the same time.

Needs matching changes from
  I09349368925e5e2f2a7961a712a1e933eb0b9ec8

Bug: 26251929
Change-Id: Iea8cee0aee353b4d029d9581e8fbd68ec7b7dd4b
2015-12-18 15:50:25 +00:00
Sami Tolvanen ff914f5dd0 build_image: remove an unnecessary call to append2simg
append2simg on a large image is fairly slow, so append verity metadata to
the hash tree to avoid two calls.

Bug: 26251929
Change-Id: I5ec84dcd6e8500e990af13b1f9cef5e809b41605
2015-12-18 13:28:25 +00:00
Todd Poynor b2a555e6fc Make squashfs sparse image generation optional
Allow non-sparse squashfs image generation, a la ext filesystems.

Bug: 26218766
Change-Id: Ifd596af16411e0cf69a2e7e05d725fd9442dc79c
2015-12-15 20:11:12 -08:00
Alex Klyubin 9667b18f23 Make signapk use Conscrypt.
This makes the signapk tool use Conscrypt (where possible) instead of
the platform-default JCA providers and the Bouncy Castle JCA provider.
This speeds up (by 10-30%) APK and OTA update signing because
Conscrypt's crypto primitives are backed by BoringSSL.

Previously, the signapk tool consisted only of the signapk.jar.
Because Conscrypt is backed by native code, signapk now consists of
signapk.jar and crypto_openjdk_jni shared library. This requires that
users of the tool be updated to provide a suitable -Djava.library.path
argument to the Java runtime. This change updates all known users of
the tool inside the Android source tree to do so.

Bug: 26097626
Change-Id: I8411b37d7f771ed99269751a3007dff103083552
2015-12-11 08:36:42 -08:00
Alex Klyubin eb756d7b7b Do not run zipalign when re-signing APKs.
Running zipalign is no longer needed because signapk takes care of
alignment.

Bug: 25794543
Change-Id: I1080240a67ea6f1b41585fff83d18d57fdcf44e2
2015-12-08 11:05:13 -08:00
Tao Bao 269d785ce0 releasetools: Always use recovery mount options.
Change-Id: I6e96c417ffb5ad36405f4a6f5342f80f358f375f
2015-12-02 15:51:47 -08:00
Tao Bao c386890d0e releasetools: Abort the update on apply_patch failures.
We used to silently ignore the return value from apply_patch() even if
it had failed. It gives us more trouble to investigate the failure when
the affected file/partition gets touched in subsequent OTAs. This CL
adds the checking of the return value and aborts the update accordingly.

Bug: 25893277
Change-Id: Ie5e1c563576e503343e6a5b28ed4d7039f6f919c
2015-12-02 12:26:57 -08:00
Tao Bao d62c603573 releasetools: Allow logging the diff for incrementals.
Add an option "--log_diff <filename>" to ota_from_target_files.py
script. When enabled, it logs the differences between the source
and target builds into <filename> when generating incremental OTAs.

Also move target_files_diff.py into releasetools/ so that it can be
packed into otatools.zip.

Bug: 25372309
Change-Id: Ifd4ed0f2f12ef040ee377621ec8c35a873cec34f
2015-11-30 11:26:40 -08:00
Tao Bao 48550cceb0 releasetools: Fix the bug with TARGET_NO_RECOVERY.
The packaging script is broken when we set TARGET_NO_RECOVERY and
SYSTEM_ROOT_IMAGE both. With TARGET_NO_RECOVERY set, we don't have
RECOVERY/RAMDISK/etc/recovery.fstab. It thus fails the assertion in
common.LoadRecoveryFSTab() that "/" must exist in fstab when enabling
SYSTEM_ROOT_IMAGE.

Change-Id: Id509d724f18be7cf7389dd786924ead894ac0cc1
2015-11-19 17:14:21 -08:00
Tao Bao a0421cd1bd releasetools: Pack updatable images into IMAGES/ for A/B update.
Vendor-specific images (radio, bootloader and etc) used to stay in
RADIO/ in target_files zip. A/B updater expects them to be available
under IMAGES/. Make a copy for such images when calling
add_img_to_target_files.py.

We cannot move them directly from RADIO/ to IMAGES/, because we will
delete everything under IMAGES/ when signing for release.

Bug: 25674625
Change-Id: I977c879d0ff7e45c83b3f5c63844a5b135caa383
2015-11-16 16:42:43 -08:00
Tao Bao 9bc6bb23b5 releasetools: Support generating verify packages.
We can generate a special OTA package that verifies all the partitions
(boot, recovery, system, vendor and etc) on a device. It also calls
device-specific script to verify bootloader and radio images. This
ensures a flashed device contains all the desired images faithfully.

Usage:
ota_from_target_files.py --gen_verify target_files.zip output.zip

Bug: 24679956
Change-Id: Ib3091d98c4b17a6fad305b3edf16d09efbda5c38
2015-11-10 12:49:33 -08:00
Tao Bao 767e3ac246 releasetools: Refactor ota_from_target_files.py.
Factor out some common lines between generating incremental and full
OTAs. Remove the outer while loop for cleaner logic.

Change-Id: I0a4d44a4a59b488748222c2031bd63f67d45e0b5
2015-11-10 12:23:10 -08:00
Tao Bao e5eb4567d4 Merge "Honor TARGET_NO_RECOVERY flag."
am: c448e91c3d

* commit 'c448e91c3d3d095f8f200c9925f7db2ad525132f':
  Honor TARGET_NO_RECOVERY flag.
2015-10-29 16:45:31 +00:00
Sami Tolvanen a25cced65f Merge "Error correction: Use block_image_recover in block OTAs"
am: fe4e86c7fd

* commit 'fe4e86c7fd1b9c8903fda194b8515451c477ced9':
  Error correction: Use block_image_recover in block OTAs
2015-10-29 16:45:14 +00:00
Tao Bao c448e91c3d Merge "Honor TARGET_NO_RECOVERY flag." 2015-10-29 16:13:52 +00:00
Sami Tolvanen f0a7c76b45 Error correction: Use block_image_recover in block OTAs
If block_image_verify fails, attempt to recover using FEC before giving up.

Bug: 21893453
Change-Id: Ibc1fe5d28b2a8099d2b5094277b572ec08229c3a
2015-10-29 11:39:31 +00:00
Tao Bao db45efa647 Honor TARGET_NO_RECOVERY flag.
Don't generate recovery.img when calling 'make dist' if
TARGET_NO_RECOVERY is set. The build system passes the flag to the
packaging script which then generates recovery.img conditionally.

Bug: 25329471
Change-Id: Ifbc999300d5c31e897878f81e231ae7dd2aca660
2015-10-27 20:00:10 -07:00
Tao Bao ada3927e53 Merge "Bump up the BBOTA version to 4."
am: ac4ec1a4ea

* commit 'ac4ec1a4ea83a150e08ccd43f30fe34de52cdebf':
  Bump up the BBOTA version to 4.
2015-10-23 18:45:35 +00:00
Tao Bao eba409c4da Bump up the BBOTA version to 4.
To accommodate new changes (such as error correction in [1]) to BBOTA
in N release. We bump up the version to keep the OTA script backward
compatible.

Needs the matching CL in commit
1fdec8685af858c5ff4f45d2e3059186ab5ed2ab.

[1]: commit 0a7b47397db3648afe6f3aeb2abb175934c2cbca

Change-Id: Ib9158b455cd5905fe2d4742ce81feb1b7583054f
2015-10-23 10:45:36 -07:00
Tao Bao 8287572f7f Merge "Fix calculation of stashed blocks."
am: db08d835d0

* commit 'db08d835d0d071b27fc6fcf14e0cf261a5f18f68':
  Fix calculation of stashed blocks.
2015-10-22 19:11:12 +00:00
Tao Bao db08d835d0 Merge "Fix calculation of stashed blocks." 2015-10-22 18:57:42 +00:00
Tao Bao 954024649e Merge "blockimgdiff.py: Fix the script error for BBOTA v1."
am: bcb9240a2b

* commit 'bcb9240a2b168c711e4a9543e9d34f9c58a6f0c2':
  blockimgdiff.py: Fix the script error for BBOTA v1.
2015-10-22 18:12:56 +00:00
caozhiyuan 21b37d83eb Fix calculation of stashed blocks.
Change-Id: Ic3d607cb6691fc58e189a54a7244942cf3f3c387
Signed-off-by: caozhiyuan <cao.zhiyuan@zte.com.cn>
2015-10-22 09:57:10 +08:00
Tao Bao 4fcb77e4e3 blockimgdiff.py: Fix the script error for BBOTA v1.
CL in [1] added an assertion to make sure an empty RangeSet cannot call
RangeSet.to_raw_string(). However, we may unintentionally hit that when
generating BBOTA v1 script (e.g. for "new" commands that always have
empty src_ranges).

[1] commit e8f756137c

Change-Id: I1723606967f354ace9286d2b888fdbc80ba10e39
2015-10-21 17:03:18 -07:00
Sami Tolvanen 58a748d37e am 87f58261: Merge "Error correction: Append codes to verified partitions"
* commit '87f582611a5a5c23abf3237abe0e467e46111567':
  Error correction: Append codes to verified partitions
2015-10-19 02:55:51 -07:00
Sami Tolvanen 87f582611a Merge "Error correction: Append codes to verified partitions" 2015-10-19 09:49:18 +00:00
Tao Bao 5631d5c6e1 am 46ae586a: am e09359ab: DO NOT MERGE Pass source\'s info_dict to vendor\'s releasetools.py.
* commit '46ae586ab26f5bf63baaac6c68942f1bfba4addc':
  DO NOT MERGE Pass source's info_dict to vendor's releasetools.py.
2015-10-17 00:13:36 +00:00
Tao Bao 46ae586ab2 am e09359ab: DO NOT MERGE Pass source\'s info_dict to vendor\'s releasetools.py.
* commit 'e09359abc0f8c29fbb16d35ab7375d80fde6f931':
  DO NOT MERGE Pass source's info_dict to vendor's releasetools.py.
2015-10-17 00:09:35 +00:00
Tao Bao e09359abc0 DO NOT MERGE Pass source's info_dict to vendor's releasetools.py.
When building incremental packages, the info_dict from the source build
should be the one in use. We have done that for most of the partitions
(system and etc.), and should pass that to vendor's script as well.

Also includes the CL in commit aac4ad56b6
that fixes a bug in commit 6f0b219ac5.

Bug: 24898607
Change-Id: I4ea6037dad7061e1683661fc4c394fa3a7a7c5cd
(cherry picked from commit 6f0b219ac5)
2015-10-16 15:47:51 -07:00
Tao Bao 6ce8ae761b am ac39bef4: Merge "common.py: Fix the build."
* commit 'ac39bef43fb032bff75b8558f54107e733355265':
  common.py: Fix the build.
2015-10-16 15:46:31 -07:00
Tao Bao aac4ad56b6 common.py: Fix the build.
Should only use source_info_dict when creating incremental OTAs.

Change-Id: I6a4e5f8fa3613a1b36563ec915e433247965a2b8
2015-10-16 15:28:00 -07:00
Tao Bao 63e63c2a07 am 543b28d4: Merge "Pass source\'s info_dict to vendor\'s releasetools.py."
* commit '543b28d42f8fdebe011a906826251ab8df70a226':
  Pass source's info_dict to vendor's releasetools.py.
2015-10-16 14:49:40 -07:00
Sami Tolvanen f99b53143d Error correction: Append codes to verified partitions
Append error-correcting codes to verified partitions provided that
PRODUCT_SUPPORTS_VERITY_FEC is true.

This moves verity metadata to be after the hash tree, and requires
matching changes from
  Ide48f581bbba77aed6132f77b309db71630d81ed

Bug: 21893453
Change-Id: I6945cbab99e214566a1f9d3702333f2dbbc35816
2015-10-14 18:06:20 +01:00
Tao Bao 6f0b219ac5 Pass source's info_dict to vendor's releasetools.py.
When building incremental packages, the info_dict from the source build
should be the one in use. We have done that for most of the partitions
(system and etc.), and should pass that to vendor's script as well.

Bug: 24898607
Change-Id: Ie2973d41b905637862616286663baf80df83bd88
2015-10-13 16:38:36 -07:00
Tao Bao ed48af8d5b am b03d55aa: Merge "DO NOT MERGE: Only use a fixed timestamp when packaging." into mnc-dr-dev
* commit 'b03d55aaeb5962690631ed1a25d8e628667d8ad2':
  DO NOT MERGE: Only use a fixed timestamp when packaging.
2015-10-12 18:42:21 +00:00
Tao Bao 338da607e8 DO NOT MERGE: Only use a fixed timestamp when packaging.
This CL changes to use a fixed timestamp only when packaging
into the target_files zip.

Bug: 24377993
Change-Id: I01d136f4b99e1eff80c559192d93db83a3c5c0a4
(cherry picked from commit 822f5840c0)
2015-10-12 09:55:26 -07:00
Tao Bao 128f01cf58 am ce9635ec: am 2124d7e1: Merge "Only use a fixed timestamp when packaging."
* commit 'ce9635ec7ad6bcc6b9bc74136edb91847fe9e4ff':
  Only use a fixed timestamp when packaging.
2015-10-01 00:00:06 +00:00
Tao Bao ce9635ec7a am 2124d7e1: Merge "Only use a fixed timestamp when packaging."
* commit '2124d7e1e2dec91ce4ab15c6a215d61f7693a8d6':
  Only use a fixed timestamp when packaging.
2015-09-30 23:50:49 +00:00
Tao Bao 822f5840c0 Only use a fixed timestamp when packaging.
[1] changed to use a fixed timestamp for all the generated images
(either the one under $ANDROID_PRODUCT_OUT/ or the one added into the
target_files zip). It makes 'adb sync' after 'fastboot flashall' to
resync all the files. This CL changes to use a fixed timestamp only when
packaging into the target_files zip.

[1]: commit 052ae3542b

Bug: 24377993
Bug: 24536411
Change-Id: I209318966109fd4902468dfe96caf777464f9fe1
2015-09-30 16:01:14 -07:00
Tao Bao 5b8bd02ed4 am 9a5afa52: am 5e23069b: Merge "build_image.py: Use a fixed timestamp in the generated image."
* commit '9a5afa5242a4d179fc45f59944c0fba5ccaa4c15':
  build_image.py: Use a fixed timestamp in the generated image.
2015-09-28 21:24:38 +00:00
Tao Bao 9a5afa5242 am 5e23069b: Merge "build_image.py: Use a fixed timestamp in the generated image."
* commit '5e23069bceebfbf17f67c709bad495d707b194dc':
  build_image.py: Use a fixed timestamp in the generated image.
2015-09-28 21:16:34 +00:00
Tao Bao 052ae3542b build_image.py: Use a fixed timestamp in the generated image.
Bug: 24377993
Change-Id: I9b1433c8c877dc2a391615bb016b8970426e9f70
2015-09-28 13:44:13 -07:00
Tao Bao c41dc0ad1a am 251d56b8: Merge "releasetools: Update the fingerprint when signing."
* commit '251d56b851af2159df8139639b4a1a1602d60163':
  releasetools: Update the fingerprint when signing.
2015-09-25 21:14:17 +00:00
Tao Bao cb7ff77da5 releasetools: Update the fingerprint when signing.
ro.bootimage.build.fingerprint should be updated when signing.

Bug: 22720426
Bug: 24009888
Change-Id: Ib246a257581fd31f90ad6b3d21f39d1a2de24ba8
(cherry picked from commit 265d9aeb62)
2015-09-25 12:41:34 -07:00
Baligh Uddin 12ab99be09 am aa3d37a1: am 5790d54a: am 59f4ff10: Add verity_signer and verity_key flags to add_img_to_target_files.
* commit 'aa3d37a1d704ab9204de7d76dca784c9b17bd2ee':
  Add verity_signer and verity_key flags to add_img_to_target_files.
2015-09-17 05:01:26 +00:00
Baligh Uddin 5790d54ab8 am 59f4ff10: Add verity_signer and verity_key flags to add_img_to_target_files.
* commit '59f4ff109d7da6d608cb6b1248a4403b13d8b2bc':
  Add verity_signer and verity_key flags to add_img_to_target_files.
2015-09-17 04:46:21 +00:00
Baligh Uddin 59f4ff109d Add verity_signer and verity_key flags to add_img_to_target_files.
The signing process requires the boot and recovery images be signed
by CROS-Signer, which is done after a signed_target_files.zip is
available.  Once the boot/recovery images are signed, we need
to insert it back into signed_target_files.zip and regenerate the
system.map and verity tree.  The script (add_img_to_target_files) does
this operation and needs to be aware of verity specific flags.

Bug: 23831896
Change-Id: Id24e878161052c768b74da1231b97eb0574b4c8b
2015-09-16 21:20:30 -07:00
Ian Pedowitz 2029791350 resolved conflicts for f4fc29b0 to mnc-dr-dev-plus-aosp
Change-Id: Ieee6621881ace1631ae53d2a5879c271ba45382f
2015-09-15 19:18:15 -07:00
Ian Pedowitz b00f80cc65 am a0abf49d: resolved conflicts for a1fcaf86 to mnc-dr-dev
* commit 'a0abf49d2bdc42c81e5f636e54da9038de9dfc21':
  Add an option to include a full bootloader in incremental OTA.
2015-09-16 01:48:58 +00:00
Ian Pedowitz a0abf49d2b resolved conflicts for a1fcaf86 to mnc-dr-dev
Change-Id: Ie53652faa530a3c9c83f30c8f2b636d90f0f1b7a
2015-09-15 18:39:19 -07:00
leozwang a1fcaf86c4 Add an option to include a full bootloader in incremental OTA.
Bug: 23999213
Change-Id: I6c715eb01048e187622ba1e90c89a3306a294b8a
2015-09-15 08:44:12 -07:00
leozwang 5f37367d7d am 34863c69: am d0c8ef98: am 1e7f6f74: Fix build.
* commit '34863c6989c0df7ba6c31d0f70804728c4ad69af':
  Fix build.
2015-09-15 09:53:14 +00:00
leozwang d0c8ef989e am 1e7f6f74: Fix build.
* commit '1e7f6f7442ca2addc8e4447d3070c625dbba8d3f':
  Fix build.
2015-09-15 07:57:43 +00:00
leozwang 91c8c66eb0 am 17aa06f6: Fix build.
* commit '17aa06f6fe0c10cb3bb84a11dfc78a88a4155adc':
  Fix build.
2015-09-15 07:52:08 +00:00
leozwang 1e7f6f7442 Fix build.
Convert ota_from_target_files back to symbolic link.

Change-Id: I932ba8c0b15fa71a27083adc92e9f9a90dc82f8c
(cherry picked from commit 17aa06f6fe)
2015-09-15 07:50:10 +00:00
leozwang 17aa06f6fe Fix build.
Convert ota_from_target_files back to symbolic link.

Change-Id: I932ba8c0b15fa71a27083adc92e9f9a90dc82f8c
2015-09-15 00:41:53 -07:00
Leo Wang 684b234ddf am 6570b1e6: am 0cec840c: am 888b6f47: am 47f6a4e7: am 1c1a6d15: am 2c9dfb82: am 1d4ad515: Revert "Add an option to include a full bootloader in incremental OTA."
* commit '6570b1e6373e709e01fc91fd7589abeb0a4d4c01':
  Revert "Add an option to include a full bootloader in incremental OTA."
2015-09-15 05:11:26 +00:00
Leo Wang 0cec840cbc am 888b6f47: am 47f6a4e7: am 1c1a6d15: am 2c9dfb82: am 1d4ad515: Revert "Add an option to include a full bootloader in incremental OTA."
* commit '888b6f47c73c7ff0f4780e4406f18a83dbd4d8c2':
  Revert "Add an option to include a full bootloader in incremental OTA."
2015-09-15 04:58:06 +00:00
Leo Wang 888b6f47c7 am 47f6a4e7: am 1c1a6d15: am 2c9dfb82: am 1d4ad515: Revert "Add an option to include a full bootloader in incremental OTA."
* commit '47f6a4e72592bef7ed91f2541c55c151428e11ad':
  Revert "Add an option to include a full bootloader in incremental OTA."
2015-09-15 04:51:19 +00:00
Leo Wang 47f6a4e725 am 1c1a6d15: am 2c9dfb82: am 1d4ad515: Revert "Add an option to include a full bootloader in incremental OTA."
* commit '1c1a6d15b2c979f28d3cf9a13e96e16e24be16ec':
  Revert "Add an option to include a full bootloader in incremental OTA."
2015-09-15 04:43:38 +00:00
Leo Wang 1c1a6d15b2 am 2c9dfb82: am 1d4ad515: Revert "Add an option to include a full bootloader in incremental OTA."
* commit '2c9dfb8239bb4cbe1c9118ccc5bd115713f513e6':
  Revert "Add an option to include a full bootloader in incremental OTA."
2015-09-15 04:36:53 +00:00
Leo Wang 1d4ad5158b Revert "Add an option to include a full bootloader in incremental OTA."
This reverts commit 46d5efcd0d.

Change-Id: Ibd347be362db50c0cdb34bf828718872bd74ad56
2015-09-15 04:03:20 +00:00
leozwang ffa5b08178 am 89cd35ab: am fd5330c0: am 160603cf: am 5837f102: am 1753b4e9: resolved conflicts for 00fdede3 to lmp-mr1-ub-dev
* commit '89cd35ab823fc549072aed41dd44cce5886e3d06':
  Add an option to include a full bootloader in incremental OTA.
2015-09-15 02:12:35 +00:00
leozwang fd5330c057 am 160603cf: am 5837f102: am 1753b4e9: resolved conflicts for 00fdede3 to lmp-mr1-ub-dev
* commit '160603cfc20362df30886a05735054842c6f79b8':
  Add an option to include a full bootloader in incremental OTA.
2015-09-15 01:24:53 +00:00
leozwang 160603cfc2 am 5837f102: am 1753b4e9: resolved conflicts for 00fdede3 to lmp-mr1-ub-dev
* commit '5837f1025cf28935f3c6f3e0417dcfeac4d56688':
  Add an option to include a full bootloader in incremental OTA.
2015-09-15 01:17:03 +00:00
leozwang 5837f1025c am 1753b4e9: resolved conflicts for 00fdede3 to lmp-mr1-ub-dev
* commit '1753b4e9e444d9ce57f5ce481ed5e3317670ee31':
  Add an option to include a full bootloader in incremental OTA.
2015-09-15 01:07:05 +00:00
leozwang 1753b4e9e4 resolved conflicts for 00fdede3 to lmp-mr1-ub-dev
Change-Id: If4b79f7ed4d67cd8ed708a84703eac58b1e979ac
2015-09-14 16:39:23 -07:00
leozwang 46d5efcd0d Add an option to include a full bootloader in incremental OTA.
Bug: 23101469
Bug: 23999213

Change-Id: Id5ed748a5639663bb5df954f9375838fd9c295ca
2015-09-14 10:41:34 -07:00
Tao Bao 2acb582a83 am fdd713fa: am fbecca31: am e35d00d0: am 265d9aeb: releasetools: Update the fingerprint when signing.
* commit 'fdd713fa78b589eb89dc9c02d34af2148f24afe8':
  releasetools: Update the fingerprint when signing.
2015-09-12 23:21:25 +00:00
Tao Bao fbecca3143 am e35d00d0: am 265d9aeb: releasetools: Update the fingerprint when signing.
* commit 'e35d00d019aaff92b5e20b86d9c3b8222c0c946a':
  releasetools: Update the fingerprint when signing.
2015-09-12 23:07:41 +00:00
Tao Bao e35d00d019 am 265d9aeb: releasetools: Update the fingerprint when signing.
* commit '265d9aeb622c5829787b16b903f028cacaa99c18':
  releasetools: Update the fingerprint when signing.
2015-09-12 23:00:24 +00:00
Tao Bao 265d9aeb62 releasetools: Update the fingerprint when signing.
ro.bootimage.build.fingerprint should be updated when signing.

Bug: 22720426
Bug: 24009888
Change-Id: I5bd31858c6bc31edcecc6f5248f4274481506288
2015-09-11 16:47:28 -07:00
Tao Bao 8cb50e052f am e0540445: am c5fe3f11: Merge "releasetools: Fix the expected total blocks."
* commit 'e0540445e3d5d7bd5439312a60aa0c467bae1b39':
  releasetools: Fix the expected total blocks.
2015-09-09 19:44:37 +00:00
Tao Bao e0540445e3 am c5fe3f11: Merge "releasetools: Fix the expected total blocks."
* commit 'c5fe3f117d79ed9ddb6e77fbf211a87dc5dffed4':
  releasetools: Fix the expected total blocks.
2015-09-09 19:39:40 +00:00
Tao Bao b32d56ea8c releasetools: Fix the expected total blocks.
With the change in [1], it zeroes out extra blocks that might be read
by dm-verity. We should update the expected number of blocks that get
touched.

[1] commit e9b619108d.

Bug: 23786644
Change-Id: I7a7c3531e5af6bf381d3a14832e77abfa9a8efce
2015-09-09 11:56:58 -07:00
Tao Bao 484617a79a am 5ffff55b: am 10b2e62b: Merge "releasetools: Don\'t write empty groups."
* commit '5ffff55bbd5770dfc3e7586396c326f97c7b2b47':
  releasetools: Don't write empty groups.
2015-09-08 22:38:35 +00:00
Tao Bao 5ffff55bbd am 10b2e62b: Merge "releasetools: Don\'t write empty groups."
* commit '10b2e62b6d45dc4b406be1544fd9b25d6f800e89':
  releasetools: Don't write empty groups.
2015-09-08 22:33:16 +00:00
Tao Bao 42206c3f2f releasetools: Don't write empty groups.
For a DataImage, we may have no mapping of ZERO or NONZERO blocks. Don't
write those groups if they are empty.

Bug: 19024504
Change-Id: I1e921effcdbf0661d4f4b541c104dd456ac0c582
2015-09-08 14:06:08 -07:00
Tao Bao 8eb3ac18ad am 28f6f9c3: releasetools: Always write the last block if it\'s padded.
* commit '28f6f9c3deb4d23fd627d15631d682a5cfa989fc':
  releasetools: Always write the last block if it's padded.
2015-09-08 20:30:51 +00:00
Tao Bao 00f3c89fd4 rangelib.py: Remove the obsolete comment line.
It was supposed to be removed in [1], but still exists for unknown
reason.

[1]: commit e8f756137c

Change-Id: Ic51e14085294495ec390bbf3cbe8c4fb6e97b860
2015-09-08 12:08:24 -07:00
Tao Bao 4748de05f0 am 102ffce5: am 16656668: Merge "releasetools: Always write the last block if it\'s padded."
* commit '102ffce5dc9aefa6da39e3d91b7c7acf071a302b':
  releasetools: Always write the last block if it's padded.
2015-09-08 17:58:44 +00:00
Tao Bao 28f6f9c3de releasetools: Always write the last block if it's padded.
In BBOTAs if the last block of a DataImage is padded, we should always
write the whole block even for incremental OTAs. Because otherwise the
last block may be skipped if unchanged, but would fail the post-install
verification if it has non-zero contents in the padding bytes.

Bug: 23828506
Change-Id: I6f6789eec568ed0b808b9e425f5ecdbea1bdf446
(cherry picked from commit 7589e961a7)
2015-09-08 10:55:32 -07:00
Tao Bao 102ffce5dc am 16656668: Merge "releasetools: Always write the last block if it\'s padded."
* commit '16656668e1cca5b62ca4487206c462b93bf5a0fc':
  releasetools: Always write the last block if it's padded.
2015-09-08 17:50:25 +00:00
Tao Bao 7589e961a7 releasetools: Always write the last block if it's padded.
In BBOTAs if the last block of a DataImage is padded, we should always
write the whole block even for incremental OTAs. Because otherwise the
last block may be skipped if unchanged, but would fail the post-install
verification if it has non-zero contents in the padding bytes.

Bug: 23828506
Change-Id: I4b0af7344d18261258cd48d18c029c089d6ff365
2015-09-05 20:54:55 -07:00
Tao Bao 276a4f4512 am 2f44006a: am 8f4b307e: Merge "releasetools: Fix the bug when deleting files."
* commit '2f44006a4bbfe6eb7af4d69a24bd068a0875a304':
  releasetools: Fix the bug when deleting files.
2015-09-04 18:02:30 +00:00
Tao Bao 2f44006a4b am 8f4b307e: Merge "releasetools: Fix the bug when deleting files."
* commit '8f4b307e56ea73153f249b44dc2b15de77e058f7':
  releasetools: Fix the bug when deleting files.
2015-09-04 17:56:22 +00:00
Tao Bao a77d41e2f7 releasetools: Fix the bug when deleting files.
For file-based OTAs, we used to remove unneeded files in ascending
order, which failed to delete non-empty directories. Reverse the order
to fix the issue.

For example, now we have the following in our generated script:
  delete("/system/app/Calculator/arm/Calculator.odex",
         "/system/app/Calculator/arm/",
         "/system/app/Calculator/Calculator.apk",
         "/system/app/Calculator/");

Bug: 22960996
Change-Id: I0d36d29b7862fb53bf55bf5685a990180f9c0b3b
2015-09-03 21:21:55 -07:00
Tao Bao de4177d815 am a6e6afbc: am 39c322ce: releasetools: Fix the bug in symlink deletion.
* commit 'a6e6afbce69da968299898944bb2165f5e799886':
  releasetools: Fix the bug in symlink deletion.
2015-09-03 18:14:42 +00:00
Tao Bao a6e6afbce6 am 39c322ce: releasetools: Fix the bug in symlink deletion.
* commit '39c322cefcc0ecba76a2ffb8881694fd010a87fc':
  releasetools: Fix the bug in symlink deletion.
2015-09-03 17:26:12 +00:00
Tao Bao 39c322cefc releasetools: Fix the bug in symlink deletion.
For file-based OTAs, symlinks in the source build but not in the target
build will be deleted. However, if a symlink is replaced by a regular
file in the target build, the file will be accidentally deleted when
applying (resuming) the same package again.

Verify the checksum of a symlink that will be unpacked or renamed to.
Delete the file only if it doesn't have the target checksum.

Bug: 23646151
Change-Id: I77bae035e39f2e0be25f7f6d71c5882464e3d50f
(cherry picked from commit 84006eacd0)
2015-09-02 21:21:17 -07:00
Tao Bao 11a93a4831 am 3fb3ece6: am c6c9c61d: Merge "releasetools: Fix the bug in symlink deletion."
* commit '3fb3ece67e643e7437f222068e61ee254ee90b26':
  releasetools: Fix the bug in symlink deletion.
2015-09-03 02:15:37 +00:00
Tao Bao 3fb3ece67e am c6c9c61d: Merge "releasetools: Fix the bug in symlink deletion."
* commit 'c6c9c61d05ffcc41239baaa1f3011b17e8518b65':
  releasetools: Fix the bug in symlink deletion.
2015-09-03 01:40:41 +00:00
Tao Bao 84006eacd0 releasetools: Fix the bug in symlink deletion.
For file-based OTAs, symlinks in the source build but not in the target
build will be deleted. However, if a symlink is replaced by a regular
file in the target build, the file will be accidentally deleted when
applying (resuming) the same package again.

Verify the checksum of a symlink that will be unpacked or renamed to.
Delete the file only if it doesn't have the target checksum.

Bug: 23646151
Change-Id: Ie322abb6022b6fa812c6b36a3127872d9614fc3b
2015-09-02 17:51:16 -07:00
Tao Bao 418632f517 resolved conflicts for merge of 50827e0d to mnc-dr-dev-plus-aosp
Change-Id: I88f94e520f59a381f441de9d4bad158b6c7045c4
2015-08-31 14:38:31 -07:00
Tao Bao 29c245e803 am e337093e: Merge changes from topic \'stash-size\' into mnc-dr-dev
* commit 'e337093e6c5d502f0f4094639b41c001b3048d0f':
  Split large files for BBOTA v3.
  Revise stash for BBOTAs when needed.
  Assert the stash size when generating OTAs.
2015-08-31 21:10:06 +00:00
Tao Bao 8c85549a3c am c9ff5102: am 35da9685: Merge "Use the basename of file_contexts from the info dict."
* commit 'c9ff5102ad9258f9189afd3bd15eb58cab186215':
  Use the basename of file_contexts from the info dict.
2015-08-28 18:56:36 +00:00
Tao Bao c9ff5102ad am 35da9685: Merge "Use the basename of file_contexts from the info dict."
* commit '35da9685f0d3bb367b50aaa4c476b12907099f77':
  Use the basename of file_contexts from the info dict.
2015-08-28 18:46:31 +00:00
Tao Bao 79735a6a82 Use the basename of file_contexts from the info dict.
Changes in [1] break the backward compatibility of the OTA scripts. Fix
the issue by extracting the file basename from the info dict in
META/misc_info.txt.

[1] commit d3a803e668

Bug: 23620049
Change-Id: I40a5625bbe0beb295f34b2328906a4a4283fe59b
2015-08-28 11:17:38 -07:00
Tao Bao 5bf558767d am 4988f18b: am 6458fd96: Merge "rangelib.py: Fix the bug in monotonic check."
* commit '4988f18b1f0884eb1365820cb365fc6a6d082d1d':
  rangelib.py: Fix the bug in monotonic check.
2015-08-27 23:37:41 +00:00
Tao Bao 4988f18b1f am 6458fd96: Merge "rangelib.py: Fix the bug in monotonic check."
* commit '6458fd96d5d0cd3b54a02a5f9c276f49e566cb53':
  rangelib.py: Fix the bug in monotonic check.
2015-08-27 20:44:35 +00:00
Tao Bao 044bd31e50 am 575643a8: am 14342066: Merge "Add unit tests for rangelib.py."
* commit '575643a85d41a428aeda6676146d86b0356e0785':
  Add unit tests for rangelib.py.
2015-08-27 12:40:31 +00:00
Tao Bao 575643a85d am 14342066: Merge "Add unit tests for rangelib.py."
* commit '14342066dbaec25593c12fdba5396d4ca9cad841':
  Add unit tests for rangelib.py.
2015-08-27 05:23:08 +00:00
Tao Bao e8f756137c rangelib.py: Fix the bug in monotonic check.
RangeSet("2-10").monotonic gives a wrong result of "False". Fix the bug
and add more tests into test_rangelib.py.

Change-Id: I04780571b45ecafd34040f405756b9745a9e21a5
2015-08-26 21:16:43 -07:00
Tao Bao 873a15e267 Add unit tests for rangelib.py.
Separate the test cases in rangelib.py comments into a python unittest
file.

To invoke:
  $ python -m unittest test_rangelib

Change-Id: I59e4ce0aaccc83bcbb42fee15775683dcd559d99
2015-08-26 16:13:18 -07:00
Tao Bao 937847ae49 Split large files for BBOTA v3.
For BBOTA v3, we need to stash source blocks to support resumable
feature. However, with the growth of file size and the shrink of the
cache size, source blocks that represent a file are too large to be
stashed as a whole. CL in [1] solves the issue by replacing the diff
command with a "new" command. However, it may increase the generated
package size substantially (e.g. from ~100MB to ~400MB).

With this CL, if a file spans too many blocks, we split it into smaller
pieces by generating multiple commands. For the same case above, it
reduces the package size to ~150MB.

One potential downside is that after splitting, files like .jar,
.apk and .zip can no longer use imgdiff. We may lose the potential
benefit of using imgdiff for patch size reduction.

[1] commit 82c47981bd

Bug: 22430577
Change-Id: Iee1ad6543f3d40368e079e418cc31728e1ab3f48
(cherry picked from commit 9a5caf2c30)
2015-08-26 15:00:38 -07:00
Tao Bao 1fc67631ee Revise stash for BBOTAs when needed.
When generating incremental BBOTAs (v2 and above), we need to ensure
that the needed runtime stash is below the given threshold. If it's
running out of space on /cache, we replace the command that uses a
stash with a "new" command instead.

This may increase the OTA package size, since it is carrying more full
blocks instead of patches. It gets even worse for large files that span
a number of blocks, because currently we will store all the blocks for
the file as "new" blocks if stashing cannot be satisfied. We may further
optimize by splitting them into smaller chunks so that most of them can
still be stashed.

Bug: 22430577
Change-Id: Ieae5243d461e3f899f613f76a380f6f7c3edb356
(cherry picked from commit 82c47981bd)
2015-08-26 15:00:38 -07:00
Tao Bao d47d8e1488 Assert the stash size when generating OTAs.
With block-based OTA v2 and v3, it requires stash space on the /cache
partition to back up blocks during an update. We need to ensure that
it doesn't exceed the partition size. Since there might be other files
on /cache as well, we use cache_size * threshold as the maximum allowed
size. The threshold defaults to 0.8, which can be overridden by command
line option '--stash_threshold'.

Change-Id: Ieee5d373c9bfb2ea401d85ca8a3adb491579de76
(cherry picked from commit 23ac404212)
2015-08-26 15:00:38 -07:00
Tao Bao 78284e6c79 am 68319cdf: am 95708eea: Merge "Split large files for BBOTA v3."
* commit '68319cdf4762c7c48cff68ede2b7f4bc267db735':
  Split large files for BBOTA v3.
2015-08-26 19:59:04 +00:00
Tao Bao 8b528fc3ef am 68319cdf: am 95708eea: Merge "Split large files for BBOTA v3."
* commit '68319cdf4762c7c48cff68ede2b7f4bc267db735':
  Split large files for BBOTA v3.
2015-08-26 19:55:20 +00:00
Tao Bao 9a5caf2c30 Split large files for BBOTA v3.
For BBOTA v3, we need to stash source blocks to support resumable
feature. However, with the growth of file size and the shrink of the
cache size, source blocks that represent a file are too large to be
stashed as a whole. CL in [1] solves the issue by replacing the diff
command with a "new" command. However, it may increase the generated
package size substantially (e.g. from ~100MB to ~400MB).

With this CL, if a file spans too many blocks, we split it into smaller
pieces by generating multiple commands. For the same case above, it
reduces the package size to ~150MB.

One potential downside is that after splitting, files like .jar,
.apk and .zip can no longer use imgdiff. We may lose the potential
benefit of using imgdiff for patch size reduction.

[1] commit 82c47981bd

Bug: 22430577
Change-Id: I5684fab0ac41c8d94fe18f52a34cef77e06f741c
2015-08-26 10:50:11 -07:00