Normalize building generic system image with treble-common.mk

Move the common part from make file of generic AOSP system images into
treble_common.mk, and update the content of common part.

The common part inclueds:

- HAL interfaces
- VNDK libs
- VNDK-SP libs
- Some other modules supporting HAL interfaces
- Some Treble default configurations

Bug: 37927875
Test: boot to home screen with the generic system image
Merged-In: I4202454d57970cef713f7d6437191094df0009e9
Change-Id: I4202454d57970cef713f7d6437191094df0009e9
This commit is contained in:
SzuWei Lin 2017-06-06 16:54:57 +08:00
parent 910e08c023
commit 6fdff23df2
4 changed files with 189 additions and 245 deletions

View File

@ -16,90 +16,10 @@
# PRODUCT_PROPERTY_OVERRIDES cannot be used here because sysprops will be at # PRODUCT_PROPERTY_OVERRIDES cannot be used here because sysprops will be at
# /vendor/[build|default].prop when build split is on. In order to have sysprops # /vendor/[build|default].prop when build split is on. In order to have sysprops
# on the generic system image, place them in build/make/target/board/generic_arm_nonab/ # on the generic system image, place them in build/make/target/board/generic_arm64_a/
# system.prop. # system.prop.
PRODUCT_COPY_FILES := \ include build/make/target/product/treble_common.mk
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml
#split selinux policy
PRODUCT_FULL_TREBLE_OVERRIDE := true
# 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.dvr.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.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.provider@2.4 \
android.hardware.configstore@1.0 \
android.hardware.contexthub@1.0 \
android.hardware.drm@1.0 \
android.hardware.gatekeeper@1.0 \
android.hardware.gnss@1.0 \
android.hardware.graphics.allocator@2.0 \
android.hardware.graphics.common@1.0 \
android.hardware.graphics.composer@2.1 \
android.hardware.graphics.mapper@2.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 \
android.hardware.media.omx@1.0-utils \
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.thermal@1.0 \
android.hardware.tv.cec@1.0 \
android.hardware.tv.input@1.0 \
android.hardware.usb@1.0 \
android.hardware.vibrator@1.0 \
android.hardware.vr@1.0 \
android.hardware.weaver@1.0 \
android.hardware.wifi@1.0 \
android.hardware.wifi.supplicant@1.0 \
android.hidl.allocator@1.0 \
android.hidl.base@1.0 \
android.hidl.manager@1.0 \
android.hidl.memory@1.0 \
PRODUCT_PACKAGES += \
libdynamic_sensor_ext \
libaudioroute \
libxml2 \
libtinyalsa \
libtinycompress \
cplay \
libion \
# WiFi
# Note: Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant,
# and wpa_supplicant.conf) is not here. They are at vendor.img
PRODUCT_PACKAGES += \
libwpa_client \
hostapd \
hostapd_cli \
wificond \
wifilogd \
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)

View File

@ -16,89 +16,10 @@
# PRODUCT_PROPERTY_OVERRIDES cannot be used here because sysprops will be at # PRODUCT_PROPERTY_OVERRIDES cannot be used here because sysprops will be at
# /vendor/[build|default].prop when build split is on. In order to have sysprops # /vendor/[build|default].prop when build split is on. In order to have sysprops
# on the generic system image, place them in build/make/target/board/generic_arm64_ab/ # on the generic system image, place them in build/make/target/board/generic_arm64_a/
# system.prop. # system.prop.
PRODUCT_COPY_FILES := \ include build/make/target/product/treble_common.mk
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml
#split selinux policy
PRODUCT_FULL_TREBLE_OVERRIDE := true
# 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.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.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.provider@2.4 \
android.hardware.configstore@1.1 \
android.hardware.contexthub@1.0 \
android.hardware.drm@1.0 \
android.hardware.gatekeeper@1.0 \
android.hardware.gnss@1.0 \
android.hardware.graphics.allocator@2.0 \
android.hardware.graphics.common@1.0 \
android.hardware.graphics.composer@2.1 \
android.hardware.graphics.mapper@2.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 \
android.hardware.media.omx@1.0-utils \
android.hardware.memtrack@1.0 \
android.hardware.nfc@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.thermal@1.0 \
android.hardware.tv.cec@1.0 \
android.hardware.tv.input@1.0 \
android.hardware.usb@1.0 \
android.hardware.vibrator@1.0 \
android.hardware.vr@1.0 \
android.hardware.wifi@1.0 \
android.hardware.wifi.supplicant@1.0 \
android.hidl.allocator@1.0 \
android.hidl.memory@1.0 \
PRODUCT_PACKAGES += \
libdynamic_sensor_ext \
libaudioroute \
libxml2 \
libtinyalsa \
libtinycompress \
cplay \
libion \
# WiFi
# Note: Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant,
# and wpa_supplicant.conf) is not here. They are at vendor.img
PRODUCT_PACKAGES += \
libwpa_client \
hostapd \
hostapd_cli \
wificond \
wifilogd \
# TODO(jiyong) move ims to vendor partition
#PRODUCT_PACKAGES += ims
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
AB_OTA_UPDATER := true AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system AB_OTA_PARTITIONS := system

View File

@ -19,88 +19,7 @@
# on the generic system image, place them in build/make/target/board/generic_arm_a/ # on the generic system image, place them in build/make/target/board/generic_arm_a/
# system.prop. # system.prop.
PRODUCT_COPY_FILES := \ include build/make/target/product/treble_common.mk
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml
#split selinux policy
PRODUCT_FULL_TREBLE_OVERRIDE := true
# 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.dvr.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.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.provider@2.4 \
android.hardware.configstore@1.0 \
android.hardware.contexthub@1.0 \
android.hardware.drm@1.0 \
android.hardware.gatekeeper@1.0 \
android.hardware.gnss@1.0 \
android.hardware.graphics.allocator@2.0 \
android.hardware.graphics.common@1.0 \
android.hardware.graphics.composer@2.1 \
android.hardware.graphics.mapper@2.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 \
android.hardware.media.omx@1.0-utils \
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.thermal@1.0 \
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.supplicant@1.0 \
android.hidl.allocator@1.0 \
android.hidl.base@1.0 \
android.hidl.manager@1.0 \
android.hidl.memory@1.0 \
PRODUCT_PACKAGES += \
libdynamic_sensor_ext \
libaudioroute \
libxml2 \
libtinyalsa \
libtinycompress \
cplay \
libion \
# WiFi
# Note: Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant,
# and wpa_supplicant.conf) is not here. They are at vendor.img
PRODUCT_PACKAGES += \
libwpa_client \
hostapd \
hostapd_cli \
wificond \
wifilogd \
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/verity.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/verity.mk)

View File

@ -0,0 +1,184 @@
#
# Copyright (C) 2017 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.
#
# 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.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.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.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.thermal@1.0 \
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.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.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 \
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 \
libziparchive \
# VNDK-SP:
PRODUCT_PACKAGES += \
vndk-sp \
PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system
# Wifi:
# Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant,
# and wpa_supplicant.conf) is not here. They are in vendor.img
PRODUCT_PACKAGES += \
wificond \
# Audio:
USE_XML_AUDIO_POLICY_CONF := 1
# The following policy XML files are used as fallback for
# vendors/devices not using XML to configure audio policy.
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/audio_policy_configuration.xml:system/etc/audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:system/etc/a2dp_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:system/etc/usb_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:system/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:system/etc/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:system/etc/default_volume_tables.xml \
# May need to review why the followings are needed in generic system image.
PRODUCT_COPY_FILES := \
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml