1Android Emulator changes: 2========================= 3 4Versions: 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============================================================================== 30Changes between 8.0 and 7.0 31 32IMPORTANT CHANGES: 33 34OTHER: 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============================================================================== 77Changes between 7.0 and 6.0 78 79IMPORTANT CHANGES: 80 81OTHER: 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============================================================================== 92Changes between 6.0 and 5.0 93 94IMPORTANT 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 103OTHER: 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============================================================================== 111Changes between 5.0 and 1.13 112 113IMPORTANT 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 123OTHER: 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============================================================================== 131Changes between 1.13 and 1.12 132 133IMPORTANT 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============================================================================== 145Changes between 1.12 and 1.11 146 147IMPORTANT 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 155OTHER: 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============================================================================== 164Changes between 1.11 and 1.10 165 166IMPORTANT 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 172OTHER: 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============================================================================== 203Changes between 1.10 and 1.9 204 205IMPORTANT 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 214IMPORTANT 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 231OTHER: 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============================================================================== 255Changes between 1.9 and 1.8 256 257IMPORTANT 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 327OTHER: 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============================================================================== 370Changes between 1.7 and 1.6 371 372IMPORTANT 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 382OTHER: 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============================================================================== 410Changes between 1.6 and 1.5 411 412IMPORTANT CHANGES: 413 414- Emulator now saves the user image in <android>/SDK1.0/ 415 416OTHER: 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============================================================================== 446Changes between 1.5 and 1.4 447 448IMPORTANT BUG FIXES: 449 450- Fix spurious discards of SMS messages when using two emulators. 451 452OTHER: 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============================================================================== 469Changes between 1.4 and 1.3 470 471IMPORTANT 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 479NEW FEATURES: 480 481NEW 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 487OTHER BUG FIXES: 488 489- fixed the -audio, -audio-in and -audio-out options (the <backend> values 490 were sometimes ignored) 491 492REGRESSIONS: 493 494OTHER: 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 515KNOWN 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============================================================================== 544Changes between 1.3 and 1.2 545 546IMPORTANT BUG FIXES: 547 548NEW 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 574NEW 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 580OTHER 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 587REGRESSIONS: 588 589OTHER: 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 611KNOWN 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============================================================================== 640Changes between 1.2 and 1.1 641 642 643IMPORTANT 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 666NEW 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 761NEW 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 798OTHER 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 816REGRESSIONS: 817 818- the -flash-keys options doesn't work anymore 819 820 821KNOWN 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 841OTHER: 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