1 /* 2 * Copyright (C) 2022 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 #pragma once 17 18 #include "host/libs/config/cuttlefish_config.h" 19 20 #define CF_DEFAULTS_DYNAMIC_STRING "" 21 #define CF_DEFAULTS_DYNAMIC_INT 0 22 23 // Common configs paramneters 24 #define CF_DEFAULTS_NUM_INSTANCES 1 25 #define CF_DEFAULTS_INSTANCE_NUMS CF_DEFAULTS_DYNAMIC_STRING 26 #define CF_DEFAULTS_BASE_INSTANCE_NUM cuttlefish::GetInstance() 27 #define CF_DEFAULTS_ASSEMBLY_DIR \ 28 (StringFromEnv("HOME", ".") + "/cuttlefish_assembly") 29 #define CF_DEFAULTS_INSTANCE_DIR (StringFromEnv("HOME", ".") + "/cuttlefish") 30 31 #define CF_DEFAULTS_SYSTEM_IMAGE_DIR CF_DEFAULTS_DYNAMIC_STRING 32 33 // Instance specific parameters 34 // VM default parameters 35 #define CF_DEFAULTS_DISPLAY_DPI 320 36 #define CF_DEFAULTS_DISPLAY_REFRESH_RATE 60 37 #define CF_DEFAULTS_DISPLAY_WIDTH 720 38 #define CF_DEFAULTS_DISPLAY_HEIGHT 1280 39 #define CF_DEFAULTS_DISPLAYS_TEXTPROTO "" 40 #define CF_DEFAULTS_CPUS 2 41 #define CF_DEFAULTS_RESUME true 42 #define CF_DEFAULTS_DAEMON false 43 #define CF_DEFAULTS_VM_MANAGER CF_DEFAULTS_DYNAMIC_STRING 44 #define CF_DEFAULTS_VSOCK_GUEST_CID cuttlefish::GetDefaultVsockCid() 45 #define CF_DEFAULTS_VSOCK_GUEST_GROUP "" 46 #define CF_DEFAULTS_VHOST_USER_VSOCK cuttlefish::kVhostUserVsockModeAuto 47 #define CF_DEFAULTS_ENABLE_MINIMAL_MODE false 48 #define CF_DEFAULTS_RESTART_SUBPROCESSES false 49 #define CF_DEFAULTS_SETUPWIZARD_MODE "DISABLED" 50 #define CF_DEFAULTS_SMT false 51 #define CF_DEFAULTS_USE_ALLOCD false 52 #define CF_DEFAULTS_USE_SDCARD true 53 #define CF_DEFAULTS_UUID \ 54 cuttlefish::ForCurrentInstance(cuttlefish::kDefaultUuidPrefix) 55 #define CF_DEFAULTS_FILE_VERBOSITY "DEBUG" 56 #define CF_DEFAULTS_VERBOSITY "INFO" 57 #define CF_DEFAULTS_MEMORY_MB CF_DEFAULTS_DYNAMIC_INT 58 #define CF_DEFAULTS_TRACK_HOST_TOOLS_CRC false 59 // TODO: defined twice, please remove redundant definitions 60 #define CF_DEFAULTS_USE_OVERLAY true 61 #define CF_DEFAULTS_DEVICE_EXTERNAL_NETWORK "tap" 62 63 // crosvm default parameters 64 #define CF_DEFAULTS_CROSVM_BINARY HostBinaryPath("crosvm") 65 #define CF_DEFAULTS_SECCOMP_POLICY_DIR cuttlefish::GetSeccompPolicyDir() 66 #define CF_DEFAULTS_ENABLE_SANDBOX false 67 #define CF_DEFAULTS_ENABLE_VIRTIOFS false 68 #define CF_DEFAULTS_CROSVM_V4L2_PROXY "" 69 70 // Qemu default parameters 71 #define CF_DEFAULTS_QEMU_BINARY_DIR cuttlefish::DefaultQemuBinaryDir() 72 73 // Gem5 default parameters 74 #define CF_DEFAULTS_GEM5_BINARY_DIR HostBinaryPath("gem5") 75 #define CF_DEFAULTS_GEM5_CHECKPOINT_DIR CF_DEFAULTS_DYNAMIC_STRING 76 #define CF_DEFAULTS_GEM5_DEBUG_FILE CF_DEFAULTS_DYNAMIC_STRING 77 #define CF_DEFAULTS_GEM5_DEBUG_FLAGS CF_DEFAULTS_DYNAMIC_STRING 78 79 // Boot default parameters 80 #define CF_DEFAULTS_BOOT_SLOT CF_DEFAULTS_DYNAMIC_STRING 81 #define CF_DEFAULTS_BOOTLOADER CF_DEFAULTS_DYNAMIC_STRING 82 #define CF_DEFAULTS_ENABLE_BOOTANIMATION true 83 #define CF_DEFAULTS_EXTRA_BOOTCONFIG_ARGS CF_DEFAULTS_DYNAMIC_STRING 84 #define CF_DEFAULTS_PAUSE_IN_BOOTLOADER false 85 #define CF_DEFAULTS_REBOOT_NOTIFICATION_FD (-1) 86 87 // Security default parameters 88 #define CF_DEFAULTS_GUEST_ENFORCE_SECURITY true 89 #define CF_DEFAULTS_USE_RANDOM_SERIAL false 90 #define CF_DEFAULTS_SERIAL_NUMBER \ 91 cuttlefish::ForCurrentInstance("CUTTLEFISHCVD") 92 #define CF_DEFAULTS_SECURE_HALS CF_DEFAULTS_DYNAMIC_STRING 93 #define CF_DEFAULTS_PROTECTED_VM false 94 #define CF_DEFAULTS_MTE false 95 96 // Kernel default parameters 97 #define CF_DEFAULTS_ENABLE_KERNEL_LOG true 98 #define CF_DEFAULTS_KGDB false 99 #define CF_DEFAULTS_GDB_PORT CF_DEFAULTS_DYNAMIC_INT 100 #define CF_DEFAULTS_CONSOLE false 101 #define CF_DEFAULTS_EXTRA_KERNEL_CMDLINE CF_DEFAULTS_DYNAMIC_STRING 102 #define CF_DEFAULTS_INITRAMFS_PATH CF_DEFAULTS_DYNAMIC_STRING 103 #define CF_DEFAULTS_KERNEL_PATH CF_DEFAULTS_DYNAMIC_STRING 104 105 // Disk default parameters 106 #define CF_DEFAULTS_BLANK_METADATA_IMAGE_MB "64" 107 #define CF_DEFAULTS_BLANK_SDCARD_IMAGE_MB "2048" 108 #define CF_DEFAULTS_BOOT_IMAGE CF_DEFAULTS_DYNAMIC_STRING 109 #define CF_DEFAULTS_DATA_IMAGE CF_DEFAULTS_DYNAMIC_STRING 110 #define CF_DEFAULTS_INIT_BOOT_IMAGE CF_DEFAULTS_DYNAMIC_STRING 111 #define CF_DEFAULTS_ANDROID_EFI_LOADER CF_DEFAULTS_DYNAMIC_STRING 112 #define CF_DEFAULTS_CHROMEOS_DISK "" 113 #define CF_DEFAULTS_CHROMEOS_KERNEL_PATH "" 114 #define CF_DEFAULTS_CHROMEOS_ROOT_IMAGE "" 115 #define CF_DEFAULTS_LINUX_INITRAMFS_PATH CF_DEFAULTS_DYNAMIC_STRING 116 #define CF_DEFAULTS_LINUX_KERNEL_PATH CF_DEFAULTS_DYNAMIC_STRING 117 #define CF_DEFAULTS_LINUX_ROOT_IMAGE CF_DEFAULTS_DYNAMIC_STRING 118 #define CF_DEFAULTS_FUCHSIA_ZEDBOOT_PATH CF_DEFAULTS_DYNAMIC_STRING 119 #define CF_DEFAULTS_FUCHSIA_MULTIBOOT_BIN_PATH CF_DEFAULTS_DYNAMIC_STRING 120 #define CF_DEFAULTS_FUCHSIA_ROOT_IMAGE CF_DEFAULTS_DYNAMIC_STRING 121 #define CF_DEFAULTS_CUSTOM_PARTITION_PATH CF_DEFAULTS_DYNAMIC_STRING 122 #define CF_DEFAULTS_HIBERNATION_IMAGE CF_DEFAULTS_DYNAMIC_STRING 123 #define CF_DEFAULTS_SUPER_IMAGE CF_DEFAULTS_DYNAMIC_STRING 124 #define CF_DEFAULTS_VBMETA_IMAGE CF_DEFAULTS_DYNAMIC_STRING 125 #define CF_DEFAULTS_VBMETA_SYSTEM_IMAGE CF_DEFAULTS_DYNAMIC_STRING 126 #define CF_DEFAULTS_VBMETA_VENDOR_DLKM_IMAGE CF_DEFAULTS_DYNAMIC_STRING 127 #define CF_DEFAULTS_VBMETA_SYSTEM_DLKM_IMAGE CF_DEFAULTS_DYNAMIC_STRING 128 #define CF_DEFAULTS_VENDOR_BOOT_IMAGE CF_DEFAULTS_DYNAMIC_STRING 129 #define CF_DEFAULTS_DEFAULT_VVMTRUSTSTORE_FILE_NAME CF_DEFAULTS_DYNAMIC_STRING 130 #define CF_DEFAULTS_VVMTRUSTSTORE_PATH CF_DEFAULTS_DYNAMIC_STRING 131 #define CF_DEFAULTS_DEFAULT_TARGET_ZIP CF_DEFAULTS_DYNAMIC_STRING 132 #define CF_DEFAULTS_SYSTEM_TARGET_ZIP CF_DEFAULTS_DYNAMIC_STRING 133 134 // Policy default parameters 135 #define CF_DEFAULTS_DATA_POLICY "use_existing" 136 #define CF_DEFAULTS_USERDATA_FORMAT USERDATA_FILE_SYSTEM_TYPE 137 #define CF_DEFAULTS_BLANK_DATA_IMAGE_MB CF_DEFAULTS_DYNAMIC_INT 138 139 // Graphics default parameters 140 #define CF_DEFAULTS_HWCOMPOSER cuttlefish::kHwComposerAuto 141 #define CF_DEFAULTS_GPU_MODE cuttlefish::kGpuModeAuto 142 #define CF_DEFAULTS_GPU_VHOST_USER_MODE cuttlefish::kGpuVhostUserModeAuto 143 #define CF_DEFAULTS_RECORD_SCREEN false 144 #define CF_DEFAULTS_GPU_CAPTURE_BINARY CF_DEFAULTS_DYNAMIC_STRING 145 #define CF_DEFAULTS_GPU_RENDERER_FEATURES "" 146 #define CF_DEFAULTS_GPU_CONTEXT_TYPES \ 147 "gfxstream-vulkan:cross-domain:gfxstream-composer" 148 #define CF_DEFAULTS_GUEST_HWUI_RENDERER "" 149 #define CF_DEFAULTS_GUEST_RENDERER_PRELOAD "auto" 150 #define CF_DEFAULTS_GUEST_VULKAN_DRIVER "ranchu" 151 #define CF_DEFAULTS_FRAME_SOCKET_PATH "" 152 #define CF_DEFAULTS_ENABLE_GPU_UDMABUF false 153 #define CF_DEFAULTS_ENABLE_GPU_VHOST_USER false 154 #define CF_DEFAULTS_DISPLAY0 CF_DEFAULTS_DYNAMIC_STRING 155 #define CF_DEFAULTS_DISPLAY1 CF_DEFAULTS_DYNAMIC_STRING 156 #define CF_DEFAULTS_DISPLAY2 CF_DEFAULTS_DYNAMIC_STRING 157 #define CF_DEFAULTS_DISPLAY3 CF_DEFAULTS_DYNAMIC_STRING 158 159 // Touchpad default parameters 160 #define CF_DEFAULTS_TOUCHPAD CF_DEFAULTS_DYNAMIC_STRING 161 162 // Camera default parameters 163 #define CF_DEFAULTS_CAMERA_SERVER_PORT CF_DEFAULTS_DYNAMIC_INT 164 165 // Connectivity default parameters 166 #define CF_DEFAULTS_RIL_DNS "8.8.8.8" 167 // Default network handler 168 #define CF_DEFAULTS_NETSIM false 169 #define CF_DEFAULTS_NETSIM_BT true 170 #define CF_DEFAULTS_NETSIM_UWB true 171 172 // Netsim default parameters 173 #define CF_DEFAULTS_NETSIM_ARGS "" 174 175 // Wifi default parameters 176 #define CF_DEFAULTS_AP_KERNEL_IMAGE CF_DEFAULTS_DYNAMIC_STRING 177 #define CF_DEFAULTS_AP_ROOTFS_IMAGE CF_DEFAULTS_DYNAMIC_STRING 178 #define CF_DEFAULTS_VHOST_NET false 179 #define CF_DEFAULTS_VHOST_USER_MAC80211_HWSIM CF_DEFAULTS_DYNAMIC_STRING 180 #define CF_DEFAULTS_WMEDIUMD_CONFIG CF_DEFAULTS_DYNAMIC_STRING 181 182 // UWB default parameters 183 #define CF_DEFAULTS_ENABLE_HOST_UWB true 184 #define CF_DEFAULTS_ENABLE_PICA_INSTANCE_NUM 0 185 186 // Automotive Proxy default parameter 187 #define CF_DEFAULTS_ENABLE_AUTOMOTIVE_PROXY false 188 189 // Vhal Proxy Server default parameter 190 #define CF_DEFAULTS_ENABLE_VHAL_PROXY_SERVER false 191 #define CF_DEFAULTS_VHAL_PROXY_SERVER_INSTANCE_NUM 0 192 193 // Bluetooth default parameters 194 #define CF_DEFAULTS_ENABLE_HOST_BLUETOOTH true 195 #define CF_DEFAULTS_ROOTCANAL_INSTANCE_NUM 0 196 #define CF_DEFAULTS_ROOTCANAL_ARGS CF_DEFAULTS_DYNAMIC_STRING 197 198 // NFC default parameters 199 #define CF_DEFAULTS_ENABLE_HOST_NFC true 200 #define CF_DEFAULTS_CASIMIR_INSTANCE_NUM 0 201 #define CF_DEFAULTS_CASIMIR_ARGS CF_DEFAULTS_DYNAMIC_STRING 202 203 // Modem Simulator default parameters 204 #define CF_DEFAULTS_ENABLE_MODEM_SIMULATOR true 205 #define CF_DEFAULTS_MODEM_SIMULATOR_SIM_TYPE 1 206 #define CF_DEFAULTS_MODEM_SIMULATOR_COUNT 1 207 208 // Audio default parameters 209 #define CF_DEFAULTS_ENABLE_AUDIO true 210 211 // USB Passhtrough default parameters 212 #define CF_DEFAULTS_ENABLE_USB false 213 214 // Streaming default parameters 215 #define CF_DEFAULTS_START_WEBRTC false 216 #define CF_DEFAULTS_START_WEBRTC_SIG_SERVER true 217 #define CF_DEFAULTS_WEBRTC_DEVICE_ID "cvd-{num}" 218 #define CF_DEFAULTS_VERIFY_SIG_SERVER_CERTIFICATE false 219 #define CF_DEFAULTS_WEBRTC_ASSETS_DIR \ 220 DefaultHostArtifactsPath("usr/share/webrtc/assets") 221 #define CF_DEFAULTS_WEBRTC_CERTS_DIR \ 222 DefaultHostArtifactsPath("usr/share/webrtc/certs") 223 #define CF_DEFAULTS_WEBRTC_SIG_SERVER_ADDR CF_DEFAULTS_DYNAMIC_STRING 224 #define CF_DEFAULTS_WEBRTC_SIG_SERVER_PATH "/register_device" 225 #define CF_DEFAULTS_WEBRTC_SIG_SERVER_PORT 443 226 #define CF_DEFAULTS_WEBRTC_SIG_SERVER_SECURE true 227 #define CF_DEFAULTS_TCP_PORT_RANGE "15550:15599" 228 #define CF_DEFAULTS_UDP_PORT_RANGE "15550:15599" 229 230 // Adb default parameters 231 // TODO : Replaceconstants with these flags, they're currently defined through 232 // GflagsCompatFlag 233 #define CF_DEFAULTS_RUN_ADB_CONNECTOR true 234 #define CF_DEFAULTS_ADB_MODE "vsock_half_tunnel" 235 236 // Location default parameters 237 #define CF_DEFAULTS_START_GNSS_PROXY true 238 #define CF_DEFAULTS_FIXED_LOCATION_FILE_PATH CF_DEFAULTS_DYNAMIC_STRING 239 #define CF_DEFAULTS_GNSS_FILE_PATH CF_DEFAULTS_DYNAMIC_STRING 240 241 // Metrics default parameters 242 // TODO: Defined twice , please remove redundant definitions 243 #define CF_DEFAULTS_REPORT_ANONYMOUS_USAGE_STATS CF_DEFAULTS_DYNAMIC_STRING 244 245 // MCU emulator default configuration path 246 #define CF_DEFAULTS_MCU_CONFIG_PATH CF_DEFAULTS_DYNAMIC_STRING 247 248 // Which executables to run under strace by default 249 #define CF_DEFAULTS_STRACED_HOST_EXECUTABLES "" 250 251 // Whether to use sandbox2 to lock down host processes where policies exist 252 #define CF_DEFAULTS_HOST_SANDBOX false 253 254 // Whether to exit when heuristics predict the boot will not complete 255 #define CF_DEFAULTS_FAIL_FAST true 256 257 // Whether to use the crosvm vhost-user block device implementation with QEMU 258 // TODO: b/346855591 - default to `true` 259 #define CF_DEFAULTS_VHOST_USER_BLOCK false 260 261 // Virtual Cpufreq default configuration path 262 #define CF_DEFAULTS_VCPU_CONFIG_PATH "" 263