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