Remove useless info
Runtime resource overlay, iteration 2

Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
New Theme Engine [4/6]

Adds aapt for on device compiling of theme assets

Change-Id: I2f9f4b3e27ddf32b339694f9c6d3b75a12b700d9
Colorize javac errors

You know those multi-line ones that are frequently interspersed with other buld output?
The ones that don't even have the word "error" in them to search for?

This makes them red.

ps2: fix jar_check failures cause by leaving empty stderr files in intermediates dirs
     this is probably not the best place to store stderr before colorizing it if javac
     exits non-zero, but it seems much lighter than mkdiring a bunch of temp directories
     or using sed to mangle the paths to point to per-intermediates directory unique
     temporary file names

Change-Id: I3b9b7d8a0c76958588ac1603b6742987d6dde54c
Signed-off-by: nuclearmistake <nuclearmistake@gmail.com>
build: updater-script: Fix mount and format commands on F2FS

Change-Id: I3211fdf059eec5e95519faabb2b4a0968b2f69ee
bootzip: fix up issues with bootzip creator
CleanSpecs: Shorten build time

Stop looking for cleanspecs makefiles

We do our own cleaning !

Signed-off-by: Darescu Ionut <ionut.darescu@gmail.com>
Introduce Link Time Optimization

creds @metalspring
build: Add chromium prebuilt support to envsetup.sh && The core Makefile

This adds a chromium_prebuilt function to envsetup.sh that is invoked by lunch to check
whether the chromium prebuilts are up-to-date or not. If not, it will be built from source
and then the new source built version will be pulled during brunch/mka bacon to become the
new prebuilts for future builds.

This is all opt-in through the USE_PREBUILT_CHROMIUM flag. Without it being set to 1,
none of this would be ran, and regular operations will go on.

PS13:
-use export TARGET_DEVICE
-replace git -C with params compatible to old git versions

Change-Id: I40f8c8dbd2a8a84a5c1b9f47ee04180a71ef4e07

Conflicts:
	envsetup.sh
colorize non-fatal javac stderr yellow (and actually display it... at all)

woops!

Signed-off-by: nuclearmistake <nuclearmistake@gmail.com>
Change-Id: I984f428022a68a825aa041866e8d459bd6611f71
add function to generate AOKP sdk

Signed-off-by: Arnav Gupta <championswimmer@aokp.co>

Conflicts:
	envsetup.sh

Change-Id: Icc5510727a8528867b1356df8decf72052a84219

Conflicts:
	envsetup.sh
Slim >>> Z-ROM
Set default GCCs
Switch of set gcc for kernel
Build ROM with 4.9 sabermod
Add our ANSI Art to updater script