# 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 support
name        = hw.touchScreen
type        = boolean
default     = yes
abstract    = Touch-screen support
description = Whether there is a touch screen or not on the device.

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

# Camera support
name        = hw.camera
type        = boolean
default     = yes
abstract    = Camera support
description = Whether the device has a camera.

name        = hw.camera.maxHorizontalPixels
type        = integer
default     = 640
abstract    = Maximum horizontal camera pixels

name        = hw.camera.maxVerticalPixels
type        = integer
default     = 480
abstract    = Maximum vertical camera pixels

# 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
default     = 16
abstract    = LCD color depth
description = Must be 16 or 32. Color bit depth of emulated framebuffer.

# LCD density
name        = hw.lcd.density
type        = integer
default     = 160
abstract    = Abstracted LCD density
description = Must be one of 120 / 160 / 240 / 213/ 320. 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

# Fake camera support
#
name        = hw.fakeCamera
type        = string
default     = back
abstract    = Fake camera control
description = Must be 'back', if fake camera is facing back, 'front', if fake camera is facing front, or 'off' if fake camera is disabled.

# Number of emulated web cameras
#
name        = hw.webcam.count
type        = integer
default     = 6
abstract    = Number of emulated web cameras
description = Defines number of web cameras to emulate. 0 disables webcam emulation.

# Defines name of the emulated webcam with index 0
#
name        = hw.webcam.0.name
type        = string
default     = webcam0
abstract    = Name of the 1-st emulated web camera
description = Emulator-generated platform-independent name identifying a camera in the list of enumerated web cameras.

# Defines name of the emulated webcam with index 1
#
name        = hw.webcam.1.name
type        = string
default     = webcam1
abstract    = Name of the 2-nd emulated web camera
description = Emulator-generated platform-independent camera name.

# Defines name of the emulated webcam with index 2
#
name        = hw.webcam.2.name
type        = string
default     = webcam2
abstract    = Name of the 3-rd emulated web camera
description = Emulator-generated platform-independent camera name.

# Defines name of the emulated webcam with index 3
#
name        = hw.webcam.3.name
type        = string
default     = webcam3
abstract    = Name of the 4-th emulated web camera
description = Emulator-generated platform-independent camera name.

# Defines name of the emulated webcam with index 4
#
name        = hw.webcam.4.name
type        = string
default     = webcam4
abstract    = Name of the 5-th emulated web camera
description = Emulator-generated platform-independent camera name.

# Defines name of the emulated webcam with index 5
#
name        = hw.webcam.5.name
type        = string
default     = webcam5
abstract    = Name of the 6-th emulated web camera
description = Emulator-generated platform-independent camera name.

# Defines direction of the emulated webcam with index 0
#
name        = hw.webcam.0.direction
type        = string
default     = front
abstract    = 1-st emulated web camera direction
description = Direction of the 1-st emulated web camera

# Defines direction of the emulated webcam with index 1
# Note that first two cameras must face in opposite directions in order to enable
# camera switch in the camera application.
#
name        = hw.webcam.1.direction
type        = string
default     = back
abstract    = 2-nd emulated web camera direction
description = Direction of the 2-nd emulated web camera

# Defines direction of the emulated webcam with index 2
#
name        = hw.webcam.2.direction
type        = string
default     = front
abstract    = 3-rd emulated web camera direction
description = Direction of the 3-rd emulated web camera

# Defines direction of the emulated webcam with index 3
#
name        = hw.webcam.3.direction
type        = string
default     = front
abstract    = 4-th emulated web camera direction
description = Direction of the 4-th emulated web camera

# Defines direction of the emulated webcam with index 4
#
name        = hw.webcam.4.direction
type        = string
default     = front
abstract    = 5-th emulated web camera direction
description = Direction of the 5-th emulated web camera

# Defines direction of the emulated webcam with index 5
#
name        = hw.webcam.5.direction
type        = string
default     = front
abstract    = 6-th emulated web camera direction
description = Direction of the 6-th emulated web camera

# 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 senosr 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 temperatore sensor values.

# 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
