1# 2# Copyright (C) 2014 The Android Open-Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# Enable updating of APEXes 18$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) 19 20# Device overlay 21DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay 22 23# Build and run only ART 24PRODUCT_RUNTIMES := runtime_libart_default 25 26PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false 27 28# Enable Scoped Storage related 29$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) 30 31# vndk 32PRODUCT_PACKAGES += vndk-sp 33 34# HACK: Avoid usb crash 35PRODUCT_PRODUCT_PROPERTIES := \ 36 persist.adb.nonblocking_ffs=0 \ 37 ro.adb.nonblocking_ffs=0 38 39# DRM HAL 40PRODUCT_PACKAGES += \ 41 android.hardware.drm-service.clearkey \ 42 android.hardware.drm-service.widevine 43 44# Use Launcher3QuickStep 45PRODUCT_PACKAGES += Launcher3QuickStep 46 47# Enable WiFi 48PRODUCT_PACKAGES += \ 49 hostapd \ 50 libwpa_client \ 51 wpa_supplicant \ 52 wpa_supplicant.conf \ 53 wificond 54 55PRODUCT_PROPERTY_OVERRIDES += \ 56 wifi.interface=wlan0 \ 57 wifi.supplicant_scan_interval=15 58 59PRODUCT_COPY_FILES += \ 60 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 61 frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ 62 $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ 63 $(LOCAL_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf 64 65# Enable BT 66PRODUCT_PACKAGES += \ 67 android.hardware.bluetooth-service.default 68 69PRODUCT_COPY_FILES += \ 70 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 71 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml 72 73# Audio 74PRODUCT_PACKAGES += \ 75 android.hardware.audio.service \ 76 android.hardware.audio@7.0-impl \ 77 android.hardware.audio.effect@7.0-impl \ 78 android.hardware.soundtrigger@2.3-impl \ 79 android.hardware.bluetooth.audio@2.0-impl 80 81# Build default bluetooth a2dp and usb audio HALs 82PRODUCT_PACKAGES += \ 83 audio.bluetooth.default \ 84 audio.usb.default \ 85 audio.r_submix.default 86 87# Bluetooth Audio AIDL HAL 88PRODUCT_PACKAGES += \ 89 android.hardware.bluetooth.audio-impl \ 90PRODUCT_COPY_FILES += \ 91 frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \ 92 93# Build tinyalsa cli tools for debugging 94PRODUCT_PACKAGES += \ 95 tinyplay \ 96 tinycap \ 97 tinymix \ 98 tinypcminfo 99 100 101# audio policy configuration 102USE_XML_AUDIO_POLICY_CONF := 1 103PRODUCT_COPY_FILES += \ 104 $(LOCAL_PATH)/etc/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ 105 $(LOCAL_PATH)/etc/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 106 frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ 107 frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.xml \ 108 frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \ 109 frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \ 110 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 111 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ 112 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 113 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml 114 115# Copy media codecs config file 116PRODUCT_COPY_FILES += \ 117 $(LOCAL_PATH)/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 118 frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ 119 frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ 120 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml 121 122PRODUCT_COPY_FILES += \ 123 $(LOCAL_PATH)/seccomp_policy/mediaswcodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ 124 $(LOCAL_PATH)/seccomp_policy/mediaswcodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaswcodec.policy 125 126# Copy hardware config file(s) 127PRODUCT_COPY_FILES += \ 128 device/linaro/dragonboard/etc/permissions/android.software.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.xml 129 130 131# External Web Cam support 132PRODUCT_PACKAGES += \ 133 android.hardware.camera.provider@2.4-impl \ 134 android.hardware.camera.provider@2.4-external-service 135 136PRODUCT_COPY_FILES += \ 137 frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ 138 $(LOCAL_PATH)/etc/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ 139 $(LOCAL_PATH)/etc/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml 140 141# KeyMint. Note that this is an insecure implementation that should not be 142# used on a production device as it does not comply with [9.11/H-0-2] of the 143# Android CDD ("Handheld device implementations MUST back up the keystore 144# implementation with an isolated execution environment"). 145PRODUCT_PACKAGES += \ 146 com.android.hardware.keymint.rust_nonsecure 147PRODUCT_COPY_FILES += \ 148 frameworks/native/data/etc/android.hardware.keystore.app_attest_key.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.keystore.app_attest_key.xml 149 150# Gatekeeper. Note that this is an insecure implementation that should not be 151# used on a production device as it does not comply with [9.11/H-0-4] of the 152# Android CDD ("Handheld device implementations MUST perform the lock screen 153# authentication in the isolated execution environment "). 154PRODUCT_PACKAGES += \ 155 com.android.hardware.gatekeeper.nonsecure 156 157# Health HAL 158PRODUCT_PACKAGES += com.google.cf.health 159 160# TODO: disable this service once we implement system suspend 161PRODUCT_PACKAGES += \ 162 suspend_blocker 163 164# dtc and fdtoverlay tools to apply dt overlays 165# mkbootimg host tool to build boot.img separately 166PRODUCT_HOST_PACKAGES := \ 167 dtc \ 168 fdtoverlay \ 169 mkbootimg 170 171# Userspace vendor services for WiFi/Audio to work 172PRODUCT_PACKAGES += \ 173 pd-mapper \ 174 qrtr-ns \ 175 qrtr-cfg \ 176 qrtr-lookup \ 177 rmtfs \ 178 tqftpserv 179 180PRODUCT_COPY_FILES += \ 181 $(LOCAL_PATH)/shared/utils/init.utils.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.utils.rc 182 183# Copy standard platform config files 184PRODUCT_COPY_FILES += \ 185 $(LOCAL_PATH)/ueventd.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \ 186 frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ 187 frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ 188 frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml \ 189 frameworks/native/data/etc/android.software.voice_recognizers.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.voice_recognizers.xml \ 190 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 191 frameworks/native/data/etc/android.software.print.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.print.xml \ 192 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 193 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 194 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 \ 195 frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml 196 197TARGET_PRODUCT_PROP := $(LOCAL_PATH)/product.prop 198 199DEVICE_MANIFEST_FILE := device/linaro/dragonboard/manifest.xml 200