Add template for generating tangorpro vendor blobs

Also add template for factory image

TEST:generated blobs from artifacts. Flashed device

BUG: 246437989
Change-Id: Ie80f389ec1407968e004be9ce3ceb0e6bf063b21
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
new file mode 100755
index 0000000..b6ff1a3
--- /dev/null
+++ b/factory-images/generate-factory-images-package.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# Copyright 2023 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.
+
+source ../../../common/clear-factory-images-variables.sh
+BUILD=9452078
+DEVICE=tangorpro
+PRODUCT=tangorpro
+VERSION=td2a.230104.001
+SRCPREFIX=signed-
+BOOTLOADER=tangorpro-1.0-9434949
+source ../../../common/generate-factory-images-common.sh
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/METADATA b/self-extractors/METADATA
new file mode 100644
index 0000000..d97975c
--- /dev/null
+++ b/self-extractors/METADATA
@@ -0,0 +1,3 @@
+third_party {
+  license_type: NOTICE
+}
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/extract-lists.txt b/self-extractors/extract-lists.txt
new file mode 100644
index 0000000..643a383
--- /dev/null
+++ b/self-extractors/extract-lists.txt
@@ -0,0 +1,11 @@
+  google_devices)
+    TO_EXTRACT="\
+            IMAGES/vbmeta_vendor.img \
+            IMAGES/vendor.img \
+            IMAGES/vendor_dlkm.img \
+            RADIO/bootloader.img \
+            system_ext/etc/permissions/privapp-permissions-qorvo.xml \
+            system_ext/priv-app/UwbVendorService/UwbVendorService.apk \
+            "
+    ;;
+
diff --git a/self-extractors/google_devices/COPYRIGHT b/self-extractors/google_devices/COPYRIGHT
new file mode 100644
index 0000000..db593ae
--- /dev/null
+++ b/self-extractors/google_devices/COPYRIGHT
@@ -0,0 +1 @@
+# (C) Google Inc.
diff --git a/self-extractors/google_devices/LICENSE b/self-extractors/google_devices/LICENSE
new file mode 100644
index 0000000..6b4042b
--- /dev/null
+++ b/self-extractors/google_devices/LICENSE
@@ -0,0 +1,264 @@
+THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
+BINDING AGREEMENT BETWEEN Google Inc. ("LICENSOR") AND
+YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
+TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
+AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
+IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
+PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
+SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
+SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
+SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
+ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
+SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
+
+   1.  Special Definitions
+
+      a.  The term "Android" means the open source mobile platform, software
+          stack, operating system, middleware, application programming
+          interfaces and mobile applications under the trade-name "Android"
+          distributed at Android.com.
+
+      b.  The term "Android Applications" means a software application or
+          open-source contribution developed by You, designed to operate with
+          Android that does not contain or incorporate any of the Software.
+
+      c.  The term "Authorized Android Enabled Device" means only the device
+          identified on the site from which You downloaded the Software.
+          The term "Software" means the Licensor's proprietary software and
+          libraries in object code form, designed for use on the Authorized
+          Android Enabled Device.
+
+      d.  The term "Authorized Android Enabled Device Software" means a
+          packaged build for Authorized Android Enabled Devices, consisting
+          of files suitable for installation on an Authorized Android Enabled
+          Device using a mechanism such as fastboot mode or recovery mode.
+
+   2.  License Grant
+
+      a.  Subject to the terms of this Agreement, Licensor hereby grants to
+          You, free of charge, a non-exclusive, non-sublicensable,
+          non-transferable, limited 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 Motorola 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/google_devices/staging/Android.bp.txt b/self-extractors/google_devices/staging/Android.bp.txt
new file mode 100644
index 0000000..4cbe8da
--- /dev/null
+++ b/self-extractors/google_devices/staging/Android.bp.txt
@@ -0,0 +1,17 @@
+// Copyright (C) 2023 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.
+
+soong_namespace {
+}
+
diff --git a/self-extractors/google_devices/staging/Android.mk b/self-extractors/google_devices/staging/Android.mk
new file mode 100644
index 0000000..907a371
--- /dev/null
+++ b/self-extractors/google_devices/staging/Android.mk
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2023 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)
+
+ifneq ($(filter tangorpro,$(TARGET_DEVICE)),)
+  $(call add-radio-file,bootloader.img)
+endif
+
+ifneq ($(filter tangorpro,$(TARGET_DEVICE)),)
+include $(CLEAR_VARS)
+LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
+LOCAL_MODULE := UwbVendorService
+LOCAL_MODULE_TAGS := optional
+LOCAL_BUILT_MODULE_STEM := package.apk
+LOCAL_SYSTEM_EXT_MODULE := true
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_MODULE_OWNER := qorvo
+LOCAL_MODULE_CLASS := APPS
+LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
+LOCAL_CERTIFICATE := platform
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
+include $(BUILD_PREBUILT)
+
+endif
diff --git a/self-extractors/google_devices/staging/BoardConfigPartial.mk b/self-extractors/google_devices/staging/BoardConfigPartial.mk
new file mode 100644
index 0000000..afe9e59
--- /dev/null
+++ b/self-extractors/google_devices/staging/BoardConfigPartial.mk
@@ -0,0 +1,37 @@
+# Copyright 2023 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.
+
+BOARD_PREBUILT_VENDORIMAGE := vendor/google_devices/tangorpro/proprietary/vendor.img
+
+BOARD_PREBUILT_VENDOR_DLKMIMAGE := vendor/google_devices/tangorpro/proprietary/vendor_dlkm.img
+
+TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
+
+BOARD_AVB_VBMETA_VENDOR := vendor
+BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
+BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
+BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
+BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
+
+AB_OTA_PARTITIONS += \
+    vbmeta_vendor \
+    vendor \
+    vendor_dlkm \
+
+-include vendor/google/tools/android-info.mk
+ifdef USE_ANDROID_INFO
+  TARGET_BOARD_INFO_FILE := vendor/google_devices/tangorpro/android-info.txt
+endif
+
+VENDOR_BLOBS_LICENSE := vendor/google_devices/tangorpro/LICENSE
diff --git a/self-extractors/google_devices/staging/device-partial.mk b/self-extractors/google_devices/staging/device-partial.mk
new file mode 100644
index 0000000..deeece2
--- /dev/null
+++ b/self-extractors/google_devices/staging/device-partial.mk
@@ -0,0 +1,25 @@
+# Copyright 2023 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.
+
+PRODUCT_SOONG_NAMESPACES += \
+    vendor/google_devices/tangorpro/proprietary \
+
+# AOSP packages required by the blobs
+PRODUCT_PACKAGES := \
+    UwbVendorService \
+
+#  blob(s) necessary for tangorpro hardware
+PRODUCT_COPY_FILES := \
+    vendor/google_devices/tangorpro/proprietary/privapp-permissions-qorvo.xml:system_ext/etc/permissions/privapp-permissions-qorvo.xml:qorvo \
+
diff --git a/self-extractors/root/android-info.txt b/self-extractors/root/android-info.txt
new file mode 100644
index 0000000..6898bbd
--- /dev/null
+++ b/self-extractors/root/android-info.txt
@@ -0,0 +1,4 @@
+require board=tangorpro
+require partition-exists=vendor_kernel_boot
+
+require version-bootloader=tangorpro-1.0-9282924
diff --git a/self-extractors/root/proprietary/BoardConfigVendor.mk b/self-extractors/root/proprietary/BoardConfigVendor.mk
new file mode 100644
index 0000000..cf08bac
--- /dev/null
+++ b/self-extractors/root/proprietary/BoardConfigVendor.mk
@@ -0,0 +1,15 @@
+# Copyright 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+-include vendor/google_devices/tangorpro/BoardConfigPartial.mk
diff --git a/self-extractors/root/proprietary/device-vendor.mk b/self-extractors/root/proprietary/device-vendor.mk
new file mode 100644
index 0000000..07fbc8d
--- /dev/null
+++ b/self-extractors/root/proprietary/device-vendor.mk
@@ -0,0 +1,15 @@
+# Copyright 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+$(call inherit-product-if-exists, vendor/google_devices/tangorpro/device-partial.mk)