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