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