| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This change enables/disables the Encrypted file systems feature. It reads some properties form the data partition, wipes the partition out, and then rewrites the proper properties again into the data partition to signal that encrypted FS are enabled.
|
|\
| |
| |
| |
| |
| |
| | |
Merge commit '6e5be9b24c232be4cfc22b7cbabb0fdf6d869f7c'
* commit '6e5be9b24c232be4cfc22b7cbabb0fdf6d869f7c':
eclair snapshot
|
| |\ |
|
| | |\
| | | |
| | | |
| | | | |
Merge commit 'goog/stage-korg-master' into HEAD
|
| | | |\ |
|
| | | | | |
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '4011770f2d06fcb743abc91a01a531c7ae2d9175'
* commit '4011770f2d06fcb743abc91a01a531c7ae2d9175':
|
| |\| | | |
|
| | |\ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Merge commit '54ec81fe86225d5f3ee3ab16e3266ae88cd639fa' into eclair-plus-aosp
* commit '54ec81fe86225d5f3ee3ab16e3266ae88cd639fa':
replace generic recovery icons
|
| | |\ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Merge commit '988500b615de24455e1fee69e72055bb1dca9c86' into eclair-plus-aosp
* commit '988500b615de24455e1fee69e72055bb1dca9c86':
add terminator to recovery's getopt_long options array
|
|\| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Merge commit 'd93a25459cdefba940f254b4c5f54fd7d9cdaf11'
* commit 'd93a25459cdefba940f254b4c5f54fd7d9cdaf11':
simplify construction of the recovery progress bar
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Instead of six separate images for the left end, right end, and tiled
center portion of the full and empty progress bars, just use two
images: a full bar and an empty bar. Draw the left side of the full
bar and the right side of the empty one, moving the boundary rightward
to "fill" the bar. This makes recovery trivially smaller, and allows
fancier images to be used as progress bars.
Support paletted PNG images as resources.
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Merge commit '54ec81fe86225d5f3ee3ab16e3266ae88cd639fa'
* commit '54ec81fe86225d5f3ee3ab16e3266ae88cd639fa':
replace generic recovery icons
|
| |\ \ \ \ \
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | | |
* changes:
replace generic recovery icons
|
| | | | | | |
|
|\| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Merge commit '988500b615de24455e1fee69e72055bb1dca9c86'
* commit '988500b615de24455e1fee69e72055bb1dca9c86':
add terminator to recovery's getopt_long options array
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
http://b/2170691 - recovery argument parsing is broken
|
|\ \ \ \ \
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '8f8bc4cb487e0f853c97cb5ff1481d707ac6b66d'
* commit '8f8bc4cb487e0f853c97cb5ff1481d707ac6b66d':
confirm before wiping user data in recovery
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'f93d8166ef4c06f6ad71293ffa8a4ce469df4fa5' into eclair-plus-aosp
* commit 'f93d8166ef4c06f6ad71293ffa8a4ce469df4fa5':
confirm before wiping user data in recovery
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When using the hidden menu to wipe data in recovery, confirm before
starting the wipe. (This does not affect booting with the --wipe_data
flag, or using Alt+W on dream with the menu hidden -- those still wipe
data immediately.)
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '486aa290635dbf6f60b3435694951fed3470ffdf'
* commit '486aa290635dbf6f60b3435694951fed3470ffdf':
reduce fraction of progress bar for verification
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'fd8fb0c49242af5147708f1a93ea3acba546555b' into eclair-plus-aosp
* commit 'fd8fb0c49242af5147708f1a93ea3acba546555b':
reduce fraction of progress bar for verification
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Reduce the fraction of the progress bar used for package verification
from 50% to 25%:
- verification is faster than before due to sha1 improvements
- in eclair we're now verifying the compressed data rather than
decompressing it
- incremental packages (which is what most installs use) write more
data than is contained in the package.
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'd16fb221cd27abea8a954bd5f6554fa116366519'
* commit 'd16fb221cd27abea8a954bd5f6554fa116366519':
delete files before symlinking; log error messages
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '60babf8ba766662cc0932e8271b67daa69cddd5f' into eclair-plus-aosp
* commit '60babf8ba766662cc0932e8271b67daa69cddd5f':
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).
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '2f4fc56183f3fe2edb5e3cd5e12329871e02518f'
* commit '2f4fc56183f3fe2edb5e3cd5e12329871e02518f':
don't complain if recovery icon is short
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '196c25c777daedbe2fe5a45171fb42e43ceed9af' into eclair-plus-aosp
* commit '196c25c777daedbe2fe5a45171fb42e43ceed9af':
don't complain if recovery icon is short
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If the a recovery icon file is so short that we can't even read the
8-byte header, put a message in the log but not on the device screen.
We intentionally have zero-length files for some icons on some devices,
if they're never shown (eg, the firmware installation icons are only
used on HTC devices).
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'b5d542cd40360867bc00cdb9266c0abf26448c55'
* commit 'b5d542cd40360867bc00cdb9266c0abf26448c55':
add a run_program() function to edify
|
| |\| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'a3f89eabb7ddcf44add8ce3b321ceab6d35289cb' into eclair-plus-aosp
* commit 'a3f89eabb7ddcf44add8ce3b321ceab6d35289cb':
add a run_program() function to edify
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Handy for producing debugging OTA packages (eg, running sqlite3 or
whatever in recovery).
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit '9a77b613f3fdf6340b0f5f24d1c725fd0001e4a9'
* commit '9a77b613f3fdf6340b0f5f24d1c725fd0001e4a9':
|
| |\ \ \ \
| | | |/ /
| | |/| | |
|
| | |\ \ \
| | | | |/
| | | |/| |
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Merge commit 'cbf903803850deb4f70490d97a1603e7b8679cc2'
* commit 'cbf903803850deb4f70490d97a1603e7b8679cc2':
Not all failures to fopen_root_path() are serious.
|
| |\| | |
| | |_|/
| |/| | |
|
| | | |
| | | |
| | | |
| | | | |
Example: E:Can't open /cache/recovery/command.
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit '34c98df78a80881698f63ce0815f3e16823d85e0'
* commit '34c98df78a80881698f63ce0815f3e16823d85e0':
do not merge: cherry-pick of c2d666bd4f6eb5f7a9f17b10435c161cb105b7c5 from master
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
after a power loss
Submitted on behalf of Hong-Bin Wang <hong-binwang@motorola.com>
Signed-off-by: Jared Suttles <jared.suttles@motorola.com>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit '54e2e86c5740a2c7a02e95e94c4aff362a5502cf'
* commit '54e2e86c5740a2c7a02e95e94c4aff362a5502cf':
do not merge: cherry-picked 60151a295ccf726238dc47456d80b427db6d6a38 from master branch
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
In recovery, verify a signature that covers the entire zip file,
instead of using the jarsigner format to verify individual files.
Bug: 1328985
|
|\| | |
|
| |\ \ |
|
|\ \ \ \
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Merge commit '20697b965cd923211daeea2037f60218358b9659'
* commit '20697b965cd923211daeea2037f60218358b9659':
only build flash_image for eng
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
With the recovery image being installed by applypatch, the flash_image
tool isn't needed any more. Continue to build it for eng just in case
it's handy for debugging.
|
|\ \ \
| | |/
| |/| |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
gcc 4.4 complains about some of the recovery ui functions not being
declared. To include the header, we have to fix the 'volatile'
declaration (otherwise there's a compiler error).
Move the dream-specific images to vendor/htc/dream, make the default
images a generic phone.
|
|\ \ \ \
| | |_|/
| |/| | |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Yank all the code to install OTA packages out of the recovery binary
itself. Now packages are installed by a binary included in the
package (run as a child of recovery), so we can make improvements in
the installation process without waiting for a new release to use
them.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'bec02d57fb85cc7dd0196a54b0e9530e306623ac'
* commit 'bec02d57fb85cc7dd0196a54b0e9530e306623ac':
skip over all-zero blocks when reading MTD partition
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We fail to detect certain bad blocks (marked in the factory as bad, I
think?) when reading mtd partitions. These come back as a block of
all zeros. Since it's fairly unlikely a legitimate boot or recovery
block will contain 128k of zeros, change mtdutils to skip over such
blocks.
Arve says https://review.source.android.com/10535 may be a long-term
fix for this, but he isn't yet sure.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'd8f7c9b85e25fab93fef2221a84b60edc2e7b837'
* commit 'd8f7c9b85e25fab93fef2221a84b60edc2e7b837':
remove updater from the user system image
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* changes:
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.
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit '0bbfe3d901885c1f0ab006e8d4cc1029c44a7376'
* commit '0bbfe3d901885c1f0ab006e8d4cc1029c44a7376':
fix off-by-one error in set_perm()
|
| |/ /
| | |
| | |
| | |
| | | |
We were inadvertently skipping over the first filename in the list of
arguments.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454'
* commit 'fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454':
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some devices want to do special things when recovery wipes data (eg,
wipe data in their baseband processor as well). Add a hook in the
device-specific recovery library that gets called when data is wiped.
Also add an amend root for the "mbm" partition.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '47cace98369f60df2351a65801c8065bb7f9dbf0'
* commit '47cace98369f60df2351a65801c8065bb7f9dbf0':
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.
|
|\| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'e3da02e7bcfd85c543419e7590a3c86f64d8cc8a'
* commit 'e3da02e7bcfd85c543419e7590a3c86f64d8cc8a':
add less_than_int, greater_than_int to edify
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add functions less_than_int() and greater_than_int() that interpret
their args as ints and do the comparison. ("<" and ">" operators, if
implemented, should do string comparison.) This lets us do the build
time check currently done by the check_prereq binary.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'd9c9d10d9da76f067d3955bea71f7bb39e859fa5'
* commit 'd9c9d10d9da76f067d3955bea71f7bb39e859fa5':
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".
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '8edb00c990e563e6f91b278a212f2edf877cf763'
* commit '8edb00c990e563e6f91b278a212f2edf877cf763':
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.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '9dbc027b5f540bcf23c968398f8a70e92abd56cd'
* commit '9dbc027b5f540bcf23c968398f8a70e92abd56cd':
fix sim build in donut, too
|
| | | |
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '9931f7f3c1288171319e9ff7d053ebaad07db720'
* commit '9931f7f3c1288171319e9ff7d053ebaad07db720':
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).
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
When I changed the definition of device_perform_action() in response
to a reviewer comment, I forgot to change this implementation.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Take some device-specific details of the recovery UI (eg, what keys to
press to bring up the interface and perform actions, exact text of the
menu, etc.) and split them out into separate C functions. Arrange to
take implementations of those functions from the appropriate vendor
directory at build time. Provide a default implementation in case no
vendor-specific one is available.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '9b9c2114bd7d02200ce43cb9ec513473079dfad9'
* commit '9b9c2114bd7d02200ce43cb9ec513473079dfad9':
core of edify, an eventual replacement for amend
|
| |\ \
| | | |
| | | |
| | | |
| | | | |
* changes:
core of edify, an eventual replacement for amend
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Edify is a simple scripting language for OTA installation, to be used
when we move to OTAs being installed via binaries shipped with the
package.
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit 'b2ee9201be583b17ddbf0eaa69a37545f992b565'
* commit 'b2ee9201be583b17ddbf0eaa69a37545f992b565':
allow OTA package to provide binary instead of script
|
| |/ /
| | |
| | |
| | |
| | | |
Allow installation of OTA packages which do not contain an
update-script, but instead contain an update-binary.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit 'f28c916e73ee9f643c67c70d059c70381d774cb0'
* commit 'f28c916e73ee9f643c67c70d059c70381d774cb0':
remove unused permissions scheme from amend
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Amend (aka the recovery command language) had a half-implemented
scheme of limiting which commands OTA packages were allowed to
execute. It's not clear what this was ever supposed to be good for.
Remove it.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '07e1dca7068284c4f3013550335029eb72b39b82'
* commit '07e1dca7068284c4f3013550335029eb72b39b82':
don't say "install complete" when it really isn't
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change the recovery UI so that when there is a hboot or radio update
pending (which the user most do a home+back reboot to actually
install), the UI tells them so, instead of saying "Install from sdcard
complete."
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '1c4ceae38f3fd7eb1e451d430acb5d99f257b0f9'
* commit '1c4ceae38f3fd7eb1e451d430acb5d99f257b0f9':
undo temporary alignment hack
|
| | |
| | |
| | |
| | |
| | |
| | | |
Remove the memory alignment that mysteriously made OTA installs work,
in anticipation of a kernel that fixes the actual problem. Handle
EINTR properly.
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '683c4628039a8cb6dad1a086fae23a7d71438414'
* commit '683c4628039a8cb6dad1a086fae23a7d71438414':
align data passed to write() on 32k boundaries
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In donut, OTA installation often encounters the write() system call
doing short writes -- which is legal but unexpected -- or failing with
ENOSPC when plenty of space is available. Passing aligned memory
buffers to write() appears to prevent (or at least reduce the
frequency) of these problems. b/1833052 has been filed to look at the
underlying problem, but this change aligns buffers we use with write()
so we can OTA for now (or see if this problem still occurs).
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Merge commit '596271fa71d79e3eec03c7cf6ac76cb026dd8578'
* commit '596271fa71d79e3eec03c7cf6ac76cb026dd8578':
handle short writes when unzipping files
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
minzip fails if write() doesn't write all the data in one call.
Apparently this was good enough before, but it causes OTAs to fail all
the time now (maybe due to the recently-submitted kernel)? Change
code to attempt continuing after short writes.
|
|\| | |
|
| |\ \ |
|
|\| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
them from an external file in the recovery image. Use the
test-keys for all builds.
Automated import of CL 144130
|
| | | |
| | | |
| | | |
| | | | |
Automated import of CL 144082
|
| | | |
| | | |
| | | |
| | | | |
Automated import of CL 144070
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
about 60k from the recovery and system images.
Automated import of CL 143128
|
| | | | |
|
| | | | |
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
them from an external file in the recovery image. Use the
test-keys for all builds.
Original author: dougz
Merged from: //branches/donutburger/...
Automated import of CL 144132
|
|\| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Original author: dougz
Merged from: //branches/donutburger/...
Automated import of CL 144105
|
|\| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Original author: dougz
Merged from: //branches/donutburger/...
Automated import of CL 144101
|
|\ \ \ \ \
| |/ / / /
|/| | | /
| | |_|/
| |/| | |
|
| |\ \ \
| | | |/
| | |/| |
|
| | | | |
|
| | |/ |
|
| |\| |
|
| | |
| | |
| | |
| | | |
Resolves http://code.google.com/p/android/issues/detail?id=2077
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
about 60k from the recovery and system images.
Original author: dougz
Merged from: //branches/donutburger/...
Automated import of CL 143289
|
| | | | |
|
| |_|/
|/| | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/
|/| |
|
|/ |
|
| |
|
|
|