1# 2# Copyright (C) 2011 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# Check vendor package version 21# If you need to make changes to the vendor partition, 22# please modify the source git project here: 23# https://staging-git.codelinaro.org/linaro/linaro-aosp/aosp-linaro-vendor-package 24include $(LOCAL_PATH)/vendor-package-ver.mk 25ifneq (,$(wildcard $(LINARO_VENDOR_PATH)/hikey960/$(EXPECTED_LINARO_VENDOR_VERSION)/version.mk)) 26 # Unfortunately inherit-product doesn't export build variables from the 27 # called make file to the caller, so we have to include it directly here. 28 include $(LINARO_VENDOR_PATH)/hikey960/$(EXPECTED_LINARO_VENDOR_VERSION)/version.mk 29 ifneq ($(TARGET_LINARO_VENDOR_VERSION), $(EXPECTED_LINARO_VENDOR_VERSION)) 30 $(warning TARGET_LINARO_VENDOR_VERSION ($(TARGET_LINARO_VENDOR_VERSION)) does not match exiting the build ($(EXPECTED_LINARO_VENDOR_VERSION)).) 31 $(warning Please download and extract the new binaries by running the following script:) 32 $(warning ./device/linaro/hikey/fetch-vendor-package.sh ) 33 endif 34else 35 $(warning Missing Linaro Vendor Package!) 36 $(warning Please download and extract the vendor binaries by running the following script:) 37 $(warning ./device/linaro/hikey/fetch-vendor-package.sh ) 38endif 39 40ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 41# Setup TV Build 42USE_OEM_TV_APP := true 43$(call inherit-product, device/google/atv/products/atv_base.mk) 44PRODUCT_CHARACTERISTICS := tv 45PRODUCT_AAPT_PREF_CONFIG := tvdpi 46PRODUCT_IS_ATV := true 47else 48# Adjust the dalvik heap to be appropriate for a tablet. 49$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) 50$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) 51endif 52 53# Set vendor kernel path 54PRODUCT_VENDOR_KERNEL_HEADERS := device/linaro/hikey/kernel-headers 55 56PRODUCT_SHIPPING_API_LEVEL := 31 57PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false 58 59 60# Enable Scoped Storage related 61$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) 62 63# Set custom settings 64DEVICE_PACKAGE_OVERLAYS := device/linaro/hikey/overlay 65ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 66# Set TV Custom Settings 67DEVICE_PACKAGE_OVERLAYS += device/google/atv/overlay 68endif 69 70#avoid usb crash 71PRODUCT_PRODUCT_PROPERTIES += \ 72 persist.adb.nonblocking_ffs=0 \ 73 ro.adb.nonblocking_ffs=0 \ 74 75 76#Force navkeys on 77PRODUCT_PROPERTY_OVERRIDES += qemu.hw.mainkeys=0 78 79# Add openssh support for remote debugging and job submission 80PRODUCT_PACKAGES += ssh sftp scp sshd ssh-keygen sshd_config start-ssh 81 82# Add wifi-related packages 83PRODUCT_PACKAGES += libwpa_client wpa_supplicant hostapd wificond 84PRODUCT_PROPERTY_OVERRIDES += wifi.interface=wlan0 \ 85 wifi.supplicant_scan_interval=15 86 87# Build and run only ART 88PRODUCT_RUNTIMES := runtime_libart_default 89 90# Build default bluetooth a2dp and usb audio HALs 91PRODUCT_PACKAGES += audio.bluetooth.default \ 92 audio.usb.default \ 93 audio.r_submix.default \ 94 tinyplay 95 96PRODUCT_PACKAGES += \ 97 android.hardware.audio.service \ 98 android.hardware.audio@7.0-impl \ 99 android.hardware.audio.effect@7.0-impl \ 100 android.hardware.soundtrigger@2.3-impl \ 101 android.hardware.bluetooth.audio@2.0-impl 102 103 104PRODUCT_PACKAGES += vndk_package 105 106PRODUCT_PACKAGES += \ 107 android.hardware.drm@1.3-service.clearkey \ 108 android.hardware.drm@1.3-service.widevine \ 109 110# Graphics HAL 111PRODUCT_PACKAGES += \ 112 android.hardware.graphics.allocator@2.0-impl \ 113 android.hardware.graphics.allocator@2.0-service \ 114 android.hardware.graphics.composer@2.1-impl \ 115 android.hardware.graphics.composer@2.1-service \ 116 android.hardware.graphics.mapper@2.0-impl-2.1 \ 117 118PRODUCT_PACKAGES += android.hardware.bluetooth-service.default 119 120# 121# Power HAL 122# 123PRODUCT_PACKAGES += \ 124 android.hardware.power-service.example 125 126# 127# PowerStats HAL 128# 129PRODUCT_PACKAGES += \ 130 android.hardware.power.stats-service.example 131 132 133# Software Gatekeeper HAL 134PRODUCT_PACKAGES += \ 135 android.hardware.gatekeeper@1.0-service.software 136 137# Keymaster HAL 138PRODUCT_PACKAGES += \ 139 android.hardware.keymaster@3.0-impl \ 140 android.hardware.keymaster@3.0-service 141 142 143# Sensor HAL 144ifneq ($(TARGET_SENSOR_MEZZANINE),) 145TARGET_USES_NANOHUB_SENSORHAL := true 146NANOHUB_SENSORHAL_LID_STATE_ENABLED := true 147NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist_$(TARGET_SENSOR_MEZZANINE).cpp 148NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true 149NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true 150 151PRODUCT_PACKAGES += \ 152 context_hub.default \ 153 android.hardware.sensors@1.0-service \ 154 android.hardware.sensors@1.0-impl \ 155 android.hardware.contexthub@1.0-service \ 156 android.hardware.contexthub@1.0-impl 157 158# Nanohub tools 159PRODUCT_PACKAGES += stm32_flash nanoapp_cmd nanotool 160 161PRODUCT_COPY_FILES += \ 162 device/linaro/hikey/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc 163 164# Copy sensors config file(s) 165PRODUCT_COPY_FILES += \ 166 frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ 167 frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ 168 frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ 169 frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ 170 frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ 171 frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \ 172 frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ 173 frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml \ 174 frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ 175 frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml 176 177# Argonkey VL53L0X proximity driver is not available yet. So we are going to copy conf file for neonkey only 178ifeq ($(TARGET_SENSOR_MEZZANINE),neonkey) 179PRODUCT_COPY_FILES += \ 180 frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml 181endif 182 183# VR HAL 184PRODUCT_COPY_FILES += \ 185 frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc \ 186 frameworks/native/data/etc/android.hardware.vr.high_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.high_performance.xml \ 187 frameworks/native/data/etc/android.hardware.vr.headtracking-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.headtracking.xml 188 189PRODUCT_PACKAGES += \ 190 vr.default \ 191 android.hardware.vr@1.0-service \ 192 android.hardware.vr@1.0-impl 193 194endif 195 196 197ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 198# TV Specific Packages 199PRODUCT_PACKAGES += \ 200 TvSettings \ 201 LiveTv \ 202 google-tv-pairing-protocol \ 203 TvProvision \ 204 LeanbackSampleApp \ 205 TvSampleLeanbackLauncher \ 206 TvProvider \ 207 SettingsIntelligence \ 208 tv_input.default \ 209 com.android.media.tv.remoteprovider \ 210 InputDevices 211PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=260 212else 213 214# Use Launcher3QuickStep 215PRODUCT_PACKAGES += Launcher3QuickStep 216PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160 217endif 218 219# Copy hardware config file(s) 220PRODUCT_COPY_FILES += \ 221 device/linaro/hikey/etc/permissions/android.hardware.screen.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.screen.xml \ 222 device/linaro/hikey/etc/permissions/android.software.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.xml \ 223 frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ 224 frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ 225 frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml \ 226 frameworks/native/data/etc/android.software.voice_recognizers.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.voice_recognizers.xml \ 227 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 228 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 229 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 230 frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml 231 232PRODUCT_COPY_FILES += \ 233 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 234 frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ 235 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 236 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ 237 device/linaro/hikey/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ 238 $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ 239 $(LOCAL_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf 240 241# audio policy configuration 242USE_XML_AUDIO_POLICY_CONF := 1 243PRODUCT_COPY_FILES += \ 244 device/linaro/hikey/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 245 device/linaro/hikey/audio/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \ 246 frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ 247 frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration_7_0.xml \ 248 frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \ 249 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 250 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ 251 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 252 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml 253 254# Copy media codecs config file 255PRODUCT_COPY_FILES += \ 256 device/linaro/hikey/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 257 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml 258 259PRODUCT_COPY_FILES += \ 260 device/linaro/hikey/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.common.rc \ 261 262 263# Health 264PRODUCT_PACKAGES += \ 265 android.hardware.health@2.1-impl-cuttlefish \ 266 android.hardware.health@2.1-service 267 268# TODO: disable this service once we implement system suspend 269PRODUCT_PACKAGES += \ 270 suspend_blocker 271 272TARGET_PRODUCT_PROP := $(LOCAL_PATH)/product.prop 273