Edify: Add/Update abort messages for some asserts

* If a bootloader or baseband assert is not satisfied, print the
  versions that are supported by the package as well as the version
  on the device.

Change-Id: I958d49281c51bd4e60d596a727bb94cfc4a21909
ota: Build uboot bootable images when necessary

Conflicts:
	core/Makefile
	tools/releasetools/common.py

Change-Id: I18996bb1f5377bbf369fb41774aaa1f5821e7d1f
Allow specifying kernel toolchain and prefix

Change-Id: Ib75cfe772e073f2196455f3e3dfba247f6b3feff
build: recovery: Support adding device-specific items

(cdesai): Also add the relevant parts from koush's
commit 7fd5a89df5ec3961c9aedfd2afad50d6d2561056
"Add initial support for charge mode. also support recovery/root in the device tree to easily copy props into recovery images."

Change-Id: I25205e68282680932917016646dabd1abadbfce6
build: Only mount /system if not mounted

The commit on which this depends takes care of the mount error if /data
is already mounted during install. This commit takes care of the error
if /system is already mounted.

Change-Id: I97d0540676a7ce98762545e76ecb1a7f6335d204
build: Handle custom boot images properly

When a pre-built image should be used, it should be stored in the
target files zip so that it can be used with external signing
processes.

Original-Change-Id: I2661af9ac58af30bb9314b552775046d3abf44e0
Change-Id: I10b3bd0bb33489b8ffb26d16d002f8dd6ff405ad
build: Use project pathmap for recovery

Change-Id: I6339ac77b899a43db21261d587252b65cb58ad79

Conflicts:
	core/config.mk
ota: Let devices specify their own recovery-from-boot.p installer

Some devices apply transformations to the installed images, making
the sha1 checksums fail (or, worse, generating invalid images). If
"/system/etc/recovery-transform.sh" exists, run that instead, passing
the expected sizes and checksums as arguments in the form of

recovery-transform.sh <recovery_size> <recovery_sha1> <boot_size> <boot_sha1>

A direct emulation of the standard patcher could look like this, transformations
should be added as needed.

----------------
RECSIZE=$1
RECSHA1=$2
BOOTSIZE=$3
BOOTSHA1=$4

dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of=$C/recovery.img
dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=$C/boot.img

if ! applypatch -c EMMC:$C/recovery.img:$RECSIZE:$RECSHA1; then
  log -t recovery "Installing new recovery image"
  applypatch -b /system/etc/recovery-resource.dat EMMC:$C/boot.img:$BOOTSIZE:$BOOTSHA1 EMMC:$C/recovery.img $RECSHA1 $RECSIZE $BOOTSHA1:/system/recovery-from-boot.p || exit 1
else
  log -t recovery "Recovery image already installed"
fi
----------------

Conflicts:
	tools/releasetools/ota_from_target_files

Change-Id: Ie601841ca1cdad6b8f3b16e593d2718a92e8ca09
core: Allow to disable block based OTA's

on Xiaomi Mi2, it causes that the user can't install GAPPS because
the filesystem is smaller than the partition then(users resize the syspart).

to use old style of output add this to boardconfig of device tree:
TARGET_USES_BLOCK_BASED_OTA := false

Change-Id: I1dcde9c9a212c34108629537cb8c1088a0373573