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# Enable updating of APEXes 18$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) 19 20PRODUCT_COPY_FILES += device/google/cuttlefish_kernel/4.14-x86_64/kernel:kernel 21 22PRODUCT_SHIPPING_API_LEVEL := 29 23PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := false 24 25DISABLE_RILD_OEM_HOOK := true 26 27# Properties that are not vendor-specific. These will go in the product 28# partition, instead of the vendor partition, and do not need vendor 29# sepolicy 30PRODUCT_PRODUCT_PROPERTIES := \ 31 persist.adb.tcp.port=5555 \ 32 persist.traced.enable=1 \ 33 persist.heapprofd.enable=1 \ 34 ro.com.google.locationfeatures=1 \ 35 36# Explanation of specific properties: 37# debug.hwui.swap_with_damage avoids boot failure on M http://b/25152138 38# ro.opengles.version OpenGLES 3.0 39PRODUCT_PROPERTY_OVERRIDES += \ 40 tombstoned.max_tombstone_count=500 \ 41 bt.rootcanal_test_console=off \ 42 debug.hwui.swap_with_damage=0 \ 43 ro.carrier=unknown \ 44 ro.com.android.dataroaming=false \ 45 ro.hardware.virtual_device=1 \ 46 ro.logd.size=1M \ 47 ro.opengles.version=196608 \ 48 wifi.interface=wlan0 \ 49 50# Below is a list of properties we probably should get rid of. 51PRODUCT_PROPERTY_OVERRIDES += \ 52 wlan.driver.status=ok 53 54# 55# Packages for various cuttlefish-specific tests 56# 57PRODUCT_PACKAGES += \ 58 vsoc_guest_region_e2e_test \ 59 vsoc_managed_region_e2e_test \ 60 vsoc_driver_test 61 62# 63# Packages for various GCE-specific utilities 64# 65PRODUCT_PACKAGES += \ 66 audiotop \ 67 dhcpcd_wlan0 \ 68 gce_fs_monitor \ 69 socket_forward_proxy \ 70 socket_vsock_proxy \ 71 usbforward \ 72 VSoCService \ 73 wpa_supplicant.vsoc.conf \ 74 vsoc_input_service \ 75 vport_trigger \ 76 rename_netiface \ 77 ip_link_add \ 78 setup_wifi \ 79 vsock_logcat \ 80 81# 82# Packages for AOSP-available stuff we use from the framework 83# 84PRODUCT_PACKAGES += \ 85 dhcpcd-6.8.2 \ 86 dhcpcd-6.8.2.conf \ 87 e2fsck \ 88 ip \ 89 network \ 90 perf \ 91 scp \ 92 sleep \ 93 tcpdump \ 94 wpa_supplicant \ 95 wificond \ 96 97# 98# Packages for the OpenGL implementation 99# 100 101# SwiftShader provides a software-only implementation that is not thread-safe 102PRODUCT_PACKAGES += \ 103 libEGL_swiftshader \ 104 libGLESv1_CM_swiftshader \ 105 libGLESv2_swiftshader 106 107DEVICE_PACKAGE_OVERLAYS := device/google/cuttlefish/shared/overlay 108PRODUCT_AAPT_CONFIG := normal large xlarge hdpi xhdpi 109# PRODUCT_AAPT_PREF_CONFIG is intentionally not set to pick up every density resources. 110 111# 112# General files 113# 114PRODUCT_COPY_FILES += \ 115 device/google/cuttlefish/shared/config/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \ 116 device/google/cuttlefish/shared/config/camera_v3.json:$(TARGET_COPY_OUT_VENDOR)/etc/config/camera.json \ 117 device/google/cuttlefish/shared/config/init.common.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.common.rc \ 118 device/google/cuttlefish/shared/config/init.cutf_ivsh.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.cutf_ivsh.rc \ 119 device/google/cuttlefish/shared/config/init.cutf_cvm.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.cutf_cvm.rc \ 120 device/google/cuttlefish/shared/config/init.product.rc:$(TARGET_COPY_OUT_PRODUCT)/etc/init/init.rc \ 121 device/google/cuttlefish/shared/config/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \ 122 device/google/cuttlefish/shared/config/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ 123 device/google/cuttlefish/shared/config/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ 124 device/google/cuttlefish/shared/config/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ 125 device/google/cuttlefish/shared/config/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml \ 126 frameworks/av/media/libeffects/data/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ 127 frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ 128 frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ 129 frameworks/av/services/audiopolicy/config/audio_policy_configuration_generic.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ 130 frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/primary_audio_policy_configuration.xml \ 131 frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ 132 frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \ 133 frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ 134 frameworks/av/services/audiopolicy/config/surround_sound_configuration_5_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/surround_sound_configuration_5_0.xml \ 135 frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \ 136 frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml \ 137 frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ 138 frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.xml \ 139 frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \ 140 frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ 141 frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \ 142 frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \ 143 frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \ 144 frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ 145 frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ 146 frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ 147 frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ 148 frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ 149 frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \ 150 frameworks/native/data/etc/android.hardware.touchscreen.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.xml \ 151 frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 152 frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ 153 frameworks/native/data/etc/android.software.app_widgets.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.app_widgets.xml \ 154 system/bt/vendor_libs/test_vendor_lib/data/controller_properties.json:vendor/etc/bluetooth/controller_properties.json \ 155 156 157# 158# The fstab requires special handling. For system-as-root builds, we *must* 159# retrieve the vendor partition mount options from DTB, as system must be 160# "pristine" to support GSI. For builds with an initrd, we prefer not to 161# rely on DTB, and *must* retrieve the partition mount options from an fstab 162# in the initrd instead. (In either case, the fstab *must also* be installed to 163# /vendor/etc) 164# 165ifeq ($(TARGET_BUILD_SYSTEM_ROOT_IMAGE),true) 166PRODUCT_COPY_FILES += \ 167 device/google/cuttlefish/shared/config/fstab.dtb:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_ivsh \ 168 device/google/cuttlefish/shared/config/fstab.dtb:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_cvm \ 169 170else ifeq ($(TARGET_USE_DYNAMIC_PARTITIONS),true) 171PRODUCT_COPY_FILES += \ 172 device/google/cuttlefish/shared/config/fstab.initrd-dynamic-partitions:$(TARGET_COPY_OUT_RAMDISK)/fstab.cutf_ivsh \ 173 device/google/cuttlefish/shared/config/fstab.initrd-dynamic-partitions:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_ivsh \ 174 device/google/cuttlefish/shared/config/fstab.initrd-dynamic-partitions:$(TARGET_COPY_OUT_RAMDISK)/fstab.cutf_cvm \ 175 device/google/cuttlefish/shared/config/fstab.initrd-dynamic-partitions:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_cvm \ 176 177else 178PRODUCT_COPY_FILES += \ 179 device/google/cuttlefish/shared/config/fstab.initrd:$(TARGET_COPY_OUT_RAMDISK)/fstab.cutf_ivsh \ 180 device/google/cuttlefish/shared/config/fstab.initrd:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_ivsh \ 181 device/google/cuttlefish/shared/config/fstab.initrd:$(TARGET_COPY_OUT_RAMDISK)/fstab.cutf_cvm \ 182 device/google/cuttlefish/shared/config/fstab.initrd:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.cutf_cvm \ 183 184endif 185 186 187# 188# USB Specific 189# 190PRODUCT_COPY_FILES += \ 191 device/google/cuttlefish/shared/config/init.hardware.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.cutf_ivsh.usb.rc 192 193# Packages for HAL implementations 194 195# 196# Atrace HAL 197# 198PRODUCT_PACKAGES += \ 199 android.hardware.atrace@1.0-service 200 201# 202# Authsecret HAL 203# 204PRODUCT_PACKAGES += \ 205 android.hardware.authsecret@1.0-service 206 207# 208# Hardware Composer HAL 209# 210PRODUCT_PACKAGES += \ 211 hwcomposer.drm_minigbm \ 212 hwcomposer.cutf_ivsh \ 213 hwcomposer.cutf_cvm \ 214 hwcomposer-stats \ 215 android.hardware.graphics.composer@2.1-impl \ 216 android.hardware.graphics.composer@2.1-service 217 218# 219# Gralloc HAL 220# 221PRODUCT_PACKAGES += \ 222 gralloc.minigbm \ 223 gralloc.cutf \ 224 android.hardware.graphics.mapper@2.0-impl-2.1 \ 225 android.hardware.graphics.allocator@2.0-impl \ 226 android.hardware.graphics.allocator@2.0-service 227 228# 229# Bluetooth HAL and Compatibility Bluetooth library (for older revs). 230# 231PRODUCT_PACKAGES += \ 232 android.hardware.bluetooth@1.0-service.sim \ 233 android.hardware.bluetooth.audio@2.0-impl 234 235# 236# Audio HAL 237# 238PRODUCT_PACKAGES += \ 239 audio.primary.cutf \ 240 audio.r_submix.default \ 241 android.hardware.audio@5.0-impl:32 \ 242 android.hardware.audio.effect@5.0-impl:32 \ 243 android.hardware.audio@2.0-service \ 244 android.hardware.soundtrigger@2.0-impl \ 245 246# 247# Drm HAL 248# 249PRODUCT_PACKAGES += \ 250 android.hardware.drm@1.2-service.clearkey 251 252# 253# Dumpstate HAL 254# 255PRODUCT_PACKAGES += \ 256 android.hardware.dumpstate@1.0-service.cuttlefish 257 258# 259# Camera 260# 261PRODUCT_PACKAGES += \ 262 camera.cutf \ 263 camera.cutf.jpeg \ 264 camera.device@3.2-impl \ 265 android.hardware.camera.provider@2.4-impl \ 266 android.hardware.camera.provider@2.4-service 267 268# 269# Gatekeeper 270# 271PRODUCT_PACKAGES += \ 272 gatekeeper.cutf \ 273 android.hardware.gatekeeper@1.0-impl \ 274 android.hardware.gatekeeper@1.0-service 275 276# 277# GPS 278# 279PRODUCT_PACKAGES += \ 280 android.hardware.gnss@2.0-service 281 282# Health 283PRODUCT_PACKAGES += \ 284 android.hardware.health@2.0-service.cuttlefish 285 286# Health Storage 287PRODUCT_PACKAGES += \ 288 android.hardware.health.storage@1.0-service.cuttlefish 289 290# Input Classifier HAL 291PRODUCT_PACKAGES += \ 292 android.hardware.input.classifier@1.0-service.default 293 294# 295# Sensors 296# 297PRODUCT_PACKAGES += \ 298 android.hardware.sensors@2.0-service.mock 299# 300# Thermal (mock) 301# 302PRODUCT_PACKAGES += \ 303 android.hardware.thermal@2.0-service.mock 304 305# 306# Lights 307# 308PRODUCT_PACKAGES += \ 309 lights.cutf \ 310 android.hardware.light@2.0-impl \ 311 android.hardware.light@2.0-service 312 313# 314# Keymaster HAL 315# 316PRODUCT_PACKAGES += \ 317 android.hardware.keymaster@4.0-impl \ 318 android.hardware.keymaster@4.0-service 319 320# 321# Power HAL 322# 323PRODUCT_PACKAGES += \ 324 power.cutf \ 325 android.hardware.power@1.0-impl \ 326 android.hardware.power@1.0-service 327 328 329# 330# PowerStats HAL 331# 332PRODUCT_PACKAGES += \ 333 android.hardware.power.stats@1.0-service.mock 334 335# 336# NeuralNetworks HAL 337# 338PRODUCT_PACKAGES += \ 339 android.hardware.neuralnetworks@1.2-service-sample-all \ 340 android.hardware.neuralnetworks@1.2-service-sample-float-fast \ 341 android.hardware.neuralnetworks@1.2-service-sample-float-slow \ 342 android.hardware.neuralnetworks@1.2-service-sample-minimal \ 343 android.hardware.neuralnetworks@1.2-service-sample-quant 344 345# 346# USB 347PRODUCT_PACKAGES += \ 348 android.hardware.usb@1.0-service 349 350# Vibrator HAL 351PRODUCT_PACKAGES += \ 352 android.hardware.vibrator@1.3-service.example 353 354PRODUCT_PACKAGES += \ 355 cuttlefish_dtb 356 357# WLAN driver configuration files 358PRODUCT_COPY_FILES += \ 359 $(LOCAL_PATH)/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf 360 361# Recovery mode 362ifneq ($(TARGET_NO_RECOVERY),true) 363 364PRODUCT_COPY_FILES += \ 365 device/google/cuttlefish/shared/config/init.recovery.common.rc:recovery/root/init.recovery.common.rc \ 366 device/google/cuttlefish/shared/config/init.recovery.cutf_ivsh.rc:recovery/root/init.recovery.cutf_ivsh.rc \ 367 device/google/cuttlefish/shared/config/init.recovery.cutf_cvm.rc:recovery/root/init.recovery.cutf_cvm.rc \ 368 369endif 370 371# Host packages to install 372PRODUCT_HOST_PACKAGES += socket_forward_proxy socket_vsock_proxy 373