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
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
26   7.0  => SDK Tools release 7
27   etc...
28
29==============================================================================
30Changes between 8.0 and 7.0
31
32IMPORTANT CHANGES:
33
34OTHER:
35
36- The phone can now be called with additional numbers, using the 1-555-521
37  prefix. I.e. you can now use all of the following numbers to call/sms an
38  emulator that runs on console port 5554:
39
40  5554
41  521 5554
42  555 521 5554
43  1 555 521 5554
44
45- Fix -http-proxy implementation to properly work with chunked encodings.
46
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.
50
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
62  - 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
67 - 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
70 - 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
76==============================================================================
77Changes between 7.0 and 6.0
78
79IMPORTANT CHANGES:
80
81OTHER:
82
83- Removed audio stack SDL dependency.
84
85- 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
89- Fix net shaping regression: -netspeed and -netdelay did not work anymore.
90
91==============================================================================
92Changes 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
100- Fix '-http-proxy' on Win32. This was actually a regression introduced
101  with the Donut SDK.
102
103OTHER:
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==============================================================================
111Changes 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
122
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.
143
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.
151
152- The key-bindings for the Menu button (F2 and PageUp by default) didn't work
153  due to a typo.
154
155OTHER:
156
157- 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
163==============================================================================
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
171
172OTHER:
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
202==============================================================================
203Changes 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
228- Allow the HTTP proxy implementation to receive chunked encoding data.
229  This shall solve problems when talking to Microsoft proxies.
230
231OTHER:
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
249- Fix GPS emulation to allow several clients concurrently. There are still
250  problems that may be due to changes in the system's framework.
251
252- Added some technical documentation in the docs/ directory.
253
254==============================================================================
255Changes between 1.9 and 1.8
256
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
261  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.
264
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
337  of the '.android' data directory (which defaults to your $HOME).
338
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
358- Using '-no-audio' no longer disables sound hardware emulation. It simply
359  mutes the emulator program on the host.
360
361- 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
369==============================================================================
370Changes between 1.7 and 1.6
371
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==============================================================================
410Changes between 1.6 and 1.5
411
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==============================================================================
446Changes between 1.5 and 1.4
447
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==============================================================================
469Changes between 1.4 and 1.3
470
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==============================================================================
544Changes between 1.3 and 1.2
545
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==============================================================================
640Changes between 1.2 and 1.1
641
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.
921