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