Add 'emulator' launcher program.

NOTE: This integrates https://review.source.android.com/#change,21995
      into the tools_r11 branch.

This patch renames the current ARM-specific emulator binary to 'emulator-arm'
and introduces a new tiny (less than 20KB) 'emulator' launcher program.

The role of 'emulator' is to launch either 'emulator-arm' or 'emulator-x86'
based on the target AVD or platform build being used.

This program will be replaced in the future by what is currently known
as 'emulator-ui', but is a good placeholder until this work is completed.

+ Move some utility functions from android/avd/info.[hc] to
  android/avd/util.[hc] so that 'emulator' can use them directly.

IMPORTANT: For platform builds, the target architecture is detected
           automatically by parsing the build.prop file.

           For SDK AVDs however, there is no easy way to determine the
           target architecture, so the patch adds a new hw.cpu.arch
           property which can have value 'arm' or 'x86'

Change-Id: Id883b67c0255b6deeae393443a1732e10ab223cb
12 files changed
tree: c7323ffd476368c10c91f3ec12f3f66a766f33d2
  1. android/
  2. audio/
  3. block/
  4. distrib/
  5. docs/
  6. elff/
  7. fpu/
  8. gdb-xml/
  9. hw/
  10. images/
  11. memcheck/
  12. pc-bios/
  13. proxy/
  14. slirp/
  15. slirp-android/
  16. target-arm/
  17. target-i386/
  18. tcg/
  19. telephony/
  20. .gitignore
  21. a.out.h
  22. acl.c
  23. acl.h
  24. aes.c
  25. aes.h
  26. aio-android.c
  27. aio.c
  28. alpha.ld
  29. android-configure.sh
  30. android-rebuild.sh
  31. Android.mk
  32. arm-dis.c
  33. arm-semi.c
  34. arm.ld
  35. async.c
  36. balloon.h
  37. block.c
  38. block.h
  39. block_int.h
  40. blockdev.c
  41. blockdev.h
  42. bswap.h
  43. bt-host.c
  44. bt-host.h
  45. bt-vhci.c
  46. buffered_file.c
  47. buffered_file.h
  48. cache-utils.c
  49. cache-utils.h
  50. cbuffer.c
  51. cbuffer.h
  52. Changelog
  53. CHANGES.TXT
  54. charpipe.c
  55. charpipe.h
  56. CleanSpec.mk
  57. compatfd.c
  58. compatfd.h
  59. console.c
  60. console.h
  61. COPYING
  62. COPYING.LIB
  63. cpu-all.h
  64. cpu-common.h
  65. cpu-defs.h
  66. cpu-exec.c
  67. curses.c
  68. curses_keys.h
  69. cutils.c
  70. d3des.c
  71. d3des.h
  72. dcache.c
  73. dcache.h
  74. def-helper.h
  75. device_tree.c
  76. device_tree.h
  77. dis-asm.h
  78. disas.c
  79. disas.h
  80. dma-helpers.c
  81. dma.h
  82. dyngen-exec.h
  83. dynlink-static.c
  84. dynlink.h
  85. elf.h
  86. elf_ops.h
  87. envlist.c
  88. envlist.h
  89. exec-all.h
  90. exec.c
  91. feature_to_c.sh
  92. gdbstub.c
  93. gdbstub.h
  94. gen-charmap.py
  95. gen-icount.h
  96. gen-skin.py
  97. host-defs.h
  98. host-utils.c
  99. host-utils.h
  100. hostregs_helper.h
  101. hpet.h
  102. hxtool
  103. i386-dis.c
  104. i386-vl.ld
  105. i386.ld
  106. ia64.ld
  107. input.c
  108. INSTALL
  109. iolooper-select.c
  110. iolooper.h
  111. ioport-user.c
  112. ioport.c
  113. ioport.h
  114. json-lexer.c
  115. json-lexer.h
  116. json-parser.c
  117. json-parser.h
  118. json-streamer.c
  119. json-streamer.h
  120. keymaps.c
  121. keymaps.h
  122. kqemu.c
  123. kqemu.h
  124. kvm-all.c
  125. kvm.h
  126. LICENSE
  127. linux_keycodes.h
  128. loader.c
  129. loadpng.c
  130. m68k.ld
  131. Makefile
  132. Makefile.android
  133. Makefile.common
  134. Makefile.target
  135. migration-dummy-android.c
  136. migration-exec.c
  137. migration-tcp-android.c
  138. migration-tcp.c
  139. migration.c
  140. migration.h
  141. module.c
  142. module.h
  143. MODULE_LICENSE_GPL
  144. monitor.c
  145. monitor.h
  146. net-android.c
  147. net-checksum.c
  148. net.c
  149. net.h
  150. NOTICE
  151. notify.c
  152. notify.h
  153. offset_layout.py
  154. osdep.c
  155. osdep.h
  156. outputchannel.c
  157. outputchannel.h
  158. path.c
  159. poison.h
  160. posix-aio-compat.c
  161. ppc-dis.c
  162. ppc.ld
  163. qbool.c
  164. qbool.h
  165. qdict.c
  166. qdict.h
  167. qemu-aio.h
  168. qemu-barrier.h
  169. qemu-char-android.c
  170. qemu-char.c
  171. qemu-char.h
  172. qemu-common.h
  173. qemu-config.c
  174. qemu-config.h
  175. qemu-error.c
  176. qemu-error.h
  177. qemu-io.c
  178. qemu-lock.h
  179. qemu-log.h
  180. qemu-malloc.c
  181. qemu-monitor.hx
  182. qemu-objects.h
  183. qemu-option.c
  184. qemu-option.h
  185. qemu-options.hx
  186. qemu-queue.h
  187. qemu-sockets-android.c
  188. qemu-sockets.c
  189. qemu-thread.c
  190. qemu-thread.h
  191. qemu-timer.c
  192. qemu-timer.h
  193. qemu_debug.h
  194. qemu_file.h
  195. qemu_socket.h
  196. qemu_timers.h
  197. qerror.c
  198. qerror.h
  199. qfloat.c
  200. qfloat.h
  201. qint.c
  202. qint.h
  203. qjson.c
  204. qjson.h
  205. qlist.c
  206. qlist.h
  207. qobject.h
  208. qstring.c
  209. qstring.h
  210. readline.c
  211. readline.h
  212. README
  213. savevm.c
  214. sdl_keysym.h
  215. shaper.c
  216. shaper.h
  217. sockets.c
  218. sockets.h
  219. softmmu-semi.h
  220. softmmu_defs.h
  221. softmmu_exec.h
  222. softmmu_header.h
  223. softmmu_outside_jit.c
  224. softmmu_outside_jit.h
  225. softmmu_template.h
  226. sparc.ld
  227. sys-tree.h
  228. sysemu.h
  229. tap-win32.c
  230. targphys.h
  231. tcpdump.c
  232. tcpdump.h
  233. thunk.c
  234. thunk.h
  235. trace.c
  236. trace.h
  237. trace_common.h
  238. translate-all.c
  239. translate-op.c
  240. translate.make
  241. uboot_image.h
  242. usb-dummy-android.c
  243. usb-linux.c
  244. user-events-qemu.c
  245. user-events.h
  246. varint.c
  247. varint.h
  248. vgafont.h
  249. vl-android-ui.c
  250. vl-android.c
  251. vl.c
  252. vnc-android.c
  253. vnc-tls.h
  254. vnc.c
  255. vnc.h
  256. vnc_keysym.h
  257. vnchextile.h
  258. x86_64.ld