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