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