You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
405 lines
19 KiB
405 lines
19 KiB
#-------------------------------------------------------------------------------
|
|
# Advanced emulator features
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# GLPipeChecksum----------------------------------------------------------------
|
|
# For every GL call that transfers between host and guest, GLPipeChecksum = on
|
|
# will compute a checksum consisting of some function of the actual bit vector
|
|
# corresponding to the GL command, verifying that the same checksum shows up
|
|
# on both the host and guest. Violations of the checksum (mismatches) result
|
|
# in an abort() and crash report being sent.
|
|
#
|
|
# Currently, the checksum is mainly making sure that the command itself and all
|
|
# arrays passed through the pipe are of proper length.
|
|
GLPipeChecksum = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# GrallocSync-------------------------------------------------------------------
|
|
# Most apps that display images do so through OpenGL, but there are some apps
|
|
# that write directly to gralloc color buffers. In our goldfish-driver gralloc
|
|
# implementation, which represents gralloc color buffers as host OpenGL color
|
|
# buffers.
|
|
#
|
|
# For example, in the camera app, the emulated webcam driver will pull frames
|
|
# to a gralloc color buffer directly, and then in another thread or process,
|
|
# the color buffer representing the camera frame preview could be posted
|
|
# onscreen.
|
|
#
|
|
# These operations aren't guaranteed to have their order preserved when arriving
|
|
# from the guest, and if executed on the host in the wrong order, we could
|
|
# end up with out of order webcam frames, for instance.
|
|
#
|
|
# GrallocSync = on adds synchronization to the host for this use case where apps
|
|
# directly write to gralloc color buffers and then post them.
|
|
# Gralloc sync disabled for now because it is making CTS sad.
|
|
GrallocSync = off
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# GLAsyncSwap-------------------------------------------------------------------
|
|
# OpenGL apps in the guest present their contents indirectly through
|
|
# SurfaceFlinger. The goldfish driver's implementation of eglSwapBuffers is
|
|
# based on queuing the finished frame (buffer) to SurfaceFlinger.
|
|
# SurfaceFlinger then acquires that finished buffer from the OpenGL app,
|
|
# does the actual posting to the display (which may involve a call in turn
|
|
# to eglSwapBuffers, esp. if we are not using hardware composer),
|
|
# and releases the buffer, allowing the OpenGL app to dequeue a fresh
|
|
# buffer for whatever to draw next.
|
|
#
|
|
# The problem is that when we are using host GPU, the rubber meets the road #
|
|
# in the host not the guest (what the user sees is not due to any concrete
|
|
# action inside the guest, but due to the host GPU communicating with the host
|
|
# display), so it's not always clear what a "finished frame" means. In
|
|
# particular, the frame is not necessarily finished when the buffer is queued
|
|
# in the guest, depending on host driver quirks. So, posting unfinished or
|
|
# even older buffers to SurfaceFlinger will result in out of order frames.
|
|
#
|
|
# GLAsyncSwap = off pretends this issue doesn't exist and it's up to the host
|
|
# driver to properly synchronize upon calling rcFlushWindowColorBuffer.
|
|
# GLAsyncSwap = on uses the host GL driver's fence commands and fence fd's in
|
|
# the guest in order to have explicit signals of buffer swaps complete. This
|
|
# preserves frame ordering at a slight performance cost, but the cost is less
|
|
# than that of other solutions like calling glFinish() on the host.
|
|
# Disabled by default for now
|
|
GLAsyncSwap = off
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# EncryptUserData---------------------------------------------------------------
|
|
# CTS requires that userdata be encrypted, at least for api23 and later. However
|
|
# for non Google images or older system images, this is not required or not
|
|
# implemted. Emulator will enable this feature only if the system says it supports
|
|
# encryption. It is on by default on the host, and according to the current rule,
|
|
# a feature is only on if both host and guest support it; so it effectively leaves
|
|
# to guest to decide.
|
|
EncryptUserData = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# RefCountPipe------------------------------------------------------------------
|
|
# RefCount Pipe is a different approach to simplify the Color Buffer management
|
|
# on host. In guest, the handle returned by gralloc allocator can be passed around
|
|
# between processes through Binder. Android system ensures that the handle on both
|
|
# calling and receiving end willl be properly closed. Thus, when gralloc allocates
|
|
# buffer for the first time, we establish a Refcount pipe between guest and host,
|
|
# and assign its fd to the handle. In the desturctor of the handle, close the fd.
|
|
# Guest kernel will decide when to really close the fd and thus trigger the pipe's
|
|
# closing on host. On the host side, we only need to destroy the color buffer
|
|
# immediately and not worry about any reference counting at all. This approach will
|
|
# not only simplify the the logic between guest and host, but also reduce memory leaks.
|
|
RefCountPipe = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# IntelPerformanceMonitoringUnit------------------------------------------------
|
|
# Some CTS tests (mainly SimplePerf) require that the CPU expose some kind of
|
|
# counters that can be used to measure CPU performance in cycles,
|
|
# cache hit/miss, etc.
|
|
# However, the use of this on the vCPU requires that the guest kernel be in
|
|
# a fairly recent state, otherwise the emulator will kernel panic on startup.
|
|
IntelPerformanceMonitoringUnit = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# GLDMA-------------------------------------------------------------------------
|
|
# Video playback can approach 1080p60 and be solid 720p60 if we map guest memory
|
|
# to host and use it to perofrm color buffer updates, and perform YV12->RGB
|
|
# on the host as well, in an OpenGL shader.
|
|
GLDMA = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# GLESDynamicVersion------------------------------------------------------------
|
|
# This feature attempts to detect the maximum supported GLES version depending on
|
|
# which OpenGL function pointers have been found on the GL libraries used
|
|
# on the host system. Different platforms / hardware + video driver setups can
|
|
# have different support.
|
|
# For example, OS X is not known to support GLES 3.1.
|
|
# If this feature is set to "off", the max supported GLES version is assumed to
|
|
# be <= 2 and also depend on the system image only (some images only support ES 1).
|
|
GLESDynamicVersion = off
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# Wifi -------------------------------------------------------------------------
|
|
# This feature indicates that the system image and the emulator support Wifi.
|
|
# When this is enabled the network configuration of the system image will be
|
|
# significantly different and the emulator will send different network setup
|
|
# information via RIL.
|
|
Wifi = on
|
|
|
|
# ForceANGLE--------------------------------------------------------------------
|
|
# This feature attempts to default the renderer to ANGLE, but can be itself
|
|
# overridden by:
|
|
# -gpu command line argument
|
|
# UI setting
|
|
# The override (and others) are done through the UI, so the user is aware
|
|
# and if the user changes to a setting other than "auto", the user setting
|
|
# is respected.
|
|
ForceANGLE = off
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# ForceSwiftshader--------------------------------------------------------------
|
|
# This feature attempts to default the renderer to Swiftshader. Otherwise,
|
|
# same behavior as ForceANGLE.
|
|
ForceSwiftshader = off
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# PlayStoreImage ---------------------------------------------------------------
|
|
# The playstore image has CTS requirements that emulator should check and ensure
|
|
# Guest image will indicate whether it has it or not;
|
|
PlayStoreImage = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# LogcatPipe ---------------------------------------------------------------
|
|
# The pipe based logcat is meant to replace the 'adb shell logcat'
|
|
# Guest image will indicate whether it has it or not;
|
|
LogcatPipe = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# Hypervisor feature flags. Assumed mutually exclusive. If all flags are off,
|
|
# then we have:
|
|
# Mac/Win: HAXM
|
|
# Linux: KVM
|
|
# If a flag is on, then attempts are made to detect host support, and if there
|
|
# is support, then the hypervisor in question is actually used.
|
|
HYPERV = off
|
|
HVF = on
|
|
KVM = off
|
|
HAXM = off
|
|
|
|
# FastSnapshotV1 ---------------------------------------------------------------
|
|
# Enable the new implementation of snapshotting in the emulator and use it for
|
|
# quick boot.
|
|
FastSnapshotV1 = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# ScreenRecording --------------------------------------------------------------
|
|
# Enables the host-side screen recording feature.
|
|
ScreenRecording = on
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# VirtualScene -----------------------------------------------------------------
|
|
# Enables the host-side virtual scene feature.
|
|
VirtualScene = on
|
|
|
|
# VideoPlayback
|
|
# Enables the camera video playback feature.
|
|
VideoPlayback = off
|
|
|
|
# system as root --------------------------------------------------------------
|
|
# Guest feature: when this is on, emulator should use system partition as root fs
|
|
# instead of using ramdisk as root fs.
|
|
SystemAsRoot = on
|
|
|
|
# IgnoreHostOpenGLErrors--------------------------------------------------------
|
|
# Don't query the host for OpenGL errors. Only use if rendering is OK for you
|
|
# already. Should decrease jank in UI by quite a bit.
|
|
IgnoreHostOpenGLErrors = off
|
|
|
|
# GenericSnapshotsUI------------------------------------------------------------
|
|
# Show the generic snapshots UI.
|
|
GenericSnapshotsUI = on
|
|
|
|
# AllowSnapshotMigration--------------------------------------------------------
|
|
# Skip snapshot file consistency checks, allowing for snapshot migration.
|
|
AllowSnapshotMigration = off
|
|
|
|
# WindowsOnDemandSnapshotLoad---------------------------------------------------
|
|
# On-demand snapshot load for Windows.
|
|
WindowsOnDemandSnapshotLoad = on
|
|
|
|
# Windows Hypervisor Platform---------------------------------------------------
|
|
# Allow WHPX
|
|
WindowsHypervisorPlatform = on
|
|
|
|
# Device Tree Blob--------------------------------------------------------------
|
|
KernelDeviceTreeBlobSupport = on
|
|
|
|
# Dynamic partition support --------------------------------------------------------------
|
|
DynamicPartition = on
|
|
|
|
# Location UI v2----------------------------------------------------------------
|
|
LocationUiV2 = on
|
|
|
|
# SnapshotAdb-------------------------------------------------------------------
|
|
SnapshotAdb = off
|
|
|
|
# QuickbootFileBacked-----------------------------------------------------------
|
|
QuickbootFileBacked = on
|
|
|
|
# HWComposer Host Composition---------------------------------------------------
|
|
HostComposition = on
|
|
|
|
# On-demand RAM load for snapshots----------------------------------------------
|
|
# Currently disabled due to issues with MemoryWatch and host side
|
|
# EFAULT's and recent guest kernels + Linux KVM
|
|
OnDemandSnapshotLoad = off
|
|
|
|
# WifiConfigurable--------------------------------------------------------------
|
|
WifiConfigurable = off
|
|
|
|
# Vulkan------------------------------------------------------------------------
|
|
# If enabled, the guest Vulkan HAL (if installed) will activate.
|
|
Vulkan = off
|
|
|
|
# CarVHalTable--------------------------------------------------------------
|
|
# if enabled, Car Vhal Table will show in extended window -> CarData
|
|
CarVHalTable = on
|
|
|
|
# VirtioInput-------------------------------------------------------------------
|
|
# VirtioInput is a guest side feature which indicates that CONFIG_VIRTIO_INPUT is
|
|
# enabled in kernel. If enabled, emulator will use virtio input device instead of
|
|
# goldfish_events to implement multi-touch functionality.
|
|
VirtioInput = on
|
|
|
|
# IpDisconnectOnLoad------------------------------------------------------------
|
|
# Reset IP connection state when loading from snapshots
|
|
IpDisconnectOnLoad = off
|
|
|
|
# VulkanSnapshots---------------------------------------------------------------
|
|
# Reset IP connection state when loading from snapshots
|
|
VulkanSnapshots = off
|
|
|
|
# MultiDisplay------------------------------------------------------------------
|
|
# MultiDisplay is a guest side feature
|
|
MultiDisplay = on
|
|
|
|
# VulkanNullOptionalStrings-----------------------------------------------------
|
|
# When we want to encode null optional vulkan strings as actual nulls instead of
|
|
# empty strings
|
|
# Requires guest support as well.
|
|
# On Fuchsia, hardcoded to on.
|
|
VulkanNullOptionalStrings = on
|
|
|
|
# DynamicMediaProfile-----------------------------------------------------------
|
|
# Enables changing the media_codecs_google_video.xml to link to another file by
|
|
# setting a boot property ro.kernel.qemu.mediaprofile.video to the location of the
|
|
# configuration file.
|
|
DynamicMediaProfile = off
|
|
|
|
# YUV420888toNV21---------------------------------------------------------------
|
|
# YUV420888toNV21 is a guest side feature which unifies the pixel format
|
|
# HAL_PIXEL_FORMAT_YCbCr_420_888 as NV21 in gralloc and camera HAL
|
|
YUV420888toNV21 = on
|
|
|
|
# YUVCache---------------------------------------------------------------
|
|
# YUVCache is a guest side feature which asks the host to cache the
|
|
# HAL_PIXEL_FORMAT_YCbCr_420_888 and HAL_PIXEL_FORMAT_YV12 frame.
|
|
YUVCache = on
|
|
|
|
# KeycodeForwarding-------------------------------------------------------------
|
|
# KeycodeForwarding is a guest side feature which emulator host will capture the keypress
|
|
# and forward Liunx keycode to Android system.
|
|
KeycodeForwarding = on
|
|
|
|
# VulkanIgnoredHandles----------------------------------------------------------
|
|
# Change in the Vulkan protocol to ignore handles in some situations
|
|
# (VkWriteDescriptorSet, and others)
|
|
# Requires guest support
|
|
VulkanIgnoredHandles = on
|
|
|
|
# VirtioGpuNext-----------------------------------------------------------------
|
|
# Whether virtio-gpu-next is supported. Requires guest support.
|
|
VirtioGpuNext = on
|
|
|
|
# Mac80211hwsimUserspaceManaged-------------------------------------------------
|
|
# Do not create mac80211_hwsim radios by the kernel on boot, create radios from
|
|
# userspace instead.
|
|
Mac80211hwsimUserspaceManaged = on
|
|
|
|
# HasSharedSlotsHostMemoryAllocator---------------------------------------------
|
|
# Host supports AddressSpaceSharedSlotsHostMemoryAllocatorContext
|
|
HasSharedSlotsHostMemoryAllocator = on
|
|
|
|
# CarVHalReplay--------------------------------------------------------------
|
|
# if enabled, sensor replay will be visible in extended window on Automotive AVDs.
|
|
CarVhalReplay = on
|
|
|
|
# HardwareDecoder--------------------------------------------------------------
|
|
# if enabled, emulator will add qemu.hwcodec.avcdec=2 and qemu.hwcodec.vpxdec=2
|
|
# to the kernel command line to tell guest the two decoders can be enabled
|
|
HardwareDecoder = on
|
|
|
|
# NoDelayCloseColorBuffer------------------------------------------------------
|
|
# Used in conjunction with RefCountPipe = off, in systems where the guest
|
|
# properly associates a color buffer with an OS handle, so we can safely
|
|
# clean up the color buffer immediately.
|
|
NoDelayCloseColorBuffer = off
|
|
|
|
# NoDeviceFrame----------------------------------------------------------------
|
|
# Don't show the device frame, regardless of AVD config or Qt setting.
|
|
NoDeviceFrame = off
|
|
|
|
# VirtioGpuNativeSync----------------------------------------------------------
|
|
# Use virtio-gpu instead of goldfish sync for syncfd support.
|
|
# TODO: test with goldfish
|
|
VirtioGpuNativeSync = off
|
|
|
|
# VirtioWifi--------------------------------------------------------------------
|
|
# if enabled, emulator will add ro.kernel.qemu.virtiowifi to the kernel command line
|
|
# to tell the geust that VirtioWifi kernel driver will be used instead of mac80211_hwsim.
|
|
VirtioWifi = on
|
|
|
|
# VulkanShaderFloat16Int8-------------------------------------------------------
|
|
# Enables struct defs for VK_KHR_shader_float16_int8.
|
|
VulkanShaderFloat16Int8 = on
|
|
|
|
# CarRotary--------------------------------------------------------------
|
|
# if enabled, Car rotary controller will be visible in extended window on Automotive AVDs.
|
|
CarRotary = on
|
|
|
|
# ModemSimulator--------------------------------------------------------------
|
|
# turn on the modem simulator, instead of the legacy modem
|
|
ModemSimulator = on
|
|
|
|
# TvRemote
|
|
# When enabled, the dpad is replaced with a remote specific to Android TV devices.
|
|
TvRemote = on
|
|
|
|
# GuestUsesAngle--------------------------------------------------------------
|
|
# Whether or not the guest is using ANGLE as its OpenGL driver.
|
|
GuestUsesAngle = off
|
|
|
|
# VirtioVsockPipe--------------------------------------------------------------
|
|
# The virtio-vsock device is a drop-in replacement for the goldfish_pipe device.
|
|
VirtioVsockPipe = on
|
|
|
|
# VirtioMouse------------------------------------------------------------------
|
|
# If enabled, the emulator will create mouse input events for guests, otherwise
|
|
# it creates multi-touch events.
|
|
VirtioMouse = off
|
|
|
|
# VirtconsoleLogcat-------------------------------------------------------------
|
|
# If enabled, it replaces LogcatPipe with the forhvc1 chardev consifured to
|
|
# stdio or to a file.
|
|
VirtconsoleLogcat = on
|
|
|
|
# VulkanQueueSubmitWithCommands-------------------------------------------------
|
|
# Use deferred command submission and global sequence number synchronization with Vulkan.
|
|
VulkanQueueSubmitWithCommands = on
|
|
|
|
# VulkanBatchedDescriptorSetUpdate----------------------------------------------
|
|
# Use batched descriptor set updates.
|
|
VulkanBatchedDescriptorSetUpdate = on
|
|
|
|
# Minigbm---------------------------------------------------------------
|
|
# Minigbm is a guest side feature which use the minigbm for gralloc. It asks the host
|
|
# camera to legacy operation
|
|
Minigbm = on
|
|
# GnssGrpcV1-------------------------------------------------
|
|
# Use grpc based gnss implementation
|
|
GnssGrpcV1 = on
|
|
|
|
# AndroidbootProps--------------------------------------------------------------
|
|
# AndroidbootProps2-------------------------------------------------------------
|
|
# If enabled, the boot userspace properties (e.g. `qemu=1` or
|
|
# `qemu.opengles.version=123456`) are passed in the ramdisk instead of
|
|
# the kernel command line (which is deprecated for these purposes).
|
|
# AndroidbootProps2 does not populate `qemu` and `androidboot.hardware` on the
|
|
# host side since they are constants.
|
|
AndroidbootProps = on
|
|
AndroidbootProps2 = on
|
|
|
|
# DeviceSkinOverlay-------------------------------------------------------------
|
|
# Apply overlay for each enabled devices (pixel devices)
|
|
DeviceSkinOverlay = on
|
|
AndroidbootProps = off
|
|
|
|
# BluetoothEmulation-------------------------------------------------------------
|
|
# If enabled, it will enable the bluetooth emulation stack.
|
|
BluetoothEmulation = off
|