Allow individual projects to enforce a property's value

Some projects require system properties to be set to a specific
value (for example, a shared library needing a property pointing
to its own path) in order to work correctly, but some device
configurations are mistakenly setting those properties with the
wrong value (usually inherited from the original OEM build).

"PRODUCT_PROPERTY_UBER_OVERRIDES += property=value" can (and
should) be used in that project's makefile to ensure the value
is the correct one. This variable is intended for software projects,
and should never be used in product makefiles (BoardConfig, cm.mk,
AndroidProduct)

Change-Id: I1986e7c444e51cce8b198e43fdc793fad16d6276
Add PRODUCT_BOOTANIMATION

Just add PRODUCT_BOOTANIMATION in your product
makefiles and point it to the zip file you would
like to have used as the boot animation.

The coresponsing build system handles picking
the last one, which is the last product to set this.

Change-Id: I8c95a515a8fbb92d363141eb79e254712dccc162
Signed-off-by: William Roberts <wroberts@tresys.com>

Fix for build break when PRODUCT_BOOTANIMATION is unset

Change-Id: I236c2dd35ba0e632ed327ed6dc36324c9e59587a

Restore original behavior when PRODUCT_BOOTANIMATION is undefined

Change-Id: I3ee7141f7c26cee033b8a30824caf38fcacec5a8
build: qcom: Set QCOM_*_PATH variables for hardware/qcom-* projects

This consolidates a bunch of one-off logic scattered throughout the
code base.  Usage in Android.mk files is trivial:

At top level, use e.g. "ifeq ($(call my-dir),$(QCOM_AUDIO_PATH))".
This works for all variants, including non-variants (i.e. AOSP).

Within subdirs, use e.g. hardware/qcom/audio => $(QCOM_AUDIO_PATH)

Change-Id: Iee2497ea9a7efeb4ae9e861b84c532b19da7b69d

build: Introduce project pathmap and use it for qcom variants

The project pathmap tracks the path to the top level of a project.  The
following functions are provided:

 * project-set-path adds an entry.
 * project-set-path-variant adds a "variant" entry.
 * project-path-for retrieves an entry.

To use as a guard in Android.mk:

  ifeq ($(call my-dir),$(call project-path-for,projectname))

To use for include paths in Android.mk:

  LOCAL_C_INCLUDES += $(call project-path-for,projectname)/...

Set project pathmap for qcom project variants.

Change-Id: I8dceca72a1ba80fc7b1830c5ab285d444f530457

build: Set QCOM variants for non-QCOM_HARDWARE defined targets

* Nexus devices and others typically do not define the QCOM_HARDWARE
  flag, so the variant path should always default to the AOSP variant.
* Unconditionally set the variant to the AOSP HAL by default.

Change-Id: I714170897128f92718af266366cfcbf3136e8981
framework: adding security-bridge

adding security-bridge to FRAMEWORK_BASE_SUBDIRS
to make it compile as part of the framework/base java module

Change-Id: Ic96ba5549525fcaa58c274f918ac511f69cb0096
build: Include an extra device.mk

Change-Id: I4373f78f57c81e46affc2f6a6bc854bf4c3d00db
Fully expand eng/debug/tests module install files

When including eng, debug and tests modules that are tagged
using LOCAL_MODULE_TAGS, fully expand the install file list
from just the tagged module to all the module's INSTALLED
list.  This allows auto-generated files such as dex preopt
odex files tagged under the module's INSTALLED list to be
included.  This also makes the behavior of specifying a
module as debug using LOCAL_MODULE_TAGS to be the same as
specifying it as PRODUCT_PACKAGES_DEBUG when building
for userdebug or eng variant.

Change-Id: If9a24b62d8bee9e378f3e5f58e9490e963238302
added missing variable