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 29# Set Vendor SPL to match platform 30VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH) 31 32# Set boot SPL 33BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH) 34 35PRODUCT_VENDOR_PROPERTIES += \ 36 ro.vendor.boot_security_patch=$(BOOT_SECURITY_PATCH) 37 38PRODUCT_SOONG_NAMESPACES += device/generic/goldfish # for audio, wifi and sensors 39 40PRODUCT_USE_DYNAMIC_PARTITIONS := true 41DISABLE_RILD_OEM_HOOK := true 42 43# TODO(b/294888357) Remove this condition when OpenWRT is supported for RISC-V. 44ifndef PRODUCT_ENFORCE_MAC80211_HWSIM 45PRODUCT_ENFORCE_MAC80211_HWSIM := true 46endif 47 48PRODUCT_SET_DEBUGFS_RESTRICTIONS := true 49 50PRODUCT_FS_COMPRESSION := 1 51TARGET_RO_FILE_SYSTEM_TYPE ?= erofs 52TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE ?= f2fs 53TARGET_USERDATAIMAGE_PARTITION_SIZE ?= 8589934592 54 55TARGET_VULKAN_SUPPORT ?= true 56 57# Enable Virtual A/B 58$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/vabc_features.mk) 59PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := lz4 60PRODUCT_VIRTUAL_AB_COW_VERSION := 3 61PRODUCT_VIRTUAL_AB_COMPRESSION_FACTOR := 65536 62 63PRODUCT_VENDOR_PROPERTIES += ro.virtual_ab.compression.threads=true 64PRODUCT_VENDOR_PROPERTIES += ro.virtual_ab.batch_writes=true 65 66# Enable Scoped Storage related 67$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) 68 69# Properties that are not vendor-specific. These will go in the product 70# partition, instead of the vendor partition, and do not need vendor 71# sepolicy 72PRODUCT_PRODUCT_PROPERTIES += \ 73 remote_provisioning.hostname=staging-remoteprovisioning.sandbox.googleapis.com \ 74 persist.adb.tcp.port=5555 \ 75 ro.com.google.locationfeatures=1 \ 76 persist.sys.fuse.passthrough.enable=true \ 77 remote_provisioning.tee.rkp_only=1 78 79# Until we support adb keys on user builds, and fix logcat over serial, 80# spawn adbd by default without authorization for "adb logcat" 81ifeq ($(TARGET_BUILD_VARIANT),user) 82PRODUCT_PRODUCT_PROPERTIES += \ 83 ro.adb.secure=0 \ 84 ro.debuggable=1 85 86PRODUCT_PACKAGES += \ 87 logpersist.start 88 89PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ 90 $(TARGET_COPY_OUT_SYSTEM)/bin/logcatd \ 91 $(TARGET_COPY_OUT_SYSTEM)/bin/logpersist.cat \ 92 $(TARGET_COPY_OUT_SYSTEM)/bin/logpersist.start \ 93 $(TARGET_COPY_OUT_SYSTEM)/bin/logpersist.stop \ 94 $(TARGET_COPY_OUT_SYSTEM)/etc/init/logcatd.rc 95endif 96 97# Use AIDL for media.c2 HAL 98PRODUCT_VENDOR_PROPERTIES += media.c2.hal.selection=aidl 99 100# Explanation of specific properties: 101# ro.hardware.keystore_desede=true needed for CtsKeystoreTestCases 102PRODUCT_VENDOR_PROPERTIES += \ 103 tombstoned.max_tombstone_count=100 \ 104 ro.carrier=unknown \ 105 ro.com.android.dataroaming?=false \ 106 ro.hardware.virtual_device=1 \ 107 ro.logd.size=1M \ 108 wifi.interface=wlan0 \ 109 wifi.direct.interface=p2p-dev-wlan0 \ 110 persist.sys.zram_enabled=1 \ 111 ro.hardware.keystore_desede=true \ 112 ro.incremental.enable=1 \ 113 debug.c2.use_dmabufheaps=1 114 115# Below is a list of properties we probably should get rid of. 116PRODUCT_VENDOR_PROPERTIES += \ 117 wlan.driver.status=ok 118 119PRODUCT_VENDOR_PROPERTIES += \ 120 debug.stagefright.c2inputsurface=-1 121 122# Enforce privapp permissions control. 123PRODUCT_VENDOR_PROPERTIES += ro.control_privapp_permissions?=enforce 124 125# Copy preopted files from system_b on first boot 126PRODUCT_VENDOR_PROPERTIES += ro.cp_system_other_odex=1 127 128AB_OTA_POSTINSTALL_CONFIG += \ 129 RUN_POSTINSTALL_system=true \ 130 POSTINSTALL_PATH_system=system/bin/otapreopt_script \ 131 FILESYSTEM_TYPE_system=erofs \ 132 POSTINSTALL_OPTIONAL_system=true 133 134AB_OTA_POSTINSTALL_CONFIG += \ 135 RUN_POSTINSTALL_vendor=true \ 136 POSTINSTALL_PATH_vendor=bin/checkpoint_gc \ 137 FILESYSTEM_TYPE_vendor=erofs \ 138 POSTINSTALL_OPTIONAL_vendor=true 139 140# Userdata Checkpointing OTA GC 141PRODUCT_PACKAGES += \ 142 checkpoint_gc 143 144# DRM service opt-in 145PRODUCT_VENDOR_PROPERTIES += drm.service.enabled=true 146 147# Call deleteAllKeys if vold detects a factory reset 148PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled=true 149 150# 151# Packages for various GCE-specific utilities 152# 153PRODUCT_PACKAGES += \ 154 CuttlefishService \ 155 socket_vsock_proxy \ 156 tombstone_transmit \ 157 tombstone_producer \ 158 suspend_blocker \ 159 metrics_helper \ 160 snapshot_hook_post_resume \ 161 snapshot_hook_pre_suspend 162 163$(call soong_config_append,cvd,launch_configs,cvd_config_auto.json cvd_config_auto_portrait.json cvd_config_auto_md.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) 164$(call soong_config_append,cvd,grub_config,grub.cfg) 165 166# 167# Packages for AOSP-available stuff we use from the framework 168# 169PRODUCT_PACKAGES += \ 170 e2fsck \ 171 ip \ 172 sleep \ 173 tcpdump \ 174 wificond \ 175 176# 177# Package for AOSP QNS 178# 179PRODUCT_PACKAGES += \ 180 QualifiedNetworksService 181 182# 183# Package for AOSP GBA 184# 185PRODUCT_PACKAGES += \ 186 GbaService 187 188# 189# Packages for testing 190# 191PRODUCT_PACKAGES += \ 192 aidl_lazy_test_server \ 193 aidl_lazy_cb_test_server \ 194 195# Runtime Resource Overlays 196PRODUCT_PACKAGES += \ 197 cuttlefish_overlay_connectivity \ 198 cuttlefish_overlay_frameworks_base_core \ 199 cuttlefish_overlay_nfc \ 200 cuttlefish_overlay_settings_provider \ 201 cuttlefish_overlay_uwb \ 202 203# 204# Satellite vendor service for CF 205# 206PRODUCT_PACKAGES += CFSatelliteService 207 208# PRODUCT_AAPT_CONFIG and PRODUCT_AAPT_PREF_CONFIG are intentionally not set to 209# pick up every density resources. 210 211# 212# Common manifest for all targets 213# 214PRODUCT_SHIPPING_API_LEVEL := 35 215LOCAL_DEVICE_FCM_MANIFEST_FILE ?= device/google/cuttlefish/shared/config/manifest.xml 216DEVICE_MANIFEST_FILE += $(LOCAL_DEVICE_FCM_MANIFEST_FILE) 217 218PRODUCT_CHECK_PREBUILT_MAX_PAGE_SIZE := true 219 220# 221# General files 222# 223 224PRODUCT_COPY_FILES += \ 225 device/google/cuttlefish/shared/config/init.product.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/init.rc \ 226 device/google/cuttlefish/shared/config/init.vendor.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.cutf_cvm.rc \ 227 device/google/cuttlefish/shared/config/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ 228 device/google/cuttlefish/shared/config/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ 229 device/google/cuttlefish/shared/config/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 230 device/google/cuttlefish/shared/config/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ 231 device/google/cuttlefish/shared/config/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \ 232 device/google/cuttlefish/shared/config/seriallogging.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/seriallogging.rc \ 233 device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc \ 234 device/google/cuttlefish/shared/permissions/cuttlefish_excluded_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/cuttlefish_excluded_hardware.xml \ 235 device/google/cuttlefish/shared/permissions/privapp-permissions-cuttlefish.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/privapp-permissions-cuttlefish.xml \ 236 frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ 237 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ 238 frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ 239 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ 240 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 241 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 242 frameworks/av/services/audiopolicy/config/surround_sound_configuration_5_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/surround_sound_configuration_5_0.xml \ 243 frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \ 244 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 245 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 246 frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ 247 frameworks/native/data/etc/android.hardware.uwb.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.uwb.xml \ 248 frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ 249 frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \ 250 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 251 frameworks/native/data/etc/android.software.credentials.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.credentials.xml \ 252 frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \ 253 frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml \ 254 255# 256# Device input config 257# Install .kcm/.kl/.idc files via input.config apex 258# 259PRODUCT_PACKAGES += com.google.cf.input.config 260 261PRODUCT_PACKAGES += \ 262 fstab.cf.f2fs.hctr2 \ 263 fstab.cf.f2fs.hctr2.vendor_ramdisk \ 264 fstab.cf.f2fs.cts \ 265 fstab.cf.f2fs.cts.vendor_ramdisk \ 266 fstab.cf.ext4.hctr2 \ 267 fstab.cf.ext4.hctr2.vendor_ramdisk \ 268 fstab.cf.ext4.cts \ 269 fstab.cf.ext4.cts.vendor_ramdisk \ 270 271# Packages for HAL implementations 272 273# TODO(b/218588089) remove this once cuttlefish can drop HIDL. 274# This adds hwservicemanager and the allocator service to the device. 275PRODUCT_PACKAGES += \ 276 hwservicemanager \ 277 android.hidl.allocator@1.0-service 278 279# 280# Weaver aidl HAL 281# 282# TODO(b/262418065) Add a real weaver implementation 283 284 285# 286# Authsecret AIDL HAL 287# 288PRODUCT_PACKAGES += \ 289 com.android.hardware.authsecret 290 291ifndef LOCAL_AUDIO_PRODUCT_PACKAGE 292# 293# Still use HIDL Audio HAL on 'next' 294# 295LOCAL_AUDIO_PRODUCT_PACKAGE += \ 296 android.hardware.audio.parameter_parser.example_service \ 297 com.android.hardware.audio 298PRODUCT_SYSTEM_EXT_PROPERTIES += \ 299 ro.audio.ihaladaptervendorextension_enabled=true 300endif 301 302ifndef LOCAL_AUDIO_PRODUCT_COPY_FILES 303LOCAL_AUDIO_PRODUCT_COPY_FILES := \ 304 device/generic/goldfish/audio/policy/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 305 device/generic/goldfish/audio/policy/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \ 306 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 307 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ 308 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml 309LOCAL_AUDIO_PRODUCT_COPY_FILES += \ 310 hardware/interfaces/audio/aidl/default/audio_effects_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects_config.xml 311endif 312 313PRODUCT_PACKAGES += $(LOCAL_AUDIO_PRODUCT_PACKAGE) 314PRODUCT_COPY_FILES += $(LOCAL_AUDIO_PRODUCT_COPY_FILES) 315DEVICE_PACKAGE_OVERLAYS += $(LOCAL_AUDIO_DEVICE_PACKAGE_OVERLAYS) 316 317# 318# Contexthub HAL 319# 320LOCAL_CONTEXTHUB_PRODUCT_PACKAGE ?= \ 321 com.android.hardware.contexthub 322PRODUCT_PACKAGES += $(LOCAL_CONTEXTHUB_PRODUCT_PACKAGE) 323 324# 325# Drm HAL 326# 327ifeq ($(TARGET_USE_LAZY_CLEARKEY),true) 328PRODUCT_PACKAGES += \ 329 com.android.hardware.drm.clearkey.lazy 330else 331PRODUCT_PACKAGES += \ 332 android.hardware.drm@latest-service.clearkey 333endif 334 335LOCAL_ENABLE_WIDEVINE ?= true 336ifeq ($(LOCAL_ENABLE_WIDEVINE),true) 337-include vendor/widevine/libwvdrmengine/apex/device/device.mk 338endif 339 340# 341# Confirmation UI HAL 342# 343ifeq ($(LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE),) 344 LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE := com.google.cf.confirmationui 345endif 346PRODUCT_PACKAGES += $(LOCAL_CONFIRMATIONUI_PRODUCT_PACKAGE) 347 348# 349# Dumpstate HAL 350# 351ifeq ($(LOCAL_DUMPSTATE_PRODUCT_PACKAGE),) 352 LOCAL_DUMPSTATE_PRODUCT_PACKAGE += com.android.hardware.dumpstate 353endif 354PRODUCT_PACKAGES += $(LOCAL_DUMPSTATE_PRODUCT_PACKAGE) 355 356# 357# Gatekeeper 358# 359PRODUCT_PACKAGES += \ 360 com.android.hardware.gatekeeper.cf_remote \ 361 com.android.hardware.gatekeeper.nonsecure \ 362 363# 364# Oemlock 365# 366LOCAL_ENABLE_OEMLOCK ?= true 367ifeq ($(LOCAL_ENABLE_OEMLOCK),true) 368ifeq ($(LOCAL_OEMLOCK_PRODUCT_PACKAGE),) 369 LOCAL_OEMLOCK_PRODUCT_PACKAGE := com.google.cf.oemlock 370endif 371PRODUCT_PACKAGES += \ 372 $(LOCAL_OEMLOCK_PRODUCT_PACKAGE) 373 374PRODUCT_VENDOR_PROPERTIES += ro.oem_unlock_supported=1 375endif 376 377# Health 378ifeq ($(LOCAL_HEALTH_PRODUCT_PACKAGE),) 379 LOCAL_HEALTH_PRODUCT_PACKAGE := \ 380 com.google.cf.health \ 381 android.hardware.health-service.cuttlefish_recovery \ 382 383endif 384PRODUCT_PACKAGES += $(LOCAL_HEALTH_PRODUCT_PACKAGE) 385 386# Health Storage 387PRODUCT_PACKAGES += \ 388 com.google.cf.health.storage 389 390PRODUCT_PACKAGES += \ 391 com.android.hardware.input.processor 392 393# Netlink Interceptor HAL 394PRODUCT_PACKAGES += \ 395 com.android.hardware.net.nlinterceptor 396 397# 398# Lights 399# 400LOCAL_ENABLE_LIGHT ?= true 401ifeq ($(LOCAL_ENABLE_LIGHT),true) 402PRODUCT_PACKAGES += \ 403 com.google.cf.light \ 404 405endif 406 407# 408# KeyMint HAL 409# 410PRODUCT_PACKAGES += \ 411 com.android.hardware.keymint.rust_cf_remote \ 412 com.android.hardware.keymint.rust_nonsecure \ 413 414# Indicate that KeyMint includes support for the ATTEST_KEY key purpose. 415PRODUCT_COPY_FILES += \ 416 frameworks/native/data/etc/android.hardware.keystore.app_attest_key.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.keystore.app_attest_key.xml 417# Indicate that KeyMint includes (emulated) support for device ID attestation. 418PRODUCT_COPY_FILES += \ 419 frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml 420 421# 422# Non-secure implementation of AuthGraph HAL for compliance. 423# 424PRODUCT_PACKAGES += \ 425 com.android.hardware.security.authgraph 426 427# 428# Non-secure implementation of Secretkeeper HAL for compliance. 429# 430PRODUCT_PACKAGES += \ 431 com.android.hardware.security.secretkeeper 432 433# 434# Power and PowerStats HALs 435# 436PRODUCT_PACKAGES += com.android.hardware.power 437 438# 439# Tetheroffload HAL 440# 441PRODUCT_PACKAGES += \ 442 com.android.hardware.tetheroffload 443 444# 445# Thermal HAL 446# 447LOCAL_THERMAL_HAL_PRODUCT_PACKAGE ?= com.android.hardware.thermal 448PRODUCT_PACKAGES += $(LOCAL_THERMAL_HAL_PRODUCT_PACKAGE) 449 450# 451# NeuralNetworks HAL 452# 453PRODUCT_PACKAGES += \ 454 com.android.hardware.neuralnetworks 455 456# USB 457PRODUCT_PACKAGES += \ 458 com.android.hardware.usb 459 460# BootControl HAL 461PRODUCT_PACKAGES += \ 462 com.android.hardware.boot \ 463 android.hardware.boot-service.default_recovery 464 465 466# Memtrack HAL 467PRODUCT_PACKAGES += \ 468 com.android.hardware.memtrack 469 470# Fastboot HAL & fastbootd 471PRODUCT_PACKAGES += \ 472 android.hardware.fastboot@1.1-impl-mock \ 473 fastbootd 474 475# Recovery mode 476ifneq ($(TARGET_NO_RECOVERY),true) 477 478PRODUCT_COPY_FILES += \ 479 device/google/cuttlefish/shared/config/init.recovery.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.cutf_cvm.rc \ 480 device/google/cuttlefish/shared/config/cgroups.json:$(TARGET_COPY_OUT_RECOVERY)/root/vendor/etc/cgroups.json \ 481 device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_RECOVERY)/root/ueventd.cutf_cvm.rc \ 482 483PRODUCT_PACKAGES += \ 484 update_engine_sideload 485 486endif 487 488ifdef TARGET_DEDICATED_RECOVERY 489PRODUCT_BUILD_RECOVERY_IMAGE := true 490PRODUCT_PACKAGES += linker.vendor_ramdisk shell_and_utilities_vendor_ramdisk 491else 492PRODUCT_PACKAGES += linker.recovery shell_and_utilities_recovery 493endif 494 495# wifi 496# Add com.android.hardware.wifi for android.hardware.wifi-service 497PRODUCT_PACKAGES += com.android.hardware.wifi 498# Add com.google.cf.wifi and com.google.cf.wpa_supplicant for hostapd and wpa_supplicant 499PRODUCT_PACKAGES += com.google.cf.wifi 500PRODUCT_PACKAGES += com.google.cf.wpa_supplicant 501$(call add_soong_config_namespace, wpa_supplicant) 502$(call add_soong_config_var_value, wpa_supplicant, platform_version, $(PLATFORM_VERSION)) 503$(call add_soong_config_var_value, wpa_supplicant, nl80211_driver, CONFIG_DRIVER_NL80211_QCA) 504 505# VirtWifi interface configuration 506ifeq ($(DEVICE_VIRTWIFI_PORT),) 507 DEVICE_VIRTWIFI_PORT := eth2 508endif 509PRODUCT_VENDOR_PROPERTIES += ro.vendor.virtwifi.port=${DEVICE_VIRTWIFI_PORT} 510 511# Wifi Runtime Resource Overlay 512PRODUCT_PACKAGES += \ 513 CuttlefishTetheringOverlay \ 514 CuttlefishWifiOverlay 515 516ifeq ($(PRODUCT_ENFORCE_MAC80211_HWSIM),true) 517PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=mac80211_hwsim_virtio 518$(call soong_config_append,cvdhost,enforce_mac80211_hwsim,true) 519else 520PRODUCT_VENDOR_PROPERTIES += ro.vendor.wifi_impl=virt_wifi 521endif 522 523# UWB HAL 524PRODUCT_PACKAGES += com.android.hardware.uwb 525PRODUCT_VENDOR_PROPERTIES += ro.vendor.uwb.dev=/dev/hvc9 526 527# Host packages to install 528PRODUCT_HOST_PACKAGES += socket_vsock_proxy 529 530#for Confirmation UI 531PRODUCT_SOONG_NAMESPACES += vendor/google_devices/common/proprietary/confirmatioui_hal 532 533# Need this so that the application's loop on reading input can be synchronized 534# with HW VSYNC 535PRODUCT_VENDOR_PROPERTIES += \ 536 ro.surface_flinger.running_without_sync_framework=true 537 538# Enable GPU-intensive background blur support on Cuttlefish when requested by apps 539PRODUCT_VENDOR_PROPERTIES += \ 540 ro.surface_flinger.supports_background_blur=1 541 542# Set Game Default Frame Rate 543# See b/286084594 544PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ 545 ro.surface_flinger.game_default_frame_rate_override=60 546 547# Disable GPU-intensive background blur for widget picker 548PRODUCT_SYSTEM_PROPERTIES += \ 549 ro.launcher.depth.widget=0 550 551# Start fingerprint virtual HAL process 552PRODUCT_VENDOR_PROPERTIES += ro.vendor.fingerprint_virtual_hal_start=true 553 554# Vendor Dlkm Locader 555PRODUCT_PACKAGES += \ 556 dlkm_loader 557 558# CAS AIDL HAL 559PRODUCT_PACKAGES += \ 560 com.android.hardware.cas 561 562PRODUCT_COPY_FILES += \ 563 device/google/cuttlefish/shared/config/pci.ids:$(TARGET_COPY_OUT_VENDOR)/pci.ids 564 565# Thread Network AIDL HAL and Demo App 566PRODUCT_PACKAGES += \ 567 com.android.hardware.threadnetwork \ 568 ThreadNetworkDemoApp 569 570PRODUCT_CHECK_VENDOR_SEAPP_VIOLATIONS := true 571 572PRODUCT_CHECK_DEV_TYPE_VIOLATIONS := true 573 574TARGET_BOARD_FASTBOOT_INFO_FILE = device/google/cuttlefish/shared/fastboot-info.txt 575