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 17ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 18# Setup TV Build 19USE_OEM_TV_APP := true 20$(call inherit-product, device/google/atv/products/atv_base.mk) 21PRODUCT_CHARACTERISTICS := tv 22PRODUCT_AAPT_PREF_CONFIG := tvdpi 23PRODUCT_IS_ATV := true 24else 25# Adjust the dalvik heap to be appropriate for a tablet. 26$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) 27endif 28 29# Set vendor kernel path 30PRODUCT_VENDOR_KERNEL_HEADERS := device/linaro/hikey/kernel-headers 31 32# Hikey was first supported from Marshmallow 6.0, API level 23 33# PRODUCT_SHIPPING_API_LEVEL is required from Pie build by the CTS test of 34# CtsOsTestCases android.os.cts.BuildTest#testSdkInt 35# as reported here: 36# https://bugs.linaro.org/show_bug.cgi?id=4068 37# https://source.android.com/setup/start/build-numbers 38# Here we set it to 25 first, because Gatekeeper function 39# needs to be supported when set to 26 or above, 40# which we could not boot successfully with the default implementation 41# enabled yet. Will back to set it to the latest number when we have 42# all necessary features supported. 43PRODUCT_SHIPPING_API_LEVEL := 25 44 45# Set custom settings 46DEVICE_PACKAGE_OVERLAYS := device/linaro/hikey/overlay 47ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 48# Set TV Custom Settings 49DEVICE_PACKAGE_OVERLAYS += device/google/atv/overlay 50endif 51 52#Force navkeys on 53PRODUCT_PROPERTY_OVERRIDES += qemu.hw.mainkeys=0 54 55# Add openssh support for remote debugging and job submission 56PRODUCT_PACKAGES += ssh sftp scp sshd ssh-keygen sshd_config start-ssh 57 58# Add wifi-related packages 59PRODUCT_PACKAGES += libwpa_client wpa_supplicant hostapd wificond 60PRODUCT_PROPERTY_OVERRIDES += wifi.interface=wlan0 \ 61 wifi.supplicant_scan_interval=15 62 63# Build and run only ART 64PRODUCT_RUNTIMES := runtime_libart_default 65 66# Build default bluetooth a2dp and usb audio HALs 67PRODUCT_PACKAGES += audio.a2dp.default \ 68 audio.usb.default \ 69 audio.r_submix.default \ 70 tinyplay 71 72PRODUCT_PACKAGES += \ 73 android.hardware.audio@2.0-service \ 74 android.hardware.audio@2.0-impl \ 75 android.hardware.audio.effect@2.0-impl \ 76 android.hardware.broadcastradio@1.0-impl \ 77 android.hardware.soundtrigger@2.0-impl 78 79PRODUCT_PACKAGES += vndk_package 80 81PRODUCT_PACKAGES += \ 82 android.hardware.drm@1.0-impl \ 83 android.hardware.drm@1.0-service \ 84 android.hardware.bluetooth.audio@2.0-impl 85 86PRODUCT_PACKAGES += libGLES_android 87 88# Graphics HAL 89PRODUCT_PACKAGES += \ 90 android.hardware.graphics.allocator@2.0-impl \ 91 android.hardware.graphics.allocator@2.0-service \ 92 android.hardware.graphics.composer@2.1-impl \ 93 android.hardware.graphics.composer@2.1-service \ 94 android.hardware.graphics.mapper@2.0-impl 95 96# Memtrack 97PRODUCT_PACKAGES += memtrack.default \ 98 android.hardware.memtrack@1.0-service \ 99 android.hardware.memtrack@1.0-impl 100 101ifeq ($(HIKEY_USE_LEGACY_TI_BLUETOOTH), true) 102PRODUCT_PACKAGES += android.hardware.bluetooth@1.0-service.hikey uim 103else 104PRODUCT_PACKAGES += android.hardware.bluetooth@1.0-service.btlinux 105endif 106 107# PowerHAL 108PRODUCT_PACKAGES += \ 109 android.hardware.power@1.1-impl \ 110 android.hardware.power@1.1-service.hikey-common 111 112#GNSS HAL 113PRODUCT_PACKAGES += \ 114 android.hardware.gnss@1.0-impl 115 116# Keymaster HAL 117PRODUCT_PACKAGES += \ 118 android.hardware.keymaster@3.0-impl \ 119 android.hardware.keymaster@3.0-service 120 121 122# Sensor HAL 123ifneq ($(TARGET_SENSOR_MEZZANINE),) 124TARGET_USES_NANOHUB_SENSORHAL := true 125NANOHUB_SENSORHAL_LID_STATE_ENABLED := true 126NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist_$(TARGET_SENSOR_MEZZANINE).cpp 127NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true 128NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true 129 130PRODUCT_PACKAGES += \ 131 context_hub.default \ 132 android.hardware.sensors@1.0-service \ 133 android.hardware.sensors@1.0-impl \ 134 android.hardware.contexthub@1.0-service \ 135 android.hardware.contexthub@1.0-impl 136 137# Nanohub tools 138PRODUCT_PACKAGES += stm32_flash nanoapp_cmd nanotool 139 140PRODUCT_COPY_FILES += \ 141 device/linaro/hikey/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc 142 143# Copy sensors config file(s) 144PRODUCT_COPY_FILES += \ 145 frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ 146 frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ 147 frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ 148 frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ 149 frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ 150 frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \ 151 frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ 152 frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml \ 153 frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ 154 frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml 155 156# Argonkey VL53L0X proximity driver is not available yet. So we are going to copy conf file for neonkey only 157ifeq ($(TARGET_SENSOR_MEZZANINE),neonkey) 158PRODUCT_COPY_FILES += \ 159 frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml 160endif 161 162# VR HAL 163PRODUCT_COPY_FILES += \ 164 frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc \ 165 frameworks/native/data/etc/android.hardware.vr.high_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.high_performance.xml \ 166 frameworks/native/data/etc/android.hardware.vr.headtracking-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vr.headtracking.xml 167 168PRODUCT_PACKAGES += \ 169 vr.default \ 170 android.hardware.vr@1.0-service \ 171 android.hardware.vr@1.0-impl 172 173endif 174 175 176ifneq (,$(filter $(TARGET_PRODUCT),hikey960_tv hikey_tv)) 177# TV Specific Packages 178PRODUCT_PACKAGES += \ 179 TvSettings \ 180 LiveTv \ 181 google-tv-pairing-protocol \ 182 TvProvision \ 183 LeanbackSampleApp \ 184 TvSampleLeanbackLauncher \ 185 TvProvider \ 186 SettingsIntelligence \ 187 tv_input.default \ 188 com.android.media.tv.remoteprovider \ 189 InputDevices 190PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=260 191else 192 193# Use Launcher3QuickStep 194PRODUCT_PACKAGES += Launcher3QuickStep 195PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160 196endif 197 198# Copy hardware config file(s) 199PRODUCT_COPY_FILES += \ 200 device/linaro/hikey/etc/permissions/android.hardware.screen.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.screen.xml \ 201 device/linaro/hikey/etc/permissions/android.software.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.xml \ 202 frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ 203 frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ 204 frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml \ 205 frameworks/native/data/etc/android.software.voice_recognizers.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.voice_recognizers.xml \ 206 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 207 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 208 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 209 frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml 210 211# Include BT modules 212$(call inherit-product, device/linaro/hikey/wpan/ti-wpan-products.mk) 213 214PRODUCT_COPY_FILES += \ 215 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 216 frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ 217 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 218 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ 219 device/linaro/hikey/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ 220 $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ 221 $(LOCAL_PATH)/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf 222 223# audio policy configuration 224USE_XML_AUDIO_POLICY_CONF := 1 225PRODUCT_COPY_FILES += \ 226 device/linaro/hikey/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 227 frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ 228 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 229 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ 230 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 231 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml 232 233# Copy media codecs config file 234PRODUCT_COPY_FILES += \ 235 device/linaro/hikey/etc/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 236 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml 237 238PRODUCT_COPY_FILES += \ 239 device/linaro/hikey/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.common.rc \ 240 241PRODUCT_PACKAGES += \ 242 android.hardware.renderscript@1.0.vndk-sp\ 243 android.hardware.graphics.composer@2.1.vndk-sp\ 244 android.hardware.graphics.allocator@2.0.vndk-sp\ 245 android.hardware.graphics.mapper@2.0.vndk-sp\ 246 android.hardware.graphics.common@1.0.vndk-sp\ 247 libvndksupport.vndk-sp\ 248 libbinder.vndk-sp\ 249 libhwbinder.vndk-sp\ 250 libbase.vndk-sp\ 251 libfmq.vndk-sp\ 252 libcutils.vndk-sp\ 253 libhardware.vndk-sp\ 254 libhidlbase.vndk-sp\ 255 libhidltransport.vndk-sp\ 256 libui.vndk-sp\ 257 libutils.vndk-sp\ 258 libc++.vndk-sp\ 259 libRS_internal.vndk-sp\ 260 libRSDriver.vndk-sp\ 261 libRSCpuRef.vndk-sp\ 262 libbcinfo.vndk-sp\ 263 libblas.vndk-sp\ 264 libft2.vndk-sp\ 265 libpng.vndk-sp\ 266 libcompiler_rt.vndk-sp\ 267 libbacktrace.vndk-sp\ 268 libunwind.vndk-sp\ 269 libunwindstack.vndk-sp\ 270 liblzma.vndk-sp\ 271 libion.vndk-sp\ 272