summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilos Ratkovic <milosr@gmail.com>2016-02-28 01:38:15 +0100
committerMilos Ratkovic <milosr@gmail.com>2016-02-28 01:38:15 +0100
commit0a7ef15966343642b9ac6b38133a773dc5e5a0fe (patch)
treede49968bf009bdd3af80c342e05b3d214ed18373
initial commit, copied from aosp 5.1
-rw-r--r--AndroidProducts.mk3
-rw-r--r--BoardConfig.mk45
-rw-r--r--CleanSpec.mk50
-rw-r--r--aosp_tilapia.mk18
-rw-r--r--board-info.txt1
-rw-r--r--device.mk34
-rwxr-xr-xfactory-images/generate-factory-images-package.sh50
-rw-r--r--fstab.grouper14
-rw-r--r--full_tilapia.mk32
-rw-r--r--init.recovery.tilapia.rc2
-rw-r--r--init.tilapia.rc459
-rw-r--r--overlay/frameworks/base/core/res/res/values-af/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-am/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ar/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-bg/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ca/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-cs/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-da/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-de/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-el/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-en-rGB/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-es-rUS/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-es/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-fa/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-fi/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-fr/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-hi/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-hr/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-hu/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-in/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-it/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-iw/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ja/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ko/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-lt/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-lv/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc004/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc005/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc012/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc030/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc070/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc150/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc170/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc280/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc380/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc410/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc560/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc680/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml28
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc980/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc310-mnc990/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc180/config.xml49
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc480/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc481/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc482/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc483/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc484/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc485/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc486/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc487/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc488/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-mcc311-mnc489/config.xml27
-rw-r--r--overlay/frameworks/base/core/res/res/values-nb/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-nl/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-pl/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-pt/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ro/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-ru/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-sk/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-sl/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-sr/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-sv/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-sw/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-th/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-tl/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-tr/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-uk/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-vi/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values-zu/config.xml25
-rw-r--r--overlay/frameworks/base/core/res/res/values/config.xml242
-rw-r--r--overlay/frameworks/base/core/res/res/values/dimens.xml5
-rw-r--r--overlay/frameworks/base/core/res/res/xml/eri.xml167
-rw-r--r--overlay/frameworks/base/core/res/res/xml/power_profile.xml76
-rw-r--r--overlay/frameworks/base/core/res/res/xml/storage_list.xml28
-rw-r--r--overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml28
-rw-r--r--overlay/frameworks/base/packages/SystemUI/res/values/config.xml41
-rw-r--r--overlay/packages/apps/Launcher2/res/values/config.xml3
-rw-r--r--overlay/packages/apps/Nfc/res/values/provisioning.xml26
-rw-r--r--overlay/packages/apps/Settings/res/values/bools.xml24
-rw-r--r--overlay/packages/wallpapers/MusicVisualization/res/values/config.xml29
-rw-r--r--proprietary-blobs.txt94
-rw-r--r--recovery/Android.mk31
-rwxr-xr-xrecovery/lib/downloadFN.h12
-rw-r--r--recovery/lib/libIMCdownload.abin0 -> 1891428 bytes
-rw-r--r--recovery/lib/libPrgHandler.abin0 -> 226016 bytes
-rw-r--r--recovery/recovery_updater.c68
-rw-r--r--releasetools.py89
-rw-r--r--self-extractors/Android.mk0
-rw-r--r--self-extractors/PART112
-rw-r--r--self-extractors/PART222
-rw-r--r--self-extractors/PART312
-rw-r--r--self-extractors/PROLOGUE2
-rw-r--r--self-extractors/asus/COPYRIGHT1
-rw-r--r--self-extractors/asus/LICENSE225
-rw-r--r--self-extractors/asus/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/asus/staging/device-partial.mk24
-rw-r--r--self-extractors/asus/staging/proprietary/Android.mk98
-rw-r--r--self-extractors/broadcom/COPYRIGHT1
-rw-r--r--self-extractors/broadcom/LICENSE225
-rw-r--r--self-extractors/broadcom/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/broadcom/staging/device-partial.mk20
-rw-r--r--self-extractors/broadcom/staging/proprietary/Android.mk58
-rw-r--r--self-extractors/elan/COPYRIGHT1
-rw-r--r--self-extractors/elan/LICENSE225
-rw-r--r--self-extractors/elan/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/elan/staging/device-partial.mk17
-rw-r--r--self-extractors/elan/staging/proprietary/Android.mk29
-rw-r--r--self-extractors/extract-lists.txt105
-rwxr-xr-xself-extractors/generate-packages.sh209
-rw-r--r--self-extractors/invensense/COPYRIGHT1
-rw-r--r--self-extractors/invensense/LICENSE225
-rw-r--r--self-extractors/invensense/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/invensense/staging/device-partial.mk19
-rw-r--r--self-extractors/invensense/staging/proprietary/Android.mk49
-rw-r--r--self-extractors/nvidia/COPYRIGHT1
-rw-r--r--self-extractors/nvidia/LICENSE225
-rw-r--r--self-extractors/nvidia/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/nvidia/staging/device-partial.mk74
-rw-r--r--self-extractors/nvidia/staging/keymaster/Android.mk45
-rw-r--r--self-extractors/nvidia/staging/keymaster/NOTICE220
-rw-r--r--self-extractors/nvidia/staging/keymaster/cryptoki.h54
-rw-r--r--self-extractors/nvidia/staging/keymaster/keymaster_grouper.cpp981
-rw-r--r--self-extractors/nvidia/staging/keymaster/pkcs11.h595
-rw-r--r--self-extractors/nvidia/staging/keymaster/s_type.h146
-rw-r--r--self-extractors/nvidia/staging/proprietary/Android.mk579
-rw-r--r--self-extractors/nxp/COPYRIGHT1
-rw-r--r--self-extractors/nxp/LICENSE225
-rw-r--r--self-extractors/nxp/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/nxp/staging/device-partial.mk17
-rw-r--r--self-extractors/nxp/staging/proprietary/Android.mk29
-rw-r--r--self-extractors/root/BoardConfigVendor.mk23
-rw-r--r--self-extractors/root/device-vendor.mk25
-rw-r--r--self-extractors/widevine/COPYRIGHT1
-rw-r--r--self-extractors/widevine/LICENSE225
-rw-r--r--self-extractors/widevine/staging/BoardConfigPartial.mk13
-rw-r--r--self-extractors/widevine/staging/device-partial.mk19
-rw-r--r--self-extractors/widevine/staging/proprietary/Android.mk49
-rw-r--r--system.prop19
-rw-r--r--vendorsetup.sh23
169 files changed, 9507 insertions, 0 deletions
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 00000000000..00a56146558
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,3 @@
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/aosp_tilapia.mk \
+ $(LOCAL_DIR)/full_tilapia.mk
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100644
index 00000000000..1e331cdfd11
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,45 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# This file sets variables that control the way modules are built
+# thorughout the system. It should not be used to conditionally
+# disable makefiles (the proper mechanism to control what gets
+# included in a build is to use PRODUCT_PACKAGES in a product
+# definition file).
+#
+
+# WARNING: This line must come *before* including the proprietary
+# variant, so that it gets overwritten by the parent (which goes
+# against the traditional rules of inheritance).
+# The proprietary variant sets USE_CAMERA_STUB := false, this way
+# we use the camera stub when the vendor tree isn't present, and
+# the true camera library when the vendor tree is available. Similarly,
+# we set USE_PROPRIETARY_AUDIO_EXTENSIONS to true in the proprietary variant as
+# well.
+
+USE_CAMERA_STUB := true
+USE_PROPRIETARY_AUDIO_EXTENSIONS := false
+
+TARGET_RECOVERY_UPDATER_LIBS := librecovery_updater_tilapia
+TARGET_RECOVERY_UPDATER_EXTRA_LIBS := libIMCdownload libPrgHandler
+
+TARGET_RELEASETOOLS_EXTENSIONS := device/asus/tilapia
+
+-include vendor/asus/tilapia/BoardConfigVendor.mk
+include device/asus/grouper/BoardConfigCommon.mk
+
+TARGET_RECOVERY_FSTAB = device/asus/tilapia/fstab.grouper
+
+MALLOC_IMPL := dlmalloc
diff --git a/CleanSpec.mk b/CleanSpec.mk
new file mode 100644
index 00000000000..06c0718ec33
--- /dev/null
+++ b/CleanSpec.mk
@@ -0,0 +1,50 @@
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list. These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list. E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+# ************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+# ************************************************
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
diff --git a/aosp_tilapia.mk b/aosp_tilapia.mk
new file mode 100644
index 00000000000..4fdd7eee36f
--- /dev/null
+++ b/aosp_tilapia.mk
@@ -0,0 +1,18 @@
+#
+# Copyright 2013 The Android Open-Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+$(call inherit-product, device/asus/tilapia/full_tilapia.mk)
+
+PRODUCT_NAME := aosp_tilapia
diff --git a/board-info.txt b/board-info.txt
new file mode 100644
index 00000000000..810c1e9d0aa
--- /dev/null
+++ b/board-info.txt
@@ -0,0 +1 @@
+require board=tilapia
diff --git a/device.mk b/device.mk
new file mode 100644
index 00000000000..e0ea3391b65
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,34 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# rild
+PRODUCT_PACKAGES := \
+ rild \
+ BasicSmsReceiver
+
+PRODUCT_COPY_FILES := \
+ device/asus/tilapia/fstab.grouper:root/fstab.grouper \
+ device/asus/tilapia/init.recovery.tilapia.rc:root/init.recovery.grouper.rc \
+ device/asus/tilapia/init.tilapia.rc:root/init.grouper.rc
+
+DEVICE_PACKAGE_OVERLAYS := \
+ device/asus/tilapia/overlay
+
+# the actual meat of the device-specific product definition
+$(call inherit-product, device/asus/grouper/device-common.mk)
+
+# inherit from the non-open-source side, if present
+$(call inherit-product-if-exists, vendor/asus/tilapia/device-vendor.mk)
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
new file mode 100755
index 00000000000..15e10ca2a6f
--- /dev/null
+++ b/factory-images/generate-factory-images-package.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# Copyright 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# start jb-mr1-dev
+# 521994 = JOP32B
+# 526897 = JOP39B
+# 527221 = JOP40
+# 527662 = JOP40C
+# 533553 = JOP40D
+# end jb-mr1-dev
+# start jb-mr1.1-dev
+# 551245 = JDP82
+# 573038 = JDQ39
+# end jb-mr1.1-dev
+# start jb-mr2-dev
+# 683083 = JWR51
+# 689345 = JWR58
+# 690834 = JWR59
+# 704243 = JWR66G
+# 711294 = JWR66N
+# 737497 = JWR66V
+# end jb-mr2-dev
+
+source ../../../common/clear-factory-images-variables.sh
+BUILD=937116
+DEVICE=tilapia
+PRODUCT=nakasig
+VERSION=kot49h
+SRCPREFIX=signed-
+BOOTLOADERFILE=bootloader.img
+BOOTLOADER=4.23
+RADIOFILE=radio.img
+RADIO=1231_0.18.0_0409
+SLEEPDURATION=10
+UNLOCKBOOTLOADER=true
+ERASEALL=true
+source ../../../common/generate-factory-images-common.sh
diff --git a/fstab.grouper b/fstab.grouper
new file mode 100644
index 00000000000..a81def533fc
--- /dev/null
+++ b/fstab.grouper
@@ -0,0 +1,14 @@
+# Android fstab file.
+#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+
+/dev/block/platform/sdhci-tegra.3/by-name/APP /system ext4 ro wait
+/dev/block/platform/sdhci-tegra.3/by-name/CAC /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait
+/dev/block/platform/sdhci-tegra.3/by-name/UDA /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,encryptable=/dev/block/platform/sdhci-tegra.3/by-name/MDA
+/dev/block/platform/sdhci-tegra.3/by-name/MSC /misc emmc defaults defaults
+/dev/block/platform/sdhci-tegra.3/by-name/LNX /boot emmc defaults defaults
+/dev/block/platform/sdhci-tegra.3/by-name/SOS /recovery emmc defaults defaults
+/dev/block/platform/sdhci-tegra.3/by-name/USP /staging emmc defaults defaults
+/dev/block/platform/sdhci-tegra.3/by-name/RDO /radio ext4 defaults recoveryonly
diff --git a/full_tilapia.mk b/full_tilapia.mk
new file mode 100644
index 00000000000..321d288f95d
--- /dev/null
+++ b/full_tilapia.mk
@@ -0,0 +1,32 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
+# This file is the build configuration for a full Android
+# build for grouper hardware. This cleanly combines a set of
+# device-specific aspects (drivers) with a device-agnostic
+# product configuration (apps).
+#
+
+# Inherit from those products. Most specific first.
+$(call inherit-product, device/asus/tilapia/device.mk)
+# This is where we'd set a backup provider if we had one
+#$(call inherit-product, device/sample/products/backup_overlay.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
+
+# Discard inherited values and use our own instead.
+PRODUCT_NAME := full_tilapia
+PRODUCT_DEVICE := tilapia
+PRODUCT_BRAND := Android
+PRODUCT_MODEL := AOSP on Tilapia
diff --git a/init.recovery.tilapia.rc b/init.recovery.tilapia.rc
new file mode 100644
index 00000000000..57c704b8468
--- /dev/null
+++ b/init.recovery.tilapia.rc
@@ -0,0 +1,2 @@
+on init
+ mkdir /radio 0700 root root
diff --git a/init.tilapia.rc b/init.tilapia.rc
new file mode 100644
index 00000000000..2a48c3f32c8
--- /dev/null
+++ b/init.tilapia.rc
@@ -0,0 +1,459 @@
+import init.grouper.usb.rc
+
+on early-init
+ mount debugfs debugfs /sys/kernel/debug
+
+on init
+ # See storage config details at http://source.android.com/tech/storage/
+ mkdir /mnt/shell/emulated 0700 shell shell
+ mkdir /storage/emulated 0555 root root
+
+ export EXTERNAL_STORAGE /storage/emulated/legacy
+ export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
+ export EMULATED_STORAGE_TARGET /storage/emulated
+
+ # Support legacy paths
+ symlink /storage/emulated/legacy /sdcard
+ symlink /storage/emulated/legacy /mnt/sdcard
+ symlink /storage/emulated/legacy /storage/sdcard0
+ symlink /mnt/shell/emulated/0 /storage/emulated/legacy
+
+on early-boot
+ write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
+ write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive
+ write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor interactive
+ write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor interactive
+
+on fs
+ mkdir /factory 0775 radio radio
+
+ setprop ro.crypto.umount_sd false
+ mount_all /fstab.grouper
+
+on post-fs-data
+ mkdir /data/media 0770 media_rw media_rw
+
+ # change back to bluetooth from system
+ chown bluetooth net_bt_stack /data/misc/bluetooth
+
+ # sensors-config
+ mkdir /data/sensors 751
+ # /data/sensors was owned by system/system earlier.
+ # Force it to root/root if it already exists.
+ chown root root /data/sensors
+ mkdir /data/lightsensor 751
+ # /data/lightsensor was owned by system/system earlier.
+ # Force it to root/root if it already exists.
+ chown root root /data/lightsensor
+ mkdir /data/calibration
+ mkdir /data/amit
+
+ mkdir /data/radio 0775 radio radio
+ mkdir /data/radio/log 0775 radio radio
+
+ # Set indication (checked by vold) that we have finished this action
+ setprop vold.post_fs_data_done 1
+
+on boot
+
+# bluetooth
+ # UART device
+ chmod 0660 /dev/ttyHS2
+ chown bluetooth net_bt_stack /dev/ttyHS2
+
+ # power up/down interface
+ chmod 0660 /sys/class/rfkill/rfkill0/state
+ chmod 0660 /sys/class/rfkill/rfkill0/type
+ chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
+ chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type
+
+ # bluetooth MAC address programming
+ chown bluetooth net_bt_stack ro.bt.bdaddr_path
+ chown bluetooth net_bt_stack /system/etc/bluetooth
+ chown bluetooth net_bt_stack /data/misc/bluetooth
+ setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"
+
+ # bluetooth LPM
+ chmod 0220 /proc/bluetooth/sleep/lpm
+ chmod 0220 /proc/bluetooth/sleep/btwrite
+ chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
+ chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
+
+# NFC
+ setprop ro.nfc.port "I2C"
+ chmod 0660 /dev/pn544
+ chown nfc nfc /dev/pn544
+
+# Proximity for RIL BODYSAR
+ chmod 0660 /sys/devices/platform/tegra-i2c.2/i2c-2/2-0028/sensor_onoff
+ chown root radio /sys/devices/platform/tegra-i2c.2/i2c-2/2-0028/sensor_onoff
+
+# backlight
+ chown system system /sys/class/backlight/pwm-backlight/brightness
+
+# didim
+ chown system system /sys/class/graphics/fb0/device/smartdimmer/enable
+ chown system system /sys/class/graphics/fb0/device/smartdimmer/aggressiveness
+
+# power
+ chown system system /sys/kernel/tegra_cap/core_cap_level
+ chown system system /sys/kernel/tegra_cap/core_cap_state
+ chown system system /sys/module/cpu_tegra/parameters/cpu_user_cap
+
+# Sensor
+# iio
+ chown system system /dev/iio:device0
+ chown system system /sys/bus/iio/devices/trigger0/name
+ chown system system /sys/bus/iio/devices/iio:device0/accl_enable
+ chown system system /sys/bus/iio/devices/iio:device0/accl_matrix
+ chown system system /sys/bus/iio/devices/iio:device0/buffer/length
+ chown system system /sys/bus/iio/devices/iio:device0/buffer/enable
+ chown system system /sys/bus/iio/devices/iio:device0/compass_enable
+ chown system system /sys/bus/iio/devices/iio:device0/compass_matrix
+ chown system system /sys/bus/iio/devices/iio:device0/dmp_on
+ chown system system /sys/bus/iio/devices/iio:device0/dmp_int_on
+ chown system system /sys/bus/iio/devices/iio:device0/gyro_enable
+ chown system system /sys/bus/iio/devices/iio:device0/gyro_matrix
+ chown system system /sys/bus/iio/devices/iio:device0/in_accel_scale
+ chown system system /sys/bus/iio/devices/iio:device0/in_anglvel_scale
+ chown system system /sys/bus/iio/devices/iio:device0/in_magn_scale
+ chown system system /sys/bus/iio/devices/iio:device0/key
+ chown system system /sys/bus/iio/devices/iio:device0/power_state
+ chown system system /sys/bus/iio/devices/iio:device0/sampling_frequency
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_x_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_y_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_z_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_x_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_y_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_z_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en
+ chown system system /sys/bus/iio/devices/iio:device0/temperature
+ chown system system /sys/bus/iio/devices/iio:device0/trigger/current_trigger
+
+ # new in MA 5.1.5
+ chown system system /sys/bus/iio/devices/iio:device0/secondary_name
+ chown system system /sys/bus/iio/devices/iio:device0/dmp_firmware
+ chown system system /sys/bus/iio/devices/iio:device0/firmware_loaded
+ chown system system /sys/bus/iio/devices/iio:device0/dmp_event_int_on
+ chown system system /sys/bus/iio/devices/iio:device0/dmp_output_rate
+ chown system system /sys/bus/iio/devices/iio:device0/in_accel_x_offset
+ chown system system /sys/bus/iio/devices/iio:device0/in_accel_y_offset
+ chown system system /sys/bus/iio/devices/iio:device0/in_accel_z_offset
+ chown system system /sys/bus/iio/devices/iio:device0/gyro_fsr
+ ## LPQ
+ chown system system /sys/bus/iio/devices/iio:device0/quaternion_on
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_z_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_y_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_x_en
+ chown system system /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_r_en
+ ## Screen orientation
+ chown system system /sys/bus/iio/devices/iio:device0/event_display_orientation
+ chown system system /sys/bus/iio/devices/iio:device0/display_orientation_on
+ ## SMD
+ chown system system /sys/bus/iio/devices/iio:device0/event_smd
+ chown system system /sys/bus/iio/devices/iio:device0/smd_enable
+ chown system system /sys/bus/iio/devices/iio:device0/smd_threshold
+ chown system system /sys/bus/iio/devices/iio:device0/smd_delay_threshold
+ chown system system /sys/bus/iio/devices/iio:device0/smd_delay_threshold2
+
+ ## AMI compass sensor
+ chown system system /dev/iio:device1
+ chown system system /sys/bus/iio/devices/trigger1/name
+ chown system system /sys/bus/iio/devices/iio:device1/buffer/length
+ chown system system /sys/bus/iio/devices/iio:device1/buffer/enable
+ chown system system /sys/bus/iio/devices/iio:device1/compass_enable
+ chown system system /sys/bus/iio/devices/iio:device1/compass_matrix
+ chown system system /sys/bus/iio/devices/iio:device1/in_magn_scale
+ chown system system /sys/bus/iio/devices/iio:device1/power_state
+ chown system system /sys/bus/iio/devices/iio:device1/sampling_frequency
+ chown system system /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_x_en
+ chown system system /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_y_en
+ chown system system /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_z_en
+ chown system system /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en
+ chown system system /sys/bus/iio/devices/iio:device1/trigger/current_trigger
+
+ chmod 600 /dev/iio:device0
+ chmod 600 /sys/bus/iio/devices/trigger0/name
+ chmod 600 /sys/bus/iio/devices/iio:device0/accl_enable
+ chmod 600 /sys/bus/iio/devices/iio:device0/accl_matrix
+ chmod 600 /sys/bus/iio/devices/iio:device0/buffer/length
+ chmod 600 /sys/bus/iio/devices/iio:device0/buffer/enable
+ chmod 600 /sys/bus/iio/devices/iio:device0/compass_enable
+ chmod 600 /sys/bus/iio/devices/iio:device0/compass_matrix
+ chmod 600 /sys/bus/iio/devices/iio:device0/dmp_on
+ chmod 600 /sys/bus/iio/devices/iio:device0/dmp_int_on
+ chmod 600 /sys/bus/iio/devices/iio:device0/gyro_enable
+ chmod 600 /sys/bus/iio/devices/iio:device0/gyro_matrix
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_accel_scale
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_anglvel_scale
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_magn_scale
+ chmod 600 /sys/bus/iio/devices/iio:device0/key
+ chmod 600 /sys/bus/iio/devices/iio:device0/power_state
+ chmod 600 /sys/bus/iio/devices/iio:device0/sampling_frequency
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_x_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_y_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_accel_z_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_x_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_y_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_magn_z_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/temperature
+ chmod 600 /sys/bus/iio/devices/iio:device0/trigger/current_trigger
+
+ # new in MA 5.1.5
+ chmod 600 /sys/bus/iio/devices/iio:device0/secondary_name
+ chmod 600 /sys/bus/iio/devices/iio:device0/dmp_firmware
+ chmod 600 /sys/bus/iio/devices/iio:device0/firmware_loaded
+ chmod 600 /sys/bus/iio/devices/iio:device0/dmp_event_int_on
+ chmod 600 /sys/bus/iio/devices/iio:device0/dmp_output_rate
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_accel_x_offset
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_accel_y_offset
+ chmod 600 /sys/bus/iio/devices/iio:device0/in_accel_z_offset
+ chmod 600 /sys/bus/iio/devices/iio:device0/gyro_fsr
+ ## LPQ
+ chmod 600 /sys/bus/iio/devices/iio:device0/quaternion_on
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_z_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_y_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_x_en
+ chmod 600 /sys/bus/iio/devices/iio:device0/scan_elements/in_quaternion_r_en
+ ## Screen orientation
+ chmod 600 /sys/bus/iio/devices/iio:device0/event_display_orientation
+ chmod 600 /sys/bus/iio/devices/iio:device0/display_orientation_on
+ ## SMD
+ chmod 600 /sys/bus/iio/devices/iio:device0/event_smd
+ chmod 600 /sys/bus/iio/devices/iio:device0/smd_enable
+ chmod 600 /sys/bus/iio/devices/iio:device0/smd_threshold
+ chmod 600 /sys/bus/iio/devices/iio:device0/smd_delay_threshold
+ chmod 600 /sys/bus/iio/devices/iio:device0/smd_delay_threshold2
+
+ ## AMI compass sensor
+ chmod 600 /dev/iio:device1
+ chmod 600 /sys/bus/iio/devices/trigger1/name
+ chmod 600 /sys/bus/iio/devices/iio:device1/buffer/length
+ chmod 600 /sys/bus/iio/devices/iio:device1/buffer/enable
+ chmod 600 /sys/bus/iio/devices/iio:device1/compass_enable
+ chmod 600 /sys/bus/iio/devices/iio:device1/compass_matrix
+ chmod 600 /sys/bus/iio/devices/iio:device1/in_magn_scale
+ chmod 600 /sys/bus/iio/devices/iio:device1/power_state
+ chmod 600 /sys/bus/iio/devices/iio:device1/sampling_frequency
+ chmod 600 /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_x_en
+ chmod 600 /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_y_en
+ chmod 600 /sys/bus/iio/devices/iio:device1/scan_elements/in_magn_z_en
+ chmod 600 /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en
+ chmod 600 /sys/bus/iio/devices/iio:device1/trigger/current_trigger
+
+# Power management settings
+ write /sys/module/cpu_tegra3/parameters/no_lp 0
+ #write /sys/module/tegra3_emc/parameters/emc_enable 0
+ #write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1000000
+ write /sys/devices/system/cpu/cpufreq/interactive/boost_factor 2
+ write /sys/devices/system/cpu/cpufreq/interactive/input_boost 1
+ write /sys/devices/system/cpu/cpufreq/interactive/sustain_load 80
+ write /sys/module/cpu_tegra3/parameters/auto_hotplug 1
+ #write /sys/module/cpuidle_t3/parameters/lp2_0_in_idle 0
+ write /sys/module/cpuidle/parameters/lp2_in_idle 0
+
+# Interactive governor settings
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/boost_factor
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost_factor
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/core_lock_count
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/core_lock_count
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/core_lock_period
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/core_lock_period
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_maxspeed_load
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/max_boost
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/max_boost
+ chown system system /sys/devices/system/cpu/cpufreq/interactive/sustain_load
+ chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/sustain_load
+
+# Default Read Ahead value for sdcards
+ write /sys/block/mmcblk0/queue/read_ahead_kb 2048
+ write /sys/block/mmcblk1/queue/read_ahead_kb 2048
+
+# GPS init
+ write /sys/class/gpio/export 162
+ write /sys/class/gpio/gpio162/value 0
+ write /sys/class/gpio/gpio162/direction out
+ chown gps system /sys/class/gpio/gpio162/value
+ chmod 0664 /sys/class/gpio/gpio162/value
+ mkdir /data/gps
+ chown gps system /data/gps
+ chmod 770 /data/gps
+ chown gps system /dev/ttyHS1
+ chmod 0660 /dev/ttyHS1
+
+# ril
+ chown radio system /sys/devices/virtual/ril/files/crash_dump_onoff
+ chown radio system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+ chmod 0660 /sys/devices/virtual/ril/files/crash_dump_onoff
+ chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
+ chown radio system /sys/devices/platform/baseband_xmm_power/xmm_nml_reset
+ chown radio system /sys/devices/platform/baseband_xmm_power/xmm_force_crash
+ chown radio system /sys/class/ril/files/stop_hotplug_detect
+
+
+# Load WiFi driver
+
+# BB mapping symbolic name to the logging ttyACM port
+ symlink /dev/ttyACM2 /dev/log_modem
+
+# Touch
+ chown system system /dev/elan-iap
+ chown system system /proc/ektf_dbg
+ start touch_fw_update
+
+# the following settings are used to disable ipv6 on cellular networks that cannot
+# support it.
+
+on property:ril.ipv6.rmnet0.enable=1
+ write /proc/sys/net/ipv6/conf/rmnet0/disable_ipv6 0
+
+on property:ril.ipv6.rmnet0.enable=0
+ write /proc/sys/net/ipv6/conf/rmnet0/disable_ipv6 1
+
+on property:ril.ipv6.rmnet1.enable=1
+ write /proc/sys/net/ipv6/conf/rmnet1/disable_ipv6 0
+
+on property:ril.ipv6.rmnet1.enable=0
+ write /proc/sys/net/ipv6/conf/rmnet1/disable_ipv6 1
+
+service wpa_supplicant /system/bin/wpa_supplicant \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -I/system/etc/wifi/wpa_supplicant_overlay.conf \
+ -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
+ # we will start as root and wpa_supplicant will switch to user wifi
+ # after setting up the capabilities required for WEXT
+ # user wifi
+ # group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service p2p_supplicant /system/bin/wpa_supplicant \
+ -iwlan0 -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf \
+ -I/system/etc/wifi/wpa_supplicant_overlay.conf -N \
+ -ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf \
+ -I/system/etc/wifi/p2p_supplicant_overlay.conf \
+ -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
+ -g@android:wpa_wlan0
+# we will start as root and wpa_supplicant will switch to user wifi
+# after setting up the capabilities required for WEXT
+# user wifi
+# group wifi inet keystore
+ class main
+ socket wpa_wlan0 dgram 660 wifi wifi
+ disabled
+ oneshot
+
+service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_p2p /system/bin/dhcpcd -aABKL
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_eth0 /system/bin/dhcpcd -ABDKL -f/system/etc/dhcpcd/dhcpcd.conf
+ class main
+ disabled
+ oneshot
+
+service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
+ class main
+ disabled
+ oneshot
+
+service iprenew_wlan0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_p2p /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_eth0 /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+service iprenew_bt-pan /system/bin/dhcpcd -n
+ class main
+ disabled
+ oneshot
+
+#Sensor: load calibration files.
+service sensors-config /system/bin/sensors-config
+ class main
+ user root
+ oneshot
+#Sensor load calibration files end
+
+# virtual sdcard daemon running as media_rw (1023)
+service sdcard /system/bin/sdcard -u 1023 -g 1023 -t 4 -l /data/media /mnt/shell/emulated
+ class late_start
+
+# bugreport is triggered by the VOLUME-DOWN and VOLUME-UP keys
+service bugreport /system/bin/dumpstate -d -p -B \
+ -o /data/data/com.android.shell/files/bugreports/bugreport
+ class main
+ disabled
+ oneshot
+ keycodes 115 114
+
+# Start GPS daemon
+service gps-daemon /system/bin/glgps -c /system/etc/gps/gpsconfig.xml
+ user gps
+ group system
+ class late_start
+
+# Recovery daemon: configure MSC partition
+service recoveryd /system/bin/recoveryd /dev/block/platform/sdhci-tegra.3/by-name/MSC
+ disabled
+ class main
+ user root
+ group root
+ oneshot
+
+on property:sys.shutdown.requested=1recovery
+ start recoveryd
+
+# start tf_daemon service
+service tf_daemon /system/bin/tf_daemon -storageDir /data/tf -d
+ class main
+ user root
+ group shell
+
+# may restart due to /data/tf not existing yet
+on property:init.svc.tf_daemon=restarting
+ mkdir /data/tf
+
+# create filesystems if necessary
+service setup_fs /system/bin/setup_fs \
+ /dev/block/platform/sdhci-tegra.3/by-name/UDA \
+ /dev/block/platform/sdhci-tegra.3/by-name/CAC
+ class core
+ user root
+ group root
+ oneshot
+
+service touch_fw_update /system/bin/sh -c "echo /system/etc/firmware/touch_fw.ekt > /sys/bus/i2c/drivers/elan-ktf3k/1-0010/update_fw"
+ class main
+ disabled
+ user root
+ group root
+ oneshot
+
diff --git a/overlay/frameworks/base/core/res/res/values-af/config.xml b/overlay/frameworks/base/core/res/res/values-af/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-af/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-am/config.xml b/overlay/frameworks/base/core/res/res/values-am/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-am/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ar/config.xml b/overlay/frameworks/base/core/res/res/values-ar/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ar/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-bg/config.xml b/overlay/frameworks/base/core/res/res/values-bg/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-bg/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ca/config.xml b/overlay/frameworks/base/core/res/res/values-ca/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ca/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-cs/config.xml b/overlay/frameworks/base/core/res/res/values-cs/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-cs/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-da/config.xml b/overlay/frameworks/base/core/res/res/values-da/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-da/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-de/config.xml b/overlay/frameworks/base/core/res/res/values-de/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-de/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-el/config.xml b/overlay/frameworks/base/core/res/res/values-el/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-el/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-en-rGB/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-es-rUS/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-es/config.xml b/overlay/frameworks/base/core/res/res/values-es/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-es/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fa/config.xml b/overlay/frameworks/base/core/res/res/values-fa/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fa/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fi/config.xml b/overlay/frameworks/base/core/res/res/values-fi/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-fr/config.xml b/overlay/frameworks/base/core/res/res/values-fr/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-fr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hi/config.xml b/overlay/frameworks/base/core/res/res/values-hi/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hr/config.xml b/overlay/frameworks/base/core/res/res/values-hr/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-hu/config.xml b/overlay/frameworks/base/core/res/res/values-hu/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-hu/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-in/config.xml b/overlay/frameworks/base/core/res/res/values-in/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-in/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-it/config.xml b/overlay/frameworks/base/core/res/res/values-it/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-it/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-iw/config.xml b/overlay/frameworks/base/core/res/res/values-iw/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-iw/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ja/config.xml b/overlay/frameworks/base/core/res/res/values-ja/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ja/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ko/config.xml b/overlay/frameworks/base/core/res/res/values-ko/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ko/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-lt/config.xml b/overlay/frameworks/base/core/res/res/values-lt/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-lt/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-lv/config.xml b/overlay/frameworks/base/core/res/res/values-lv/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-lv/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc004/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc004/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc004/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc005/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc005/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc005/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc012/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc012/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc012/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc030/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc030/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc030/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc070/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc070/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc070/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc150/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc150/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc150/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc170/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc170/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc170/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc280/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc280/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc280/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc380/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc380/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc380/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc410/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc410/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc410/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc560/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc560/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc560/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc680/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc680/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc680/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml
new file mode 100644
index 00000000000..8b9732fb8e7
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- T-Mobile -->
+
+ <string name="mobile_provisioning_url">
+ http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+ </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc980/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc980/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc980/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc990/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc990/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc990/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc180/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc180/config.xml
new file mode 100644
index 00000000000..ad922a9b25e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc180/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- AT&T -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">true</bool>
+
+ <string name="mobile_provisioning_apn">lwaactivate</string>
+
+ <string name="mobile_provisioning_url">
+ https://buyasession.att.com/sbd/unauth/InitiateSBD.action?ICCID=%1$s&amp;IMEI=%2$s&amp;version=3.0
+ </string>
+
+ <bool name="config_restartRadioAfterProvisioning">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc480/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc480/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc480/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc481/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc481/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc481/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc482/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc482/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc482/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc483/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc483/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc483/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc484/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc484/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc484/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc485/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc485/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc485/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc486/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc486/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc486/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc487/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc487/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc487/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc488/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc488/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc488/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc311-mnc489/config.xml b/overlay/frameworks/base/core/res/res/values-mcc311-mnc489/config.xml
new file mode 100644
index 00000000000..8ea0e822d88
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc311-mnc489/config.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Verizon -->
+
+ <string name="mobile_provisioning_url">data:text/html,&lt;html&gt;&lt;body onLoad=\&quot;document.getElementById(\&apos;form\&apos;).submit()\&quot;&gt;&lt;form id=\&quot;form\&quot; target=\&quot;_self\&quot; method=\&quot;POST\&quot; action=\&quot;https://quickaccess.verizonwireless.com/bbportal/oem/start.do\&quot;&gt;&lt;input id=\&quot;mdn\&quot; name=\&quot;MDN\&quot; type=\&quot;hidden\&quot; value=\&quot;%3$s\&quot;&gt;&lt;input id=\&quot;oem\&quot; name=\&quot;oem\&quot; type=\&quot;hidden\&quot; value=\&quot;NEXT\&quot;&gt;&lt;input id=\&quot;iccid\&quot; name=\&quot;iccid\&quot; type=\&quot;hidden\&quot; value=\&quot;%1$s\&quot;&gt;&lt;input id=\&quot;imei\&quot; name=\&quot;imei\&quot; type=\&quot;hidden\&quot; value=\&quot;%2$s\&quot;&gt;&lt;input type=\&quot;submit\&quot;&gt;&lt;/form&gt;&lt;/body&gt;&lt;html&gt;</string>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-nb/config.xml b/overlay/frameworks/base/core/res/res/values-nb/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-nb/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-nl/config.xml b/overlay/frameworks/base/core/res/res/values-nl/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-nl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pl/config.xml b/overlay/frameworks/base/core/res/res/values-pl/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pt-rPT/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-pt/config.xml b/overlay/frameworks/base/core/res/res/values-pt/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-pt/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ro/config.xml b/overlay/frameworks/base/core/res/res/values-ro/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ro/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-ru/config.xml b/overlay/frameworks/base/core/res/res/values-ru/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-ru/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sk/config.xml b/overlay/frameworks/base/core/res/res/values-sk/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sk/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sl/config.xml b/overlay/frameworks/base/core/res/res/values-sl/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sr/config.xml b/overlay/frameworks/base/core/res/res/values-sr/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sv/config.xml b/overlay/frameworks/base/core/res/res/values-sv/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sv/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-sw/config.xml b/overlay/frameworks/base/core/res/res/values-sw/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-sw/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-th/config.xml b/overlay/frameworks/base/core/res/res/values-th/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-th/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-tl/config.xml b/overlay/frameworks/base/core/res/res/values-tl/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-tl/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-tr/config.xml b/overlay/frameworks/base/core/res/res/values-tr/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-tr/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-uk/config.xml b/overlay/frameworks/base/core/res/res/values-uk/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-uk/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-vi/config.xml b/overlay/frameworks/base/core/res/res/values-vi/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-vi/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zh-rCN/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zh-rTW/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-zu/config.xml b/overlay/frameworks/base/core/res/res/values-zu/config.xml
new file mode 100644
index 00000000000..c9598c40d21
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-zu/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="config_usbHostBlacklist">
+ <item msgid="2854983642221012800">"/dev/bus/usb/001"</item>
+ </string-array>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
new file mode 100644
index 00000000000..33e6855abe8
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2009, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+ <!-- Software blur is too slow on this device. -->
+ <bool name="config_sf_slowBlur">true</bool>
+
+ <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
+ Please don't copy them, copy anything else. -->
+
+ <!-- This string array should be overridden by the device to present a list of network
+ attributes. This is used by the connectivity manager to decide which networks can coexist
+ based on the hardware -->
+ <!-- An Array of "[Connection name],[ConnectivityManager connection type],
+ [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
+ <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
+ before automatically restore the default connection. Set -1 if the connection
+ does not require auto-restore. -->
+ <!-- the 6th element indicates boot-time dependency-met value. -->
+ <string-array translatable="false" name="networkAttributes">
+ <item>"wifi,1,1,1,-1,true"</item>
+ <item>"mobile,0,0,0,-1,true"</item>
+ <item>"mobile_supl,3,0,2,60000,true"</item>
+ <item>"mobile_dun,4,0,3,60000,true"</item>
+ <item>"mobile_hipri,5,0,3,60000,true"</item>
+ <item>"mobile_bluetooth,7,7,1,-1,true"</item>
+ <item>"ethernet,9,9,1,-1,true"</item>
+ </string-array>
+
+ <!-- An Array of "[ConnectivityManager connectionType],
+ [# simultaneous connection types]" -->
+ <string-array translatable="false" name="radioAttributes">
+ <item>"1,1"</item>
+ <item>"0,1"</item>
+ <item>"7,1"</item>
+ <item>"9,1"</item>
+ </string-array>
+
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ USB interfaces. If the device doesn't want to support tething over USB this should
+ be empty. An example would be "usb.*" -->
+ <string-array translatable="false" name="config_tether_usb_regexs">
+ </string-array>
+
+ <!-- Array of allowable ConnectivityManager network types for tethering -->
+ <integer-array translatable="false" name="config_tether_upstream_types">
+ </integer-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ Wifi interfaces. If the device doesn't want to support tethering over Wifi this
+ should be empty. An example would be "softap.*" -->
+ <string-array translatable="false" name="config_tether_wifi_regexs">
+ </string-array>
+
+ <!-- List of regexpressions describing the interface (if any) that represent tetherable
+ bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
+ should be empty. -->
+ <string-array translatable="false" name="config_tether_bluetooth_regexs">
+ </string-array>
+
+ <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
+ <bool translatable="false" name="config_wifi_dual_band_support">false</bool>
+
+ <!-- Boolean indicating whether the wifi chipset has background scan support -->
+ <bool translatable="false" name="config_wifi_background_scan_support">true</bool>
+
+ <!-- Device type information conforming to Annex B format in WiFi Direct specification.
+ The default represents a dual-mode smartphone -->
+ <string translatable="false" name="config_wifi_p2p_device_type">1-0050F204-1</string>
+
+ <!-- List of file paths for USB host busses to exclude from USB host support.
+ For example, if the first USB bus on the device is used to communicate
+ with the modem or some other restricted hardware, add "/dev/bus/usb/001/"
+ to this list. If this is empty, no parts of the host USB bus will be excluded.
+ -->
+ <string-array name="config_usbHostBlacklist">
+ <!--
+ -->
+ <item>/dev/bus/usb/001</item>
+ </string-array>
+
+ <!-- Flag indicating whether the we should enable the automatic brightness in Settings.
+ Software implementation will be used if config_hardware_auto_brightness_available is not set -->
+ <bool name="config_automatic_brightness_available">true</bool>
+
+ <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
+ The N entries of this array define N 1 zones as follows:
+
+ Zone 0: 0 <= LUX < array[0]
+ Zone 1: array[0] <= LUX < array[1]
+ ...
+ Zone N: array[N - 1] <= LUX < array[N]
+ Zone N + 1 array[N] <= LUX < infinity
+
+ Must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLevels">
+ <item>5</item>
+ <item>15</item>
+ <item>50</item>
+ <item>100</item>
+ <item>200</item>
+ <item>400</item>
+ <item>1000</item>
+ <item>2000</item>
+ <item>3000</item>
+ <item>5000</item>
+ <item>10000</item>
+ <item>30000</item>
+ </integer-array>
+
+
+ <!-- Array of output values for LCD backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessLcdBacklightValues">
+ <item>5</item> <!-- 0-5 -->
+ <item>20</item> <!-- 5-15 -->
+ <item>30</item> <!-- 15-50 -->
+ <item>40</item> <!-- 50-100 -->
+ <item>50</item> <!-- 100-200 -->
+ <item>60</item> <!-- 200-400 -->
+ <item>70</item> <!-- 400-1000 -->
+ <item>80</item> <!-- 1000-2000 -->
+ <item>130</item> <!-- 2000-3000 -->
+ <item>180</item> <!-- 3000-5000 -->
+ <item>255</item> <!-- 5000-10000 -->
+ <item>255</item> <!-- 10000-30000 -->
+ <item>255</item> <!-- 30000+ -->
+ </integer-array>
+
+ <!-- Array of output values for button backlight corresponding to the LUX values
+ in the config_autoBrightnessLevels array. This array should have size one greater
+ than the size of the config_autoBrightnessLevels array.
+ This must be overridden in platform specific overlays -->
+ <integer-array name="config_autoBrightnessButtonBacklightValues">
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ <item>0</item>
+ </integer-array>
+
+ <!-- Minimum screen brightness allowed by the power manager. -->
+ <integer name="config_screenBrightnessDim">5</integer>
+
+ <!-- This device is not "voice capable"; it's data-only. -->
+ <bool name="config_voice_capable">false</bool>
+
+ <!-- This device does allow sms service. -->
+ <bool name="config_sms_capable">true</bool>
+
+ <!-- Enable puk unlockscreen -->
+ <bool name="config_enable_puk_unlock_screen">true</bool>
+
+ <!-- Number of database connections opened and managed by framework layer
+ to handle queries on each database. -->
+ <integer name="db_connection_pool_size">3</integer>
+
+ <!-- Max space (in MB) allocated to DownloadManager to store the downloaded files
+ if they are to be stored in DownloadManager's data dir,
+ which typically is /data/data/com.android.providers.downloads/files. -->
+ <integer name="config_downloadDataDirSize">200</integer>
+
+ <!-- When the free space available in DownloadManager's data dir falls
+ below the percentage value specified by this param, DownloadManager
+ starts removing files to try to make percentage of available
+ free space above this threshold value. -->
+ <integer name="config_downloadDataDirLowSpaceThreshold">10</integer>
+
+ <!-- When a database query is executed, the results retuned are paginated
+ in pages of size (in KB) indicated by this value -->
+ <integer name="config_cursorWindowSize">2048</integer>
+
+ <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
+ <bool name="config_intrusiveNotificationLed">false</bool>
+
+
+ <!-- Base "touch slop" value used by ViewConfiguration as a
+ movement threshold where scrolling should begin.
+
+ -->
+ <dimen name="config_viewConfigurationTouchSlop">12dp</dimen>
+
+ <!-- Separate software navigation bar required on this device. -->
+ <bool name="config_showNavigationBar">true</bool>
+
+ <!-- Indicate whether closing the lid causes the device to go to sleep and opening
+ it causes the device to wake up.
+ The default is false. -->
+ <bool name="config_lidControlsSleep">true</bool>
+
+ <!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
+ <bool name="config_unplugTurnsOnScreen">true</bool>
+
+ <!-- Boolean indicating if current platform need do one-time bluetooth address
+ re-validation -->
+ <bool name="config_bluetooth_address_validation">true</bool>
+
+ <!-- The attenuation in dB applied to the lock/unlock sounds. -->
+ <integer name="config_lockSoundVolumeDb">0</integer>
+
+ <!-- Maximum number of supported users -->
+ <integer name="config_multiuserMaximumUsers">8</integer>
+ <!-- Whether UI for multi user should be shown -->
+ <bool name="config_enableMultiUserUI">true</bool>
+
+ <!-- reference volume index for music stream to limit headphone volume and display warning -->
+ <integer name="config_safe_media_volume_index">6</integer>
+
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values/dimens.xml b/overlay/frameworks/base/core/res/res/values/dimens.xml
new file mode 100644
index 00000000000..bcf763f3e7c
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values/dimens.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <!-- Navigation bar is taller in portrait. -->
+ <dimen name="navigation_bar_height">56dp</dimen>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/xml/eri.xml b/overlay/frameworks/base/core/res/res/xml/eri.xml
new file mode 100644
index 00000000000..5a93d574800
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/eri.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- Note that IconMode can be only 0, ON or 1, FLASHING
+ The icon is turned OFF if then IconIndex = 1 -->
+
+<EriFile VersionNumber="1357"
+ NumberOfEriEntries="19"
+ EriFileType="1">
+
+ <CallPromptId Id="0"
+ CallPromptText="CallPromptId0"/>
+
+ <CallPromptId Id="1"
+ CallPromptText="CallPromptId1"/>
+
+ <CallPromptId Id="2"
+ CallPromptText="CallPromptId2"/>
+
+ <EriInfo RoamingIndicator="0"
+ IconIndex="0"
+ IconMode="0"
+ EriText=""
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="1"
+ IconIndex="1"
+ IconMode="0"
+ EriText="Verizon Wireless"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="2"
+ IconIndex="2"
+ IconMode="1"
+ EriText=""
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="64"
+ IconIndex="1"
+ IconMode="0"
+ EriText="Verizon Wireless"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="65"
+ IconIndex="65"
+ IconMode="0"
+ EriText="Network Extender"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="66"
+ IconIndex="1"
+ IconMode="0"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="67"
+ IconIndex="67"
+ IconMode="0"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="68"
+ IconIndex="68"
+ IconMode="0"
+ EriText="Roaming"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="69"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="70"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Roaming"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="71"
+ IconIndex="1"
+ IconMode="0"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="72"
+ IconIndex="72"
+ IconMode="0"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="73"
+ IconIndex="73"
+ IconMode="0"
+ EriText="Roaming"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="74"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Extended Network"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="75"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Roaming"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="76"
+ IconIndex="76"
+ IconMode="0"
+ EriText="Verizon Wireless"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="77"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Verizon Wireless"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="78"
+ IconIndex="1"
+ IconMode="0"
+ EriText="Network Extender"
+ CallPromptId="0"
+ AlertId="0"/>
+
+ <EriInfo RoamingIndicator="79"
+ IconIndex="2"
+ IconMode="1"
+ EriText="Network Extender"
+ CallPromptId="0"
+ AlertId="0"/>
+
+</EriFile>
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
new file mode 100644
index 00000000000..0391e0ca3b8
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2010, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<device name="Android">
+ <!-- All values are in mA except as noted -->
+ <item name="none">0</item>
+ <item name="screen.on">256</item>
+ <item name="screen.full">318</item>
+ <item name="bluetooth.active">14.0</item>
+ <!--
+ Bluetooth stereo audio playback 14.0 mA
+ -->
+ <item name="bluetooth.on">1.4</item>
+ <!--
+ I measured the following value 1.4 mA
+ but there is a GPIO fix pending that should
+ bring this down to 0.2 mA
+ -->
+ <item name="wifi.on">2.9</item>
+ <item name="wifi.active">31.0</item>
+ <item name="wifi.scan">100</item>
+ <item name="dsp.audio">14.1</item>
+ <item name="dsp.video">54.0</item>
+ <item name="gps.on">29.7</item>
+ <item name="radio.active">71.5</item>
+ <item name="radio.scanning">1.2</item>
+ <array name="radio.on"> <!-- Strength 0 to BINS-1 (4) -->
+ <value>1.2</value>
+ </array>
+ <!-- Different CPU speeds as reported in
+ /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
+ <array name="cpu.speeds">
+ <value>216000</value> <!-- 216 MHz -->
+ <value>312000</value> <!-- 312 MHz -->
+ <value>456000</value> <!-- 456 MHz -->
+ <value>608000</value> <!-- 608 MHz -->
+ <value>760000</value> <!-- 760 MHz -->
+ <value>816000</value> <!-- 816 MHz -->
+ <value>912000</value> <!-- 912 MHz -->
+ <value>1000000</value> <!-- 1 GHz -->
+ </array>
+ <!-- Power consumption when CPU is idle -->
+ <item name="cpu.idle">3.8</item>
+ <item name="cpu.awake">54.6</item>
+ <!-- Power consumption at different speeds -->
+ <array name="cpu.active">
+ <value>100</value> <!-- 216 MHz -->
+ <value>107</value> <!-- 312 MHz -->
+ <value>116</value> <!-- 456 MHz -->
+ <value>123</value> <!-- 608 MHz -->
+ <value>135</value> <!-- 760 MHz -->
+ <value>138</value> <!-- 816 MHz -->
+ <value>142</value> <!-- 912 MHz -->
+ <value>148</value> <!-- 1 GHz -->
+ </array>
+ <!-- This is the battery capacity in mAh -->
+ <item name="battery.capacity">3260</item>
+ <!--
+ Battery capacity is 3260 mAH (at 7.4 Volts)
+ -->
+</device>
diff --git a/overlay/frameworks/base/core/res/res/xml/storage_list.xml b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
new file mode 100644
index 00000000000..344fe1e109e
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/xml/storage_list.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License")
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- See storage config details at http://source.android.com/tech/storage/ -->
+
+<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- internal emulated storage -->
+ <storage
+ android:storageDescription="@string/storage_internal"
+ android:emulated="true"
+ android:mtpReserve="100" />
+</StorageList>
diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
new file mode 100644
index 00000000000..4e056ab0ef5
--- /dev/null
+++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2010, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources>
+ <!-- 2 minutes for default screen timeout -->
+ <integer name="def_screen_off_timeout">120000</integer>
+ <!-- Set the automatic brightness mode on by default -->
+ <bool name="def_screen_brightness_automatic_mode">true</bool>
+
+ <!-- Value for Settings.Global.LOW_BATTERY_SOUND_TIMEOUT:
+ Mute battery sounds on tablets after one hour with screen off -->
+ <integer name="def_low_battery_sound_timeout">3600000</integer>
+</resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
new file mode 100644
index 00000000000..f5439d516a8
--- /dev/null
+++ b/overlay/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. -->
+<resources>
+
+ <!-- Control whether status bar should distinguish HSPA data icon form UMTS
+ data icon on devices -->
+ <bool name="config_hspa_data_distinguishable">true</bool>
+
+ <!-- Defines the implementation of the velocity tracker to be used for the panel expansion. Can
+ be 'platform' or 'noisy' (i.e. for noisy touch screens). -->
+ <string name="velocity_tracker_impl" translatable="false">noisy</string>
+
+ <!-- Show camera affordance on Keyguard -->
+ <bool name="config_keyguardShowCameraAffordance">false</bool>
+
+ <!-- Disable expensive shadows -->
+ <bool name="config_recents_fake_shadows">true</bool>
+
+ <!-- Use hardware layers in recents -->
+ <bool name="config_recents_use_hardware_layers">true</bool>
+</resources>
+
diff --git a/overlay/packages/apps/Launcher2/res/values/config.xml b/overlay/packages/apps/Launcher2/res/values/config.xml
new file mode 100644
index 00000000000..3b82809722b
--- /dev/null
+++ b/overlay/packages/apps/Launcher2/res/values/config.xml
@@ -0,0 +1,3 @@
+<resources>
+ <bool name="config_largeHeap">true</bool>
+</resources>
diff --git a/overlay/packages/apps/Nfc/res/values/provisioning.xml b/overlay/packages/apps/Nfc/res/values/provisioning.xml
new file mode 100644
index 00000000000..c996eb5c5f1
--- /dev/null
+++ b/overlay/packages/apps/Nfc/res/values/provisioning.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- NFC resources that may need to be customized
+ for different hardware or product builds. -->
+<resources>
+ <!-- The accepted mime-types when NFC is enabled in setup wizard.
+ Mime-types must be lower case, wildcards are *not* accepted. -->
+ <string-array name="provisioning_mime_types">
+ <item>application/vnd.com.google.android.nfcprovision</item>
+ <item>application/com.android.managedprovisioning</item>
+ </string-array>
+</resources>
diff --git a/overlay/packages/apps/Settings/res/values/bools.xml b/overlay/packages/apps/Settings/res/values/bools.xml
new file mode 100644
index 00000000000..2538661acdb
--- /dev/null
+++ b/overlay/packages/apps/Settings/res/values/bools.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <!-- No powercontrol widget for tablets -->
+ <bool name="has_powercontrol_widget">true</bool>
+
+ <!-- Show dock settings when docked -->
+ <bool name="has_dock_settings">true</bool>
+
+</resources>
diff --git a/overlay/packages/wallpapers/MusicVisualization/res/values/config.xml b/overlay/packages/wallpapers/MusicVisualization/res/values/config.xml
new file mode 100644
index 00000000000..2fe6f53aca0
--- /dev/null
+++ b/overlay/packages/wallpapers/MusicVisualization/res/values/config.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+* Copyright (C) 2010 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <bool name="config_enable_vis1">false</bool>
+ <bool name="config_enable_vis2">false</bool>
+ <bool name="config_enable_vis3">true</bool>
+ <bool name="config_enable_vis4">false</bool>
+ <bool name="config_enable_vis5">false</bool>
+
+</resources>
+
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
new file mode 100644
index 00000000000..4a6c04d5f2e
--- /dev/null
+++ b/proprietary-blobs.txt
@@ -0,0 +1,94 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This file is generated by device/common/generate-blob-lists.sh - DO NOT EDIT
+
+/system/bin/glgps
+/system/bin/sensors-config
+/system/bin/tf_daemon
+/system/etc/apns-conf.xml
+/system/etc/firmware/bcm4330.hcd
+/system/etc/firmware/nvavp_os_00001000.bin
+/system/etc/firmware/nvavp_os_0ff00000.bin
+/system/etc/firmware/nvavp_os_e0000000.bin
+/system/etc/firmware/nvavp_os_eff00000.bin
+/system/etc/firmware/nvavp_vid_ucode_alt.bin
+/system/etc/firmware/touch_fw.ekt
+/system/etc/gps/gpsconfig.xml
+/system/etc/nvcamera.conf
+/system/etc/nvram.txt
+/system/lib/egl/libEGL_tegra.so
+/system/lib/egl/libGLESv1_CM_tegra.so
+/system/lib/egl/libGLESv2_tegra.so
+/system/lib/hw/camera.tegra3.so
+/system/lib/hw/gps.tegra3.so
+/system/lib/hw/gralloc.tegra3.so
+/system/lib/hw/hwcomposer.tegra3.so
+/system/lib/hw/keystore.grouper.so
+/system/lib/hw/sensors.grouper.so
+/system/lib/libardrv_dynamic.so
+/system/lib/libcgdrv.so
+/system/lib/libdrmdecrypt.so
+/system/lib/libinvensense_hal.so
+/system/lib/libmllite.so
+/system/lib/libmplmpu.so
+/system/lib/libnvapputil.so
+/system/lib/libnvasfparserhal.so
+/system/lib/libnvaviparserhal.so
+/system/lib/libnvavp.so
+/system/lib/libnvcamerahdr.so
+/system/lib/libnvddk_2d.so
+/system/lib/libnvddk_2d_v2.so
+/system/lib/libnvdispmgr_d.so
+/system/lib/libnvmm.so
+/system/lib/libnvmmlite.so
+/system/lib/libnvmmlite_audio.so
+/system/lib/libnvmmlite_image.so
+/system/lib/libnvmmlite_utils.so
+/system/lib/libnvmmlite_video.so
+/system/lib/libnvmm_audio.so
+/system/lib/libnvmm_camera.so
+/system/lib/libnvmm_contentpipe.so
+/system/lib/libnvmm_image.so
+/system/lib/libnvmm_manager.so
+/system/lib/libnvmm_misc.so
+/system/lib/libnvmm_parser.so
+/system/lib/libnvmm_service.so
+/system/lib/libnvmm_utils.so
+/system/lib/libnvmm_video.so
+/system/lib/libnvmm_writer.so
+/system/lib/libnvodm_dtvtuner.so
+/system/lib/libnvodm_hdmi.so
+/system/lib/libnvodm_imager.so
+/system/lib/libnvodm_misc.so
+/system/lib/libnvodm_query.so
+/system/lib/libnvomx.so
+/system/lib/libnvomxilclient.so
+/system/lib/libnvos.so
+/system/lib/libnvparser.so
+/system/lib/libnvrm.so
+/system/lib/libnvrm_graphics.so
+/system/lib/libnvsm.so
+/system/lib/libnvtvmr.so
+/system/lib/libnvwinsys.so
+/system/lib/libnvwsi.so
+/system/lib/libsensors.lightsensor.so
+/system/lib/libstagefrighthw.so
+/system/lib/libtf_crypto_sst.so
+/system/lib/libxgold-ril.so
+/system/vendor/firmware/libpn544_fw.so
+/system/vendor/lib/drm/libdrmwvmplugin.so
+/system/vendor/lib/libwvdrm_L1.so
+/system/vendor/lib/libwvm.so
+/system/vendor/lib/libWVStreamControlAPI_L1.so
diff --git a/recovery/Android.mk b/recovery/Android.mk
new file mode 100644
index 00000000000..9475448e577
--- /dev/null
+++ b/recovery/Android.mk
@@ -0,0 +1,31 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_PREBUILT_LIBS := lib/libIMCdownload.a
+LOCAL_MODULE_TAGS := eng
+
+include $(BUILD_MULTI_PREBUILT)
+
+############################################################
+include $(CLEAR_VARS)
+
+LOCAL_PREBUILT_LIBS := lib/libPrgHandler.a
+LOCAL_MODULE_TAGS := eng
+
+include $(BUILD_MULTI_PREBUILT)
+
+############################################################
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := eng
+LOCAL_C_INCLUDES += bootable/recovery \
+ device/asus/tilapia/recovery/lib
+
+LOCAL_SRC_FILES := recovery_updater.c
+
+LOCAL_STATIC_LIBRARIES := libIMCdownload libPrgHandler
+
+# should match TARGET_RECOVERY_UPDATER_LIBS set in BoardConfig.mk
+LOCAL_MODULE := librecovery_updater_tilapia
+
+include $(BUILD_STATIC_LIBRARY)
diff --git a/recovery/lib/downloadFN.h b/recovery/lib/downloadFN.h
new file mode 100755
index 00000000000..b8cb0a7510a
--- /dev/null
+++ b/recovery/lib/downloadFN.h
@@ -0,0 +1,12 @@
+#ifndef _DOWNLOADFN_H
+#define _DOWNLOADFN_H
+
+void SetBaudrate(int baudrate);
+void SetComPort(char *comport);
+void SetTraceFile(char *filepath);
+void SetEraseMode(int value);
+void SetHighPerformance();
+void ResetModem();
+int DownloadFiles(char* file);
+
+#endif
diff --git a/recovery/lib/libIMCdownload.a b/recovery/lib/libIMCdownload.a
new file mode 100644
index 00000000000..4e329612750
--- /dev/null
+++ b/recovery/lib/libIMCdownload.a
Binary files differ
diff --git a/recovery/lib/libPrgHandler.a b/recovery/lib/libPrgHandler.a
new file mode 100644
index 00000000000..48c37d29641
--- /dev/null
+++ b/recovery/lib/libPrgHandler.a
Binary files differ
diff --git a/recovery/recovery_updater.c b/recovery/recovery_updater.c
new file mode 100644
index 00000000000..d75ac0bf8f1
--- /dev/null
+++ b/recovery/recovery_updater.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#include "cutils/misc.h"
+#include "cutils/properties.h"
+#include "edify/expr.h"
+#include "mincrypt/sha.h"
+#include "minzip/DirUtil.h"
+#include "mtdutils/mounts.h"
+#include "mtdutils/mtdutils.h"
+#include "downloadFN.h"
+
+Value* DownloadModemFn(const char* name, State* state, int argc, Expr* argv[]) {
+
+ char* modemImg;
+ int result = -1;
+
+ if (argc != 1)
+ return ErrorAbort(state, "%s() expects 1 arg, got %d", name, argc);
+
+ if (ReadArgs(state, argv, 1, &modemImg) != 0) {
+ return NULL;
+ }
+
+ printf("DownloadModemFn: %s\n", modemImg);
+
+ result = DownloadFiles(modemImg);
+
+ if (result < 0) {
+ printf("Download failed!\n");
+ } else {
+ printf("Download success!\n");
+ ResetModem();
+ sleep(6);
+ }
+ return StringValue(strdup(result >= 0 ? "t" : ""));
+}
+
+void Register_librecovery_updater_tilapia() {
+ printf("Register_librecovery_updater_tilapia is called\n");
+ RegisterFunction("bach.update_modem", DownloadModemFn);
+}
diff --git a/releasetools.py b/releasetools.py
new file mode 100644
index 00000000000..26d9dccb738
--- /dev/null
+++ b/releasetools.py
@@ -0,0 +1,89 @@
+# Copyright (C) 2012 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Emit extra commands needed for Group during OTA installation
+(installing the bootloader)."""
+
+import common
+
+def FullOTA_InstallEnd(info):
+ try:
+ bootloader_bin = info.input_zip.read("RADIO/bootloader.raw")
+ except KeyError:
+ print "no bootloader.raw in target_files; skipping install"
+ else:
+ WriteBootloader(info, bootloader_bin)
+
+ try:
+ radio_img = info.input_zip.read("RADIO/radio.raw")
+ except KeyError:
+ print "no radio.raw in target_files; skipping install"
+ else:
+ WriteRadio(info, radio_img)
+
+def IncrementalOTA_InstallBegin(info):
+ info.script.Unmount("/system")
+ info.script.TunePartition("/system", "-O", "^has_journal")
+ info.script.Mount("/system")
+
+def IncrementalOTA_InstallEnd(info):
+ try:
+ target_bootloader_bin = info.target_zip.read("RADIO/bootloader.raw")
+ try:
+ source_bootloader_bin = info.source_zip.read("RADIO/bootloader.raw")
+ except KeyError:
+ source_bootloader_bin = None
+
+ if source_bootloader_bin == target_bootloader_bin:
+ print "bootloader unchanged; skipping"
+ else:
+ WriteBootloader(info, target_bootloader_bin)
+ except KeyError:
+ print "no bootloader.raw in target target_files; skipping install"
+
+ try:
+ target_radio_img = info.target_zip.read("RADIO/radio.raw")
+ try:
+ source_radio_img = info.source_zip.read("RADIO/radio.raw")
+ except KeyError:
+ source_radio_img = None
+
+ if source_radio_img == target_radio_img:
+ print "radio image unchanged; skipping"
+ else:
+ WriteRadio(info, target_radio_img)
+ except KeyError:
+ print "no radio.raw in target_files; skipping install"
+
+
+def WriteBootloader(info, bootloader_bin):
+ common.ZipWriteStr(info.output_zip, "bootloader.raw", bootloader_bin)
+ fstab = info.info_dict["fstab"]
+
+ info.script.Print("Writing bootloader...")
+
+ info.script.AppendExtra('''package_extract_file("bootloader.raw", "%s");''' %
+ (fstab["/staging"].device,))
+
+def WriteRadio(info, radio_img):
+ common.ZipWriteStr(info.output_zip, "radio.raw", radio_img)
+ fstab = info.info_dict["fstab"]
+
+ info.script.Print("Writing radio...")
+
+ info.script.AppendExtra("""assert(package_extract_file("radio.raw", "%s"),
+ mount("ext4", "EMMC", "%s", "/radio"),
+ bach.update_modem("/radio/SAM_6260_ALL.fls"),
+ unmount("/radio"));""" %
+ (fstab["/radio"].device, fstab["/radio"].device))
diff --git a/self-extractors/Android.mk b/self-extractors/Android.mk
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/self-extractors/Android.mk
diff --git a/self-extractors/PART1 b/self-extractors/PART1
new file mode 100644
index 00000000000..935267e0211
--- /dev/null
+++ b/self-extractors/PART1
@@ -0,0 +1,12 @@
+#
+# Usage is subject to the enclosed license agreement
+
+echo
+echo The license for this software will now be displayed.
+echo You must agree to this license before using this software.
+echo
+echo -n Press Enter to view the license
+read dummy
+echo
+
+more << __EOF__
diff --git a/self-extractors/PART2 b/self-extractors/PART2
new file mode 100644
index 00000000000..30e8d4350db
--- /dev/null
+++ b/self-extractors/PART2
@@ -0,0 +1,22 @@
+__EOF__
+
+if test $? != 0
+then
+ echo ERROR: Couldn\'t display license file 1>&2
+ exit 1
+fi
+
+echo
+
+echo -n Type \"I ACCEPT\" if you agree to the terms of the license:\
+read typed
+
+if test "$typed" != I\ ACCEPT
+then
+ echo
+ echo You didn\'t accept the license. Extraction aborted.
+ exit 2
+fi
+
+echo
+
diff --git a/self-extractors/PART3 b/self-extractors/PART3
new file mode 100644
index 00000000000..6847be5bc94
--- /dev/null
+++ b/self-extractors/PART3
@@ -0,0 +1,12 @@
+
+if test $? != 0
+then
+ echo
+ echo ERROR: Couldn\'t extract files. 1>&2
+ exit 3
+else
+ echo
+ echo Files extracted successfully.
+fi
+exit 0
+
diff --git a/self-extractors/PROLOGUE b/self-extractors/PROLOGUE
new file mode 100644
index 00000000000..c856ef19f62
--- /dev/null
+++ b/self-extractors/PROLOGUE
@@ -0,0 +1,2 @@
+#!/bin/bash
+#
diff --git a/self-extractors/asus/COPYRIGHT b/self-extractors/asus/COPYRIGHT
new file mode 100644
index 00000000000..e2ba69ce003
--- /dev/null
+++ b/self-extractors/asus/COPYRIGHT
@@ -0,0 +1 @@
+# (C) ASUSTek COMPUTER INC.
diff --git a/self-extractors/asus/LICENSE b/self-extractors/asus/LICENSE
new file mode 100644
index 00000000000..2eaa11589cd
--- /dev/null
+++ b/self-extractors/asus/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN ASUSTek COMPUTER INC. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/asus/staging/BoardConfigPartial.mk b/self-extractors/asus/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/asus/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/asus/staging/device-partial.mk b/self-extractors/asus/staging/device-partial.mk
new file mode 100644
index 00000000000..aefc3e713fc
--- /dev/null
+++ b/self-extractors/asus/staging/device-partial.mk
@@ -0,0 +1,24 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Asus blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ sensors-config \
+ apns-conf \
+ camera.tegra3 \
+ sensors.grouper \
+ libsensors.lightsensor \
+ libxgold-ril \
+ libdrmwvmplugin \
+ libwvm
diff --git a/self-extractors/asus/staging/proprietary/Android.mk b/self-extractors/asus/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..6ed27a68ef1
--- /dev/null
+++ b/self-extractors/asus/staging/proprietary/Android.mk
@@ -0,0 +1,98 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := sensors-config
+LOCAL_SRC_FILES := sensors-config
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := apns-conf
+LOCAL_SRC_FILES := apns-conf.xml
+LOCAL_MODULE_SUFFIX := .xml
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := camera.tegra3
+LOCAL_SRC_FILES := camera.tegra3.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/hw
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := sensors.grouper
+LOCAL_SRC_FILES := sensors.grouper.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libsensors.lightsensor
+LOCAL_SRC_FILES := libsensors.lightsensor.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libxgold-ril
+LOCAL_SRC_FILES := libxgold-ril.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libdrmwvmplugin
+LOCAL_SRC_FILES := libdrmwvmplugin.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/drm
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libwvm
+LOCAL_SRC_FILES := libwvm.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := asus
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/broadcom/COPYRIGHT b/self-extractors/broadcom/COPYRIGHT
new file mode 100644
index 00000000000..bf447743825
--- /dev/null
+++ b/self-extractors/broadcom/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Broadcom Corporation
diff --git a/self-extractors/broadcom/LICENSE b/self-extractors/broadcom/LICENSE
new file mode 100644
index 00000000000..f633ddceb6a
--- /dev/null
+++ b/self-extractors/broadcom/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN BROADCOM CORPORATION ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/broadcom/staging/BoardConfigPartial.mk b/self-extractors/broadcom/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/broadcom/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/broadcom/staging/device-partial.mk b/self-extractors/broadcom/staging/device-partial.mk
new file mode 100644
index 00000000000..c0b867bfda8
--- /dev/null
+++ b/self-extractors/broadcom/staging/device-partial.mk
@@ -0,0 +1,20 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Broadcom blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ glgps \
+ gps.tegra3 \
+ gpsconfig \
+ bcm4330
diff --git a/self-extractors/broadcom/staging/proprietary/Android.mk b/self-extractors/broadcom/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..efa1d264f79
--- /dev/null
+++ b/self-extractors/broadcom/staging/proprietary/Android.mk
@@ -0,0 +1,58 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := glgps
+LOCAL_SRC_FILES := glgps
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := broadcom
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := bcm4330
+LOCAL_SRC_FILES := bcm4330.hcd
+LOCAL_MODULE_SUFFIX := .hcd
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := broadcom
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := gpsconfig
+LOCAL_SRC_FILES := gpsconfig.xml
+LOCAL_MODULE_SUFFIX := .xml
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/gps
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := broadcom
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := gps.tegra3
+LOCAL_SRC_FILES := gps.tegra3.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := broadcom
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/elan/COPYRIGHT b/self-extractors/elan/COPYRIGHT
new file mode 100644
index 00000000000..b1082188478
--- /dev/null
+++ b/self-extractors/elan/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Elan Microelectronics Corporation
diff --git a/self-extractors/elan/LICENSE b/self-extractors/elan/LICENSE
new file mode 100644
index 00000000000..3af79ec2fba
--- /dev/null
+++ b/self-extractors/elan/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN ELAN MICROELECTRONICS CORPORATION ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/elan/staging/BoardConfigPartial.mk b/self-extractors/elan/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/elan/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/elan/staging/device-partial.mk b/self-extractors/elan/staging/device-partial.mk
new file mode 100644
index 00000000000..b66889bb7ed
--- /dev/null
+++ b/self-extractors/elan/staging/device-partial.mk
@@ -0,0 +1,17 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Elan blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ touch_fw
diff --git a/self-extractors/elan/staging/proprietary/Android.mk b/self-extractors/elan/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..f8691f8db54
--- /dev/null
+++ b/self-extractors/elan/staging/proprietary/Android.mk
@@ -0,0 +1,29 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := touch_fw
+LOCAL_SRC_FILES := touch_fw.ekt
+LOCAL_MODULE_SUFFIX := .ekt
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := elan
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
new file mode 100644
index 00000000000..32eeafde8c8
--- /dev/null
+++ b/self-extractors/extract-lists.txt
@@ -0,0 +1,105 @@
+ asus)
+ TO_EXTRACT="\
+ system/bin/sensors-config \
+ system/etc/apns-conf.xml \
+ system/lib/hw/camera.tegra3.so \
+ system/lib/hw/sensors.grouper.so \
+ system/lib/libsensors.lightsensor.so \
+ system/lib/libxgold-ril.so \
+ system/vendor/lib/drm/libdrmwvmplugin.so \
+ system/vendor/lib/libwvm.so \
+ "
+ ;;
+ broadcom)
+ TO_EXTRACT="\
+ system/bin/glgps \
+ system/etc/firmware/bcm4330.hcd \
+ system/etc/gps/gpsconfig.xml \
+ system/lib/hw/gps.tegra3.so \
+ "
+ ;;
+ elan)
+ TO_EXTRACT="\
+ system/etc/firmware/touch_fw.ekt \
+ "
+ ;;
+ invensense)
+ TO_EXTRACT="\
+ system/lib/libinvensense_hal.so \
+ system/lib/libmllite.so \
+ system/lib/libmplmpu.so \
+ "
+ ;;
+ nvidia)
+ TO_EXTRACT="\
+ system/bin/tf_daemon \
+ system/etc/firmware/nvavp_os_00001000.bin \
+ system/etc/firmware/nvavp_os_0ff00000.bin \
+ system/etc/firmware/nvavp_os_e0000000.bin \
+ system/etc/firmware/nvavp_os_eff00000.bin \
+ system/etc/firmware/nvavp_vid_ucode_alt.bin \
+ system/etc/nvcamera.conf \
+ system/etc/nvram.txt \
+ system/lib/egl/libEGL_tegra.so \
+ system/lib/egl/libGLESv1_CM_tegra.so \
+ system/lib/egl/libGLESv2_tegra.so \
+ system/lib/hw/gralloc.tegra3.so \
+ system/lib/hw/hwcomposer.tegra3.so \
+ system/lib/libardrv_dynamic.so \
+ system/lib/libcgdrv.so \
+ system/lib/libnvapputil.so \
+ system/lib/libnvasfparserhal.so \
+ system/lib/libnvaviparserhal.so \
+ system/lib/libnvavp.so \
+ system/lib/libnvcamerahdr.so \
+ system/lib/libnvddk_2d.so \
+ system/lib/libnvddk_2d_v2.so \
+ system/lib/libnvdispmgr_d.so \
+ system/lib/libnvmm.so \
+ system/lib/libnvmmlite.so \
+ system/lib/libnvmmlite_audio.so \
+ system/lib/libnvmmlite_image.so \
+ system/lib/libnvmmlite_utils.so \
+ system/lib/libnvmmlite_video.so \
+ system/lib/libnvmm_audio.so \
+ system/lib/libnvmm_camera.so \
+ system/lib/libnvmm_contentpipe.so \
+ system/lib/libnvmm_image.so \
+ system/lib/libnvmm_manager.so \
+ system/lib/libnvmm_misc.so \
+ system/lib/libnvmm_parser.so \
+ system/lib/libnvmm_service.so \
+ system/lib/libnvmm_utils.so \
+ system/lib/libnvmm_video.so \
+ system/lib/libnvmm_writer.so \
+ system/lib/libnvodm_dtvtuner.so \
+ system/lib/libnvodm_hdmi.so \
+ system/lib/libnvodm_imager.so \
+ system/lib/libnvodm_misc.so \
+ system/lib/libnvodm_query.so \
+ system/lib/libnvomx.so \
+ system/lib/libnvomxilclient.so \
+ system/lib/libnvos.so \
+ system/lib/libnvparser.so \
+ system/lib/libnvrm.so \
+ system/lib/libnvrm_graphics.so \
+ system/lib/libnvsm.so \
+ system/lib/libnvtvmr.so \
+ system/lib/libnvwinsys.so \
+ system/lib/libnvwsi.so \
+ system/lib/libstagefrighthw.so \
+ system/lib/libtf_crypto_sst.so \
+ "
+ ;;
+ nxp)
+ TO_EXTRACT="\
+ system/vendor/firmware/libpn544_fw.so \
+ "
+ ;;
+ widevine)
+ TO_EXTRACT="\
+ system/lib/libdrmdecrypt.so \
+ system/vendor/lib/libwvdrm_L1.so \
+ system/vendor/lib/libWVStreamControlAPI_L1.so
+ "
+ ;;
diff --git a/self-extractors/generate-packages.sh b/self-extractors/generate-packages.sh
new file mode 100755
index 00000000000..e5b5322fb0d
--- /dev/null
+++ b/self-extractors/generate-packages.sh
@@ -0,0 +1,209 @@
+#!/bin/sh
+
+# Copyright 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# start jb-mr1-dev
+# 561924 = JOP40G
+# end jb-mr1-dev
+# start jb-mr1.1-dev
+# 551245 = JDP82
+# 573038 = JDQ39
+# end jb-mr1.1-dev
+# start jb-mr2-dev
+# 681336 = JWR50
+# 683083 = JWR51
+# 684634 = JWR52
+# 686185 = JWR53
+# 689345 = JWR58
+# 690834 = JWR59
+# 692263 = JWR60
+# 695489 = JWR64
+# 699533 = JWR66
+# 701448 = JWR66C
+# 704243 = JWR66G
+# 711294 = JWR66N
+# 736095 = JWR66U
+# 737497 = JWR66V
+# end jb-mr2-dev
+BRANCH=klp-dev
+if test $BRANCH = jb-mr1-dev
+then
+ ZIP=nakasig-ota-561924.zip
+ BUILD=jop40g
+fi # jb-mr1-dev
+if test $BRANCH = jb-mr1.1-dev
+then
+ ZIP=nakasig-ota-573038.zip
+ BUILD=jdq39
+fi # jb-mr1.1-dev
+if test $BRANCH = jb-mr2-dev
+then
+ ZIP=nakasig-ota-737497
+ BUILD=jwr66v
+fi # jb-mr2-dev
+if test $BRANCH = klp-dev
+then
+ ZIP=nakasig-ota-937116
+ BUILD=kot49h
+fi # klp-dev
+ROOTDEVICE=tilapia
+DEVICE=tilapia
+MANUFACTURER=asus
+
+for COMPANY in asus broadcom elan invensense nvidia nxp widevine
+do
+ echo Processing files from $COMPANY
+ rm -rf tmp
+ FILEDIR=tmp/vendor/$COMPANY/$DEVICE/proprietary
+ mkdir -p $FILEDIR
+ mkdir -p tmp/vendor/$MANUFACTURER/$ROOTDEVICE
+ case $COMPANY in
+ asus)
+ TO_EXTRACT="\
+ system/bin/sensors-config \
+ system/etc/apns-conf.xml \
+ system/lib/hw/camera.tegra3.so \
+ system/lib/hw/sensors.grouper.so \
+ system/lib/libsensors.lightsensor.so \
+ system/lib/libxgold-ril.so \
+ system/vendor/lib/drm/libdrmwvmplugin.so \
+ system/vendor/lib/libwvm.so \
+ "
+ ;;
+ broadcom)
+ TO_EXTRACT="\
+ system/bin/glgps \
+ system/etc/firmware/bcm4330.hcd \
+ system/etc/gps/gpsconfig.xml \
+ system/lib/hw/gps.tegra3.so \
+ "
+ ;;
+ elan)
+ TO_EXTRACT="\
+ system/etc/firmware/touch_fw.ekt \
+ "
+ ;;
+ invensense)
+ TO_EXTRACT="\
+ system/lib/libinvensense_hal.so \
+ system/lib/libmllite.so \
+ system/lib/libmplmpu.so \
+ "
+ ;;
+ nvidia)
+ TO_EXTRACT="\
+ system/bin/tf_daemon \
+ system/etc/firmware/nvavp_os_00001000.bin \
+ system/etc/firmware/nvavp_os_0ff00000.bin \
+ system/etc/firmware/nvavp_os_e0000000.bin \
+ system/etc/firmware/nvavp_os_eff00000.bin \
+ system/etc/firmware/nvavp_vid_ucode_alt.bin \
+ system/etc/nvcamera.conf \
+ system/etc/nvram.txt \
+ system/lib/egl/libEGL_tegra.so \
+ system/lib/egl/libGLESv1_CM_tegra.so \
+ system/lib/egl/libGLESv2_tegra.so \
+ system/lib/hw/gralloc.tegra3.so \
+ system/lib/hw/hwcomposer.tegra3.so \
+ system/lib/libardrv_dynamic.so \
+ system/lib/libcgdrv.so \
+ system/lib/libnvapputil.so \
+ system/lib/libnvasfparserhal.so \
+ system/lib/libnvaviparserhal.so \
+ system/lib/libnvavp.so \
+ system/lib/libnvcamerahdr.so \
+ system/lib/libnvddk_2d.so \
+ system/lib/libnvddk_2d_v2.so \
+ system/lib/libnvdispmgr_d.so \
+ system/lib/libnvmm.so \
+ system/lib/libnvmmlite.so \
+ system/lib/libnvmmlite_audio.so \
+ system/lib/libnvmmlite_image.so \
+ system/lib/libnvmmlite_utils.so \
+ system/lib/libnvmmlite_video.so \
+ system/lib/libnvmm_audio.so \
+ system/lib/libnvmm_camera.so \
+ system/lib/libnvmm_contentpipe.so \
+ system/lib/libnvmm_image.so \
+ system/lib/libnvmm_manager.so \
+ system/lib/libnvmm_misc.so \
+ system/lib/libnvmm_parser.so \
+ system/lib/libnvmm_service.so \
+ system/lib/libnvmm_utils.so \
+ system/lib/libnvmm_video.so \
+ system/lib/libnvmm_writer.so \
+ system/lib/libnvodm_dtvtuner.so \
+ system/lib/libnvodm_hdmi.so \
+ system/lib/libnvodm_imager.so \
+ system/lib/libnvodm_misc.so \
+ system/lib/libnvodm_query.so \
+ system/lib/libnvomx.so \
+ system/lib/libnvomxilclient.so \
+ system/lib/libnvos.so \
+ system/lib/libnvparser.so \
+ system/lib/libnvrm.so \
+ system/lib/libnvrm_graphics.so \
+ system/lib/libnvsm.so \
+ system/lib/libnvtvmr.so \
+ system/lib/libnvwinsys.so \
+ system/lib/libnvwsi.so \
+ system/lib/libstagefrighthw.so \
+ system/lib/libtf_crypto_sst.so \
+ "
+ ;;
+ nxp)
+ TO_EXTRACT="\
+ system/vendor/firmware/libpn544_fw.so \
+ "
+ ;;
+ widevine)
+ TO_EXTRACT="\
+ system/lib/libdrmdecrypt.so \
+ system/vendor/lib/libwvdrm_L1.so \
+ system/vendor/lib/libWVStreamControlAPI_L1.so
+ "
+ ;;
+ esac
+ echo \ \ Extracting files from OTA package
+ for ONE_FILE in $TO_EXTRACT
+ do
+ echo \ \ \ \ Extracting $ONE_FILE
+ unzip -j -o $ZIP $ONE_FILE -d $FILEDIR > /dev/null || echo \ \ \ \ Error extracting $ONE_FILE
+ if test $ONE_FILE = system/vendor/bin/gpsd -o $ONE_FILE = system/vendor/bin/pvrsrvinit -o $ONE_FILE = system/bin/fRom
+ then
+ chmod a+x $FILEDIR/$(basename $ONE_FILE) || echo \ \ \ \ Error chmoding $ONE_FILE
+ fi
+ done
+ echo \ \ Setting up $COMPANY-specific makefiles
+ cp -R $COMPANY/staging/* tmp/vendor/$COMPANY/$DEVICE || echo \ \ \ \ Error copying makefiles
+ echo \ \ Setting up shared makefiles
+ cp -R root/* tmp/vendor/$MANUFACTURER/$ROOTDEVICE || echo \ \ \ \ Error copying makefiles
+ echo \ \ Generating self-extracting script
+ SCRIPT=extract-$COMPANY-$DEVICE.sh
+ cat PROLOGUE > tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat $COMPANY/COPYRIGHT >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART1 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat $COMPANY/LICENSE >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART2 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ echo tail -n +$(expr 2 + $(cat PROLOGUE $COMPANY/COPYRIGHT PART1 $COMPANY/LICENSE PART2 PART3 | wc -l)) \$0 \| tar zxv >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ cat PART3 >> tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ (cd tmp ; tar zc --owner=root --group=root vendor/ >> $SCRIPT || echo \ \ \ \ Error generating embedded tgz)
+ chmod a+x tmp/$SCRIPT || echo \ \ \ \ Error generating script
+ ARCHIVE=$COMPANY-$DEVICE-$BUILD-$(md5sum < tmp/$SCRIPT | cut -b -8 | tr -d \\n).tgz
+ rm -f $ARCHIVE
+ echo \ \ Generating final archive
+ (cd tmp ; tar --owner=root --group=root -z -c -f ../$ARCHIVE $SCRIPT || echo \ \ \ \ Error archiving script)
+ rm -rf tmp
+done
diff --git a/self-extractors/invensense/COPYRIGHT b/self-extractors/invensense/COPYRIGHT
new file mode 100644
index 00000000000..ee0d3847d3a
--- /dev/null
+++ b/self-extractors/invensense/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Invensense, Inc.
diff --git a/self-extractors/invensense/LICENSE b/self-extractors/invensense/LICENSE
new file mode 100644
index 00000000000..e697fb0658c
--- /dev/null
+++ b/self-extractors/invensense/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN Invensense, Inc. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/invensense/staging/BoardConfigPartial.mk b/self-extractors/invensense/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/invensense/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/invensense/staging/device-partial.mk b/self-extractors/invensense/staging/device-partial.mk
new file mode 100644
index 00000000000..6c2dfac8e02
--- /dev/null
+++ b/self-extractors/invensense/staging/device-partial.mk
@@ -0,0 +1,19 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Invensense blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ libinvensense_hal \
+ libmllite \
+ libmplmpu
diff --git a/self-extractors/invensense/staging/proprietary/Android.mk b/self-extractors/invensense/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..d4d3b7241e0
--- /dev/null
+++ b/self-extractors/invensense/staging/proprietary/Android.mk
@@ -0,0 +1,49 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libinvensense_hal
+LOCAL_SRC_FILES := libinvensense_hal.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := invensense
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmllite
+LOCAL_SRC_FILES := libmllite.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := invensense
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmplmpu
+LOCAL_SRC_FILES := libmplmpu.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := invensense
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/nvidia/COPYRIGHT b/self-extractors/nvidia/COPYRIGHT
new file mode 100644
index 00000000000..c7c4a322132
--- /dev/null
+++ b/self-extractors/nvidia/COPYRIGHT
@@ -0,0 +1 @@
+# (C) NVIDIA Corporation
diff --git a/self-extractors/nvidia/LICENSE b/self-extractors/nvidia/LICENSE
new file mode 100644
index 00000000000..313293a661a
--- /dev/null
+++ b/self-extractors/nvidia/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN NVIDIA CORPORATION ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/nvidia/staging/BoardConfigPartial.mk b/self-extractors/nvidia/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/nvidia/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/nvidia/staging/device-partial.mk b/self-extractors/nvidia/staging/device-partial.mk
new file mode 100644
index 00000000000..4b5399e2a9b
--- /dev/null
+++ b/self-extractors/nvidia/staging/device-partial.mk
@@ -0,0 +1,74 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# NVIDIA blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ nvavp_os_00001000 \
+ nvavp_os_0ff00000 \
+ nvavp_os_e0000000 \
+ nvavp_os_eff00000 \
+ nvavp_vid_ucode_alt \
+ nvcamera \
+ nvram \
+ libEGL_tegra \
+ libGLESv1_CM_tegra \
+ libGLESv2_tegra \
+ gralloc.tegra3 \
+ hwcomposer.tegra3 \
+ libardrv_dynamic \
+ libcgdrv \
+ libnvapputil \
+ libnvasfparserhal \
+ libnvaviparserhal \
+ libnvavp \
+ libnvcamerahdr \
+ libnvddk_2d_v2 \
+ libnvddk_2d \
+ libnvdispmgr_d \
+ libnvmm_audio \
+ libnvmm_camera \
+ libnvmm_contentpipe \
+ libnvmm_image \
+ libnvmm_manager \
+ libnvmm_misc \
+ libnvmm_parser \
+ libnvmm_service \
+ libnvmm_utils \
+ libnvmm_video \
+ libnvmm_writer \
+ libnvmm \
+ libnvmmlite \
+ libnvmmlite_audio \
+ libnvmmlite_image \
+ libnvmmlite_utils \
+ libnvmmlite_video \
+ libnvodm_dtvtuner \
+ libnvodm_hdmi \
+ libnvodm_imager \
+ libnvodm_misc \
+ libnvodm_query \
+ libnvomx \
+ libnvomxilclient \
+ libnvos \
+ libnvparser \
+ libnvrm_graphics \
+ libnvrm \
+ libnvsm \
+ libnvtvmr \
+ libnvwinsys \
+ libnvwsi \
+ libstagefrighthw \
+ libtf_crypto_sst
+
+PRODUCT_PACKAGES += keystore.grouper
diff --git a/self-extractors/nvidia/staging/keymaster/Android.mk b/self-extractors/nvidia/staging/keymaster/Android.mk
new file mode 100644
index 00000000000..43c0f5e04db
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/Android.mk
@@ -0,0 +1,45 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ifeq ($(TARGET_ARCH),arm)
+ifeq ($(TARGET_DEVICE),tilapia)
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := keystore.grouper
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+
+LOCAL_SRC_FILES := \
+ keymaster_grouper.cpp
+
+LOCAL_C_INCLUDES := \
+ libcore/include \
+ external/openssl/include \
+ $(LOCAL_PATH)/../security/tf_sdk/include
+
+LOCAL_CFLAGS := -fvisibility=hidden -Wall -Werror
+
+LOCAL_SHARED_LIBRARIES := libcutils liblog libcrypto libtf_crypto_sst
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_MODULE_OWNER := google
+
+include $(BUILD_SHARED_LIBRARY)
+
+endif
+endif
diff --git a/self-extractors/nvidia/staging/keymaster/NOTICE b/self-extractors/nvidia/staging/keymaster/NOTICE
new file mode 100644
index 00000000000..390eaed5653
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/NOTICE
@@ -0,0 +1,220 @@
+/**
+ * Copyright(c) 2011 Trusted Logic. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Trusted Logic nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+ Copyright (C) 2011 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/self-extractors/nvidia/staging/keymaster/cryptoki.h b/self-extractors/nvidia/staging/keymaster/cryptoki.h
new file mode 100644
index 00000000000..41a66ecc5c9
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/cryptoki.h
@@ -0,0 +1,54 @@
+/**
+ * Copyright(c) 2011 Trusted Logic. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Trusted Logic nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef __CRYPTOKI_H__
+#define __CRYPTOKI_H__
+
+#include "s_type.h"
+
+/* Define CRYPTOKI_EXPORTS during the build of cryptoki libraries. Do
+ * not define it in applications.
+ */
+#ifdef CRYPTOKI_EXPORTS
+#define PKCS11_EXPORT S_DLL_EXPORT
+#else
+#define PKCS11_EXPORT S_DLL_IMPORT
+#endif
+
+#define CKV_TOKEN_SYSTEM 0x00000001
+#define CKV_TOKEN_SYSTEM_SHARED 0x00000000
+#define CKV_TOKEN_USER 0x00004004
+#define CKV_TOKEN_USER_SHARED 0x00004012
+
+#define CKV_TOKEN_SYSTEM_GROUP(gid) (0x00010000 | (gid))
+#define CKV_TOKEN_USER_GROUP(gid) (0x00020000 | (gid))
+
+#include "pkcs11.h"
+
+#endif /* __CRYPTOKI_H__ */
diff --git a/self-extractors/nvidia/staging/keymaster/keymaster_grouper.cpp b/self-extractors/nvidia/staging/keymaster/keymaster_grouper.cpp
new file mode 100644
index 00000000000..978c5be7e94
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/keymaster_grouper.cpp
@@ -0,0 +1,981 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <errno.h>
+#include <string.h>
+#include <stdint.h>
+
+// For debugging
+#define LOG_NDEBUG 0
+
+// TEE is the Trusted Execution Environment
+#define LOG_TAG "TEEKeyMaster"
+#include <cutils/log.h>
+
+#include <hardware/hardware.h>
+#include <hardware/keymaster.h>
+
+#include <openssl/bn.h>
+#include <openssl/err.h>
+#include <openssl/evp.h>
+#include <openssl/rand.h>
+#include <openssl/x509.h>
+
+#include <cryptoki.h>
+#include <pkcs11.h>
+
+#include <UniquePtr.h>
+
+
+/** The size of a key ID in bytes */
+#define ID_LENGTH 32
+
+/** The current stored key version. */
+const static uint32_t KEY_VERSION = 1;
+
+
+struct EVP_PKEY_Delete {
+ void operator()(EVP_PKEY* p) const {
+ EVP_PKEY_free(p);
+ }
+};
+typedef UniquePtr<EVP_PKEY, EVP_PKEY_Delete> Unique_EVP_PKEY;
+
+struct RSA_Delete {
+ void operator()(RSA* p) const {
+ RSA_free(p);
+ }
+};
+typedef UniquePtr<RSA, RSA_Delete> Unique_RSA;
+
+struct PKCS8_PRIV_KEY_INFO_Delete {
+ void operator()(PKCS8_PRIV_KEY_INFO* p) const {
+ PKCS8_PRIV_KEY_INFO_free(p);
+ }
+};
+typedef UniquePtr<PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO_Delete> Unique_PKCS8_PRIV_KEY_INFO;
+
+typedef UniquePtr<keymaster_device_t> Unique_keymaster_device_t;
+
+typedef UniquePtr<CK_BYTE[]> Unique_CK_BYTE;
+
+typedef UniquePtr<CK_ATTRIBUTE[]> Unique_CK_ATTRIBUTE;
+
+class ByteArray {
+public:
+ ByteArray(CK_BYTE* array, size_t len) :
+ mArray(array), mLength(len) {
+ }
+
+ ByteArray(size_t len) :
+ mLength(len) {
+ mArray = new CK_BYTE[len];
+ }
+
+ ~ByteArray() {
+ if (mArray != NULL) {
+ delete[] mArray;
+ }
+ }
+
+ CK_BYTE* get() const {
+ return mArray;
+ }
+
+ void setLength(size_t length) {
+ mLength = length;
+ }
+
+ size_t length() const {
+ return mLength;
+ }
+
+ CK_BYTE* release() {
+ CK_BYTE* array = mArray;
+ mArray = NULL;
+ return array;
+ }
+
+private:
+ CK_BYTE* mArray;
+ size_t mLength;
+};
+typedef UniquePtr<ByteArray> Unique_ByteArray;
+
+class CryptoSession {
+public:
+ CryptoSession(CK_SESSION_HANDLE masterHandle) :
+ mHandle(masterHandle), mSubsession(CK_INVALID_HANDLE) {
+ CK_SESSION_HANDLE subsessionHandle = mHandle;
+ CK_RV openSessionRV = C_OpenSession(CKV_TOKEN_USER,
+ CKF_SERIAL_SESSION | CKF_RW_SESSION | CKVF_OPEN_SUB_SESSION,
+ NULL,
+ NULL,
+ &subsessionHandle);
+
+ if (openSessionRV != CKR_OK || subsessionHandle == CK_INVALID_HANDLE) {
+ (void) C_Finalize(NULL_PTR);
+ ALOGE("Error opening secondary session with TEE: 0x%x", openSessionRV);
+ } else {
+ ALOGV("Opening subsession 0x%x", subsessionHandle);
+ mSubsession = subsessionHandle;
+ }
+ }
+
+ ~CryptoSession() {
+ if (mSubsession != CK_INVALID_HANDLE) {
+ CK_RV rv = C_CloseSession(mSubsession);
+ ALOGV("Closing subsession 0x%x: 0x%x", mSubsession, rv);
+ mSubsession = CK_INVALID_HANDLE;
+ }
+ }
+
+ CK_SESSION_HANDLE get() const {
+ return mSubsession;
+ }
+
+ CK_SESSION_HANDLE getPrimary() const {
+ return mHandle;
+ }
+
+private:
+ CK_SESSION_HANDLE mHandle;
+ CK_SESSION_HANDLE mSubsession;
+};
+
+class ObjectHandle {
+public:
+ ObjectHandle(const CryptoSession* session, CK_OBJECT_HANDLE handle = CK_INVALID_HANDLE) :
+ mSession(session), mHandle(handle) {
+ }
+
+ ~ObjectHandle() {
+ if (mHandle != CK_INVALID_HANDLE) {
+ CK_RV rv = C_CloseObjectHandle(mSession->getPrimary(), mHandle);
+ if (rv != CKR_OK) {
+ ALOGW("Couldn't close object handle 0x%x: 0x%x", mHandle, rv);
+ } else {
+ ALOGV("Closing object handle 0x%x", mHandle);
+ mHandle = CK_INVALID_HANDLE;
+ }
+ }
+ }
+
+ CK_OBJECT_HANDLE get() const {
+ return mHandle;
+ }
+
+ void reset(CK_OBJECT_HANDLE handle) {
+ mHandle = handle;
+ }
+
+private:
+ const CryptoSession* mSession;
+ CK_OBJECT_HANDLE mHandle;
+};
+
+
+/**
+ * Many OpenSSL APIs take ownership of an argument on success but don't free the argument
+ * on failure. This means we need to tell our scoped pointers when we've transferred ownership,
+ * without triggering a warning by not using the result of release().
+ */
+#define OWNERSHIP_TRANSFERRED(obj) \
+ typeof (obj.release()) _dummy __attribute__((unused)) = obj.release()
+
+
+/*
+ * Checks this thread's OpenSSL error queue and logs if
+ * necessary.
+ */
+static void logOpenSSLError(const char* location) {
+ int error = ERR_get_error();
+
+ if (error != 0) {
+ char message[256];
+ ERR_error_string_n(error, message, sizeof(message));
+ ALOGE("OpenSSL error in %s %d: %s", location, error, message);
+ }
+
+ ERR_clear_error();
+ ERR_remove_state(0);
+}
+
+
+/**
+ * Convert from OpenSSL's BIGNUM format to TEE's Big Integer format.
+ */
+static ByteArray* bignum_to_array(const BIGNUM* bn) {
+ const int bignumSize = BN_num_bytes(bn);
+
+ Unique_CK_BYTE bytes(new CK_BYTE[bignumSize]);
+
+ unsigned char* tmp = reinterpret_cast<unsigned char*>(bytes.get());
+ if (BN_bn2bin(bn, tmp) != bignumSize) {
+ ALOGE("public exponent size wasn't what was expected");
+ return NULL;
+ }
+
+ return new ByteArray(bytes.release(), bignumSize);
+}
+
+static void set_attribute(CK_ATTRIBUTE* attrib, CK_ATTRIBUTE_TYPE type, void* pValue,
+ CK_ULONG ulValueLen) {
+ attrib->type = type;
+ attrib->pValue = pValue;
+ attrib->ulValueLen = ulValueLen;
+}
+
+static ByteArray* generate_random_id() {
+ Unique_ByteArray id(new ByteArray(ID_LENGTH));
+ if (RAND_pseudo_bytes(reinterpret_cast<unsigned char*>(id->get()), id->length()) < 0) {
+ return NULL;
+ }
+
+ return id.release();
+}
+
+static int keyblob_save(ByteArray* objId, uint8_t** key_blob, size_t* key_blob_length) {
+ Unique_ByteArray handleBlob(new ByteArray(sizeof(uint32_t) + objId->length()));
+ if (handleBlob.get() == NULL) {
+ ALOGE("Could not allocate key blob");
+ return -1;
+ }
+ uint8_t* tmp = handleBlob->get();
+ for (size_t i = 0; i < sizeof(uint32_t); i++) {
+ *tmp++ = KEY_VERSION >> ((sizeof(uint32_t) - i - 1) * 8);
+ }
+ memcpy(tmp, objId->get(), objId->length());
+
+ *key_blob_length = handleBlob->length();
+ *key_blob = handleBlob->get();
+ ByteArray* unused __attribute__((unused)) = handleBlob.release();
+
+ return 0;
+}
+
+static int find_single_object(const uint8_t* obj_id, const size_t obj_id_length,
+ CK_OBJECT_CLASS obj_class, const CryptoSession* session, ObjectHandle* object) {
+
+ // Note that the CKA_ID attribute is never written, so we can cast away const here.
+ void* obj_id_ptr = reinterpret_cast<void*>(const_cast<uint8_t*>(obj_id));
+ CK_ATTRIBUTE attributes[] = {
+ { CKA_ID, obj_id_ptr, obj_id_length },
+ { CKA_CLASS, &obj_class, sizeof(obj_class) },
+ };
+
+ CK_RV rv = C_FindObjectsInit(session->get(), attributes,
+ sizeof(attributes) / sizeof(CK_ATTRIBUTE));
+ if (rv != CKR_OK) {
+ ALOGE("Error in C_FindObjectsInit: 0x%x", rv);
+ return -1;
+ }
+
+ CK_OBJECT_HANDLE tmpHandle;
+ CK_ULONG tmpCount;
+
+ rv = C_FindObjects(session->get(), &tmpHandle, 1, &tmpCount);
+ ALOGV("Found %d object 0x%x : class 0x%x", tmpCount, tmpHandle, obj_class);
+ if (rv != CKR_OK || tmpCount != 1) {
+ C_FindObjectsFinal(session->get());
+ ALOGE("Couldn't find key!");
+ return -1;
+ }
+ C_FindObjectsFinal(session->get());
+
+ object->reset(tmpHandle);
+ return 0;
+}
+
+static int keyblob_restore(const CryptoSession* session, const uint8_t* keyBlob,
+ const size_t keyBlobLength, ObjectHandle* public_key, ObjectHandle* private_key) {
+ if (keyBlob == NULL) {
+ ALOGE("key blob was null");
+ return -1;
+ }
+
+ if (keyBlobLength < (sizeof(KEY_VERSION) + ID_LENGTH)) {
+ ALOGE("key blob is not correct size");
+ return -1;
+ }
+
+ uint32_t keyVersion = 0;
+
+ const uint8_t* p = keyBlob;
+ for (size_t i = 0; i < sizeof(keyVersion); i++) {
+ keyVersion = (keyVersion << 8) | *p++;
+ }
+
+ if (keyVersion != 1) {
+ ALOGE("Invalid key version %d", keyVersion);
+ return -1;
+ }
+
+ return find_single_object(p, ID_LENGTH, CKO_PUBLIC_KEY, session, public_key)
+ || find_single_object(p, ID_LENGTH, CKO_PRIVATE_KEY, session, private_key);
+}
+
+static int tee_generate_keypair(const keymaster_device_t* dev,
+ const keymaster_keypair_t type, const void* key_params,
+ uint8_t** key_blob, size_t* key_blob_length) {
+ CK_BBOOL bTRUE = CK_TRUE;
+
+ if (type != TYPE_RSA) {
+ ALOGW("Unknown key type %d", type);
+ return -1;
+ }
+
+ if (key_params == NULL) {
+ ALOGW("generate_keypair params were NULL");
+ return -1;
+ }
+
+ keymaster_rsa_keygen_params_t* rsa_params = (keymaster_rsa_keygen_params_t*) key_params;
+
+ CK_MECHANISM mechanism = {
+ CKM_RSA_PKCS_KEY_PAIR_GEN, NULL, 0,
+ };
+ CK_ULONG modulusBits = (CK_ULONG) rsa_params->modulus_size;
+
+ /**
+ * Convert our unsigned 64-bit integer to the TEE Big Integer class. It's
+ * an unsigned array of bytes with MSB first.
+ */
+ CK_BYTE publicExponent[sizeof(uint64_t)];
+ const uint64_t exp = rsa_params->public_exponent;
+ size_t offset = sizeof(publicExponent) - 1;
+ for (size_t i = 0; i < sizeof(publicExponent); i++) {
+ publicExponent[offset--] = (exp >> (i * CHAR_BIT)) & 0xFF;
+ }
+
+ Unique_ByteArray objId(generate_random_id());
+ if (objId.get() == NULL) {
+ ALOGE("Couldn't generate random key ID");
+ return -1;
+ }
+
+ CK_ATTRIBUTE publicKeyTemplate[] = {
+ {CKA_ID, objId->get(), objId->length()},
+ {CKA_TOKEN, &bTRUE, sizeof(bTRUE)},
+ {CKA_ENCRYPT, &bTRUE, sizeof(bTRUE)},
+ {CKA_VERIFY, &bTRUE, sizeof(bTRUE)},
+ {CKA_MODULUS_BITS, &modulusBits, sizeof(modulusBits)},
+ {CKA_PUBLIC_EXPONENT, publicExponent, sizeof(publicExponent)},
+ };
+
+ CK_ATTRIBUTE privateKeyTemplate[] = {
+ {CKA_ID, objId->get(), objId->length()},
+ {CKA_TOKEN, &bTRUE, sizeof(bTRUE)},
+ {CKA_DECRYPT, &bTRUE, sizeof(bTRUE)},
+ {CKA_SIGN, &bTRUE, sizeof(bTRUE)},
+ };
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ CK_OBJECT_HANDLE hPublicKey, hPrivateKey;
+ CK_RV rv = C_GenerateKeyPair(session.get(),
+ &mechanism,
+ publicKeyTemplate,
+ sizeof(publicKeyTemplate)/sizeof(CK_ATTRIBUTE),
+ privateKeyTemplate,
+ sizeof(privateKeyTemplate)/sizeof(CK_ATTRIBUTE),
+ &hPublicKey,
+ &hPrivateKey);
+
+ if (rv != CKR_OK) {
+ ALOGE("Generate keypair failed: 0x%x", rv);
+ return -1;
+ }
+
+ ObjectHandle publicKey(&session, hPublicKey);
+ ObjectHandle privateKey(&session, hPrivateKey);
+ ALOGV("public handle = 0x%x, private handle = 0x%x", publicKey.get(), privateKey.get());
+
+ return keyblob_save(objId.get(), key_blob, key_blob_length);
+}
+
+static int tee_import_keypair(const keymaster_device_t* dev,
+ const uint8_t* key, const size_t key_length,
+ uint8_t** key_blob, size_t* key_blob_length) {
+ CK_RV rv;
+ CK_BBOOL bTRUE = CK_TRUE;
+
+ if (key == NULL) {
+ ALOGW("provided key is null");
+ return -1;
+ }
+
+ Unique_PKCS8_PRIV_KEY_INFO pkcs8(d2i_PKCS8_PRIV_KEY_INFO(NULL, &key, key_length));
+ if (pkcs8.get() == NULL) {
+ logOpenSSLError("tee_import_keypair");
+ return -1;
+ }
+
+ /* assign to EVP */
+ Unique_EVP_PKEY pkey(EVP_PKCS82PKEY(pkcs8.get()));
+ if (pkey.get() == NULL) {
+ logOpenSSLError("tee_import_keypair");
+ return -1;
+ }
+
+ if (EVP_PKEY_type(pkey->type) != EVP_PKEY_RSA) {
+ ALOGE("Unsupported key type: %d", EVP_PKEY_type(pkey->type));
+ return -1;
+ }
+
+ Unique_RSA rsa(EVP_PKEY_get1_RSA(pkey.get()));
+ if (rsa.get() == NULL) {
+ logOpenSSLError("tee_import_keypair");
+ return -1;
+ }
+
+ Unique_ByteArray modulus(bignum_to_array(rsa->n));
+ if (modulus.get() == NULL) {
+ ALOGW("Could not convert modulus to array");
+ return -1;
+ }
+
+ Unique_ByteArray publicExponent(bignum_to_array(rsa->e));
+ if (publicExponent.get() == NULL) {
+ ALOGW("Could not convert publicExponent to array");
+ return -1;
+ }
+
+ CK_KEY_TYPE rsaType = CKK_RSA;
+
+ CK_OBJECT_CLASS pubClass = CKO_PUBLIC_KEY;
+
+ Unique_ByteArray objId(generate_random_id());
+ if (objId.get() == NULL) {
+ ALOGE("Couldn't generate random key ID");
+ return -1;
+ }
+
+ CK_ATTRIBUTE publicKeyTemplate[] = {
+ {CKA_ID, objId->get(), objId->length()},
+ {CKA_TOKEN, &bTRUE, sizeof(bTRUE)},
+ {CKA_CLASS, &pubClass, sizeof(pubClass)},
+ {CKA_KEY_TYPE, &rsaType, sizeof(rsaType)},
+ {CKA_ENCRYPT, &bTRUE, sizeof(bTRUE)},
+ {CKA_VERIFY, &bTRUE, sizeof(bTRUE)},
+ {CKA_MODULUS, modulus->get(), modulus->length()},
+ {CKA_PUBLIC_EXPONENT, publicExponent->get(), publicExponent->length()},
+ };
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ CK_OBJECT_HANDLE hPublicKey;
+ rv = C_CreateObject(session.get(),
+ publicKeyTemplate,
+ sizeof(publicKeyTemplate)/sizeof(CK_ATTRIBUTE),
+ &hPublicKey);
+ if (rv != CKR_OK) {
+ ALOGE("Creation of public key failed: 0x%x", rv);
+ return -1;
+ }
+ ObjectHandle publicKey(&session, hPublicKey);
+
+ Unique_ByteArray privateExponent(bignum_to_array(rsa->d));
+ if (privateExponent.get() == NULL) {
+ ALOGW("Could not convert private exponent");
+ return -1;
+ }
+
+
+ /*
+ * Normally we need:
+ * CKA_ID
+ * CKA_TOKEN
+ * CKA_CLASS
+ * CKA_KEY_TYPE
+ *
+ * CKA_DECRYPT
+ * CKA_SIGN
+ *
+ * CKA_MODULUS
+ * CKA_PUBLIC_EXPONENT
+ * CKA_PRIVATE_EXPONENT
+ */
+#define PRIV_ATTRIB_NORMAL_NUM (4 + 2 + 3)
+
+ /*
+ * For additional private key values:
+ * CKA_PRIME_1
+ * CKA_PRIME_2
+ *
+ * CKA_EXPONENT_1
+ * CKA_EXPONENT_2
+ *
+ * CKA_COEFFICIENT
+ */
+#define PRIV_ATTRIB_EXTENDED_NUM (PRIV_ATTRIB_NORMAL_NUM + 5)
+
+ /*
+ * If we have the prime, prime exponents, and coefficient, we can
+ * copy them in.
+ */
+ bool has_extra_data = (rsa->p != NULL) && (rsa->q != NULL) && (rsa->dmp1 != NULL) &&
+ (rsa->dmq1 != NULL) && (rsa->iqmp != NULL);
+
+ Unique_CK_ATTRIBUTE privateKeyTemplate(new CK_ATTRIBUTE[
+ has_extra_data ? PRIV_ATTRIB_EXTENDED_NUM : PRIV_ATTRIB_NORMAL_NUM]);
+
+ CK_OBJECT_CLASS privClass = CKO_PRIVATE_KEY;
+
+ size_t templateOffset = 0;
+
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_ID, objId->get(), objId->length());
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_TOKEN, &bTRUE, sizeof(bTRUE));
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_CLASS, &privClass, sizeof(privClass));
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_KEY_TYPE, &rsaType, sizeof(rsaType));
+
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_DECRYPT, &bTRUE, sizeof(bTRUE));
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_SIGN, &bTRUE, sizeof(bTRUE));
+
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_MODULUS, modulus->get(),
+ modulus->length());
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_PUBLIC_EXPONENT,
+ publicExponent->get(), publicExponent->length());
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_PRIVATE_EXPONENT,
+ privateExponent->get(), privateExponent->length());
+
+ Unique_ByteArray prime1, prime2, exp1, exp2, coeff;
+ if (has_extra_data) {
+ prime1.reset(bignum_to_array(rsa->p));
+ if (prime1->get() == NULL) {
+ ALOGW("Could not convert prime1");
+ return -1;
+ }
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_PRIME_1, prime1->get(),
+ prime1->length());
+
+ prime2.reset(bignum_to_array(rsa->q));
+ if (prime2->get() == NULL) {
+ ALOGW("Could not convert prime2");
+ return -1;
+ }
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_PRIME_2, prime2->get(),
+ prime2->length());
+
+ exp1.reset(bignum_to_array(rsa->dmp1));
+ if (exp1->get() == NULL) {
+ ALOGW("Could not convert exponent 1");
+ return -1;
+ }
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_EXPONENT_1, exp1->get(),
+ exp1->length());
+
+ exp2.reset(bignum_to_array(rsa->dmq1));
+ if (exp2->get() == NULL) {
+ ALOGW("Could not convert exponent 2");
+ return -1;
+ }
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_EXPONENT_2, exp2->get(),
+ exp2->length());
+
+ coeff.reset(bignum_to_array(rsa->iqmp));
+ if (coeff->get() == NULL) {
+ ALOGW("Could not convert coefficient");
+ return -1;
+ }
+ set_attribute(&privateKeyTemplate[templateOffset++], CKA_COEFFICIENT, coeff->get(),
+ coeff->length());
+ }
+
+ CK_OBJECT_HANDLE hPrivateKey;
+ rv = C_CreateObject(session.get(),
+ privateKeyTemplate.get(),
+ templateOffset,
+ &hPrivateKey);
+ if (rv != CKR_OK) {
+ ALOGE("Creation of private key failed: 0x%x", rv);
+ return -1;
+ }
+ ObjectHandle privateKey(&session, hPrivateKey);
+
+ ALOGV("public handle = 0x%x, private handle = 0x%x", publicKey.get(), privateKey.get());
+
+ return keyblob_save(objId.get(), key_blob, key_blob_length);
+}
+
+static int tee_get_keypair_public(const struct keymaster_device* dev,
+ const uint8_t* key_blob, const size_t key_blob_length,
+ uint8_t** x509_data, size_t* x509_data_length) {
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ ObjectHandle publicKey(&session);
+ ObjectHandle privateKey(&session);
+
+ if (keyblob_restore(&session, key_blob, key_blob_length, &publicKey, &privateKey)) {
+ return -1;
+ }
+
+ if (x509_data == NULL || x509_data_length == NULL) {
+ ALOGW("Provided destination variables were null");
+ return -1;
+ }
+
+ CK_ATTRIBUTE attributes[] = {
+ {CKA_MODULUS, NULL, 0},
+ {CKA_PUBLIC_EXPONENT, NULL, 0},
+ };
+
+ // Call first to get the sizes of the values.
+ CK_RV rv = C_GetAttributeValue(session.get(), publicKey.get(), attributes,
+ sizeof(attributes)/sizeof(CK_ATTRIBUTE));
+ if (rv != CKR_OK) {
+ ALOGW("Could not query attribute value sizes: 0x%02x", rv);
+ return -1;
+ }
+
+ ByteArray modulus(new CK_BYTE[attributes[0].ulValueLen], attributes[0].ulValueLen);
+ ByteArray exponent(new CK_BYTE[attributes[1].ulValueLen], attributes[1].ulValueLen);
+
+ attributes[0].pValue = modulus.get();
+ attributes[1].pValue = exponent.get();
+
+ rv = C_GetAttributeValue(session.get(), publicKey.get(), attributes,
+ sizeof(attributes) / sizeof(CK_ATTRIBUTE));
+ if (rv != CKR_OK) {
+ ALOGW("Could not query attribute values: 0x%02x", rv);
+ return -1;
+ }
+
+ ALOGV("modulus is %d (ret=%d), exponent is %d (ret=%d)",
+ modulus.length(), attributes[0].ulValueLen,
+ exponent.length(), attributes[1].ulValueLen);
+
+ /*
+ * Work around a bug in the implementation. The first call to measure how large the array
+ * should be sometimes returns values that are too large. The call to get the actual value
+ * returns the correct length of the array, so use that instead.
+ */
+ modulus.setLength(attributes[0].ulValueLen);
+ exponent.setLength(attributes[1].ulValueLen);
+
+ Unique_RSA rsa(RSA_new());
+ if (rsa.get() == NULL) {
+ ALOGE("Could not allocate RSA structure");
+ return -1;
+ }
+
+ rsa->n = BN_bin2bn(reinterpret_cast<const unsigned char*>(modulus.get()), modulus.length(),
+ NULL);
+ if (rsa->n == NULL) {
+ logOpenSSLError("tee_get_keypair_public");
+ return -1;
+ }
+
+ rsa->e = BN_bin2bn(reinterpret_cast<const unsigned char*>(exponent.get()), exponent.length(),
+ NULL);
+ if (rsa->e == NULL) {
+ logOpenSSLError("tee_get_keypair_public");
+ return -1;
+ }
+
+ Unique_EVP_PKEY pkey(EVP_PKEY_new());
+ if (pkey.get() == NULL) {
+ ALOGE("Could not allocate EVP_PKEY structure");
+ return -1;
+ }
+ if (EVP_PKEY_assign_RSA(pkey.get(), rsa.get()) != 1) {
+ logOpenSSLError("tee_get_keypair_public");
+ return -1;
+ }
+ OWNERSHIP_TRANSFERRED(rsa);
+
+ int len = i2d_PUBKEY(pkey.get(), NULL);
+ if (len <= 0) {
+ logOpenSSLError("tee_get_keypair_public");
+ return -1;
+ }
+
+ UniquePtr<uint8_t> key(static_cast<uint8_t*>(malloc(len)));
+ if (key.get() == NULL) {
+ ALOGE("Could not allocate memory for public key data");
+ return -1;
+ }
+
+ unsigned char* tmp = reinterpret_cast<unsigned char*>(key.get());
+ if (i2d_PUBKEY(pkey.get(), &tmp) != len) {
+ logOpenSSLError("tee_get_keypair_public");
+ return -1;
+ }
+
+ ALOGV("Length of x509 data is %d", len);
+ *x509_data_length = len;
+ *x509_data = key.release();
+
+ return 0;
+}
+
+static int tee_delete_keypair(const struct keymaster_device* dev,
+ const uint8_t* key_blob, const size_t key_blob_length) {
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ ObjectHandle publicKey(&session);
+ ObjectHandle privateKey(&session);
+
+ if (keyblob_restore(&session, key_blob, key_blob_length, &publicKey, &privateKey)) {
+ return -1;
+ }
+
+ // Delete the private key.
+ CK_RV rv = C_DestroyObject(session.get(), privateKey.get());
+ if (rv != CKR_OK) {
+ ALOGW("Could destroy private key object: 0x%02x", rv);
+ return -1;
+ }
+
+ // Delete the public key.
+ rv = C_DestroyObject(session.get(), publicKey.get());
+ if (rv != CKR_OK) {
+ ALOGW("Could destroy public key object: 0x%02x", rv);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int tee_sign_data(const keymaster_device_t* dev,
+ const void* params,
+ const uint8_t* key_blob, const size_t key_blob_length,
+ const uint8_t* data, const size_t dataLength,
+ uint8_t** signedData, size_t* signedDataLength) {
+ ALOGV("tee_sign_data(%p, %p, %llu, %p, %llu, %p, %p)", dev, key_blob,
+ (unsigned long long) key_blob_length, data, (unsigned long long) dataLength, signedData,
+ signedDataLength);
+
+ if (params == NULL) {
+ ALOGW("Signing params were null");
+ return -1;
+ }
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ ObjectHandle publicKey(&session);
+ ObjectHandle privateKey(&session);
+
+ if (keyblob_restore(&session, key_blob, key_blob_length, &publicKey, &privateKey)) {
+ return -1;
+ }
+ ALOGV("public handle = 0x%x, private handle = 0x%x", publicKey.get(), privateKey.get());
+
+ keymaster_rsa_sign_params_t* sign_params = (keymaster_rsa_sign_params_t*) params;
+ if (sign_params->digest_type != DIGEST_NONE) {
+ ALOGW("Cannot handle digest type %d", sign_params->digest_type);
+ return -1;
+ } else if (sign_params->padding_type != PADDING_NONE) {
+ ALOGW("Cannot handle padding type %d", sign_params->padding_type);
+ return -1;
+ }
+
+ CK_MECHANISM rawRsaMechanism = {
+ CKM_RSA_X_509, NULL, 0
+ };
+
+ CK_RV rv = C_SignInit(session.get(), &rawRsaMechanism, privateKey.get());
+ if (rv != CKR_OK) {
+ ALOGV("C_SignInit failed: 0x%x", rv);
+ return -1;
+ }
+
+ CK_BYTE signature[1024];
+ CK_ULONG signatureLength = 1024;
+
+ rv = C_Sign(session.get(), data, dataLength, signature, &signatureLength);
+ if (rv != CKR_OK) {
+ ALOGV("C_SignFinal failed: 0x%x", rv);
+ return -1;
+ }
+
+ UniquePtr<uint8_t[]> finalSignature(new uint8_t[signatureLength]);
+ if (finalSignature.get() == NULL) {
+ ALOGE("Couldn't allocate memory to copy signature");
+ return -1;
+ }
+
+ memcpy(finalSignature.get(), signature, signatureLength);
+
+ *signedData = finalSignature.release();
+ *signedDataLength = static_cast<size_t>(signatureLength);
+
+ ALOGV("tee_sign_data(%p, %p, %llu, %p, %llu, %p, %p) => %p size %llu", dev, key_blob,
+ (unsigned long long) key_blob_length, data, (unsigned long long) dataLength, signedData,
+ signedDataLength, *signedData, (unsigned long long) *signedDataLength);
+
+ return 0;
+}
+
+static int tee_verify_data(const keymaster_device_t* dev,
+ const void* params,
+ const uint8_t* keyBlob, const size_t keyBlobLength,
+ const uint8_t* signedData, const size_t signedDataLength,
+ const uint8_t* signature, const size_t signatureLength) {
+ ALOGV("tee_verify_data(%p, %p, %llu, %p, %llu, %p, %llu)", dev, keyBlob,
+ (unsigned long long) keyBlobLength, signedData, (unsigned long long) signedDataLength,
+ signature, (unsigned long long) signatureLength);
+
+ if (params == NULL) {
+ ALOGW("Verification params were null");
+ return -1;
+ }
+
+ CryptoSession session(reinterpret_cast<CK_SESSION_HANDLE>(dev->context));
+
+ ObjectHandle publicKey(&session);
+ ObjectHandle privateKey(&session);
+
+ if (keyblob_restore(&session, keyBlob, keyBlobLength, &publicKey, &privateKey)) {
+ return -1;
+ }
+ ALOGV("public handle = 0x%x, private handle = 0x%x", publicKey.get(), privateKey.get());
+
+ keymaster_rsa_sign_params_t* sign_params = (keymaster_rsa_sign_params_t*) params;
+ if (sign_params->digest_type != DIGEST_NONE) {
+ ALOGW("Cannot handle digest type %d", sign_params->digest_type);
+ return -1;
+ } else if (sign_params->padding_type != PADDING_NONE) {
+ ALOGW("Cannot handle padding type %d", sign_params->padding_type);
+ return -1;
+ }
+
+ CK_MECHANISM rawRsaMechanism = {
+ CKM_RSA_X_509, NULL, 0
+ };
+
+ CK_RV rv = C_VerifyInit(session.get(), &rawRsaMechanism, publicKey.get());
+ if (rv != CKR_OK) {
+ ALOGV("C_VerifyInit failed: 0x%x", rv);
+ return -1;
+ }
+
+ // This is a bad prototype for this function. C_Verify should have only const args.
+ rv = C_Verify(session.get(), signedData, signedDataLength,
+ const_cast<unsigned char*>(signature), signatureLength);
+ if (rv != CKR_OK) {
+ ALOGV("C_Verify failed: 0x%x", rv);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* Close an opened OpenSSL instance */
+static int tee_close(hw_device_t *dev) {
+ keymaster_device_t *keymaster_dev = (keymaster_device_t *) dev;
+ if (keymaster_dev != NULL) {
+ CK_SESSION_HANDLE handle = reinterpret_cast<CK_SESSION_HANDLE>(keymaster_dev->context);
+ if (handle != CK_INVALID_HANDLE) {
+ C_CloseSession(handle);
+ }
+ }
+
+ CK_RV finalizeRV = C_Finalize(NULL_PTR);
+ if (finalizeRV != CKR_OK) {
+ ALOGE("Error closing the TEE");
+ }
+ free(dev);
+
+ return 0;
+}
+
+/*
+ * Generic device handling
+ */
+static int tee_open(const hw_module_t* module, const char* name,
+ hw_device_t** device) {
+ if (strcmp(name, KEYSTORE_KEYMASTER) != 0)
+ return -EINVAL;
+
+ Unique_keymaster_device_t dev(new keymaster_device_t);
+ if (dev.get() == NULL)
+ return -ENOMEM;
+
+ dev->common.tag = HARDWARE_DEVICE_TAG;
+ dev->common.version = 1;
+ dev->common.module = (struct hw_module_t*) module;
+ dev->common.close = tee_close;
+
+ dev->generate_keypair = tee_generate_keypair;
+ dev->import_keypair = tee_import_keypair;
+ dev->get_keypair_public = tee_get_keypair_public;
+ dev->delete_keypair = tee_delete_keypair;
+ dev->sign_data = tee_sign_data;
+ dev->verify_data = tee_verify_data;
+ dev->delete_all = NULL;
+
+ CK_RV initializeRV = C_Initialize(NULL);
+ if (initializeRV != CKR_OK) {
+ ALOGE("Error initializing TEE: 0x%x", initializeRV);
+ return -ENODEV;
+ }
+
+ CK_INFO info;
+ CK_RV infoRV = C_GetInfo(&info);
+ if (infoRV != CKR_OK) {
+ (void) C_Finalize(NULL_PTR);
+ ALOGE("Error getting information about TEE during initialization: 0x%x", infoRV);
+ return -ENODEV;
+ }
+
+ ALOGI("C_GetInfo cryptokiVer=%d.%d manufID=%s flags=%d libDesc=%s libVer=%d.%d\n",
+ info.cryptokiVersion.major, info.cryptokiVersion.minor,
+ info.manufacturerID, info.flags, info.libraryDescription,
+ info.libraryVersion.major, info.libraryVersion.minor);
+
+ CK_SESSION_HANDLE sessionHandle = CK_INVALID_HANDLE;
+
+ CK_RV openSessionRV = C_OpenSession(CKV_TOKEN_USER,
+ CKF_SERIAL_SESSION | CKF_RW_SESSION,
+ NULL,
+ NULL,
+ &sessionHandle);
+
+ if (openSessionRV != CKR_OK || sessionHandle == CK_INVALID_HANDLE) {
+ (void) C_Finalize(NULL_PTR);
+ ALOGE("Error opening primary session with TEE: 0x%x", openSessionRV);
+ return -1;
+ }
+
+ ERR_load_crypto_strings();
+ ERR_load_BIO_strings();
+
+ dev->context = reinterpret_cast<void*>(sessionHandle);
+ *device = reinterpret_cast<hw_device_t*>(dev.release());
+
+ return 0;
+}
+
+static struct hw_module_methods_t keystore_module_methods = {
+ open: tee_open,
+};
+
+struct keystore_module HAL_MODULE_INFO_SYM
+__attribute__ ((visibility ("default"))) = {
+ common: {
+ tag: HARDWARE_MODULE_TAG,
+ version_major: 1,
+ version_minor: 0,
+ id: KEYSTORE_HARDWARE_MODULE_ID,
+ name: "Keymaster TEE HAL",
+ author: "The Android Open Source Project",
+ methods: &keystore_module_methods,
+ dso: 0,
+ reserved: {},
+ },
+};
diff --git a/self-extractors/nvidia/staging/keymaster/pkcs11.h b/self-extractors/nvidia/staging/keymaster/pkcs11.h
new file mode 100644
index 00000000000..8f28917f6eb
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/pkcs11.h
@@ -0,0 +1,595 @@
+/**
+ * Copyright(c) 2011 Trusted Logic. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Trusted Logic nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This header file contains the definition of the PKCS#11 types and functions
+ * supported by the Trusted Foundations Software. This header file is
+ * derived from the RSA Security Inc. PKCS #11 Cryptographic Token Interface
+ * (Cryptoki)
+ */
+#ifndef __PKCS11_H__
+#define __PKCS11_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*------------------------------------------
+* Types and constants
+*------------------------------------------*/
+
+#include "s_type.h"
+
+#define CK_TRUE true
+#define CK_FALSE false
+
+#ifndef FALSE
+#define FALSE CK_FALSE
+#endif
+
+#ifndef TRUE
+#define TRUE CK_TRUE
+#endif
+
+#define NULL_PTR NULL
+
+typedef uint8_t CK_BYTE, *CK_BYTE_PTR;
+typedef CK_BYTE CK_CHAR, *CK_CHAR_PTR;
+typedef CK_BYTE CK_UTF8CHAR, *CK_UTF8CHAR_PTR;
+typedef bool CK_BBOOL;
+typedef uint32_t CK_ULONG, *CK_ULONG_PTR;
+typedef int32_t CK_LONG;
+typedef CK_ULONG CK_FLAGS;
+typedef void* CK_VOID_PTR, *CK_VOID_PTR_PTR;
+
+#define CK_INVALID_HANDLE 0
+
+typedef struct CK_VERSION
+{
+ CK_BYTE major;
+ CK_BYTE minor;
+}
+CK_VERSION, *CK_VERSION_PTR;
+
+typedef struct CK_INFO
+{
+ CK_VERSION cryptokiVersion;
+ CK_UTF8CHAR manufacturerID[32];
+ CK_FLAGS flags;
+ CK_UTF8CHAR libraryDescription[32];
+ CK_VERSION libraryVersion;
+}
+CK_INFO, *CK_INFO_PTR;
+
+typedef CK_ULONG CK_NOTIFICATION;
+typedef CK_ULONG CK_SLOT_ID, *CK_SLOT_ID_PTR;
+typedef CK_ULONG CK_SESSION_HANDLE, *CK_SESSION_HANDLE_PTR;
+
+typedef CK_ULONG CK_USER_TYPE;
+#define CKU_SO 0
+#define CKU_USER 1
+#define CKU_CONTEXT_SPECIFIC 2
+
+typedef CK_ULONG CK_STATE;
+#define CKS_RO_PUBLIC_SESSION 0
+#define CKS_RO_USER_FUNCTIONS 1
+#define CKS_RW_PUBLIC_SESSION 2
+#define CKS_RW_USER_FUNCTIONS 3
+#define CKS_RW_SO_FUNCTIONS 4
+
+typedef struct CK_SESSION_INFO
+{
+ CK_SLOT_ID slotID;
+ CK_STATE state;
+ CK_FLAGS flags;
+ CK_ULONG ulDeviceError;
+}
+CK_SESSION_INFO, *CK_SESSION_INFO_PTR;
+
+#define CKF_RW_SESSION 0x00000002
+#define CKF_SERIAL_SESSION 0x00000004
+#define CKVF_OPEN_SUB_SESSION 0x00000008
+
+typedef CK_ULONG CK_OBJECT_HANDLE, *CK_OBJECT_HANDLE_PTR;
+
+typedef CK_ULONG CK_OBJECT_CLASS, *CK_OBJECT_CLASS_PTR;
+
+#define CKO_DATA 0x00000000
+#define CKO_PUBLIC_KEY 0x00000002
+#define CKO_PRIVATE_KEY 0x00000003
+#define CKO_SECRET_KEY 0x00000004
+
+typedef CK_ULONG CK_KEY_TYPE;
+
+#define CKK_RSA 0x00000000
+#define CKK_DSA 0x00000001
+#define CKK_DH 0x00000002
+#define CKK_EC 0x00000003
+
+#define CKK_GENERIC_SECRET 0x00000010
+
+#define CKK_RC4 0x00000012
+#define CKK_DES 0x00000013
+#define CKK_DES2 0x00000014
+#define CKK_DES3 0x00000015
+
+#define CKK_AES 0x0000001F
+
+#define CKK_VENDOR_DEFINED 0x80000000
+
+typedef CK_ULONG CK_ATTRIBUTE_TYPE;
+
+#define CKF_ARRAY_ATTRIBUTE 0x40000000
+
+#define CKA_CLASS 0x00000000
+#define CKA_TOKEN 0x00000001
+#define CKA_PRIVATE 0x00000002
+#define CKA_VALUE 0x00000011
+
+#define CKA_OBJECT_ID 0x00000012
+
+#define CKA_KEY_TYPE 0x00000100
+#define CKA_ID 0x00000102
+#define CKA_SENSITIVE 0x00000103
+#define CKA_ENCRYPT 0x00000104
+#define CKA_DECRYPT 0x00000105
+#define CKA_WRAP 0x00000106
+#define CKA_UNWRAP 0x00000107
+#define CKA_SIGN 0x00000108
+#define CKA_VERIFY 0x0000010A
+#define CKA_DERIVE 0x0000010C
+#define CKA_MODULUS 0x00000120
+#define CKA_MODULUS_BITS 0x00000121
+#define CKA_PUBLIC_EXPONENT 0x00000122
+#define CKA_PRIVATE_EXPONENT 0x00000123
+#define CKA_PRIME_1 0x00000124
+#define CKA_PRIME_2 0x00000125
+#define CKA_EXPONENT_1 0x00000126
+#define CKA_EXPONENT_2 0x00000127
+#define CKA_COEFFICIENT 0x00000128
+#define CKA_PRIME 0x00000130
+#define CKA_SUBPRIME 0x00000131
+#define CKA_BASE 0x00000132
+
+#define CKA_VALUE_BITS 0x00000160
+#define CKA_VALUE_LEN 0x00000161
+
+#define CKA_EXTRACTABLE 0x00000162
+
+#define CKA_MODIFIABLE 0x00000170
+#define CKA_COPYABLE 0x00000171
+#define CKA_ALWAYS_AUTHENTICATE 0x00000202
+
+#define CKA_VENDOR_DEFINED 0x80000000
+
+#define CKAV_ALLOW_NON_SENSITIVE_DERIVED_KEY 0x80000001
+
+typedef struct CK_ATTRIBUTE
+{
+ CK_ATTRIBUTE_TYPE type;
+ void* pValue;
+ CK_ULONG ulValueLen;
+}
+CK_ATTRIBUTE, *CK_ATTRIBUTE_PTR;
+
+typedef CK_ULONG CK_MECHANISM_TYPE, *CK_MECHANISM_TYPE_PTR;
+
+#define CKM_RSA_PKCS_KEY_PAIR_GEN 0x00000000
+#define CKM_RSA_PKCS 0x00000001
+#define CKM_RSA_X_509 0x00000003
+#define CKM_MD5_RSA_PKCS 0x00000005
+#define CKM_SHA1_RSA_PKCS 0x00000006
+#define CKM_RSA_PKCS_OAEP 0x00000009
+#define CKM_RSA_PKCS_PSS 0x0000000D
+#define CKM_SHA1_RSA_PKCS_PSS 0x0000000E
+#define CKM_DSA_KEY_PAIR_GEN 0x00000010
+#define CKM_DSA 0x00000011
+#define CKM_DSA_SHA1 0x00000012
+#define CKM_DH_PKCS_KEY_PAIR_GEN 0x00000020
+#define CKM_DH_PKCS_DERIVE 0x00000021
+#define CKM_SHA256_RSA_PKCS 0x00000040
+#define CKM_SHA384_RSA_PKCS 0x00000041
+#define CKM_SHA512_RSA_PKCS 0x00000042
+#define CKM_SHA256_RSA_PKCS_PSS 0x00000043
+#define CKM_SHA384_RSA_PKCS_PSS 0x00000044
+#define CKM_SHA512_RSA_PKCS_PSS 0x00000045
+#define CKM_SHA224_RSA_PKCS 0x00000046
+#define CKM_SHA224_RSA_PKCS_PSS 0x00000047
+#define CKM_RC4_KEY_GEN 0x00000110
+#define CKM_RC4 0x00000111
+#define CKM_DES_KEY_GEN 0x00000120
+#define CKM_DES_ECB 0x00000121
+#define CKM_DES_CBC 0x00000122
+#define CKM_DES_MAC 0x00000123
+#define CKM_DES2_KEY_GEN 0x00000130
+#define CKM_DES3_KEY_GEN 0x00000131
+#define CKM_DES3_ECB 0x00000132
+#define CKM_DES3_CBC 0x00000133
+#define CKM_DES3_MAC 0x00000134
+#define CKM_MD5 0x00000210
+#define CKM_MD5_HMAC 0x00000211
+#define CKM_SHA_1 0x00000220
+#define CKM_SHA_1_HMAC 0x00000221
+#define CKM_SHA256 0x00000250
+#define CKM_SHA256_HMAC 0x00000251
+#define CKM_SHA224 0x00000255
+#define CKM_SHA224_HMAC 0x00000256
+#define CKM_SHA384 0x00000260
+#define CKM_SHA384_HMAC 0x00000261
+#define CKM_SHA512 0x00000270
+#define CKM_SHA512_HMAC 0x00000271
+#define CKM_GENERIC_SECRET_KEY_GEN 0x00000350
+#define CKM_AES_KEY_GEN 0x00001080
+#define CKM_AES_ECB 0x00001081
+#define CKM_AES_CBC 0x00001082
+#define CKM_AES_MAC 0x00001083
+#define CKM_AES_CTR 0x00001086
+#define CKM_VENDOR_DEFINED 0x80000000
+#define CKMV_AES_CTR 0x80000001
+
+#define CKMV_IMPLEMENTATION_DEFINED_0 0xC0000000
+#define CKMV_IMPLEMENTATION_DEFINED_1 0xC0000001
+#define CKMV_IMPLEMENTATION_DEFINED_2 0xC0000002
+#define CKMV_IMPLEMENTATION_DEFINED_3 0xC0000003
+#define CKMV_IMPLEMENTATION_DEFINED_4 0xC0000004
+#define CKMV_IMPLEMENTATION_DEFINED_5 0xC0000005
+#define CKMV_IMPLEMENTATION_DEFINED_6 0xC0000006
+#define CKMV_IMPLEMENTATION_DEFINED_7 0xC0000007
+#define CKMV_IMPLEMENTATION_DEFINED_8 0xC0000008
+#define CKMV_IMPLEMENTATION_DEFINED_9 0xC0000009
+#define CKMV_IMPLEMENTATION_DEFINED_10 0xC000000A
+#define CKMV_IMPLEMENTATION_DEFINED_11 0xC000000B
+#define CKMV_IMPLEMENTATION_DEFINED_12 0xC000000C
+#define CKMV_IMPLEMENTATION_DEFINED_13 0xC000000D
+#define CKMV_IMPLEMENTATION_DEFINED_14 0xC000000E
+#define CKMV_IMPLEMENTATION_DEFINED_15 0xC000000F
+
+typedef struct CK_MECHANISM
+{
+ CK_MECHANISM_TYPE mechanism;
+ void* pParameter;
+ CK_ULONG ulParameterLen; /* in bytes */
+}
+CK_MECHANISM, *CK_MECHANISM_PTR;
+
+typedef CK_ULONG CK_RV;
+
+#define CKR_OK 0x00000000
+#define CKR_CANCEL 0x00000001
+#define CKR_HOST_MEMORY 0x00000002
+#define CKR_SLOT_ID_INVALID 0x00000003
+#define CKR_GENERAL_ERROR 0x00000005
+#define CKR_ARGUMENTS_BAD 0x00000007
+#define CKR_ATTRIBUTE_SENSITIVE 0x00000011
+#define CKR_ATTRIBUTE_TYPE_INVALID 0x00000012
+#define CKR_ATTRIBUTE_VALUE_INVALID 0x00000013
+#define CKR_COPY_PROHIBITED 0x0000001A
+#define CKR_DATA_INVALID 0x00000020
+#define CKR_DATA_LEN_RANGE 0x00000021
+#define CKR_DEVICE_ERROR 0x00000030
+#define CKR_DEVICE_MEMORY 0x00000031
+#define CKR_ENCRYPTED_DATA_INVALID 0x00000040
+#define CKR_ENCRYPTED_DATA_LEN_RANGE 0x00000041
+#define CKR_KEY_HANDLE_INVALID 0x00000060
+#define CKR_KEY_SIZE_RANGE 0x00000062
+#define CKR_KEY_TYPE_INCONSISTENT 0x00000063
+#define CKR_KEY_FUNCTION_NOT_PERMITTED 0x00000068
+#define CKR_KEY_NOT_WRAPPABLE 0x00000069
+#define CKR_MECHANISM_INVALID 0x00000070
+#define CKR_MECHANISM_PARAM_INVALID 0x00000071
+#define CKR_OBJECT_HANDLE_INVALID 0x00000082
+#define CKR_OPERATION_ACTIVE 0x00000090
+#define CKR_OPERATION_NOT_INITIALIZED 0x00000091
+#define CKR_PIN_INCORRECT 0x000000A0
+#define CKR_SESSION_COUNT 0x000000B1
+#define CKR_SESSION_HANDLE_INVALID 0x000000B3
+#define CKR_SESSION_PARALLEL_NOT_SUPPORTED 0x000000B4
+#define CKR_SESSION_READ_ONLY 0x000000B5
+#define CKR_SIGNATURE_INVALID 0x000000C0
+#define CKR_SIGNATURE_LEN_RANGE 0x000000C1
+#define CKR_TEMPLATE_INCOMPLETE 0x000000D0
+#define CKR_TEMPLATE_INCONSISTENT 0x000000D1
+#define CKR_TOKEN_NOT_PRESENT 0x000000E0
+#define CKR_USER_ALREADY_LOGGED_IN 0x00000100
+#define CKR_USER_NOT_LOGGED_IN 0x00000101
+#define CKR_USER_TYPE_INVALID 0x00000103
+#define CKR_WRAPPED_KEY_LEN_RANGE 0x00000112
+#define CKR_WRAPPING_KEY_HANDLE_INVALID 0x00000113
+#define CKR_RANDOM_SEED_NOT_SUPPORTED 0x00000120
+#define CKR_RANDOM_NO_RNG 0x00000121
+#define CKR_BUFFER_TOO_SMALL 0x00000150
+#define CKR_CRYPTOKI_NOT_INITIALIZED 0x00000190
+#define CKR_CRYPTOKI_ALREADY_INITIALIZED 0x00000191
+#define CKR_VENDOR_DEFINED 0x80000000
+
+typedef CK_RV (*CK_NOTIFY)(
+ CK_SESSION_HANDLE hSession,
+ CK_NOTIFICATION event,
+ void* pApplication
+);
+
+typedef CK_ULONG CK_RSA_PKCS_MGF_TYPE, *CK_RSA_PKCS_MGF_TYPE_PTR;
+
+#define CKG_MGF1_SHA1 0x00000001
+#define CKG_MGF1_SHA256 0x00000002
+#define CKG_MGF1_SHA384 0x00000003
+#define CKG_MGF1_SHA512 0x00000004
+#define CKG_MGF1_SHA224 0x00000005
+
+typedef CK_ULONG CK_RSA_PKCS_OAEP_SOURCE_TYPE, *CK_RSA_PKCS_OAEP_SOURCE_TYPE_PTR;
+
+#define CKZ_DATA_SPECIFIED 0x00000001
+typedef struct CK_RSA_PKCS_OAEP_PARAMS
+{
+ CK_MECHANISM_TYPE hashAlg;
+ CK_RSA_PKCS_MGF_TYPE mgf;
+ CK_RSA_PKCS_OAEP_SOURCE_TYPE source;
+ void* pSourceData;
+ CK_ULONG ulSourceDataLen;
+}
+CK_RSA_PKCS_OAEP_PARAMS, *CK_RSA_PKCS_OAEP_PARAMS_PTR;
+
+typedef struct CK_RSA_PKCS_PSS_PARAMS
+{
+ CK_MECHANISM_TYPE hashAlg;
+ CK_RSA_PKCS_MGF_TYPE mgf;
+ CK_ULONG sLen;
+}
+CK_RSA_PKCS_PSS_PARAMS, *CK_RSA_PKCS_PSS_PARAMS_PTR;
+
+typedef struct CK_AES_CTR_PARAMS
+{
+ CK_ULONG ulCounterBits;
+ CK_BYTE cb[16];
+}
+CK_AES_CTR_PARAMS, *CK_AES_CTR_PARAMS_PTR;
+
+/*------------------------------------------
+* Functions
+*------------------------------------------*/
+CK_RV PKCS11_EXPORT C_Initialize(void* pInitArgs);
+
+CK_RV PKCS11_EXPORT C_Finalize(void* pReserved);
+
+CK_RV PKCS11_EXPORT C_GetInfo(CK_INFO* pInfo);
+
+CK_RV PKCS11_EXPORT C_OpenSession(
+ CK_SLOT_ID slotID,
+ CK_FLAGS flags,
+ void* pApplication,
+ CK_NOTIFY Notify,
+ CK_SESSION_HANDLE* phSession);
+
+CK_RV PKCS11_EXPORT C_CloseSession(
+ CK_SESSION_HANDLE hSession);
+
+CK_RV PKCS11_EXPORT C_Login(
+ CK_SESSION_HANDLE hSession,
+ CK_USER_TYPE userType,
+ const CK_UTF8CHAR* pPin,
+ CK_ULONG ulPinLen);
+
+CK_RV PKCS11_EXPORT C_Logout(
+ CK_SESSION_HANDLE hSession);
+
+CK_RV PKCS11_EXPORT C_CreateObject(
+ CK_SESSION_HANDLE hSession,
+ const CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulCount,
+ CK_OBJECT_HANDLE* phObject);
+
+CK_RV PKCS11_EXPORT C_DestroyObject(
+ CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject);
+
+CK_RV PKCS11_EXPORT C_GetAttributeValue(
+ CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulCount);
+
+CK_RV PKCS11_EXPORT C_FindObjectsInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulCount);
+
+CK_RV PKCS11_EXPORT C_FindObjects(
+ CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE* phObject,
+ CK_ULONG ulMaxObjectCount,
+ CK_ULONG* pulObjectCount);
+
+CK_RV PKCS11_EXPORT C_FindObjectsFinal(
+ CK_SESSION_HANDLE hSession);
+
+CK_RV PKCS11_EXPORT C_EncryptInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ CK_OBJECT_HANDLE hKey);
+
+CK_RV PKCS11_EXPORT C_Encrypt(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pData,
+ CK_ULONG ulDataLen,
+ CK_BYTE* pEncryptedData,
+ CK_ULONG* pulEncryptedDataLen);
+
+CK_RV PKCS11_EXPORT C_EncryptUpdate(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pPart,
+ CK_ULONG ulPartLen,
+ CK_BYTE* pEncryptedPart,
+ CK_ULONG* pulEncryptedPartLen);
+
+CK_RV PKCS11_EXPORT C_EncryptFinal(
+ CK_SESSION_HANDLE hSession,
+ CK_BYTE* pLastEncryptedPart,
+ CK_ULONG* pulLastEncryptedPartLen);
+
+CK_RV PKCS11_EXPORT C_DecryptInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ CK_OBJECT_HANDLE hKey);
+
+CK_RV PKCS11_EXPORT C_Decrypt(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pEncryptedData,
+ CK_ULONG ulEncryptedDataLen,
+ CK_BYTE* pData,
+ CK_ULONG* pulDataLen);
+
+CK_RV PKCS11_EXPORT C_DecryptUpdate(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pEncryptedPart,
+ CK_ULONG ulEncryptedPartLen,
+ CK_BYTE* pPart,
+ CK_ULONG* pulPartLen);
+
+CK_RV PKCS11_EXPORT C_DecryptFinal(
+ CK_SESSION_HANDLE hSession,
+ CK_BYTE* pLastPart,
+ CK_ULONG* pulLastPartLen);
+
+CK_RV PKCS11_EXPORT C_DigestInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism);
+
+CK_RV PKCS11_EXPORT C_Digest(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pData,
+ CK_ULONG ulDataLen,
+ CK_BYTE* pDigest,
+ CK_ULONG* pulDigestLen);
+
+CK_RV PKCS11_EXPORT C_DigestUpdate(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pPart,
+ CK_ULONG ulPartLen);
+
+CK_RV PKCS11_EXPORT C_DigestFinal(
+ CK_SESSION_HANDLE hSession,
+ CK_BYTE* pDigest,
+ CK_ULONG* pulDigestLen);
+
+CK_RV PKCS11_EXPORT C_SignInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ CK_OBJECT_HANDLE hKey);
+
+CK_RV PKCS11_EXPORT C_Sign(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pData,
+ CK_ULONG ulDataLen,
+ CK_BYTE* pSignature,
+ CK_ULONG* pulSignatureLen);
+
+CK_RV PKCS11_EXPORT C_SignUpdate(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pPart,
+ CK_ULONG ulPartLen);
+
+CK_RV PKCS11_EXPORT C_SignFinal(
+ CK_SESSION_HANDLE hSession,
+ CK_BYTE* pSignature,
+ CK_ULONG* pulSignatureLen);
+
+CK_RV PKCS11_EXPORT C_VerifyInit(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ CK_OBJECT_HANDLE hKey);
+
+CK_RV PKCS11_EXPORT C_Verify(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pData,
+ CK_ULONG ulDataLen,
+ CK_BYTE* pSignature,
+ CK_ULONG ulSignatureLen);
+
+CK_RV PKCS11_EXPORT C_VerifyUpdate(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pPart,
+ CK_ULONG ulPartLen);
+
+CK_RV PKCS11_EXPORT C_VerifyFinal(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pSignature,
+ CK_ULONG ulSignatureLen);
+
+CK_RV PKCS11_EXPORT C_GenerateKey(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ const CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulCount,
+ CK_OBJECT_HANDLE* phKey);
+
+CK_RV PKCS11_EXPORT C_GenerateKeyPair(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ const CK_ATTRIBUTE* pPublicKeyTemplate,
+ CK_ULONG ulPublicKeyAttributeCount,
+ const CK_ATTRIBUTE* pPrivateKeyTemplate,
+ CK_ULONG ulPrivateKeyAttributeCount,
+ CK_OBJECT_HANDLE* phPublicKey,
+ CK_OBJECT_HANDLE* phPrivateKey);
+
+CK_RV PKCS11_EXPORT C_DeriveKey(
+ CK_SESSION_HANDLE hSession,
+ const CK_MECHANISM* pMechanism,
+ CK_OBJECT_HANDLE hBaseKey,
+ const CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulAttributeCount,
+ CK_OBJECT_HANDLE* phKey);
+
+CK_RV PKCS11_EXPORT C_SeedRandom(
+ CK_SESSION_HANDLE hSession,
+ const CK_BYTE* pSeed,
+ CK_ULONG ulSeedLen);
+
+CK_RV PKCS11_EXPORT C_GenerateRandom(
+ CK_SESSION_HANDLE hSession,
+ CK_BYTE* pRandomData,
+ CK_ULONG ulRandomLen);
+
+CK_RV PKCS11_EXPORT C_CloseObjectHandle(
+ CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject);
+
+CK_RV PKCS11_EXPORT C_CopyObject(
+ CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ const CK_ATTRIBUTE* pTemplate,
+ CK_ULONG ulAttributeCount,
+ CK_OBJECT_HANDLE* phNewObject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PKCS11_H__ */
diff --git a/self-extractors/nvidia/staging/keymaster/s_type.h b/self-extractors/nvidia/staging/keymaster/s_type.h
new file mode 100644
index 00000000000..ae260cc46a1
--- /dev/null
+++ b/self-extractors/nvidia/staging/keymaster/s_type.h
@@ -0,0 +1,146 @@
+/**
+ * Copyright(c) 2011 Trusted Logic. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name Trusted Logic nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * Definition of the machine-specific integer types
+ **/
+#ifndef __S_TYPE_H__
+#define __S_TYPE_H__
+
+/* C99 integer types */
+#if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) &&(!defined(ANDROID))
+
+#include <limits.h>
+
+/* Figure out if a 64-bit integer types is available */
+#if \
+ defined(_MSC_VER) || \
+ defined(__SYMBIAN32__) || \
+ defined(_WIN32_WCE) || \
+ (defined(ULLONG_MAX) && ULLONG_MAX == 0xFFFFFFFFFFFFFFFFULL) || \
+ (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 0xFFFFFFFFFFFFFFFFULL)
+typedef unsigned long long uint64_t;
+typedef long long int64_t;
+#else
+#define __S_TYPE_INT64_UNDEFINED
+#endif
+
+#if UINT_MAX == 0xFFFFFFFF
+typedef unsigned int uint32_t;
+typedef int int32_t;
+#elif ULONG_MAX == 0xFFFFFFFF
+typedef unsigned long uint32_t;
+typedef long int32_t;
+#else
+#error This compiler is not supported.
+#endif
+
+#if USHRT_MAX == 0xFFFF
+typedef unsigned short uint16_t;
+typedef short int16_t;
+#else
+#error This compiler is not supported.
+#endif
+
+#if UCHAR_MAX == 0xFF
+typedef unsigned char uint8_t;
+typedef signed char int8_t;
+#else
+#error This compiler is not supported.
+#endif
+
+#if !defined(__cplusplus)
+typedef unsigned char bool;
+#define false ( (bool)0 )
+#define true ( (bool)1 )
+#endif
+
+#else /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
+
+#include <stdbool.h>
+#include <stdint.h>
+
+#endif /* !(!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) */
+
+#include <stddef.h>
+
+#ifndef NULL
+# ifdef __cplusplus
+# define NULL 0
+# else
+# define NULL ((void *)0)
+# endif
+#endif
+
+#define IN
+#define OUT
+
+/*
+ * Definition of other common types
+ */
+
+typedef uint32_t S_RESULT;
+typedef S_RESULT TEEC_Result;
+typedef S_RESULT SM_ERROR;
+
+typedef uint32_t S_HANDLE;
+typedef S_HANDLE SM_HANDLE;
+#define S_HANDLE_NULL ((S_HANDLE)0)
+#define SM_HANDLE_INVALID S_HANDLE_NULL
+
+/** Definition of an UUID (from RFC 4122 http://www.ietf.org/rfc/rfc4122.txt) */
+typedef struct S_UUID
+{
+ uint32_t time_low;
+ uint16_t time_mid;
+ uint16_t time_hi_and_version;
+ uint8_t clock_seq_and_node[8];
+}S_UUID;
+typedef S_UUID TEEC_UUID;
+typedef S_UUID SM_UUID;
+
+/* DLL Import/Export directives */
+
+#if defined(WIN32) || defined(__ARMCC_VERSION) || defined(__WINSCW__) || defined(_WIN32_WCE)
+# define S_DLL_EXPORT __declspec(dllexport)
+# define S_DLL_IMPORT __declspec(dllimport)
+# define S_NO_RETURN __declspec(noreturn)
+#elif defined(__GNUC__)
+# define S_DLL_EXPORT __attribute__ ((visibility ("default")))
+# define S_DLL_IMPORT __attribute__ ((visibility ("default")))
+# define S_NO_RETURN __attribute__ ((noreturn))
+#else
+# define S_DLL_EXPORT
+# define S_DLL_IMPORT
+# define S_NO_RETURN
+#endif
+
+#endif /* __S_TYPE_H__ */
+
diff --git a/self-extractors/nvidia/staging/proprietary/Android.mk b/self-extractors/nvidia/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..f71e7ad2a42
--- /dev/null
+++ b/self-extractors/nvidia/staging/proprietary/Android.mk
@@ -0,0 +1,579 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := gralloc.tegra3
+LOCAL_SRC_FILES := gralloc.tegra3.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/hw
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := hwcomposer.tegra3
+LOCAL_SRC_FILES := hwcomposer.tegra3.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/hw
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libardrv_dynamic
+LOCAL_SRC_FILES := libardrv_dynamic.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libcgdrv
+LOCAL_SRC_FILES := libcgdrv.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libEGL_tegra
+LOCAL_SRC_FILES := libEGL_tegra.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libGLESv1_CM_tegra
+LOCAL_SRC_FILES := libGLESv1_CM_tegra.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libGLESv2_tegra
+LOCAL_SRC_FILES := libGLESv2_tegra.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvapputil
+LOCAL_SRC_FILES := libnvapputil.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvasfparserhal
+LOCAL_SRC_FILES := libnvasfparserhal.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvaviparserhal
+LOCAL_SRC_FILES := libnvaviparserhal.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvavp
+LOCAL_SRC_FILES := libnvavp.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvcamerahdr
+LOCAL_SRC_FILES := libnvcamerahdr.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvddk_2d
+LOCAL_SRC_FILES := libnvddk_2d.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvddk_2d_v2
+LOCAL_SRC_FILES := libnvddk_2d_v2.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvdispmgr_d
+LOCAL_SRC_FILES := libnvdispmgr_d.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm
+LOCAL_SRC_FILES := libnvmm.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmmlite
+LOCAL_SRC_FILES := libnvmmlite.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmmlite_audio
+LOCAL_SRC_FILES := libnvmmlite_audio.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmmlite_image
+LOCAL_SRC_FILES := libnvmmlite_image.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmmlite_utils
+LOCAL_SRC_FILES := libnvmmlite_utils.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmmlite_video
+LOCAL_SRC_FILES := libnvmmlite_video.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_audio
+LOCAL_SRC_FILES := libnvmm_audio.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_camera
+LOCAL_SRC_FILES := libnvmm_camera.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_contentpipe
+LOCAL_SRC_FILES := libnvmm_contentpipe.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_image
+LOCAL_SRC_FILES := libnvmm_image.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_manager
+LOCAL_SRC_FILES := libnvmm_manager.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_misc
+LOCAL_SRC_FILES := libnvmm_misc.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_parser
+LOCAL_SRC_FILES := libnvmm_parser.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_service
+LOCAL_SRC_FILES := libnvmm_service.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_utils
+LOCAL_SRC_FILES := libnvmm_utils.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_video
+LOCAL_SRC_FILES := libnvmm_video.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvmm_writer
+LOCAL_SRC_FILES := libnvmm_writer.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvodm_dtvtuner
+LOCAL_SRC_FILES := libnvodm_dtvtuner.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvodm_hdmi
+LOCAL_SRC_FILES := libnvodm_hdmi.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvodm_imager
+LOCAL_SRC_FILES := libnvodm_imager.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvodm_misc
+LOCAL_SRC_FILES := libnvodm_misc.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvodm_query
+LOCAL_SRC_FILES := libnvodm_query.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvomx
+LOCAL_SRC_FILES := libnvomx.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvomxilclient
+LOCAL_SRC_FILES := libnvomxilclient.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvos
+LOCAL_SRC_FILES := libnvos.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvparser
+LOCAL_SRC_FILES := libnvparser.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvrm
+LOCAL_SRC_FILES := libnvrm.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvrm_graphics
+LOCAL_SRC_FILES := libnvrm_graphics.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvsm
+LOCAL_SRC_FILES := libnvsm.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvtvmr
+LOCAL_SRC_FILES := libnvtvmr.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvwinsys
+LOCAL_SRC_FILES := libnvwinsys.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libnvwsi
+LOCAL_SRC_FILES := libnvwsi.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libstagefrighthw
+LOCAL_SRC_FILES := libstagefrighthw.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libtf_crypto_sst
+LOCAL_SRC_FILES := libtf_crypto_sst.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvavp_os_00001000
+LOCAL_SRC_FILES := nvavp_os_00001000.bin
+LOCAL_MODULE_SUFFIX := .bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvavp_os_0ff00000
+LOCAL_SRC_FILES := nvavp_os_0ff00000.bin
+LOCAL_MODULE_SUFFIX := .bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvavp_os_e0000000
+LOCAL_SRC_FILES := nvavp_os_e0000000.bin
+LOCAL_MODULE_SUFFIX := .bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvavp_os_eff00000
+LOCAL_SRC_FILES := nvavp_os_eff00000.bin
+LOCAL_MODULE_SUFFIX := .bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvavp_vid_ucode_alt
+LOCAL_SRC_FILES := nvavp_vid_ucode_alt.bin
+LOCAL_MODULE_SUFFIX := .bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvcamera
+LOCAL_SRC_FILES := nvcamera.conf
+LOCAL_MODULE_SUFFIX := .conf
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/etc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := nvram
+LOCAL_SRC_FILES := nvram.txt
+LOCAL_MODULE_SUFFIX := .txt
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nvidia
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/nxp/COPYRIGHT b/self-extractors/nxp/COPYRIGHT
new file mode 100644
index 00000000000..446c4f7911d
--- /dev/null
+++ b/self-extractors/nxp/COPYRIGHT
@@ -0,0 +1 @@
+# (C) NXP Semiconductors Netherlands B.V.
diff --git a/self-extractors/nxp/LICENSE b/self-extractors/nxp/LICENSE
new file mode 100644
index 00000000000..f684b9e5096
--- /dev/null
+++ b/self-extractors/nxp/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN NXP Semiconductors Netherlands B.V ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means the device
+ known as the Nexus 7 only.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/nxp/staging/BoardConfigPartial.mk b/self-extractors/nxp/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/nxp/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/nxp/staging/device-partial.mk b/self-extractors/nxp/staging/device-partial.mk
new file mode 100644
index 00000000000..7bb9ee6240f
--- /dev/null
+++ b/self-extractors/nxp/staging/device-partial.mk
@@ -0,0 +1,17 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# NXP blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ libpn544_fw
diff --git a/self-extractors/nxp/staging/proprietary/Android.mk b/self-extractors/nxp/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..bb1b6542fbb
--- /dev/null
+++ b/self-extractors/nxp/staging/proprietary/Android.mk
@@ -0,0 +1,29 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libpn544_fw
+LOCAL_SRC_FILES := libpn544_fw.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := nxp
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/root/BoardConfigVendor.mk b/self-extractors/root/BoardConfigVendor.mk
new file mode 100644
index 00000000000..2f679f02534
--- /dev/null
+++ b/self-extractors/root/BoardConfigVendor.mk
@@ -0,0 +1,23 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_STEM := tilapia/BoardConfigPartial.mk
+
+-include vendor/asus/$(LOCAL_STEM)
+-include vendor/broadcom/$(LOCAL_STEM)
+-include vendor/elan/$(LOCAL_STEM)
+-include vendor/invensense/$(LOCAL_STEM)
+-include vendor/nvidia/$(LOCAL_STEM)
+-include vendor/nxp/$(LOCAL_STEM)
+-include vendor/widevine/$(LOCAL_STEM)
diff --git a/self-extractors/root/device-vendor.mk b/self-extractors/root/device-vendor.mk
new file mode 100644
index 00000000000..70fe00db631
--- /dev/null
+++ b/self-extractors/root/device-vendor.mk
@@ -0,0 +1,25 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_STEM := tilapia/device-partial.mk
+
+$(call inherit-product-if-exists, vendor/asus/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/broadcom/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/elan/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/invensense/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/nvidia/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/nxp/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/widevine/$(LOCAL_STEM))
+
+PRODUCT_RESTRICT_VENDOR_FILES := owner
diff --git a/self-extractors/widevine/COPYRIGHT b/self-extractors/widevine/COPYRIGHT
new file mode 100644
index 00000000000..db593aed8f8
--- /dev/null
+++ b/self-extractors/widevine/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Google Inc.
diff --git a/self-extractors/widevine/LICENSE b/self-extractors/widevine/LICENSE
new file mode 100644
index 00000000000..164dae28834
--- /dev/null
+++ b/self-extractors/widevine/LICENSE
@@ -0,0 +1,225 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN Google Inc. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+ 1. Special Definitions
+
+ a. The term "Android" means the open source mobile platform, software
+ stack, operating system, middleware, application programming
+ interfaces and mobile applications under the trade-name "Android"
+ distributed at Android.com.
+
+ b. The term "Android Applications" means a software application or
+ open-source contribution developed by You, designed to operate with
+ Android that does not contain or incorporate any of the Software.
+
+ c. The term "Authorized Android Enabled Device" means only the device
+ identified on the site from which You downloaded the Software.
+ The term "Software" means the Licensor's proprietary software and
+ libraries in object code form, designed for use on the Authorized
+ Android Enabled Device.
+
+ d. The term "Authorized Android Enabled Device Software" means a
+ packaged build for Authorized Android Enabled Devices, consisting
+ of files suitable for installation on an Authorized Android Enabled
+ Device using a mechanism such as fastboot mode or recovery mode.
+
+ 2. License Grant
+
+ a. Subject to the terms of this Agreement, Licensor hereby grants to
+ You, free of charge, a non-exclusive, non-sublicensable,
+ non-transferable, limited license, during the term of
+ this Agreement, to download, install and use the Software
+ internally in machine-readable (i.e., object code) form and the
+ Documentation for non-commercial use on an Authorized Android
+ Enabled Device and non-commercial redistribution of the Authorized
+ Android Enabled Device Software (the "Limited Purpose"). You may
+ grant your end users the right to use the Software for
+ the Limited Purpose.
+ The license to the Software granted to You hereunder is solely for
+ the Limited Purpose set forth in this section, and the Software
+ shall not be used for any other purpose.
+
+ 3. Restrictions
+
+ a. Retention of Rights. The entire right, title and interest in the
+ Software shall remain with Licensor and, unless specified in
+ writing hereunder, no rights are granted to any of the Software.
+ Except for the right to use the Software for the Limited Purpose,
+ the delivery of the Software to You does not convey to You any
+ intellectual property rights in the Software, including, but not
+ limited to any rights under any patent, trademark, copyright, or
+ trade secret. Neither the delivery of the Software to You nor any
+ terms set forth herein shall be construed to grant to You, either
+ expressly, by implication or by way of estoppel, any license under
+ any patents or other intellectual property rights covering or
+ relating to any other product or invention or any combination of
+ the Software with any other product. Any rights not expressly
+ granted to You herein are reserved by Licensor.
+
+ b. No Commercialization or Distribution of the Software and
+ Documentation. Except as expressly provided in Section 2 of this
+ Agreement, You shall have no right to (i) copy, disclose,
+ distribute, publically perform, publically display, transfer,
+ alter, modify, translate, disassemble, decompile, reverse engineer,
+ or adapt the Software and Documentation, or any portion thereof, or
+ create any derivative works based thereon; (ii) rent, lease,
+ assign, sublicense, resell, disclose or otherwise transfer the
+ Software and Documentation in whole or in part to any third party
+ (iii) use the Software and Documentation except for the Limited
+ Purpose, (iv) remove or alter any of the copyright or proprietary
+ notices contained in any of the Software and Documentation. For the
+ purposes of clarity, nothing in this Agreement prohibits You from
+ making and distributing Android Applications under commercial or
+ non-commercial terms, provided that You shall not contain,
+ incorporate, and/or compile the Software or any of its derivative
+ works, in whole or in part, into Your Android Applications and/or
+ any software/devices created by You or by third parties acting on
+ Your behalf. You and any such third party shall comply with all of
+ the terms and conditions of this Agreement.
+
+ c. No Reverse Engineering. Except for any portions of the Software
+ provided to You in source code format and except for any third
+ party code distributed with the Software that is licensed under
+ contrary terms, You will not reverse engineer, disassemble,
+ decompile, or translate the Software, or otherwise attempt to
+ derive the source code version of the Software, except if and to
+ the extent expressly permitted under any applicable law.
+
+ d. Third Party Software. You agree that Android may contain third
+ party software. You agree that you may not distribute such third
+ party software for any purpose without appropriate licenses from
+ the applicable third party or parties.
+
+ e. No Transfer or Assignment. You shall not assign any of its rights
+ or obligations under this Agreement. Any attempted assignment in
+ contravention of this Section shall be void.
+
+ 4. Indemnity
+
+ a. You agree to indemnify and hold harmless Licensor and
+ its officers, directors, customers, employees and successors and
+ assigns (each an "Indemnified Party") against any and all claims,
+ demands, causes of action, losses, liabilities, damages, costs and
+ expenses, incurred by the Indemnified Party (including but not
+ limited to costs of defense, investigation and reasonable
+ attorney's fees) arising out of, resulting from or related to
+ (i) any software, products, documentation, content, materials or
+ derivative works created or developed by You using the Software
+ which causes an infringement of any patent, copyright, trademark,
+ trade secret, or other property, publicity or privacy rights of any
+ third parties arising in any jurisdiction anywhere in the world,
+ (ii) the download, distribution, installation, storage, execution,
+ use or transfer of such software, products, documentation, content,
+ materials or derivative works by any person or entity, and/or
+ (iii) any breach of this Agreement by You. If requested by an
+ Indemnified Party, You agree to defend such Indemnified Party in
+ connection with any third party claims, demands, or causes of
+ action resulting from, arising out of or in connection with any of
+ the foregoing.
+
+ 5. Limitation of Liability
+
+ a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
+ CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
+ LICENSOR, ITS AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
+ EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
+ SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
+ LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
+ INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
+ LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
+ EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
+ THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
+ IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+ TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+ ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+ INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+ (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+ DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+ THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+ AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+ PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+ PARTIES.
+
+ 6. No Warranty
+
+ a. LICENSOR MAKES NO WARRANTIES, EXPRESS OR IMPLIED, WITH
+ RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
+ AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
+ INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
+ TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
+ NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
+ WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
+ SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
+ AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
+ OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
+ OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
+ DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
+ LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
+ PARTIES. Licensor SHALL NOT HAVE ANY OBLIGATION TO
+ PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
+
+ 7. Term and Termination
+
+ a. This Agreement shall be effective on the date You accept this
+ Agreement and shall remain in effect until terminated as provided
+ herein. You may terminate the Agreement at any time by deleting and
+ destroying all copies of the Software and all related information
+ in Your possession or control. This Agreement terminates
+ immediately and automatically, with or without notice, if You fail
+ to comply with any provision hereof. Additionally, Licensor may at
+ any time terminate this Agreement, without cause, upon notice to
+ You. Upon termination You must delete or destroy all copies of the
+ Software in Your possession, and the license granted to You in this
+ Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
+ the termination of this Agreement.
+
+ 8. Miscellaneous
+
+ a. Governing Law. This Agreement is governed and interpreted in
+ accordance with the laws of the State of California without giving
+ effect to its conflict of laws provisions. The United Nations
+ Convention on Contracts for the International Sale of Goods is
+ expressly disclaimed and shall not apply. Any claim arising out of
+ or related to this Agreement must be brought exclusively in a
+ federal or state court located in Santa Clara County, California
+ and You consent to the jurisdiction and venue of such courts.
+
+ b. Waiver and Severability. The failure of either party to require
+ performance by the other party of any provision of this Agreement
+ shall not affect the full right to require such performance at any
+ time thereafter; nor shall the waiver by either party of a breach
+ of any provision of this Agreement be taken or held to be a waiver
+ of the provision itself. Severability. If any provision of this
+ Agreement is unenforceable or invalid under any applicable law or
+ is so held by applicable court decision, such unenforceability or
+ invalidity shall not render this Agreement unenforceable or invalid
+ as a whole, and such provision shall be changed and interpreted so
+ as to best accomplish the objectives of such unenforceable or
+ invalid provision within the limits of applicable law or
+ applicable court decisions.
+
+ c. Amendment and Modification. This Agreement and any of its terms and
+ provisions may only be amended, modified, supplemented or waived in
+ a writing signed by both parties hereto.
+
+ d. Compliance with Laws. You shall comply with all applicable laws,
+ rules, and regulations in connection with its activities under this
+ Agreement.
+
+ e. Entire Agreement. This Agreement completely and exclusively states
+ the agreement between You and Licensor regarding this subject
+ matter.
diff --git a/self-extractors/widevine/staging/BoardConfigPartial.mk b/self-extractors/widevine/staging/BoardConfigPartial.mk
new file mode 100644
index 00000000000..01a0ff3d45e
--- /dev/null
+++ b/self-extractors/widevine/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/self-extractors/widevine/staging/device-partial.mk b/self-extractors/widevine/staging/device-partial.mk
new file mode 100644
index 00000000000..50c1182f781
--- /dev/null
+++ b/self-extractors/widevine/staging/device-partial.mk
@@ -0,0 +1,19 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Widevine blob(s) necessary for Grouper hardware
+PRODUCT_PACKAGES := \
+ libdrmdecrypt \
+ libwvdrm_L1 \
+ libWVStreamControlAPI_L1
diff --git a/self-extractors/widevine/staging/proprietary/Android.mk b/self-extractors/widevine/staging/proprietary/Android.mk
new file mode 100644
index 00000000000..b1dcfb23903
--- /dev/null
+++ b/self-extractors/widevine/staging/proprietary/Android.mk
@@ -0,0 +1,49 @@
+# Copyright (C) 2011 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),tilapia)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libdrmdecrypt
+LOCAL_SRC_FILES := libdrmdecrypt.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := widevine
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libwvdrm_L1
+LOCAL_SRC_FILES := libwvdrm_L1.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := widevine
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libWVStreamControlAPI_L1
+LOCAL_SRC_FILES := libWVStreamControlAPI_L1.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := widevine
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/system.prop b/system.prop
new file mode 100644
index 00000000000..eddec02a8ae
--- /dev/null
+++ b/system.prop
@@ -0,0 +1,19 @@
+ro.opengles.version = 131072
+wifi.interface=wlan0
+rild.libpath=/system/lib/libxgold-ril.so
+rild.libargs=-d /dev/ttyACM0
+persist.tegra.nvmmlite = 1
+ro.audio.monitorOrientation=true
+
+#NFC
+debug.nfc.fw_download=false
+debug.nfc.se=false
+
+# set default lcd density to TVDPI
+ro.sf.lcd_density=213
+
+# don't preload OpenGL in Zygote, the Tegra drivers do not like it
+ro.zygote.disable_gl_preload=true
+
+# configure PRISM
+persist.tegra.didim.video = 5
diff --git a/vendorsetup.sh b/vendorsetup.sh
new file mode 100644
index 00000000000..012a96e29ce
--- /dev/null
+++ b/vendorsetup.sh
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2008 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# This file is executed by build/envsetup.sh, and can use anything
+# defined in envsetup.sh.
+#
+# In particular, you can add lunch options with the add_lunch_combo
+# function: add_lunch_combo generic-eng
+
+add_lunch_combo aosp_tilapia-userdebug