# 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/tools/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)

# 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     = 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

# 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.

# 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

# 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

# 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

# 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.

# 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.

# 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.

# 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.

# 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

# 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 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.

# 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
