1PRODUCT_SOONG_NAMESPACES += device/amlogic/yukawa 2 3ifeq ($(TARGET_PREBUILT_KERNEL),) 4LOCAL_KERNEL := device/amlogic/yukawa-kernel/$(TARGET_KERNEL_USE)/Image.lz4 5else 6LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL) 7endif 8 9PRODUCT_COPY_FILES += $(LOCAL_KERNEL):kernel 10 11# Build and run only ART 12PRODUCT_RUNTIMES := runtime_libart_default 13 14# Enable updating of APEXes 15$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) 16 17# Enable Scoped Storage related 18$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) 19 20DEVICE_PACKAGE_OVERLAYS := device/amlogic/yukawa/overlay 21ifeq ($(TARGET_USE_TABLET_LAUNCHER), true) 22# Setup tablet build 23$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) 24$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) 25else 26# Setup TV Build 27USE_OEM_TV_APP := true 28$(call inherit-product, device/google/atv/products/atv_base.mk) 29PRODUCT_CHARACTERISTICS := tv 30PRODUCT_AAPT_PREF_CONFIG := tvdpi 31PRODUCT_IS_ATV := true 32endif 33 34PRODUCT_PACKAGES += llkd 35 36ifeq ($(TARGET_USE_AB_SLOT), true) 37# A/B support 38PRODUCT_PACKAGES += \ 39 otapreopt_script \ 40 cppreopts.sh \ 41 update_engine \ 42 update_verifier 43AB_OTA_POSTINSTALL_CONFIG += \ 44 RUN_POSTINSTALm=true \ 45 POSTINSTALL_PATH=system/bin/otapreopt_script \ 46 FILESYSTEM_TYPE=ext4 \ 47 POSTINSTALL_OPTIONAL=true 48 49PRODUCT_PACKAGES += \ 50 update_engine_sideload \ 51 sg_write_buffer \ 52 f2fs_io 53 54# The following modules are included in debuggable builds only. 55PRODUCT_PACKAGES_DEBUG += \ 56 bootctl \ 57 update_engine_client 58 59# Write flags to the vendor space in /misc partition. 60PRODUCT_PACKAGES += \ 61 misc_writer 62 63PRODUCT_PACKAGES += \ 64 fs_config_dirs \ 65 fs_config_files 66 67# Boot control 68PRODUCT_PACKAGES += \ 69 android.hardware.boot@1.0-impl \ 70 android.hardware.boot@1.0-impl.recovery \ 71 android.hardware.boot@1.0-service \ 72 bootctrl.yukawa.recovery \ 73 bootctrl.yukawa 74endif 75 76# Dynamic partitions 77PRODUCT_BUILD_SUPER_PARTITION := true 78PRODUCT_USE_DYNAMIC_PARTITIONS := true 79PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true 80 81PRODUCT_PACKAGES += \ 82 android.hardware.fastboot@1.0 \ 83 android.hardware.fastboot@1.0-impl-mock \ 84 fastbootd 85 86# All VNDK libraries (HAL interfaces, VNDK, VNDK-SP, LL-NDK) 87PRODUCT_PACKAGES += vndk_package 88 89PRODUCT_PACKAGES += \ 90 android.hardware.health@2.0-service.yukawa \ 91 android.hardware.health@2.0-service 92 93ifeq ($(TARGET_USE_AB_SLOT), true) 94ifeq ($(TARGET_AVB_ENABLE), true) 95PRODUCT_COPY_FILES += \ 96 $(LOCAL_PATH)/fstab.yukawa.avb.ab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.yukawa \ 97 $(LOCAL_PATH)/fstab.yukawa.avb.ab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa 98else 99PRODUCT_COPY_FILES += \ 100 $(LOCAL_PATH)/fstab.yukawa.ab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.yukawa \ 101 $(LOCAL_PATH)/fstab.yukawa.ab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa 102endif 103else 104ifeq ($(TARGET_AVB_ENABLE), true) 105PRODUCT_COPY_FILES += \ 106 $(LOCAL_PATH)/fstab.ramdisk.common.avb:$(TARGET_COPY_OUT_RAMDISK)/fstab.yukawa \ 107 $(LOCAL_PATH)/fstab.yukawa:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa 108else 109PRODUCT_COPY_FILES += \ 110 $(LOCAL_PATH)/fstab.ramdisk.common:$(TARGET_COPY_OUT_RAMDISK)/fstab.yukawa \ 111 $(LOCAL_PATH)/fstab.yukawa:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa 112endif 113endif 114 115PRODUCT_COPY_FILES += \ 116 $(LOCAL_PATH)/init.yukawa.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.yukawa.rc \ 117 $(LOCAL_PATH)/init.yukawa.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.yukawa.usb.rc \ 118 $(LOCAL_PATH)/init.recovery.hardware.rc:recovery/root/init.recovery.yukawa.rc \ 119 $(LOCAL_PATH)/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ 120 $(LOCAL_PATH)/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ 121 $(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ 122 $(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \ 123 $(LOCAL_PATH)/binaries/bt-wifi-firmware/BCM.hcd:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/BCM4359C0.hcd \ 124 $(LOCAL_PATH)/binaries/bt-wifi-firmware/fw_bcm4359c0_ag.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/fw_bcm4359c0_ag.bin \ 125 $(LOCAL_PATH)/binaries/bt-wifi-firmware/nvram.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/nvram.txt \ 126 127 128ifeq ($(TARGET_USE_TABLET_LAUNCHER), true) 129# Use Launcher3QuickStep 130PRODUCT_PACKAGES += Launcher3QuickStep 131else 132ifeq ($(TARGET_USE_SAMPLE_LAUNCHER), true) 133PRODUCT_PACKAGES += \ 134 TvSampleLeanbackLauncher 135endif 136 137# TV Specific Packages 138PRODUCT_PACKAGES += \ 139 LiveTv \ 140 google-tv-pairing-protocol \ 141 LeanbackSampleApp \ 142 tv_input.default \ 143 com.android.media.tv.remoteprovider \ 144 InputDevices 145 146PRODUCT_PACKAGES += \ 147 LeanbackIME 148 149ifeq (,$(filter $(TARGET_PRODUCT),yukawa_gms yukawa32_gms yukawa_sei510_gms)) 150PRODUCT_PACKAGES += \ 151 TvProvision \ 152 TVLauncherNoGms \ 153 TVRecommendationsNoGms 154endif 155endif 156 157PRODUCT_PACKAGES += \ 158 libhidltransport \ 159 libhwbinder 160 161PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=320 162 163PRODUCT_PACKAGES += libGLES_mali 164PRODUCT_PACKAGES += libGLES_android 165 166# Vulkan 167PRODUCT_COPY_FILES += \ 168 frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:vendor/etc/permissions/android.hardware.vulkan.version.xml \ 169 frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:vendor/etc/permissions/android.hardware.vulkan.compute.xml \ 170 frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:vendor/etc/permissions/android.hardware.vulkan.level.xml 171 172PRODUCT_PACKAGES += vulkan.yukawa.so 173 174# Bluetooth 175PRODUCT_PACKAGES += android.hardware.bluetooth@1.1-service.btlinux 176 177# Wifi 178PRODUCT_PACKAGES += libwpa_client wpa_supplicant hostapd wificond wpa_cli 179PRODUCT_PROPERTY_OVERRIDES += wifi.interface=wlan0 \ 180 wifi.supplicant_scan_interval=15 181 182# Build default bluetooth a2dp and usb audio HALs 183PRODUCT_PACKAGES += \ 184 audio.usb.default \ 185 audio.primary.yukawa \ 186 audio.r_submix.default \ 187 audio.bluetooth.default \ 188 audio.hearing_aid.default \ 189 audio.a2dp.default \ 190 tinyplay \ 191 tinycap \ 192 tinymix \ 193 tinypcminfo \ 194 cplay 195 196# Video 197PRODUCT_COPY_FILES += \ 198 $(LOCAL_PATH)/binaries/video_firmware/g12a_h264.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_h264.bin \ 199 $(LOCAL_PATH)/binaries/video_firmware/g12a_hevc_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_hevc_mmu.bin \ 200 $(LOCAL_PATH)/binaries/video_firmware/g12a_vp9.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_vp9.bin \ 201 $(LOCAL_PATH)/binaries/video_firmware/gxl_mpeg4_5.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mpeg4_5.bin \ 202 $(LOCAL_PATH)/binaries/video_firmware/gxl_mpeg12.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mpeg12.bin \ 203 $(LOCAL_PATH)/binaries/video_firmware/gxl_mjpeg.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mjpeg.bin \ 204 $(LOCAL_PATH)/binaries/video_firmware/sm1_hevc_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/sm1_hevc_mmu.bin \ 205 $(LOCAL_PATH)/binaries/video_firmware/sm1_vp9_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/sm1_vp9_mmu.bin 206 207PRODUCT_PACKAGES += \ 208 android.hardware.audio@2.0-service \ 209 android.hardware.audio@6.0-impl \ 210 android.hardware.audio.effect@6.0-impl \ 211 android.hardware.soundtrigger@2.2-impl \ 212 213# Hardware Composer HAL 214# 215PRODUCT_PACKAGES += \ 216 hwcomposer.drm_meson \ 217 android.hardware.drm@1.0-impl \ 218 android.hardware.drm@1.0-service \ 219 android.hardware.drm@1.4-service.widevine \ 220 android.hardware.drm@1.4-service.clearkey 221 222# CEC 223PRODUCT_PACKAGES += \ 224 android.hardware.tv.cec@1.0-impl \ 225 android.hardware.tv.cec@1.0-service \ 226 hdmi_cec.yukawa 227 228PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4 \ 229 persist.sys.hdmi.keep_awake=false 230 231PRODUCT_COPY_FILES += \ 232 $(LOCAL_PATH)/input/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Generic.kl \ 233 frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml 234 235# Memtrack 236PRODUCT_PACKAGES += memtrack.default \ 237 android.hardware.memtrack@1.0-service \ 238 android.hardware.memtrack@1.0-impl 239 240PRODUCT_PACKAGES += \ 241 gralloc.yukawa \ 242 android.hardware.graphics.composer@2.1-impl \ 243 android.hardware.graphics.composer@2.1-service \ 244 android.hardware.graphics.allocator@2.0-service \ 245 android.hardware.graphics.allocator@2.0-impl \ 246 android.hardware.graphics.mapper@2.0-impl 247 248# PowerHAL 249PRODUCT_PACKAGES += \ 250 power.default \ 251 android.hardware.power@1.0-impl \ 252 android.hardware.power@1.0-service 253 254# ThermalHAL 255PRODUCT_PACKAGES += \ 256 thermal.default \ 257 android.hardware.thermal@1.0-impl \ 258 android.hardware.thermal@1.0-service 259 260# Sensor HAL 261ifneq ($(TARGET_SENSOR_MEZZANINE),) 262TARGET_USES_NANOHUB_SENSORHAL := true 263NANOHUB_SENSORHAL_LID_STATE_ENABLED := true 264NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist_$(TARGET_SENSOR_MEZZANINE).cpp 265NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true 266NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true 267 268PRODUCT_PACKAGES += \ 269 context_hub.default \ 270 sensors.yukawa \ 271 android.hardware.sensors@1.0-service \ 272 android.hardware.sensors@1.0-impl \ 273 android.hardware.contexthub@1.0-service \ 274 android.hardware.contexthub@1.0-impl 275 276# Nanohub tools 277PRODUCT_PACKAGES += stm32_flash nanoapp_cmd nanotool 278 279PRODUCT_COPY_FILES += \ 280 device/amlogic/yukawa/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc 281 282# Copy sensors config file(s) 283PRODUCT_COPY_FILES += \ 284 frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ 285 frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ 286 frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ 287 frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ 288 frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ 289 frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \ 290 frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ 291 frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml \ 292 frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ 293 frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml 294 295# Argonkey VL53L0X proximity driver is not available yet. So we are going to copy conf file for neonkey only 296ifeq ($(TARGET_SENSOR_MEZZANINE),neonkey) 297PRODUCT_COPY_FILES += \ 298 frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml 299endif 300endif 301 302# Software Gatekeeper HAL 303PRODUCT_PACKAGES += \ 304 android.hardware.gatekeeper@1.0-service.software 305 306PRODUCT_PACKAGES += \ 307 android.hardware.keymaster@3.0-impl \ 308 android.hardware.keymaster@3.0-service 309 310# USB 311PRODUCT_PACKAGES += \ 312 android.hardware.usb@1.1-service 313 314PRODUCT_COPY_FILES += \ 315 frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ 316 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 317 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 318 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 319 frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml \ 320 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 321 frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ 322 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 323 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ 324 frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ 325 frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml 326 327# audio policy configuration 328USE_XML_AUDIO_POLICY_CONF := 1 329PRODUCT_COPY_FILES += \ 330 device/amlogic/yukawa/hal/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ 331 frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ 332 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 333 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ 334 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 335 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ 336 frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml 337 338AUDIO_DEFAULT_OUTPUT ?= speaker 339ifeq ($(AUDIO_DEFAULT_OUTPUT),hdmi) 340PRODUCT_COPY_FILES += \ 341 device/amlogic/yukawa/hal/audio/audio_policy_configuration_hdmi_only.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml 342DEVICE_PACKAGE_OVERLAYS += \ 343 device/amlogic/yukawa/hal/audio/overlay_hdmi_only 344else 345PRODUCT_COPY_FILES += \ 346 device/amlogic/yukawa/hal/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml 347endif 348 349# Copy media codecs config file 350PRODUCT_COPY_FILES += \ 351 device/amlogic/yukawa/media_xml/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 352 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml 353 354# Enable BT Pairing with button BTN_0 (key 256) 355PRODUCT_PACKAGES += YukawaService YukawaAndroidOverlay 356PRODUCT_COPY_FILES += \ 357 device/amlogic/yukawa/input/Vendor_0001_Product_0001.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Vendor_0001_Product_0001.kl 358 359 360# Light HAL 361PRODUCT_PACKAGES += \ 362 android.hardware.light-service \ 363 lights-yukawa 364 365# Enable USB Camera 366PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl 367PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-external-service 368PRODUCT_COPY_FILES += \ 369 device/amlogic/yukawa/hal/camera/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml 370 371# Include Virtualization APEX 372$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk) 373