This directory contains prebuilt emulator binaries that were generated
using the following scripts

  external/qemu/android-rebuild.sh
  external/qemu/android/scripts/build-qemu-android.sh

on 64-bit Linux and Mac OS X hosts.

Below is the list of specific commits for each input directory used:

  external/qemu         7025489 android/base/system/System.cpp: Make valgrind happy.
  external/qemu-android 7673fd2 goldfish_tty.c: Use physical addresses instead of virtual
  external/gtest        aa242ae Use new sanitizer option.

Summary of changes:

$ cd external/qemu;         git log --oneline --no-merges 8ada71..14861f

  7025489 android/base/system/System.cpp: Make valgrind happy.
  109f9eb Implements fullscreen support for the Qt emulator.
  e55c059 android/skin/qt: Expandable tool window.
  2403730 android/skin/qt: Fix position of tool window.
  5b7ae7d Add Qt-based UI backend
  c751277 Check for e2fsprogs prebuilts dir in android-configure.sh
  ea6cbc2 android/base/system/Win32Utils.h: new helper class.
  92402bd android/base/system/System.h: Add findBundledExecutable().
  c1bfccd android-rebuild.sh: Copy e2fsprogs to $OUT_DIR/bin
  2606c22 build-e2fsprogs.sh: New build script.
  99c5cc1 emugl: Remove extraneous exit messasge with '-gpu mesa'.
  a774bf3 emugl: Ensure that a newly-created sub-window is cleared.
  86c1cab emugl: minor cleanup.
  b10f775 PACKAGES.TXT: Update to newly released Qt 5.5.0
  ba98610 build-qt.sh: Small fix for remote Darwin builds.
  77f9b5f docs/PREBUILT-BINARIES.TXT: New document.
  842092e goldfish/tty.c: Add device version register
  b2bbb30 android/build: Add support for Qt 'moc' and 'rcc' tools.
  80168bd android-rebuild.sh: Copy Qt shared libraries into $OUT_DIR/<lib>/qt/
  9157e57 android/scripts/build-qt.sh: New build script for Qt libraries.
  97a6bef PACKAGES.TXT: Add a rule to donwload the Qt 5.4.2 sources.
  695f900 download-sources.sh: Add support for SVN, BASENAME and DSTDIR fields.
  df6b553 Small build system cleanup to prepare for Qt-based UI.
  c961f3a emugl: Disable signals from render and window threads.
  88e6a59 android/skin/: Small cleanups to prepare for Qt-based backend.
  20cc04e android/build: Add support for prebuilt static libraries.
  b4616d2 android/base/System.h: Add addLibrarySearchDir().
  59873e0 Move '-list-avds' handling to top-level 'emulator' launcher.
  dcd78da Add unit tests for some text-message functions
  ae0eaf5 Fix handling of SMS message with special characters
  ebcf238 Fix cube map textures issue
  65e628f Support '-ranchu' flag to pick qemu2 as the emulation engine
  d4617d6 Allow ',' and '=' in path names
  3592ca0 Load the Skin config before the Device config
  feef1eb Move CPU Acceleration handling to main-common.c
  414e009 Provide the correct time with the 'geo fix' command
  c0f65a2 Fix emulator booting on OSX 10.8
  2539b0c emugl: Fix -no-window on Linux.
  ac4bf2b emugl: Improve error reporting when loading shared libraries.
  b5c1463 Ranchu emulator wrapper support for -sdcard switch
  1236003 android/opengl/emugl_config.cpp: Remove debug messages.
  b87a7f1 os-win32.c: Remove forced thread affinity to single core.
  d40b8ff Re-enable icount handling for snapshot to work
  e3a5a53 set pc-bios directory to match current output directory.
  d5f17cb added binaries for qemu2 x86/x86-64
  14896ae Convert -selinux 'disabled' to 'permissive' for API level >= 23
  6300b7b Move common command-line option processing to shared source file.
  3d406cd Fix crash with '-qemu -cpu foo' is used.
  63b652a SDL2: fixed qemu2 not built with SDL2
  b6b64b2 Disable non-fatal error when loading from snapshot
  2cfe36d cpu-exec.c: Remove tb_invalidated_flag global variable.
  b28f2f2 android/main.c: Honor informational QEMU options, e.g. "-qemu -h"
  6cd021f Fix OSX build caused by a typo in include
  83b3110 Handle CPU interrupts by inline checking of a flag
  6af00b2 Improve detection of remote desktop sessions.
  5ca3b5d Mesa: [windows] Fix for RDP / Chrome Remote Desktop.
  dc3c5aa emugl: [windows] Slightly better error messages.
  26b5349 build-mesa-deps.sh: [windows] Add bin/DO_NOT_REMOVE files.
  0dbc969 gen-android-sdk-toolchain.sh: Fix for LLVM
  56da43f emugl: Proper support Mesa software renderer.
  db96916 emugl: Remove static methods from FrameBuffer class.
  483c4a7 emugl: [windows] Fix WGL backend out-of-bounds stack access.
  30db467 emugl: [windows] Support for Mesa backend.
  075cda6 android/opengles.c: Improve error message.
  752c590 android-rebuild.sh: [windows] Rename Mesa lib to mesa_opengl32.dll
  c9d47d5 emugl: [windows] Remove imports from opengl32.dll
  b6321f6 emugl: [windows] Remove static C++ constructor.
  f333503 emugl: [windows] Get rid of WglExtProcs.
  136eaff emugl: [windows] Lazy-link to opengl32.dll.
  5e806aa emugl: Make emugl::SharedLibrary::findSymbol() const
  fa6d396 emugl: Move GlLibrary implementations to EGL library.
  6a74ee2 emugl: Use 'funcargs' mode to generate GLES function headers.
  bba1311 android-configure.sh: Add ccache support to --mingw builds.
  a76d2ea android-configure.sh: Remove TARGET_OS variable.
  144af87 android-configure.sh: Rename CPU to BUILD_ARCH
  cba2c84 android-configure.sh: Remove HOST_BIGENDIAN probe.
  9db5159 android-configure.sh: Minor reformatting.
  370668b Remove obsolete android/config/ directories.
  abc3abf Fix windows ranchu launcher selection problem
  af1668c android-configure.sh: Simplify script.
  c728383 qemu-launcher: Add support for -selinux <mode> option.
  df12821 build-qemu-android.sh: Disable libcurl connectivity.
  b83b0ec build-qemu-android.sh: Disable libcurl connectivity.
  51fee5a emugl: Remove obsolete EGL internal display type support.
  fec1f12 emugl: Remove obsolete EGL API functions.
  31382f8 emugl: Remove un-needed EGL entry points from libOpenglRender.
  a438ad2 emugl: Add new gen-headers.sh script.
  3e88e9f emugl: Refactor GLDispatch (again).
  780335a emugl: Refactor libOpenglRender's EGLDispatch.
  2ea5b38 android/scripts/gen-entries.py: Add 'funcargs' mode + unit test suite.
  43b4b7f emugl: GLcommon/GLLibrary.h: new helper class.
  ec0a1b1 emugl: GLDispatch: Use proper lazy initialization.
  75e60b6 emugl: Report errors when failing to load shared libraries.
  a57a959 emugl: Fix Linux dynamic linking to libGL.
  0635630 android-configure.sh: include common.sh content.
  8ba624f android/build/common.sh: Remove obsolete portions.
  3cd9d74 android-configure.sh: Remove anything related to the platform build.
  3f06301 android/base/testing/TestTempDir.h: Use TMPDIR on Unix systems.
  371fb7e android-configure.sh: Remove cygwin support code.
  868ceed android-configure.sh: Remove --no-aosp-prebuilts
  d779dd5 android-configure.sh: Remove --static option.
  67b5721 android-configure.sh: Remove --gles-dir and --no-gles
  176fd9e android-configure.sh: Remove --ignore-audio option.
  80617d0 android-configure.sh: Remove obsolete --install option.
  bcc204c distrib/update-audio.sh: Remove obsolete script.
  1a1afd6 Support for new Clang-3.5 based SDK toolchain.
  7ce382b android-configure.sh: Remove obsolete --sdl-config option.
  2855dd7 Revert "qemu2 does not build on build servers; revert"
  b910f8f Use $AOSP/prebuilts/android-emulator-build/ to store prebuilts.
  7d2d6c0 build-qemu-android.sh: Separate qemu-android and dependencies binaries.
  4022d0a build-mesa.sh: Separate mesa-deps and mesa prebuilts.
  7e5c3ad Revert "Backport arm_boot: Change initrd load address to "halfway through RAM"" Because this CL causes Mac not to boot arm image anymore This reverts commit deff600e4e880b01953d4c5c0363774c385de09f.
  5561478 Revert "Backport arm_boot: Change initrd load address to "halfway through RAM"" Because this CL causes Mac not to boot arm image anymore This reverts commit deff600e4e880b01953d4c5c0363774c385de09f.
  aad813a Revert "emugl: Refactor GLDispatch structure."
  3a87916 Revert "emugl: Refactor GLDispatch structure."
  8f3fc9d Revert "emugl: Refactor libOpenglRender's EGLDispatch."
  47d5d65 Revert "emugl: Get rid fo GLAPIENTRY"
  9ef1eea Revert "emugl: Add *experimental* support for 'osmesa' backend."
  a461dee Revert "emugl: GLDispatch: do not use static function pointers."
  8129754 Revert "emugl: Fix 'black triangle bug'"
  e497cfb Revert "emugl: Get rid of s_glDispatch static variable."
  deab7a4 Revert "emugl: EGL: Refactor ClientAPIExts.cpp"
  ef776cc Revert "android/scripts/gen-entries.py: Add 'funcargs' mode + unit test suite."
  03bf8e5 Fix qemu2 launcher on Mac
  3d30611 emugl: Fix memory leak in OutputBuffer implementation.
  fcc17a3 qemu2 does not build on build servers; revert
  b4b7b68 Fix qemu-android build on MacOsX Yosemite (10.10)
  789b604 Remove SDL 1.x from qemu-android dependencies.
  d0cd3d4 Copy qemu2 binaries to SDK tools after build
  32037f5 Ignoring warnings to build glib for Mac OS X
  8abd9b7 Temporarily revert this CL for a release to fingerprint team
  373f536 Remove obsolete SDL 1.x sources.
  44cf146 emugl: EGL: Refactor ClientAPIExts.cpp
  3a43527 android/scripts/gen-entries.py: Add 'funcargs' mode + unit test suite.
  4b0b29d emugl: EGL: Refactor ClientAPIExts.cpp
  613773e android/scripts/gen-entries.py: Add 'funcargs' mode + unit test suite.
  ff1be12 build-qemu-android.sh: Use winaudio as audio backend on Windows
  2378035 emugl: Get rid of s_glDispatch static variable.
  d33e6ae emugl: Fix 'black triangle bug'
  cabaec2 Fix glGenerateMipmap error code for invalid target
  5b7afdf emugl: Add *experimental* support for 'osmesa' backend.
  27af0c7 Fix memory leak caused by color buffer
  63befdb emugl: GLDispatch: do not use static function pointers.
  455fe1c Strings added to address Issue 82305
  2494f1e emugl: Get rid fo GLAPIENTRY
  5ac17a2 emugl: Refactor GLDispatch structure.
  6da22fb emugl: Refactor libOpenglRender's EGLDispatch.
  34b12d5 emugl: Remove obsolete header file.
  bbd6bee emugl: Reduce number of exported dynamic symbols.
  9c41bdb android/build: Add support for LOCAL_SYMBOL_FILE
  acc644d android/scripts/gen-dll-wrapper.py: Remove obsolete script.
  0fe0098 android/scripts/gen-entries.py: Add new script.
  6d1e6c5 Fix webcam on OSX Yosemite
  758e306 emugl: Support software-only renderers.
  ac9c8df emugl: EglDisplay.cpp: Add debug printouts.
  54e8268 Make sure EmuGL is built in debug mode with --debug.
  964920f emugl: Remove pesky compiler warning on Darwin.
  e6aef36 suppress verbose output when stdout is part of return value


$ cd external/qemu-android; git log --oneline --no-merges 8ad041c..7673fd2

  7673fd2 goldfish_tty.c: Use physical addresses instead of virtual
  5e29087 target-mips: fix updating BadVAddr for misaligned accesses
  63782ac hw/mips: ranchu: Enable goldfish audio
  b509f13 target-mips: Add TLB Refill exception interpreter
  b4cda1b hw/char/goldfish_tty.c: Sign extend addresses for mips
  3a1d5bc Fix VENOM vulnerability for Intel-based systems.
  bdc7705 i386: init adb and android monitor for IA
  3f8331a hw/i386: Enable goldfish audio
  7e51381 goldfish_audio: Support 64-bit guests
  a931717 coreaudio: Incorporate changes from the classic Android emulator
  a50f6cf audio: Add winaudio as an alternative audio backend for Windows
  b6acf13 audio: Import winaudio driver from the classic Android emulator
  8903516 make the instruction sets of IA cpu comply with spec

$ cd external/gtest;        git log --oneline --no-merges 56cad54..dabc7dd

  aa242ae Use new sanitizer option.
  0be0cc6 Allow to build host gtest libraries in unbundled build.
  131a343 Don't explicitly set LOCAL_CLANG for host.
