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