• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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