PRODUCT_SOONG_NAMESPACES += device/amlogic/yukawa ifeq ($(TARGET_PREBUILT_KERNEL),) LOCAL_KERNEL := device/amlogic/yukawa-kernel/$(TARGET_KERNEL_USE)/Image.lz4 else LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL) endif PRODUCT_COPY_FILES += $(LOCAL_KERNEL):kernel # Build and run only ART PRODUCT_RUNTIMES := runtime_libart_default # Enable updating of APEXes $(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) # Enable Scoped Storage related $(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) DEVICE_PACKAGE_OVERLAYS := device/amlogic/yukawa/overlay ifeq ($(TARGET_USE_TABLET_LAUNCHER), true) # Setup tablet build $(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) # Packages to invoke RC pairing PRODUCT_PACKAGES += YukawaService YukawaAndroidOverlay else # Setup TV Build USE_OEM_TV_APP := true $(call inherit-product, device/google/atv/products/atv_base.mk) PRODUCT_CHARACTERISTICS := tv PRODUCT_AAPT_PREF_CONFIG := tvdpi PRODUCT_IS_ATV := true endif PRODUCT_PACKAGES += llkd ifeq ($(TARGET_USE_AB_SLOT), true) # A/B support PRODUCT_PACKAGES += \ otapreopt_script \ cppreopts.sh \ update_engine \ update_verifier AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALm=true \ POSTINSTALL_PATH=system/bin/otapreopt_script \ FILESYSTEM_TYPE=ext4 \ POSTINSTALL_OPTIONAL=true PRODUCT_PACKAGES += \ update_engine_sideload \ sg_write_buffer \ f2fs_io # The following modules are included in debuggable builds only. PRODUCT_PACKAGES_DEBUG += \ bootctl \ update_engine_client # Write flags to the vendor space in /misc partition. PRODUCT_PACKAGES += \ misc_writer PRODUCT_PACKAGES += \ fs_config_dirs \ fs_config_files # Boot control PRODUCT_PACKAGES += \ android.hardware.boot@1.2-impl \ android.hardware.boot@1.2-impl.recovery \ android.hardware.boot@1.2-service \ bootctrl.yukawa.recovery \ bootctrl.yukawa endif # System RO FS Type TARGET_RO_FILE_SYSTEM_TYPE ?= ext4 # Dynamic partitions PRODUCT_BUILD_SUPER_PARTITION := true PRODUCT_USE_DYNAMIC_PARTITIONS := true PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true PRODUCT_PACKAGES += \ android.hardware.fastboot@1.0 \ android.hardware.fastboot@1.0-impl-mock \ fastbootd # All VNDK libraries (HAL interfaces, VNDK, VNDK-SP, LL-NDK) PRODUCT_PACKAGES += vndk_package PRODUCT_PACKAGES += \ android.hardware.health@2.1-impl-cuttlefish \ android.hardware.health@2.1-service ifeq ($(TARGET_USE_AB_SLOT), true) ifeq ($(TARGET_AVB_ENABLE), true) PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.yukawa.avb.ab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.yukawa \ $(LOCAL_PATH)/fstab.yukawa.avb.ab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa else PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.yukawa.ab:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.yukawa \ $(LOCAL_PATH)/fstab.yukawa.ab:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa endif else ifeq ($(TARGET_AVB_ENABLE), true) PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.ramdisk.common.avb:$(TARGET_COPY_OUT_RAMDISK)/fstab.yukawa \ $(LOCAL_PATH)/fstab.yukawa:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa else PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.ramdisk.common:$(TARGET_COPY_OUT_RAMDISK)/fstab.yukawa \ $(LOCAL_PATH)/fstab.yukawa:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.yukawa endif endif PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.yukawa.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.yukawa.rc \ $(LOCAL_PATH)/init.yukawa.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.yukawa.usb.rc \ $(LOCAL_PATH)/init.recovery.hardware.rc:recovery/root/init.recovery.yukawa.rc \ $(LOCAL_PATH)/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ $(LOCAL_PATH)/wifi/wpa_supplicant.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ $(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \ $(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf # BT and Wifi FW ifeq ($(TARGET_ADT3), true) PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/BCM4356A2.hcd:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/BCM4356A2.hcd \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/fw_bcm4356a2_ag.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/fw_bcm4356a2_ag.bin \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/nvram_ap6356.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/nvram.txt else PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/BCM.hcd:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/BCM4359C0.hcd \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/fw_bcm4359c0_ag.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/fw_bcm4359c0_ag.bin \ $(LOCAL_PATH)/binaries/bt-wifi-firmware/nvram_ap6359.txt:$(TARGET_COPY_OUT_VENDOR)/firmware/brcm/nvram.txt endif ifeq ($(TARGET_USE_TABLET_LAUNCHER), true) # Use Launcher3QuickStep PRODUCT_PACKAGES += Launcher3QuickStep else ifeq ($(TARGET_USE_SAMPLE_LAUNCHER), true) PRODUCT_PACKAGES += \ TvSampleLeanbackLauncher endif # TV Specific Packages PRODUCT_PACKAGES += \ LiveTv \ google-tv-pairing-protocol \ LeanbackSampleApp \ tv_input.default \ com.android.media.tv.remoteprovider \ InputDevices PRODUCT_PACKAGES += \ LeanbackIME ifeq (,$(filter $(TARGET_PRODUCT),yukawa_gms yukawa32_gms yukawa_sei510_gms)) PRODUCT_PACKAGES += \ TvProvision \ TVLauncherNoGms \ TVRecommendationsNoGms endif endif PRODUCT_PACKAGES += \ libhidltransport \ libhwbinder PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=320 PRODUCT_PACKAGES += libGLES_mali PRODUCT_PACKAGES += libGLES_android # Vulkan PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:vendor/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:vendor/etc/permissions/android.hardware.vulkan.compute.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:vendor/etc/permissions/android.hardware.vulkan.level.xml PRODUCT_PACKAGES += vulkan.yukawa.so # Bluetooth PRODUCT_PACKAGES += android.hardware.bluetooth@1.1-service.btlinux PRODUCT_PROPERTY_OVERRIDES += \ bluetooth.core.gap.le.privacy.enabled=false \ bluetooth.profile.asha.central.enabled=true \ bluetooth.profile.a2dp.source.enabled=true \ bluetooth.profile.avrcp.target.enabled=true \ bluetooth.profile.bap.broadcast.assist.enabled=true \ bluetooth.profile.bap.unicast.client.enabled=true \ bluetooth.profile.bas.client.enabled=true \ bluetooth.profile.ccp.server.enabled=true \ bluetooth.profile.csip.set_coordinator.enabled=true \ bluetooth.profile.gatt.enabled=true \ bluetooth.profile.hap.client.enabled=true \ bluetooth.profile.hfp.ag.enabled=true \ bluetooth.profile.hid.host.enabled=true \ bluetooth.profile.mcp.server.enabled=true \ bluetooth.profile.opp.enabled=true \ bluetooth.profile.pan.nap.enabled=true \ bluetooth.profile.pan.panu.enabled=true \ bluetooth.profile.vcp.controller.enabled=true # Wifi PRODUCT_PACKAGES += libwpa_client wpa_supplicant hostapd wificond wpa_cli PRODUCT_PROPERTY_OVERRIDES += wifi.interface=wlan0 \ wifi.supplicant_scan_interval=15 # Build default bluetooth a2dp and usb audio HALs PRODUCT_PACKAGES += \ android.hardware.bluetooth.audio@2.0-impl \ audio.usb.default \ audio.primary.yukawa \ audio.r_submix.default \ audio.bluetooth.default \ tinyplay \ tinycap \ tinymix \ tinypcminfo \ cplay # Video PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/binaries/video_firmware/g12a_h264.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_h264.bin \ $(LOCAL_PATH)/binaries/video_firmware/g12a_hevc_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_hevc_mmu.bin \ $(LOCAL_PATH)/binaries/video_firmware/g12a_vp9.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/g12a_vp9.bin \ $(LOCAL_PATH)/binaries/video_firmware/gxl_mpeg4_5.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mpeg4_5.bin \ $(LOCAL_PATH)/binaries/video_firmware/gxl_mpeg12.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mpeg12.bin \ $(LOCAL_PATH)/binaries/video_firmware/gxl_mjpeg.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/gxl_mjpeg.bin \ $(LOCAL_PATH)/binaries/video_firmware/sm1_hevc_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/sm1_hevc_mmu.bin \ $(LOCAL_PATH)/binaries/video_firmware/sm1_vp9_mmu.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/meson/vdec/sm1_vp9_mmu.bin PRODUCT_PACKAGES += \ android.hardware.audio.service \ android.hardware.audio@7.0-impl \ android.hardware.audio.effect@7.0-impl \ android.hardware.soundtrigger@2.3-impl \ # Hardware Composer HAL # PRODUCT_PACKAGES += \ hwcomposer.drm_meson \ android.hardware.drm-service.widevine \ android.hardware.drm-service.clearkey # CEC PRODUCT_PACKAGES += \ android.hardware.tv.cec@1.0-impl \ android.hardware.tv.cec@1.0-service \ hdmi_cec.yukawa PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4 \ ro.hdmi.cec_device_types=playback_device \ persist.sys.hdmi.keep_awake=false PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/input/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Generic.kl \ frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml PRODUCT_PACKAGES += \ gralloc.yukawa \ android.hardware.graphics.composer@2.2-impl \ android.hardware.graphics.composer@2.2-service \ android.hardware.graphics.allocator@2.0-service \ android.hardware.graphics.allocator@2.0-impl \ android.hardware.graphics.mapper@2.0-impl-2.1 # PowerHAL PRODUCT_PACKAGES += \ android.hardware.power-service.example # PowerStats HAL PRODUCT_PACKAGES += \ android.hardware.power.stats-service.example # Sensor HAL ifneq ($(TARGET_SENSOR_MEZZANINE),) TARGET_USES_NANOHUB_SENSORHAL := true NANOHUB_SENSORHAL_LID_STATE_ENABLED := true NANOHUB_SENSORHAL_SENSORLIST := $(LOCAL_PATH)/sensorhal/sensorlist_$(TARGET_SENSOR_MEZZANINE).cpp NANOHUB_SENSORHAL_DIRECT_REPORT_ENABLED := true NANOHUB_SENSORHAL_DYNAMIC_SENSOR_EXT_ENABLED := true PRODUCT_PACKAGES += \ context_hub.default \ sensors.yukawa \ android.hardware.sensors@1.0-service \ android.hardware.sensors@1.0-impl \ android.hardware.contexthub@1.2-service \ android.hardware.contexthub@1.2-impl # Nanohub tools PRODUCT_PACKAGES += stm32_flash nanoapp_cmd nanotool PRODUCT_COPY_FILES += \ device/amlogic/yukawa/init.common.nanohub.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.nanohub.rc # Copy sensors config file(s) PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \ frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml \ frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml # Argonkey VL53L0X proximity driver is not available yet. So we are going to copy conf file for neonkey only ifeq ($(TARGET_SENSOR_MEZZANINE),neonkey) PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml endif endif # Software Gatekeeper HAL PRODUCT_PACKAGES += \ android.hardware.gatekeeper@1.0-service.software PRODUCT_PACKAGES += \ android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-service # USB PRODUCT_PACKAGES += \ android.hardware.usb@1.1-service PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ frameworks/native/data/etc/android.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.xml \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ frameworks/native/data/etc/android.software.cts.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.cts.xml \ frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml # audio policy configuration USE_XML_AUDIO_POLICY_CONF := 1 PRODUCT_COPY_FILES += \ 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 \ frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml \ frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml AUDIO_DEFAULT_OUTPUT ?= speaker ifeq ($(AUDIO_DEFAULT_OUTPUT),hdmi) PRODUCT_COPY_FILES += \ device/amlogic/yukawa/hal/audio/mixer_paths_hdmi_only.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ device/amlogic/yukawa/hal/audio/audio_policy_configuration_hdmi_only.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml DEVICE_PACKAGE_OVERLAYS += \ device/amlogic/yukawa/hal/audio/overlay_hdmi_only TARGET_USE_HDMI_AUDIO ?= true else PRODUCT_COPY_FILES += \ device/amlogic/yukawa/hal/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ device/amlogic/yukawa/hal/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml endif # Copy media codecs config file PRODUCT_COPY_FILES += \ device/amlogic/yukawa/media_xml/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ device/amlogic/yukawa/media_xml/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml # Enable BT Pairing with button BTN_0 (key 256) PRODUCT_COPY_FILES += \ device/amlogic/yukawa/input/Vendor_0001_Product_0001.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Vendor_0001_Product_0001.kl # Light HAL PRODUCT_PACKAGES += \ android.hardware.light-service \ lights-yukawa # Enable USB Camera PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-external-service PRODUCT_COPY_FILES += \ device/amlogic/yukawa/hal/camera/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml # Include Virtualization APEX $(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)