# # Copyright (C) 2014 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. # # Enable updating of APEXes $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) # Device overlay DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay # Build and run only ART PRODUCT_RUNTIMES := runtime_libart_default PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false # Enable Scoped Storage related $(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) # vndk PRODUCT_PACKAGES += vndk-sp # HACK: Avoid usb crash PRODUCT_PRODUCT_PROPERTIES := \ persist.adb.nonblocking_ffs=0 \ ro.adb.nonblocking_ffs=0 # DRM HAL PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey \ android.hardware.drm-service.widevine # Mesa PRODUCT_PACKAGES += \ libGLES_mesa \ libEGL_mesa \ libGLESv1_CM_mesa \ libGLESv2_mesa \ libgallium_dri \ libglapi TARGET_BUILD_MESA ?= false ifeq ($(TARGET_BUILD_MESA), true) PRODUCT_SOONG_NAMESPACES += \ external/mesa3d endif PRODUCT_PROPERTY_OVERRIDES += \ ro.hardware.gralloc=minigbm_msm \ ro.hardware.hwcomposer=drm \ ro.opengles.version=196608 \ persist.demo.rotationlock=1 # Vulkan PRODUCT_PACKAGES += \ vulkan.freedreno PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ PRODUCT_VENDOR_PROPERTIES += \ ro.hardware.vulkan=freedreno # Will need to enable this after ANDROID_external_memory_android_hardware_buffer lands in mesa #TARGET_USES_VULKAN = true # # Hardware Composer HAL # PRODUCT_PACKAGES += \ hwcomposer.drm \ android.hardware.graphics.composer@2.3-impl \ android.hardware.graphics.composer@2.3-service # # Gralloc HAL # PRODUCT_PACKAGES += \ gralloc.minigbm_msm \ android.hardware.graphics.allocator@4.0-service.minigbm_msm \ android.hardware.graphics.mapper@4.0-impl.minigbm_msm # Use Launcher3QuickStep PRODUCT_PACKAGES += Launcher3QuickStep # Enable WiFi PRODUCT_PACKAGES += \ hostapd \ libwpa_client \ wpa_supplicant \ wpa_supplicant.conf \ wificond PRODUCT_PROPERTY_OVERRIDES += \ wifi.interface=wlan0 \ wifi.supplicant_scan_interval=15 PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ $(LOCAL_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf # Enable BT PRODUCT_PACKAGES += \ android.hardware.bluetooth@1.1-service.btlinux PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml # # Power HAL # PRODUCT_PACKAGES += \ android.hardware.power-service.example # # PowerStats HAL # PRODUCT_PACKAGES += \ android.hardware.power.stats-service.example # Audio PRODUCT_PACKAGES += \ android.hardware.audio.service \ android.hardware.audio@7.0-impl \ android.hardware.audio.effect@7.0-impl \ android.hardware.soundtrigger@2.3-impl \ android.hardware.bluetooth.audio@2.0-impl # Build default bluetooth a2dp and usb audio HALs PRODUCT_PACKAGES += \ audio.bluetooth.default \ audio.usb.default \ audio.r_submix.default # Build tinyalsa cli tools for debugging PRODUCT_PACKAGES += \ tinyplay \ tinycap \ tinymix \ tinypcminfo # audio policy configuration USE_XML_AUDIO_POLICY_CONF := 1 PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/etc/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ $(LOCAL_PATH)/etc/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ $(LOCAL_PATH)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \ frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml # Copy media codecs config file PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/seccomp_policy/mediaswcodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ $(LOCAL_PATH)/seccomp_policy/mediaswcodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaswcodec.policy # Copy hardware config file(s) PRODUCT_COPY_FILES += \ device/linaro/dragonboard/etc/permissions/android.software.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.xml # External Web Cam support PRODUCT_PACKAGES += \ android.hardware.camera.provider@2.4-impl \ android.hardware.camera.provider@2.4-external-service PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ $(LOCAL_PATH)/etc/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ $(LOCAL_PATH)/etc/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml # Keymaster PRODUCT_PACKAGES += \ android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-service # Gatekeeper PRODUCT_PACKAGES += \ android.hardware.gatekeeper@1.0-service.software # Health PRODUCT_PACKAGES += \ android.hardware.health@2.1-impl-cuttlefish \ android.hardware.health@2.1-service # TODO: disable this service once we implement system suspend PRODUCT_PACKAGES += \ suspend_blocker # mkbootimg host tool to build boot.img separately PRODUCT_HOST_PACKAGES := \ mkbootimg # Userspace vendor services for WiFi/Audio to work PRODUCT_PACKAGES += \ pd-mapper \ qrtr-ns \ qrtr-cfg \ qrtr-lookup \ rmtfs \ tqftpserv PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/qcom/init.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.qcom.rc # Copy standard platform config files PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml \ frameworks/native/data/etc/android.software.voice_recognizers.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.voice_recognizers.xml \ frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ frameworks/native/data/etc/android.software.print.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.print.xml \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ frameworks/native/data/etc/android.software.opengles.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml \ frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml TARGET_PRODUCT_PROP := $(LOCAL_PATH)/product.prop DEVICE_MANIFEST_FILE := device/linaro/dragonboard/manifest.xml DEVICE_MATRIX_FILE := device/linaro/dragonboard/compatibility_matrix.xml $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)