This directory contains prebuilt emulator binaries that were generated by
running the following command on a 64-bit Linux machine:

  external/qemu/android/scripts/package-release.sh \
      --darwin-ssh=<host> \
      --copy-prebuilts=<path>

Where <host> is the host name of a Darwin machine, and <path> is the root
path of this AOSP repo workspace.

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

external/qemu        306387b Revert "metrics: Start reporting opengles hardware strings."
external/qemu-android 1bc6453 ui/sdl2.c: Fix Android Mesa-based GPU emulation.
external/gtest       b91418b Set LOCAL_EXPORT_C_INCLUDE_DIRS.

Summary of changes:

    $ cd external/qemu && git log --oneline --no-merges 7025489..306387b .
        306387b Revert "metrics: Start reporting opengles hardware strings."
        09ebdc1 qemu-launcher: Implement -show-kernel properly.
        9ed6018 Added C++11 support to qemu build
        a8c132b Adjust the color of disabled buttons
        c0f45a8 Windows fixes for Qt emulator.
        adb7f72 qemu-launcher: Add qemu=1 and set lcd-density
        adfed6f Reverse the "light" and "dark" image sub-directories
        3b10708 Adjust the Qt style to better match what is desired
        dd5822e qemu-launcher: Add support for GPU emulation.
        c2495d0 build-qemu-android.sh: Use --enable-android
        e235934 Update docs to refer to emu-master-dev.
        4bf50ee metrics: url-escape the ping to toolbar.
        74828c2 metrics: Start reporting opengles hardware strings.
        216c340 package-release.sh: Fix --copy-prebuilts=<dir>.
        9517666 Move debug android pipe source files.
        bb761b6 pipe_throttle.c: Remove QEMUTimer dependency.
        93c71a6 android/emulation/android_qemud.h: new header.
        09380cc Android pipe: Move generic code to android/emulation/
        881aa5b Android pipe: Use Stream instead of QEMUFile.
        9484849 android pipe: Introduce HwPipe type.
        8b19669 android pipes: new snapshot format version.
        5d92d95 android pipes: Remove LEGACY snapshot version format.
        3f5a67b android pipe: Move 'zero', 'pingpong' and 'throttle' sources.
        bd7ee2e android pipe: Add android_pipe_set_hw_funcs()
        c4e8273 android pipe: Minor documentation update.
        9dd22db Rename 'goldfish pipe' to 'android pipe'.
        cbabe3f Stream: Add putFloat() and getFloat() + QEMU stream wrapper.
        52d3247 android/qemu/utils/stream.h: New stream implementation.
        e6824e5 Correct the name of 'build-qemu-android.sh' in warning message.
        a4dc514 Populate the Keyboard shortcuts pane
        a42528c goldfish/tty.c: Add device version register
        0b255ea cleanup: Replace header guards by "#pragma once" in android/
        f15c9c2 base: Add Uri::Encode and Uri::Decode.
        f3ead1c curl-support: Allow NULL ca-certs argument.
        4f7d901 Proper StreamSocket shutdown for MS Windows
        3210e6e android-rebuild.sh: Fix build
        21dcdfe package-release.sh: Fix content of generated packages.
        3015f85 build-e2fsprogs.sh: Move prebuilts to .../common/e2fsprogs/
        b3dc001 Revert "Added C++11 support to qemu build" Build break (?) This reverts commit 8c0484bfc4c30d18107b2a9faf566190a2522e6b.
        4b54a4b metrics: Plug a curl_easy_init() leak.
        8c0484b Added C++11 support to qemu build
        bc0c0bf goldfish_pipe: Use guest PA for rw operations if driver supports it
        77e6195 docs/ANDROID-EMULATOR-LIBRARY.TXT: New document.
        e1ab2a9 metrics: Remove references to ddms.
        ffbd59a Add icons for the remaining major tabs
        0a2d723 Add text to the telephone Call and Hang Up buttons
        fbc8118 Disabling DDMS
        c258a08 Typo fix
        a68d52f Implements screenshot for Qt emulator.
        4f60106 Changed UpdateChecker to handle failed last version loading
        ddcee76 Changed UpdateChecker to set a curl certificate
        3c91588 metrics: Also report metrics to toolbar.
        fdd7c77 Use style sheets to define the light and dark themes
        b90c5ba Fixed StringView comparison with empty string
        14a41ab Hooks up "Load Gpx" button functionality.
        59cb735 Fix the main toolbar icons
        22aad4b android/emulation/ConfigDirs.h: new header.
        bafacb0 android/utils/bufprint.h: Simplify implementation.
        a90bd78 android-rebuild.sh: Fix location of Windows Qt prebuilt libraries.
        cb77a3f Fix Qt-based build.
        3f7209a metrics: plug memory leak in FormatGAPostData.
        7701c72 metrics: Only report metrics after checking user opt-in.
        7db3eb4 Get .AndroidStudio opt-ins and installation-id
        88a4a7e Added update checker to the emulator
        3b3c54f Revert "Added update checker to the emulator"
        4262f23 Drag-and-drop installing of APK files.
        3d508b6 Change icon colors
        732ea5a Add "Settings" pane with controls for light/dark theme
        6d7ba0a Added update checker to the emulator
        e91689f New getAppDataDirectory function in System
        9ec8016 Added a System::getUnixTime() method
        c6ef790 Add x86 and x86_64 ranchu launchers to SDK tools
        6c143d9 emugl: Remove minor compiler warning.
        75af773 android::base::Looper::Timer::Callback: Add 'timer' parameter.
        96d434f Added a class for version manipulation
        878299f Revert "Added a class for version manipulation" Reason: broken UT This reverts commit 3cd84a04b5e9916efdee3175de689dc5a7ef24ec.
        4aa9e20 Changed Thread class to have a overridable onExit()
        968a6d2 Add preliminary "SD Card" functionality
        6d76b1e Add "SMS" messaging functionality.
        b06d9bd Improve emulator startup failure message for insufficient HAXM memory.
        c7dfe4d getHomeDirectory() function in System
        ec9058e Add GPS "location" functionality
        5a0aef3 Add "fingerprint" function
        038cc8f Add "telephony" and "cellular" functionality
        3d620f4 Change libxml2 installation directory.
        dc5509a Add "battery" functionality
        9f1d9a1 Create Extended UI pane
        3cd84a0 Added a class for version manipulation
        7718baa android-rebuild.sh: Copy x86 and x86_64 QEMU2 binaries.
        03e2e81 curl: Bundle ca-certs file with qemu.
        3613a92 Revert "goldfish/tty.c: Add device version register"
        bab35d4 Fixed a bad metrics_timer passed to a callback
        52d003b Enable -qemu options for qemu-android launcher
        576dd71 x86/x86_64: added CPU acceleration handling in qemu2
        c314b8f enable qemu launcher support for x86/x86_64
        5f56884 Winsock.h: Increment FD_SETSIZE to 32768
        22793b8 SocketStrem verbosity fix
        57ea628 Fix glBufferData with NULL data issue
        447320f support extra qemu parameters for the target platform
        8b5343b Set ANDROID_SDK_TOOLS_REVSION properly through gradle (emulator)
        029531c Plugging UNIX socket leaks
        0ecdc1d Fix glActiveTexture checking issue in host OS
        6bda967 Fix x86 boot on fedora22
        b524d9e Revert "Better support for openGLES 2.0 extensions" into studio-1.4-dev
        ea6fb9a goldfish_audio: Fix offset err in goldfish_audio_buff_recv()
        510a078 Report crash metrics to google analytics.
        4fb6f37 Created a simple libcurl initialization/cleanup helper
        7522ecb Fix remote Darwin Qt build + Windows one.
        ddce63f android/proxy: Update documentation.
        9cff011 proxy: Add new option to set proxy type.
        cc3a064 proxy: Move to android/proxy/
        f9524fd proxy: Refactor to use android/utils/looper.h
        a397030 proxy: minor cleanup.
        66d59ae Remove un-needed qemu-common.h includes from android/
        ba4319b android/base/files/Stream.h: new helper class.
        c06d70b android/utils/looper.h: Add looper_getForThread().
        fa54c56 android/utils/looper.h: Remove one level of indirection.
        c23e01e Move android/looper.h into android/utils/
        fc2d74c Move looper_newCore() to android/looper-qemu.h
        9736f02 Move android/sockets.* to android/utils/
        5842131 android/sync-utils.*: Remove obsolete sources.
        abb9d6f Move iolooper to android/utils/
        cf1e896 Simplify android/config/config.h
        fb34155 android/camera: Remove some QEMU header dependencies.
        9ac7eee android/avd: Fix header inclusion order.
        7600482 Move cbuffer.c to android/utils/
        fc92168 Linking with libcurl
        1747342 Add fonts to the Qt resource file
        722fa83 Base resizing implementation for Qt emulator.
        007430d android/scripts/build-curl-deps.sh: Remove script.
        39b053d GPX parser for location features.
        061c0e7 Zoom, rotate left, and quit implementations for Qt UI.
        57bccdc KML parser
        a4d0fb6 Dock emulator tool UI to main window.
        fe8326e Move DDMS ping feature to android/metrics/ddms-ping.h
        51fd96f Add libcurl to prebuilts
        e617e3a Metrics: added a timer to call metrics _tick() function periodically
        073127c looper: Add a compiler warning when required c++ macro is undefined.
        a2de3ee Report crash metrics from the emulator.
        7bcc73b utils: filelock should not unlink a live process' lock.
        1c8bc24 Added System::getProcessTimes() call
        19ae99a docs/ANDROID-CODING-STYLE.TXT: New document.
        75d8c2d utils: Add dirScanner_numEntries.
        5503054 testing: Create readable tempfile in TestTempDir.
        fee7ea5 Do not persist inferred hw_gpu_mode if gpu is disabled.
        34cdadc Fix Qt library / plugins path setup.
        0d5d266 proxy: Fix a bug that prevents loading chunked data > 64K
        0cc5c10 emugl: GLES_CM: Fix parameter checking for glColorPointer
        99acbbb target-mips: Remove constraints for recip.fmt & rsqrt.fmt instructions
        d380071 Remove the now-unused icon images
        acf26c7 Switch the Qt tool window
        ca7a8a1 Add light and dark icon images
        310065e Move the function that constructs and sends a GPS location to the AVD
        346b115 Allow non-digits in SMS phone numbers
        95ba4b9 Rename emulator-window.cpp to emulator-qt-window.cpp
        eeb0e2b Correct typos
        ad22099 Add unit test for android/qt/qt_path.cpp
        9af06d2 Correct the location of the Qt libraries
        a27cd88 android/telephony: abstract debug logs.
        6697aa7 android/telephony: Remove "android/android.h" include.
        37b6afb telephony: Rename android_modem.h to modem.h
        b77c949 telephony: Move QEMU-agnostic code to android/telephony/
        73f397b telephony: Add C++ header inclusion guards.
        6834c10 telephony: Remove QEMU-specific code from android_modem.c
        cc96e1f telephony: remove un-needed header includes.
        f4a493c Link libxml2 statically to Qt-based UI programs.
        5ed34a0 Add support for a libxml2 prebuilt.
        cea3f20 build-qemu-android.sh: Add --debug option.
        766069a ShaderParser: Keep invalid version number unchanged
        8ba5675 gen-android-sdk-toolchain.sh: Support building with XCode 6
        87d26ae Simplify Darwin build.
        f9ee3bc Resolving a kernel-panic in windows arm executables.
        55587f2 If HAX is running, don't print to stderr
        86e5e6a Add emulator support for 280 and 360 dpi
        8ac4541 Making the emulator respect user-specified data partition size for API 19+
        1c9f59e Copy windows 32-bit e2fsprogs executables into $OUT_DIR/bin64
        9c54d87 Added support for building e2fsprogs in Windows
        ddd266b android/build: Add support for LOCAL_QT_UI_SRC_FILES.
        838925e build-qt.sh: Fix Qt build script.
        602da6a Better support for openGLES 2.0 extensions
        15c3a7e Simplify how image partition parameters are generated.
        c751277 Check for e2fsprogs prebuilts dir in android-configure.sh
        ceaca85 Add hardware-properties.ini for windows
        ebcf238 Fix cube map textures issue

    $ cd external/qemu-android && git log --oneline --no-merges 7673fd2..1bc6453 .
        1bc6453 ui/sdl2.c: Fix Android Mesa-based GPU emulation.
        c9e32e9 ui/sdl2.c: Add support for Android GPU emulation.
        b9ceee6 include/android/gpu-frame-bridge.h: New helper header.
        04c0a53 OpenGLES emulation Android pipe implementation.
        4fbc3b7 Android GPU emulation support file.
        438cf9f include/qemu/shared-library.h: new utility header.
        4ded9c6 Add -lcd-density qemu option parameter
        f2ff4cd android: Add boot properties support.
        8991d4f configure: Add --enable-android option.
        2bc09c0 qemu-char.c: Adding missing recv_all() for Win32.
        122266c ui/sdl2.c: Fix crashes.
        2e51014 util/oslib-win32.c: Add ffs() and ffsl() implementations.
        b2fe844 Revert "Revert "goldfish_tty.c: Use physical addresses instead of virtual""
        07bfb40 Fix ethernet suport on windows platform
        08219ba target-i386: Add Intel HAX to android emulator
        be08024 goldfish_audio: Cleanup of goldfish_audio_realize function
        d810510 Revert "goldfish_tty.c: Use physical addresses instead of virtual"
        6a8f610 goldfish_audio: Fix an offset error in goldfish_audio_buff_recv()
        17d9899 goldfish_audio: Do not quit QEMU when device fails to initialize
        7110e94 target-mips: Remove constraints for recip.fmt & rsqrt.fmt instructions

    $ cd external/gtest && git log --oneline --no-merges aa242ae..b91418b .
        b91418b Set LOCAL_EXPORT_C_INCLUDE_DIRS.
        aa6755e Add RTTI support to libgtest and libgtest_host.

