PRODUCT_SOONG_NAMESPACES += device/amlogic/yukawa
# Check vendor package version
include device/amlogic/yukawa/vendor-package-ver.mk
ifneq (,$(wildcard $(YUKAWA_VENDOR_PATH)/bt-wifi-firmware))
ifneq (,$(wildcard $(YUKAWA_VENDOR_PATH)/bt-wifi-firmware/$(EXPECTED_YUKAWA_VENDOR_VERSION)/version.mk))
# Unfortunately inherit-product doesn't export build variables from the
# called make file to the caller, so we have to include it directly here.
include $(YUKAWA_VENDOR_PATH)/bt-wifi-firmware/$(EXPECTED_YUKAWA_VENDOR_VERSION)/version.mk
ifneq ($(TARGET_YUKAWA_VENDOR_VERSION), $(EXPECTED_YUKAWA_VENDOR_VERSION))
$(warning TARGET_YUKAWA_VENDOR_VERSION ($(TARGET_YUKAWA_VENDOR_VERSION)) does not match. Build may be invalid.)
$(warning Please download and extract the new binaries by running the following script:)
$(warning ./device/amlogic/yukawa/fetch-vendor-package.sh )
endif
else
$(warning TARGET_YUKAWA_VENDOR_VERSION undefined.)
$(warning The vendor package version is incorrect. Please update the yukawa source tree.)
endif
else
$(warning Missing yukawa vendor package!)
$(warning Please download and extract the vendor binaries by running the following script:)
$(warning ./device/amlogic/yukawa/fetch-vendor-package.sh )
endif
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 userspace reboot
$(call inherit-product, $(SRC_TARGET_DIR)/product/userspace_reboot.mk)
# Enable Virtual A/B
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk)
PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := gz
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
# Installs gsi keys into ramdisk, to boot a developer GSI with verified boot.
$(call inherit-product, $(SRC_TARGET_DIR)/product/developer_gsi_keys.mk)
DEVICE_PACKAGE_OVERLAYS := device/amlogic/yukawa/overlay
ifeq ($(TARGET_USE_TABLET_LAUNCHER), true)
# Setup tablet build
$(call inherit-product, frameworks/native/build/tablet-10 in-xhdpi-2048 -dalvik-heap.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
# Packages to invoke RC pairing
PRODUCT_CHARACTERISTICS := tablet
else
# Setup TV Build
USE_OEM_TV_APP := true
$(call inherit-product, device/google/atv/products/atv_base.mk)
PRODUCT_CHARACTERISTICS := tv
PRODUCT_IS_ATV := true
endif
# inherit binaries from the vendor package
$(call inherit-product-if -exists, $(YUKAWA_VENDOR_PATH)/bt-wifi-firmware/$(EXPECTED_YUKAWA_VENDOR_VERSION)/vendor.mk)
$(call inherit-product-if -exists, $(YUKAWA_VENDOR_PATH)/video_firmware/$(EXPECTED_YUKAWA_VENDOR_VERSION)/vendor.mk)
$(call inherit-product-if -exists, $(YUKAWA_VENDOR_PATH)/gpu/$(EXPECTED_YUKAWA_VENDOR_VERSION)/vendor.mk)
$(call inherit-product-if -exists, $(YUKAWA_VENDOR_PATH)/bootloader/$(EXPECTED_YUKAWA_VENDOR_VERSION)/vendor.mk)
# A/B support
PRODUCT_PACKAGES += \
otapreopt_script \
cppreopts.sh \
update_engine \
update_engine_sideload \
update_verifier \
sg_write_buffer \
f2fs_io \
check_f2fs
# The following modules are included in debuggable builds only.
PRODUCT_PACKAGES_DEBUG += \
bootctl \
update_engine_client \
SystemUpdaterSample
# Userdata Checkpointing OTA GC
PRODUCT_PACKAGES += \
checkpoint_gc
# Boot control
PRODUCT_PACKAGES += \
com.android.hardware.boot \
android.hardware.boot-service.default_recovery
# Dynamic partitions
PRODUCT_BUILD_SUPER_PARTITION := true
PRODUCT_USE_DYNAMIC_PARTITIONS := true
PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
PRODUCT_PACKAGES += \
android.hardware.fastboot@1 .1 \
android.hardware.fastboot@1 .1 -impl-mock \
fastbootd
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
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.yukawa.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.yukawa.rc \
$(LOCAL_PATH)/init.yukawa.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.yukawa.usb.rc \
$(LOCAL_PATH)/init.recovery.hardware.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.yukawa.rc \
$(LOCAL_PATH)/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc
ifeq ($(TARGET_USE_TABLET_LAUNCHER), true)
# Use Launcher3QuickStep
PRODUCT_PACKAGES += Launcher3QuickStep
else
# TV Specific Packages
PRODUCT_PACKAGES += \
LiveTv \
google-tv-pairing-protocol \
LeanbackSampleApp \
tv_input.default \
com.android.media.tv.remoteprovider \
InputDevices
# Fallback IME and Home apps
PRODUCT_PACKAGES += \
LeanbackIME \
TvSampleLeanbackLauncher
ifeq ($(TARGET_PRODUCT), yukawa_gms)
PRODUCT_PACKAGES += \
TvProvision \
TVLauncherNoGms \
TVRecommendationsNoGms
endif
endif
# Bluetooth
PRODUCT_PACKAGES += android.hardware.bluetooth-service.default
# Wifi
PRODUCT_PACKAGES += libwpa_client wpa_supplicant hostapd wificond wpa_cli
PRODUCT_PROPERTY_OVERRIDES += wifi.interface=wlan0 \
wifi.supplicant_scan_interval=15
PRODUCT_COPY_FILES += \
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 \
$(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
# Build default bluetooth a2dp and usb audio HALs
PRODUCT_PACKAGES += \
android.hardware.bluetooth.audio@2 .1 -impl \
android.hardware.bluetooth.audio-impl \
audio.usb.default \
audio.primary.yukawa \
audio.r_submix.default \
audio.bluetooth.default \
tinyplay \
tinycap \
tinymix \
tinypcminfo \
cplay
PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.audio@7 .1 -impl \
android.hardware.audio.effect@7 .0 -impl \
android.hardware.soundtrigger@2 .3 -impl
# audio policy configuration
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration_7_0.xml \
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
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
# CAS AIDL HAL
PRODUCT_PACKAGES += \
android.hardware.cas-service.example
# Graphics #
PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=320
# 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 += \
gralloc.yukawa \
android.hardware.graphics.allocator@2 .0 -service \
android.hardware.graphics.allocator@2 .0 -impl \
android.hardware.graphics.mapper@2 .0 -impl-2 .1
# Hardware Composer HAL
#
PRODUCT_PACKAGES += android.hardware.composer.hwc3-service.drm.meson
PRODUCT_PROPERTY_OVERRIDES += \
ro.hardware.egl=mali \
ro.hardware.vulkan=yukawa
PRODUCT_PROPERTY_OVERRIDES += \
ro.hardware.gralloc=yukawa
# Create input surface on the framework side
PRODUCT_VENDOR_PROPERTIES += \
debug.stagefright.c2inputsurface=-1
PRODUCT_VENDOR_PROPERTIES += \
ro.opengles.version=196610
# DRM Service
PRODUCT_PACKAGES += \
android.hardware.drm-service.widevine \
android.hardware.drm@latest-service.clearkey
# CEC on ATV only
ifeq ($(PRODUCT_IS_ATV), true)
PRODUCT_PACKAGES += \
android.hardware.tv.cec@1 .0 -impl \
android.hardware.tv.cec@1 .0 -service \
hdmi_cec.yukawa
PRODUCT_PROPERTY_OVERRIDES += \
ro.hdmi.cec_device_types=playback_device
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.hdmi.cec.xml:system/etc/permissions/android.hardware.hdmi.cec.xml
endif
# HDMI display
PRODUCT_PROPERTY_OVERRIDES += ro.hdmi.device_type=4 \
persist.sys.hdmi.keep_awake=false
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/input/Generic.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/Generic.kl
# Thermal HAL
PRODUCT_PACKAGES += android.hardware.thermal-service.example
# PowerHAL
PRODUCT_PACKAGES += \
android.hardware.power-service.example
# PowerStats HAL
PRODUCT_PACKAGES += \
android.hardware.power.stats-service.example
# Health: Install default binderized implementation to vendor.
PRODUCT_PACKAGES += \
android.hardware.health-service.example \
android.hardware.health-service.example_recovery
# Health Storage
PRODUCT_PACKAGES += \
android.hardware.health.storage-service.default
# 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 Security HAL
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1 .0 -service.software \
android.hardware.security.keymint-service
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1 .1 -service
PRODUCT_COPY_FILES += \
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
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.software.device_admin.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_admin.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
# Copy media codecs config file
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
device/amlogic/yukawa/media_xml/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
# Enable USB Camera
PRODUCT_PACKAGES += android.hardware.camera.provider@2 .5 -impl
PRODUCT_PACKAGES += android.hardware.camera.provider@2 .5 -external-service
PRODUCT_COPY_FILES += \
device/amlogic/yukawa/hal/camera/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml
# Include Virtualization APEX
$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
# ro.frp.pst points to a partition that contains factory reset protection information.
PRODUCT_VENDOR_PROPERTIES += ro.frp.pst=/dev/block/by-name/frp
Messung V0.5 in Prozent C=93 H=87 G=89
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-06-27)
¤
*© Formatika GbR, Deutschland