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