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