Commit Graph

771 Commits

Author SHA1 Message Date
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
Tao Bao b4ef770e8d am ecb3bbf4: am 7c4c6f58: sparse_img.py: Divide NONZERO blocks into groups.
* commit 'ecb3bbf4bf0f583fdb6c861a8eeafb21c913bae4':
  sparse_img.py: Divide NONZERO blocks into groups.
2015-08-20 18:37:59 +00:00
Tao Bao 7c4c6f589e sparse_img.py: Divide NONZERO blocks into groups.
For squashfs, we currently don't have a system.map. So the whole system
image will be treated as a single file. But for some unknown bug, the
updater will be killed due to OOM when writing back the patched image to
flash (observed on lenok-userdebug MEA49). Prior to getting a real fix,
we evenly divide the non-zero blocks into smaller groups (currently 1024
blocks or 4MB per group).

Bug: 23227672
Change-Id: Ifeddd8d802f01f8cd2a743a1d1217a284fb6e182
2015-08-19 17:10:23 -07:00
Tao Bao 5e88f021cf am 5d690a37: am ab9a3588: Merge "Revise stash for BBOTAs when needed."
* commit '5d690a37d4b3b33dee1cfc2a64b66ed4e9c03460':
  Revise stash for BBOTAs when needed.
2015-08-18 17:25:34 +00:00
Tao Bao 20c68b7494 am 5d690a37: am ab9a3588: Merge "Revise stash for BBOTAs when needed."
* commit '5d690a37d4b3b33dee1cfc2a64b66ed4e9c03460':
  Revise stash for BBOTAs when needed.
2015-08-18 17:25:09 +00:00
Tao Bao ab9a358801 Merge "Revise stash for BBOTAs when needed." 2015-08-18 16:59:05 +00:00
Tao Bao 02c87a01d9 am 3b409d56: am dae6455c: Merge "Add an option to include a full bootloader in incremental OTA."
* commit '3b409d56f4e142dd4afc7e11bbe4502123a46f31':
  Add an option to include a full bootloader in incremental OTA.
2015-08-17 18:29:32 +00:00
Tao Bao e3103ce2a5 am 3b409d56: am dae6455c: Merge "Add an option to include a full bootloader in incremental OTA."
* commit '3b409d56f4e142dd4afc7e11bbe4502123a46f31':
  Add an option to include a full bootloader in incremental OTA.
2015-08-17 17:55:34 +00:00
leozwang aa6c1a1445 Add an option to include a full bootloader in incremental OTA.
Bug: 23101469
Change-Id: Iac466b83f789f10d26e8d289dce766cf0d05148b
(cherry picked from commit c1324751e79b23a63ea494f4bc784446c8f32435)
2015-08-17 10:34:01 -07:00
Tao Bao 82c47981bd 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: I5a49e361adc7d3d41de2e9c08ee9b08c1e6c091a
2015-08-17 10:21:49 -07:00
Tao Bao db1f93efef am 3a2e91ca: am 8765fca2: Merge "Free the stash after its use in BBOTA v2."
* commit '3a2e91cad7ec1309c07e9d96d572c6a0bed52346':
  Free the stash after its use in BBOTA v2.
2015-08-13 22:34:12 +00:00
Tao Bao 6968a724a5 am 3a2e91ca: am 8765fca2: Merge "Free the stash after its use in BBOTA v2."
* commit '3a2e91cad7ec1309c07e9d96d572c6a0bed52346':
  Free the stash after its use in BBOTA v2.
2015-08-13 22:31:27 +00:00
Tao Bao bb625d2099 Free the stash after its use in BBOTA v2.
In BBOTA v2, the stash size computation is inaccurate. A stash will be
used only once, so we deduct its size from stashed_blocks right after
its use. However, the stash doesn't actually get freed until being
overwritten by another stash or destroyed at the end of an update. This
leads to OTA failures due to insufficient space on /cache. This CL
changes the BBOTA v2 script to generate an explicit free right after
its use.

Bug: 23119955
Change-Id: Icdd8352bb0ff778945937c870990a888c7a4d38b
2015-08-13 14:44:38 -07:00
Nick Kralevich cd8f838d07 am c85364c9: am 5f79bcdd: Merge changes from topic \'file_contexts.bin\'
* commit 'c85364c9c91961461a6d81a37c8b30b34b02383b':
  build: switch over to file_contexts.bin only
  Update embedded.mk to support file_contexts.bin
2015-08-13 00:01:09 +00:00
Nick Kralevich 420662b9cd am c85364c9: am 5f79bcdd: Merge changes from topic \'file_contexts.bin\'
* commit 'c85364c9c91961461a6d81a37c8b30b34b02383b':
  build: switch over to file_contexts.bin only
  Update embedded.mk to support file_contexts.bin
2015-08-13 00:00:36 +00:00
Nick Kralevich 5f79bcdd07 Merge changes from topic 'file_contexts.bin'
* changes:
  build: switch over to file_contexts.bin only
  Update embedded.mk to support file_contexts.bin
2015-08-12 23:46:28 +00:00
Tao Bao 007979ee75 Add support for clobbered blocks
In ext4 filesystems, some blocks might be changed even being mounted
R/O, such as the superblock (block 0). We need to exclude such blocks
from integrity verification. Plus such blocks should always be
written to the target by copying instead of patching.

Bug: http://b/20939131
Change-Id: If9efab3d7a0071a87b4d4297daf7963c3b818afe
(cherry picked from commit ff7778166b)
2015-08-11 21:02:45 -07:00
Furquan Shaikh d7ebf9acfc am 7bb7a5f9: am f8a714ba: am 9f5c487e: Merge "releasetools: Fix parameters for vboot_signer" into mnc-dr-dev
* commit '7bb7a5f94e8a2f1f61156773fc259cf112261803':
  releasetools: Fix parameters for vboot_signer
2015-08-10 20:26:27 +00:00
Furquan Shaikh f8a714ba6f am 9f5c487e: Merge "releasetools: Fix parameters for vboot_signer" into mnc-dr-dev
* commit '9f5c487ef586d20c273cafba6ce663287ef6a37a':
  releasetools: Fix parameters for vboot_signer
2015-08-10 19:34:16 +00:00
Furquan Shaikh 9f5c487ef5 Merge "releasetools: Fix parameters for vboot_signer" into mnc-dr-dev 2015-08-10 19:27:36 +00:00
Furquan Shaikh 852b8de43f releasetools: Fix parameters for vboot_signer
With the change in vboot_signer (CL:744257), an additional parameter
is required to vboot_signer script. This change adds the required
parameter to releasetools as well.

BUG=23076037

Change-Id: Ice5329578b3a9bc459e278a9d404a1981b35ca88
Signed-off-by: Furquan Shaikh <furquan@google.com>
2015-08-10 11:43:45 -07:00
Tao Bao f022de397b am 0fed6730: am 8af98164: Merge "Change the cache partition size check into warnings."
* commit '0fed67301d698a30d3f593f6e6ad738f5b28d41e':
  Change the cache partition size check into warnings.
2015-08-08 04:40:35 +00:00
Tao Bao e3f3a3a941 am 0fed6730: am 8af98164: Merge "Change the cache partition size check into warnings."
* commit '0fed67301d698a30d3f593f6e6ad738f5b28d41e':
  Change the cache partition size check into warnings.
2015-08-08 04:40:29 +00:00
Tao Bao 575d68a48e Change the cache partition size check into warnings.
For some old builds, we may not define cache partition size. Change the
exception into a warning to make the script backward compatible.

Change-Id: Ie94c7fbb1a9f3a7db3f16e8d845e493a534aac5b
2015-08-07 19:49:45 -07:00
Tao Bao 44ca42a515 am 44c8e4db: am 420f95ff: Merge "releasetools: Support packaging for system_root_image."
* commit '44c8e4db55707bb67e06ccc0db3f42a8c7a9bb1e':
  releasetools: Support packaging for system_root_image.
2015-08-07 20:21:04 +00:00
Tao Bao f08f5e37f9 am 44c8e4db: am 420f95ff: Merge "releasetools: Support packaging for system_root_image."
* commit '44c8e4db55707bb67e06ccc0db3f42a8c7a9bb1e':
  releasetools: Support packaging for system_root_image.
2015-08-07 20:08:08 +00:00
Tao Bao 7a5bf8a645 releasetools: Support packaging for system_root_image.
For system images that contain the root directory, we need to find the
root directory at ROOT/ instead of BOOT/RAMDISK/.

Change-Id: Ica345c8b1b03475f8ac6c44fd576045fcf17c882
2015-08-05 16:28:55 -07:00
Stephen Smalley d3a803e668 build: switch over to file_contexts.bin only
Change all uses of the file_contexts file to use the
file_contexts.bin file instead.

Depends on
   I75a781100082c23536f70ce3603f7de42408b5ba
   I43806d564b83d57f05f5c36c8eba7b1ff4831b04
   Id560d093440a2aba99cef28c20133b35feebf950
   I15660f4b3e4c5cb8ae0ec1498c74d6fcbb9a0400

Change-Id: Iaf8c4b2e420f610425a07f48db7af32bda3f5b3a
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-08-04 14:59:06 -04:00
Daniel Rosenberg 7d3ad6040a am b139ae07: am 22354d3c: Merge "Add support for system images that contain the root directory"
* commit 'b139ae078c8b2598889c2fde1a39a9d64f27dc62':
  Add support for system images that contain the root directory
2015-08-03 17:57:23 +00:00
Daniel Rosenberg 93d8ea20b8 am b139ae07: am 22354d3c: Merge "Add support for system images that contain the root directory"
* commit 'b139ae078c8b2598889c2fde1a39a9d64f27dc62':
  Add support for system images that contain the root directory
2015-08-01 00:23:58 +00:00
Daniel Rosenberg 22354d3c49 Merge "Add support for system images that contain the root directory" 2015-08-01 00:10:02 +00:00
Daniel Rosenberg e6853b0d63 Add support for system images that contain the root directory
When the root directory is included in system, the assumption that
system is mounted at /system breaks down. Redirect /system to /
in that case.

Change-Id: I8031b32d7cb9ca699c1cc22939e28afce9d1c847
2015-07-31 16:52:21 -07:00
Tao Bao bba2c51264 am 15b42c42: am cce673b6: Read fstab from the source build.
* commit '15b42c426715c2221f49d0cf2181ba869b84bc94':
  Read fstab from the source build.
2015-07-29 22:11:44 +00:00
Tao Bao 17f8f36875 am 8eb7f45a: am 4ac8e059: Merge "Read fstab from the source build."
* commit '8eb7f45a45132cfb39258b383f8ed06c7c4212ce':
  Read fstab from the source build.
2015-07-29 21:53:48 +00:00
Tao Bao 29d6fb24d7 am cce673b6: Read fstab from the source build.
* commit 'cce673b675fadb9e509779cec838a1b545126cc4':
  Read fstab from the source build.
2015-07-29 21:49:32 +00:00
Simon Wilson 37700c9ad1 Merge "Add compressor options for squashfs system images" 2015-07-29 21:35:57 +00:00
Tao Bao cce673b675 Read fstab from the source build.
When creating incremental OTAs, we should always use the fstab from the
source build instead of the target.

Bug: 21948974
Change-Id: I8b6a18f64b412f782184f9d382544ed0ce093fb4
(cherry picked from commit dd24da9ec9)
2015-07-29 14:30:08 -07:00
Tao Bao dd24da9ec9 Read fstab from the source build.
When creating incremental OTAs, we should always use the fstab from the
source build instead of the target.

Bug: 21948974
Change-Id: Iff44130f88a679b253ea1adcfac4ed8566ce9cc7
2015-07-29 14:11:55 -07:00
Tao Bao 0d511afcb8 resolved conflicts for merge of 910d3822 to mnc-dev-plus-aosp
Change-Id: Ied44516c7c2e46b93965dbdb8fb4bc98d6ed3310
2015-07-28 17:03:09 -07:00
Tao Bao 7eddd6285f resolved conflicts for merge of 910d3822 to mnc-dr-dev-plus-aosp
Change-Id: I2c899be9d6a82664e4d14c903311daeed5e546fd
2015-07-28 16:58:03 -07:00
Tao Bao f2cffbddb9 Support systems that use a full copy of recovery image.
If BOARD_USES_FULL_RECOVERY_IMAGE == true, a full copy of recovery
image will be carried as /system/etc/recovery.img instead of a patch
at /system/recovery_from_boot.p.

Bug: 22641135
Change-Id: Ie271d3e2d55d7b003f667ac5b44203d69b23c63b
(cherry picked from commit 8beab69bd5)
2015-07-28 12:20:36 -07:00
Tao Bao 5442819cb1 am a04e6b89: am dd68e68f: Merge "Override properties that point to out/ directory."
* commit 'a04e6b89ec262f4dd38c9d80ee05ce313bab9347':
  Override properties that point to out/ directory.
2015-07-21 18:28:15 +00:00
Tao Bao 1358123688 am a04e6b89: am dd68e68f: Merge "Override properties that point to out/ directory."
* commit 'a04e6b89ec262f4dd38c9d80ee05ce313bab9347':
  Override properties that point to out/ directory.
2015-07-21 18:25:36 +00:00
Tao Bao 84e7568b1f Override properties that point to out/ directory.
A few properties are stored as links to the files in the out/
directory, which are no longer available when (re)packing from
target_files zip. Redirect those properties to the actual files in
the unzipped directory when repacking.

Change-Id: I18e930cbea224ab9c6db8d4e721b1c266a671db6
2015-07-19 08:48:09 -07:00
Tao Bao 2ad55edfd6 am 0d4a9405: am ecb7b37b: Merge "Assert the stash size when generating OTAs."
* commit '0d4a9405938210618bb305e33285f555daf2fb5d':
  Assert the stash size when generating OTAs.
2015-07-14 23:07:15 +00:00
Tao Bao 6cc282c10a am 0d4a9405: am ecb7b37b: Merge "Assert the stash size when generating OTAs."
* commit '0d4a9405938210618bb305e33285f555daf2fb5d':
  Assert the stash size when generating OTAs.
2015-07-14 20:53:40 +00:00
Tao Bao 8dcf738234 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: I5c2e353ea4716328d6cdc6a7f758520de8d88b8e
(cherry picked from commit 23ac404212)
2015-07-14 13:36:50 -07:00
Tao Bao 906550f285 am bf8e85ab: am 2e4dd9ab: Merge "Fix the permission in common.ZipWriteStr()."
* commit 'bf8e85abb59daf676bc213623a906b8d00a65790':
  Fix the permission in common.ZipWriteStr().
2015-07-11 02:04:05 +00:00
Tao Bao 71404b8102 am bf8e85ab: am 2e4dd9ab: Merge "Fix the permission in common.ZipWriteStr()."
* commit 'bf8e85abb59daf676bc213623a906b8d00a65790':
  Fix the permission in common.ZipWriteStr().
2015-07-11 01:39:49 +00:00
Tao Bao 2a410587e8 Fix the permission in common.ZipWriteStr().
common.ZipWriteStr() should set a default file permission to 0o100644
instead of 0o644.

Change-Id: I8c89d8442b095b56ad3a0d47afdfa73ce55ad0c8
2015-07-10 17:45:09 -07:00
Tao Bao 6a7d8fced3 am 03125de6: am c8812493: Merge "Pack file_contexts into target_files zip."
* commit '03125de6b57fc358e14cbcd1798cdf9d3289b72f':
  Pack file_contexts into target_files zip.
2015-07-10 21:56:22 +00:00
Tao Bao e7a4b429d2 am 03125de6: am c8812493: Merge "Pack file_contexts into target_files zip."
* commit '03125de6b57fc358e14cbcd1798cdf9d3289b72f':
  Pack file_contexts into target_files zip.
2015-07-10 21:56:02 +00:00
Tao Bao 2c15d9eefe Pack file_contexts into target_files zip.
file_contexts (specified by SELINUX_FC) is needed both when building
and (re)packaging. We used to use the copy in out/ when building, and
looked for the copy in BOOT/RAMDISK/ when packaging from target_files
zip. With system_root_image enabled, the file_contexts needed for
building and packaging might be different from the one on device. So
we explicitly pack the file as META/file_contexts in target_files zip.

Also refactor out the overriding of selinux_fc property into
common.LoadInfoDict().

Change-Id: I94f9ea6671b3792c12c1c21573840743d63da39a
(cherry picked from commit aa7318c384)
2015-07-10 14:21:16 -07:00
Tao Bao ca87c735a3 am 46b1b205: am da724f7a: Merge "Zero out blocks that may be touched by dm-verity."
* commit '46b1b2057d5700a03b3fa6e332a737a0ef2425ba':
  Zero out blocks that may be touched by dm-verity.
2015-07-10 21:16:20 +00:00
Tao Bao d2e77d6ec5 am 7f8ecb7f: Merge "Zero out blocks that may be touched by dm-verity." into mnc-dev
* commit '7f8ecb7f5c21630a75c69d170ba2b401d7a311a5':
  Zero out blocks that may be touched by dm-verity.
2015-07-10 21:09:40 +00:00
Tao Bao 89832b36af am 7f8ecb7f: Merge "Zero out blocks that may be touched by dm-verity." into mnc-dev
* commit '7f8ecb7f5c21630a75c69d170ba2b401d7a311a5':
  Zero out blocks that may be touched by dm-verity.
2015-07-10 20:55:39 +00:00
Tao Bao e9b619108d Zero out blocks that may be touched by dm-verity.
dm-verity may touch some blocks that are not in the care_map due to
block device read-ahead. It will fail if such blocks contain
non-zeroes. As a workaround, we mark them as extended blocks and
zero out explicitly to avoid dm-verity failures.

Bug: 20881595
Change-Id: Id097138bfd065c84eac088b3ad49758010b2927b
(cherry picked from commit 2fd2c9bfd6)
2015-07-10 13:50:24 -07:00
Tao Bao 7f8ecb7f5c Merge "Zero out blocks that may be touched by dm-verity." into mnc-dev 2015-07-10 20:44:25 +00:00
Thierry Strudel 4ec1abca84 am a69dcefd: am 74a81e66: fix device specific fs_config on build server
* commit 'a69dcefda3ec493216f401117417d86f8ef757ac':
  fix device specific fs_config on build server
2015-07-10 19:26:24 +00:00
Tao Bao 2fd2c9bfd6 Zero out blocks that may be touched by dm-verity.
dm-verity may touch some blocks that are not in the care_map due to
block device read-ahead. It will fail if such blocks contain
non-zeroes. As a workaround, we mark them as extended blocks and
zero out explicitly to avoid dm-verity failures.

Bug: 20881595
Change-Id: I54e24e70ad822c0d6d7af43301f74d24505f4461
2015-07-10 12:16:56 -07:00
Thierry Strudel a69dcefda3 am 74a81e66: fix device specific fs_config on build server
* commit '74a81e6633276d92337749a5ee9d921207814dd4':
  fix device specific fs_config on build server
2015-07-10 18:57:38 +00:00
Thierry Strudel f4e503774e am 74a81e66: fix device specific fs_config on build server
* commit '74a81e6633276d92337749a5ee9d921207814dd4':
  fix device specific fs_config on build server
2015-07-10 18:44:53 +00:00
Thierry Strudel 74a81e6633 fix device specific fs_config on build server
fs_config function from libcutils, in order to properly set the xattr FS
used to define device specific uid, gid, permissions and capabilities,
now needs TARGET_OUT make variable to be passed explicitly to all tools
using it:
  fs_config
  fs_get_stats used by mktarball.sh
  make_ext4fs used by mkuserimg.sh
  mksquashfs used by mksquashfsimage.sh

Bug: 21989305
Bug: 22048934
Change-Id: I6caf9cf870882fce2ead93027767092c29b75ded
Signed-off-by: Thierry Strudel <tstrudel@google.com>
2015-07-10 10:55:54 -07:00
Tao Bao b8fbf8a2a1 am 74008203: am e246964b: Merge "Scan all init.*.rc files for flash_recovery service."
* commit '7400820330b39bc5d044c6f9c46d06a7650c83f1':
  Scan all init.*.rc files for flash_recovery service.
2015-07-08 17:52:33 +00:00
Tao Bao d94525ca52 am 74008203: am e246964b: Merge "Scan all init.*.rc files for flash_recovery service."
* commit '7400820330b39bc5d044c6f9c46d06a7650c83f1':
  Scan all init.*.rc files for flash_recovery service.
2015-07-08 17:51:34 +00:00
Tao Bao 38a534b693 resolved conflicts for merge of 610754e5 to cw-e-dev
Change-Id: Ia0d0d82c7fec86e1585a9e2c90ac877c363ed491
2015-07-08 10:43:31 -07:00
Tao Bao e246964b8f Merge "Scan all init.*.rc files for flash_recovery service." 2015-07-08 17:22:36 +00:00
Tao Bao 9f0c8dfaf1 Scan all init.*.rc files for flash_recovery service.
Clockwork builds may rename init.rc to init.core.rc. Change the OTA
script to scan all init.*.rc files to determine the proper location for
install-recovery.sh.

Bug: 22128990
Change-Id: Icad3497d1663e074b938919b40fc239c84fbeb2b
(cherry picked from commit 610754e5ad)
2015-07-08 10:20:39 -07:00
Tao Bao 610754e5ad Scan all init.*.rc files for flash_recovery service.
Clockwork builds may rename init.rc to init.core.rc. Change the OTA
script to scan all init.*.rc files to determine the proper location for
install-recovery.sh.

Bug: 22128990
Change-Id: If96bd0b81090683ad0bbfddb735d390204849d9f
2015-07-07 20:52:01 -07:00
Simon Wilson 011ea06db7 Add compressor options for squashfs system images
Change-Id: I2a75f8754273f6e00b96ba6aca6741c4388f5da8
(cherry picked from commit f86e7eeabc)
2015-07-07 11:41:20 -07:00
Tao Bao e9c462b00a am 1747e35a: am a0021026: Merge "fix up ota_from_target_files symlink detection."
* commit '1747e35a090cff66b117128c7bffd2e8b5050f37':
  fix up ota_from_target_files symlink detection.
2015-07-07 17:18:59 +00:00
Tao Bao dc48635b16 am 1747e35a: am a0021026: Merge "fix up ota_from_target_files symlink detection."
* commit '1747e35a090cff66b117128c7bffd2e8b5050f37':
  fix up ota_from_target_files symlink detection.
2015-07-07 17:17:57 +00:00
Ying Wang 2ffb3147bc fix up ota_from_target_files symlink detection.
Change-Id: I10b668096d4e61e75473dd805f96387049f29b79
2015-07-06 14:02:01 -07:00
Tao Bao c607474ec2 am 11d4406e: am 48a27bcb: Merge "Fix OTA scripts to generate incremental BBOTA with OEM property."
* commit '11d4406eb9796819baeafda3142b16f9cc63d532':
  Fix OTA scripts to generate incremental BBOTA with OEM property.
2015-07-06 16:49:18 +00:00
Tao Bao 9b1a9ec53f am 11d4406e: am 48a27bcb: Merge "Fix OTA scripts to generate incremental BBOTA with OEM property."
* commit '11d4406eb9796819baeafda3142b16f9cc63d532':
  Fix OTA scripts to generate incremental BBOTA with OEM property.
2015-07-06 16:49:06 +00:00
Tao Bao 3806c231a9 Fix OTA scripts to generate incremental BBOTA with OEM property.
Bug: 21803136
Change-Id: I3a45e8aea0b4f4f4f2acb4c9c8a7fad7a014680c
2015-07-05 21:08:33 -07:00
Chris Elliott 1e253e76b9 Merge "DO NOT MERGE Fix the syntax error in the edify script generator" into cw-d-mr1-dev 2015-07-02 20:18:35 +00:00
Tao Bao 4dacce92ce DO NOT MERGE Fix the syntax error in the edify script generator
file_getprop() always expects two arguments.

Bug: 19881931
Change-Id: Icf5577ad34188991c03f68c1217642d3adc4201c
2015-07-02 13:17:21 -07:00
Tao Bao 41bcf3e425 Fix build.
Change-Id: Id3eb4821a3c3061063a00294bfa268693c773eb8
2015-07-01 19:38:34 -07:00
Tao Bao 8bd720257e resolved conflicts for merge of 8787cd6d to mnc-dev
Change-Id: I19497d05a021c21c905b2bddd5b36d370dc2208f
2015-07-01 18:06:33 -07:00
Tao Bao 608d9d2452 am 1aa1af0e: sparse_img.py: Don\'t write empty map groups.
* commit '1aa1af0e997699bc025e4f0a754692068328d7e6':
  sparse_img.py: Don't write empty map groups.
2015-07-02 00:47:51 +00:00
Simon Wilson e416a41f3a am 16401ad4: Revert "sparse_img.py: Don\'t write empty map groups."
* commit '16401ad4256178fbe7a2cd8588e6dbf9a6c63180':
  Revert "sparse_img.py: Don't write empty map groups."
2015-07-02 00:47:50 +00:00
Tao Bao 8787cd6d4e resolved conflicts for merge of 7f9470cd to lmp-mr1-ub-dev
Change-Id: Icfc94fcc4178f5fbfad62df9914c84d59d140bb7
2015-07-01 17:44:53 -07:00
Tao Bao 1aa1af0e99 sparse_img.py: Don't write empty map groups.
In certain cases, we may have no mapping of ZERO or NONZERO blocks in
the image (such as squashfs at the moment). Don't write those groups if
they are empty.

Change-Id: I4a1f0105ada2e1573c3d6162457b83725e0d8971
2015-07-01 11:24:30 -07:00
Simon Wilson 16401ad425 Revert "sparse_img.py: Don't write empty map groups."
This reverts commit 7f9470cda3.

Change-Id: I97e2859903fbc4f1e6f0824269ae88b23f63e032
2015-07-01 18:10:28 +00:00
Tao Bao 7f9470cda3 sparse_img.py: Don't write empty map groups.
In certain cases, we may have no mapping of ZERO or NONZERO blocks in
the image (such as squashfs at the moment). Don't write those groups if
they are empty.

Change-Id: I82aa05fbbd79130b08868585edd5298e531c4f5a
2015-07-01 10:10:31 -07:00
Tao Bao 4e66343b2b Retry adjusting the size computation for reserved blocks.
Due to the change in https://lwn.net/Articles/546473/, kernel reserves a
few extra blocks (lesser of 2% and 4096 blocks) on ext4 FS which leads to
OTA update failures. Adjust the size computation if the device has
BOARD_HAS_EXT4_RESERVED_BLOCKS := true.

It amends the last attemp in [1]. Now it computes the used blocks from the
make_ext4fs output, instead of altering its argument.

[1]: commit efbb5d2e69.

Bug: 21522719
Bug: 22023465
Bug: 22174684
Change-Id: Iaae6507f6de68a5892f2e3035d330039287b4492
(cherry picked from commit c7a6f1e4f8)
2015-06-30 12:17:28 -07:00
Tao Bao ed95997724 resolved conflicts for merge of c7a6f1e4 to mnc-dev-plus-aosp
Change-Id: I3201c1d7f9e8b451614259c2fec70c07ae9c8332
2015-06-30 09:33:12 -07:00
Tao Bao c7a6f1e4f8 Retry adjusting the size computation for reserved blocks.
Due to the change in https://lwn.net/Articles/546473/, kernel reserves a
few extra blocks (lesser of 2% and 4096 blocks) on ext4 FS which leads to
OTA update failures. Adjust the size computation if the device has
BOARD_HAS_EXT4_RESERVED_BLOCKS := true.

It amends the last attemp in [1]. Now it computes the used blocks from the
make_ext4fs output, instead of altering its argument.

[1]: commit efbb5d2e69.

Bug: 21522719
Bug: 22023465
Bug: 22174684
Change-Id: I9783a51abe6581ff5c75db81e78ac606d0f32c4c
2015-06-29 20:45:53 -07:00
Tao Bao bdf7d94aac am 2384d01c: Revert "Adjust the size computation for reserved blocks"
* commit '2384d01c1c4c5b259840ec526ec8f5ec18cd8087':
  Revert "Adjust the size computation for reserved blocks"
2015-06-29 20:56:34 +00:00
Tao Bao 2384d01c1c Revert "Adjust the size computation for reserved blocks"
We should not change the parameter to mkfs_ext4. Bug filed at
b/22174684. Will come up with a new CL.

This reverts commit efbb5d2e69.

Change-Id: I15f7a9a07a65a936ba186d2ce672ec4832ed3e17
2015-06-29 12:55:38 -07:00
Tao Bao 929fbe7d37 am 0f0af20d: am 5df6b5c3: Merge "sparse_img.py: Don\'t write empty map groups."
* commit '0f0af20d6d4fa7d75f7dd8569f713e68eb0cad46':
  sparse_img.py: Don't write empty map groups.
2015-06-27 16:58:36 +00:00
Tao Bao a89781204e sparse_img.py: Don't write empty map groups.
In certain cases, we may have no mapping of ZERO or NONZERO blocks in
the image (such as squashfs at the moment). Don't write those groups if
they are empty.

Change-Id: I82aa05fbbd79130b08868585edd5298e531c4f5a
2015-06-27 09:21:31 -07:00
Tao Bao c94a705f44 Merge "Use fstab in the source build" 2015-06-26 22:57:09 +00:00
Tao Bao dd77b561e5 Merge "Support SELinux context label when mounting" 2015-06-26 22:56:57 +00:00
Tao Bao 34b47bf42b Use fstab in the source build
When generating incremental OTAs, we should use the fstab in the source
build instead of the target one. Similarly for recovery_mount_options.

Bug: 22011892
Change-Id: Ia02584c71af7d47835b1f62e7daa46f27940a545
(cherry picked from commit bebd3cfbf9)
2015-06-26 15:53:16 -07:00
Ying Wang f6bb95b7a9 am 48f68478: am 8f180b90: Merge "Create userdata.img with real data when SANITIZE_TARGET=address."
* commit '48f68478bd2a375886f30c01b63920575739d9db':
  Create userdata.img with real data when SANITIZE_TARGET=address.
2015-06-25 21:54:52 +00:00
Ying Wang 8f180b904f Merge "Create userdata.img with real data when SANITIZE_TARGET=address." 2015-06-25 21:29:52 +00:00
Ying Wang 2a04839aec Create userdata.img with real data when SANITIZE_TARGET=address.
Bug: 21785137
Change-Id: Ie0c36988759fe07419ad29bab5a71cdd0d992d2a
2015-06-25 14:29:04 -07:00
Mohamad Ayyash 99811e45d0 am 07a7590f: Merge "build_image.py: Make sparse squashfs images" into mnc-dev
* commit '07a7590f087e4ce7783e0907c9e5c84e18a6481e':
  build_image.py: Make sparse squashfs images
2015-06-24 23:42:30 +00:00
Simon Wilson 5e14d57658 am b7b7aede: Merge "resolved conflicts for merge of ecfc97f7 to mnc-dev" into mnc-dev
* commit 'b7b7aedeb3c960890e3842ec8e729dbd10077ae4':
  Add compressor options for squashfs system images
2015-06-24 23:42:29 +00:00
Mohamad Ayyash 07a7590f08 Merge "build_image.py: Make sparse squashfs images" into mnc-dev 2015-06-24 23:15:56 +00:00
Simon Wilson 6d5ddc32ab resolved conflicts for merge of ecfc97f7 to mnc-dev
Change-Id: Ic7661c4176dc87cb2796f9cbb61bdd64f89cdc01
2015-06-24 16:06:34 -07:00
Mohamad Ayyash 48cb24a655 am 648e40e8: build_image.py: Make sparse squashfs images
* commit '648e40e8660135f37adad5981a48250476c2f3fd':
  build_image.py: Make sparse squashfs images
2015-06-24 22:52:10 +00:00
Simon Wilson ecfc97f772 resolved conflicts for merge of f86e7eea to lmp-mr1-ub-dev
Change-Id: I746021aa57edd5f6fae6e57cec0908951a659664
2015-06-24 15:42:27 -07:00
Mohamad Ayyash 9ca7fa8993 resolved conflicts for merge of 1b748051 to lmp-mr1-ub-dev 2015-06-24 15:04:38 -07:00
Mohamad Ayyash 042e851999 Merge "build_image.py: Make sparse squashfs images" 2015-06-24 22:01:00 +00:00
Mohamad Ayyash 2cd51cc711 build_image.py: Make sparse squashfs images
Change-Id: Iea0399868a9406f9929d8176d61d5698a2043697
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-24 11:08:00 -07:00
Mohamad Ayyash 648e40e866 build_image.py: Make sparse squashfs images
Change-Id: Iea0399868a9406f9929d8176d61d5698a2043697
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-24 10:54:16 -07:00
Mohamad Ayyash fa6c8a9b79 build_image.py: Make sparse squashfs images
Change-Id: Iea0399868a9406f9929d8176d61d5698a2043697
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-24 10:44:52 -07:00
Tao Bao 344af6d18c am 7102f577: Merge "Adjust the size computation for reserved blocks" into mnc-dev
* commit '7102f57781a8cde2e450951af3cbd7e60b44dca1':
  Adjust the size computation for reserved blocks
2015-06-24 02:13:40 +00:00
Tao Bao 8adebf62f8 am ca8fb0f2: am c9fcdae2: Merge "Fix the error in sparse_img.py"
* commit 'ca8fb0f21f3b4b91d60e0678b512f59167d79fda':
  Fix the error in sparse_img.py
2015-06-24 02:01:11 +00:00
Tao Bao 7102f57781 Merge "Adjust the size computation for reserved blocks" into mnc-dev 2015-06-24 00:53:17 +00:00
Tao Bao 109555753f Fix the error in sparse_img.py
Bug: 22046423
Change-Id: I0796e14df2b523570f0c485d146273f5e5aa5494
(cherry picked from commit 2b4ff174ff)
2015-06-23 17:44:48 -07:00
Tao Bao 2b4ff174ff Fix the error in sparse_img.py
Bug: 22046423
Change-Id: I9c257002c405277557974fadfe27942c38c3cd04
2015-06-23 17:36:10 -07:00
Tao Bao efbb5d2e69 Adjust the size computation for reserved blocks
Due to the change in https://lwn.net/Articles/546473/, kernel reserves a
few extra blocks (lesser of 2% and 4096 blocks) on ext4 FS which leads to
OTA update failures. Adjust the size computation if the device has
BOARD_HAS_EXT4_RESERVED_BLOCKS := true.

Bug: 21522719
Bug: 22023465
Change-Id: I49f16adbf2dedc5279fbb8622bf99ef71dcc494f
2015-06-23 14:53:28 -07:00
Tao Bao 44dbba98b8 am bebd3cfb: Use fstab in the source build
* commit 'bebd3cfbf934beb18b73a4d4e98b98c2c0a1d6fe':
  Use fstab in the source build
2015-06-23 20:46:04 +00:00
Tao Bao bebd3cfbf9 Use fstab in the source build
When generating incremental OTAs, we should use the fstab in the source
build instead of the target one. Similarly for recovery_mount_options.

Bug: 22011892
Change-Id: Idb5c72d1a792e8bb40376a380e3dc06136b13652
2015-06-22 19:27:59 -07:00
Simon Wilson f86e7eeabc Add compressor options for squashfs system images
Change-Id: I2a75f8754273f6e00b96ba6aca6741c4388f5da8
2015-06-22 15:42:52 -07:00
Mohamad Ayyash 1b748051dd common.py: Add support for squashfs
Change-Id: Ia40f8c6307d0213d43207aee91c4c8a5b5ad6f1e
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-16 13:18:44 -07:00
Mohamad Ayyash cade49ddee Allow flashing a squashfs system image
Change-Id: Ic51d11274784a8d2e9d57d5f0b821ebc89680e5a
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-06-16 13:11:21 -07:00
Tao Bao 05451045c9 am abfe1044: Merge "Support SELinux context label when mounting" into mnc-dev
* commit 'abfe10440836f4bbd513b83cf731788099dd81b4':
  Support SELinux context label when mounting
2015-06-11 02:08:14 +00:00
Tao Bao df06e96826 Support SELinux context label when mounting
If there is a SELinux context label in the recovery.fstab, we should
honor that when mounting the partition.

Bug: 19764039
Change-Id: Ic80a3377a5a94c9d10dd464eb1257b157a947510
(cherry picked from commit 548eb76c8f)
2015-06-10 16:20:18 -07:00
Tao Bao 548eb76c8f Support SELinux context label when mounting
If there is a SELinux context label in the recovery.fstab, we should
honor that when mounting the partition.

Bug: 19764039
Change-Id: I4df71a092b418cd340a18b2e3b0936de33d8e3f5
2015-06-10 15:35:34 -07:00
Baligh Uddin d80f08688c am 942a42e3: Merge "Allow custom boot_signer and verity_signer." into mnc-dev
* commit '942a42e31de9a0468014a256ed7fdd67cb208e64':
  Allow custom boot_signer and verity_signer.
2015-06-09 23:28:07 +00:00
Baligh Uddin 601ddeae06 Allow custom boot_signer and verity_signer.
Bug: 21701163
Change-Id: I85e75fd3a166a9f6a7859ebf81dee73322dc2798
2015-06-09 15:48:14 -07:00
Tao Bao b7998ec0d5 am 726b7f33: Fix the broken signing script
* commit '726b7f338f32ca6d18e9961b0a2da3ef385f7e34':
  Fix the broken signing script
2015-06-04 01:34:06 +00:00
Tao Bao 726b7f338f Fix the broken signing script
check_target_files_signatures.py was accidentally broken due to the
renaming of a variable in last commit. It escaped the checking from
pylint because it was a keyword ('all').

Bug: 21611858
Change-Id: I58c983e59c4a3e0018481d3c9ba328ed76f5c08a
2015-06-03 17:36:12 -07:00
Tao Bao 7cebca42e3 am 1ef34d34: am 54310d1a: Merge "Fix the wrong error message"
* commit '1ef34d3440db524d6ea2e0a6d4e72b668765d293':
  Fix the wrong error message
2015-06-03 18:36:17 +00:00
Ying Wang 4540a85dd4 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
(cherry picked from commit 5fcf1094f9)
2015-06-03 09:56:29 -07:00
Tao Bao e7b103751c Fix the wrong error message
apply_patch_space() checks the free space on /cache, not /system.

Change-Id: I70996d5cd5a81fe4871ee738bddb1437e8df6fb9
2015-06-03 09:25:10 -07:00
Tao Bao 87742421b2 am 2e30a5e8: am 708c4623: Merge "Add post-install verification for BBOTAs"
* commit '2e30a5e853a584b11db65c0703aff93c7f7870f8':
  Add post-install verification for BBOTAs
2015-06-02 18:28:30 +00:00
Tao Bao 5fcaaeffc3 Add post-install verification for BBOTAs
Similar to the assertations in file-based OTA, we perform verification
for block-based OTAs (BBOTAs) after updating a partition, for both of
the incremental and full OTAs. It increases the update time (~20s on
Nexus 6), but will capture unnoticed errors right away.

Bug: 21500869
Change-Id: I0f8b27734caaa0f41f9c1b904d55af2112784a68
(cherry picked from commit 68658c0f4f)
2015-06-02 11:15:33 -07:00
Tao Bao 68658c0f4f Add post-install verification for BBOTAs
Similar to the assertations in file-based OTA, we perform verification
for block-based OTAs (BBOTAs) after updating a partition, for both of
the incremental and full OTAs. It increases the update time (~20s on
Nexus 6), but will capture unnoticed errors right away.

Bug: 21500869
Change-Id: I89ac8fe623b855721b7affd07cf9426a23433ab0
2015-06-01 15:00:30 -07:00
Brian Carlstrom 663127d0ca Use zipalign -p to page align .so files
Bug: 21400810
Change-Id: Ie3adf26dd3a51acfdb0faa23dc8ca1b206fb3727
(cherry picked from commit 903186f938)
2015-05-26 15:16:36 -07:00
Brian Carlstrom 903186f938 Use zipalign -p to page align .so files
Bug: 21400810
Change-Id: Ie9a0ec0a55511383596016e830b474c76754277a
2015-05-22 15:51:19 -07:00
Tao Bao 58c1b96165 Fix the permission setting in common.ZipWriteStr()
When passing a ZipInfo instance to common.ZipWriteStr(), the
external_attr attribute should not be overwritten unless specified.
We didn't have the issue previously because we were calling
ZipFile.writestr() directly until [1] merged.

[1] commit 2ed665a033.

Bug: http://b/21309935
Change-Id: I8c0190362c60d7d78965ecfe5e484f8398ddc5f2
(cherry picked from commit 9773465409)
2015-05-20 13:29:03 -07:00
Tao Bao 9773465409 Fix the permission setting in common.ZipWriteStr()
When passing a ZipInfo instance to common.ZipWriteStr(), the
external_attr attribute should not be overwritten unless specified.
We didn't have the issue previously because we were calling
ZipFile.writestr() directly until [1] merged.

[1] commit 2ed665a033.

Bug: http://b/21309935
Change-Id: I374ccd40c174ff9259844f38bdbf187dfe82552d
2015-05-20 12:18:55 -07:00
Tao Bao 5ece99d64e Add support for clobbered blocks
In ext4 filesystems, some blocks might be changed even being mounted
R/O, such as the superblock (block 0). We need to exclude such blocks
from integrity verification. Plus such blocks should always be
written to the target by copying instead of patching.

Bug: http://b/20939131
Change-Id: I657025b7b1ad50d4365e7b18dc39308facfe864e
(cherry picked from commit ff7778166b)
2015-05-13 12:26:04 -07:00
Tao Bao 2f7ae925a3 Merge "Add support for clobbered blocks" 2015-05-13 19:03:08 +00:00
Tao Bao ff7778166b Add support for clobbered blocks
In ext4 filesystems, some blocks might be changed even being mounted
R/O, such as the superblock (block 0). We need to exclude such blocks
from integrity verification. Plus such blocks should always be
written to the target by copying instead of patching.

Bug: http://b/20939131
Change-Id: I991169ec307dfb231b2fe8908a0668595ecb2060
2015-05-13 11:19:39 -07:00
Baligh Uddin 852a5b531c Add bootsigner path as an option
Change-Id: I3d804b7937aafea8274b06edab097a6dca8f04cd
(cherry picked from commit e204868f1f)
2015-05-13 10:07:47 -07:00
Tao Bao f3282b4a7f Wrap zipfile.write(), writestr() and close()
In order to work around the zip 2GiB limit, we need to wrap the related
functions in zipfile. Calls to those functions should always be replaced
with calls to the wrappers instead.

Bug: 18015246
Change-Id: I499574cee51ec4804bc10cbefe0b17940afed918
(cherry picked from commit 2ed665a033)
2015-05-08 15:53:27 -07:00
Tao Bao 2ed665a033 Wrap zipfile.write(), writestr() and close()
In order to work around the zip 2GiB limit, we need to wrap the related
functions in zipfile. Calls to those functions should always be replaced
with calls to the wrappers instead.

Bug: 18015246
Change-Id: Ice494371ca6654e88ded2ae0eb680f51082effcb
2015-05-08 13:51:12 -07:00
Mohamad Ayyash 95e74c1424 common.py: Add support for squashfs
Change-Id: Ia40f8c6307d0213d43207aee91c4c8a5b5ad6f1e
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-05-01 15:58:42 -07:00
Mohamad Ayyash a990534e73 common.py: Add support for squashfs
Change-Id: Ia40f8c6307d0213d43207aee91c4c8a5b5ad6f1e
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-05-01 15:39:43 -07:00
Sami Tolvanen 3edeb4e97b am 045d817c: am 497b74d5: am d21d1d27: am 00e1f003: Merge "Check partition hash before resorting to block_image_verify"
* commit '045d817cce8cb1feb0186b537306cabf1a5069cd':
  Check partition hash before resorting to block_image_verify
2015-04-25 10:01:53 +00:00
Sami Tolvanen 497b74d5a2 am d21d1d27: am 00e1f003: Merge "Check partition hash before resorting to block_image_verify"
* commit 'd21d1d273b83e701667beeabe0c76fd6888e15fc':
  Check partition hash before resorting to block_image_verify
2015-04-25 09:32:33 +00:00
Sami Tolvanen e09d096ed6 Check partition hash before resorting to block_image_verify
It's not necessary to call block_image_verify for the most common
case where we attempt an update for the first time and the target
partition has expected contents. It is sufficient to confirm that
the target partition is intact.

Computing a hash is much faster than simulating the update, which
means this change should make the update speed for v3 much closer
to v2 for the common case. If the update was interrupted, this is
going to make resuming somewhat slower, of course. Hopefully this
should be rather rare.

Bug: 20309033
Change-Id: I04792f3681bf2cd5d9a4e1c41eb883c7f26c6f58
2015-04-24 10:56:59 +00:00
Tao Bao 1699a90b21 am b93b9ec4: am d8c62ae5: am 347d8e66: am 7f47c133: Merge "Add support for full radio option"
* commit 'b93b9ec42d008a5478018d8055791e1d1449fa36':
  Add support for full radio option
2015-04-22 22:18:52 +00:00
Tao Bao d8c62ae577 am 347d8e66: am 7f47c133: Merge "Add support for full radio option"
* commit '347d8e66228ab09af1ec458632cb51c20a818e06':
  Add support for full radio option
2015-04-22 18:55:14 +00:00
Tao Bao 43078aa37a Add support for full radio option
Occasionally we need to include full radio image in incremental OTAs.
Adding --full_radio option to support that.

It needs matching changes in the releasetools.py in the target_files
zip, which comes from device/<vendor>/<device>/releasetools.py.

Bug: 19994922
Change-Id: Id1fb3a9cdb7e67dd9dbadd8fb6cd5fccd358820e
2015-04-21 16:54:52 -07:00
Sami Tolvanen 8f9f7c0672 am c4d303e9: am 7788547f: am 586b38cc: Merge "Calculate max_stashed_blocks correctly for block OTA v3"
* commit 'c4d303e958e1f3475fd1070bdb307b4f675f3bdd':
  Calculate max_stashed_blocks correctly for block OTA v3
2015-04-17 19:30:23 +00:00
Sami Tolvanen c4d303e958 am 7788547f: am 586b38cc: Merge "Calculate max_stashed_blocks correctly for block OTA v3"
* commit '7788547ff34d93b5196933eedb9f006fb1fe9f4d':
  Calculate max_stashed_blocks correctly for block OTA v3
2015-04-17 19:09:02 +00:00
Sami Tolvanen 29f529f33e Calculate max_stashed_blocks correctly for block OTA v3
The updater automatically stashes overlapping source blocks to
make it possible to resume if the command performing the update
is interrupted. However, blockimgdiff.py does not take this into
account and therefore, max_stashed_blocks indicates only the
number of explicitly stashed blocks. Change blockimgdiff.py to
correctly calculate the maximum used stash space, including any
automatically stashed blocks.

Bug: 20309033
Change-Id: Ibf5cb1abc38c54e60a6ad3ce4cbce43556b08ac2
2015-04-17 16:28:08 +01:00
Sami Tolvanen e18196095b Merge "Separate boot and recovery image signing from dm-verity" 2015-04-10 09:44:47 +00:00
Tao Bao 915e47aad5 am 948f67b0: am d0ca0549: am 8c76d1e0: Merge "Dump fingerprints into recovery log"
* commit '948f67b0e7b3863488fd4a12a6797311d4c30508':
  Dump fingerprints into recovery log
2015-04-10 04:35:11 +00:00
Tao Bao 948f67b0e7 am d0ca0549: am 8c76d1e0: Merge "Dump fingerprints into recovery log"
* commit 'd0ca05493bfe06cf166e4e215cd9bf38936fb344':
  Dump fingerprints into recovery log
2015-04-10 02:23:31 +00:00
Tao Bao 6c55a8adc8 Dump fingerprints into recovery log
No more guessing. We should have the info for OTA issues diagnosis.

Change-Id: I0ce919434444ab16a38cc7af818e64785509b0fb
2015-04-09 17:36:05 -07:00
Sami Tolvanen 8b3f08bc7b Separate boot and recovery image signing from dm-verity
Allow dm-verity to be enabled without boot and recovery images being
signed. This makes it possible to enable only dm-verity to detect
corruption without confusing bootloaders that do not understand signed
images.

Bug: 19985143
Change-Id: Ie52c6ff595faa7a5c1f1bc1b37f6899c4d0c7001
2015-04-08 12:30:16 +01:00
Mohamad Ayyash 31bca0bea9 am e71b5560: am 347195da: am 6ddc3600: Merge "build_image.py: Verity support for flashing non partition spanning fs"
* commit 'e71b55606e2d0820f4a743f6c0e6b524f2354919':
  build_image.py: Verity support for flashing non partition spanning fs
2015-04-02 18:57:32 +00:00
Mohamad Ayyash e71b55606e am 347195da: am 6ddc3600: Merge "build_image.py: Verity support for flashing non partition spanning fs"
* commit '347195da2ea801db95cf201fa7516bf392dc005a':
  build_image.py: Verity support for flashing non partition spanning fs
2015-04-02 18:37:05 +00:00
Mohamad Ayyash 6ddc360065 Merge "build_image.py: Verity support for flashing non partition spanning fs" 2015-04-02 18:18:21 +00:00
Tao Bao 521a8dbd18 am 93d46584: am ae26f5b0: am 53602955: Merge "Add support to sign bootable images with vboot_signer"
* commit '93d46584170a9aae1728cdb9010eef41e25b4d4a':
  Add support to sign bootable images with vboot_signer
2015-04-01 17:33:36 +00:00
Tao Bao 93d4658417 am ae26f5b0: am 53602955: Merge "Add support to sign bootable images with vboot_signer"
* commit 'ae26f5b002de956d495c4019b365040490ff18dd':
  Add support to sign bootable images with vboot_signer
2015-04-01 17:15:29 +00:00
Tao Bao d95e9fd267 Add support to sign bootable images with vboot_signer
Add vboot properties to the dictionary file, which will be packed into
the target_files zip. Add support in packaging and OTA scripts to
sign the generated bootable images (boot.img and recovery.img) when
vboot is enabled.

Change-Id: I08758ced03d173219415bca762bbdb66c464a9f5
(cherry picked from commit 5d5a3bd9e8d8b14b71d1b2105417a2958d13d3d2)
2015-04-01 09:23:08 -07:00
Mohamad Ayyash dd063528ed build_image.py: Verity support for flashing non partition spanning fs
Change-Id: Ic5f7b256ed9a31e99ebaebdf8a8a19ba9adcced3
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-04-01 00:50:39 +00:00
Dan Albert 3d4466f3d6 am 146366bf: am b6339d74: am f1a8c8c5: Merge "Fix up a few callers of GetTypeAndDevice."
* commit '146366bfb28e6f7c7b785188325fab40c4db000a':
  Fix up a few callers of GetTypeAndDevice.
2015-03-28 02:38:22 +00:00
Dan Albert 146366bfb2 am b6339d74: am f1a8c8c5: Merge "Fix up a few callers of GetTypeAndDevice."
* commit 'b6339d74fe575aa9e824ebb593c3064555a7af28':
  Fix up a few callers of GetTypeAndDevice.
2015-03-28 02:24:39 +00:00
Dan Albert ebb19aa01a Fix up a few callers of GetTypeAndDevice.
Change-Id: I8f2d8d28b60715f917e9aceb8f851ad652034aa7
2015-03-27 19:11:53 -07:00
Dan Albert f9aa358b4b am ee8323b6: Fix bad merge.
* commit 'ee8323b6297c9e0e27524805c53d0eb3b271bc93':
  Fix bad merge.
2015-03-28 00:02:13 +00:00
Dan Albert ee8323b629 Fix bad merge.
Change-Id: Ifdb2a2999fe13f770c239f47330e8c2c44fdfdbe
2015-03-27 23:50:31 +00:00
Dan Albert cd9ecc0258 resolved conflicts for merge of eecf00db to master
Change-Id: I7f268122c10152aff8ef59622edbba88db427fca
2015-03-27 16:37:23 -07:00
Dan Albert eecf00db59 resolved conflicts for merge of 4c32aa3d to lmp-mr1-dev-plus-aosp
Change-Id: I32a06c88416e68ce628f642e0d025d1df5e227d7
2015-03-27 14:37:14 -07:00
Dan Albert 99e22a57d0 Merge "Make releasetools pylint clean." 2015-03-27 18:40:02 +00:00
Baligh Uddin 6c0618976c Merge "Add bootsigner path as an option" 2015-03-26 23:03:13 +00:00
Ying Wang 52ea2066a1 am abc748c1: am 6ff1b035: Merge "Support to build image of root file system with /system and ramdisk combined."
* commit 'abc748c11cbba71a99f306d318c74b5336b28730':
  Support to build image of root file system with /system and ramdisk combined.
2015-03-26 17:57:22 +00:00
Ying Wang a2292c94d1 Support to build image of root file system with /system and ramdisk combined.
Added support to build system.img that combines contents of /system and
the ramdisk, and can be mounted at the root of the file system.
To enable this feature, define BoardConfig.mk variable:
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

Ideally we would just change TARGET_OUT (the path of the staging system
directory) to under TARGET_ROOT_OUT. But at this point many places in
the build system assume TARGET_OUT is independent of TARGET_ROOT_OUT and
we can't make it easily configurable.
Instead this implementation takes the least intrusive approach:
We don't change TARGET_OUT or TARGET_ROOT_OUT. We just assemble a
temporary staging directory that contains contents of both TARGET_OUT
and TARGET_ROOT_OUT, in build_image.BuildImage() of
tools/releasetools/build_image.py.
When build_image.py is directly called from the makefile, we pass in the
parameters from the global dictionary; when build_image.BuildImage() is
called from add_img_to_target_files.py, we need to override values to
point to files extracted from the target_files zip file.
We need to combine the fs_config files of both /system and ramdisk,
when fs_config is enabled.

Also this change refactored build_image.BuildImage() by moving the extra
parameters to the image property dictionary.

(cherry-picked from commit 0eabd4f2c5)

Bug:19868522
Change-Id: Iafc467a0e3427b0d6ad3b575abcc98ddcc9ea0f1
2015-03-26 10:35:00 -07:00
Ying Wang 0eabd4f2c5 Support to build image of root file system with /system and ramdisk combined.
Added support to build system.img that combines contents of /system and
the ramdisk, and can be mounted at the root of the file system.
To enable this feature, define BoardConfig.mk variable:
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

Ideally we would just change TARGET_OUT (the path of the staging system
directory) to under TARGET_ROOT_OUT. But at this point many places in
the build system assume TARGET_OUT is independent of TARGET_ROOT_OUT and
we can't make it easily configurable.
Instead this implementation takes the least intrusive approach:
We don't change TARGET_OUT or TARGET_ROOT_OUT. We just assemble a
temporary staging directory that contains contents of both TARGET_OUT
and TARGET_ROOT_OUT, in build_image.BuildImage() of
tools/releasetools/build_image.py.
When build_image.py is directly called from the makefile, we pass in the
parameters from the global dictionary; when build_image.BuildImage() is
called from add_img_to_target_files.py, we need to override values to
point to files extracted from the target_files zip file.
We need to combine the fs_config files of both /system and ramdisk,
when fs_config is enabled.

Also this change refactored build_image.BuildImage() by moving the extra
parameters to the image property dictionary.

Bug:19868522
Change-Id: Iafc467a0e3427b0d6ad3b575abcc98ddcc9ea0f1
2015-03-24 21:07:42 -07:00
Dan Albert 8b72aefb5a Make releasetools pylint clean.
This caught a few bugs/syntax errors (a few character classes were not
escaped properly in regex patterns, some indentation was illegal,
etc).

Change-Id: I50637607524e68c4fb9cad7167f58a46b8d26b2c
2015-03-24 11:05:16 -07:00
Dan Albert 30b5e49796 am 220a0332: am c47f47b7: am 5d60719e: Merge "Run ZipFile.testzip() during zipfile tests."
* commit '220a0332d318d0dcf7d3611c78084e066ada8e54':
  Run ZipFile.testzip() during zipfile tests.
2015-03-24 03:25:31 +00:00
Tao Bao b5f5bd6e1b am 3e88a16b: am 2d139fcf: am 0488079d: Merge "Fix the computation of basefilename"
* commit '3e88a16b0e5eb0896d52b5c4e3488527d9a95f26':
  Fix the computation of basefilename
2015-03-24 03:25:24 +00:00
Greg Hackmann 6f2e506b31 am 3b88235d: am 9f201b18: am 088521ef: Merge "Allow system images larger than 2GiB, pt. 2"
* commit '3b88235d04156d8a0346d74b5d3a9575c3b02121':
  Allow system images larger than 2GiB, pt. 2
2015-03-24 02:59:31 +00:00
Tao Bao 228d947832 am 45aece22: am 62eed4d8: am b5901670: Merge "Fix the syntax error in the edify script generator"
* commit '45aece22330ec2621f2a72ef16675cfe128ae56b':
  Fix the syntax error in the edify script generator
2015-03-24 01:30:59 +00:00
Dan Albert 220a0332d3 am c47f47b7: am 5d60719e: Merge "Run ZipFile.testzip() during zipfile tests."
* commit 'c47f47b74f6ed6daa83e3f4357cf315a4b617f6e':
  Run ZipFile.testzip() during zipfile tests.
2015-03-24 00:18:47 +00:00
Dan Albert 5d60719e42 Merge "Run ZipFile.testzip() during zipfile tests." 2015-03-24 00:07:02 +00:00
Tao Bao 3e88a16b0e am 2d139fcf: am 0488079d: Merge "Fix the computation of basefilename"
* commit '2d139fcf2916ad6d0008cf32a2fc1c2899eda3ff':
  Fix the computation of basefilename
2015-03-23 23:58:49 +00:00
Dan Albert d6d1beb88c Run ZipFile.testzip() during zipfile tests.
This still doesn't catch the issue that [1] fixes, but it's probably a
good idea anyway.

[1]: https://android-review.googlesource.com/#/c/143469/

Change-Id: Iaa607ec7450d605b26114bd81ea41a14c6613c0e
2015-03-23 16:54:39 -07:00
Tao Bao eaf885b1d0 Fix the computation of basefilename
Change-Id: I156b182414ef5b33611955cbc019e208c771013a
2015-03-23 16:05:26 -07:00
Greg Hackmann 3b88235d04 am 9f201b18: am 088521ef: Merge "Allow system images larger than 2GiB, pt. 2"
* commit '9f201b18be8a4cecd27d7b5635c0892fbb00c591':
  Allow system images larger than 2GiB, pt. 2
2015-03-23 22:03:08 +00:00
Greg Hackmann 6701db8145 Allow system images larger than 2GiB, pt. 2
We need to patch zipfile during close() too, because it refers to the
ZIP64 file size threshold when writing out the central directory

Bug: 18015246
Bug: 19888174

Change-Id: I1b49d653d0831fcc2106808f86c929d7a2b22ff3
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-03-23 14:35:50 -07:00
Tao Bao 45aece2233 am 62eed4d8: am b5901670: Merge "Fix the syntax error in the edify script generator"
* commit '62eed4d8a9eb71181965e38dacabd13cee091da2':
  Fix the syntax error in the edify script generator
2015-03-23 03:43:30 +00:00
Tao Bao 3910ebf468 Fix the syntax error in the edify script generator
file_getprop() always expects two arguments.

Bug: 19881931
Change-Id: Icf5577ad34188991c03f68c1217642d3adc4201c
2015-03-22 14:20:48 -07:00
Tao Bao b71d609061 am 928b851c: am ae978751: am 261e195d: Merge "Make the generated OTAs repeatable"
* commit '928b851ca178733ba61eef72a1b7e004f9a111e7':
  Make the generated OTAs repeatable
2015-03-20 03:33:21 +00:00
Tao Bao 928b851ca1 am ae978751: am 261e195d: Merge "Make the generated OTAs repeatable"
* commit 'ae9787514d5709dff766f4791c00a4875eebbf50':
  Make the generated OTAs repeatable
2015-03-20 03:27:55 +00:00
Tao Bao b8c8717191 Make the generated OTAs repeatable
The generated OTAs are supposed to be repeatable. The use of dict in
blockimgdiff.py breaks the assumption for block-based OTAs. Fixed by
using OrderedDict instead.

Change-Id: I945bdc879912ba174ca330c152b1f8fc7ed211ac
2015-03-19 19:42:12 -07:00
Tao Bao 04ecdda5d0 am 48fe5b7c: am fc267120: am b7e5ab6f: Merge "Allow system images larger than 2GiB."
* commit '48fe5b7cadca3c945e81182411e9537cb11d81d3':
  Allow system images larger than 2GiB.
2015-03-19 21:30:20 +00:00
Tao Bao 48fe5b7cad am fc267120: am b7e5ab6f: Merge "Allow system images larger than 2GiB."
* commit 'fc2671201caeac485440c2aa146f35a99002bca2':
  Allow system images larger than 2GiB.
2015-03-19 21:24:59 +00:00
Dan Albert 8e0178d41b Allow system images larger than 2GiB.
Python 2.7's zipfile implementation wrongly thinks that zip64 is
required for files larger than 2GiB. We can work around this by
adjusting their limit. Note that `zipfile.writestr()` will not work
for strings larger than 2GiB. The Python interpreter sometimes rejects
strings that large (though it isn't clear to me exactly what
circumstances cause this). `zipfile.write()` must be used directly to
work around this.

This mess can be avoided if we port to python3.

The bug (b/19364241) in original commit has been fixed.

Bug: 18015246
Bug: 19364241
Bug: 19839468

(cherry picked from commit cd082d4bfe)

Change-Id: I7b5cc310e0a9ba894533b53cb998afd5ce96d8c6
2015-03-19 13:59:01 -07:00
Tao Bao 2c92413e72 Restrict the verification in block-based incremental OTAs
BlockImageDiff has three versions. Only the incremental OTAs generated
with the latest version (3) can be re-applied to the system that's
already on the target build. Otherwise, operations like move will make
unconditional changes and damage the system. During the verification
phase, abort the OTA update if BlockImageDiff is less than 3 and it
doesn't match the checksum of the source build.

Change-Id: Iaf834a2d99dfea0bb423a4a2aa09e8906424482d
(cherry picked from commit daebaa6ed3)
2015-03-18 16:13:10 -07:00
Tao Bao aecbda7f26 resolved conflicts for merge of 22311914 to master
Change-Id: I8684191fa3efea0ed546bbad076f8760a13c5c81
2015-03-14 00:26:06 -07:00
Tao Bao 2231191482 resolved conflicts for merge of 6502ae93 to lmp-mr1-dev-plus-aosp
Change-Id: I3ffed7f5a32363d5a4481eebddff8feff3c4ebee
2015-03-13 22:40:38 -07:00
Tao Bao dd2a5892e5 Restrict the verification in block-based incremental OTAs
BlockImageDiff has three versions. Only the incremental OTAs generated
with the latest version (3) can be re-applied to the system that's
already on the target build. Otherwise, operations like move will make
unconditional changes and damage the system. During the verification
phase, abort the OTA update if BlockImageDiff is less than 3 and it
doesn't match the checksum of the source build.

Change-Id: Ic630346eab2a993a84d0aeaacd7167ef62cc24f6
(cherry picked from commit daebaa6ed3)
2015-03-13 17:57:15 -07:00
Ying Wang d4ca3b38d9 am 4cbc4b39: am ae61f50a: Support to configure and build multiple custom images.
* commit '4cbc4b392da57c34626af38a4ea0fe4dc115af57':
  Support to configure and build multiple custom images.
2015-03-14 00:31:44 +00:00
Ying Wang ae61f50a68 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
(cherry picked from commit 5fcf1094f9)
2015-03-14 00:06:54 +00:00
Ying Wang 5fcf1094f9 Support to configure and build multiple custom images.
Build additional images requested by the product makefile.
This script gives the ability to build multiple additional images and
you can configure what modules/files to include in each image.
1. Define PRODUCT_CUSTOM_IMAGE_MAKEFILES in your product makefile.
   PRODUCT_CUSTOM_IMAGE_MAKEFILES is a list of makefiles.
   Each makefile configures an image.
   For image configuration makefile foo/bar/xyz.mk, the built image
   file name
   will be xyz.img. So make sure they won't conflict.
2. In each image's configuration makefile, you can define variables:
  - CUSTOM_IMAGE_MOUNT_POINT, the mount point, such as "oem", "odm"
    etc.
  - CUSTOM_IMAGE_PARTITION_SIZE
  - CUSTOM_IMAGE_FILE_SYSTEM_TYPE
  - CUSTOM_IMAGE_DICT_FILE, a text file defining a dictionary
    accepted by BuildImage() in tools/releasetools/build_image.py.
  - CUSTOM_IMAGE_MODULES, a list of module names you want to include
    in the image; Not only the module itself will be installed to proper
    path in the image, you can also piggyback additional files/directories
    with the module's LOCAL_PICKUP_FILES.
  - CUSTOM_IMAGE_COPY_FILES, a list of "<src>:<dest>" to be copied to
    the image. <dest> is relativ to the root of the image.

To build all those images, run "make custom_images".

Bug: 19609718
Change-Id: Ic73587e08503a251be27797c7b00329716051927
2015-03-13 16:48:02 -07:00
Michael Runge 910b005f18 Do not use block_verify on target-files where feature is missing.
This will only be used when the block file format is at least
version 3.  For V1/V2 (L, L MR1) block versions, fall back to
the old range_sha1 check.

Bug: 19357591
Change-Id: I7cb178b70d48ec3c98cdb88ed1c94cf7797a01d0
(cherry picked from commit cad78c12fb)
2015-03-13 11:36:14 -07:00
Sami Tolvanen a76e9b7bd8 am edb88c94: Merge "Fix the error that free_string is not defined."
* commit 'edb88c94fb628a66fdf4e3d1eda844e6bb0b9bf3':
  Fix the error that free_string is not defined.
2015-03-13 11:23:17 +00:00
Tao Bao 3de365bb2f am ae524f60: am daebaa6e: Restrict the verification in block-based incremental OTAs
* commit 'ae524f60bce085971480f27a6b75db13ad970c11':
  Restrict the verification in block-based incremental OTAs
2015-03-12 23:08:54 +00:00
Tao Bao daebaa6ed3 Restrict the verification in block-based incremental OTAs
BlockImageDiff has three versions. Only the incremental OTAs generated
with the latest version (3) can be re-applied to the system that's
already on the target build. Otherwise, operations like move will make
unconditional changes and damage the system. During the verification
phase, abort the OTA update if BlockImageDiff is less than 3 and it
doesn't match the checksum of the source build.

Change-Id: I3a776495b69e1d174fcb01b10e40c0e912914fd8
2015-03-12 13:47:04 -07:00
Jesse Zhao 7b985f6aed Fix the error that free_string is not defined.
Change-Id: I7490a91ea930daaf194dad0c8b3a3357558b4770
Bug:19573713
(cherry picked from commit 7ca20d1a1c)
2015-03-11 17:22:43 +00:00
Sami Tolvanen dd67a295cc Change transfer list format to include block hashes
Add source and target block hashes as parameters to transfer list
commands that copy or patch data to a partition. This allows the
updater to verify the status of each command in the transfer list
and makes resuming block based OTAs possible. Due to the changes,
update the transfer list version to 3.

Needs matching changes from
  I1e752464134aeb2d396946348e6041acabe13942

Bug: 18262110
Change-Id: Ia5c56379f570047f10f0aa7373a1025439495c98
(cherry picked from commit cac671a9d1)
2015-03-11 17:22:06 +00:00
Mohamad Ayyash 9b19382f0e resolved conflicts for merge of fc759204 to stage-aosp-master
Change-Id: Icf58e881286a66cb3ca4cb122fa8c11ec217fbab
2015-03-04 15:43:45 -08:00
Mohamad Ayyash b97746ef09 Allow flashing a squashfs system image
Change-Id: Ic51d11274784a8d2e9d57d5f0b821ebc89680e5a
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-03-03 18:54:50 -08:00
Mohamad Ayyash 73f17f0f76 Merge "Allow flashing a squashfs system image" 2015-03-04 00:42:12 +00:00
Mohamad Ayyash 6894695819 Allow flashing a squashfs system image
Change-Id: Ic51d11274784a8d2e9d57d5f0b821ebc89680e5a
Signed-off-by: Mohamad Ayyash <mkayyash@google.com>
2015-03-03 15:14:37 -08:00
Jesse Zhao 7ca20d1a1c Fix the error that free_string is not defined.
Change-Id: I7490a91ea930daaf194dad0c8b3a3357558b4770
Bug:19573713
2015-03-02 17:21:38 -08:00
Justin Harrison d2d9747199 am b89ec381: am 070eea05: am ffd4fee9: Merge "Revert "Allow system images larger than 2GiB."" into lmp-mr1-dev
* commit 'b89ec38113a22d09b0832ed2d3cb8fc413a14a75':
  Revert "Allow system images larger than 2GiB."
2015-02-13 20:44:23 +00:00
Justin Harrison b89ec38113 am 070eea05: am ffd4fee9: Merge "Revert "Allow system images larger than 2GiB."" into lmp-mr1-dev
* commit '070eea05f2f2d47aa873fd1e79160eb8529a0eb8':
  Revert "Allow system images larger than 2GiB."
2015-02-13 20:37:10 +00:00
Justin Harrison ffd4fee911 Merge "Revert "Allow system images larger than 2GiB."" into lmp-mr1-dev 2015-02-13 18:48:17 +00:00
Justin Harrison 2de68bbbf4 Revert "Allow system images larger than 2GiB."
This reverts commit cd082d4bfe.

Change-Id: Ie63e1ba70d907d2849164871bc7ec71c245f7af9
2015-02-13 18:47:51 +00:00
Michael Runge cad78c12fb Do not use block_verify on target-files where feature is missing.
This will only be used when the block file format is at least
version 3.  For V1/V2 (L, L MR1) block versions, fall back to
the old range_sha1 check.

Bug: 19357591
Change-Id: I7cb178b70d48ec3c98cdb88ed1c94cf7797a01d0
2015-02-11 19:28:08 -08:00
Baligh Uddin e204868f1f Add bootsigner path as an option
Change-Id: I71e8cb96b7a33cc02897fc24f6f3f61c7608bfe3
2015-02-11 15:43:02 +00:00
Jesse Zhao 4ec52a93d8 am 234d122e: am c6af9b8f: am 28b2b00a: Merge "Update vendor fingerprint." into lmp-mr1-dev
* commit '234d122ea62a43aa3a1d6cfbf11a75e5dbe3f8e0':
  Update vendor fingerprint.
2015-02-09 04:14:09 +00:00
Dan Albert 39a68ab310 am f8f91c94: am 3907eaf8: am cd082d4b: Allow system images larger than 2GiB.
* commit 'f8f91c94706a953f91bf75e919b4302db6a9a99f':
  Allow system images larger than 2GiB.
2015-02-09 04:14:08 +00:00
Jesse Zhao 234d122ea6 am c6af9b8f: am 28b2b00a: Merge "Update vendor fingerprint." into lmp-mr1-dev
* commit 'c6af9b8f4a09cc4208ad119218f57022d6fead5b':
  Update vendor fingerprint.
2015-02-07 00:06:13 +00:00
Dan Albert f8f91c9470 am 3907eaf8: am cd082d4b: Allow system images larger than 2GiB.
* commit '3907eaf8b7c6f7209c4cb11a6b8b66a34f292151':
  Allow system images larger than 2GiB.
2015-02-07 00:06:10 +00:00
Jesse Zhao 28b2b00adb Merge "Update vendor fingerprint." into lmp-mr1-dev 2015-02-06 22:21:06 +00:00
Dan Albert cd082d4bfe Allow system images larger than 2GiB.
Python 2.7's zipfile implementation wrongly thinks that zip64 is
required for files larger than 2GiB. We can work around this by
adjusting their limit. Note that `zipfile.writestr()` will not work
for strings larger than 2GiB. The Python interpreter sometimes rejects
strings that large (though it isn't clear to me exactly what
circumstances cause this). `zipfile.write()` must be used directly to
work around this.

This mess can be avoided if we port to python3.

Bug: 18015246
Change-Id: I8a476d99c5efdef6ea408373b706e9fbd3a798be
2015-02-06 13:24:06 -08:00
Jesse Zhao 2625d27151 Update vendor fingerprint.
Change-Id: I5d4abdff8b7b13e01271440f4d4f2ffe1b015b71
Bug: 19257598
2015-02-06 09:50:06 -08:00
Sami Tolvanen cac671a9d1 Change transfer list format to include block hashes
Add source and target block hashes as parameters to transfer list
commands that copy or patch data to a partition. This allows the
updater to verify the status of each command in the transfer list
and makes resuming block based OTAs possible. Due to the changes,
update the transfer list version to 3.

Needs matching changes from
  I1e752464134aeb2d396946348e6041acabe13942

Bug: 18262110
Change-Id: Ia5c56379f570047f10f0aa7373a1025439495c98
2015-01-30 11:34:27 +00:00
Jesse Zhao 5827eec013 am fbc8c145: am 0c9384d5: Merge "verify system and vendor image together before patching." into lmp-mr1-dev
* commit 'fbc8c1454e8f2167635398078bb53033dc90f15d':
  verify system and vendor image together before patching.
2015-01-28 23:42:18 +00:00
Jesse Zhao 75bcea0267 verify system and vendor image together before patching.
Change-Id: Ia43657ed6cd8860b0edb78cc2dd6388c761e1f8b
Bug: 17919909
2015-01-07 21:44:09 +00:00
David Turner 7a864af1b7 am aa112716: Merge "build_image: Set file system labels on disk images"
* commit 'aa112716067167d58d1db37aaf8adc49b83b59a1':
  build_image: Set file system labels on disk images
2015-01-07 20:28:17 +00:00
Christoffer Dall 8ed01f3816 build_image: Set file system labels on disk images
When building images set the mount point (data,cache,system) as the
filesystem label on the generated image.  This is required for the
Android Emulator.

IMPORTANT: This depends on the following patch to system/extras/:

    https://android-review.googlesource.com/#/c/120047/

which has already been submitted to AOSP and merged into the
internal tree.

Change-Id: Iaeb45462570c26d37980f1cc5d8a1b929e476c89
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2015-01-05 17:49:37 +01:00
Michael Runge 2b800123c4 am 34a1bdeb: am ea1dc699: Merge "Rewrite ro.vendor.build.fingerprint/thumbprint on signing" into lmp-mr1-dev
* commit '34a1bdeb333ab15ddc3840ac3e5d1e8c3245d44a':
  Rewrite ro.vendor.build.fingerprint/thumbprint on signing
2014-12-15 22:46:33 +00:00
Michael Runge e07c75a86b Rewrite ro.vendor.build.fingerprint/thumbprint on signing
This should also indicate release-keys.

Bug: 18281807

Change-Id: I8d2568ca346625b91384f7e639d9c92e97587755
2014-12-09 13:54:52 -08:00
Michael Runge 3deca9e5df am f3761585: am 60f56e7d: am 996d8f48: Merge "Add support for tuning partitions" into lmp-sprout-dev
* commit 'f37615859e369c774841eafdb225a5f02259e1ee':
  Add support for tuning partitions
2014-11-24 18:06:36 +00:00
Michael Runge 60f56e7d15 am 996d8f48: Merge "Add support for tuning partitions" into lmp-sprout-dev
* commit '996d8f48a1b3e6e3a63344633546ff294cc67071':
  Add support for tuning partitions
2014-11-24 02:37:02 +00:00
Michael Runge 3e286645ba Add support for tuning partitions
Allow a simple mechanism to call tune2fs to modify an existing
partition without reformatting.

Bug: 18430740
Change-Id: I9210355b6bfec74d002d1f40b930330740f379a5
2014-11-21 00:46:03 -08:00
Ying Wang e91b83d5e6 Support journal size board config variables.
A device can set up BOARD_SYSTEMIMAGE_JOURNAL_SIZE (number of journal blocks)
in its BoardConfig.mk.
To disable journaling, set "BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0".

BOARD_VENDORIMAGE_JOURNAL_SIZE and BOARD_OEMIMAGE_JOURNAL_SIZE work in
similar way.

Bug: 18430740

(cherry picked from commit f3b86357e2)

Change-Id: Icc6c7e1b3be25b8e21b6a737492d944428e4a35a
2014-11-19 13:48:30 -08:00
Ying Wang f1021dcb61 am 6ead56be: am f3b86357: Support journal size board config variables.
* commit '6ead56bed56e3927575726bdebf8511e44f6fb47':
  Support journal size board config variables.
2014-11-19 19:28:23 +00:00
Ying Wang f3b86357e2 Support journal size board config variables.
A device can set up BOARD_SYSTEMIMAGE_JOURNAL_SIZE (number of journal blocks)
in its BoardConfig.mk.
To disable journaling, set "BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0".

BOARD_VENDORIMAGE_JOURNAL_SIZE and BOARD_OEMIMAGE_JOURNAL_SIZE work in
similar way.

Bug: 18430740
Change-Id: I0594814fe19ffc54dff41ec2464e2e3a802b9419
2014-11-18 18:19:43 -08:00
Ying Wang 8cbb0eac18 am 5520d930: Merge "sign_target_files_apks: fix recovery patch generation"
* commit '5520d930c8e78a3bea4eeba9d0430d1c3f19dba8':
  sign_target_files_apks: fix recovery patch generation
2014-11-14 19:01:35 +00:00
Michael Runge 100a9f0720 am 11d21015: am f178d364: Merge "Allow images to be readded to target-files" into lmp-dev
* commit '11d210154d71a229e20eaebd6f9ea580b0c7f036':
  Allow images to be readded to target-files
2014-11-14 07:19:58 +00:00
Michael Runge 2e0d8fcf08 Allow images to be readded to target-files
There may be cases where various partitions were
modified (such as extra signing of boot/recovery)
which require the system partition to be regenerated
with a new recovery patch script.  Allow a request
for the recovery patch to be rebuilt, and for
missing images to be readded to the existing images.

Change-Id: Ie93c5bc1161a0d5002002dca23e07742ce2ba468
2014-11-13 22:55:35 -08:00