• Home
  • History
  • Annotate
  • only in /bootable/recovery/updater/
History log of /bootable/recovery/updater/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a3ccba6d314cb29b02d1dbda9a71427b11da936d 21-Aug-2012 Doug Zongker <dougz@google.com> add bonus data feature to imgdiff/imgpatch/applypatch

The bonus data option lets you give an additional blob of uncompressed
data to be used when constructing a patch for chunk #1 of an image.
The same blob must be available at patch time, and can be passed to
the command-line applypatch tool (this feature is not accessible from
edify scripts).

This will be used to reduce the size of recovery-from-boot patches by
storing parts of the recovery ramdisk (the UI images) on the system
partition.

Change-Id: Iac1959cdf7f5e4582f8d434e83456e483b64c02c
nstall.c
5585025814418e8b692a3a38b7cff495180a74f8 17-Aug-2012 Joe Onorato <joeo@google.com> am 3733d218: Merge changes I664f8dc7,I4154db06,I5e1df90f

* commit '3733d2185bbcedd9ef626907f1f32628986cc0f5':
Use the static version of libsparse
Multiple modules with the same name are going away.
host modules don't need LOCAL_MODULE_TAGS
a23075fb0e23978e5b8f3a7c92280ee1b2274e6d 07-Aug-2012 Doug Zongker <dougz@google.com> fix the symlink() command to create directories if needed

Full OTAs currently fail if the build contains a directory containing
only symlinks, because nothing creates that directory. Change the
symlink() command to create any ancestor directories that don't exist.
They're created as owner root perms 0700 because we assume that in
practice subsequent set_perm_recursive() calls will fix up their
ownership and permissions.

Change-Id: I4681cbc85863d9778e36b924f0532b2b3ef14310
nstall.c
4eeb379886f9ee3d832a38805ceaf15e0e08d685 24-Jul-2012 Joe Onorato <joeo@google.com> Use the static version of libsparse

Change-Id: I664f8dc7939f8f902e4775eaaf6476fcd4ab8ed2
ndroid.mk
6396e70d3fd381f6e3ccaff84c5a05bc5e3cec3c 01-Jun-2012 Joe Onorato <joeo@google.com> Multiple modules with the same name are going away.

Change-Id: I4154db066865d6031caa3c2c3b94064b2f28076e
ndroid.mk
cde94f309c85d673648126c1de12952ed690b561 25-Apr-2012 Colin Cross <ccross@android.com> Link against libsparse

libext4_utils requires libsparse, link against it as well.

Change-Id: I4d6aec0e5edcf1ed42118b7b77adcded2858d3dd
ndroid.mk
ea17e320b0bc4437e8a881026f296b71fa02ad3e 12-Jun-2012 Ying Wang <wangying@google.com> am 6d60667d: Merge "Use a dependency file to replace the list file."

* commit '6d60667de6b8e6bd8a54fb4031901e2935743308':
Use a dependency file to replace the list file.
eef790de669c378f91dcd7bce98ab0af5f727198 11-Jun-2012 Ying Wang <wangying@google.com> Use a dependency file to replace the list file.

instead of creating the list file whenever loading the Android.mk

Change-Id: I78e4820754399dff3993a863eede8b75da9f6d29
ndroid.mk
1e4469a7866e4ec3459734b36eef3fb67035b4d4 07-Apr-2012 Kenny Root <kroot@android.com> am 78911bdf: am 2a4ab824: Merge "Change the format command to always take the mount point as an argument."

* commit '78911bdf4f9dfff6583f3f8150a3257212ceea13':
Change the format command to always take the mount point as an argument.
516e4e23721e4e5aa0a349ab8f27c22a81665880 03-Apr-2012 Stephen Smalley <sds@tycho.nsa.gov> Change the format command to always take the mount point as an argument.

Requires I5a63fd61a7e74d386d0803946d06bcf2fa8a857e

Change-Id: Ica5fb73d6f2ffb981b74d1896538988dbc4d9b24
nstall.c
41dda82d847ae8c261b09c383806b412d680f935 31-Mar-2012 Kenny Root <kroot@google.com> resolved conflicts for merge of 0b1fee1b to master

Change-Id: I2e8298ff5988a96754f56f80a5186c9605ad9928
779701db515d1a0d363d5a8896252f331bc4e22a 09-Feb-2012 Stephen Smalley <sds@tycho.nsa.gov> Extend recovery and updater to support setting file security contexts.

Extend minzip, recovery, and updater to set the security context on
files based on the file_contexts configuration included in the package.

Change-Id: Ied379f266a16c64f2b4dca15dc39b98fcce16f29
ndroid.mk
nstall.c
pdater.c
pdater.h
acd73ed156e6f10b96fc277738845f833c514b77 22-Mar-2012 Doug Zongker <dougz@android.com> fail edify script if set_perm() or symlink() fails

It's surprising if these fail, so abort the whole edify script to
catch any problems early.

Bug: 2284848
Change-Id: Ia2a0b60e7f086fc590b242616028905a229c9e05
nstall.c
35a35a67663127e42c8048ca0dc7465068a5606f 28-Feb-2012 Doug Zongker <dougz@android.com> remove retouching code from updater

Removes the retouch_binaries and undo_retouch_binaries from updater;
newly generated OTA packages should not call them any more.

Note that applypatch retains the ability to unretouch a file as it
reads it. This will be needed as long as we want to support OTAs from
devices that were installed with retouching.

Change-Id: Ib3f6baeae90c84ba85983f626d821ab7e436ceb2
nstall.c
1a114494950d8bce01bb860cd8a7221fdc9593cc 13-Jan-2012 Stephen Smalley <sds@tycho.nsa.gov> Add libselinux to LOCAL_STATIC_LIBRARIES wherever libext4_utils is used.

libext4_utils now calls libselinux in order to determine the
file security context to set on files when creating ext4 images.

Change-Id: I09fb9d563d22ee106bf100eacd4cd9c6300b1152
ndroid.mk
daefc1d442fb421606680feb9aeb59c133f4c427 31-Oct-2011 Doug Zongker <dougz@android.com> C++ class for device-specific code

Replace the device-specific functions with a class. Move some of the
key handling (for log visibility toggling and rebooting) into the UI
class. Fix up the key handling so there is less crosstalk between the
immediate keys and the queued keys (an increasing annoyance on
button-limited devices).

Change-Id: I698f6fd21c67a1e55429312a0484b6c393cad46f
nstall.c
d0181b8fcdac761afec252151a8bfda116916e96 19-Oct-2011 Doug Zongker <dougz@android.com> allow recovery packages to wipe cache

updater now has a function "wipe_cache();" which causes recovery to
wipe the cache partition after the successful installation of the
package. Move log copying around a bit so logs and the last_install
flag file are copied to cache after it's wiped.

Bug: 5314244
Change-Id: Id35a9eb6dcd626c8f3a3a0076074f462ed3d44bd
nstall.c
6242a8bc9b01786e4b58ed897858f593d1d546cf 15-Jul-2011 Michael Ward <mikeward@google.com> Support multiple recovery updater extensions.

Change-Id: I787c086223b674050c0a12fc575add9badb471af
ndroid.mk
179b2d989532afe14a88d57c3d1533b8cfe76cb9 13-Apr-2011 Doug Zongker <dougz@android.com> make write_raw_image able to take a blob

write_raw_image() can now take either a blob or a filename as the
source. The blob format eliminates the need for a temp file.

Change-Id: I0c6effec53d47862040efcec75e64b7c951cdcf7
nstall.c
8f132ed870b4b83727d59f8019b8fabe49fe8ed4 15-Jan-2011 Ken Sumrall <ksumrall@android.com> Reserve the last 16 Kbytes of /data for the crypto footer.

When formatting /data, if it's an ext4 filesystem, reserve the
last 16 Kbytes for the crypto footer.

Change-Id: I7b401d851ee87732e5da5860df0287a1c331c5b7
nstall.c
264f549b7d5aa5846e691dfe8aa9254fa4dbdc0b 29-Dec-2010 Colin Cross <ccross@android.com> Update arguments to make_ext4fs

Change-Id: Id96e98da76b3091987b01651f980797b1d6b49d8
nstall.c
dc49ce453efee52044287a2d0139996952f71170 16-Sep-2010 Doug Zongker <dougz@android.com> add missing sparseness parameter

Change-Id: Ie6e309b127e80cd6475f1deaa5dbadf9f5cc2746
nstall.c
a66c32ab1dde5ea8fc5d9fd9450ded267a94c429 16-Sep-2010 Doug Zongker <dougz@android.com> resolved conflicts for merge of 9f89b0e4 to master

Change-Id: Id458df96fd56830fdb35397e95a80274761ecff5
6b1ff61f62db82adf8e47c121cd13c29831ad21b 16-Sep-2010 Doug Zongker <dougz@android.com> am 858f0a76: am 8e5e4dad: close update package before installing; allow remount

Merge commit '858f0a763d0f736eb721f54257b6164886bfcbfc'

* commit '858f0a763d0f736eb721f54257b6164886bfcbfc':
close update package before installing; allow remount
56c5105bd7096704eaed35329b2c8c84cc282867 01-Jul-2010 Doug Zongker <dougz@android.com> support for ext4/EMMC filesystems in updater binary

Make the mount and format functions take extra parameters describing
the filesystem type and add support for mounting and formatting ext4
filesystems on EMMC.

Change recovery to consistently use stdout for status messages instead
of mixing stdout and stderr.
ndroid.mk
nstall.c
8e5e4dada713609c9b2c45ea9cf4572bb89ef761 15-Sep-2010 Doug Zongker <dougz@android.com> close update package before installing; allow remount

Close the update package before invoking the binary, to allow the
installer to unmount /cache if it wants to. Add a function to allow
remounting of a mount as read-only.

Change-Id: Idfcc96c3da66083295177f729263560be58034e4
pdater.c
8101125ee5068aff91f98c042660cb29576b8612 14-Aug-2010 Ken Sumrall <ksumrall@android.com> Changes to work with updated make_ext4fs tool that supports creating sparse images.

An extra parameter was added to the make_ext4fs() function, we these tools need
to be updated to match.

Change-Id: Id640a7f2b03153eb333b00337f0f991ff5332349
nstall.c
db314d69f023d2a6c8956073aa9d283e20b280ef 02-Aug-2010 Hristo Bojinov <hristo@google.com> Working ASLR implementation

Separate files for retouch functionality are in minelf/*

ASLR for shared libraries is controlled by "-a" in ota_from_target_files.
Binary files are self-contained. Retouch logic can recover from crashes.

Signed-off-by: Hristo Bojinov <hristo@google.com>
Change-Id: I76c596abf4febd68c14f9d807ac62e8751e0b1bd
ndroid.mk
nstall.c
b4277c25c639aa462a1d2f2d78f776443c670fb6 21-Jul-2010 Ying Wang <wangying@google.com> Mute unwanted error message

This CL removes the following line from the top of build logs:
"diff: out/target/product/*/obj/PACKAGING/updater_extensions_intermediates/register.inc.list: No such file or directory"

Change-Id: I79c15a69a0b1b0da0e45620b45a7a0fea5625250
ndroid.mk
3d177d055c9cf3571e4b7c098818b454d1dbf9d7 01-Jul-2010 Doug Zongker <dougz@android.com> support for ext4/EMMC filesystems in updater binary

Make the mount and format functions take extra parameters describing
the filesystem type and add support for mounting and formatting ext4
filesystems on EMMC.

Change recovery to consistently use stdout for status messages instead
of mixing stdout and stderr.
ndroid.mk
nstall.c
c4351c791052ad529a4e83c600b1aa6e6420ea86 22-Feb-2010 Doug Zongker <dougz@android.com> refactor applypatch and friends

Change the applypatch function to take meaningful arguments instead of
argc and argv. Move all the parsing of arguments into main.c (for the
standalone binary) and into install.c (for the updater function).
applypatch() takes patches as Value objects, so we can pass in blobs
extracted from the package without ever writing them to temp files.

The patching code is changed to read the patch from memory instead of
a file.

A bunch of compiler warnings (mostly about signed vs unsigned types)
are fixed.

Support for the IMGDIFF1 format is dropped. (We've been generating
IMGDIFF2 packages for some time now.)

Change-Id: I217563c500012750f27110db821928a06211323f
nstall.c
512536a54a1a211a9f582e76cbf12850dc7d5466 18-Feb-2010 Doug Zongker <dougz@android.com> relocate applypatch; add type system and new functions to edify

- Move applypatch to this package (from build).

- Add a rudimentary type system to edify: instead of just returning a
char*, functions now return a Value*, which is a struct that can
carry different types of value (currently just STRING and BLOB).
Convert all functions to this new scheme.

- Change the one-argument form of package_extract_file to return a
Value of the new BLOB type.

- Add read_file() to load a local file and return a blob, and
sha1_check() to test a blob (or string) against a set of possible
sha1s. read_file() uses the file-loading code from applypatch so it
can read MTD partitions as well.

This is the start of better integration between applypatch and the
rest of edify.

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

Change-Id: Ibd038074749a4d515de1f115c498c6c589ee91e5
nstall.c
pdater.c
e08991e02a7d678f2574e85289a34b2a9a537c82 02-Feb-2010 Doug Zongker <dougz@android.com> bump updater API version to 3; deprecate firmware update command

Remove support for the HTC-specific "firmware" update command and the
corresponding edify function write_firmware_update(). This
functionality is now done by an edify extension library that lives in
vendor/htc.

Change-Id: I80858951ff10ed8dfff98aefb796bef009e05efb
nstall.c
pdater.c
pdater.h
6aece33b3f3af6a161e326af36bc894427fcf5ad 01-Feb-2010 Doug Zongker <dougz@android.com> add a one-argument version of package_extract_file

Add a version of package_extract_file that returns the file data as
its return value (to be consumed by some other edify function that
expects to receive a bunch of binary data as an argument). Lets us
avoid having two copies of a big file in memory (extracting it into
/tmp, which is a ramdisk, and then having something load it into
memory) when doing things like radio updates.

Change-Id: Ie26ece5fbae457eb0ddcd8a13d74d78a769fbc70
nstall.c
60babf8ba766662cc0932e8271b67daa69cddd5f 19-Sep-2009 Doug Zongker <dougz@android.com> delete files before symlinking; log error messages

The symlink() function should remove existing files before creating
symlinks, so scripts are idempotent. Log messages when various system
calls fail (but don't make the whole script fail).
nstall.c
a3f89eabb7ddcf44add8ce3b321ceab6d35289cb 10-Sep-2009 Doug Zongker <dougz@android.com> add a run_program() function to edify

Handy for producing debugging OTA packages (eg, running sqlite3 or
whatever in recovery).
nstall.c
fc382dfc751725253f956ddaf5b7b90be90b41d7 30-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am d8f7c9b8: Merge change 5545 into donut

Merge commit 'd8f7c9b85e25fab93fef2221a84b60edc2e7b837'

* commit 'd8f7c9b85e25fab93fef2221a84b60edc2e7b837':
remove updater from the user system image
d8f7c9b85e25fab93fef2221a84b60edc2e7b837 26-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 5545 into donut

* changes:
remove updater from the user system image
ad3db099d5ee17b1b46fee3131b9561b73b36703 26-Jun-2009 Doug Zongker <dougz@android.com> remove updater from the user system image

updater (which is only needed in OTA packages) is getting included in
/system/bin, where it just takes up (quite a bit of) space. Use the
hack of including it only in eng builds so it's not there for user
builds.
ndroid.mk
898ef399d3ee998a871bebd04264b29e23c66738 25-Jun-2009 Doug Zongker <dougz@android.com> am 0bbfe3d9: fix off-by-one error in set_perm()

Merge commit '0bbfe3d901885c1f0ab006e8d4cc1029c44a7376'

* commit '0bbfe3d901885c1f0ab006e8d4cc1029c44a7376':
fix off-by-one error in set_perm()
0bbfe3d901885c1f0ab006e8d4cc1029c44a7376 25-Jun-2009 Doug Zongker <dougz@android.com> fix off-by-one error in set_perm()

We were inadvertently skipping over the first filename in the list of
arguments.
nstall.c
4275c3cfc828ac2df143d353a4e27e8dda20b4a9 25-Jun-2009 Doug Zongker <dougz@android.com> am fbf3c10e: improve updater progress bar

Merge commit 'fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454'

* commit 'fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454':
improve updater progress bar
fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454 24-Jun-2009 Doug Zongker <dougz@android.com> improve updater progress bar

Let recovery accept set_progress commands to control progress over the
'current segment' of the bar. Add a set_progress() builtin to the
updater binary.
nstall.c
2b0fdc657115a4fe02af279fdbdab99c68df0a1a 19-Jun-2009 Doug Zongker <dougz@android.com> add device extension mechanism to updater

Allow devices (in BoardConfig.mk) to define additional static
libraries to be linked in to updater, to make device-specific
functions available in edify scripts. Modify the updater makefile to
arrange for device libraries to register their edify functions.
ndroid.mk
pdater.c
47cace98369f60df2351a65801c8065bb7f9dbf0 18-Jun-2009 Doug Zongker <dougz@android.com> add file_getprop() to updater

Add a function to read a property from a ".prop"-formatted file
(key=value pairs, one per line, ignore # comment lines and blank
lines). Move ErrorAbort to the core of edify; it's not specific to
updater now that errors aren't stored in the app cookie.
nstall.c
fb2e3af3f915c0e3f2b4b027ef26777267ad46dc 18-Jun-2009 Doug Zongker <dougz@android.com> let the "firmware" command take the file straight from the package

To do a firmware-install-on-reboot, the update binary tells recovery
what file to install before rebooting. Let this file be specified as
"PACKAGE:<foo>" to indicate taking the file out of the OTA package,
avoiding an extra copy to /tmp. Bump the API version number to
reflect this change.
pdater.c
d9c9d10d9da76f067d3955bea71f7bb39e859fa5 12-Jun-2009 Doug Zongker <dougz@android.com> fixes to edify and updater script

A few more changes to edify:

- fix write_raw_image(); my last change neglected to close the write
context, so the written image was corrupt.

- each expression tracks the span of the source code from which it
was compiled, so that assert()'s error message can include the
source of the expression that failed.

- the 'cookie' argument to each Function is replaced with a State
object, which contains the cookie, the source script (for use with
the above spans), and the current error message (replacing the
global variables that were used for this purpose).

- in the recovery image, a new command "ui_print" can be sent back
through the command pipe to cause text to appear on the screen.
Add a new ui_print() function to print things from scripts.
Rename existing "print" function to "stdout".
nstall.c
pdater.c
8edb00c990e563e6f91b278a212f2edf877cf763 12-Jun-2009 Doug Zongker <dougz@android.com> edify extensions for OTA package installation, part 2

Adds more edify functions for OTAs:

is_mounted getprop apply_patch apply_patch_check apply_patch_space
write_raw_image write_firmware_image package_extract_file

This allows us to install radios, hboots, boot images, and install
incremental OTA packages.

Fixes a couple of dumb bugs in edify itself:

- we were doubling the size of the function table each time it was
*not* full, rather than each time it was full

- "no such function" errors weren't visible to the parser, so they
didn't prevent execution of the script.
ndroid.mk
nstall.c
pdater.c
9931f7f3c1288171319e9ff7d053ebaad07db720 10-Jun-2009 Doug Zongker <dougz@android.com> edify extensions for OTA package installation, part 1

Adds the following edify functions:

mount unmount format show_progress delete delete_recursive
package_extract symlink set_perm set_perm_recursive

This set is enough to extract and install the system part of a (full)
OTA package.

Adds the updater binary that extracts an edify script from the OTA
package and then executes it. Minor changes to the edify core (adds a
sleep() builtin for debugging, adds "." to the set of characters that
can appear in an unquoted string).
ndroid.mk
nstall.c
nstall.h
pdater.c
pdater.h