855 lines
31 KiB
Makefile
855 lines
31 KiB
Makefile
#
|
|
# Copyright (C) 2017 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
# Include all languages
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
|
|
|
|
# Enable updating of APEXes
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
|
|
|
|
# Enable userspace reboot
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/userspace_reboot.mk)
|
|
|
|
# Enforce generic ramdisk allow list
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
|
|
|
|
# Set Vendor SPL to match platform
|
|
VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
|
|
|
|
# Set boot SPL
|
|
BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
|
|
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
ro.vendor.boot_security_patch=$(BOOT_SECURITY_PATCH)
|
|
|
|
PRODUCT_SOONG_NAMESPACES += device/generic/goldfish-opengl # for vulkan
|
|
PRODUCT_SOONG_NAMESPACES += device/generic/goldfish # for audio and wifi
|
|
|
|
PRODUCT_SHIPPING_API_LEVEL := 33
|
|
PRODUCT_USE_DYNAMIC_PARTITIONS := true
|
|
DISABLE_RILD_OEM_HOOK := true
|
|
|
|
# TODO(b/205788876) remove this condition when openwrt has an image for arm.
|
|
ifndef PRODUCT_ENFORCE_MAC80211_HWSIM
|
|
PRODUCT_ENFORCE_MAC80211_HWSIM := true
|
|
endif
|
|
|
|
PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
|
|
|
|
PRODUCT_SOONG_NAMESPACES += device/generic/goldfish-opengl # for vulkan
|
|
|
|
PRODUCT_FS_COMPRESSION := 1
|
|
TARGET_RO_FILE_SYSTEM_TYPE ?= ext4
|
|
TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE ?= f2fs
|
|
TARGET_USERDATAIMAGE_PARTITION_SIZE ?= 6442450944
|
|
|
|
TARGET_VULKAN_SUPPORT ?= true
|
|
TARGET_ENABLE_HOST_BLUETOOTH_EMULATION ?= true
|
|
TARGET_USE_BTLINUX_HAL_IMPL ?= true
|
|
|
|
# TODO(b/65201432): Swiftshader needs to create executable memory.
|
|
PRODUCT_REQUIRES_INSECURE_EXECMEM_FOR_SWIFTSHADER := true
|
|
|
|
AB_OTA_UPDATER := true
|
|
AB_OTA_PARTITIONS += \
|
|
boot \
|
|
odm \
|
|
odm_dlkm \
|
|
product \
|
|
system \
|
|
system_dlkm \
|
|
system_ext \
|
|
vbmeta \
|
|
vbmeta_system \
|
|
vendor \
|
|
vendor_boot \
|
|
vendor_dlkm \
|
|
|
|
TARGET_USES_INITBOOT ?= true
|
|
ifeq ($(TARGET_USES_INITBOOT),true)
|
|
AB_OTA_PARTITIONS += init_boot
|
|
endif
|
|
|
|
# Enable Virtual A/B
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk)
|
|
PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := gz
|
|
|
|
# Enable Scoped Storage related
|
|
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
|
|
|
|
# Properties that are not vendor-specific. These will go in the product
|
|
# partition, instead of the vendor partition, and do not need vendor
|
|
# sepolicy
|
|
PRODUCT_PRODUCT_PROPERTIES += \
|
|
persist.adb.tcp.port=5555 \
|
|
ro.com.google.locationfeatures=1 \
|
|
persist.sys.fuse.passthrough.enable=true \
|
|
persist.sys.fuse.bpf.enable=false \
|
|
|
|
# Until we support adb keys on user builds, and fix logcat over serial,
|
|
# spawn adbd by default without authorization for "adb logcat"
|
|
ifeq ($(TARGET_BUILD_VARIANT),user)
|
|
PRODUCT_PRODUCT_PROPERTIES += \
|
|
ro.adb.secure=0 \
|
|
ro.debuggable=1
|
|
endif
|
|
|
|
# Explanation of specific properties:
|
|
# ro.hardware.keystore_desede=true needed for CtsKeystoreTestCases
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
tombstoned.max_tombstone_count=500 \
|
|
vendor.bt.rootcanal_test_console=off \
|
|
ro.carrier=unknown \
|
|
ro.com.android.dataroaming?=false \
|
|
ro.hardware.virtual_device=1 \
|
|
ro.logd.size=1M \
|
|
wifi.interface=wlan0 \
|
|
wifi.direct.interface=p2p-dev-wlan0 \
|
|
persist.sys.zram_enabled=1 \
|
|
ro.hardware.keystore_desede=true \
|
|
ro.rebootescrow.device=/dev/block/pmem0 \
|
|
ro.vendor.hwcomposer.pmem=/dev/block/pmem1 \
|
|
ro.incremental.enable=1 \
|
|
debug.c2.use_dmabufheaps=1 \
|
|
ro.camerax.extensions.enabled=true \
|
|
|
|
LOCAL_BT_PROPERTIES ?= \
|
|
vendor.ser.bt-uart?=/dev/hvc5 \
|
|
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
${LOCAL_BT_PROPERTIES} \
|
|
|
|
# Below is a list of properties we probably should get rid of.
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
wlan.driver.status=ok
|
|
|
|
ifneq ($(LOCAL_DISABLE_OMX),true)
|
|
# Codec 1.0 requires the OMX services
|
|
DEVICE_MANIFEST_FILE += \
|
|
device/google/cuttlefish/shared/config/android.hardware.media.omx@1.0.xml
|
|
endif
|
|
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
debug.stagefright.c2inputsurface=-1
|
|
|
|
# Enforce privapp permissions control.
|
|
PRODUCT_VENDOR_PROPERTIES += ro.control_privapp_permissions?=enforce
|
|
|
|
# aes-256-heh default is not supported in standard kernels.
|
|
PRODUCT_VENDOR_PROPERTIES += ro.crypto.volume.filenames_mode=aes-256-cts
|
|
|
|
# Copy preopted files from system_b on first boot
|
|
PRODUCT_VENDOR_PROPERTIES += ro.cp_system_other_odex=1
|
|
|
|
AB_OTA_POSTINSTALL_CONFIG += \
|
|
RUN_POSTINSTALL_system=true \
|
|
POSTINSTALL_PATH_system=system/bin/otapreopt_script \
|
|
FILESYSTEM_TYPE_system=ext4 \
|
|
POSTINSTALL_OPTIONAL_system=true
|
|
|
|
AB_OTA_POSTINSTALL_CONFIG += \
|
|
RUN_POSTINSTALL_vendor=true \
|
|
POSTINSTALL_PATH_vendor=bin/checkpoint_gc \
|
|
FILESYSTEM_TYPE_vendor=ext4 \
|
|
POSTINSTALL_OPTIONAL_vendor=true
|
|
|
|
# Userdata Checkpointing OTA GC
|
|
PRODUCT_PACKAGES += \
|
|
checkpoint_gc
|
|
|
|
# Enable CameraX extension sample
|
|
PRODUCT_PACKAGES += androidx.camera.extensions.impl sample_camera_extensions.xml
|
|
|
|
# DRM service opt-in
|
|
PRODUCT_VENDOR_PROPERTIES += drm.service.enabled=true
|
|
|
|
# Call deleteAllKeys if vold detects a factory reset
|
|
PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=true
|
|
|
|
PRODUCT_SOONG_NAMESPACES += hardware/google/camera
|
|
PRODUCT_SOONG_NAMESPACES += hardware/google/camera/devices/EmulatedCamera
|
|
|
|
#
|
|
# Packages for various GCE-specific utilities
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
CuttlefishService \
|
|
cuttlefish_sensor_injection \
|
|
socket_vsock_proxy \
|
|
tombstone_transmit \
|
|
tombstone_producer \
|
|
suspend_blocker \
|
|
vsoc_input_service \
|
|
|
|
$(call soong_config_append,cvd,launch_configs,cvd_config_auto.json cvd_config_foldable.json cvd_config_go.json cvd_config_phone.json cvd_config_slim.json cvd_config_tablet.json cvd_config_tv.json cvd_config_wear.json)
|
|
$(call soong_config_append,cvd,grub_config,grub.cfg)
|
|
|
|
#
|
|
# Packages for AOSP-available stuff we use from the framework
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
e2fsck \
|
|
ip \
|
|
sleep \
|
|
tcpdump \
|
|
wificond \
|
|
|
|
#
|
|
# Packages for the OpenGL implementation
|
|
#
|
|
|
|
# ANGLE provides an OpenGL implementation built on top of Vulkan.
|
|
PRODUCT_PACKAGES += \
|
|
libEGL_angle \
|
|
libGLESv1_CM_angle \
|
|
libGLESv2_angle
|
|
|
|
# GL implementation for virgl
|
|
PRODUCT_PACKAGES += \
|
|
libGLES_mesa \
|
|
|
|
#
|
|
# Packages for the Vulkan implementation
|
|
#
|
|
ifeq ($(TARGET_VULKAN_SUPPORT),true)
|
|
PRODUCT_PACKAGES += \
|
|
vulkan.ranchu \
|
|
libvulkan_enc \
|
|
vulkan.pastel
|
|
endif
|
|
|
|
# GL/Vk implementation for gfxstream
|
|
PRODUCT_PACKAGES += \
|
|
libandroidemu \
|
|
libOpenglCodecCommon \
|
|
libOpenglSystemCommon \
|
|
libGLESv1_CM_emulation \
|
|
lib_renderControl_enc \
|
|
libEGL_emulation \
|
|
libGLESv2_enc \
|
|
libGLESv2_emulation \
|
|
libGLESv1_enc \
|
|
libGoldfishProfiler \
|
|
|
|
#
|
|
# Packages for testing
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
aidl_lazy_test_server \
|
|
aidl_lazy_cb_test_server \
|
|
hidl_lazy_test_server \
|
|
hidl_lazy_cb_test_server
|
|
|
|
# Runtime Resource Overlays
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += \
|
|
cuttlefish_overlay_connectivity \
|
|
cuttlefish_overlay_frameworks_base_core \
|
|
cuttlefish_overlay_settings_provider
|
|
|
|
endif
|
|
|
|
# PRODUCT_AAPT_CONFIG and PRODUCT_AAPT_PREF_CONFIG are intentionally not set to
|
|
# pick up every density resources.
|
|
|
|
#
|
|
# Common manifest for all targets
|
|
#
|
|
DEVICE_MANIFEST_FILE += device/google/cuttlefish/shared/config/manifest.xml
|
|
|
|
#
|
|
# General files
|
|
#
|
|
|
|
|
|
ifneq ($(LOCAL_SENSOR_FILE_OVERRIDES),true)
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_COPY_FILES += \
|
|
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.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
|
|
frameworks/native/data/etc/android.hardware.sensor.hinge_angle.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hinge_angle.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.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
|
|
frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/permissions/cuttlefish_excluded_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/cuttlefish_excluded_hardware.xml \
|
|
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
|
|
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 \
|
|
frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
|
|
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
|
|
frameworks/native/data/etc/android.hardware.reboot_escrow.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.reboot_escrow.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.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.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
|
|
frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
|
|
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
|
|
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \
|
|
hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_back.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_back.json \
|
|
hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json \
|
|
hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_depth.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_depth.json
|
|
endif
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/native/data/etc/android.hardware.consumerir.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.consumerir.xml \
|
|
device/google/cuttlefish/shared/config/init.vendor.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.cutf_cvm.rc \
|
|
device/google/cuttlefish/shared/config/init.product.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/init.rc \
|
|
device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \
|
|
device/google/cuttlefish/shared/config/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
|
|
device/google/cuttlefish/shared/config/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
|
|
device/google/cuttlefish/shared/config/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
|
|
device/google/cuttlefish/shared/config/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \
|
|
device/google/cuttlefish/shared/permissions/privapp-permissions-cuttlefish.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-cuttlefish.xml \
|
|
frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
|
|
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
|
|
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.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/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
|
|
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
|
|
frameworks/av/services/audiopolicy/config/surround_sound_configuration_5_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/surround_sound_configuration_5_0.xml \
|
|
device/google/cuttlefish/shared/config/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json \
|
|
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += com.google.cf.input.config
|
|
else
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/config/input/Crosvm_Virtio_Multitouch_Touchscreen_0.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/Crosvm_Virtio_Multitouch_Touchscreen_0.idc \
|
|
device/google/cuttlefish/shared/config/input/Crosvm_Virtio_Multitouch_Touchscreen_1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/Crosvm_Virtio_Multitouch_Touchscreen_1.idc \
|
|
device/google/cuttlefish/shared/config/input/Crosvm_Virtio_Multitouch_Touchscreen_2.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/Crosvm_Virtio_Multitouch_Touchscreen_2.idc \
|
|
device/google/cuttlefish/shared/config/input/Crosvm_Virtio_Multitouch_Touchscreen_3.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/Crosvm_Virtio_Multitouch_Touchscreen_3.idc
|
|
endif
|
|
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.f2fs \
|
|
device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.f2fs \
|
|
device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.f2fs \
|
|
device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ext4 \
|
|
device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ext4 \
|
|
device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.ext4
|
|
|
|
ifeq ($(TARGET_VULKAN_SUPPORT),true)
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
|
|
frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
|
|
frameworks/native/data/etc/android.software.vulkan.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
|
|
frameworks/native/data/etc/android.software.opengles.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
|
|
endif
|
|
endif
|
|
|
|
# Packages for HAL implementations
|
|
|
|
#
|
|
# Atrace HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.atrace@1.0-service
|
|
|
|
#
|
|
# Weaver aidl HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.weaver-service.example
|
|
|
|
#
|
|
# IR aidl HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.ir-service.example
|
|
|
|
#
|
|
# OemLock aidl HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.oemlock-service.example
|
|
|
|
#
|
|
# Authsecret HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.authsecret@1.0-service
|
|
|
|
#
|
|
# Authsecret AIDL HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.authsecret-service.example
|
|
#
|
|
# Hardware Composer HAL
|
|
#
|
|
# The device needs to avoid having both hwcomposer2.4 and hwcomposer3
|
|
# services running at the same time so make the user manually enables
|
|
# in order to run with --gpu_mode=drm.
|
|
ifeq ($(TARGET_ENABLE_DRMHWCOMPOSER),true)
|
|
DEVICE_MANIFEST_FILE += \
|
|
device/google/cuttlefish/shared/config/manifest_android.hardware.graphics.composer@2.4-service.xml
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.graphics.composer@2.4-service \
|
|
hwcomposer.drm
|
|
else
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.graphics.composer3-service.ranchu
|
|
endif
|
|
|
|
#
|
|
# Gralloc HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.graphics.allocator-V1-service.minigbm \
|
|
android.hardware.graphics.mapper@4.0-impl.minigbm
|
|
|
|
#
|
|
# Bluetooth HAL and Compatibility Bluetooth library (for older revs).
|
|
#
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
ifeq ($(LOCAL_BLUETOOTH_PRODUCT_PACKAGE),)
|
|
ifeq ($(TARGET_ENABLE_HOST_BLUETOOTH_EMULATION),true)
|
|
ifeq ($(TARGET_USE_BTLINUX_HAL_IMPL),true)
|
|
LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.btlinux
|
|
else
|
|
LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.remote
|
|
endif
|
|
else
|
|
LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.sim
|
|
endif
|
|
DEVICE_MANIFEST_FILE += device/google/cuttlefish/shared/config/manifest_android.hardware.bluetooth@1.1-service.xml
|
|
endif
|
|
|
|
PRODUCT_COPY_FILES +=\
|
|
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
|
|
|
|
PRODUCT_PACKAGES += $(LOCAL_BLUETOOTH_PRODUCT_PACKAGE)
|
|
|
|
PRODUCT_PACKAGES += android.hardware.bluetooth.audio@2.1-impl bt_vhci_forwarder
|
|
|
|
# Bluetooth initialization configuration is copied to the init folder here instead of being added
|
|
# as an init_rc attribute of the bt_vhci_forward binary. The bt_vhci_forward binary is used by
|
|
# multiple targets with different initialization configurations.
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/guest/commands/bt_vhci_forwarder/bt_vhci_forwarder.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/bt_vhci_forwarder.rc
|
|
|
|
else
|
|
PRODUCT_PACKAGES += com.google.cf.bt android.hardware.bluetooth.audio@2.1-impl
|
|
endif
|
|
|
|
#
|
|
# Bluetooth Audio AIDL HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.bluetooth.audio-impl \
|
|
|
|
#
|
|
# Audio HAL
|
|
#
|
|
ifndef LOCAL_AUDIO_PRODUCT_PACKAGE
|
|
LOCAL_AUDIO_PRODUCT_PACKAGE := \
|
|
android.hardware.audio.service \
|
|
android.hardware.audio@7.1-impl.ranchu \
|
|
android.hardware.audio.effect@7.0-impl
|
|
DEVICE_MANIFEST_FILE += \
|
|
device/google/cuttlefish/guest/hals/audio/effects/manifest.xml
|
|
endif
|
|
|
|
ifndef LOCAL_AUDIO_PRODUCT_COPY_FILES
|
|
LOCAL_AUDIO_PRODUCT_COPY_FILES := \
|
|
device/generic/goldfish/audio/policy/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
|
|
device/generic/goldfish/audio/policy/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.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/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
|
|
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
|
|
frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml
|
|
endif
|
|
|
|
PRODUCT_PACKAGES += $(LOCAL_AUDIO_PRODUCT_PACKAGE)
|
|
PRODUCT_COPY_FILES += $(LOCAL_AUDIO_PRODUCT_COPY_FILES)
|
|
DEVICE_PACKAGE_OVERLAYS += $(LOCAL_AUDIO_DEVICE_PACKAGE_OVERLAYS)
|
|
|
|
#
|
|
# BiometricsFace HAL (HIDL)
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.biometrics.face@1.0-service.example
|
|
|
|
#
|
|
# BiometricsFingerprint HAL (HIDL)
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.biometrics.fingerprint@2.2-service.example
|
|
|
|
#
|
|
# BiometricsFace HAL (AIDL)
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.biometrics.face-service.example
|
|
|
|
#
|
|
# BiometricsFingerprint HAL (AIDL)
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.biometrics.fingerprint-service.example
|
|
|
|
#
|
|
# Contexthub HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.contexthub-service.example
|
|
|
|
#
|
|
# Drm HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.drm@latest-service.clearkey \
|
|
android.hardware.drm@latest-service.widevine
|
|
|
|
#
|
|
# Confirmation UI HAL
|
|
#
|
|
ifeq ($(LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE),)
|
|
LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE := android.hardware.confirmationui@1.0-service.cuttlefish
|
|
endif
|
|
PRODUCT_PACKAGES += $(LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE)
|
|
|
|
#
|
|
# Dumpstate HAL
|
|
#
|
|
ifeq ($(LOCAL_DUMPSTATE_PRODUCT_PACKAGE),)
|
|
LOCAL_DUMPSTATE_PRODUCT_PACKAGE += android.hardware.dumpstate-service.example
|
|
endif
|
|
PRODUCT_PACKAGES += $(LOCAL_DUMPSTATE_PRODUCT_PACKAGE)
|
|
|
|
#
|
|
# Camera
|
|
#
|
|
ifeq ($(TARGET_USE_VSOCK_CAMERA_HAL_IMPL),true)
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.camera.provider@2.7-external-vsock-service \
|
|
android.hardware.camera.provider@2.7-impl-cuttlefish
|
|
DEVICE_MANIFEST_FILE += \
|
|
device/google/cuttlefish/guest/hals/camera/manifest.xml
|
|
else
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += com.google.emulated.camera.provider.hal
|
|
PRODUCT_PACKAGES += com.google.emulated.camera.provider.hal.fastscenecycle
|
|
endif
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.camera.provider@2.7-service-google \
|
|
libgooglecamerahwl_impl \
|
|
android.hardware.camera.provider@2.7-impl-google \
|
|
|
|
endif
|
|
#
|
|
# Gatekeeper
|
|
#
|
|
ifeq ($(LOCAL_GATEKEEPER_PRODUCT_PACKAGE),)
|
|
LOCAL_GATEKEEPER_PRODUCT_PACKAGE := android.hardware.gatekeeper@1.0-service.remote
|
|
endif
|
|
PRODUCT_PACKAGES += \
|
|
$(LOCAL_GATEKEEPER_PRODUCT_PACKAGE)
|
|
|
|
#
|
|
# GPS
|
|
#
|
|
LOCAL_GNSS_PRODUCT_PACKAGE ?= \
|
|
android.hardware.gnss-service.example
|
|
|
|
PRODUCT_PACKAGES += $(LOCAL_GNSS_PRODUCT_PACKAGE)
|
|
|
|
# Health
|
|
ifeq ($(LOCAL_HEALTH_PRODUCT_PACKAGE),)
|
|
LOCAL_HEALTH_PRODUCT_PACKAGE := \
|
|
android.hardware.health-service.cuttlefish \
|
|
android.hardware.health-service.cuttlefish_recovery \
|
|
|
|
endif
|
|
PRODUCT_PACKAGES += $(LOCAL_HEALTH_PRODUCT_PACKAGE)
|
|
|
|
# Health Storage
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.health.storage-service.cuttlefish
|
|
|
|
# Identity Credential
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.identity-service.remote
|
|
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.input.processor-service.example
|
|
|
|
# Netlink Interceptor HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.net.nlinterceptor-service.default
|
|
|
|
#
|
|
# Sensors
|
|
#
|
|
ifeq ($(LOCAL_SENSOR_PRODUCT_PACKAGE),)
|
|
# TODO(b/210883464): Convert the sensors APEX to use the new AIDL impl.
|
|
#ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
# LOCAL_SENSOR_PRODUCT_PACKAGE := com.android.hardware.sensors
|
|
#else
|
|
LOCAL_SENSOR_PRODUCT_PACKAGE := android.hardware.sensors-service.example
|
|
#endif
|
|
endif
|
|
PRODUCT_PACKAGES += \
|
|
$(LOCAL_SENSOR_PRODUCT_PACKAGE)
|
|
#
|
|
# Thermal (mock)
|
|
#
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += com.android.hardware.thermal.mock
|
|
else
|
|
PRODUCT_PACKAGES += android.hardware.thermal@2.0-service.mock
|
|
endif
|
|
|
|
#
|
|
# Lights
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.lights-service.example \
|
|
|
|
#
|
|
# KeyMint HAL
|
|
#
|
|
ifeq ($(LOCAL_KEYMINT_PRODUCT_PACKAGE),)
|
|
LOCAL_KEYMINT_PRODUCT_PACKAGE := android.hardware.security.keymint-service.remote
|
|
# Indicate that this KeyMint includes support for the ATTEST_KEY key purpose.
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/native/data/etc/android.hardware.keystore.app_attest_key.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.keystore.app_attest_key.xml
|
|
endif
|
|
PRODUCT_PACKAGES += \
|
|
$(LOCAL_KEYMINT_PRODUCT_PACKAGE)
|
|
|
|
# Keymint configuration
|
|
ifneq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_COPY_FILES += \
|
|
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml
|
|
endif
|
|
|
|
#
|
|
# Dice HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.security.dice-service.non-secure-software
|
|
|
|
#
|
|
# Power and PowerStats HALs
|
|
#
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += com.android.hardware.power
|
|
else
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.power-service.example \
|
|
android.hardware.power.stats-service.example \
|
|
|
|
endif
|
|
|
|
#
|
|
# NeuralNetworks HAL
|
|
#
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.neuralnetworks@1.3-service-sample-all \
|
|
android.hardware.neuralnetworks@1.3-service-sample-limited \
|
|
android.hardware.neuralnetworks-service-sample-all \
|
|
android.hardware.neuralnetworks-service-sample-limited \
|
|
android.hardware.neuralnetworks-shim-service-sample
|
|
|
|
#
|
|
# USB
|
|
# TODO(b/227791019): Convert USB AIDL HAL to APEX
|
|
# ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
# PRODUCT_PACKAGES += \
|
|
# com.android.hardware.usb
|
|
#else
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.usb-service.example
|
|
#endif
|
|
|
|
# Vibrator HAL
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
PRODUCT_PACKAGES += com.android.hardware.vibrator
|
|
else
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.vibrator-service.example
|
|
endif
|
|
|
|
# BootControl HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.boot@1.2-impl \
|
|
android.hardware.boot@1.2-impl.recovery \
|
|
android.hardware.boot@1.2-service
|
|
|
|
# RebootEscrow HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.rebootescrow-service.default
|
|
|
|
# Memtrack HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.memtrack-service.example
|
|
|
|
# Fastboot HAL & fastbootd
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.fastboot@1.1-impl-mock \
|
|
fastbootd
|
|
|
|
# Recovery mode
|
|
ifneq ($(TARGET_NO_RECOVERY),true)
|
|
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/config/init.recovery.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.cutf_cvm.rc \
|
|
device/google/cuttlefish/shared/config/cgroups.json:$(TARGET_COPY_OUT_RECOVERY)/root/vendor/etc/cgroups.json \
|
|
device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_RECOVERY)/root/ueventd.cutf_cvm.rc \
|
|
|
|
PRODUCT_PACKAGES += \
|
|
update_engine_sideload
|
|
|
|
endif
|
|
|
|
ifdef TARGET_DEDICATED_RECOVERY
|
|
PRODUCT_BUILD_RECOVERY_IMAGE := true
|
|
PRODUCT_PACKAGES += linker.vendor_ramdisk shell_and_utilities_vendor_ramdisk
|
|
else
|
|
PRODUCT_PACKAGES += linker.recovery shell_and_utilities_recovery
|
|
endif
|
|
|
|
# wifi
|
|
ifeq ($(LOCAL_PREFER_VENDOR_APEX),true)
|
|
ifneq ($(PRODUCT_ENFORCE_MAC80211_HWSIM),true)
|
|
PRODUCT_PACKAGES += com.google.cf.wifi
|
|
# Demonstrate multi-installed vendor APEXes by installing another wifi HAL vendor APEX
|
|
# which does not include the passpoint feature XML.
|
|
#
|
|
# The default is set in BoardConfig.mk using bootconfig.
|
|
# This can be changed at CVD launch-time using
|
|
# --extra_bootconfig_args "androidboot.vendor.apex.com.android.wifi.hal:=X"
|
|
# or post-launch, at runtime using
|
|
# setprop persist.vendor.apex.com.android.wifi.hal X && reboot
|
|
# where X is the name of the APEX file to use.
|
|
PRODUCT_PACKAGES += com.google.cf.wifi.no-passpoint
|
|
|
|
$(call add_soong_config_namespace, wpa_supplicant)
|
|
$(call add_soong_config_var_value, wpa_supplicant, platform_version, $(PLATFORM_VERSION))
|
|
$(call add_soong_config_var_value, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
|
|
PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=virt_wifi
|
|
else
|
|
PRODUCT_SOONG_NAMESPACES += device/google/cuttlefish/apex/com.google.cf.wifi_hwsim
|
|
PRODUCT_PACKAGES += com.google.cf.wifi_hwsim
|
|
$(call add_soong_config_namespace, wpa_supplicant)
|
|
$(call add_soong_config_var_value, wpa_supplicant, platform_version, $(PLATFORM_VERSION))
|
|
$(call add_soong_config_var_value, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA)
|
|
PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=mac8011_hwsim_virtio
|
|
|
|
$(call soong_config_append,cvdhost,enforce_mac80211_hwsim,true)
|
|
endif
|
|
else
|
|
|
|
PRODUCT_PACKAGES += \
|
|
rename_netiface \
|
|
wpa_supplicant
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/config/wpa_supplicant.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/wpa_supplicant.rc
|
|
|
|
# VirtWifi interface configuration
|
|
ifeq ($(DEVICE_VIRTWIFI_PORT),)
|
|
DEVICE_VIRTWIFI_PORT := eth2
|
|
endif
|
|
PRODUCT_VENDOR_PROPERTIES += ro.vendor.virtwifi.port=${DEVICE_VIRTWIFI_PORT}
|
|
|
|
# WLAN driver configuration files
|
|
ifndef LOCAL_WPA_SUPPLICANT_OVERLAY
|
|
LOCAL_WPA_SUPPLICANT_OVERLAY := $(LOCAL_PATH)/config/wpa_supplicant_overlay.conf
|
|
endif
|
|
ifndef LOCAL_P2P_SUPPLICANT
|
|
LOCAL_P2P_SUPPLICANT := $(LOCAL_PATH)/config/p2p_supplicant.conf
|
|
endif
|
|
PRODUCT_COPY_FILES += \
|
|
external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant_template.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \
|
|
$(LOCAL_WPA_SUPPLICANT_OVERLAY):$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
|
|
$(LOCAL_P2P_SUPPLICANT):$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant.conf
|
|
|
|
ifeq ($(PRODUCT_ENFORCE_MAC80211_HWSIM),true)
|
|
PRODUCT_PACKAGES += \
|
|
mac80211_create_radios \
|
|
hostapd \
|
|
android.hardware.wifi@1.0-service \
|
|
init.wifi.sh
|
|
|
|
PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=mac8011_hwsim_virtio
|
|
|
|
$(call soong_config_append,cvdhost,enforce_mac80211_hwsim,true)
|
|
|
|
else
|
|
PRODUCT_PACKAGES += setup_wifi
|
|
PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=virt_wifi
|
|
endif
|
|
|
|
endif
|
|
|
|
# UWB HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.uwb-service
|
|
|
|
ifeq ($(PRODUCT_ENFORCE_MAC80211_HWSIM),true)
|
|
# Wifi Runtime Resource Overlay
|
|
PRODUCT_PACKAGES += \
|
|
CuttlefishTetheringOverlay \
|
|
CuttlefishWifiOverlay
|
|
endif
|
|
|
|
# Host packages to install
|
|
PRODUCT_HOST_PACKAGES += socket_vsock_proxy
|
|
|
|
PRODUCT_EXTRA_VNDK_VERSIONS := 28 29 30 31
|
|
|
|
PRODUCT_SOONG_NAMESPACES += external/mesa3d
|
|
|
|
#for Confirmation UI
|
|
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/common/proprietary/confirmatioui_hal
|
|
|
|
# Need this so that the application's loop on reading input can be synchronized
|
|
# with HW VSYNC
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
ro.surface_flinger.running_without_sync_framework=true
|
|
|
|
# Enable GPU-intensive background blur support on Cuttlefish when requested by apps
|
|
PRODUCT_VENDOR_PROPERTIES += \
|
|
ro.surface_flinger.supports_background_blur=1
|
|
|
|
# Disable GPU-intensive background blur for widget picker
|
|
PRODUCT_SYSTEM_PROPERTIES += \
|
|
ro.launcher.depth.widget=0
|
|
|
|
# Vendor Dlkm Locader
|
|
PRODUCT_PACKAGES += \
|
|
dlkm_loader
|
|
|
|
# NFC AIDL HAL
|
|
PRODUCT_PACKAGES += \
|
|
android.hardware.nfc-service.cuttlefish
|
|
|
|
PRODUCT_COPY_FILES += \
|
|
device/google/cuttlefish/shared/config/pci.ids:$(TARGET_COPY_OUT_VENDOR)/pci.ids
|