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