1# 2# Copyright (C) 2017 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# Include all languages 18$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) 19 20# Enable updating of APEXes 21$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) 22 23# Enable userspace reboot 24$(call inherit-product, $(SRC_TARGET_DIR)/product/userspace_reboot.mk) 25 26# Enforce generic ramdisk allow list 27$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk) 28 29PRODUCT_SOONG_NAMESPACES += device/generic/goldfish-opengl # for vulkan 30 31PRODUCT_SHIPPING_API_LEVEL := 31 32PRODUCT_USE_DYNAMIC_PARTITIONS := true 33DISABLE_RILD_OEM_HOOK := true 34 35PRODUCT_SET_DEBUGFS_RESTRICTIONS := true 36 37PRODUCT_SOONG_NAMESPACES += device/generic/goldfish-opengl # for vulkan 38 39PRODUCT_FS_COMPRESSION := 1 40TARGET_RO_FILE_SYSTEM_TYPE ?= ext4 41TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE ?= f2fs 42TARGET_USERDATAIMAGE_PARTITION_SIZE ?= 6442450944 43 44TARGET_VULKAN_SUPPORT ?= true 45TARGET_ENABLE_HOST_BLUETOOTH_EMULATION ?= true 46TARGET_USE_BTLINUX_HAL_IMPL ?= true 47 48AB_OTA_UPDATER := true 49AB_OTA_PARTITIONS += \ 50 boot \ 51 odm \ 52 odm_dlkm \ 53 product \ 54 system \ 55 system_ext \ 56 vbmeta \ 57 vbmeta_system \ 58 vendor \ 59 vendor_boot \ 60 vendor_dlkm \ 61 62# Enable Virtual A/B 63$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/compression.mk) 64 65# Enable Scoped Storage related 66$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) 67 68# Properties that are not vendor-specific. These will go in the product 69# partition, instead of the vendor partition, and do not need vendor 70# sepolicy 71PRODUCT_PRODUCT_PROPERTIES += \ 72 persist.adb.tcp.port=5555 \ 73 ro.com.google.locationfeatures=1 \ 74 persist.sys.fuse.passthrough.enable=true \ 75 76# Storage: for factory reset protection feature 77PRODUCT_VENDOR_PROPERTIES += \ 78 ro.frp.pst=/dev/block/by-name/frp 79 80# Explanation of specific properties: 81# debug.hwui.swap_with_damage avoids boot failure on M http://b/25152138 82# ro.opengles.version OpenGLES 3.0 83# ro.hardware.keystore_desede=true needed for CtsKeystoreTestCases 84PRODUCT_VENDOR_PROPERTIES += \ 85 tombstoned.max_tombstone_count=500 \ 86 vendor.bt.rootcanal_test_console=off \ 87 debug.hwui.swap_with_damage=0 \ 88 ro.carrier=unknown \ 89 ro.com.android.dataroaming?=false \ 90 ro.hardware.virtual_device=1 \ 91 ro.logd.size=1M \ 92 ro.opengles.version=196608 \ 93 wifi.interface=wlan0 \ 94 persist.sys.zram_enabled=1 \ 95 ro.hardware.keystore_desede=true \ 96 ro.rebootescrow.device=/dev/block/pmem0 \ 97 ro.incremental.enable=1 \ 98 debug.c2.use_dmabufheaps=1 \ 99 ro.camerax.extensions.enabled=true \ 100 101# Below is a list of properties we probably should get rid of. 102PRODUCT_VENDOR_PROPERTIES += \ 103 wlan.driver.status=ok 104 105ifneq ($(LOCAL_DISABLE_OMX),true) 106# Codec 1.0 requires the OMX services 107DEVICE_MANIFEST_FILE += \ 108 device/google/cuttlefish/shared/config/android.hardware.media.omx@1.0.xml 109endif 110 111PRODUCT_VENDOR_PROPERTIES += \ 112 debug.stagefright.c2inputsurface=-1 113 114# Enforce privapp permissions control. 115PRODUCT_VENDOR_PROPERTIES += ro.control_privapp_permissions?=enforce 116 117# aes-256-heh default is not supported in standard kernels. 118PRODUCT_VENDOR_PROPERTIES += ro.crypto.volume.filenames_mode=aes-256-cts 119 120# Copy preopted files from system_b on first boot 121PRODUCT_VENDOR_PROPERTIES += ro.cp_system_other_odex=1 122 123AB_OTA_POSTINSTALL_CONFIG += \ 124 RUN_POSTINSTALL_system=true \ 125 POSTINSTALL_PATH_system=system/bin/otapreopt_script \ 126 FILESYSTEM_TYPE_system=ext4 \ 127 POSTINSTALL_OPTIONAL_system=true 128 129AB_OTA_POSTINSTALL_CONFIG += \ 130 RUN_POSTINSTALL_vendor=true \ 131 POSTINSTALL_PATH_vendor=bin/checkpoint_gc \ 132 FILESYSTEM_TYPE_vendor=ext4 \ 133 POSTINSTALL_OPTIONAL_vendor=true 134 135# Userdata Checkpointing OTA GC 136PRODUCT_PACKAGES += \ 137 checkpoint_gc 138 139# Enable CameraX extension sample 140PRODUCT_PACKAGES += androidx.camera.extensions.impl sample_camera_extensions.xml 141 142# DRM service opt-in 143PRODUCT_VENDOR_PROPERTIES += drm.service.enabled=true 144 145# Call deleteAllKeys if vold detects a factory reset 146PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=true 147 148PRODUCT_SOONG_NAMESPACES += hardware/google/camera 149PRODUCT_SOONG_NAMESPACES += hardware/google/camera/devices/EmulatedCamera 150 151# 152# Packages for various GCE-specific utilities 153# 154PRODUCT_PACKAGES += \ 155 CuttlefishService \ 156 cuttlefish_sensor_injection \ 157 rename_netiface \ 158 setup_wifi \ 159 bt_vhci_forwarder \ 160 socket_vsock_proxy \ 161 tombstone_transmit \ 162 tombstone_producer \ 163 suspend_blocker \ 164 vsoc_input_service \ 165 vtpm_manager \ 166 167SOONG_CONFIG_NAMESPACES += cvd 168SOONG_CONFIG_cvd += launch_configs 169SOONG_CONFIG_cvd_launch_configs += \ 170 cvd_config_auto.json \ 171 cvd_config_phone.json \ 172 cvd_config_tablet.json \ 173 cvd_config_tv.json \ 174 175# 176# Packages for AOSP-available stuff we use from the framework 177# 178PRODUCT_PACKAGES += \ 179 e2fsck \ 180 ip \ 181 sleep \ 182 tcpdump \ 183 wpa_supplicant \ 184 wificond \ 185 186# 187# Packages for the OpenGL implementation 188# 189 190# ANGLE provides an OpenGL implementation built on top of Vulkan. 191PRODUCT_PACKAGES += \ 192 libEGL_angle \ 193 libGLESv1_CM_angle \ 194 libGLESv2_angle \ 195 libfeature_support_angle.so 196 197# SwiftShader provides a software-only implementation that is not thread-safe 198PRODUCT_PACKAGES += \ 199 libEGL_swiftshader \ 200 libGLESv1_CM_swiftshader \ 201 libGLESv2_swiftshader 202 203# GL implementation for virgl 204PRODUCT_PACKAGES += \ 205 libGLES_mesa \ 206 207# 208# Packages for the Vulkan implementation 209# 210ifeq ($(TARGET_VULKAN_SUPPORT),true) 211PRODUCT_PACKAGES += \ 212 vulkan.ranchu \ 213 libvulkan_enc \ 214 vulkan.pastel 215endif 216 217# GL/Vk implementation for gfxstream 218PRODUCT_PACKAGES += \ 219 hwcomposer.ranchu \ 220 libandroidemu \ 221 libOpenglCodecCommon \ 222 libOpenglSystemCommon \ 223 libGLESv1_CM_emulation \ 224 lib_renderControl_enc \ 225 libEGL_emulation \ 226 libGLESv2_enc \ 227 libGLESv2_emulation \ 228 libGLESv1_enc \ 229 libGoldfishProfiler \ 230 231# 232# Packages for testing 233# 234PRODUCT_PACKAGES += \ 235 aidl_lazy_test_server \ 236 hidl_lazy_test_server 237 238DEVICE_PACKAGE_OVERLAYS := device/google/cuttlefish/shared/overlay 239# PRODUCT_AAPT_CONFIG and PRODUCT_AAPT_PREF_CONFIG are intentionally not set to 240# pick up every density resources. 241 242# 243# Common manifest for all targets 244# 245DEVICE_MANIFEST_FILE += device/google/cuttlefish/shared/config/manifest.xml 246 247# 248# General files 249# 250 251 252ifneq ($(LOCAL_SENSOR_FILE_OVERRIDES),true) 253 PRODUCT_COPY_FILES += \ 254 frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ 255 frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ 256 frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ 257 frameworks/native/data/etc/android.hardware.sensor.hinge_angle.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hinge_angle.xml \ 258 frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ 259 frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \ 260 frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.xml 261endif 262 263PRODUCT_COPY_FILES += \ 264 hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_back.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_back.json \ 265 hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_front.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_front.json \ 266 hardware/google/camera/devices/EmulatedCamera/hwl/configs/emu_camera_depth.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/emu_camera_depth.json \ 267 device/google/cuttlefish/shared/config/init.vendor.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.cutf_cvm.rc \ 268 device/google/cuttlefish/shared/config/init.product.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/init.rc \ 269 device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ 270 device/google/cuttlefish/shared/config/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 271 device/google/cuttlefish/shared/config/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ 272 device/google/cuttlefish/shared/config/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ 273 device/google/cuttlefish/shared/config/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ 274 device/google/cuttlefish/shared/permissions/cuttlefish_excluded_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/cuttlefish_excluded_hardware.xml \ 275 device/google/cuttlefish/shared/permissions/privapp-permissions-cuttlefish.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-cuttlefish.xml \ 276 frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ 277 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ 278 frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ 279 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 280 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ 281 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 282 frameworks/av/services/audiopolicy/config/surround_sound_configuration_5_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/surround_sound_configuration_5_0.xml \ 283 frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \ 284 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 285 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ 286 frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \ 287 frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ 288 frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ 289 frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ 290 frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \ 291 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 292 frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \ 293 frameworks/native/data/etc/android.hardware.reboot_escrow.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.reboot_escrow.xml \ 294 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 295 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 296 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 297 frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \ 298 frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \ 299 frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \ 300 frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \ 301 system/bt/vendor_libs/test_vendor_lib/data/controller_properties.json:vendor/etc/bluetooth/controller_properties.json \ 302 device/google/cuttlefish/shared/config/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json \ 303 device/google/cuttlefish/shared/config/input/Crosvm_Virtio_Multitouch_Touchscreen.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/Crosvm_Virtio_Multitouch_Touchscreen.idc 304 305ifeq ($(TARGET_RO_FILE_SYSTEM_TYPE),ext4) 306PRODUCT_COPY_FILES += \ 307 device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.f2fs \ 308 device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.f2fs \ 309 device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.f2fs \ 310 device/google/cuttlefish/shared/config/fstab.f2fs:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.f2fs \ 311 device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ext4 \ 312 device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ext4 \ 313 device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ext4 \ 314 device/google/cuttlefish/shared/config/fstab.ext4:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.ext4 315else 316PRODUCT_COPY_FILES += \ 317 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).f2fs:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.f2fs \ 318 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).f2fs:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.f2fs \ 319 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).f2fs:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.f2fs \ 320 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).f2fs:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.f2fs \ 321 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).ext4:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/first_stage_ramdisk/fstab.ext4 \ 322 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).ext4:$(TARGET_COPY_OUT_VENDOR_RAMDISK)/fstab.ext4 \ 323 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).ext4:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.ext4 \ 324 device/google/cuttlefish/shared/config/fstab-$(TARGET_RO_FILE_SYSTEM_TYPE).ext4:$(TARGET_COPY_OUT_RECOVERY)/root/first_stage_ramdisk/fstab.ext4 325endif 326 327ifeq ($(TARGET_VULKAN_SUPPORT),true) 328PRODUCT_COPY_FILES += \ 329 frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ 330 frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ 331 frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ 332 frameworks/native/data/etc/android.software.opengles.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml 333endif 334 335# Packages for HAL implementations 336 337# 338# Atrace HAL 339# 340PRODUCT_PACKAGES += \ 341 android.hardware.atrace@1.0-service 342 343# 344# Weaver aidl HAL 345# 346PRODUCT_PACKAGES += \ 347 android.hardware.weaver-service.example 348 349# 350# OemLock aidl HAL 351# 352PRODUCT_PACKAGES += \ 353 android.hardware.oemlock-service.example 354 355# 356# Authsecret HAL 357# 358PRODUCT_PACKAGES += \ 359 android.hardware.authsecret@1.0-service 360 361# 362# Authsecret AIDL HAL 363# 364PRODUCT_PACKAGES += \ 365 android.hardware.authsecret-service.example 366# 367# Hardware Composer HAL 368# 369PRODUCT_PACKAGES += \ 370 hwcomposer.drm_minigbm \ 371 hwcomposer.cutf \ 372 hwcomposer-stats \ 373 android.hardware.graphics.composer@2.3-impl \ 374 android.hardware.graphics.composer@2.3-service 375 376# 377# Gralloc HAL 378# 379PRODUCT_PACKAGES += \ 380 android.hardware.graphics.allocator@4.0-service.minigbm \ 381 android.hardware.graphics.mapper@4.0-impl.minigbm 382 383# 384# Bluetooth HAL and Compatibility Bluetooth library (for older revs). 385# 386ifeq ($(LOCAL_BLUETOOTH_PRODUCT_PACKAGE),) 387ifeq ($(TARGET_ENABLE_HOST_BLUETOOTH_EMULATION),true) 388ifeq ($(TARGET_USE_BTLINUX_HAL_IMPL),true) 389 LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.btlinux 390else 391 LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.remote 392endif 393else 394 LOCAL_BLUETOOTH_PRODUCT_PACKAGE := android.hardware.bluetooth@1.1-service.sim 395endif 396 DEVICE_MANIFEST_FILE += device/google/cuttlefish/shared/config/manifest_android.hardware.bluetooth@1.1-service.xml 397endif 398 399PRODUCT_PACKAGES += $(LOCAL_BLUETOOTH_PRODUCT_PACKAGE) 400 401PRODUCT_PACKAGES += android.hardware.bluetooth.audio@2.1-impl 402 403# 404# Audio HAL 405# 406LOCAL_AUDIO_PRODUCT_PACKAGE ?= \ 407 audio.primary.cutf \ 408 audio.r_submix.default \ 409 android.hardware.audio@6.0-impl \ 410 android.hardware.audio.effect@6.0-impl \ 411 android.hardware.audio@2.0-service 412 413LOCAL_AUDIO_PRODUCT_COPY_FILES ?= \ 414 device/google/cuttlefish/shared/config/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \ 415 frameworks/av/services/audiopolicy/config/audio_policy_configuration_generic.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 416 frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml 417 418LOCAL_AUDIO_DEVICE_PACKAGE_OVERLAYS ?= 419 420PRODUCT_PACKAGES += $(LOCAL_AUDIO_PRODUCT_PACKAGE) 421PRODUCT_COPY_FILES += $(LOCAL_AUDIO_PRODUCT_COPY_FILES) 422DEVICE_PACKAGE_OVERLAYS += $(LOCAL_AUDIO_DEVICE_PACKAGE_OVERLAYS) 423 424# 425# BiometricsFace HAL (HIDL) 426# 427PRODUCT_PACKAGES += \ 428 android.hardware.biometrics.face@1.0-service.example 429 430# 431# BiometricsFingerprint HAL (HIDL) 432# 433PRODUCT_PACKAGES += \ 434 android.hardware.biometrics.fingerprint@2.2-service.example 435 436# 437# BiometricsFace HAL (AIDL) 438# 439PRODUCT_PACKAGES += \ 440 android.hardware.biometrics.face-service.example 441 442# 443# BiometricsFingerprint HAL (AIDL) 444# 445PRODUCT_PACKAGES += \ 446 android.hardware.biometrics.fingerprint-service.example 447 448# 449# Contexthub HAL 450# 451PRODUCT_PACKAGES += \ 452 android.hardware.contexthub@1.2-service.mock 453 454# 455# Drm HAL 456# 457PRODUCT_PACKAGES += \ 458 android.hardware.drm@1.4-service.clearkey \ 459 android.hardware.drm@1.4-service.widevine 460 461# 462# Dumpstate HAL 463# 464ifeq ($(LOCAL_DUMPSTATE_PRODUCT_PACKAGE),) 465 LOCAL_DUMPSTATE_PRODUCT_PACKAGE := android.hardware.dumpstate@1.1-service.example 466endif 467PRODUCT_PACKAGES += $(LOCAL_DUMPSTATE_PRODUCT_PACKAGE) 468 469# 470# Camera 471# 472PRODUCT_PACKAGES += \ 473 android.hardware.camera.provider@2.7-service-google \ 474 libgooglecamerahwl_impl \ 475 android.hardware.camera.provider@2.7-impl-google \ 476 477# 478# Gatekeeper 479# 480ifeq ($(LOCAL_GATEKEEPER_PRODUCT_PACKAGE),) 481 LOCAL_GATEKEEPER_PRODUCT_PACKAGE := android.hardware.gatekeeper@1.0-service.software 482endif 483PRODUCT_PACKAGES += \ 484 $(LOCAL_GATEKEEPER_PRODUCT_PACKAGE) 485 486# 487# GPS 488# 489PRODUCT_PACKAGES += \ 490 android.hardware.gnss-service.example 491 492# Health 493ifeq ($(LOCAL_HEALTH_PRODUCT_PACKAGE),) 494 LOCAL_HEALTH_PRODUCT_PACKAGE := \ 495 android.hardware.health@2.1-impl-cuttlefish \ 496 android.hardware.health@2.1-service 497endif 498PRODUCT_PACKAGES += $(LOCAL_HEALTH_PRODUCT_PACKAGE) 499 500# Health Storage 501PRODUCT_PACKAGES += \ 502 android.hardware.health.storage-service.cuttlefish 503 504# Identity Credential 505PRODUCT_PACKAGES += \ 506 android.hardware.identity-service.example 507 508# Input Classifier HAL 509PRODUCT_PACKAGES += \ 510 android.hardware.input.classifier@1.0-service.default 511 512# 513# Sensors 514# 515ifeq ($(LOCAL_SENSOR_PRODUCT_PACKAGE),) 516 LOCAL_SENSOR_PRODUCT_PACKAGE := android.hardware.sensors@2.1-service.mock 517endif 518PRODUCT_PACKAGES += \ 519 $(LOCAL_SENSOR_PRODUCT_PACKAGE) 520# 521# Thermal (mock) 522# 523PRODUCT_PACKAGES += \ 524 android.hardware.thermal@2.0-service.mock 525 526# 527# Lights 528# 529PRODUCT_PACKAGES += \ 530 android.hardware.lights-service.example \ 531 532# 533# KeyMint HAL 534# 535ifeq ($(LOCAL_KEYMINT_PRODUCT_PACKAGE),) 536 LOCAL_KEYMINT_PRODUCT_PACKAGE := android.hardware.security.keymint-service 537endif 538 PRODUCT_PACKAGES += \ 539 $(LOCAL_KEYMINT_PRODUCT_PACKAGE) 540 541# Keymint configuration 542PRODUCT_COPY_FILES += \ 543 frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml 544 545# 546# Power HAL 547# 548PRODUCT_PACKAGES += \ 549 android.hardware.power-service.example 550 551# 552# PowerStats HAL 553# 554PRODUCT_PACKAGES += \ 555 android.hardware.power.stats-service.example 556 557# 558# NeuralNetworks HAL 559# 560PRODUCT_PACKAGES += \ 561 android.hardware.neuralnetworks@1.3-service-sample-all \ 562 android.hardware.neuralnetworks@1.3-service-sample-float-fast \ 563 android.hardware.neuralnetworks@1.3-service-sample-float-slow \ 564 android.hardware.neuralnetworks@1.3-service-sample-minimal \ 565 android.hardware.neuralnetworks@1.3-service-sample-quant \ 566 android.hardware.neuralnetworks-service-sample-all \ 567 android.hardware.neuralnetworks-service-sample-float-fast \ 568 android.hardware.neuralnetworks-service-sample-float-slow \ 569 android.hardware.neuralnetworks-service-sample-minimal \ 570 android.hardware.neuralnetworks-service-sample-quant \ 571 android.hardware.neuralnetworks-shim-service-sample 572 573# 574# USB 575PRODUCT_PACKAGES += \ 576 android.hardware.usb@1.0-service 577 578# Vibrator HAL 579PRODUCT_PACKAGES += \ 580 android.hardware.vibrator-service.example 581 582# BootControl HAL 583PRODUCT_PACKAGES += \ 584 android.hardware.boot@1.2-impl \ 585 android.hardware.boot@1.2-impl.recovery \ 586 android.hardware.boot@1.2-service 587 588# RebootEscrow HAL 589PRODUCT_PACKAGES += \ 590 android.hardware.rebootescrow-service.default 591 592# Memtrack HAL 593PRODUCT_PACKAGES += \ 594 android.hardware.memtrack-service.example 595 596# GKI APEX 597# Keep in sync with BOARD_KERNEL_MODULE_INTERFACE_VERSIONS 598ifneq (,$(TARGET_KERNEL_USE)) 599 ifneq (,$(filter 5.4, $(TARGET_KERNEL_USE))) 600 PRODUCT_PACKAGES += com.android.gki.kmi_5_4_android12_unstable 601 else 602 PRODUCT_PACKAGES += com.android.gki.kmi_$(subst .,_,$(TARGET_KERNEL_USE))_android12_unstable 603 endif 604endif 605 606# Prevent GKI and boot image downgrades 607PRODUCT_PRODUCT_PROPERTIES += \ 608 ro.build.ab_update.gki.prevent_downgrade_version=true \ 609 ro.build.ab_update.gki.prevent_downgrade_spl=true \ 610 611# WLAN driver configuration files 612PRODUCT_COPY_FILES += \ 613 external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant_template.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant.conf \ 614 $(LOCAL_PATH)/config/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf 615 616# Fastboot HAL & fastbootd 617PRODUCT_PACKAGES += \ 618 android.hardware.fastboot@1.1-impl-mock \ 619 fastbootd 620 621# Recovery mode 622ifneq ($(TARGET_NO_RECOVERY),true) 623 624PRODUCT_COPY_FILES += \ 625 device/google/cuttlefish/shared/config/init.recovery.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.cutf_cvm.rc \ 626 device/google/cuttlefish/shared/config/cgroups.json:$(TARGET_COPY_OUT_RECOVERY)/root/vendor/etc/cgroups.json \ 627 device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_RECOVERY)/root/ueventd.cutf_cvm.rc \ 628 629PRODUCT_PACKAGES += \ 630 update_engine_sideload 631 632endif 633 634ifdef TARGET_DEDICATED_RECOVERY 635PRODUCT_BUILD_RECOVERY_IMAGE := true 636PRODUCT_PACKAGES += linker.vendor_ramdisk shell_and_utilities_vendor_ramdisk 637else 638PRODUCT_PACKAGES += linker.recovery shell_and_utilities_recovery 639endif 640 641# 642# Shell script Vendor Module Loading 643# 644PRODUCT_COPY_FILES += \ 645 $(LOCAL_PATH)/config/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \ 646 647# Host packages to install 648PRODUCT_HOST_PACKAGES += socket_vsock_proxy 649 650PRODUCT_EXTRA_VNDK_VERSIONS := 28 29 30 651 652PRODUCT_SOONG_NAMESPACES += external/mesa3d 653 654#for Confirmation UI 655PRODUCT_SOONG_NAMESPACES += vendor/google_devices/common/proprietary/confirmatioui_hal 656 657# Need this so that the application's loop on reading input can be synchronized 658# with HW VSYNC 659PRODUCT_VENDOR_PROPERTIES += \ 660 ro.surface_flinger.running_without_sync_framework=true 661 662# Set support one-handed mode 663PRODUCT_PRODUCT_PROPERTIES += \ 664 ro.support_one_handed_mode=true 665 666# Set one_handed_mode screen translate offset percentage 667PRODUCT_PRODUCT_PROPERTIES += \ 668 persist.debug.one_handed_offset_percentage=50 669 670# Set one_handed_mode translate animation duration milliseconds 671PRODUCT_PRODUCT_PROPERTIES += \ 672 persist.debug.one_handed_translate_animation_duration=300 673