diff --git a/proprietary-blobs-extra.txt b/proprietary-blobs-extra.txt
new file mode 100644
index 0000000..001b890
--- /dev/null
+++ b/proprietary-blobs-extra.txt
@@ -0,0 +1,15 @@
+# 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.
+
+/system/etc/apns-conf.xml
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
index 62b15bf..2ff5a05 100644
--- a/proprietary-blobs.txt
+++ b/proprietary-blobs.txt
@@ -24,7 +24,6 @@
 /system/bin/hci_qcomm_init
 /system/bin/irsc_util
 /system/bin/ks
-/system/bin/mm-audio-send-cal
 /system/bin/mm-pp-daemon
 /system/bin/mm-qcamera-app
 /system/bin/mm-qcamera-daemon
@@ -63,6 +62,7 @@
 /system/lib/egl/libGLESv1_CM_adreno200.so
 /system/lib/egl/libGLESv2_adreno200.so
 /system/lib/egl/libq3dtools_adreno200.so
+/system/lib/hw/camera.deb.so
 /system/lib/hw/gps.msm8960.so
 /system/lib/hw/sensors.msm8960.so
 /system/lib/libacdbdata.so
@@ -70,7 +70,6 @@
 /system/lib/libAKM.so
 /system/lib/libaudcal.so
 /system/lib/libaudioalsa.so
-/system/lib/libaudioparsers.so
 /system/lib/libC2D2.so
 /system/lib/libc2d2_a3xx.so
 /system/lib/libchromatix_ov5693_common.so
@@ -106,10 +105,9 @@
 /system/lib/libmmcamera_interface.so
 /system/lib/libmmcamera_mi1040.so
 /system/lib/libmmcamera_ov5693.so
+/system/lib/libmmjpeg_interface.so
 /system/lib/libnetmgr.so
 /system/lib/liboemcrypto.so
-/system/lib/libOmxAacDec.so
-/system/lib/libOmxWmaDec.so
 /system/lib/libqcci_legacy.so
 /system/lib/libqdi.so
 /system/lib/libqdp.so
@@ -131,7 +129,6 @@
 /system/lib/libsensor_user_cal.so
 /system/lib/libstagefright_hdcp.so
 /system/lib/libxml.so
-/system/lib/lib_dlb_msd.so
 /system/vendor/firmware/a300_pfp.fw
 /system/vendor/firmware/a300_pm4.fw
 /system/vendor/firmware/bcm2079x-b5_firmware.ncd
@@ -178,6 +175,7 @@
 /system/vendor/firmware/wcnss.b04
 /system/vendor/firmware/wcnss.b05
 /system/vendor/firmware/wcnss.mdt
+/system/vendor/lib/libdrmdecrypt.so
 /system/vendor/lib/libgemini.so
 /system/vendor/lib/libimage-jpeg-enc-omx-comp.so
 /system/vendor/lib/libimage-omx-common.so
diff --git a/self-extractors/Android.mk b/self-extractors/Android.mk
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/self-extractors/Android.mk
diff --git a/self-extractors/PART1 b/self-extractors/PART1
new file mode 100644
index 0000000..935267e
--- /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 0000000..30e8d43
--- /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 0000000..6847be5
--- /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 0000000..c856ef1
--- /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 0000000..e2ba69c
--- /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 0000000..2eaa115
--- /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 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/asus/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# 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.
diff --git a/self-extractors/asus/staging/device-partial.mk b/self-extractors/asus/staging/device-partial.mk
new file mode 100644
index 0000000..b3a8cf5
--- /dev/null
+++ b/self-extractors/asus/staging/device-partial.mk
@@ -0,0 +1,20 @@
+# 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.
+
+# Asus blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+    vendor/asus/deb/proprietary/apns-conf.xml:system/etc/apns-conf.xml:asus \
+    vendor/asus/deb/proprietary/libAKM.so:system/lib/libAKM.so:asus \
+    vendor/asus/deb/proprietary/libacdbdata.so:system/lib/libacdbdata.so:asus \
+
diff --git a/self-extractors/broadcom/COPYRIGHT b/self-extractors/broadcom/COPYRIGHT
new file mode 100644
index 0000000..bf44774
--- /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 0000000..f633ddc
--- /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 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/broadcom/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# 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.
diff --git a/self-extractors/broadcom/staging/device-partial.mk b/self-extractors/broadcom/staging/device-partial.mk
new file mode 100644
index 0000000..acbc20d
--- /dev/null
+++ b/self-extractors/broadcom/staging/device-partial.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.
+
+# Broadcom blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+    vendor/broadcom/deb/proprietary/bcm2079x-b5_firmware.ncd:system/vendor/firmware/bcm2079x-b5_firmware.ncd:broadcom \
+
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
new file mode 100644
index 0000000..d3ff5b9
--- /dev/null
+++ b/self-extractors/extract-lists.txt
@@ -0,0 +1,189 @@
+  asus)
+    TO_EXTRACT="\
+            system/etc/apns-conf.xml \
+            system/lib/libAKM.so \
+            system/lib/libacdbdata.so \
+            "
+    ;;
+  broadcom)
+    TO_EXTRACT="\
+            system/vendor/firmware/bcm2079x-b5_firmware.ncd \
+            "
+    ;;
+  qcom)
+    TO_EXTRACT="\
+            system/bin/ATFWD-daemon \
+            system/bin/bridgemgrd \
+            system/bin/btnvtool \
+            system/bin/diag_klog \
+            system/bin/diag_mdlog \
+            system/bin/ds_fmc_appd \
+            system/bin/efsks \
+            system/bin/hci_qcomm_init \
+            system/bin/irsc_util \
+            system/bin/ks \
+            system/bin/mm-pp-daemon \
+            system/bin/mm-qcamera-app \
+            system/bin/mm-qcamera-daemon \
+            system/bin/mm-qjpeg-enc-test \
+            system/bin/mm-qomx-ienc-test \
+            system/bin/mpdecision \
+            system/bin/netmgrd \
+            system/bin/nl_listener \
+            system/bin/port-bridge \
+            system/bin/qcks \
+            system/bin/qmuxd \
+            system/bin/qseecomd \
+            system/bin/radish \
+            system/bin/rmt_storage \
+            system/bin/sensors.qcom \
+            system/bin/thermald \
+            system/bin/usbhub \
+            system/bin/usbhub_init \
+            system/etc/DxHDCP.cfg \
+            system/etc/firmware/vidc.b00 \
+            system/etc/firmware/vidc.b01 \
+            system/etc/firmware/vidc.b02 \
+            system/etc/firmware/vidc.b03 \
+            system/etc/firmware/vidc.mdt \
+            system/etc/firmware/vidc_1080p.fw \
+            system/etc/firmware/vidcfw.elf \
+            system/lib/egl/eglsubAndroid.so \
+            system/lib/egl/libEGL_adreno200.so \
+            system/lib/egl/libGLESv1_CM_adreno200.so \
+            system/lib/egl/libGLESv2_adreno200.so \
+            system/lib/egl/libq3dtools_adreno200.so \
+            system/lib/hw/camera.deb.so \
+            system/lib/hw/gps.msm8960.so \
+            system/lib/hw/sensors.msm8960.so \
+            system/lib/libC2D2.so \
+            system/lib/libCommandSvc.so \
+            system/lib/libDxHdcp.so \
+            system/lib/libI420colorconvert.so \
+            system/lib/libQSEEComAPI.so \
+            system/lib/libacdbloader.so \
+            system/lib/libaudcal.so \
+            system/lib/libaudioalsa.so \
+            system/lib/libc2d2_a3xx.so \
+            system/lib/libchromatix_ov5693_common.so \
+            system/lib/libchromatix_ov5693_default_video.so \
+            system/lib/libchromatix_ov5693_preview.so \
+            system/lib/libconfigdb.so \
+            system/lib/libcsd-client.so \
+            system/lib/libdiag.so \
+            system/lib/libdrmdiag.so \
+            system/lib/libdrmfs.so \
+            system/lib/libdrmtime.so \
+            system/lib/libdsi_netctrl.so \
+            system/lib/libdsprofile.so \
+            system/lib/libdss.so \
+            system/lib/libdsucsd.so \
+            system/lib/libdsutils.so \
+            system/lib/libgeofence.so \
+            system/lib/libgps.utils.so \
+            system/lib/libgsl.so \
+            system/lib/libidl.so \
+            system/lib/libllvm-a3xx.so \
+            system/lib/libloc_adapter.so \
+            system/lib/libloc_api_v02.so \
+            system/lib/libloc_eng.so \
+            system/lib/libmm-abl-oem.so \
+            system/lib/libmm-abl.so \
+            system/lib/libmm-color-convertor.so \
+            system/lib/libmmcamera2_stats_algorithm.so \
+            system/lib/libmmcamera_image_stab.so \
+            system/lib/libmmcamera_interface.so \
+            system/lib/libmmcamera_mi1040.so \
+            system/lib/libmmcamera_ov5693.so \
+            system/lib/libmmjpeg_interface.so \
+            system/lib/libnetmgr.so \
+            system/lib/liboemcrypto.so \
+            system/lib/libqcci_legacy.so \
+            system/lib/libqdi.so \
+            system/lib/libqdp.so \
+            system/lib/libqmi.so \
+            system/lib/libqmi_cci.so \
+            system/lib/libqmi_client_qmux.so \
+            system/lib/libqmi_common_so.so \
+            system/lib/libqmi_csi.so \
+            system/lib/libqmi_csvt_srvc.so \
+            system/lib/libqmi_encdec.so \
+            system/lib/libqmiservices.so \
+            system/lib/libqomx_core.so \
+            system/lib/libril-qc-qmi-1.so \
+            system/lib/libril-qcril-hook-oem.so \
+            system/lib/libsc-a3xx.so \
+            system/lib/libsensor1.so \
+            system/lib/libsensor_reg.so \
+            system/lib/libsensor_user_cal.so \
+            system/lib/libstagefright_hdcp.so \
+            system/lib/libxml.so \
+            system/vendor/firmware/a300_pfp.fw \
+            system/vendor/firmware/a300_pm4.fw \
+            system/vendor/firmware/discretix/dxhdcp2.b00 \
+            system/vendor/firmware/discretix/dxhdcp2.b01 \
+            system/vendor/firmware/discretix/dxhdcp2.b02 \
+            system/vendor/firmware/discretix/dxhdcp2.b03 \
+            system/vendor/firmware/discretix/dxhdcp2.mdt \
+            system/vendor/firmware/dsps.b00 \
+            system/vendor/firmware/dsps.b01 \
+            system/vendor/firmware/dsps.b02 \
+            system/vendor/firmware/dsps.b03 \
+            system/vendor/firmware/dsps.b04 \
+            system/vendor/firmware/dsps.b05 \
+            system/vendor/firmware/dsps.mdt \
+            system/vendor/firmware/gss.b00 \
+            system/vendor/firmware/gss.b01 \
+            system/vendor/firmware/gss.b02 \
+            system/vendor/firmware/gss.b03 \
+            system/vendor/firmware/gss.b04 \
+            system/vendor/firmware/gss.b05 \
+            system/vendor/firmware/gss.b06 \
+            system/vendor/firmware/gss.b07 \
+            system/vendor/firmware/gss.b08 \
+            system/vendor/firmware/gss.b09 \
+            system/vendor/firmware/gss.b10 \
+            system/vendor/firmware/gss.b11 \
+            system/vendor/firmware/gss.mdt \
+            system/vendor/firmware/q6.b00 \
+            system/vendor/firmware/q6.b01 \
+            system/vendor/firmware/q6.b03 \
+            system/vendor/firmware/q6.b04 \
+            system/vendor/firmware/q6.b05 \
+            system/vendor/firmware/q6.b06 \
+            system/vendor/firmware/q6.mdt \
+            system/vendor/firmware/tzapps.b00 \
+            system/vendor/firmware/tzapps.b01 \
+            system/vendor/firmware/tzapps.b02 \
+            system/vendor/firmware/tzapps.b03 \
+            system/vendor/firmware/tzapps.mdt \
+            system/vendor/firmware/wcnss.b00 \
+            system/vendor/firmware/wcnss.b01 \
+            system/vendor/firmware/wcnss.b02 \
+            system/vendor/firmware/wcnss.b04 \
+            system/vendor/firmware/wcnss.b05 \
+            system/vendor/firmware/wcnss.mdt \
+            system/vendor/lib/libdrmdecrypt.so \
+            system/vendor/lib/libgemini.so \
+            system/vendor/lib/libimage-jpeg-enc-omx-comp.so \
+            system/vendor/lib/libimage-omx-common.so \
+            system/vendor/lib/libmmcamera2_c2d_module.so \
+            system/vendor/lib/libmmcamera2_cpp_module.so \
+            system/vendor/lib/libmmcamera2_iface_modules.so \
+            system/vendor/lib/libmmcamera2_imglib_modules.so \
+            system/vendor/lib/libmmcamera2_isp_modules.so \
+            system/vendor/lib/libmmcamera2_pproc_modules.so \
+            system/vendor/lib/libmmcamera2_sensor_modules.so \
+            system/vendor/lib/libmmcamera2_stats_modules.so \
+            system/vendor/lib/libmmcamera2_vpe_module.so \
+            system/vendor/lib/libmmcamera2_wnr_module.so \
+            system/vendor/lib/libmmcamera_faceproc.so \
+            system/vendor/lib/libmmcamera_imglib.so \
+            system/vendor/lib/libmmipl.so \
+            system/vendor/lib/libmmjpeg.so \
+            system/vendor/lib/libmmqjpeg_codec.so \
+            system/vendor/lib/libmmstillomx.so \
+            system/vendor/lib/liboemcamera.so \
+            system/vendor/lib/libqomx_jpegenc.so \
+            "
+    ;;
diff --git a/self-extractors/files-by-owner.sh b/self-extractors/files-by-owner.sh
new file mode 100755
index 0000000..0e45a16
--- /dev/null
+++ b/self-extractors/files-by-owner.sh
@@ -0,0 +1,95 @@
+#!/bin/sh
+
+# 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.
+
+rm -f extract-lists.txt
+cat ../vendor_owner_info.txt |
+cut -d : -f 2 |
+sort -u |
+grep -v google |
+while read target_owner
+do
+cat > $target_owner/staging/device-partial.mk << EOF
+# 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.
+
+EOF
+echo -n "# " >> $target_owner/staging/device-partial.mk
+case $target_owner in
+asus)
+echo -n Asus >> $target_owner/staging/device-partial.mk
+;;
+broadcom)
+echo -n Broadcom >> $target_owner/staging/device-partial.mk
+;;
+qcom)
+echo -n Qualcomm >> $target_owner/staging/device-partial.mk
+;;
+esac
+echo " blob(s) necessary for Deb hardware" >> $target_owner/staging/device-partial.mk
+echo "PRODUCT_COPY_FILES := \\" >> $target_owner/staging/device-partial.mk
+
+echo "  $target_owner)" >> extract-lists.txt
+echo "    TO_EXTRACT=\"\\" >> extract-lists.txt
+
+
+cat ../proprietary-blobs.txt ../proprietary-blobs-extra.txt |
+grep ^/ |
+cut -b 2- |
+sort |
+while read file
+do
+
+auto_owner=$(grep ^$file: ../vendor_owner_info.txt | cut -d : -f 2)
+if test $file = system/bin/mm-qcamera-app -o $file = system/lib/hw/camera.deb.so -o $file = system/lib/hw/gps.msm8960.so -o $file = system/lib/libgps.utils.so -o $file = system/lib/libloc_adapter.so -o $file = system/lib/libloc_eng.so -o $file = system/lib/libmmcamera_interface.so -o $file = system/lib/libmmjpeg_interface.so -o $file = system/lib/libqomx_core.so
+then
+auto_owner=qcom
+fi
+
+if test "$auto_owner" = "" -a $file != system/etc/firmware/tzapps.b00 -a $file != system/etc/firmware/tzapps.b01 -a $file != system/etc/firmware/tzapps.b02 -a $file != system/etc/firmware/tzapps.b03 -a $file != system/etc/firmware/tzapps.mdt -a $file != system/etc/firmware/wcd9310/wcd9310_anc.bin -a $file != system/etc/firmware/wcd9310/wcd9310_mbhc.bin
+then
+echo $file has no known owner
+fi
+
+if test "$auto_owner" = "$target_owner"
+then
+if test $file != system/lib/libacdbloader.so -a $file != system/vendor/firmware/tzapps.mdt
+then
+echo "    vendor/$target_owner/deb/proprietary/$(basename $file):$file:$target_owner \\" >> $target_owner/staging/device-partial.mk
+fi
+echo "            $file \\" >> extract-lists.txt
+fi
+done
+
+echo >> $target_owner/staging/device-partial.mk
+if test $target_owner = qcom
+then
+echo PRODUCT_PACKAGES := libacdbloader tzapps.mdt >> $target_owner/staging/device-partial.mk
+fi
+
+echo "            \"" >> extract-lists.txt
+echo "    ;;" >> extract-lists.txt
+done
diff --git a/self-extractors/generate-packages.sh b/self-extractors/generate-packages.sh
new file mode 100755
index 0000000..c6de2ac
--- /dev/null
+++ b/self-extractors/generate-packages.sh
@@ -0,0 +1,259 @@
+#!/bin/sh
+
+# 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.
+
+# start jb-mr2-dev
+# 700272 = JSR67
+# 703372 = JSR71
+# end jb-mr2-dev
+BRANCH=jb-mr2-dev
+if test $BRANCH = jb-mr2-dev
+then
+  ZIP=razorg-ota-703372
+  BUILD=jsr71
+fi # jb-mr2-dev
+ROOTDEVICE=deb
+DEVICE=deb
+MANUFACTURER=asus
+
+for COMPANY in asus broadcom qcom
+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/etc/apns-conf.xml \
+            system/lib/libAKM.so \
+            system/lib/libacdbdata.so \
+            "
+    ;;
+  broadcom)
+    TO_EXTRACT="\
+            system/vendor/firmware/bcm2079x-b5_firmware.ncd \
+            "
+    ;;
+  qcom)
+    TO_EXTRACT="\
+            system/bin/ATFWD-daemon \
+            system/bin/bridgemgrd \
+            system/bin/btnvtool \
+            system/bin/diag_klog \
+            system/bin/diag_mdlog \
+            system/bin/ds_fmc_appd \
+            system/bin/efsks \
+            system/bin/hci_qcomm_init \
+            system/bin/irsc_util \
+            system/bin/ks \
+            system/bin/mm-pp-daemon \
+            system/bin/mm-qcamera-app \
+            system/bin/mm-qcamera-daemon \
+            system/bin/mm-qjpeg-enc-test \
+            system/bin/mm-qomx-ienc-test \
+            system/bin/mpdecision \
+            system/bin/netmgrd \
+            system/bin/nl_listener \
+            system/bin/port-bridge \
+            system/bin/qcks \
+            system/bin/qmuxd \
+            system/bin/qseecomd \
+            system/bin/radish \
+            system/bin/rmt_storage \
+            system/bin/sensors.qcom \
+            system/bin/thermald \
+            system/bin/usbhub \
+            system/bin/usbhub_init \
+            system/etc/DxHDCP.cfg \
+            system/etc/firmware/vidc.b00 \
+            system/etc/firmware/vidc.b01 \
+            system/etc/firmware/vidc.b02 \
+            system/etc/firmware/vidc.b03 \
+            system/etc/firmware/vidc.mdt \
+            system/etc/firmware/vidc_1080p.fw \
+            system/etc/firmware/vidcfw.elf \
+            system/lib/egl/eglsubAndroid.so \
+            system/lib/egl/libEGL_adreno200.so \
+            system/lib/egl/libGLESv1_CM_adreno200.so \
+            system/lib/egl/libGLESv2_adreno200.so \
+            system/lib/egl/libq3dtools_adreno200.so \
+            system/lib/hw/camera.deb.so \
+            system/lib/hw/gps.msm8960.so \
+            system/lib/hw/sensors.msm8960.so \
+            system/lib/libC2D2.so \
+            system/lib/libCommandSvc.so \
+            system/lib/libDxHdcp.so \
+            system/lib/libI420colorconvert.so \
+            system/lib/libQSEEComAPI.so \
+            system/lib/libacdbloader.so \
+            system/lib/libaudcal.so \
+            system/lib/libaudioalsa.so \
+            system/lib/libc2d2_a3xx.so \
+            system/lib/libchromatix_ov5693_common.so \
+            system/lib/libchromatix_ov5693_default_video.so \
+            system/lib/libchromatix_ov5693_preview.so \
+            system/lib/libconfigdb.so \
+            system/lib/libcsd-client.so \
+            system/lib/libdiag.so \
+            system/lib/libdrmdiag.so \
+            system/lib/libdrmfs.so \
+            system/lib/libdrmtime.so \
+            system/lib/libdsi_netctrl.so \
+            system/lib/libdsprofile.so \
+            system/lib/libdss.so \
+            system/lib/libdsucsd.so \
+            system/lib/libdsutils.so \
+            system/lib/libgeofence.so \
+            system/lib/libgps.utils.so \
+            system/lib/libgsl.so \
+            system/lib/libidl.so \
+            system/lib/libllvm-a3xx.so \
+            system/lib/libloc_adapter.so \
+            system/lib/libloc_api_v02.so \
+            system/lib/libloc_eng.so \
+            system/lib/libmm-abl-oem.so \
+            system/lib/libmm-abl.so \
+            system/lib/libmm-color-convertor.so \
+            system/lib/libmmcamera2_stats_algorithm.so \
+            system/lib/libmmcamera_image_stab.so \
+            system/lib/libmmcamera_interface.so \
+            system/lib/libmmcamera_mi1040.so \
+            system/lib/libmmcamera_ov5693.so \
+            system/lib/libmmjpeg_interface.so \
+            system/lib/libnetmgr.so \
+            system/lib/liboemcrypto.so \
+            system/lib/libqcci_legacy.so \
+            system/lib/libqdi.so \
+            system/lib/libqdp.so \
+            system/lib/libqmi.so \
+            system/lib/libqmi_cci.so \
+            system/lib/libqmi_client_qmux.so \
+            system/lib/libqmi_common_so.so \
+            system/lib/libqmi_csi.so \
+            system/lib/libqmi_csvt_srvc.so \
+            system/lib/libqmi_encdec.so \
+            system/lib/libqmiservices.so \
+            system/lib/libqomx_core.so \
+            system/lib/libril-qc-qmi-1.so \
+            system/lib/libril-qcril-hook-oem.so \
+            system/lib/libsc-a3xx.so \
+            system/lib/libsensor1.so \
+            system/lib/libsensor_reg.so \
+            system/lib/libsensor_user_cal.so \
+            system/lib/libstagefright_hdcp.so \
+            system/lib/libxml.so \
+            system/vendor/firmware/a300_pfp.fw \
+            system/vendor/firmware/a300_pm4.fw \
+            system/vendor/firmware/discretix/dxhdcp2.b00 \
+            system/vendor/firmware/discretix/dxhdcp2.b01 \
+            system/vendor/firmware/discretix/dxhdcp2.b02 \
+            system/vendor/firmware/discretix/dxhdcp2.b03 \
+            system/vendor/firmware/discretix/dxhdcp2.mdt \
+            system/vendor/firmware/dsps.b00 \
+            system/vendor/firmware/dsps.b01 \
+            system/vendor/firmware/dsps.b02 \
+            system/vendor/firmware/dsps.b03 \
+            system/vendor/firmware/dsps.b04 \
+            system/vendor/firmware/dsps.b05 \
+            system/vendor/firmware/dsps.mdt \
+            system/vendor/firmware/gss.b00 \
+            system/vendor/firmware/gss.b01 \
+            system/vendor/firmware/gss.b02 \
+            system/vendor/firmware/gss.b03 \
+            system/vendor/firmware/gss.b04 \
+            system/vendor/firmware/gss.b05 \
+            system/vendor/firmware/gss.b06 \
+            system/vendor/firmware/gss.b07 \
+            system/vendor/firmware/gss.b08 \
+            system/vendor/firmware/gss.b09 \
+            system/vendor/firmware/gss.b10 \
+            system/vendor/firmware/gss.b11 \
+            system/vendor/firmware/gss.mdt \
+            system/vendor/firmware/q6.b00 \
+            system/vendor/firmware/q6.b01 \
+            system/vendor/firmware/q6.b03 \
+            system/vendor/firmware/q6.b04 \
+            system/vendor/firmware/q6.b05 \
+            system/vendor/firmware/q6.b06 \
+            system/vendor/firmware/q6.mdt \
+            system/vendor/firmware/tzapps.b00 \
+            system/vendor/firmware/tzapps.b01 \
+            system/vendor/firmware/tzapps.b02 \
+            system/vendor/firmware/tzapps.b03 \
+            system/vendor/firmware/tzapps.mdt \
+            system/vendor/firmware/wcnss.b00 \
+            system/vendor/firmware/wcnss.b01 \
+            system/vendor/firmware/wcnss.b02 \
+            system/vendor/firmware/wcnss.b04 \
+            system/vendor/firmware/wcnss.b05 \
+            system/vendor/firmware/wcnss.mdt \
+            system/vendor/lib/libdrmdecrypt.so \
+            system/vendor/lib/libgemini.so \
+            system/vendor/lib/libimage-jpeg-enc-omx-comp.so \
+            system/vendor/lib/libimage-omx-common.so \
+            system/vendor/lib/libmmcamera2_c2d_module.so \
+            system/vendor/lib/libmmcamera2_cpp_module.so \
+            system/vendor/lib/libmmcamera2_iface_modules.so \
+            system/vendor/lib/libmmcamera2_imglib_modules.so \
+            system/vendor/lib/libmmcamera2_isp_modules.so \
+            system/vendor/lib/libmmcamera2_pproc_modules.so \
+            system/vendor/lib/libmmcamera2_sensor_modules.so \
+            system/vendor/lib/libmmcamera2_stats_modules.so \
+            system/vendor/lib/libmmcamera2_vpe_module.so \
+            system/vendor/lib/libmmcamera2_wnr_module.so \
+            system/vendor/lib/libmmcamera_faceproc.so \
+            system/vendor/lib/libmmcamera_imglib.so \
+            system/vendor/lib/libmmipl.so \
+            system/vendor/lib/libmmjpeg.so \
+            system/vendor/lib/libmmqjpeg_codec.so \
+            system/vendor/lib/libmmstillomx.so \
+            system/vendor/lib/liboemcamera.so \
+            system/vendor/lib/libqomx_jpegenc.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/qcom/COPYRIGHT b/self-extractors/qcom/COPYRIGHT
new file mode 100644
index 0000000..0adeb31
--- /dev/null
+++ b/self-extractors/qcom/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Qualcomm Technologies, Inc.
diff --git a/self-extractors/qcom/LICENSE b/self-extractors/qcom/LICENSE
new file mode 100644
index 0000000..cef517c
--- /dev/null
+++ b/self-extractors/qcom/LICENSE
@@ -0,0 +1,264 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN Qualcomm Technologies, 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 copyright 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 for academic
+          purposes only of a reasonable number of copies of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          non-commercial purposes on an Authorized Android Enabled Device.
+          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.
+
+      f.  Licensor shall retain all title, ownership and Intellectual
+          Property Rights in and to the Software and any derivative thereof.
+          "Intellectual Property Rights" shall mean all patent, copyright,
+          trade secret, trademark and other proprietary and intellectual
+          property rights, including moral rights.
+
+      g.  Neither this Agreement, nor any act by Licensor or its Affiliates
+          persuant to this Agreement or relating to the Software (including,
+          without limitation, the provision by Licensor or its Affiliates of
+          the Software) shall provide to You any license or any other rights
+          whatsoever under any patents, trademarks, trade secrets, copyrights
+          or any other intellectual property rights of Licensor or its
+          Affiliates, except for the copyrights expressly set forth in this
+          Agreement. You understand and agree that:
+
+      h.  Neither this Agreement, nor delivery of the Software alone or in
+          combination with any Licensor ASIC grants you any right to
+          practice, or any other right at all with respect to, any patent of
+          Licensor or its Affiliates, and
+
+      i.  A separating license agreement from Qualcomm Incorporated is needed
+          to use or practice any patent of Licensor or its Affiliates.
+
+      j.  You agree not to contend in any context that, as a result of the
+          provision or use of this software, either Licensor or Affiliate has
+          any obligation to extend, or Licensor or any other party has
+          obtained any right to, any license, whether express or implied,
+          with respect to any patent of Licensor or its Affiliates for any
+          purpose. For the purposes of this agreement, "Affiliate" means
+          (i) any corporation or any other legal entity that owns, directly
+          or indirectly, more than fifty percent (50%) of the shares, equity
+          interest or other securities of any entity entitled to vote for
+          election of directors (or other managing authority), or (ii) any
+          corporation or any other legal entity fifty percent (50%) or more
+          of whose shares, equity interest, or other securities entitled to
+          vote for election of directors (or other managing authority) is
+          owned or controlled by an entity, either directly or indirectly.
+
+   4.  Indemnity
+
+      a.  You agree to indemnify and hold harmless Licensor, Google, and
+          their 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, GOOGLE, THEIR 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 OR GOOGLE HAVE 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 OR GOOGLE'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 AND GOOGLE MAKE 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 AND GOOGLE 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/qcom/staging/BoardConfigPartial.mk b/self-extractors/qcom/staging/BoardConfigPartial.mk
new file mode 100644
index 0000000..317c4e6
--- /dev/null
+++ b/self-extractors/qcom/staging/BoardConfigPartial.mk
@@ -0,0 +1,13 @@
+# 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.
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
new file mode 100644
index 0000000..49770fc
--- /dev/null
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -0,0 +1,189 @@
+# 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.
+
+# Qualcomm blob(s) necessary for Deb hardware
+PRODUCT_COPY_FILES := \
+    vendor/qcom/deb/proprietary/ATFWD-daemon:system/bin/ATFWD-daemon:qcom \
+    vendor/qcom/deb/proprietary/bridgemgrd:system/bin/bridgemgrd:qcom \
+    vendor/qcom/deb/proprietary/btnvtool:system/bin/btnvtool:qcom \
+    vendor/qcom/deb/proprietary/diag_klog:system/bin/diag_klog:qcom \
+    vendor/qcom/deb/proprietary/diag_mdlog:system/bin/diag_mdlog:qcom \
+    vendor/qcom/deb/proprietary/ds_fmc_appd:system/bin/ds_fmc_appd:qcom \
+    vendor/qcom/deb/proprietary/efsks:system/bin/efsks:qcom \
+    vendor/qcom/deb/proprietary/hci_qcomm_init:system/bin/hci_qcomm_init:qcom \
+    vendor/qcom/deb/proprietary/irsc_util:system/bin/irsc_util:qcom \
+    vendor/qcom/deb/proprietary/ks:system/bin/ks:qcom \
+    vendor/qcom/deb/proprietary/mm-pp-daemon:system/bin/mm-pp-daemon:qcom \
+    vendor/qcom/deb/proprietary/mm-qcamera-app:system/bin/mm-qcamera-app:qcom \
+    vendor/qcom/deb/proprietary/mm-qcamera-daemon:system/bin/mm-qcamera-daemon:qcom \
+    vendor/qcom/deb/proprietary/mm-qjpeg-enc-test:system/bin/mm-qjpeg-enc-test:qcom \
+    vendor/qcom/deb/proprietary/mm-qomx-ienc-test:system/bin/mm-qomx-ienc-test:qcom \
+    vendor/qcom/deb/proprietary/mpdecision:system/bin/mpdecision:qcom \
+    vendor/qcom/deb/proprietary/netmgrd:system/bin/netmgrd:qcom \
+    vendor/qcom/deb/proprietary/nl_listener:system/bin/nl_listener:qcom \
+    vendor/qcom/deb/proprietary/port-bridge:system/bin/port-bridge:qcom \
+    vendor/qcom/deb/proprietary/qcks:system/bin/qcks:qcom \
+    vendor/qcom/deb/proprietary/qmuxd:system/bin/qmuxd:qcom \
+    vendor/qcom/deb/proprietary/qseecomd:system/bin/qseecomd:qcom \
+    vendor/qcom/deb/proprietary/radish:system/bin/radish:qcom \
+    vendor/qcom/deb/proprietary/rmt_storage:system/bin/rmt_storage:qcom \
+    vendor/qcom/deb/proprietary/sensors.qcom:system/bin/sensors.qcom:qcom \
+    vendor/qcom/deb/proprietary/thermald:system/bin/thermald:qcom \
+    vendor/qcom/deb/proprietary/usbhub:system/bin/usbhub:qcom \
+    vendor/qcom/deb/proprietary/usbhub_init:system/bin/usbhub_init:qcom \
+    vendor/qcom/deb/proprietary/DxHDCP.cfg:system/etc/DxHDCP.cfg:qcom \
+    vendor/qcom/deb/proprietary/vidc.b00:system/etc/firmware/vidc.b00:qcom \
+    vendor/qcom/deb/proprietary/vidc.b01:system/etc/firmware/vidc.b01:qcom \
+    vendor/qcom/deb/proprietary/vidc.b02:system/etc/firmware/vidc.b02:qcom \
+    vendor/qcom/deb/proprietary/vidc.b03:system/etc/firmware/vidc.b03:qcom \
+    vendor/qcom/deb/proprietary/vidc.mdt:system/etc/firmware/vidc.mdt:qcom \
+    vendor/qcom/deb/proprietary/vidc_1080p.fw:system/etc/firmware/vidc_1080p.fw:qcom \
+    vendor/qcom/deb/proprietary/vidcfw.elf:system/etc/firmware/vidcfw.elf:qcom \
+    vendor/qcom/deb/proprietary/eglsubAndroid.so:system/lib/egl/eglsubAndroid.so:qcom \
+    vendor/qcom/deb/proprietary/libEGL_adreno200.so:system/lib/egl/libEGL_adreno200.so:qcom \
+    vendor/qcom/deb/proprietary/libGLESv1_CM_adreno200.so:system/lib/egl/libGLESv1_CM_adreno200.so:qcom \
+    vendor/qcom/deb/proprietary/libGLESv2_adreno200.so:system/lib/egl/libGLESv2_adreno200.so:qcom \
+    vendor/qcom/deb/proprietary/libq3dtools_adreno200.so:system/lib/egl/libq3dtools_adreno200.so:qcom \
+    vendor/qcom/deb/proprietary/camera.deb.so:system/lib/hw/camera.deb.so:qcom \
+    vendor/qcom/deb/proprietary/gps.msm8960.so:system/lib/hw/gps.msm8960.so:qcom \
+    vendor/qcom/deb/proprietary/sensors.msm8960.so:system/lib/hw/sensors.msm8960.so:qcom \
+    vendor/qcom/deb/proprietary/libC2D2.so:system/lib/libC2D2.so:qcom \
+    vendor/qcom/deb/proprietary/libCommandSvc.so:system/lib/libCommandSvc.so:qcom \
+    vendor/qcom/deb/proprietary/libDxHdcp.so:system/lib/libDxHdcp.so:qcom \
+    vendor/qcom/deb/proprietary/libI420colorconvert.so:system/lib/libI420colorconvert.so:qcom \
+    vendor/qcom/deb/proprietary/libQSEEComAPI.so:system/lib/libQSEEComAPI.so:qcom \
+    vendor/qcom/deb/proprietary/libaudcal.so:system/lib/libaudcal.so:qcom \
+    vendor/qcom/deb/proprietary/libaudioalsa.so:system/lib/libaudioalsa.so:qcom \
+    vendor/qcom/deb/proprietary/libc2d2_a3xx.so:system/lib/libc2d2_a3xx.so:qcom \
+    vendor/qcom/deb/proprietary/libchromatix_ov5693_common.so:system/lib/libchromatix_ov5693_common.so:qcom \
+    vendor/qcom/deb/proprietary/libchromatix_ov5693_default_video.so:system/lib/libchromatix_ov5693_default_video.so:qcom \
+    vendor/qcom/deb/proprietary/libchromatix_ov5693_preview.so:system/lib/libchromatix_ov5693_preview.so:qcom \
+    vendor/qcom/deb/proprietary/libconfigdb.so:system/lib/libconfigdb.so:qcom \
+    vendor/qcom/deb/proprietary/libcsd-client.so:system/lib/libcsd-client.so:qcom \
+    vendor/qcom/deb/proprietary/libdiag.so:system/lib/libdiag.so:qcom \
+    vendor/qcom/deb/proprietary/libdrmdiag.so:system/lib/libdrmdiag.so:qcom \
+    vendor/qcom/deb/proprietary/libdrmfs.so:system/lib/libdrmfs.so:qcom \
+    vendor/qcom/deb/proprietary/libdrmtime.so:system/lib/libdrmtime.so:qcom \
+    vendor/qcom/deb/proprietary/libdsi_netctrl.so:system/lib/libdsi_netctrl.so:qcom \
+    vendor/qcom/deb/proprietary/libdsprofile.so:system/lib/libdsprofile.so:qcom \
+    vendor/qcom/deb/proprietary/libdss.so:system/lib/libdss.so:qcom \
+    vendor/qcom/deb/proprietary/libdsucsd.so:system/lib/libdsucsd.so:qcom \
+    vendor/qcom/deb/proprietary/libdsutils.so:system/lib/libdsutils.so:qcom \
+    vendor/qcom/deb/proprietary/libgeofence.so:system/lib/libgeofence.so:qcom \
+    vendor/qcom/deb/proprietary/libgps.utils.so:system/lib/libgps.utils.so:qcom \
+    vendor/qcom/deb/proprietary/libgsl.so:system/lib/libgsl.so:qcom \
+    vendor/qcom/deb/proprietary/libidl.so:system/lib/libidl.so:qcom \
+    vendor/qcom/deb/proprietary/libllvm-a3xx.so:system/lib/libllvm-a3xx.so:qcom \
+    vendor/qcom/deb/proprietary/libloc_adapter.so:system/lib/libloc_adapter.so:qcom \
+    vendor/qcom/deb/proprietary/libloc_api_v02.so:system/lib/libloc_api_v02.so:qcom \
+    vendor/qcom/deb/proprietary/libloc_eng.so:system/lib/libloc_eng.so:qcom \
+    vendor/qcom/deb/proprietary/libmm-abl-oem.so:system/lib/libmm-abl-oem.so:qcom \
+    vendor/qcom/deb/proprietary/libmm-abl.so:system/lib/libmm-abl.so:qcom \
+    vendor/qcom/deb/proprietary/libmm-color-convertor.so:system/lib/libmm-color-convertor.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_stats_algorithm.so:system/lib/libmmcamera2_stats_algorithm.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_image_stab.so:system/lib/libmmcamera_image_stab.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_interface.so:system/lib/libmmcamera_interface.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_mi1040.so:system/lib/libmmcamera_mi1040.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_ov5693.so:system/lib/libmmcamera_ov5693.so:qcom \
+    vendor/qcom/deb/proprietary/libmmjpeg_interface.so:system/lib/libmmjpeg_interface.so:qcom \
+    vendor/qcom/deb/proprietary/libnetmgr.so:system/lib/libnetmgr.so:qcom \
+    vendor/qcom/deb/proprietary/liboemcrypto.so:system/lib/liboemcrypto.so:qcom \
+    vendor/qcom/deb/proprietary/libqcci_legacy.so:system/lib/libqcci_legacy.so:qcom \
+    vendor/qcom/deb/proprietary/libqdi.so:system/lib/libqdi.so:qcom \
+    vendor/qcom/deb/proprietary/libqdp.so:system/lib/libqdp.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi.so:system/lib/libqmi.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_cci.so:system/lib/libqmi_cci.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_client_qmux.so:system/lib/libqmi_client_qmux.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_common_so.so:system/lib/libqmi_common_so.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_csi.so:system/lib/libqmi_csi.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_csvt_srvc.so:system/lib/libqmi_csvt_srvc.so:qcom \
+    vendor/qcom/deb/proprietary/libqmi_encdec.so:system/lib/libqmi_encdec.so:qcom \
+    vendor/qcom/deb/proprietary/libqmiservices.so:system/lib/libqmiservices.so:qcom \
+    vendor/qcom/deb/proprietary/libqomx_core.so:system/lib/libqomx_core.so:qcom \
+    vendor/qcom/deb/proprietary/libril-qc-qmi-1.so:system/lib/libril-qc-qmi-1.so:qcom \
+    vendor/qcom/deb/proprietary/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so:qcom \
+    vendor/qcom/deb/proprietary/libsc-a3xx.so:system/lib/libsc-a3xx.so:qcom \
+    vendor/qcom/deb/proprietary/libsensor1.so:system/lib/libsensor1.so:qcom \
+    vendor/qcom/deb/proprietary/libsensor_reg.so:system/lib/libsensor_reg.so:qcom \
+    vendor/qcom/deb/proprietary/libsensor_user_cal.so:system/lib/libsensor_user_cal.so:qcom \
+    vendor/qcom/deb/proprietary/libstagefright_hdcp.so:system/lib/libstagefright_hdcp.so:qcom \
+    vendor/qcom/deb/proprietary/libxml.so:system/lib/libxml.so:qcom \
+    vendor/qcom/deb/proprietary/a300_pfp.fw:system/vendor/firmware/a300_pfp.fw:qcom \
+    vendor/qcom/deb/proprietary/a300_pm4.fw:system/vendor/firmware/a300_pm4.fw:qcom \
+    vendor/qcom/deb/proprietary/dxhdcp2.b00:system/vendor/firmware/discretix/dxhdcp2.b00:qcom \
+    vendor/qcom/deb/proprietary/dxhdcp2.b01:system/vendor/firmware/discretix/dxhdcp2.b01:qcom \
+    vendor/qcom/deb/proprietary/dxhdcp2.b02:system/vendor/firmware/discretix/dxhdcp2.b02:qcom \
+    vendor/qcom/deb/proprietary/dxhdcp2.b03:system/vendor/firmware/discretix/dxhdcp2.b03:qcom \
+    vendor/qcom/deb/proprietary/dxhdcp2.mdt:system/vendor/firmware/discretix/dxhdcp2.mdt:qcom \
+    vendor/qcom/deb/proprietary/dsps.b00:system/vendor/firmware/dsps.b00:qcom \
+    vendor/qcom/deb/proprietary/dsps.b01:system/vendor/firmware/dsps.b01:qcom \
+    vendor/qcom/deb/proprietary/dsps.b02:system/vendor/firmware/dsps.b02:qcom \
+    vendor/qcom/deb/proprietary/dsps.b03:system/vendor/firmware/dsps.b03:qcom \
+    vendor/qcom/deb/proprietary/dsps.b04:system/vendor/firmware/dsps.b04:qcom \
+    vendor/qcom/deb/proprietary/dsps.b05:system/vendor/firmware/dsps.b05:qcom \
+    vendor/qcom/deb/proprietary/dsps.mdt:system/vendor/firmware/dsps.mdt:qcom \
+    vendor/qcom/deb/proprietary/gss.b00:system/vendor/firmware/gss.b00:qcom \
+    vendor/qcom/deb/proprietary/gss.b01:system/vendor/firmware/gss.b01:qcom \
+    vendor/qcom/deb/proprietary/gss.b02:system/vendor/firmware/gss.b02:qcom \
+    vendor/qcom/deb/proprietary/gss.b03:system/vendor/firmware/gss.b03:qcom \
+    vendor/qcom/deb/proprietary/gss.b04:system/vendor/firmware/gss.b04:qcom \
+    vendor/qcom/deb/proprietary/gss.b05:system/vendor/firmware/gss.b05:qcom \
+    vendor/qcom/deb/proprietary/gss.b06:system/vendor/firmware/gss.b06:qcom \
+    vendor/qcom/deb/proprietary/gss.b07:system/vendor/firmware/gss.b07:qcom \
+    vendor/qcom/deb/proprietary/gss.b08:system/vendor/firmware/gss.b08:qcom \
+    vendor/qcom/deb/proprietary/gss.b09:system/vendor/firmware/gss.b09:qcom \
+    vendor/qcom/deb/proprietary/gss.b10:system/vendor/firmware/gss.b10:qcom \
+    vendor/qcom/deb/proprietary/gss.b11:system/vendor/firmware/gss.b11:qcom \
+    vendor/qcom/deb/proprietary/gss.mdt:system/vendor/firmware/gss.mdt:qcom \
+    vendor/qcom/deb/proprietary/q6.b00:system/vendor/firmware/q6.b00:qcom \
+    vendor/qcom/deb/proprietary/q6.b01:system/vendor/firmware/q6.b01:qcom \
+    vendor/qcom/deb/proprietary/q6.b03:system/vendor/firmware/q6.b03:qcom \
+    vendor/qcom/deb/proprietary/q6.b04:system/vendor/firmware/q6.b04:qcom \
+    vendor/qcom/deb/proprietary/q6.b05:system/vendor/firmware/q6.b05:qcom \
+    vendor/qcom/deb/proprietary/q6.b06:system/vendor/firmware/q6.b06:qcom \
+    vendor/qcom/deb/proprietary/q6.mdt:system/vendor/firmware/q6.mdt:qcom \
+    vendor/qcom/deb/proprietary/tzapps.b00:system/vendor/firmware/tzapps.b00:qcom \
+    vendor/qcom/deb/proprietary/tzapps.b01:system/vendor/firmware/tzapps.b01:qcom \
+    vendor/qcom/deb/proprietary/tzapps.b02:system/vendor/firmware/tzapps.b02:qcom \
+    vendor/qcom/deb/proprietary/tzapps.b03:system/vendor/firmware/tzapps.b03:qcom \
+    vendor/qcom/deb/proprietary/wcnss.b00:system/vendor/firmware/wcnss.b00:qcom \
+    vendor/qcom/deb/proprietary/wcnss.b01:system/vendor/firmware/wcnss.b01:qcom \
+    vendor/qcom/deb/proprietary/wcnss.b02:system/vendor/firmware/wcnss.b02:qcom \
+    vendor/qcom/deb/proprietary/wcnss.b04:system/vendor/firmware/wcnss.b04:qcom \
+    vendor/qcom/deb/proprietary/wcnss.b05:system/vendor/firmware/wcnss.b05:qcom \
+    vendor/qcom/deb/proprietary/wcnss.mdt:system/vendor/firmware/wcnss.mdt:qcom \
+    vendor/qcom/deb/proprietary/libdrmdecrypt.so:system/vendor/lib/libdrmdecrypt.so:qcom \
+    vendor/qcom/deb/proprietary/libgemini.so:system/vendor/lib/libgemini.so:qcom \
+    vendor/qcom/deb/proprietary/libimage-jpeg-enc-omx-comp.so:system/vendor/lib/libimage-jpeg-enc-omx-comp.so:qcom \
+    vendor/qcom/deb/proprietary/libimage-omx-common.so:system/vendor/lib/libimage-omx-common.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_c2d_module.so:system/vendor/lib/libmmcamera2_c2d_module.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_cpp_module.so:system/vendor/lib/libmmcamera2_cpp_module.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_iface_modules.so:system/vendor/lib/libmmcamera2_iface_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_imglib_modules.so:system/vendor/lib/libmmcamera2_imglib_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_isp_modules.so:system/vendor/lib/libmmcamera2_isp_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_pproc_modules.so:system/vendor/lib/libmmcamera2_pproc_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_sensor_modules.so:system/vendor/lib/libmmcamera2_sensor_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_stats_modules.so:system/vendor/lib/libmmcamera2_stats_modules.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_vpe_module.so:system/vendor/lib/libmmcamera2_vpe_module.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera2_wnr_module.so:system/vendor/lib/libmmcamera2_wnr_module.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_faceproc.so:system/vendor/lib/libmmcamera_faceproc.so:qcom \
+    vendor/qcom/deb/proprietary/libmmcamera_imglib.so:system/vendor/lib/libmmcamera_imglib.so:qcom \
+    vendor/qcom/deb/proprietary/libmmipl.so:system/vendor/lib/libmmipl.so:qcom \
+    vendor/qcom/deb/proprietary/libmmjpeg.so:system/vendor/lib/libmmjpeg.so:qcom \
+    vendor/qcom/deb/proprietary/libmmqjpeg_codec.so:system/vendor/lib/libmmqjpeg_codec.so:qcom \
+    vendor/qcom/deb/proprietary/libmmstillomx.so:system/vendor/lib/libmmstillomx.so:qcom \
+    vendor/qcom/deb/proprietary/liboemcamera.so:system/vendor/lib/liboemcamera.so:qcom \
+    vendor/qcom/deb/proprietary/libqomx_jpegenc.so:system/vendor/lib/libqomx_jpegenc.so:qcom \
+
+PRODUCT_PACKAGES := libacdbloader tzapps.mdt
diff --git a/self-extractors/qcom/staging/proprietary/Android.mk b/self-extractors/qcom/staging/proprietary/Android.mk
new file mode 100644
index 0000000..6f88bc7
--- /dev/null
+++ b/self-extractors/qcom/staging/proprietary/Android.mk
@@ -0,0 +1,55 @@
+# 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.
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),deb)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libacdbloader
+LOCAL_SRC_FILES := libacdbloader.so
+LOCAL_MODULE_SUFFIX := .so
+LOCAL_MODULE_CLASS := SHARED_LIBRARIES
+LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_OWNER := qcom
+
+# Create symbolic link because user space can access persist directory,
+# while kernel ALSA drivers can only access the /system/etc/firmware directory
+LOCAL_POST_INSTALL_CMD := \
+    mkdir -p $(TARGET_OUT_ETC)/firmware/wcd9310; \
+        ln -sf /data/misc/audio/wcd9310_anc.bin \
+        $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_anc.bin; \
+        ln -sf /data/misc/audio/mbhc.bin \
+        $(TARGET_OUT_ETC)/firmware/wcd9310/wcd9310_mbhc.bin
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := tzapps.mdt
+LOCAL_MODULE_OWNER := qcom
+LOCAL_SRC_FILES := tzapps.mdt
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/firmware
+LOCAL_POST_INSTALL_CMD := \
+        mkdir -p $(TARGET_OUT)/etc/firmware/; \
+        ln -sf /system/vendor/firmware/tzapps.b00 $(TARGET_OUT)/etc/firmware/tzapps.b00; \
+        ln -sf /system/vendor/firmware/tzapps.b01 $(TARGET_OUT)/etc/firmware/tzapps.b01; \
+        ln -sf /system/vendor/firmware/tzapps.b02 $(TARGET_OUT)/etc/firmware/tzapps.b02; \
+        ln -sf /system/vendor/firmware/tzapps.b03 $(TARGET_OUT)/etc/firmware/tzapps.b03; \
+        ln -sf /system/vendor/firmware/tzapps.mdt $(TARGET_OUT)/etc/firmware/tzapps.mdt;
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/root/BoardConfigVendor.mk b/self-extractors/root/BoardConfigVendor.mk
new file mode 100644
index 0000000..619da87
--- /dev/null
+++ b/self-extractors/root/BoardConfigVendor.mk
@@ -0,0 +1,19 @@
+# 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.
+
+LOCAL_STEM := deb/BoardConfigPartial.mk
+
+-include vendor/asus/$(LOCAL_STEM)
+-include vendor/broadcom/$(LOCAL_STEM)
+-include vendor/qcom/$(LOCAL_STEM)
diff --git a/self-extractors/root/device-vendor.mk b/self-extractors/root/device-vendor.mk
new file mode 100644
index 0000000..16e8d6c
--- /dev/null
+++ b/self-extractors/root/device-vendor.mk
@@ -0,0 +1,19 @@
+# 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.
+
+LOCAL_STEM := deb/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/qcom/$(LOCAL_STEM))
diff --git a/vendor_owner_info.txt b/vendor_owner_info.txt
new file mode 100644
index 0000000..2489d87
--- /dev/null
+++ b/vendor_owner_info.txt
@@ -0,0 +1,170 @@
+system/etc/apns-conf.xml:asus
+root/adb_keys:google
+system/bin/ATFWD-daemon:qcom
+system/etc/DxHDCP.cfg:qcom
+system/vendor/firmware/bcm2079x-b5_firmware.ncd:broadcom
+system/bin/bridgemgrd:qcom
+system/bin/btnvtool:qcom
+system/bin/diag_klog:qcom
+system/bin/diag_mdlog:qcom
+system/bin/ds_fmc_appd:qcom
+system/vendor/firmware/dsps.b00:qcom
+system/vendor/firmware/dsps.b01:qcom
+system/vendor/firmware/dsps.b02:qcom
+system/vendor/firmware/dsps.b03:qcom
+system/vendor/firmware/dsps.b04:qcom
+system/vendor/firmware/dsps.b05:qcom
+system/vendor/firmware/dsps.mdt:qcom
+system/vendor/firmware/discretix/dxhdcp2.b00:qcom
+system/vendor/firmware/discretix/dxhdcp2.b01:qcom
+system/vendor/firmware/discretix/dxhdcp2.b02:qcom
+system/vendor/firmware/discretix/dxhdcp2.b03:qcom
+system/vendor/firmware/discretix/dxhdcp2.mdt:qcom
+system/bin/efsks:qcom
+system/vendor/firmware/gss.b00:qcom
+system/vendor/firmware/gss.b01:qcom
+system/vendor/firmware/gss.b02:qcom
+system/vendor/firmware/gss.b03:qcom
+system/vendor/firmware/gss.b04:qcom
+system/vendor/firmware/gss.b05:qcom
+system/vendor/firmware/gss.b06:qcom
+system/vendor/firmware/gss.b07:qcom
+system/vendor/firmware/gss.b08:qcom
+system/vendor/firmware/gss.b09:qcom
+system/vendor/firmware/gss.b10:qcom
+system/vendor/firmware/gss.b11:qcom
+system/vendor/firmware/gss.mdt:qcom
+system/bin/hci_qcomm_init:qcom
+system/bin/irsc_util:qcom
+system/bin/ks:qcom
+system/lib/libAKM.so:asus
+system/lib/libCommandSvc.so:qcom
+system/lib/libDxHdcp.so:qcom
+system/lib/libI420colorconvert.so:qcom
+system/lib/libQSEEComAPI.so:qcom
+system/lib/libacdbdata.so:asus
+system/lib/libacdbloader.so:qcom
+system/lib/libaudcal.so:qcom
+system/lib/libaudioalsa.so:qcom
+system/lib/libchromatix_ov5693_common.so:qcom
+system/lib/libchromatix_ov5693_default_video.so:qcom
+system/lib/libchromatix_ov5693_preview.so:qcom
+system/lib/libconfigdb.so:qcom
+system/lib/libcsd-client.so:qcom
+system/lib/libdiag.so:qcom
+system/vendor/lib/libdrmdecrypt.so:qcom
+system/lib/libdrmdiag.so:qcom
+system/lib/libdrmfs.so:qcom
+system/lib/libdrmtime.so:qcom
+system/lib/libdsi_netctrl.so:qcom
+system/lib/libdsprofile.so:qcom
+system/lib/libdss.so:qcom
+system/lib/libdsucsd.so:qcom
+system/lib/libdsutils.so:qcom
+system/vendor/lib/libgemini.so:qcom
+system/vendor/lib/libimage-jpeg-enc-omx-comp.so:qcom
+system/vendor/lib/libimage-omx-common.so:qcom
+system/lib/libloc_api_v02.so:qcom
+system/lib/libmm-abl.so:qcom
+system/lib/libmm-abl-oem.so:qcom
+system/lib/libmm-color-convertor.so:qcom
+system/vendor/lib/libmmcamera2_iface_modules.so:qcom
+system/vendor/lib/libmmcamera2_imglib_modules.so:qcom
+system/vendor/lib/libmmcamera2_isp_modules.so:qcom
+system/vendor/lib/libmmcamera2_pproc_modules.so:qcom
+system/vendor/lib/libmmcamera2_sensor_modules.so:qcom
+system/lib/libmmcamera2_stats_algorithm.so:qcom
+system/vendor/lib/libmmcamera2_stats_modules.so:qcom
+system/vendor/lib/libmmcamera_faceproc.so:qcom
+system/lib/libmmcamera_image_stab.so:qcom
+system/lib/libmmcamera_mi1040.so:qcom
+system/lib/libmmcamera_ov5693.so:qcom
+system/vendor/lib/libmmipl.so:qcom
+system/vendor/lib/libmmjpeg.so:qcom
+system/vendor/lib/libmmqjpeg_codec.so:qcom
+system/vendor/lib/libmmstillomx.so:qcom
+system/lib/libnetmgr.so:qcom
+system/vendor/lib/liboemcamera.so:qcom
+system/lib/liboemcrypto.so:qcom
+system/lib/libqcci_legacy.so:qcom
+system/lib/libqdi.so:qcom
+system/lib/libqdp.so:qcom
+system/lib/libqmi.so:qcom
+system/lib/libqmi_cci.so:qcom
+system/lib/libqmi_client_qmux.so:qcom
+system/lib/libqmi_common_so.so:qcom
+system/lib/libqmi_csi.so:qcom
+system/lib/libqmi_csvt_srvc.so:qcom
+system/lib/libqmi_encdec.so:qcom
+system/lib/libqmiservices.so:qcom
+system/vendor/lib/libqomx_jpegenc.so:qcom
+system/lib/libril-qc-qmi-1.so:qcom
+system/lib/libril-qcril-hook-oem.so:qcom
+system/lib/libsensor1.so:qcom
+system/lib/libsensor_user_cal.so:qcom
+system/lib/libstagefright_hdcp.so:qcom
+system/bin/mm-pp-daemon:qcom
+system/bin/mm-qcamera-daemon:qcom
+system/bin/mm-qjpeg-enc-test:qcom
+system/bin/mm-qomx-ienc-test:qcom
+system/bin/mpdecision:qcom
+system/bin/netmgrd:qcom
+system/bin/nl_listener:qcom
+system/bin/port-bridge:qcom
+system/vendor/firmware/q6.b00:qcom
+system/vendor/firmware/q6.b01:qcom
+system/vendor/firmware/q6.b03:qcom
+system/vendor/firmware/q6.b04:qcom
+system/vendor/firmware/q6.b05:qcom
+system/vendor/firmware/q6.b06:qcom
+system/vendor/firmware/q6.mdt:qcom
+system/bin/qcks:qcom
+fake_packages/qcom_8x64_gpu_libs-timestamp:qcom
+system/bin/qmuxd:qcom
+system/bin/qseecomd:qcom
+system/bin/radish:qcom
+system/bin/rmt_storage:qcom
+system/lib/hw/sensors.msm8960.so:qcom
+system/bin/sensors.qcom:qcom
+system/bin/thermald:qcom
+system/vendor/firmware/tzapps.b00:qcom
+system/vendor/firmware/tzapps.b01:qcom
+system/vendor/firmware/tzapps.b02:qcom
+system/vendor/firmware/tzapps.b03:qcom
+system/vendor/firmware/tzapps.mdt:qcom
+system/bin/usbhub:qcom
+system/bin/usbhub_init:qcom
+system/etc/firmware/vidc.b00:qcom
+system/etc/firmware/vidc.b01:qcom
+system/etc/firmware/vidc.b02:qcom
+system/etc/firmware/vidc.b03:qcom
+system/etc/firmware/vidc.mdt:qcom
+system/etc/firmware/vidc_1080p.fw:qcom
+system/etc/firmware/vidcfw.elf:qcom
+system/vendor/firmware/wcnss.b00:qcom
+system/vendor/firmware/wcnss.b01:qcom
+system/vendor/firmware/wcnss.b02:qcom
+system/vendor/firmware/wcnss.b04:qcom
+system/vendor/firmware/wcnss.b05:qcom
+system/vendor/firmware/wcnss.mdt:qcom
+system/vendor/firmware/a300_pfp.fw:qcom
+system/vendor/firmware/a300_pm4.fw:qcom
+system/lib/egl/eglsubAndroid.so:qcom
+system/lib/libC2D2.so:qcom
+system/lib/egl/libEGL_adreno200.so:qcom
+system/lib/egl/libGLESv1_CM_adreno200.so:qcom
+system/lib/egl/libGLESv2_adreno200.so:qcom
+system/lib/libc2d2_a3xx.so:qcom
+system/lib/libgsl.so:qcom
+system/lib/libllvm-a3xx.so:qcom
+system/lib/egl/libq3dtools_adreno200.so:qcom
+system/lib/libsc-a3xx.so:qcom
+system/lib/libgeofence.so:qcom
+system/lib/libidl.so:qcom
+system/vendor/lib/libmmcamera2_c2d_module.so:qcom
+system/vendor/lib/libmmcamera2_cpp_module.so:qcom
+system/vendor/lib/libmmcamera2_vpe_module.so:qcom
+system/vendor/lib/libmmcamera2_wnr_module.so:qcom
+system/vendor/lib/libmmcamera_imglib.so:qcom
+system/lib/libsensor_reg.so:qcom
+system/lib/libxml.so:qcom
