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