Home | History | Annotate | Download | only in qemu
      1 Android Emulator changes:
      2 =========================
      3 
      4 Versions:
      5 
      6    1.0 => SDK M3 release
      7    1.1 => SDK M5 release
      8    1.2 => Internal release (build 72264)
      9    1.3 => Internal release (build 77780)
     10    1.4 => Internal release (build 84853)
     11    1.5 => SDK 0.9_r1
     12    1.6 => SDK 1.0_r1
     13    1.7 => SDK 1.0_r2
     14    1.8 => SDK 1.1
     15    1.9 => SDK 1.5_r1 (and SDK 1.5_r2)
     16    1.10 => SDK 1.5_r3
     17    1.11 => SDK 1.6_r1
     18    1.12 => SDK 2.0
     19    1.13 => SDK 2.0.1 (but wrongly tagged 1.12)
     20 
     21    Starting from here, the emulator version number will match
     22    the corresponding SDK Tools release level, i.e.:
     23 
     24    5.0  => SDK Tools release 5
     25    6.0  => SDK Tools release 6
     26    7.0  => SDK Tools release 7
     27    etc...
     28 
     29 ==============================================================================
     30 Changes between 7.0 and 6.0
     31 
     32 IMPORTANT CHANGES:
     33 
     34 OTHER:
     35 
     36 - Removed audio stack SDL dependency.
     37 
     38 - Add a '-shared-net-id' option which allows emulators to join a shared network.
     39   This allows testing situations where emulators need to communicate directly
     40   with each other. See '-help-shared-net-id' for more details.
     41 
     42 - Fix net shaping regression: -netspeed and -netdelay did not work anymore.
     43 
     44 ==============================================================================
     45 Changes between 6.0 and 5.0
     46 
     47 IMPORTANT CHANGES:
     48 
     49 - Add a '-memcheck' option to instrument memory reads/writes at runtime in
     50   order to detect buffer under/overflows. This requires a new version of the
     51   C library that is only available in Froyo and above.
     52 
     53 - Fix '-http-proxy' on Win32. This was actually a regression introduced
     54   with the Donut SDK.
     55 
     56 OTHER:
     57 
     58 - Add a '--static' option to both android-configure.sh and android-rebuild.sh
     59   in order to build a completely static executable. This is required to run
     60   the emulator in restricted environments. No audio and graphics in this mode
     61   so using '-no-window' is required.
     62 
     63 ==============================================================================
     64 Changes between 5.0 and 1.13
     65 
     66 IMPORTANT CHANGES:
     67 
     68 - Starting from this release, the emulator's version number will match the
     69   corresponding Android SDK Tools package revision number. The exact number
     70   is extracted at build time from the Android source tree.
     71 
     72   The minor number will now be stuck to 0 since each official emulator
     73   release is supposed to match a corresponding SDK Tools release.
     74 
     75 
     76 OTHER:
     77 
     78 - Fixed a bug that crashed the emulator when the SD Card image size was exactly
     79   8 MB. Now, the minimum supported size is 9 MB, and the emulator will complain
     80   with a human-friendly message if this is not the case, and ignore the SD Card
     81   file.
     82 
     83 ==============================================================================
     84 Changes between 1.13 and 1.12
     85 
     86 IMPORTANT BUG FIXES:
     87 
     88 - Fix D-Pad rotation issues in the skins. The problem being that switching
     89   the emulator window to landscape mode resulted in incorrectly rotated
     90   D-Pad events. The fix allows for a new 'dpad-rotation' field for each
     91   layout.
     92 
     93 - Fixed a bug in Thumb2 emulation (not used by typical SDK images yet though)
     94   that resulted incorrect behaviour / crashes, especially in single-stepping
     95   mode.
     96 
     97 ==============================================================================
     98 Changes between 1.12 and 1.11
     99 
    100 IMPORTANT BUG FIXES:
    101 
    102 - Fixed a nasty race condition in the Linux EsounD audio backend which resulted
    103   in rare lockups when stopping the emulator on this platform.
    104 
    105 - The key-bindings for the Menu button (F2 and PageUp by default) didn't work
    106   due to a typo.
    107 
    108 OTHER:
    109 
    110 - Sources have been refreshed by a large integration of upstream QEMU
    111   sources (version 0.10.50). The integration is based on the following commit,
    112   dated 2009-06-19:
    113 
    114          d2e9fd8f703203c2eeeed120b1ef6c3a6574e0ab
    115 
    116 ==============================================================================
    117 Changes between 1.11 and 1.10
    118 
    119 IMPORTANT BUG FIXES:
    120 
    121 - Fixed ANDROID_SDK_HOME being ignored on Unix (not Windows). This environment
    122   variable is used to locate a user's configuration files for the SDK, with a
    123   default value of ~/.android
    124 
    125 OTHER:
    126 
    127 - Add "KEY_XXX" name alias for EV_KEY codes. This means that the console
    128   command "event codes EV_KEY" will now return KEY_XXX code names (in addition
    129   to BTN_YYY ones), and that you can use "event send EV_KEY:KEY_SOFT1:1"
    130   instead of "event send EV_KEY:229:1" to simulate the press of the Menu
    131   button.
    132 
    133   The KEY_XXX values are defined by Linux. The following Android-specific
    134   mappings apply:
    135 
    136      KEY_HOME   => Home key
    137      KEY_BACK   => Back key
    138      KEY_SEND   => Call key (e.g. Green Phone)
    139      KEY_END    => EndCall key (e.g. Red Phone)
    140      KEY_SOFT1  => Menu key
    141 
    142      KEY_VOLUME_UP
    143      KEY_VOLUME_DOWN
    144 
    145      KEY_SEARCH => Search key (if any)
    146      KEY_POWER  => Power button
    147      KEY_CAMERA => Camera button
    148 
    149      KEY_DOWN / UP / LEFT / RIGHT => DPad keys
    150      KEY_CENTER                   => DPad / trackball click
    151 
    152   Beware: KEY_MENU does *not* correspond to the "Menu" key of most Android
    153           devices.
    154 
    155 ==============================================================================
    156 Changes between 1.10 and 1.9
    157 
    158 IMPORTANT BUG FIXES:
    159 
    160 - Fixed sock_address_init_resolve() in sockets.c to work properly on
    161   IPv6 capable systems, when the list returned by getaddrinfo() doesn't
    162   necessarily reflect the simplistic heuristics that were used by the
    163   previous implementation. On such systems, inter-emulator telephony
    164   and SMS didn't work properly, as well as certain other network-related
    165   tasks.
    166 
    167 IMPORTANT CHANGES:
    168 
    169 - Skins can now provide a button for the "SEARCH" scan-code, simply using
    170   the "search" label for it.
    171 
    172 - A new option '-prop <name>=<value>' can be used to set a system property
    173   at boot time in the emulated system. This only works for system images
    174   starting at 1.5_r3, and will be ignored for older ones.
    175 
    176   Note that properties starting with "ro." can only be set once. Moreover,
    177   all system properties in the system build.prop or local.prop are parsed
    178   by init before anything else. Any "ro." property in them cannot be
    179   changed with this option.
    180 
    181 - Allow the HTTP proxy implementation to receive chunked encoding data.
    182   This shall solve problems when talking to Microsoft proxies.
    183 
    184 OTHER:
    185 
    186 - Allow the SEARCH key-binding (F5) to work on keyboard-less hardware
    187   configurations (AVDs).
    188 
    189 - Fixed a typo which prevented the kernel gdbstub from working properly
    190 
    191 - Fixed bad QADD/QDADD/QSUB/QDSUB emulation in the ARM JIT.
    192 
    193 - Fixed one minor crash when the Linux OSS audio backend was used with the
    194   -debug-audio option.
    195 
    196 - Fixed emulator tracing bug (basic block address could be wrong). And add
    197   support for recording native (JNI) calls when profiling.
    198 
    199 - Fixed build for platforms where deprecated symbol EAI_NODATA is not
    200   defined.
    201 
    202 - Fix GPS emulation to allow several clients concurrently. There are still
    203   problems that may be due to changes in the system's framework.
    204 
    205 - Added some technical documentation in the docs/ directory.
    206 
    207 ==============================================================================
    208 Changes between 1.9 and 1.8
    209 
    210 IMPORTANT CHANGES:
    211 
    212 - Many features have been integrated from upstream QEMU sources, including
    213   the new TCG code generator used by the ARM translator. This should result
    214   in slightly faster execution speed on all supported platforms. Another
    215   benefit is that you no longer require a specific (and obsolete) version
    216   of GCC to build the emulator.
    217 
    218 - The emulator now requires that you specify a virtual device name when
    219   starting the emulator, prefixed with the '@' sign. For example, to start
    220   the 'foo' virtual device, type:
    221 
    222       emulator @foo
    223 
    224   Each AVD (Android Virtual Device) corresponds to a directory used to store
    225   mutable disk images, an optional system image/kernel/sdcard, plus some
    226   configuration file(s).
    227 
    228   The command-line tool 'android' that comes with the SDK can be used to
    229   create/list/remove virtual devices on your system.
    230 
    231   Note that the '@<name>' form is a convenience shortcut for '-avd <name>'.
    232   It is thus possible to place options after the AVD name on your command
    233   line, as in:
    234 
    235       emulator @foo -verbose -shell
    236 
    237   Finally, when building the Android platform source tree, an AVD name is not
    238   required and 'emulator' will start a new emulator instance exactly as
    239   previously.
    240 
    241 - A new option '-sysdir <dir>' has been introduced, the interpretation of
    242   the '-system' option has changed, and '-image <file>' should now be
    243   considered obsolete. In more details:
    244 
    245   * you should now use '-sysdir <dir>' instead of '-system <dir>' to specify
    246     the directory where system images will be searched by the emulator
    247     on startup.
    248 
    249   * you should now use '-system <file>' to indicate which system.img partition
    250     image to use at startup.
    251 
    252   * you should not use '-system <dir>' or '-image <path>' anymore. However,
    253     these options are still supported but will print a warning to remind you
    254     to change your scripts/habits.
    255 
    256   The change was done to reduce confusion as to what these options provide.
    257 
    258 - Options '-noaudio', '-nojni', '-noskin' and 'nocache' are deprecated.
    259   You should use '-no-audio', '-no-jni', '-no-skin' and '-no-cache' instead.
    260 
    261 - Option 'initdata' is deprecated, you should use '-init-data' instead.
    262 
    263 - Hardware emulation is now limited to the corresponding Android Virtual
    264   Device's configuration. This means it is now possible to not emulate
    265   a touch-screen, trackball, dpad, keyboard, modem, etc...
    266 
    267   Note that in the case of the Android build system, all hardware properties
    268   are enabled by default, so this only affects "normal" virtual devices
    269   created with the 'android' tool.
    270 
    271 - The emulator now supports capturing network packets to a file.
    272   You can either use the new -tcpdump <file> command-line option, or use
    273   the new console 'network capture start <file>' command (then use
    274   'network capture stop' to stop it).
    275 
    276   This captures all ethernet packets on the virtual LAN, so this includes
    277   ARP, UDP, TCP, etc... The file is in libpcap format and can be opened with
    278   external tools like WireShark for analysis.
    279 
    280 OTHER:
    281 
    282 - The file in ~/.android/default.keyset was ignored, unless you used
    283   '-keyset default' explicitely. It is now loaded automatically when
    284   available.
    285 
    286 - Environment variable ANDROID_SDK_ROOT can be used to specifiy the location
    287   of the SDK installation path.
    288 
    289 - Environment variable ANDROID_SDK_HOME can be used to specify the location
    290   of the '.android' data directory (which defaults to your $HOME).
    291 
    292 - A new console command 'avd name' can be used to query the name of the
    293   virtual device running in the emulator. Note that it will be '<build>'
    294   if you run from the Android build system.
    295 
    296   Also, the emulator's window title also displays the AVD name now.
    297 
    298 - The option '-memory <size>' has been added. <memory> must be an integer
    299   specifying the amount of physical RAM in the emulated device in megabytes.
    300   The default value is 96.
    301 
    302 - The '-skindir <path>' option now requires that you specify a '-skin <name>'
    303   option as well.
    304 
    305 - Better handling of Audio on Linux for the EsounD and Alsa backends
    306 
    307 - Fullscreen toggle should now work on Windows and OS X. On Linux, the
    308   toggle will not switch the display resolution anymore (which resulted
    309   in distorted images).
    310 
    311 - Using '-no-audio' no longer disables sound hardware emulation. It simply
    312   mutes the emulator program on the host.
    313 
    314 - The window title bar changes when you toggle persistent trackball mode
    315   (F6 by default). It will display something like the following:
    316 
    317     "Press F6 to exit trackball mode ..."
    318 
    319   The actual text depends on your key binding configuration. This is to help
    320   people toggle the mode by accident.
    321 
    322 ==============================================================================
    323 Changes between 1.7 and 1.6
    324 
    325 IMPORTANT BUG FIXES:
    326 
    327 - Properly create ~/.android directory when needed.
    328 
    329 - Do not leave temporary files in Android app-specific directory on Win32
    330 
    331 - Support for HTTP/HTTPS proxies has been considerably improved and should now
    332   "just work" with a lot more HTTP proxies. In case of problem, use the
    333   -debug-proxy option to dump debugging data to stderr.
    334 
    335 OTHER:
    336 
    337 - Trackball emulation has changed. First, the awkward "Control-T" keybinding
    338   is gone. Instead, you can now:
    339 
    340      - press 'Delete' to show the trackball and have it disappear as soon
    341        as your release the key.
    342 
    343      - press 'F6' to perform a persistent trackball mode toggle.
    344 
    345   Also, trackball emulation is fixed in rotated/landscape mode now.
    346 
    347 - New option '-nand-limits <limits>' allows you to send a signal to a remote
    348   process when a read or write threshold on flash storage is reached. This is
    349   only useful for hardcore Android system hackers.
    350 
    351 - Fix emulator build on recent Cygwin releases (the -mno-cygwin headers do not
    352   tolerate the _GNU_SOURCE macro definition anymore)
    353 
    354 - Fix Win32 emulator to support SD Card images larger than 2 GiB
    355 
    356 - The non-Android build system has been completely rewritten to allow building
    357   the emulator on Linux x86_64. Also, there is now a single Makefile that
    358   drives the build in both Android and non-Android modes.
    359 
    360 - '-qemu <other-options>' works again
    361 
    362 ==============================================================================
    363 Changes between 1.6 and 1.5
    364 
    365 IMPORTANT CHANGES:
    366 
    367 - Emulator now saves the user image in <android>/SDK1.0/
    368 
    369 OTHER:
    370 
    371 - Get rid of EsounD-related freezes on Linux (again)
    372 
    373 - Fix the documentation in -help-audio. '-audio list' doesn't work, one
    374   needs to call -help-audio-out and -help-audio-in to get the list of valid
    375   audio backends
    376 
    377 - Fix scrollwheel Dpad emulation in rotated mode. before that, using the
    378   scroll-wheel would always generated Dpad Up/Down events, even when in
    379   landscape mode.
    380 
    381 - Re-enable CPU fault emulation in case of unaligned data access. this was
    382   previously disabled because it crashed the emulated kernel in previous
    383   releases.
    384 
    385 - The emulator no longer prints an obscure warning when it doesn't find
    386   the emulator.cfg configuration file in ~/.android.
    387 
    388   'broken configuration file doesn't have a 'window' element'
    389 
    390 - Removed a bunch of obsolete options (e.g. -console, -adb-port, etc...)
    391 
    392 - Setting the network speed through the console or the -netspeed option will
    393   properly modify the connectivity icon on the device.
    394 
    395 - Setting the GSM voice registration state to 'roaming' in the console will
    396   properly modify the voice icon on the device
    397 
    398 ==============================================================================
    399 Changes between 1.5 and 1.4
    400 
    401 IMPORTANT BUG FIXES:
    402 
    403 - Fix spurious discards of SMS messages when using two emulators.
    404 
    405 OTHER:
    406 
    407 - Get rid of EsounD-related freezes on Linux (again)
    408 
    409 - Fix the documentation in -help-audio. '-audio list' doesn't work; one
    410   needs to call -help-audio-out and -help-audio-in to get the list of valid
    411   audio backends
    412 
    413 - Fix scrollwheel Dpad emulation in rotated mode. before that, using the
    414   scroll-wheel would always generated Dpad Up/Down events, even when in
    415   landscape mode.
    416 
    417 - Re-enable CPU fault emulation in case of unaligned data access. This was
    418   previously disabled because it crashed the emulated kernel in previous
    419   releases.
    420 
    421 ==============================================================================
    422 Changes between 1.4 and 1.3
    423 
    424 IMPORTANT BUG FIXES:
    425 
    426 - fix for audio-related Linux startup freezes when using the 'esd' and 'alsa'
    427   backends
    428 
    429 - the number of audio buffers in the Windows backend has been incremented.
    430   this gets rid of audio chopiness issues on Vista (and sometimes on XP too)
    431 
    432 NEW FEATURES:
    433 
    434 NEW CONSOLE COMMANDS:
    435 
    436 - new 'geo fix <lontitude> <latitude> [<altitude>]' command allows you to
    437   send a simple GPS fix to the emulated system, without the headaches of
    438   NMEA 1083 formatting.
    439 
    440 OTHER BUG FIXES:
    441 
    442 - fixed the -audio, -audio-in and -audio-out options (the <backend> values
    443   were sometimes ignored)
    444 
    445 REGRESSIONS:
    446 
    447 OTHER:
    448 
    449 - the transitional '-qemud' option introduced in 1.3 is now gone. its
    450   behaviour is now the default.
    451 
    452 - use the new '-old-system' option if you need to use a 1.4+ emulator binary
    453   with older system images. if you don't use it, GSM and GPS emulation will
    454   not work correctly (among other things).
    455 
    456 - the obsolete '-oldradio' option is now gone
    457 
    458 - on some Unix systems, SIGALRM is blocked by default, so unblock it when
    459   creating the alarm timer
    460 
    461 - the 'esd' and 'alsa' libraries dump a lot of error messages to the console
    462   by default on Linux. these are now disabled unless you use '-debug audio'
    463 
    464 - added the '-help-char-devices' help topic that describe the specification
    465   of the <device> parameter of options like -serial, -gps, -shell-serial,
    466   etc...
    467 
    468 KNOWN ISSUES:
    469 
    470 - no support for video input
    471 - no support for mutable SIM Card emulation yet
    472 - no support for bluetooth
    473 - no support for WiFi
    474 
    475 - on some Linux machines, the emulator might get stuck at startup. this
    476   seems to be related to audio input support. try starting with
    477   '-audio-in none' or  even '-noaudio' to disable sound, or choose a
    478   different audio backend by  defining QEMU_AUDIO_DRV to an appropriate
    479   value (read below).
    480 
    481   you can also select different audio backends for both output and input
    482   by defining QEMU_AUDIO_OUT_DRV and QEMU_AUDIO_IN_DRV independently.
    483 
    484 - on Windows, the emulator takes about 10-15% of the CPU even when the
    485   emulated system is idle. this is a known issue related to QEMU's internal
    486   event loop and Winsock. this should be fixed in a future emulator release.
    487 
    488 - GPS emulation only if you use the '-qemud' option. this is an experimental
    489   option that is soon going to be the default. without this option, the
    490   emulated system will start but GPS emulation will not work.
    491 
    492   for the record, 'qemud' is a serial port multiplexer that is used to
    493   multiplex several communication channels between the emulator and the
    494   emulated system, though a single serial port.
    495 
    496 ==============================================================================
    497 Changes between 1.3 and 1.2
    498 
    499 IMPORTANT BUG FIXES:
    500 
    501 NEW FEATURES:
    502 
    503 - '-audio-in <backend>' allows you to select the audio input backend from the
    504   command line. this is equivalent to defining QEMU_AUDIO_IN_DRV=<backend>
    505 
    506   '-audio-out <backend>' works for the audio output, and '-audio <backend>'
    507   will select both input and output at the same time
    508 
    509 - '-debug <tags>' has replaced the old '-verbose-<tag1> -verbose-<tag2> ...'
    510   debugging option. <tags> is a comma-separated list of debug tags
    511   (see -help-debug-tags for a complete list). you can also use the special
    512   value 'all' to indicate all debug tags, or prefix a '-' before a tag
    513   name to disable it. for example:
    514 
    515     -debug all,-audio
    516 
    517   enables all debugging except audio. '-debug-<tag>' still works though.
    518 
    519   note that while '-verbose-<tag>' is deprecated, '-verbose' is still supported
    520   as an alias to '-debug-init'
    521 
    522 - '-keyset <file>' allows you to specific the keyset file to use. the default
    523   is still ~/.android/default.keyset on Unix. for Windows, use -help-keyset
    524   to get its default location (which differs between XP and Vista)
    525 
    526 
    527 NEW CONSOLE COMMANDS:
    528 
    529 - the 'geo nmea <sentence>' can be used to send a NMEA 1083 sentence as if
    530   it came from an emulated GPS unit. NOTE: this doesn't work unless you
    531   also use the '-qemud' option (see KNOWN ISSUES below)
    532 
    533 OTHER BUG FIXES:
    534 
    535 - severe color artefact issues when scaling the emulator window < 1.0 were
    536   fixed.
    537 
    538 - fix rare random emulator freezes on Linux by disabling the 'dynticks' timer.
    539 
    540 REGRESSIONS:
    541 
    542 OTHER:
    543 
    544 - the ambiguous '-console' option is now obsolete. use '-shell' instead
    545 
    546 - the new '-shell-serial <device>' allows you to specify a device to
    547   connect a root shell session to the emulated system.
    548 
    549 - the '-debug-kernel' option is now known as '-show-kernel' (the -debug-
    550   prefix is reserved for strict emulator debugging features)
    551 
    552 - '-adb-port' has been removed from the list of options. similarly
    553   '-port <port>' will accept an odd port number, but will print a warning
    554   that it is using <port>-1 instead.
    555 
    556 - MMX is used on x86 to speed up window rescaling.
    557 
    558 - a new '-qemud' option is required to have GPS support work in this
    559   SDK (either through '-gps <device>' or the 'geo nmea <sentence>'
    560   console command)
    561 
    562   this option is purely experimental and will soon become the default.
    563 
    564 KNOWN ISSUES:
    565 
    566 - no support for video input
    567 - no support for mutable SIM Card emulation yet
    568 - no support for bluetooth
    569 - no support for WiFi
    570 
    571 - on some Linux machines, the emulator might get stuck at startup. this
    572   seems to be related to audio input support. try starting with
    573   '-audio-in none' or  even '-noaudio' to disable sound, or choose a
    574   different audio backend by  defining QEMU_AUDIO_DRV to an appropriate
    575   value (read below).
    576 
    577   you can also select different audio backends for both output and input
    578   by defining QEMU_AUDIO_OUT_DRV and QEMU_AUDIO_IN_DRV independently.
    579 
    580 - on Windows, the emulator takes about 10-15% of the CPU even when the
    581   emulated system is idle. this is a known issue related to QEMU's internal
    582   event loop and Winsock. this should be fixed in a future emulator release.
    583 
    584 - GPS emulation only if you use the '-qemud' option. this is an experimental
    585   option that is soon going to be the default. without this option, the
    586   emulated system will start but GPS emulation will not work.
    587 
    588   for the record, 'qemud' is a serial port multiplexer that is used to
    589   multiplex several communication channels between the emulator and the
    590   emulated system, though a single serial port.
    591 
    592 ==============================================================================
    593 Changes between 1.2 and 1.1
    594 
    595 
    596 IMPORTANT BUG FIXES:
    597 
    598 - fixed a typo that prevented the F9/F10 keyboard shortcuts from working
    599   properly, making non-programatically tracing unusable.
    600 
    601 - halve the emulator's memory requirements, saving around 130 megabytes
    602   of memory by changing the way flash images are accessed (we now use
    603   temporary files instead)
    604 
    605 - this emulator binary should be 10% to 20% faster than previous ones on
    606   the Windows and OS X platforms. for faster boots, you may also want to
    607   use the -no-boot-anim option described below to speed up the initial
    608   boot sequence as well on slow machines.
    609 
    610 - proper rotation support when using Keypad 7/9 to switch between layouts
    611   in the default HVGA skin. no need to use Ctrl-PageDown anymore
    612 
    613 - the -http-proxy <proxy> option didn't work correctly on Windows (unless
    614   you were very lucky).
    615 
    616 - general socket handling code on Windows has been significantly improved.
    617 
    618 
    619 NEW FEATURES:
    620 
    621 - the console port number of a given emulator instance is now displayed in
    622   its window's title bar.
    623 
    624 - voice/sms are automatically forwarded to other emulator instances running
    625   on the same machine, as long as you use their console port number as the
    626   destination phone number.
    627 
    628   for example, if you have two emulator running, the first one will usually
    629   use console port 5554, and the second one will use port 5556
    630 
    631   then dialing 5556 on the 1st emulator will generate an incoming call on
    632   the 2nd emulator. you can also hold/unhold calls as well.
    633 
    634   this also works when sending SMS messages from one emulator to the other
    635 
    636 - the help system has been totally revamped:
    637 
    638    *  -help              prints a summary of all options and help topics
    639    *  -help-<option>     prints option-specific help
    640    *  -help-<topic>      prints various topical help text
    641    *  -help-all          prints *all* help content at once
    642 
    643 - the emulator now tries to automatically detect the host time zone and sends
    644   it to the emulated system at startup (through the GSM modem). there is also
    645   a new '-timezone <timezone>' option to be able to specify a different one.
    646 
    647   IMPORTANT: the <timezone> name must be in zoneinfo format, i.e.
    648              Area/Location, human-friendly abbreviations like "PST" or "CET"
    649              will not work. examples are:
    650 
    651                  America/Los_Angeles
    652                  Europe/Paris
    653 
    654 - the emulator can now use up to 4 distinct DNS servers (instead of only one).
    655   by default, they are taken from your system's list, which is obtained by
    656   calling GetNetworkParams() on Win32, and parsing /etc/resolv.conf on
    657   Unix.
    658 
    659 - a new '-dns-server <server>' option can be used to specify a comma-separated
    660   list of alternative DNS servers to be used by the emulated system, instead of
    661   the system's default.
    662 
    663 - a new '-scale <fraction>' option allows you to scale the emulator
    664   window. <fraction> can be a number between 0.1 and 3.0.
    665 
    666   you can also use '-scale <value>dpi', (e.g. '-scale 110dpi') to indicate the
    667   resolution of your host monitor screen. it will be divided by the emulated
    668   device's resolution to get an absolute scale.
    669 
    670 - a new '-dpi-device <dpi>' option allows you to specific the resolution of
    671   the emulated device's screen. Note that this is not required: the default
    672   used is 165, which is the average of several prototypes we've been working
    673   with.
    674 
    675 - add a new '-port <port>' option to specify which port the emulator should
    676   bind to for the console, instead of letting it guess. <port> must be an
    677   *even* integer between 5554 and 5584 included. the corresponding ADB port
    678   will be <port>+1
    679 
    680 - [DEPRECATED] add a new '-adb-port <port>' option to specify which port the
    681   emulator should bind to, instead of letting it guess. <port> must be an odd
    682   integer between 5555 and 5585 included. the corresponding control console
    683   will be on <port>-1
    684 
    685   NOTE: -adb-port is deprecated, don't use it, it will probably disappear
    686   NOTE2: you cannot use both -port and -adb-port at the same time.
    687 
    688 - a new '-no-boot-anim' options tells the emulated system to disable the boot
    689   animation. on slow systems, this can *significantly* reduce the time to
    690   boot the system in the emulator.
    691 
    692 - you can now redefine the emulator's keybinding by writing a 'keyset' file
    693   and use '-keyset <filename>' to use it when starting the emulator. use
    694   -help-keyset and -help-keyset-file for all details.
    695 
    696   this allows you to use the emulator effectively on keyboards which don't
    697   have a keypad, by using different keys..
    698 
    699 - you can now toggle between windowed and fullscreen mode at runtime by
    700   pressing Alt-Enter (only works on Linux at the moment !!)
    701 
    702 - use '-audio-out <backend>' and '-audio-in <backend>' to change the output
    703   and input audio backends used by the emulator. see -help-audio-out and
    704   -help-audio-in for a list of valid values.
    705 
    706   this is equivalent to setting the QEMU_AUDIO_OUT_DRV and QEMU_AUDIO_IN_DRV
    707   environment variables.
    708 
    709   use '-audio <backend>' to set both the input and output backends at the
    710   same time. this is equivalent to setting the QEMU_AUDIO_DRV environment
    711   variable.
    712 
    713 
    714 NEW CONSOLE COMMANDS:
    715 
    716 - the new 'power' command can be used to control the power/battery state of
    717   the emulated device.
    718 
    719 - the new 'event send' command can be used to send simulated hardware events
    720   to the Android Linux kernel. each event must be in the form
    721   <type>:<code>:<value> where:
    722 
    723     <type>  is either an integer or a corresponding string alias
    724             (use "event types" to see a list of aliases)
    725 
    726     <code>  is either an integer or a corresponding string alias
    727             that depends on the value of <type> (use "event codes <type>"
    728             to see a list of these aliases)
    729 
    730     <value> is an integer
    731 
    732   NOTE: Be warned that it is very easy to confuse the kernel about the state
    733         of emulated hardware by sending the wrong event. An *excellent*
    734         knowledge of the Linux kernel internals is encouraged before playing
    735         with "event send".
    736 
    737 - the new 'event text <textMessage>' command can be used to simulate
    738   keypresses of small text messages, where <textMessage> is an utf-8 string.
    739 
    740 - the new 'avd stop' and 'avd start' command can be used to stop/start the
    741   emulation. you can also use 'avd status' to query the current state.
    742 
    743 - the new 'window scale <scale>' command allows you to change the scale of
    744   the emulator window dynamically. <scale> is either an integer followed by
    745   the 'dpi' suffix (e.g. '120dpi') or a real number between 0.1 and 3.0.
    746 
    747   in the first case, <scale> specifies your monitor dpi; in the second one,
    748   the new window scale itself.
    749 
    750 
    751 OTHER BUG FIXES:
    752 
    753 - in case of SDL_Init() failure, print the SDL error message.
    754 - disable networking code's logging to /tmp/slirp.log
    755 - the emulator now works with 2GB SD Card files
    756 - the emulator doesn't prevent the screensaver to kick in on OS X anymore
    757 - the -onion and -onion-alpha options now work properly
    758 - a second emulator instance trying to use the same SD Card instance than a
    759   first one will no longer crash
    760 - it's now possible to properly start the emulator in the background on all
    761   Unix shells (e.g. "emulator &") without being interrupted/stopped by a
    762   SIGTTIN or SIGTTOU signal.
    763 - fixed a bug in the SMS emulation that happened when using GSM 7-bit escaped
    764   characters, i.e. anything in the following: [|]~\{}^
    765 - fixed a small regression where -data <foo> would fail if the file <foo>
    766   did not exist.
    767 
    768 
    769 REGRESSIONS:
    770 
    771 - the -flash-keys options doesn't work anymore
    772 
    773 
    774 KNOWN ISSUES:
    775 
    776 - no support for video input
    777 - no support for mutable SIM Card emulation yet
    778 - no support for bluetooth
    779 - no support for WiFi
    780 
    781 - on some Linux machines, the emulator might get stuck at startup. this
    782   seems to be related to audio input support. try starting with
    783   '-audio-in none' or even '-noaudio' to disable sound, or choose a different
    784   audio backend by defining QEMU_AUDIO_DRV to an appropriate value
    785   (read below).
    786 
    787   you can also select different audio backends for both output and input
    788   by defining QEMU_AUDIO_OUT_DRV and QEMU_AUDIO_IN_DRV independently.
    789 
    790 - on Windows, the emulator takes about 10-15% of the CPU even when the
    791   emulated system is idle. this is a known issue related to QEMU's internal
    792   event loop and Winsock. this should be fixed in a future emulator release.
    793 
    794 OTHER:
    795 
    796 - you can now use -debug-<component> and/or -debug-no-<component> to
    797   enable or disable the debug messages of a given emulator component. this
    798   can be very useful for troubleshooting. for all details, use -help-debug
    799   and -help-debug-tags
    800 
    801 - you can also use '-debug <tags>' where <tags> is a comma-separated list
    802   of component names, optionally prefixed by a single '-'. see -help-debug
    803   and -help-debug-tags for all details
    804 
    805 - you can now define the ANDROID_VERBOSE environment variable as a list
    806   of "debug" items (each <item> corresponds to a -debug-<item> option).
    807   for example, defining:
    808 
    809      ANDROID_VERBOSE=socket,keys
    810 
    811   is equivalent to using "-debug socket,keys" when invoking the emulator
    812 
    813 - as a special case, -debug-slirp enables logging of the router/firewall
    814   operations to a temporary file (e.g. /tmp/android/slirp.log). you can
    815   also specify a logging bitmask with the ANDROID_SLIRP_LOGMASK environment
    816   variable (the default is a mask of 7).
    817 
    818 - removed many obsolete / unused source files from the repository. also
    819   performed a rather heavy cleanup of the sources to make them somewhat
    820   more manageable.
    821 
    822 - integrate dynticks support from upstream QEMU depot. this only allows one
    823   to provide more precise timing accuracy in the guest under Linux.
    824   (NOTE: disabled in the source code, since it seems that it freezes
    825   the emulator sometimes)
    826 
    827 - audio input is now working on OS X, Windows and Linux. on Linux, there
    828   are four different backends supported: EsounD, ALSA, OSS and SDL. they
    829   are accessed through dlopen/dlsym, which means that the emulator binary
    830   will run on any system.
    831 
    832   you can specify a given backend by defining the QEMU_AUDIO_DRV environment
    833   variable to one of these values:
    834 
    835     alsa
    836     esd
    837     sdl
    838     oss
    839     none
    840 
    841   note that the "sdl" audio backend is the most compatible, but doesn't
    842   support audio input at all !!
    843 
    844 - a new option '-cpu-delay <delay>' can be used to slow down the CPU
    845   emulation. the <delay> is an integer between 0 and 1000. note that it
    846   doesn't necessarily scale linearly with effective performance.
    847 
    848   the delay process is not exactly deterministic. this is just a hack that
    849   may disappear or be completely re-implemented in the future
    850 
    851 - some new "gsm" and "sms" subcommands were added to the control console.
    852   they are used internally by the voice/sms auto-forwarder and are probably
    853   not very useful to typical developers
    854 
    855 - some code has been added to support save/restore of the AVD state to/from
    856   a file. however this is not properly tested yet, and requires that you
    857   use exactly the same options and disk images when reloading the AVD state.
    858 
    859 - added a new -cache <file> option to specify the cache partition image
    860   file. the default is to use a temporary file instead
    861 
    862 - added a new -report-console <socket> option to be able to report the
    863   automatically assigned console port to a remote third-party (e.g. a
    864   script) before starting the emulation. see the output of -help for all
    865   the details
    866 
    867 - (only useful to Android engineers)
    868   the audio sub-system is now compiled in its own static library (called
    869   libqemu-audio.a), which gets copied to the Android "prebuilt/Linux/qemu"
    870   directory. this is done to avoid forcing all developers to install various
    871   development packages on Linux, as well as all build servers. there is also
    872   now a script named "distrib/update-audio.sh" which will update the depot
    873   file automatically for you: call it whenever you change the audio sources.
    874