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