History log of /build/tools/releasetools/edify_generator.py
Revision Date Author Comments
e8269481084df086a04c6bdcd3477d4209d4a7cb 29-Oct-2014 Michael Runge <mrunge@google.com> Add post-install verification phase

Verify the SHA sum of all patched and extracted files after
a file system remount.

Bug: 18145574

Change-Id: I2f053d085543e10e39153a774542d37ee0a238bd
65f3282099a16e266bc61e0ed3016e15f6bd8959 23-Oct-2014 Michael Runge <mrunge@google.com> Allow info_dict from target_files to specify mount options

This will allow safer mount options to be added per mount FS
type, to better ensure data is written during an OTA.
Bug: 18079773, 18092222

Change-Id: I1e3e4fd4639c6fd263e550b770cc3c858ef1e03b
fc44a515d46e6f4d5eaa0d32659b1cf3b9492305 26-Aug-2014 Doug Zongker <dougz@google.com> new block OTA system tools

Replace the xdelta/xz-based block OTA generation with a new system
based on the existing bsdiff/imgdiff tools.

Bug: 16984795
Change-Id: Ia9732516ffdfc12be86260b2cc4b1dd2d210e886
c8b4e849f10f3a382694b00453b3f49608c83b48 17-Jun-2014 Doug Zongker <dougz@google.com> full support for OTA of vendor partitions

Make vendor partition a first-class member of the OTA system (for
target_files that contain a VENDOR/ subdirectory).

Build vendor images in a way that is compatible with block-based OTA.
Support updating the vendor partition in both full and incremental,
block and file OTAs. In most cases this is handled by refactoring the
existing code to handle the system partition to handle either, and
then calling it twice.

Currently we don't support incremental OTAs from a target-files
without a VENDOR subdirectory to one with one, or vice versa. To add
or remove a vendor partition a full OTA will need to be done.

Bug: 15544685
Change-Id: I9cb9a1267060bd9683a9bea19b43a26b5a43800d
4f12fceead59e9e66bf49ad04075edddddc4cdc6 09-May-2014 Michael Runge <mrunge@google.com> Add missing quotation mark in assertion

Change-Id: I3e76997fe257bfccb7d61dcc1273e014cdb55a41
af845256f17c4e26345de5141c31ecd80076592c 09-May-2014 Doug Zongker <dougz@android.com> assert recovery finger/thumbprints, not system

Block OTAs don't have the system partition mounted and so can't use
file_getprop on the system partition. Make assertions look at the
recovery system finger/thumbprints, which should be the same as the
ones on the system partition (even for sprout devices).

Change-Id: Ie5d329d13beab4b428e37f75da9b9e1b8ceb35bc
6e836116f764cf5cebf1654df2f17d8222554f6e 16-Apr-2014 Michael Runge <mrunge@google.com> Add support for verifying OEM properties.

A separate OEM file must be specified to provide the expected
values for these properties. The list of properties comes from
the "oem_fingerprint_properties" list in misc_info.txt

Bug: b/13367676

Change-Id: I1a3eaf108492132cf6f595a5d1c9f7e0c3cb3142
5fad2039bbd4e55d671106c8b39a6e451b85ac23 24-Feb-2014 Doug Zongker <dougz@android.com> handle don't care regions in the system image

The system partitions has regions that we shouldn't write and can't
depend on the contents of. Adds a new script to generate a map of
these regions (using the sparse image as input), and include the map
in the package zip so it can be used when writing or patching the
system partition.

Also fixes a bug where the wrong SELinux file contexts are used when
generating incrementals.

Change-Id: Iaca5b967a3b7d1df843c7c21becc19b3f1633dad
25568486e5777f416d2fcb6cc7aa96caafc66880 03-Mar-2014 Doug Zongker <dougz@android.com> add option to specify updater binary, for development

Change-Id: I5f239afff70c87fb16ddc4b8abefa7bbcda6040d
36bd365625e6beba77698a93795a603180a5b476 07-Feb-2014 Geremy Condra <gcondra@google.com> Add support for block incremental OTAs

Change-Id: Ie72015e34ed8d7595a5c74c8df41cba73275afab
4038aa8fff8c68733bff8b55d8c8d1b59713ca37 14-Dec-2013 Michael Runge <mrunge@google.com> Enabled incrementals to patch + rename moved files

Change-Id: I551fc5291847e3ace15361c203d86f566c26da97
90c60d3b922924cf65d26b478d8baef142a25023 22-Nov-2013 Michael Runge <mrunge@google.com> Revert "Enable incremental builder to find files that moved, and try to process them via patch + rename, instead of delete + add."

This reverts commit 37335b42385970d957d48056145a3d4c4dbc6087.

Change-Id: I61cc125d3b08eaa300a7774b6607dbb43f0e7148
37335b42385970d957d48056145a3d4c4dbc6087 07-Nov-2013 Michael Runge <mrunge@google.com> Enable incremental builder to find files that moved, and
try to process them via patch + rename, instead of
delete + add.

b/11437930

Change-Id: Ie70632a2fa0a13d4bb259f61c620bb01812494e5
0eb17d944704b3eb140bb9dded299d3be3aed77e 08-Sep-2013 Nick Kralevich <nnk@google.com> Update OTA to understand SELinux labels and capabilities

Update the OTA generation script to understand SELinux file
labels and file capabilities.

Make fs_config aware of SELinux labels and file capabilities, and
optionally output those elements whenever we output the
UID / GID / file perms. The information is emitted as a key=value pair
to allow for future extensibility.

Pass the SELinux file label and capabilities to the newly created
set_metadata() and set_metadata_recursive() calls. When the OTA
script fixes up filesystem permissions, it will also fix up the SELinux
labels and file capabilities.

If no SELinux label and capabilities are available for the file, use
the old set_perm and set_perm_recursive calls.

Bug: 8985290
Bug: 10183961
Bug: 10186213
Change-Id: I4fcfb2c234dbfb965cee9e62f060092a4274d22d
850de1995cf026a4c9a8809303ddba5fe4cd3e13 22-Jul-2013 Michael Runge <mrunge@google.com> Revert "Update OTA to understand SELinux filesystem labels"

This reverts commit fbbd79530adc6ddd6bbfb3c5fc60ba5ec0ce5f2d.

All incremental auto OTAs broken b/9964074

Change-Id: I500d2ac194804abd20a0e01d9862fd42e8f5d2de
fb9bb205fcda6544cf5ec5d84cc1e5935ae96935 22-Jul-2013 Michael Runge <mrunge@google.com> Revert "Update OTA to understand SELinux filesystem labels"

This reverts commit fbbd79530adc6ddd6bbfb3c5fc60ba5ec0ce5f2d.

All incremental auto OTAs broken b/9964074

Change-Id: I500d2ac194804abd20a0e01d9862fd42e8f5d2de
fbbd79530adc6ddd6bbfb3c5fc60ba5ec0ce5f2d 18-Jul-2013 Nick Kralevich <nnk@google.com> Update OTA to understand SELinux filesystem labels

Make fs_config aware of SELinux contexts, and output the context
whenever we output the UID / GID / file perms.

Pass the selinux context to the set_perm2() and set_perm2_recursive()
calls. When the OTA script fixes up filesystem permissions, it will
also fix up the SELinux context on the files.

Bug: 8985290
Change-Id: I6419b64c06309a93ac6b2f2cf9fc7f8815adeaf3
0d92f1f13ad89bf8ffbb75764bbe83452612792a 03-Jun-2013 Doug Zongker <dougz@android.com> improve OTA failure messages

Replace OTA script constructs of the form:

assert(foo);

with

foo || abort("sensible message");

so that the log and the on-screen display is somewhat more accessible
to non-experts. (assert() displays the source code of the false
expression 'foo'.)

Change-Id: Ic99448e4466561d305b167cd4d5c1f0f2dbadcce
df2056e29e557a493ec8057628ca640b98e54823 09-Apr-2012 Doug Zongker <dougz@android.com> fix broken OTAs; format() is called with wrong # of args

Change-Id: Id95d345158b36f149c12342d6cd1f03f2875b110
56882bf9b41dc7f8b98f1dea82633144546450b2 09-Feb-2012 Stephen Smalley <sds@tycho.nsa.gov> Support the setting of file security contexts in OTA and update packages.

Pass the file_contexts configuration to the releasetools scripts
so that the security contexts of files can be properly set for OTA
and update packages.

Requires Ica5fb73d6f2ffb981b74d1896538988dbc4d9b24

Change-Id: I5a63fd61a7e74d386d0803946d06bcf2fa8a857e
1807e700a568d57901b835370d1b1ae05c3dbb0f 28-Feb-2012 Doug Zongker <dougz@android.com> don't generate retouch commands in OTA scripts

Doing ASLR at OTA time is now obsolete; we can stop emitting this code
in OTA scripts.

Change-Id: I2bcf8ef0697ea5590120f89dcd302f273daf531e
02da210a5cb4f9cdc7320885484499856236e5a4 13-Apr-2011 Doug Zongker <dougz@android.com> pass blobs to write_raw_image() instead of using temp file

Change-Id: I73b71541596612552d52a8f7b1ccdd74451ac6fc
a73b6561cee39ad416f4af327dbe72ec565d2423 04-Mar-2011 Ying Wang <wangying@google.com> Drop support for target files with no recovery.fstab.

Change-Id: I099298cfffc2546975732a3bf0df60f96ccbdac4
Meanwhile don't build the ota and update zip files if no recovery.fstab
found.
369985c6f232cfdb3bf6d5f5f29b68857a0a8100 02-Mar-2011 Doug Zongker <dougz@android.com> remove vestigial WriteFirmwareImage function

Nothing calls this, and the updater function it calls no longer
exists. The HTC-device-specific thing it used to do was moved to HTC
extension libraries.

Change-Id: I2252adf44ea0c5beb6e9379215d7337880f66f68
560d535cffcb38d475ba6af6ac516e61ba8fec56 18-Feb-2011 Doug Zongker <dougz@android.com> read partition length from recovery.fstab

Don't hardcode magical partition behavior in the script generator.

Change-Id: I4aeea022f8a32a7c9f316be2c2514510344ca0e0
9df922a077a6bb45b742f5e2ac668a537999e604 18-Feb-2011 Doug Zongker <dougz@android.com> read partition length from recovery.fstab

Don't hardcode magical partition behavior in the script generator.

Change-Id: I4aeea022f8a32a7c9f316be2c2514510344ca0e0
086cbb0acb873603c19101b1fc01d125d8b63b7a 18-Feb-2011 Doug Zongker <dougz@android.com> read partition length from recovery.fstab

Don't hardcode magical partition behavior in the script generator.

Change-Id: I4aeea022f8a32a7c9f316be2c2514510344ca0e0
b43ac8fc2fbb3530212a613108c2492969e33146 20-Jan-2011 Michael Chan <mchan@android.com> Fix build break

Change-Id: Ie07f042a9f25bf3329cf2cea8fdeea3e208da775
a67616acfd436ac0ba224e675dc972c8491901fc 20-Jan-2011 Ken Sumrall <ksumrall@android.com> Teach the build system to reserve the last 16 Kbytes of /data for the crypto footer

If making /data and it's an EMMC interface, reserve the last 16 Kbytes
of the partition for the crypto footer.

Change-Id: Ia2c0bb53a545f074e79fc9d6ac04faee75fb9be4
96a57e737707d05333dced5b657c4ef21c44088a 26-Sep-2010 Doug Zongker <dougz@android.com> make info_dict and GetTypeAndDevice available to device extensions

Change-Id: I3aa04cb6d7988fc1fdd7f179634b09ceab5749fb
c0434ac8b504df8a2f2a2828dc9b3f804c3dda72 21-Sep-2010 Doug Zongker <dougz@android.com> add recovery.fstab as dependency so it triggers rebuild (do not merge)

Make recovery image depend on the fstab file so it gets rebuilt when
fstab changes. Add support for "emmc" fstab partition type to
edify_generator.

Change-Id: Ic5df4e86c24321bf7d82a644e3e4770352e4f64b
9ce0fb6e59415669074896cfa01e1f0cf97979b7 21-Sep-2010 Doug Zongker <dougz@android.com> support for per-partition fs_type

Include the recovery.fstab file in the recovery image. Remove the
global fs_type and partition_type values from the target-files
key/value dict, and parse the recovery.fstab file instead to find
types for each partition.

(Cherrypicked from gingerbread w/some edits to resolve conflicts.)

Change-Id: Ic3ed85ac5672d8fe20280dacf43d5b82053311bb
258bf46ea6bb4f25d01fab1b783238589e5bbec4 21-Sep-2010 Doug Zongker <dougz@android.com> support for per-partition fs_type (do not merge)

Include the recovery.fstab file in the recovery image. Remove the
global fs_type and partition_type values from the target-files
key/value dict, and parse the recovery.fstab file instead to find
types for each partition.

Change-Id: I35ee2dd0989441dc2a704b63c1b32e598049acb5
37974731fcb4e32b1de5f213d34bd832ca889869 17-Sep-2010 Doug Zongker <dougz@android.com> consolidate target_files metadata into one key-value file

Instead of separate files for recovery api version, tool extensions,
and mkyaffs2 options, put those all in the generic key-value file.

Change-Id: Ib642311632844d52e4895fd4747093fc7e86232d
c19a8d5590a4ffd42b37ceaca2d779b48e481f99 02-Jul-2010 Doug Zongker <dougz@android.com> support for ext4/EMMC in target_files and OTA generation

Move the image sizes into a more generic key-value file. Make them
optional. Add additional key/value pairs describing what kind of
filesystem the device uses. Pass new fs-type-related arguments in
edify scripts when mounting and reformatting partitions.

Don't include all the init.*.rc files from the regular system in
recovery -- they aren't needed, and break recovery on some devices.

Change-Id: Ic1c651f754ed00ba1cffe8cf56c43f7f3b0ebfd7
96be7205dce97977909e93b73f48779fcce3bc65 02-Aug-2010 Hristo Bojinov <hristo@google.com> Working ASLR implementation.

ASLR for shared libraries is controlled by "-a" in ota_from_target_files.
Binary files are self-contained (supported by apriori/soslim).

Signed-off-by: Hristo Bojinov <hristo@google.com>
Change-Id: I500e325bf4a70a8d69a2ab9b2938e83dadb4e65d
67369983cf23e12724c135c3850c98326558256b 07-Jul-2010 Doug Zongker <dougz@android.com> generate pseudofilenames for EMMC partitions

Change-Id: Ibe77f4338fed5745c7c650270dcef24988ebfdda
b4c7d32cbac0ef36062c4e2f348b47e027610eef 02-Jul-2010 Doug Zongker <dougz@android.com> support for ext4/EMMC in target_files and OTA generation

Move the image sizes into a more generic key-value file. Make them
optional. Add additional key/value pairs describing what kind of
filesystem the device uses. Pass new fs-type-related arguments in
edify scripts when mounting and reformatting partitions.

Don't include all the init.*.rc files from the regular system in
recovery -- they aren't needed, and break recovery on some devices.

Change-Id: I40e49e65f0d76f735259e4b4fef882322cd739da
c8d446bcde877ec94f8e68dd5af68fe34eb1b1f9 23-Feb-2010 Doug Zongker <dougz@android.com> pass blobs to applypatch in incremental OTAs

applypatch now takes patches as blob-valued arguments instead of just
filenames, eliminating the need to unpack all patches to /tmp before
starting to apply them.

Revert the last change I made where sha1_check(read_file(...)) was
substituted for apply_patch_check(...). apply_patch_check() knows to
check /cache/saved.file if the original source file is missing or has
a bad checksum, which is important if the device loses power or
otherwise restarts during patching.

Change-Id: Ia5b761474b0f809a5a5eed29455b1b145145699e
5a48209541d5eed602bfb8e2c4ff51e31443daf2 18-Feb-2010 Doug Zongker <dougz@android.com> relocate applypatch; check patch integrity

- Delete the applypatch code (it's being moved to bootable/recovery).

- Change the OTA script generator to verify the sha1sum of all the
patch files after they are unpacked into /tmp.

b/2361316 - VZW Issue PP628: Continuous reset to Droid logo:
framework-res.apk update failed (CR LIBtt59130)

Change-Id: I5858d48f10127f72e708d50d3de844569d1aff27
14833605d26bf970cd5335c02af4354b68d93348 02-Feb-2010 Doug Zongker <dougz@android.com> add UnmountAll function to OTA script; support radio images w/path

Three unrelated changes:

- change the add-radio-file makefile function to support adding files
with paths. (The path part of the pathname is stripped off.)

- add an UnmountAll function to the OTA script generation code, so
that we can explicitly unmount everything we've mounted (in addition
to doing it automatically at the end of the script).

- add the updater API version to the info object passed to
device-specific code.

Change-Id: Ia62b15403c1cc8fce8d9910f291450c8077e49f4
e6b4e5b20ac8a3b01f1a99dd877a98c92036ce5e 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
881dd40ffb683fed465df955f3fd21812fae59aa 20-Sep-2009 Doug Zongker <dougz@android.com> improve the OTA progress bar

Make the OTA progress bar advance a bit more smoothly by reallocating
how much is dedicated to various phases of incremental OTA
installation, based on some crude measurements of how long each phase
takes.
c494d7cee85d980647ca915ea64355b71fe817eb 18-Jun-2009 Doug Zongker <dougz@android.com> generate OTA packages that use edify

Split the details of generating script syntax into a generator class:
one for amend (whose output should be equivalent to the current
output), and one for edify.

Fix 'otatools' build rule to build imgdiff.