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