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