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
build: clean up otasigcheck

- Only mount and unmount /data if it was originally unmounted
- Don't use comparison hack, just check the result of the script

Change-Id: I4a22485d315cf91e95ce578907c49f5fa3a03222
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
build: Ensure /system unmounted at install start

Account for the possibility that a user has mounted system manually
before installing the FullOTA package.

Change-Id: I97d0540676a7ce98762545e76ecb1a7f6335d204
repopick: handle variant hal branching

Change-Id: Ib0dee19abc13a7fb8d8e42c09b73c1b4f35ca938
releasetools: ota_from_target_files: add FullOTA_PostValidate

Change-Id: I152412049f90fd546d4516cc064238c3192be553
Add ext2, ext3, and vfat to releasetools

Support some non-standard partition that may be found in recovery.fstab

Conflicts:
	tools/releasetools/common.py

Change-Id: I0026a1d3ae5d432db10150d1a15f7bc8e7a6054b
core: Enable -mcpu=cortex-a8 flag for Scorpion cpu variant

To be used with
	http://review.cyanogenmod.org/#/c/77758/

Change-Id: I7ecc4707fa45bd7098165615c0521a12c85fb087
buildinfo: only set ro.build.product on non-unified devices

Change-Id: I5dccba2172dade3dacc55d832a2042fce306b5f5
core: Enable -mcpu=cortex-a9 flag for Cortex-A9 cpu variant

Change-Id: I9294a518bcdc21ccbae72eadd9f3c1a12982d028
core: armv7-a-neon.mk: Add missing endif

Change-Id: Id6f9c952d01d3c980115a52605d9c86038b3b5bd
otasigcheck: Go back to the key-rewrite check.

Using an intermediate file had the at-the-time unintended but good
side-effect of making execution failures (absent script, no
busybox in recovery, bad selinux setup) pass gracefully. Since this
check is intended as a blacklist, blocking the update when only
sure that breakage will ensue, that was a nice thing to get.

Checking the return code, while cleaner, is making non-key-related
failures like those mentioned above abort execution of the script.
The key itself isn't even checked, yet we're aborting because of it.

So go back to the original behavior: In case we're not sure... pass.

To do:
This can be cleaned up differently, and to the same effect, by returning
an explicit error code from the script and aborting when that error
comes up. Change the script to do that and come back here. :)

Change-Id: Ic9d7c3128047c25f31e2ef416c9df4d21ca0a1a8
Merge pull request #2 from CyanogenMod/cm-12.0

merge into lp5.0