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