Split base.mk into system and vendor parts.

Put all packages that end up on the vendor partition in a separate mk,
to allow creating products with artifact path requirements.

Bug: 80410283
Test: diff product vars with multiproduct_kati
Change-Id: Ia35adaed2c8f9989c180bfdbbeeb2a5ecf634aa5
Merged-In: Ia35adaed2c8f9989c180bfdbbeeb2a5ecf634aa5
diff --git a/target/product/base.mk b/target/product/base.mk
index d65f124..1ecbf4a 100644
--- a/target/product/base.mk
+++ b/target/product/base.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2012 The Android Open Source Project
+# Copyright (C) 2018 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.
@@ -14,311 +14,7 @@
 # limitations under the License.
 #
 
-# Base modules (will move elsewhere, previously user tagged)
-PRODUCT_PACKAGES += \
-    20-dns.conf \
-    95-configured \
-    adb \
-    adbd \
-    adbd.recovery \
-    am \
-    android.hardware.cas@1.0-service \
-    android.hardware.configstore@1.0-service \
-    android.hardware.media.omx@1.0-service \
-    android.hidl.allocator@1.0-service \
-    android.hidl.base-V1.0-java \
-    android.hidl.manager-V1.0-java \
-    android.hidl.memory@1.0-impl \
-    android.hidl.memory@1.0-impl.vendor \
-    android.policy \
-    android.test.mock \
-    android.test.runner \
-    applypatch \
-    appops \
-    app_process \
-    appwidget \
-    atrace \
-    audioserver \
-    BackupRestoreConfirmation \
-    bcc \
-    bit \
-    blank_screen \
-    blkid \
-    bmgr \
-    bootanimation \
-    bootstat \
-    bpfloader \
-    bu \
-    bugreport \
-    bugreportz \
-    cameraserver \
-    charger \
-    cmd \
-    com.android.location.provider \
-    ContactsProvider \
-    content \
-    crash_dump \
-    CtsShimPrebuilt \
-    CtsShimPrivPrebuilt \
-    debuggerd\
-    dnsmasq \
-    DefaultContainerService \
-    DownloadProvider \
-    dpm \
-    dumpstate \
-    dumpsys \
-    e2fsck \
-    ExtServices \
-    ExtShared \
-    fastboot \
-    framework \
-    framework-res \
-    framework-sysconfig.xml \
-    fsck_msdos \
-    gatekeeperd \
-    gralloc.default \
-    healthd \
-    hid \
-    hwservicemanager \
-    idmap \
-    ime \
-    ims-common \
-    incident \
-    incidentd \
-    incident_report \
-    init \
-    init.environ.rc \
-    init.rc \
-    input \
-    installd \
-    ip \
-    ip6tables \
-    iptables \
-    ip-up-vpn \
-    javax.obex \
-    keystore \
-    ld.config.recovery.txt \
-    ld.config.txt \
-    ld.mc \
-    libaaudio \
-    libandroid \
-    libandroid_runtime \
-    libandroid_servers \
-    libaudioeffect_jni \
-    libaudioflinger \
-    libaudiopolicymanager \
-    libaudiopolicyservice \
-    libbinder \
-    libbundlewrapper \
-    libc \
-    libcamera2ndk \
-    libcamera_client \
-    libcameraservice \
-    libclearkeycasplugin \
-    libc_malloc_debug \
-    libc_malloc_hooks \
-    libcutils \
-    libdl \
-    libdownmix \
-    libdrmclearkeyplugin \
-    libdrmframework \
-    libdrmframework_jni \
-    libeffectproxy \
-    libeffects \
-    libEGL \
-    libETC1 \
-    libFFTEm \
-    libfilterfw \
-    libgatekeeper \
-    libGLESv1_CM \
-    libGLESv2 \
-    libGLESv3 \
-    libgui \
-    libhardware \
-    libhardware_legacy \
-    libinput \
-    libinputflinger \
-    libiprouteutil \
-    libjnigraphics \
-    libjpeg \
-    libkeystore \
-    libldnhncr \
-    liblog \
-    libm \
-    libmedia \
-    libmedia_jni \
-    libmediandk \
-    libmediaplayerservice \
-    libmtp \
-    libnetd_client \
-    libnetlink \
-    libnetutils \
-    libneuralnetworks \
-    libOpenMAXAL \
-    libOpenSLES \
-    libpdfium \
-    libpixelflinger \
-    libpower \
-    libradio_metadata \
-    libreference-ril \
-    libreverbwrapper \
-    libril \
-    librtp_jni \
-    libsensorservice \
-    libsigchain \
-    libskia \
-    libsonic \
-    libsonivox \
-    libsoundpool \
-    libsoundtrigger \
-    libsoundtriggerservice \
-    libsqlite \
-    libstagefright \
-    libstagefright_amrnb_common \
-    libstagefright_avc_common \
-    libstagefright_enc_common \
-    libstagefright_foundation \
-    libstagefright_omx \
-    libstagefright_yuv \
-    libstdc++ \
-    libsurfaceflinger \
-    libsurfaceflinger_ddmconnection \
-    libsysutils \
-    libui \
-    libusbhost \
-    libutils \
-    libvisualizer \
-    libvorbisidec \
-    libvulkan \
-    libwifi-service \
-    libwilhelm \
-    linker \
-    linker.recovery \
-    lmkd \
-    locksettings \
-    logcat \
-    logd \
-    lshal \
-    mdnsd \
-    media \
-    media_cmd \
-    mediadrmserver \
-    mediaextractor \
-    mediametrics \
-    media_profiles_V1_0.dtd \
-    MediaProvider \
-    mediaserver \
-    mke2fs \
-    monkey \
-    mtpd \
-    ndc \
-    netd \
-    org.apache.http.legacy \
-    perfetto \
-    ping \
-    ping6 \
-    platform.xml \
-    pm \
-    pppd \
-    privapp-permissions-platform.xml \
-    racoon \
-    recovery \
-    resize2fs \
-    run-as \
-    schedtest \
-    screencap \
-    sdcard \
-    secdiscard \
-    selinux_policy \
-    sensorservice \
-    service \
-    servicemanager \
-    services \
-    settings \
-    SettingsProvider \
-    sgdisk \
-    Shell \
-    shell_and_utilities \
-    sm \
-    storaged \
-    surfaceflinger \
-    svc \
-    tc \
-    telecom \
-    telephony-common \
-    thermalserviced \
-    tombstoned \
-    traced \
-    traced_probes \
-    tune2fs \
-    tzdatacheck \
-    uiautomator \
-    uncrypt \
-    usbd \
-    vdc \
-    vndservice \
-    vndservicemanager \
-    voip-common \
-    vold \
-    WallpaperBackup \
-    wificond \
-    wifi-service \
-    wm \
-
-
-# VINTF data
-PRODUCT_PACKAGES += \
-    device_compatibility_matrix.xml \
-    device_manifest.xml \
-    framework_manifest.xml \
-    framework_compatibility_matrix.xml \
-
-# AID Generation for
-# <pwd.h> and <grp.h>
-PRODUCT_PACKAGES += \
-    passwd \
-    group \
-    fs_config_files \
-    fs_config_dirs
-
-PRODUCT_COPY_FILES += \
-    system/core/rootdir/init.usb.rc:root/init.usb.rc \
-    system/core/rootdir/init.usb.configfs.rc:root/init.usb.configfs.rc \
-    system/core/rootdir/ueventd.rc:root/ueventd.rc \
-    system/core/rootdir/etc/hosts:system/etc/hosts
-
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32
-PRODUCT_COPY_FILES += system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
-
-# Ensure that this property is always defined so that bionic_systrace.cpp
-# can rely on it being initially set by init.
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
-    debug.atrace.tags.enableflags=0
-
-# Packages included only for eng or userdebug builds, previously debug tagged
-PRODUCT_PACKAGES_DEBUG := \
-    adb_keys \
-    iotop \
-    logpersist.start \
-    micro_bench \
-    perfprofd \
-    sqlite3 \
-    strace
-
-# Packages included only for eng/userdebug builds, when building with SANITIZE_TARGET=address
-PRODUCT_PACKAGES_DEBUG_ASAN :=
-
-PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
-    frameworks/base/config/preloaded-classes:system/etc/preloaded-classes)
-
-# Note: it is acceptable to not have a dirty-image-objects file. In that case, the special bin
-#       for known dirty objects in the image will be empty.
-PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
-    frameworks/base/config/dirty-image-objects:system/etc/dirty-image-objects)
-
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
-    ro.zygote=zygote32
-PRODUCT_COPY_FILES += \
-    system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
-
-$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
+# This makefile is suitable to inherit by products that don't need to be split
+# up by partition.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/base_system.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/base_vendor.mk)
diff --git a/target/product/base_system.mk b/target/product/base_system.mk
new file mode 100644
index 0000000..7cfe90b
--- /dev/null
+++ b/target/product/base_system.mk
@@ -0,0 +1,300 @@
+#
+# Copyright (C) 2018 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.
+#
+
+# Base modules and settings for the system partition.
+PRODUCT_PACKAGES += \
+    20-dns.conf \
+    95-configured \
+    adb \
+    adbd \
+    adbd.recovery \
+    am \
+    android.hidl.allocator@1.0-service \
+    android.hidl.base-V1.0-java \
+    android.hidl.manager-V1.0-java \
+    android.hidl.memory@1.0-impl \
+    android.hidl.memory@1.0-impl.vendor \
+    android.policy \
+    android.test.mock \
+    android.test.runner \
+    applypatch \
+    appops \
+    app_process \
+    appwidget \
+    atrace \
+    audioserver \
+    BackupRestoreConfirmation \
+    bcc \
+    bit \
+    blank_screen \
+    blkid \
+    bmgr \
+    bootanimation \
+    bootstat \
+    bpfloader \
+    bu \
+    bugreport \
+    bugreportz \
+    cameraserver \
+    charger \
+    cmd \
+    com.android.location.provider \
+    ContactsProvider \
+    content \
+    crash_dump \
+    CtsShimPrebuilt \
+    CtsShimPrivPrebuilt \
+    debuggerd\
+    DefaultContainerService \
+    dnsmasq \
+    DownloadProvider \
+    dpm \
+    dumpstate \
+    dumpsys \
+    e2fsck \
+    ExtServices \
+    ExtShared \
+    fastboot \
+    framework \
+    framework-res \
+    framework-sysconfig.xml \
+    fsck_msdos \
+    gatekeeperd \
+    healthd \
+    hid \
+    hwservicemanager \
+    idmap \
+    ime \
+    ims-common \
+    incident \
+    incidentd \
+    incident_report \
+    init \
+    init.environ.rc \
+    init.rc \
+    input \
+    installd \
+    ip \
+    ip6tables \
+    iptables \
+    ip-up-vpn \
+    javax.obex \
+    keystore \
+    ld.config.recovery.txt \
+    ld.config.txt \
+    ld.mc \
+    libaaudio \
+    libandroid \
+    libandroid_runtime \
+    libandroid_servers \
+    libaudioeffect_jni \
+    libaudioflinger \
+    libaudiopolicymanager \
+    libaudiopolicyservice \
+    libbinder \
+    libc \
+    libcamera2ndk \
+    libcamera_client \
+    libcameraservice \
+    libc_malloc_debug \
+    libc_malloc_hooks \
+    libcutils \
+    libdl \
+    libdrmclearkeyplugin \
+    libdrmframework \
+    libdrmframework_jni \
+    libEGL \
+    libETC1 \
+    libFFTEm \
+    libfilterfw \
+    libgatekeeper \
+    libGLESv1_CM \
+    libGLESv2 \
+    libGLESv3 \
+    libgui \
+    libhardware \
+    libhardware_legacy \
+    libinput \
+    libinputflinger \
+    libiprouteutil \
+    libjnigraphics \
+    libjpeg \
+    libkeystore \
+    liblog \
+    libm \
+    libmedia \
+    libmedia_jni \
+    libmediandk \
+    libmediaplayerservice \
+    libmtp \
+    libnetd_client \
+    libnetlink \
+    libnetutils \
+    libneuralnetworks \
+    libOpenMAXAL \
+    libOpenSLES \
+    libpdfium \
+    libpixelflinger \
+    libpower \
+    libradio_metadata \
+    librtp_jni \
+    libsensorservice \
+    libsigchain \
+    libskia \
+    libsonic \
+    libsonivox \
+    libsoundpool \
+    libsoundtrigger \
+    libsoundtriggerservice \
+    libsqlite \
+    libstagefright \
+    libstagefright_amrnb_common \
+    libstagefright_avc_common \
+    libstagefright_enc_common \
+    libstagefright_foundation \
+    libstagefright_omx \
+    libstagefright_yuv \
+    libstdc++ \
+    libsurfaceflinger \
+    libsurfaceflinger_ddmconnection \
+    libsysutils \
+    libui \
+    libusbhost \
+    libutils \
+    libvorbisidec \
+    libvulkan \
+    libwifi-service \
+    libwilhelm \
+    linker \
+    linker.recovery \
+    lmkd \
+    locksettings \
+    logcat \
+    logd \
+    lshal \
+    mdnsd \
+    media \
+    media_cmd \
+    mediadrmserver \
+    mediaextractor \
+    mediametrics \
+    media_profiles_V1_0.dtd \
+    MediaProvider \
+    mediaserver \
+    mke2fs \
+    monkey \
+    mtpd \
+    ndc \
+    netd \
+    org.apache.http.legacy \
+    perfetto \
+    ping \
+    ping6 \
+    platform.xml \
+    pm \
+    pppd \
+    privapp-permissions-platform.xml \
+    racoon \
+    recovery \
+    resize2fs \
+    run-as \
+    schedtest \
+    screencap \
+    sdcard \
+    secdiscard \
+    selinux_policy \
+    sensorservice \
+    service \
+    servicemanager \
+    services \
+    settings \
+    SettingsProvider \
+    sgdisk \
+    Shell \
+    shell_and_utilities_recovery \
+    shell_and_utilities_system \
+    sm \
+    storaged \
+    surfaceflinger \
+    svc \
+    tc \
+    telecom \
+    telephony-common \
+    thermalserviced \
+    tombstoned \
+    traced \
+    traced_probes \
+    tune2fs \
+    tzdatacheck \
+    uiautomator \
+    uncrypt \
+    usbd \
+    vdc \
+    voip-common \
+    vold \
+    WallpaperBackup \
+    wificond \
+    wifi-service \
+    wm \
+
+
+# VINTF data
+PRODUCT_PACKAGES += \
+    device_manifest.xml \
+    framework_manifest.xml \
+    framework_compatibility_matrix.xml \
+
+PRODUCT_COPY_FILES += \
+    system/core/rootdir/init.usb.rc:root/init.usb.rc \
+    system/core/rootdir/init.usb.configfs.rc:root/init.usb.configfs.rc \
+    system/core/rootdir/ueventd.rc:root/ueventd.rc \
+    system/core/rootdir/etc/hosts:system/etc/hosts
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32
+PRODUCT_COPY_FILES += system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
+
+# Ensure that this property is always defined so that bionic_systrace.cpp
+# can rely on it being initially set by init.
+PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
+    debug.atrace.tags.enableflags=0
+
+# Packages included only for eng or userdebug builds, previously debug tagged
+PRODUCT_PACKAGES_DEBUG := \
+    adb_keys \
+    iotop \
+    logpersist.start \
+    micro_bench \
+    perfprofd \
+    sqlite3 \
+    strace
+
+# Packages included only for eng/userdebug builds, when building with SANITIZE_TARGET=address
+PRODUCT_PACKAGES_DEBUG_ASAN :=
+
+PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
+    frameworks/base/config/preloaded-classes:system/etc/preloaded-classes)
+
+# Note: it is acceptable to not have a dirty-image-objects file. In that case, the special bin
+#       for known dirty objects in the image will be empty.
+PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\
+    frameworks/base/config/dirty-image-objects:system/etc/dirty-image-objects)
+
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
+    ro.zygote=zygote32
+PRODUCT_COPY_FILES += \
+    system/core/rootdir/init.zygote32.rc:root/init.zygote32.rc
+
+$(call inherit-product, $(SRC_TARGET_DIR)/product/runtime_libart.mk)
diff --git a/target/product/base_vendor.mk b/target/product/base_vendor.mk
new file mode 100644
index 0000000..efc0b75
--- /dev/null
+++ b/target/product/base_vendor.mk
@@ -0,0 +1,40 @@
+#
+# Copyright (C) 2018 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.
+#
+
+# Base modules and settings for the vendor partition.
+PRODUCT_PACKAGES += \
+    android.hardware.cas@1.0-service \
+    android.hardware.configstore@1.0-service \
+    android.hardware.media.omx@1.0-service \
+    device_compatibility_matrix.xml \
+    fs_config_files \
+    fs_config_dirs \
+    gralloc.default \
+    group \
+    libbundlewrapper \
+    libclearkeycasplugin \
+    libdownmix \
+    libeffectproxy \
+    libeffects \
+    libldnhncr \
+    libreference-ril \
+    libreverbwrapper \
+    libril \
+    libvisualizer \
+    passwd \
+    shell_and_utilities_vendor \
+    vndservice \
+    vndservicemanager \
diff --git a/target/product/core_minimal.mk b/target/product/core_minimal.mk
index baa297c..41881ac 100644
--- a/target/product/core_minimal.mk
+++ b/target/product/core_minimal.mk
@@ -126,4 +126,5 @@
     ro.logd.size.stats=64K \
     log.tag.stats_log=I
 
-$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/base_system.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/base_vendor.mk)