Apply vndk_package to generic system image

Add vndk_package into PRODUCT_PACKAGES, which includes
HAL interfaces, VNDK, VNDK-SP and LL-NDK.

vndk_package increases the total size of GSI content, so
changes the system partition size of:

* 64 bits projects to 1.5GB
* 32 bits projects to 1.0GB

Bug: 64654641
Test: build all GSI projects
Change-Id: I3c66c966eceebd63ee19f6a3de778beed0be6de5
diff --git a/target/board/generic_arm_a/BoardConfig.mk b/target/board/generic_arm_a/BoardConfig.mk
index 5293ae6..57a5196 100644
--- a/target/board/generic_arm_a/BoardConfig.mk
+++ b/target/board/generic_arm_a/BoardConfig.mk
@@ -21,7 +21,3 @@
 TARGET_CPU_ABI := armeabi-v7a
 TARGET_CPU_ABI2 := armeabi
 TARGET_CPU_VARIANT := generic
-
-# b/64458958
-# Partition size is 734MB for ARM32 (non A/B update)
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 769654784
diff --git a/target/board/generic_arm_ab/BoardConfig.mk b/target/board/generic_arm_ab/BoardConfig.mk
index 376aaab..ae8de14 100644
--- a/target/board/generic_arm_ab/BoardConfig.mk
+++ b/target/board/generic_arm_ab/BoardConfig.mk
@@ -25,7 +25,3 @@
 # Enable A/B update
 TARGET_NO_RECOVERY := true
 BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
-
-# b/64458958
-# Partition size is 734MB for ARM32 (A/B update)
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 769654784
diff --git a/target/board/treble_common.mk b/target/board/treble_common.mk
index de31f5a..f7c8b32 100644
--- a/target/board/treble_common.mk
+++ b/target/board/treble_common.mk
@@ -17,6 +17,9 @@
 # Common boardconfig settings for generic AOSP products targetting mobile
 # (phone/table) devices.
 
+# VNDK
+BOARD_VNDK_VERSION := current
+
 # Properties
 TARGET_SYSTEM_PROP := build/make/target/board/treble_system.prop
 BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
diff --git a/target/board/treble_common_32.mk b/target/board/treble_common_32.mk
index 67041a1..fb19d79 100644
--- a/target/board/treble_common_32.mk
+++ b/target/board/treble_common_32.mk
@@ -16,5 +16,5 @@
 
 include build/make/target/board/treble_common.mk
 
-# Partition size is default 0.75GB (768MB) for 32 bits projects
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 805306368
+# Partition size is default 1GB (1024MB) for 32 bits projects
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824
diff --git a/target/board/treble_common_64.mk b/target/board/treble_common_64.mk
index 957f593..0a6eb17 100644
--- a/target/board/treble_common_64.mk
+++ b/target/board/treble_common_64.mk
@@ -19,5 +19,5 @@
 # Enable 64-bits binder
 TARGET_USES_64_BIT_BINDER := true
 
-# Partition size is default 1.25GB (1280MB) for 64 bits projects
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1342177280
+# Partition size is default 1.5GB (1536MB) for 64 bits projects
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk
index 07c7ae1..2488653 100644
--- a/target/product/treble_common.mk
+++ b/target/product/treble_common.mk
@@ -22,179 +22,11 @@
 # Split selinux policy
 PRODUCT_FULL_TREBLE_OVERRIDE := true
 
-# HAL interfaces:
-#   Some of HAL interface libraries are automatically added by the dependencies
-#   from the framework. However, we list them all here to make it explicit and
-#   prevent possible mistake.
-PRODUCT_PACKAGES := \
-    android.frameworks.displayservice@1.0 \
-    android.frameworks.schedulerservice@1.0 \
-    android.frameworks.sensorservice@1.0 \
-    android.frameworks.vr.composer@1.0 \
-    android.hardware.audio@2.0 \
-    android.hardware.audio.common@2.0 \
-    android.hardware.audio.common@2.0-util \
-    android.hardware.audio.effect@2.0 \
-    android.hardware.automotive.evs@1.0 \
-    android.hardware.automotive.vehicle@2.0 \
-    android.hardware.automotive.vehicle@2.0-manager-lib-shared \
-    android.hardware.automotive.vehicle@2.1 \
-    android.hardware.biometrics.fingerprint@2.1 \
-    android.hardware.bluetooth@1.0 \
-    android.hardware.boot@1.0 \
-    android.hardware.broadcastradio@1.0 \
-    android.hardware.broadcastradio@1.1 \
-    android.hardware.camera.common@1.0 \
-    android.hardware.camera.device@1.0 \
-    android.hardware.camera.device@3.2 \
-    android.hardware.camera.metadata@3.2 \
-    android.hardware.camera.provider@2.4 \
-    android.hardware.configstore-utils \
-    android.hardware.configstore@1.0 \
-    android.hardware.configstore@1.1 \
-    android.hardware.contexthub@1.0 \
-    android.hardware.drm@1.0 \
-    android.hardware.dumpstate@1.0 \
-    android.hardware.gatekeeper@1.0 \
-    android.hardware.gnss@1.0 \
-    android.hardware.graphics.allocator@2.0 \
-    android.hardware.graphics.bufferqueue@1.0 \
-    android.hardware.graphics.common@1.0 \
-    android.hardware.graphics.composer@2.1 \
-    android.hardware.graphics.mapper@2.0 \
-    android.hardware.health@1.0 \
-    android.hardware.ir@1.0 \
-    android.hardware.keymaster@3.0 \
-    android.hardware.light@2.0 \
-    android.hardware.media@1.0 \
-    android.hardware.media.omx@1.0-utils \
-    android.hardware.media.omx@1.0 \
-    android.hardware.memtrack@1.0 \
-    android.hardware.nfc@1.0 \
-    android.hardware.oemlock@1.0 \
-    android.hardware.power@1.0 \
-    android.hardware.radio@1.0 \
-    android.hardware.radio.deprecated@1.0 \
-    android.hardware.sensors@1.0 \
-    android.hardware.soundtrigger@2.0 \
-    android.hardware.tetheroffload.config@1.0 \
-    android.hardware.tetheroffload.control@1.0 \
-    android.hardware.thermal@1.0 \
-    android.hardware.thermal@1.1 \
-    android.hardware.tv.cec@1.0 \
-    android.hardware.tv.input@1.0 \
-    android.hardware.usb@1.0 \
-    android.hardware.usb@1.1 \
-    android.hardware.vibrator@1.0 \
-    android.hardware.vr@1.0 \
-    android.hardware.weaver@1.0 \
-    android.hardware.wifi@1.0 \
-    android.hardware.wifi@1.1 \
-    android.hardware.wifi.supplicant@1.0 \
-    android.hidl.allocator@1.0 \
-    android.hidl.manager@1.0 \
-    android.hidl.memory@1.0 \
-    android.hidl.token@1.0 \
-    android.system.net.netd@1.0 \
-    android.system.wifi.keystore@1.0 \
-
-# VNDK:
-#   Some VNDK shared objects are automatically included indirectly.
-#   We list them all here to make it explicit and prevent possible mistakes.
-#   An example of one such mistake was libcurl, which is included in A/B
-#   devices because of update_engine, but not in non-A/B devices.
-PRODUCT_PACKAGES += \
-    libaudioroute \
-    libaudioutils \
-    libbinder \
-    libcamera_metadata \
-    libcap \
-    libcrypto \
-    libcrypto_utils \
-    libcups \
-    libcurl \
-    libdiskconfig \
-    libdumpstateutil \
-    libevent \
-    libexif \
-    libexpat \
-    libfmq \
-    libgatekeeper \
-    libgui \
-    libhardware_legacy \
-    libhidlmemory \
-    libicui18n \
-    libicuuc \
-    libjpeg \
-    libkeymaster1 \
-    libkeymaster_messages \
-    libldacBT_abr \
-    libldacBT_enc \
-    liblz4 \
-    liblzma \
-    libmdnssd \
-    libmemtrack \
-    libmemunreachable \
-    libmetricslogger \
-    libminijail \
-    libnetutils \
-    libnl \
-    libopus \
-    libpagemap \
-    libpcap \
-    libpcre2 \
-    libpcrecpp \
-    libpdfium \
-    libpiex \
-    libpower \
-    libprocessgroup \
-    libprocinfo \
-    libprotobuf-cpp-full \
-    libprotobuf-cpp-lite \
-    libradio_metadata \
-    libsoftkeymasterdevice \
-    libsonic \
-    libsonivox \
-    libspeexresampler \
-    libsqlite \
-    libssl \
-    libsuspend \
-    libsysutils \
-    libtinyalsa \
-    libtinyxml2 \
-    libui \
-    libusbhost \
-    libvixl-arm \
-    libvixl-arm64 \
-    libvorbisidec \
-    libwebrtc_audio_preprocessing \
-    libxml2 \
-    libyuv \
-    libziparchive \
-
-# VNDK-SP:
-PRODUCT_PACKAGES += \
-    vndk-sp \
-
-# LL-NDK:
-PRODUCT_PACKAGES += \
-    libandroid_net \
-    libc \
-    libdl \
-    liblog \
-    libm \
-    libstdc++ \
-    libvndksupport \
-    libz \
+# All VNDK libraries (HAL interfaces, VNDK, VNDK-SP, LL-NDK)
+PRODUCT_PACKAGES += vndk_package
 
 # SP-NDK:
 PRODUCT_PACKAGES += \
-    libEGL \
-    libGLESv1_CM \
-    libGLESv2 \
-    libGLESv3 \
-    libnativewindow \
-    libsync \
     libvulkan \
 
 # Audio: