# This file describes the properties of a given virtual device configuration file.
#
# Note: Most top-level properties are boolean that control whether a feature is
#       present or not. Sub-features that depend on it are ignored if their
#       parent is set to 'false' or 'no'
#
# This file is parsed by 'android/scripts/gen-hw-config.py' to generate
# 'android/avd/hw-config-defs.h'. The latter is a special header containing
# macro statements that is used several times:
#
#  - once to define the fields of the AndroidHwConfig structure
#    (see android/avd/hw-config.h)
#
#  - once to implement the hardware configuration loader
#    (see android/avd/hw-config.h)
#
# It is also packaged by the SDK and parsed by tools to let the developers
# create AVDs.
#
# NOTE: if you remove items from this file, be sure that you do not break
#       the emulator build.
#

# CPU Architecture
name        = hw.cpu.arch
type        = string
default     = arm
abstract    = CPU Architecture
description = The CPU Architecture to emulator

# CPU Model
# Leave it empty, and the default value will be computed from
# hw.cpu.arch. This is only useful for experimentation for now.
name        = hw.cpu.model
type        = string
default     =
abstract    = CPU model
description = The CPU model (QEMU-specific string)

# SMP count: Number of processors to emulate when SMP is supported.
# Must be > 0.
name        = hw.cpu.ncore
type        = integer
default     = 2
abstract    = SMP CPU core count
description = Number of cores in a simulated SMP CPU.

# Ram size
# Default value will be computed based on screen pixels
# or skin version
name        = hw.ramSize
type        = integer
default     = 0
abstract    = Device ram size
description = The amount of physical RAM on the device, in megabytes.

# Touch screen type
name        = hw.screen
type        = string
enum        = touch, multi-touch, no-touch
default     = multi-touch
abstract    = Touch screen type
description = Defines type of the screen.

# Hardware main keys (back/home)
name        = hw.mainKeys
type        = boolean
default     = yes
abstract    = Hardware Back/Home keys
description = Whether there are hardware back/home keys on the device.

# Trackball support
name        = hw.trackBall
type        = boolean
default     = yes
abstract    = Track-ball support
description = Whether there is a trackball on the device.

# Keyboard support (qwerty/azerty)
name        = hw.keyboard
type        = boolean
default     = no
abstract    = Keyboard support
description = Whether the device has a QWERTY keyboard.

# Keyboard lid support
# (I.e. can the qwerty keyboard be closed/hidden or opened/visible)
# this will be ignored if hw.keyboard is false
#
# NOTE: As a special case, the default value will be 'false' if the
#       AVD targets API level 12 or higher. See hwConfig_init()
#       in external/qemu/android/avd/hw-config.c for more details.
#
name        = hw.keyboard.lid
type        = boolean
default     = yes
abstract    = Keyboard lid support
description = Whether the QWERTY keyboard can be opened/closed.

# The name of the hardware charmap for this device.
#
# NOTE: This should always be the default 'qwerty2' unless you have
#        modified the system image accordingly. This name is sent to
#        the kernel at boot time. Using an incorrect name will result
#        in an unusable machine.
name        = hw.keyboard.charmap
type        = string
default     = qwerty2
abstract    = Keyboard charmap name
description = Name of the system keyboard charmap file.

# DPad keys
name        = hw.dPad
type        = boolean
default     = yes
abstract    = DPad support
description = Whether the device has DPad keys

# Rotary input
name        = hw.rotaryInput
type        = boolean
default     = no
abstract    = Rotary input support
description = Whether the device has rotary input

# GSM Modem support
name        = hw.gsmModem
type        = boolean
default     = yes
abstract    = GSM modem support
description = Whether there is a GSM modem in the device.

# GPS support
name        = hw.gps
type        = boolean
default     = yes
abstract    = GPS support
description = Whether there is a GPS in the device.

# Battery
name        = hw.battery
type        = boolean
default     = yes
abstract    = Battery support
description = Whether the device can run on a battery.

# Accelerometer (used for auto-rotation)
name        = hw.accelerometer
type        = boolean
default     = yes
abstract    = Accelerometer
description = Whether there is an accelerometer in the device.

# Gyroscope (used for VR)
name        = hw.gyroscope
type        = boolean
default     = yes
abstract    = Gyroscope
description = Whether there is a gyroscope in the device.

# Audio input
name        = hw.audioInput
type        = boolean
default     = yes
abstract    = Audio recording support
description = Whether the device can record audio

# Audio output
name        = hw.audioOutput
type        = boolean
default     = yes
abstract    = Audio playback support
description = Whether the device can play audio

# SDCard support
name        = hw.sdCard
type        = boolean
default     = yes
abstract    = SD Card support
description = Whether the device supports insertion/removal of virtual SD Cards.

name        = hw.sdCard.path
type        = string
default     =
abstract    = SD Card image path

name        = hw.logcatOutput.path
type        = string
default     =
abstract    = Logcat Output File Path

# Cache partition
name        = disk.cachePartition
type        = boolean
default     = yes
abstract    = Cache partition support
description = Whether we use a /cache partition on the device.

name        = disk.cachePartition.path
type        = string
default     =
abstract    = Cache partition
description = Cache partition to use on the device. Ignored if disk.cachePartition is not 'yes'.

name        = disk.cachePartition.size
type        = diskSize
abstract    = Cache partition size
default     = 66MB

name        = test.quitAfterBootTimeOut
type        = integer
default     = -1
abstract    = Quit emulator after guest boots completely, or after time out. Default: end of universe.

# LCD width
name        = hw.lcd.width
type        = integer
default     = 320
abstract    = LCD pixel width

name        = hw.lcd.height
type        = integer
default     = 640
abstract    = LCD pixel height

name        = hw.lcd.depth
type        = integer
enum        = 16, 32
default     = 16
abstract    = LCD color depth
description = Color bit depth of emulated framebuffer.

# LCD density
name        = hw.lcd.density
type        = integer
enum        = 120, 160, 240, 213, 320
default     = 160
abstract    = Abstracted LCD density
description = A value used to roughly describe the density of the LCD screen for automatic resource/asset selection.

# LCD backlight - Enable/Disable LCD backlight simulation
# default = no  : Disabled
# default = yes : Enabled
name        = hw.lcd.backlight
type        = boolean
default     = yes
abstract    = LCD backlight
description = Enable/Disable LCD backlight simulation,yes-enabled,no-disabled.

# Hardware OpenGLES emulation support
#
name        = hw.gpu.enabled
type        = boolean
default     = no
abstract    = GPU emulation
description = Enable/Disable emulated OpenGLES GPU

name        = hw.gpu.mode
type        = string
default     = auto
enum        = auto, host, mesa
abstract    = GPU emulation mode
description = This value determines how GPU emulation is implemented.

# Deactivated due to issues with blacklist=no leaked to production
# name        = hw.gpu.blacklisted
# type        = string
# default     = no
# enum        = no, yes
# abstract    = GPU on-blacklist mode
# description = This value determines if the GPU is considered blacklisted. Testing purposes only.

# Configures the initial orientation: portrait or landscape
#
name        = hw.initialOrientation
type        = string
enum        = portrait, landscape
default     = portrait
abstract    = Initial screen orientation
description = Setup initial screen orientation, can be rotated later on.

# Configures camera facing back
#
name        = hw.camera.back
type        = string
enum        = emulated, none, webcam0, ...
default     = emulated
abstract    = Configures camera facing back
description = Must be 'emulated' for a fake camera, 'webcam<N>' for a web camera, or 'none' if back camera is disabled.

# Configures camera facing front
#
name        = hw.camera.front
type        = string
enum        = emulated, none, webcam0, ...
default     = none
abstract    = Configures camera facing front
description = Must be 'emulated' for a fake camera, 'webcam<N>' for a web camera, or 'none' if front camera is disabled.

# Maximum VM heap size
# Higher values are required for high-dpi devices
# Default will depend on RAM size.
name        = vm.heapSize
type        = integer
default     = 0
abstract    = Max VM application heap size
description = The maximum heap size a Dalvik application might allocate before being killed by the system. Value is in megabytes.

# Light sensor
name        = hw.sensors.light
type        = boolean
default     = yes
abstract    = Light support
description = Whether there is a light sensor in the device

# Pressure sensor
name        = hw.sensors.pressure
type        = boolean
default     = yes
abstract    = Pressure support
description = Whether there is a pressure sensor in the device

# Humidity sensor
name        = hw.sensors.humidity
type        = boolean
default     = yes
abstract    = Humidity support
description = Whether there is a relative humidity sensor in the device

# Proximity sensor
name        = hw.sensors.proximity
type        = boolean
default     = yes
abstract    = Proximity support
description = Whether there is an proximity in the device.

# Magnetic field sensor
name        = hw.sensors.magnetic_field
type        = boolean
default     = yes
abstract    = Magnetic field support
description = Provides magnetic field sensor values.

# Uncalibrated magnetometer (used for VR)
name        = hw.sensors.magnetic_field_uncalibrated
type        = boolean
default     = yes
abstract    = Uncalibrated magnetic field suport
description = Provides uncalibrated magnetic field sensor values.

# Uncalibrated gyroscope
name        = hw.sensors.gyroscope_uncalibrated
type        = boolean
default     = yes
abstract    = Uncalibrated gyroscope support
description = Provides uncalibrated gyroscope sensor values.

# Orientation sensor
name        = hw.sensors.orientation
type        = boolean
default     = yes
abstract    = Orientation support
description = Provides orientation sensor values.

# Temperature sensor
name        = hw.sensors.temperature
type        = boolean
default     = yes
abstract    = Temperature support
description = Provides temperature sensor values.

# File system
name        = hw.useext4
type        = boolean
default     = yes
abstract    = Deprecated option. Ignored.
description = Used to specify the Ext4 partition image type. This is now autodetected.

# Chrome OS devices
name        = hw.arc
type        = boolean
default     = no
abstract    = Chrome OS device (App Runtime for Chrome)
description = The emulated device is a Chrome OS machine.

# Autologin for Chrome OS devices
name        = hw.arc.autologin
type        = boolean
default     = no
abstract    = Auto login for Chrome OS devices
description = Used to enable auto login into Chrome OS devices

# Kernel image.
#
# kernel.path        specified the path to the kernel image
# kernel.parameters  specifies the string of kernel boot parameters.
#
name        = kernel.path
type        = string
default     =
abstract    = Path to the kernel image
description = Path to the kernel image.

name        = kernel.parameters
type        = string
default     =
abstract    = kernel boot parameters string.

name        = kernel.newDeviceNaming
type        = string
enum        = autodetect, yes, no
default     = autodetect
abstract    = Does the kernel require a new device naming scheme?
description = Used to specify whether the kernel requires a new device naming scheme. Typically for Linux 3.10 and above.

name        = kernel.supportsYaffs2
type        = string
enum        = autodetect, yes, no
default     = autodetect
abstract    = Does the kernel supports YAFFS2 partitions?
description = Used to specify whether the kernel supports YAFFS2 partition images. Typically before 3.10 only.

# Path to the ramdisk image.
name        = disk.ramdisk.path
type        = string
default     =
abstract    = Path to the ramdisk image
description = Path to the ramdisk image.

# System partition image(s).
#
# disk.systemPartition.path points to the read/write system partition image.
#   if empty, a temporary file will be created, initialized with the content
#   of .initPath
#
# disk.systemPartition.initPath is only used when .path is empty. It must
# then point to a read-only initialization system image file.
#
# disk.systemPartition.size is the ideal size of the system partition. The
# size is ignored if the actual system partition image is larger. Otherwise,
# it indicates the maximum size the disk image file can grow to.
#
name        = disk.systemPartition.path
type        = string
default     =
abstract    = Path to runtime system partition image

name        = disk.systemPartition.initPath
type        = string
default     =
abstract    = Initial system partition image

name        = disk.systemPartition.size
type        = diskSize
default     = 0
abstract    = Ideal size of system partition

# Vendor partition image(s).

name        = disk.vendorPartition.path
type        = string
default     =
abstract    = Path to runtime vendor partition image

name        = disk.vendorPartition.initPath
type        = string
default     =
abstract    = Initial vendor partition image

name        = disk.vendorPartition.size
type        = diskSize
default     = 0
abstract    = Ideal size of vendor partition

# Path to the data partition.
name        = disk.dataPartition.path
type        = string
default     = <temp>
abstract    = Path to data partition file
description = Path to data partition file. Cannot be empty. Special value <temp> means using a temporary file. If disk.dataPartition.initPath is not empty, its content will be copied to the disk.dataPartition.path file at boot-time.

# Initial path to the data partition.
name        = disk.dataPartition.initPath
type        = string
default     =
abstract    = Initial data partition
description = If not empty, its content will be copied to the disk.dataPartition.path file at boot-time.

# Data partition size.
name        = disk.dataPartition.size
type        = diskSize
default     = 0
abstract    = Ideal size of data partition

# Path to the data partition.
name        = disk.encryptionKeyPartition.path
type        = string
default     =
abstract    = Path to encryption key partition file
description = Path to encryption key partition file. Should be at least 16K bytes empty disk without any filesystem on it.

# Path to the snapshots storage file.
name        = disk.snapStorage.path
type        = string
default     =
abstract    = Path to snapshot storage
description = Path to a 'snapshot storage' file, where all snapshots are stored.

# Is the AVD compatible with Google Play?
name        = PlayStore.enabled
type        = boolean
default     = no
abstract    = PlayStore
description = Does the device supports Google Play?

# Android AVD name
# This is set automatically before launching a core.
#
name        = avd.name
type        = string
default     = <build>
abstract    = Name of the AVD being run

# Force cold boot
# Don't use snapshots for quick booting but boot from scratch instead
#
name        = fastboot.forceColdBoot
type        = boolean
default     = no
abstract    = Always use cold boot
description = If set, AVD will always use the full cold boot instead of snapshot-based quick boot process
