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        357a4aa Verbose print: print a message indicating emulator killed by console kill
external/qemu-android 2ee7107 goldfish_sync: reset sync device on reboot [device changes]
external/gtest       f52a103 Revert "Disable the legacy gtest."

Summary of changes:

    $ cd external/qemu && git log --oneline --no-merges 306387b..357a4aa .
        357a4aa Verbose print: print a message indicating emulator killed by console kill
        b893a3a goldfish_sync: reset sync device on reboot [androidemu changes]
        6c00852 Revert "Revert "build: Support upcoming Mingw update with libwinpthread support.""
        aa3c012 [clipboard] Qt UI changes for clipboard sharing
        1195339 Ignore lseek64 error when trying to increase file.
        2dd033f Revert "build: Support upcoming Mingw update with libwinpthread support."
        f35be3f Add emulator build id
        a65892c Enhance -wipe-data to clean up more stale files
        26f25d7 Revert "Facilitate upgrade of system images with -wipe-data"
        cda9bd6 package-release.sh: Add --qemu2-src-dir option.
        fefd1e6 Remove internal QEMU networking options.
        45ec3df Facilitate upgrade of system images with -wipe-data
        57f8ade Correctly handle -version option
        e28c4fc android-configure.sh: Add --qemu2-src-dir option.
        fa7c181 android-configure.sh: Optional copy of linuxboot_dma.bin
        447c642 build: Support upcoming Mingw update with libwinpthread support.
        7cf7d14 Enable userdata encryption
        8e9cce4 We should return bytes in no_read function.
        f9d9bb2 [clipboard]  ClipboardPipe implementation
        517143a [Temp] Comment out the protobuf code until prebuilts git repo creation
        891638e [build] Add the studio_stats.proto to the build
        0229fe8 [git] Add protoc-generated sources to gitignore
        4e5af4c [build] Support .proto files in emulator build
        bd4a013 [build] Create a build-protobuf.sh script for prebuilts
        7ca0b02 Launcher: try emulator/ directory for emulator binaries and libraries
        48641bb win32: Minor fix for compilation error with upcoming Mingw update.
        ab8de2c goldfish_sync: properly clean up sync objects
        13f10a8 build-qemu-android.sh: Keep config-host.h and config-target.h.
        0af7ed3 Qemu1 command line option to bypass adb secure check
        bd7c944 goldfish_sync/egl: revise 'extentions', cleanup
        b34b9b4 Fix the wrong use of assert() in Egl code
        919371d Add metrics to track usage of GPS and sensor features
        b9363ef Search argv[0]'s directory for binaries and libraries as a fallback
        0c055e3 goldfish_sync: more robust context creation/destruction
        aa32f04 Listen IPv6 port when IPv4 is not available.
        5f52122 Initial version of Emulator Controller app client
        6747c8e AndroidPipe: make it easier to see pipe add/removes
        e4ca323 build-qemu-android.sh: Update for QEMU 2.7.0-rc4
        d91d6f1 [build] Define a NDEBUG symbol for release builds
        047068f [qemu1] Fix all 'unused variable' warnings for assert-only vars
        a3232d1 [AndroidEmu] bugfix: Stop querying information when reporting metrics.
        9651e21 Adb: Print a message indicating adb status
        a59d83c Revert "Revert "Revert "[CTS] Deactivate sync for now"""
        26ccad5 Revert "Revert "[CTS] Deactivate sync for now""
        b5fb526 Fix emulator build
        717a228 Revert "[CTS] Deactivate sync for now"
        c35cee0 Fix windows build
        9b9eae6 Fix regression in CTS.deqp.gles2.functional.negative_api.shader
        9e5bd73 Make glGetShaderInfoLog always return a string with null termination
        fc7583a Fix windows buildbot
        33480e3 Add EGLImage clean up when guest process exits
        8cceb9f Remove EglContext::attachImage
        25d7912 [goldfish-sync] add function to query device existence
        b9c0c97 [CTS] Deactivate sync for now
        6308654 Implement EGL_KHR_fence_sync, EGL_ANDROID_native_fence_sync
        2f5af3c SyncThread class: implement guest's fence fd waits
        3706244 Camera: limit with and height of webcam frame to 1kx1k pixels
        1862b42 Camera: Fix crash on mac
        1c8efa3 Camera: handle incomplete message receive from guest
        82f9a52 Misc changes in external/qemu to support QEMU2 snapshots
        cb0a075 Fix build
        ed50766 [CTS][camera] Tell CTS test that we allocated buffer
        6e5ad25 FenceSyncInfo class: track GLsync objects on host
        fc3a33e Add host-side EGL sync + GLESv3 support
        77ace20 goldfish_sync androidemu/emugl integration
        67fc1e2 Revert "Revert "Merge shader and program namespaces""
        38cd8e6 Bind context before releasing GL resources
        ad1a311 Revert "Merge shader and program namespaces"
        dd0464f Refactor GL name manager
        8a029bb Merge shader and program namespaces
        4c3c7d2 Revert "Fix dEQP-GLES2.functional.negative_api.shader regression"
        f1a9d47 Fix dEQP-GLES2.functional.negative_api.shader regression
        3dc5957 [CTS][camera] Synchronize rcCreateColorBuffer
        91ec896 Fix possible null pointer reference.
        3d7564a Have the AVD use the historical initial orientation
        53db228 Add a command-line option to wait for a debugger on launch
        496e3dc [base] Add functions to detect an attached debugger
        bcbdbb5 [GPU pipe] Make a variable accessed from multiple threads atomic
        f6f2f01 [base] Make MessageChannel thread-proof
        24c1f46 Fix windows build
        be47487 Allow "hw.gpu.mode=on" in hardware config.ini
        e9753c0 Decouple console from QEMU net/ stack.
        eb7f277 AdbGuestPipe: disable TCP Nagle algorithm to reduce send() latency.
        c265379 Fix memory leak in doCompressedTexImage2D
        922c086 [qemu1][console] Add 'debug <tags>' console command
        26510f2 [cmdline] Move debug options parsing into a separate function
        081aa5d Fix crash in webcam due to qemud pipe protocol
        170231d Include shaders in name manager
        eaf9ed6 Enable console support code for QEMU2.
        db7a820 SocketUtils: add socketSetNoDelay().
        09fa3e7 AdbGuestPipe: Turn socket in non-blocking mode.
        d13c7a8 Initialize host pipe services in qemu-setup.c
        ad2ccb0 Enable new AdbGuestPipe code.
        5687f9e Remove old adb-qemud / adb-server code.
        a73da0d AdbDebugPipe: Implement the qemud:adb-debug pipe service.
        cae2a42 AdbGuestPipe: new class to handle ADB guest pipe connections.
        f56452d AdbHostListener: new class to handle ADB Server connections.
        daee76f AdbHostServer: new convenience class.
        c9c9bd7 SocketUtils_unittest.cpp: Fix flaky test on OS X.
        f34264f android/base/: Rename TypeUtils.h to TypeTraits.h
        5573495 base::Optional: Clarify documentation.
        56d3521 Revert "Revert "[qemu1] Don't allow running the same AVD in multiple instances""
        a6efe6e SocketUtils: Disallow SIGPIPE signal on socketSend().
        cd262d2 [utils] Add a buffer char translation overload for a substring
        7f479c0 [debug] Add a function to disable verbose logging
        bb6e92c [base] Improve ScopedPtr's handling of template parameters
        7e888c4 AndroidPipe: Remove const from service create() and load()
        8809fe1 TestAndroidPipeDevice: Fix proper VmLock use.
        15f1813 package-release.sh: Copy ANGLE prebuilts to fix remote build.
        baa472d Fix Werrors in decoder
        0c086e3 [GL pipe] Make all race-prone variables atomic
        69e802e Fix partition resize not being visible in guest
        692af60 Fix formatting of new renderthread message
        01f7986 [UI] Enable the virtual sensors keyboard shortcut.
        a77f985 [metrics] Add selected renderer [androidemu, qemu1]
        5602ad4 Get rid of unnecessary code paths in objectNameManager
        5d31193 Separate the implementation of GL NameSpace
        6770cb4 Fewer debug prints for GLESv1->2 translation
        1be4dd5 Add flush to rcCloseColorBufferPuid
        ffd153f [UI] Correct emulator's use of port numbers
        1a36816 Android Pipe: Fix a copy/paste error with DEBUG_THROTTLE_PIPE
        aa09151 Add AsyncSwap feature
        c6329e4 Remove unnecessary console output
        587c987 [UI] Update Emulator title to be clearer.
        6257f8d UI: Remember the Cellular Network settings
        23b1874 SocketUtils: Add socketGetPeerPort()
        9846564 [Emulib] Distinguish between missing studio options file and field.
        adbad7a [Emulib] Metrics: report the update channel selected by user.
        8776bd8 Fix comments in gralloc pipe
        53501e9 TestVmLock: Fix bug in release().
        72322e3 Add pre-process pipe for gralloc memory cleanup
        81d591e Fix debug prints in gl checksum
        ad768a6 AndroidPipe et al: Generalize main-loop IO
        d6225da Enable GL pipe corruption check
        b39e555 [UI] Update the tooltip for drag-and-drop.
        f504221 UI: Align widgets on the Virtual Sensors extended page
        874a958 [UI] Add a tooltip indicating where files are copied.
        0b41720 Run qemu2 unittests from build-qemu-android.sh
        c6ba732 Add cross-platform file delete to System.
        5690d28 [UI] Ensure the extended window closes on exit.
        b4846d8 UI: Swap cellular "Data status" and "Signal strength"
        94cbe1f Allow setting the network connection to LTE
        7e85e3f Make OpenGL logger thread safe
        ac1d237 [UI] Ensure non-skinned emulators rotate properly.
        ada5f7e Fix crash when deleting non-existing textures
        cbeb08a [UI] Reset phone position sliders when the phone position/orientation is reset
        40dd9df [UI] Fix a rotation bug.
        ae2f378 Only display SMP warning with -verbose / -debug-init
        c1b785f We forgot to fill line when grow it at first time.
        a94dca3 Remove internal QEMU -list-webcams option.
        663d29d Add broadcast method for condition variables
        11faaa5 [UI] Yet more zoom fixes.
        1706124 Check for null args in command line parameters
        24bb505 UI] Remove unneeded keyset code.
        467126b [Emugl] Use ANGLE to validate and translate shaders.
        bba4bb7 [Emugl] Add ANGLE static libraries prebuilt script.
        0d1be00 65535 is a valid port.
        9571590 Implement -help* directly in 'emulator'.
        45dcf27 Fix the --mingw build.
        c109e51 Enable -Werror on Linux and Windows.
        5716d6b emugl: Remove compiler warning.
        f6c0141 QEMU1 glue: Remove compiler warning.
        271bda7 debug.c: Remove compiler warning + simplify.
        297f87c [UI] Exit zoom properly.
        c9b75e1 Remove obsolete options: -raw-keys, -keyset -help-keys
        2277be8 Refactor opengles pipe service to use AndroidPipe.
        2ad76d8 AndroidPipe: Fix multi-threading support.
        12c61dc AndroidPipe: refactor Android pipe implementation.
        4dc1d48 virtual pipe device: Fix subtle loading issue.
        9721aeb VmLock: Refactor + introduce isLockedBySelf()
        651ae8b qemu-common.h: Introduce qemu_mutex_check_iothread()
        8712e93 console: Fix 'gsm hold' error message without parameter.
        7092d0f Revert "Fix GL extension detection"
        ac74f7d [Emulib] Fix adb executable lookup in AdbInterface.
        3192687 [UI] Highlight invalid values in EditableSliderWidget
        e2249a4 [Emulib] Simplify -port and -ports cli behaviour.
        4d3667a [Emulib] Fix win32 path access functions.
        b02ef34 Use the name 'Nougat' for API 24
        638bc28 [crash] Fix a crash on Windows if the first command line arg is bad
        3ebd016 Port OOO frames fix to all platforms
        af5b45d [sensors] Set better limits for the sensors tick interval
        c45495c [sensors] Speed up the QEMUD implementation
        49d92e1 [ram] Limit the VM heap size to [minCTSHeap, min(ram/4, minCTSvmHeap*4)]
        1a73042 Disable ipv6 to workaround a port number issue
        69f23f6 Deprecate -gpu mesa.
        9fad834 [crash] Fix a bad parameter to WriteFile() that crashed on Win7
        54ea49d android_pipe_device.h: Add AndroidPipeHwFuncs::resetPipe() function.
        53d3e6c AndroidPipe: Better pipe function names.
        13c2f1d Fix the Play/pause button on the D-Pad
        046a04b Fix AdbInterface unit tests.
        2e7968e [GLES1->2] Properly separate entry points / internal calls
        f01b046 [GLES1->2] Load GLES1->2 translator if no GLESv1 support
        d041fbb [GLES1->2] Maintain consistent set of GLESv2 functions
        d22237d [GLES1->2] Create and maintain emulated GLESv1 contexts.
        6443fbe [GLES1->2] Add GLES1->2 translation entry points and link them
        be83b31 [GLES1->2] Implement glEGLImageTargetTexture2DOES
        cdb1254 [GLES1->2] Remove unused mutex.h
        dcbffb2 [GLES1->2] Put back the usage of RefBase/StrongPointer
        af26560 [GLES1->2] Add debug prints
        81cfc2f [GLES1->2] Reformat api_entries and angle_gles2 struct
        7dc0c2b [GLES1->2] Add translator interface functions
        c2215b8 [GLES1->2] Move underlying_apis.h and angle_gles2.h
        12df4d4 [GLES1->2] Put back ARC's RefBase / StrongPointer
        421fc76 [GLES1->2] Debug print interface
        dfa2b06 [GLES1->2] Add ARC's GLES1->2 translator
        6816a8c Fix windows build
        bd17143 Release GPU memory when destroying ShareGroup
        48fa2e0 Sensors UI changes
        f34d800 Remove a #define shadow in thread/Types.h
        4122ed1 Add a new flag to disable scale.
        53f6dc3 [UI] Re-add "custom ADB" functionality.
        d8c931e Use -partition-size parameter if specified
        6ce68e7 Add Darwin case for Swiftshader prebuilt installing
        da572b0 Android Pipe: Separate host and device headers.
        34c4c1b [Filelock] Fix the Windows filelock to take care of PID reuse
        7ee8483 [Filelock] Rename filelock.c -> .cpp
        8e2c8b3 [Emulib] Drop obsolete test.
        28ba02c [AndroidEmu] Reduce the supported ADB port range.
        18ac297 Delete GPU buffers when glDeleteBuffers is called
        80cb7b4 [qemu1] Tweak GPU "guest" initialization.
        ca5770f [UI] Zoom fixes (part 1)
        86ab00a [UI] Fix the "cancel" functionality for file copy.
        77eeb7e [Main] Fixing qemu flags off-by-1 parsing bug.
        8617dc4 [Main] Improve error message when kernel file is missing.
        7d31d73 Loose AVD screen size limitation a little.
        d4af31a [adb] Add the serial argument to emulator-issued adb calls.
        a81305a Respect KVM_DEVICE_NAME_ENV in a consistent way.
        df92cbe Fix the sensors QEMU driver to be faster and reliable for CTS
        bc7d7e7 [Emulib] Allow sending SMS to oneself.
        110917e Tweaks to new debug print functions
        f8e2626 [UI] Use C locale in EditableSliderWidget
        7d92c7c Tweak early DWORD definition
        6a89354 Make rendercontrol use common debug print library
        6759392 Fix build on Windows (due to missing DWORD in early files)
        7a39a2c More debug printing functions
        733b98d [UI] "Enable" validation on editable slider widget.
        ba2cedf Fix build on OSX when in debug renderControl mode
        b821eba Crash on exit in Accelerometer3DWidget
        0a3953a Add a "gsm signal-profile" command
        9298738 Revert "[qemu1] Don't allow running the same AVD in multiple instances"
        b090983 [UI] Align "Virtual Sensors" button with others.
        8ebef04 Expose the new gsm signal feature in the Qt UI
        008c71b Fix help outline icon on Retina
        cfcd28f Limit magnetometer values
        dd68872 Do not try to reset rotation in VirtualSensorsPage ctor.
        478d341 [emugl] RenderThread.h: Remove obsolete m_lock field.
        72deaf7 [emugl] TextureDraw: Remove unused EGLDisplay member.
        0557f62 EGLDispatch.cpp: Remove compiler warning.
        749e111 sockets.c: Remove Win32 compiler warning.
        50334ba CrashService_common.cpp: Fix Win32 compiler warning.
        80adcf4 camera-capture-windows.cpp: Fix unitialized variable.
        a7894dd Thread_win32.cpp: Fix getCurrentThreadId()
        ca86aef Random.cpp: Remove Win32 compiler warning.
        508958f android/proxy/proxy_common.c: Remove compiler warning.
        e1c66db Fix the build (remove a non-existent variable use)
        ee05f98 Sync accelerometer widget and rotation buttons
        6466b44 [debug purposes] +Which renderthreads start/exit
        c7f1b17 [qemu1] Don't allow running the same AVD in multiple instances
        dcffbe6 Use fallback ReadWriteLock on some WINE version.
        94d2981 Fix some icons on Retina
        62bd7ee Fix displaying of GLWidget
        b22ec08 Show a notice for failed getVersion test on wine.
        0aaafa1 Add a work around for ftruncate on mingw-w64/wine
        1c55b09 Clean up GLDecoderContextData - use vector for a bytes buffer
        7b7db04 Disable some flaky ReadWriteLock tests on WINE
        25f1a80 [UI] Add help links to light, pressure and magnetic field sensors
        ae6dec0 Fix broken runCommand on wine.
        046f39e Add buttons to reset accelerometer control to certain orientations
        35f44bc Remove unnecessary visibleRegion() check from GLWidget
        9a0a0a9 Limit the range of movement in the 3D accelerometer control
        19ce472 Make generated encoder compatible with c++98
        84a1d17 Update phone texture to show Android home screen
        0935055 Add recordable_android egl config attribute
        5a24004 Don't put ignored textureresize message in stderr
        839ac1b Move sockets.c out of baselib, it depends on other
        52685d6 qemu1: -show-kernel: Correct kmesg SerialLine initialization
        5be494b Update EGL API header to v1.5
        d6a7410 Null check + eglerror logging for extension getting
        834dc52 Correctly handle process spawn failure on Windows
        f3a4a35 [qemu1] fix a buffer overflow in inet_parse()
        ac86be7 Allow recursive GrallocSync locking.
        fcc374f Fix gl encoder generator
        7157c77 [crash] Fix crash on exit in skin/file.c
        fb8e01a Fix and reactivate GrallocSync
        525cddc Refactor and improve KML parsing.
        3832f4b Fix black screen on rotation with GPU=off
        3194e55 Revert "Turn on GrallocSync feature."
        0daa236 Also listen on IPv6 address in slirp_redir.
        2b1cfc5 +documentation for GrallocSync
        bbee517 Get rid of oldGlobal in textures
        f20b3f4 Add texture reference counter to GLES1
        063c1da Fix CTS breakage in EGL texturing
        2b30c93 Fix stencil buffer problem
        761e129 Makefile.android-emu.mk: Fix Win32 LDLIBS
        0fbd44c AndroidEmu: Move skin_network_xx variables to main-common.c
        67e87e4 libcurl.mk: Fix Win32 LDLIBS
        d5815a3 Remove obsolete -qemu -ui-port <port> option.
        4e7bd8c android/network/globals.h: network-related global variables.
        a4a6b28 AndroidEmu: provide default SerialLine implementation.
        6219d46 Avoid lingering "hover" after emulated touch
        8495af1 Turn on GrallocSync feature.
        bebbcb1 [warn] Downgrade AVD ram-related messages to debug prints
        050a537 Per system image feature control
        7becd6d Use QPlainTextEdit instead of QTextBrowser
        9880998 [Emulib] Fix adb file push remote path.
        3eaadd5 [Emulib] Add array bounds check in EmulatorQtWindow::dropEvent.
        14c026a [Emulib] Leak filelock mutex on exit to avoid crash.
        12aeb2c Fix out of order webcam frames
        92f2b8d [UI] Check mBackingSurface before access.
        f669b90 Null pointer check in glXGetFBConfigs
        d781e55 Fix GL extension detection
        ae105b3 Fix a broken unit test in FeatureControl
        97c2bc0 console: Validate GPS ranges.
        55343f9 Qemu1: resize userdata-qemu.img if requested
        35f4ff9 [Cmdline] Deprecate the "-no-skin" flag.
        45afb3d [warnings] Clean some warnings in the feature control test
        3ba8973 [emulation] Add a console authentication to remote gsm commands
        a323bd1 Suppress warnings when user feature control ini does not exist
        f3a4560 Fix the 'rotate' console command
        52d8e38 Add a few Linux GPU driver info detection unit tests.
        833ccaa Fix ne2k network issue under heavy load.
        efcd3e7 Feature control test
        db529a6 [UI] Make "always on top" affect the extended window.
        af3cc15 Add feature control component
        9dafee4 Revert "Revert "Minor fixes in the Location page""
        51cddae Revert "Minor fixes in the Location page"
        a6dc730 [crash] Fix crash on exit caused by double-free
        8e17f00 Minor fixes in the Location page
        2aea395 android/utils/sockets.c: Support Linux abstract socket namespace.
        da27ffe Add -unix-pipe <path> option and re-implement Unix pipes.
        929d859 Fix altitude input validation on non-U.S. locales
        b4b30ab [Emulib] Force a last tick before flushing sealing metrics file.
        0ec0067 [doc] Added an update about TCG thread-unsafety to the PipeWaker
        ff689d8 Fix segfault when starting 3DMark
        087de3a Remove ugly focus rectangle from buttons
        c87b1e5 Fix location coordinate inputs on non-US locales
        ee52ce1 [gl] Fix a crash on glActiveTexture() call for GLES2
        b1e2a25 [gl] Rearrange members of GLESpointer to get rid of padding
        f251850 Only check snapshot if AVD parameter specified
        2bfceb6 [UI] Fix file copy for missing remote Downloads directory.
        a6cdc19 Added support for some console commands before auth
        0a6bc73 Fix console bannner line endings
        d70614c Emulator console requires authentication
        2c91655 Handle hw.sdCard=no with sdcard.size > 0
        4bafa6c Enable arm32 support on qemu2
        ac4c7f4 Add more texture format checks to pass dEQP
        8d4285b Add a reference counter for external textures
        ff98602 Add AutoWriteLock/AutoReadLock
        8fbe141 Remove ATI workaround to pass CTS
        c136226 [build] fix the mac build
        c101727 [style] Remove all pointer initializations of ptr(NULL) style
        3a22944 [emugl] Replace the last map with hash map, remove linear search
        2ac04f3 [emugl] Get rid of multimap in ObjectNameManager
        01f867d [emugl] Replaced all maps with plain keys with hashes
        2a3d335 [emugl] Replace list with vector and map with hash in EglDisplay
        2b29c8f Add reader/writer locking primitives
        9e7ff02 [gl] Fix the pipe wake/close calls for Qemu1
        287abd4 [gl] Fix a race on mState in RenderChannelImpl
        323610a [base] Implement Vista+ condition variable and dynamic selection
        ce637a5 [tests] Fix the AdbInterface-related tests
        52dc530 [base] Remove the PodVector class
        8f03c6d Disable crashservice startAttachWaitTimeout test
        f5d4b95 Fix build on Windows
        adee620 Fix buggy format_ip6 and add an unittest for it.
        b81908c Fix GLWidget anti-aliasing
        1ae784a [rebuild.sh] Run qemu2-specific and 32-bit tests on rebuild
        d19eb76 Use AdbInterface to run "adb shell stop"
        3708286 ADB Machinery refactoring, part III
        03b920f ADB Machinery Refactoring, Part II
        2c1f3b1 qobject/json-lexer.c: Remove compiler warnings.
        889c765 disas/: Remove compiler warnings.
        e5e0baf glib-mini: Remove compiler warning.
        54ca8c6 android/openssl-support.cpp: Remove compiler warning
        4cbfc2e emugl: Remove compiler warning about unused variable assignment.
        dd1d228 android/base/Optional.h: Provide default initialization value.
        dd8f2ee emugl: Remove compiler warning.
        599d6f9 [gl] Fix a crash in opengl initialization
        08fce2d Fix dEQP shader replace source test
        2bcc17e Disable gl pipe lock to improve FPS
        b67af08 [gl] Remove the code that isn't used anymore
        a40a95b Update internal texture data in glTexImage2D only with mipmap level 0
        5948810 [qemud] Optimize new message adding in Qemud
        72429c1 ADB machinery refactoring, part I
        e80da33 Fix wrong parameter in partition config
        bda20e4 [crash] Fix bad format string in partition_config
        a568955 Fix -sdcard help message.
        9d497c4 build-qemu-android.sh: Don't build Android support.
        43c28bb [gl] Fix a wrong comparison in GenericOutputBuffer<>
        67ad7c0 [ui] Display the current GPS location
        3a4248e [gl] Make the RenderLib destructor virtual
        5c6cc42 [build] Fix Mac build - allow unqiue_ptr to delete a class
        86ee2f9 dEQP: Generate gl error for glGenerateMipmap
        24e7230 Copy the glTexSubImage2D checks to GLES 1
        cea3be4 [gl] Opengles pipe implementation with RenderingChannel
        d3ffcae [gl] Updated the emulator with new emugl library interface
        6105b79 [gl] Implementation of the new emugl interface
        1bd2d4e [gl] New opengl rendering library interface
        b11dbbd Fix out-of-order frames on Windows
        63bddb9 Fix -logcat and -shell options for x86 AVDs with API level < 14
        9203bcd Remove obsolete internal QEMU1 options.
        3396bbf [ui] Have the Help page display its first tab first
        33aaefe [ui] Correct GPS string that is sent to device
        3b9ea2d More checks in glTexSubImage2D for dEQP
        9560dd1 [build] Fixed MessageChannel UT after an interface change
        a99f366 [Emulib] Add user actions to metrics.
        2504007 [Qt] Add object to count number of "user actions".
        47e9986 [Emulib] Allow multiple callbacks in CrashReporter.
        03488dc Fix dEQP tests in compressedTexImage2d
        50958ef [crash] Fix crash in android_gps_send
        bf7a825 [base] Fix Optional::emplace()
        5ef2e13 [base] Add stop() function to MessageChannel
        cea87e1 [base] Make the launcher wait for the engine on Ctrl-C on Windows
        eb1234c [base] Add AutoLock::lock() method
        2417295 [gl] Use stack memory for realigning the gl buffers if possible
        ddfdb6a [gl] Rename the opengles.c to .cpp
        7a34c7f [gl] Renamed hw-pipe-net to .cpp
        5331c44 [UI] Don't construct the extended window on boot.
        2b8e593 [base] Add move support to MessageChannel
        2f74367 [UI] Use the resize timer for Linux.
        4aa77dc Make platform builds use 'auto' GPU emulation mode by default.
        7bd6522 android/android-emugl.h: Simplify GPU emulation setup code.
        4966bbf emulator: Fix platform-build run
        541f007 AndroidEmu: Support kernel command-line generation for QEMU2.
        98fc018 Fix double-send of shortcut keys to the device
        b3fafa4 Respect preset env when looking for qt plugin dir.
        80dc514 Clean up the pipe corruption comment
        4173acb Document/clean up pipe corruption fix
        405357d Select classic engine if snapshot is required in avd config
        8b82112 [UI] Translate mouse wheel scrolling into vertical swipes
        6652112 [GPS] Fix altitude formatting
        c2e03c5 Enable multitouch in QEMU2 for older system images
        5473012 [UI] Clean up some extended window logic.
        5071855 [UI] Always allow the screenshot flash.
        811298c -qemu2_(send|recv)_all +EINTR_WRAPPER
        8d0d465 [UI] Make multitouch center around the device screen.
        db19e19 [sensors] Ensure proper formatting of sensor values
        46c13e2 [crash] Fix a crash on DPad page
        d3b313b Make multitouch input more stable.
        d16427d [crash] Fix a crash caused by loading a GPX with no coordinates
        49624a3 Use unique_ptr for cleanup in ExtendedWindow
        e6182d2 [Emulib] Set errno before socket operations.
        517f98e Make the device model movable and compute according accelerometer values
        48282f9 [emugl] Removed the unneeded files
        fffb020 [emugl] Got rid of SmartPtr - it's shared_ptr now
        0894e9b [emugl] Replace all emugl copies of base library with base versions
        854adf7 [base] Add auto-joining to the pthread implementation of Thread
        e2b133d [build] Emugl - support the android-emu-base usage
        ba15203 [build] Moved the looper code from emu-base to emu library
        ae67afc emugl: Minor build files cleanup.
        1cf2d5a [Emulib] Add FilePusher to 'adb push' files.
        a1d9760 [leaks] Delete the Ui:: classes for ExtendedWindow and toolbar
        e019282 [UI] Ensure the zoom overlay hides when not active.
        8dc7454 [UI] Ensure the multitouch overlay is shown correctly.
        9d4a56d [leaks] One more leak in metrics
        67dd87d [leak] Fix a leak in timezone.cpp I introduced yesterday
        d4ff49b [render] Reduce memory usage, fix string length in ShaderParser
        5234666 Add debug output for device rotation.
        469491f [UI] Conditionally disable the D-Pad and fingerprint UIs
        6ef8e7b [leaks] Fix some small random memory leaks
        5985df9 [leaks] Fix handleCpuAcceleration() to return the error string
        6247c15 [leaks] Free the thread's looper on thread exit (qemu1)
        89a1db5 [debug] Fixed ThreadInfo debug messages
        f5e2acf [leaks] Fix two quite large memory leaks
        231e3a4 [base] Add a custom scoped pointer typedef + factory function
        5c60b1a one more regression fix in snapshot
        c3905b8 Default LCD depth to 16 bit
        20782fd [Emulib] Add object for RAII based subscriptions.
        d6bdec0 Fix dEQP-GLES2.usecases.* drawing in wrong order
        ebb979a [UI] Enable the arrow keys regardless of D-pad.
        42894f3 [Emulib] Logging improvements.
        774247f [Emulib] RecurrentTask should be |stop|able from the callback.
        97e42ae [Skin] Get rid of the "raw keys" mode for keyboard input.
        6726d7d Fix AdbInterface unit-test under Wine.
        5957992 QEMU1: Move generation of ndns=<count> kernel parameter.
        9c3dd44 android/utils/dns.h: Add android_dns_get_servers().
        9960180 AndroidEmu: Fix kernel parameter options handling.
        3b77e0c Clarify string ownership for AndroidOptions and AndroidHwConfig.
        5a57581 [emulator-check] Add a check for desktop environment
        888e86e Parse GLSL ES shaders a little bit
        499066d [build] Add the full namespace name to the use of StringView
        03c78fb [emulator-check] Add CPU bittness to the cpu-info query
        f0f44f4 snapshot: fix regression in qemu1
        70f76e2 [emulator-check] Allow multiple queries at once
        34d45ef [emulator-check] Added a window manager query
        f295537 [emulator-check] Fix the help message
        4071ec6 [emugl] Delete the shaders in TextureResize
        0408666 [UI] Add better error reporting for the GPS playback table.
        2d50dba [emulator-check] create a subfolder for the emulator-check
        537cf2c [RenderThread] Better debug logging - number of thread + exiting
        23c7e81 [crash] Fix crash in Accelerometer3DWidget dtor
        95742c8 [emugl-Thread] Make sure every thread is joined
        30d5fc3 [RenderServer] Fix a crash and modernize the code
        c060a76 [UI] Fix AdbInterface parsing.
        6fc02cc AndroidEmu: Fix for -qemu options parsing.
        65c1311 [Metrics] Fix the crash on exit in IniFileAutoFlusher
        7f39dd2 Reformat checksum message
        a5dad27 [update-check] Store the last update check time per emulator version
        b399f1a [update-check] Use the full version with build suffix
        65f8611 [update-check] Fixed a typo in a warning message
        fba4448 [Ui] Show the update channel for the latest available version
        543b34e [update-check] Updated the used repository.xml to v2.1
        1397560 [UpdateCheck] Support build and update channels in UpdateChecker
        325f41b [adb] Begin ripping adb logic out of tool window
        e8e77ff Accelerometer controls
        8470421 [base] Add IniFile::makeValidKey()
        f40681c [UT] Fixed the GPU info parsing unit test
        f114ec7 [base] New convenience functions for map/set lookups
        e982481 Clean up windows gpu driver DLLs parsing.
        c06c8e5 Avoid infinite loop when parsing GPU driver info on Windows.
        59351e6 Enable -report-console without configurable ports
        acd3f82 Move -port and -ports parsing into functions
        a83c397 Move QEMU1 GLES-related kernel parameter generation to AndroidEmu.
        2ef34bc Fix Gingerbread framebuffer display.
        b2efede Move QEMU1 kernel parameter generation from vl-android.c to AndroidEmu.
        e49e233 ParameterList: Add addFormat() / addFormatRaw() / addFormatWithArgs().
        f213df6 Fix typo in -bootchart option handling.
        d13eaa7 [avd] Const-correctness and no exit()-s in info.c
        11f92e0 Remove "Drawer" window hint from the tool window.
        0053b51 [emulib] android::studio::updateChannel() function
        68f1457 [base] Add default constructor to the Version class
        716886e [UI] More dead code cleanup.
        1f6003e [UI] Remove dead skinning functions.
        00c1991 [UI] Remove the unused SkinRegion and SkinScaler structs.
        e5859c6 [emulib] Rename and cleanup the Studio configuration access
        d676387 [base] Add string size calculation function to ArraySize.h
        1c7d003 [qt] Move the Qt default initialization into a separate function
        d34cecd [base] Make ScopedPtr to be std::unique_ptr's alias
        80953aa Fix Mac display issue when changing display
        17f4fee [Emulib] Actually initialize the adb qemud service.
        94b6e35 Fix Swiftshader 16-bit when on named skins
        70039cd [UI] Close the extended window when closing the emulator.
        3f9a869 [Emulib] Add unittest for resize2fs.
        9c8f158 Fix unit tests for removal of config.enabled (-gpu guest)
        5a66d40 Remove async GPU blacklist unittest.
        6e979e0 Make -gpu guest close to same path as -gpu off.
        70514d6 [base] ARRAY_SIZE macro+arraySize() function in a separate file
        1f485ba [UI] Add proper validation for altitude values.
        3c9eb36 [base] Fix Dave's comments about Optional<>
        854385a [base] Add System::isRunningUnderWine()
        7c2347f VmLock: New helper class to deal with VM global mutex locking.
        d913ef1 AsyncSocketServer: new helper class.
        e3d595c Looper: remove pending FdWatch instances when disabled from callbacks.
        0321f77 SocketUtils: Add socketSendAll() and socketRecvAll().
        2e768bc ScopedSocketWatch: new helper class.
        9974de2 [UI] Add an error message for API < 14 screenshots.
        59cfd52 Fix bad pointer crash on FbConfigList::chooseConfig
        f687e2e Limit time taken to query GPU info.
        7f38829 [libOpenglRender] Fix potential segfault in RenderControl
        fa91fa5 [UI] Fix minimize on some Linux systems.
        af6e307 Add license information to the Help page
        76ea380 Fix mesa segfault on startup.
        8a735a4 Fix typing '2' instead of '@' on 'shift' up first
        6889db1 Fix emulator rendering problem when sleeping and waking windows
        02930a0 [Emulib] Redirect stdin in runCommand.
        3b649ae Allow -gpu angle. (Copy ANGLE from prebuilts)
        fd69638 Don't use boot animation when -gpu=angle.
        a7657cc Allow a OpenGL backend to be missing GLESv1.
        7570a4c Use GLESv2 not GLESv1 to get exts.
        a753882 Move network-related constants to android/network/constants.[hc]
        524550c Pressing volume up/down quickly hangs the emulator
        42996da [emu-check] Add a cpu-info query for emulator-check
        395a520 [base] Fix the optional assignment - once and for all
        2c3fed2 Revert "Revert "Revert "[base] Created a new Optional<> class"""
        8547d44 Revert "Revert "[base] Created a new Optional<> class""
        8518473 Revert "[base] Created a new Optional<> class"
        521bd72 [base] Created a new Optional<> class
        ae0a849 [base] Add a new is_template_instantiation<> type trait
        7404011 SocketUtils.cpp: Remove obsolete structure definition.
        5051cdc android/utils/sockets.h: Fix sock_address_init_in6()
        43c6567 ADB: Listen for host ADB server connections on both ::1 and 127.0.0.1
        380abd6 Add 'ipv6' parameter option to -report-console
        5847836 Report startup messages to the UI using ::1 if possible.
        400157c android/console.c: Listen on both ::1 and 127.0.0.1 interfaces.
        58eb6cf android/utils/sockets.h: Add IPv6-related functions.
        6f5a2eb SocketUtils: Add IPv6-related functions.
        3cb42ff Default 32-bit color software rendering
        a3a8917 Enable pipe for adb qemu communication.
        2ba31d7 Fix a Mac UTs
        9d2bad0 Ensure GLWidget handles moving between screens properly
        5fec404 [build-break] Enable C++14 on Mac
        9c789e5 [base] Small improvements to StudioHelper's version parsing
        3c33546 [base] Add 'build' field to android::base::Version
        a5f3654 [UI] Fix minimize on Linux Ubuntu.
        60dded8 [UI] Manually ignore maximize events.
        0542c87 [base] Added a convenience overload to async() call
        cb680f3 [base] Added new type trait is_callable<>
        c744a94 Fix spacing in slider widget
        ebf848d Fix GLWidget initialization on Mac
        f75c56f [UI] Fix a subwindow misalignment on OS X.
        5195a5e Fix QEMU1 not booting due to HAX disabled
        c91f84b [Emulib] Add System::pathFileSize.
        ebf4755 [UI] Cleanup in EmulatorQtWindow and ToolWindow.
        bcffb1e Enable SIGCHLD on Darwin to fix QProcess exits
        631c62d [Emulib] Add more error parsing to ApkInstaller.
        75ed538 [Emulib] Fix re-entry crash in ScreenCapturer.
        9a9c031 [UI] Update adb version regex.
        188855b [base] Add constexpr support to StringView
        865ce88 Move QEMU1 build of QEMU options to AndroidEmu.
        ba98cb9 AndroidEmu: Add UI-related command-line option parsing code.
        a797364 android-common.h: Remove declarations of internal functions.
        9b2992c main-common.c: Preparatory changes for QEMU2
        1a2e4d6 Move command-line parsing code to main-common.c
        4879e4a handleCommonEmulatorOptions: Remove exit() calls.
        28328aa main-common-ui.h: Remove two obsolete declarations.
        15756eb Emugl: Dont exit render server when accept has hiccups
        dafe96c Fix build breakage
        0783d5f [Emulib] Fixes a crash in ApkInstaller.
        7efe5dc Add a widget that displays a 3D model of a phone
        68c55b1 [Emulib] Add inFlight() method to RecurrentTask.
        4a1340f [Emulib] Fix System::runCommand file output on Windows.
        5c0d905 Add a simple parser for a subset of wavefront OBJ
        b3192b7 Refactor min heap size enforcement
        704f06f [base] Implement memmem with std::search for Win32
        310d0ef [base] Added a join() function to join array into single string
        aa0b7fb [UI] Remove unused battery state member.
        f967d9b [Emulib] Fix temproot for Screencapture_unittest
        cb8b505 [Emulib] Refactor drag-and-drop install implementation.
        b514bfa [Emulib] Disabled flaky test.
        66af502 Revert "[AndroidEmu] Temporarily disable AdbLivenessChecker."
        2e390e7 [Emulib] Detach threads for android::base::async.
        4294082 [WIP] [Emulib] Use posix_spawn for runCommand on OSX.
        d2be2ce [Emulib] Bug fixes and cleanups in System::runCommand.
        4ac7ac2 Fix formatting in hw-lcd
        1b7a10c Enforce minimum vm size according to CDD
        d6bafcb Call crash service in GL checksum
        ec28a20 [Emulib] Clean up ScreenCapturer error messages.
        05d08dc [Emulib] Refactor screen capture implementation.
        9ef6c3f [QuickFix] windows breakage caused by checksum threads
        773008d Revert "[OSX] Change the menu bar and minimized name."
        06a3497 [System] Give System::runCommand an output file.
        1dddf5e Removing debug strip option from build-mesa script
        8c863aa Updating breakpad patches
        1e27282 Parallelize symbol upload script
        9a96f35 Move linux libGL.so.1 link to build-mesa.sh
        de10c08 Move prebuilt copying to emulator make step
        ea48461 Remove linux x86 from prebuilt architectures
        1be44f2 Remove prebuilt strip and sym build, add dSYM
        237d84c Add debug info files to gradle build
        c77b0b7 Store debug info for archival during build flow
        d30817a Removing unnecessary local build symbols variable
        aa5450c Removing prebuilt symbols from build flow
        0209f82 Checksum for GLES messages from host to guest
        49fcb98 Qt UI - remove some class-type globals
        3a9c7d5 Correctly parse the N api level
        4fd7523 OpenGL timestamps.
        3913a7d [Crash] Fix a garbage value used in TextureResize (one of 100)
        a4d2cb8 Checksum for GL pipe communication
        4df4997 build-qemu-android.sh: Build 32-bit ARM QEMU2 engine by default.
        25b1c34 build: Remove linux-x86 from the list of default host architectures.
        6a8ceaf Darwin remote build: Properly clean remote build directory.
        bd9200e [ui] Allow user to 'copy' text from Help : About
        6577421 Update Help:About to show how ADB can find this device
        e4f90b7 main-emulator.cpp: Fix crash ANDROID_SDK_ROOT is not defined.
        3bb58d5 [UI] Warn users if their ADB version < 23.1.
        b714035 skin: Remove unused |generic_event| callback.
        4cdadcd qemu-setup.c: Remove exit() calls.
        ae2d8c3 qemu-setup.c: Improve -report-console handling.
        40daa86 Rename control_console_start() to android_console_start()
        f0c7202 qemu-setup.c: Small refactoring.
        e90fc58 Remove support for dynamic skins
        b58d252 [ui] Rename control to "Send keyboard shortcuts to"
        8d7f748 [UI] Change multitouch from Alt to Ctrl (Cmd on OSX).
        25219ce [ui] Support more API versions in "Help : About" (for 2.0)
        5110804 [UI] Update the "grab keyboard focus" setting.
        9882727 Fix segfault on startup when GPU info badly parses
        265b425 [libOpenGLESDispatch] Fix mipmap generation in GLES 2
        cc6f203 snapshot: rename snapshot_print_and_exit()
        f423184 AConfig: Add a little const-ness to functions.
        fa1c973 build-qemu-android.sh: Generate LINK-* files for upstream build.
        1560007 [ui] Ensure that the extended window is fully visible
        988ae90 android/: Remove android::base::StringVector usage.
        1f56cf1 PathUtils: Remove StringVector usage.
        172a108 Remove android::base::String implementation
        b1ec287 Make StringVector an alias for std::vector<std::string>.
        96ac2c6 android/opengl/: Remove android::base::String usage.
        daf716a CrashReport: Remove android::base::String usage.
        f7fbb8e android::base::System: Remove android::base::String usage.
        7f64529 Win32Utils: Remove android::base::String usage.
        23ab35f PairUpWearPhone: Remove android::base::String usage.
        7c46df8 android/base/: Misc android::base::String removal
        06c08e4 android::base::PathUtils: Remove android::base::String usage.
        0c2f885 android/base/String.h: Add std::string copy operations.
        f447341 android/: Remove android::base::String usage.
        d4911b8 android/qt/: Remove android::base::String usage.
        fa95bc1 android/skin/: Remove android::base::String usage.
        ec5b3df android/utils/: Remove most android::base::String usage.
        cda27ca android/windows_installer.cpp: Remove android::base::String usage.
        038b2cf StringUtils: Add strContains() and strDup()
        d05955f Revert "Check invalid pointers before sending them to glDraw*"
        503339d Revert "On Windows and Mac, check invalid pointers before glDraw*"
        dea5d91 [UI] Removing more dead skinning code.
        ff54f3f android/console.h: Introduce AndroidConsoleAgents.
        a13b4a5 emugl: windows: Refactor device context handling.
        9411a56e emugl: Remove EglOS::Display::release() method.
        92e44ff [UI] Remove the queueEvent signal.
        30680a7 [UI] Remove everything related to fullscreen.
        fb5a712 Add anti-aliasing to GLWidget as a post-processing step
        cfe8f51 Windows/OSX confirm installed HAXM is 6.0+
        026a89a [UI] Further reduce flicker on zoom.
        997337b [OSX] Change the menu bar and minimized name.
        4a0b8e9 Revert "Fix regression in build environment and -help"
        03d81b0 Fix regression in build environment and -help
        00ccfcf [UI] Remove the "virtual sensors" keyboard shortcut.
        13de865 Shut down screencap processes in EmulatorQtWindow dtor
        33f0983 Allow memory parameter over 4GB with 64 bit guests
        9332d6a Try harder to determine if the snapshot directory is writable
        d2d58be [UI] Fix an out-of-bounds access in SizeTweaker
        009d6a4 [libOpenGLDispatch] Fix renderbuffer object support in GLES 2
        06d30b3 [Crash] Qemu1 - report the kvm errors with crash handler
        a050d49 [Metrics] Qemu1 - add api level to the reported metrics
        92206b3 [CrashService] Fix the ps command on Mac
        2dd48a7 Add host GPU info to metrics.
        05c85c5 Don't change autogenerated files [EGL init logging]
        9792643 emugl: windows: Use ReleaseDC() instead of DeleteDC().
        08895f3 [Crash] Move the system() call out of the signal handler
        f7817de Remove a spurious pop-up during crash reporting
        2e00e91 [AndroidEmu] Temporarily disable AdbLivenessChecker.
        8d66643 [UI, Skin] Respect "initial orientation" AVD setting
        31f4f56 [AndroidEmu] Only read avd info if an avd is provided.
        06a970e [ui] Fix alignment of new label on SMS message box
        26a8523 [UI] Enforce a minimum size for the emulator.
        24bd9b0 [ui] Add a label to the box that holds the text message
        0997dc4 [ui] Don't highlight decimal/sexagesimal buttons when clicked
        d53627f Report driver issue when failing to unbound context on windows
        8eae723 Fix build (misspelled compiler.h)
        baedc88 [Crash] Track EGL initialization success/failure.
        df3f3e0 Make GPU blacklist testing easier. [QEMU1]
        c9402f8 Switch to software GPU when OpenGL driver crashes
        c0d926e Fix arm api 10 crashes
        a077bdd Present GPU blacklist status as a window.
        af5adc4 [Crash] Fix null pointer access when checking gpu mode
        74022bc [ui] Adjust the D-pad button placement
        4dfc971 [UI] Ensure exiting zoom mode works properly.
        fb87666 [UI] Make D-Pad look good on high-density screens
        4f51d64 Get rid of 'DEBUG' oops.
        8312cf8 Support RGB888.
        a4b7613 Detect and force software on crashy GPU's [QEMU1]
        8517327 [CrashReporter] Attach the process list to the crash report
        74d0bfb [Error-message] Update the VirtualBox/HAXM conflict error
        1d2c4e3 [UI] Avoid rotation-related resize edge case.
        c1efaba [CrashReport] Attach the proces uptime to the crash report
        50685a2 [Qemu1] Report the qemu version separately from the emulator ver
        a2fdffd [qemu1] replace abort() with crash handler call in thread
        d656566 [UI] Fix and refactor the DPad page
        109e5cc Use 24-bit depth buffer on checking WGL extensions.
        e1b4482 Allow switch to software GPU when a GPU crash is being reported
        3bdbc37 [UI] Iron out some minor kinks after the recent change
        29a0ff0 [UI] Fix font issue on Windows
        8e3be12 [AndroidEmu] Initialize openssl for multi-threaded environment.
        6093f47 Install openssl headers along with libcurl's prebuilts.
        2713531 [UI] Fix background color of text boxes on the About page
        7f4bcea Allow for better error reporting during startup
        eb22df9 [UI] Change maximum window size restrictions.
        7417247 [Qt] Fix QGraphicsEffect rendering on Retina displays
        d4df9a6 [AndroidEmu] Disable signals in libcurl.
        1833240 [UI] Fix button ugliness
        60e98bd [AndroidEmu] Prevent crash on multiple curl_init calls. (tiny).
        e57916a [UI] Prevent the emulator from entering OSX split screen.
        96feafc Clear error dialog pointer after deleting it
        8d9759f [UI] Add a widget which is a button with drop shadow
        91794ae [UI] Add multitouch to the help page UI.
        242b94c Delete error dialog on emulator exit
        96feb2b [UI] Fix some keyboard shortcut issues.
        29d8381 Revert "[Mac build] Support the Mac SDK < 10.9"
        2f42472 Fix unicode file path support build issues
        00de7f4 [ui] Update the lat/lon values before sending the location
        8d85440 Support unicode file paths on Windows
        333f9af [AndroidEmu] Fix IniFile ownership bug in android/metrics.
        00d8405 [UI] Update the "Documentation" link.
        ea76b39 [CrashUi] Uncap send/don't send report buttons.
        c426d52 [AndroidEmu] Fine, we won't cleanup libcurl.
        84cf848 [UI] Swap minimize and close on non-Apple systems
        a05e583 Handles null pointer in gl(Compressed)Tex(Sub)Image
        1b1cbe5 [UI] Make emulator usable on high-DPI Windows displays
        8713e23 GL encoder null pointer check before write
        948d57d [emubase] Fix a bad assert in Win32 Thread
        717bb48 Apple camera synchronized access
        d5bddf6 Make WearAgentImpl noncopyable
        df15254 [emubase] Fix some code issues in win32 thread class
        c9bebff [Crash] Fix metrics crash if it failed to get a metrics file path
        bcfbc10 Suggest gfx driver updates more liberally.
        09f16cb Fix a typo in GLEScontext::convertIndirect
        1f82c2b [UI] Add a mechanism for recording UI events.
        3e1419e [UI] Update the multitouch UI with a 2-finger swipe.
        ca1c5fd Pass more non-ASCII characters
        0ce5578 [Crash] Crash in Qt on Mac when unplugging monitors
        6a5cf18 [Qt] Fix the qt build on OS X 10.11
        2dd5cea Dependencies: Build libcurl with debug symbols.
        38e74ce Send more than 1 digit of altitude with the GPS location
        622909c [Ui] Fix a horrible-looking help -> emulator help tab
        b024495 Crash fix: check for NULL surface when destroying it
        e1f11b5 Remove 32-bit Linux binaries from build.gradle.
        f08824f Move crash report preference to second column.
        c5a2d41 Obsolete 32-bit Linux binaries.
        2632292 [Base] Add a circular buffer implementation
        7b6750c [Crash] KmlParser didn't check for null xml content
        eb65fdf ANDROID-CODING-STYLE.TXT: Better doc for scoped enums.
        655d02a [Emulib] Refuse curl operations if libcurl init failed.
        891af35 [Emulib] make utils/filelock thread safe.
        0d8d568 [crash] GpxParser could potentially crash on bad xml in gpx file
        c0a5a7a Crash fix: accessing NULL pointer in loopIo_fd call
        3174fe4 [ui] Adjust Settings page now that "Send crash reports" is a pull-down
        6256351 Change crash report preference to a dropdown.
        4af6f31 [Crash] Get rid of heap allocation in crash handler
        7e86e70 [Emulib] Fix a bad define for MAX_PATH on Windows
        3f26697 [Win32] Improve the Win32UnicodeString class
        77ca4ab Don't prompt users to upload crash on exit.
        59e4662 Instrument to catch crashes in tcp_output
        d600a9c [Crash] Allow replacing the crash report data instead of appending
        74f2f83 [crash] Create the QSettings less often as it crashes on Mac
        1c4f706 Fix prebuilt default autotool make install command
        fb5d9c8 [ui] Zoom-related fixes.
        f932c73 On Windows and Mac, check invalid pointers before glDraw*
        47da960 [ui] Fix an OSX/QEMU1 crash when showing error dialogs.
        bfcad49 [ui] Cleaning up EmulatorQtWindow.
        acba4c8 [ui] Don't take a screenshot when the Help page is displayed
        20768d2 Add warning messages for deprecated window size flags.
        1712364 android_mips.c: Change default cpu to 74Kf
        ee0d773 target-mips: Support for DSP ASE in Android QEMU
        c135fbb [Emulib] Quickfix: Use shared_ptr for AdbLivenessChecker.
        c9e0057 [ui] Adjust the spacing between radio buttons
        b3925ee [Mac build] Support the Mac SDK < 10.9
        23cf517 [build] Now actually fix the build - c_str in right place
        e34443c Fix the build - sumbitted the wrong patch
        0be2d58 [build] Fix build break on Mac - environ is not available
        d62f947 [Crash] Allocate less in attachData()/attachFile()
        8e57deb [ui] Change "SDK Location" to "Backup ADB".
        4904b27 [UI] Refactor the way emulator handles Qt stylesheets
        84e036b Support glDrawElements with GL_UNSIGNED_INT
        0139cce [Crash] Seal the metrics file early when exiting
        572b6be [Crash] Attach process memory usage to the crash report
        3ed49da [Emulib] Rename ScopedHandle to ScopedFileHandle
        439ed27 [Emulib] Move ScopedHandle into Win32Utils
        a1f38de android/console.c: Fix minor typo (oubtound -> outbound).
        5eda819 [Crash] Change the attachData() function to allocate less...
        f493e0c [Emulib] Make win32-specific headers easier to include
        bc25330 Add -use-system-libs command-line option.
        cb8f3b8 Re-add the "-scale" command line flag.
        42a3831 Add memory, AVD and HAX info to crash reports
        660715c Fix forward declaration of RenderWindowMessage
        321bf5c [Emulib] Prevent thread leakage from android::base::Thread.
        e390313 emugl: Remove obsolete functions from glUtils.h
        d81be26 emugl: Remove obsolete GLErrorLog.h
        1e34639 emugl: Remove codec_defs.h header.
        b41583d emugl: Remove obsolete GLClientState.{h,cpp}
        ececee7 emugl: Move i/o stream implementation to libOpenglRender
        c6f33e5 emugl: Refactor GLDecoderContextData class.
        a96e81a emugl: Remove obsolete source file GLSharedGroup.cpp
        bd46725 android-emugl: remove stale qemu-gles socket files
        7c73938 [Build] Fix build on Windows - include the proper header
        2759098 [Mac build fix] Use the proper clock for wall clock in System
        5e80807 [Crash] Log qemu main loop parameters into the crash report
        d477452 [emulib, qemu1] Attach command line and environment to crash
        53dec33 [Emulib] Added a System::envGetAll() call
        559c2b4 [CrashReporter] Function to attach additional data to the crash report
        32ecaa8 [ui] Make the zoom button show the correct state.
        0ea0d2d Check invalid pointers before sending them to glDraw*
        f710e7f Handle v024 pixel format for macbook pro webcam
        34c3012 [Metrics] Send wall clock in metrics an if exiting has started
        f98c618 [Emulib] Add wall clock time to System::getProcessTimes()
        b755860 'Auto send report' checkbox
        ddc39fb [ui] Fix zoom on OSX/Windows.
        7e33ebf Change the Qt build script to use plaintext patches
        27fdd69 [qemu1] Fix the use after free in the gui_timer
        fc96614 Disable multi-touch support for api <= 21
        fc813b9 Save user crashreport prefs; detect exit crashes
        3e2871d Fix Win32UnicodeString::append not copying all data
        8eb22ac Windows: Fix compilation with newer GCC toolchain.
        7ff0424 audio: Avoid 100% CPU usage on Linux
        64da37d Check the scaled skin surface bitmap before using it
        55fd61d [ui] Change from using QErrorMessage::qtHandler()
        4df2cdf Patch QImage::smoothScaled to check for null pointer.
        9a9c02f [ui] Warns users of a non-multitouch AVD on click not show.
        47cf47f Create default cache.img if missing in build environment
        f655161 [ui] Fix some resizing edge cases on Windows.
        840481d [Mac] Fix a possible dangling pointer use in Mac quit command
        98eb464 emugl: Export renderer public API headers.
        0af92dc android_pipe.h: Remove android_pipe_set_raw_adb_mode().
        3f76033 [ui]: Change how the emulator reports screen dimensions.
        6a5cdc9 [qemu1] Really initialize process on the main thread.
        db7f902 [Crash] Report an internal error on OOM in skin redrawing func
        b514f1f [Crash-Die] Support of crashhandler_die() in the service
        5186a90 [Crash-Die] Add a crashhandler_die() function to the reporter
        7fda836 [OS X] Quit correctly on Cmd-Q
        16edb6e Leak emulator-qt-window to avoid exit crash on OSX
        45d7a67 Fixing skin image unrefs
        a01e3c8 [Build fix] Test crasher didn't add emulib ldflags
        ede76aa [qemu1] Route Ctrl-C event to EmulatorQtWindow::closeRequest.
        5ed7766 [CrashSys] Simplify the crash system work with paths
        44e4284 [Emulib] PathUtils::extension() and variadic-args join()
        51012af [Emulib] Add a convenience ctor to StringView
        96a7e17 [ui] Make the error dialog modal.
        58c3c28 [Emulib] Report error when screenshot grabbing fails due to bad Sdk path
        c0e8241 use hw.lcd.depth in config.ini as default bpp
        997089a [Emulib] A Uuid class implementation
        52bc312 [Emulib] Add libuuid to the prebuilts
        7d262ad [Build] Support custom make install commands for prebuilts
        9e2fa4c [ui] Pass key-releases through the multitouch overlay.
        6795766 ui: Remove the "-scale" flag and "window scale" command.
        1636373 ui: Adjust button boundaries
        ed2f23b Disable update-surface path when emugl rendering
        8efade7 [Emulib] Cleanup force terminated subprocess
        7cb0aa1 ui: Prevent the emulator window from drifting on resize.
        2edd71a Skip skin display initialization in no-window mode
        09efc62 Handle memory allocation failure when udpate framebuffer
        7a63bdd Fix inconsistency in the guest and host when GLES version=3
        0f4557b Fix handling of "-prop xxx=yyy" on the command line
        bd5898f Fix misspellings in toolchain generator.
        37df147 Fix segfault on startup when keys are pressed
        32d354a android_pipe_pingpong_unittest: new unit-test.
        b5e47aa TestAndroidPipeDevice: new testing helper class.
        a3a6a9c android_pipe.h: Improve interface for testability.
        69a4f3f Use the thread specific looper in gles for qemu2
        874dc4d Fix typo - "Ctrl+Alt" shouldn't have spaces
        af418b3 ui: Make the multitouch UI prettier.
        02c598a Removes the "themed pixel line" beneath the nav bar.
        b6e3fb3 AddressSanitizer - initial usability improvements
        4cf3e5f [Crash] Show an error message about VirtualBox when Hax sync fails
        11e1587 Add build option for sanitizers.
        41f5a69 [Ui] Fix a crash on exit if adb install was still running
        b5537d8 [Issue 197067] Fix weirdness with "ungrab keyboard" on help page
        f0f8c66 Fix crash on exit for AVDs using webcam on Mac
        ba815d0 Fix null functions in gles2_decoder_context_t
        2c87c90 ui: Add contrast to extended window
        d19d461 Move opengles_free to main thread
        e976ad5 [Emulib] Add adb liveness check.
        8cd9fa9 [Emulib] Enable base/* verbose logs with -debug-all
        e9b1961 [OS X] Make the "Quit" menu entry functional
        423f1b6 ui: Updated the resizing implementation on OSX.
        3d79448 (Cleanup) Update old users of path_getSdkRoot.
        ca547ff [Emulib] Add ConfigDirs::getSdkRootDirectory.
        ab7715d [Emulib] Fix debug tags parsing
        58c5d19 Adding dsymutil to mac symbol generation
        4619a38 Implement an OpenGL Qt widget based on emugl libraries
        54bb4ad Revert "Revert "Change the default hw.cpu.ncore to 2""
        baa0695 Revert "Change the default hw.cpu.ncore to 2"
        b7aed4e emugl: Convert s_gles1 and s_gles2 to GLESv1Dispatch / GLESv2Dispatch.
        74c5d10 Remove anisotropic filtering unsupported message.
        2f37cd9 Downgrade anisotropic filtering from a warning.
        370f68e Disable dedicated RenderWindow threads.
        0da8339 [Emulib] Set correct sigmask in System::runCommand.
        d90f88c [qemu] Remove global SIGCHLD handler.
        37354ee ui: Eliminate crash when entering trackball mode
        f29f62f [Emulib] Remove unsed GoogleAnalytics metrics client.
        bdf0c12 [Emulib] Fix a metrics_reporter crash (NULL --> std::string conversion)
        779fbc1 [Emulib] Fix PodVector's const_iterator.
        487ab36 GL 3.0 extensions: Misleading errormsg suppression
        2a739e3 Limit stack search for gfx crash user suggestion
        28a403b Add comments and report id to crash report dialog
        1ac6780 Adding qemu1 console crash command
        aeff0c1 Disabling crash-service unittest on mac
        913b8a6 Fix mesa on windows
        2a28643 [Emulib] (Somewhat) modernization of metrics_reporter.
        7df0a85 ui: Fix a crash in skin_window_move_mouse
        e8e5507 Additional check for GL 3.0 extension getting
        b580796 Ensure graceful failure when the skin bitmap is null
        4839be9 ui: Allow for multiple screens when positioning the emulator window
        02310aa On gfx driver crash, suggest software rendering
        0423b5e emugl: Remove library loading from decoders' initGL() methods.
        839940d emugl: Make glGetStringi() a GLESv3 extension to avoid compiler warning.
        395961a emugl: Add a few more entry points to GLDispatch
        e073998 emugl: Add ANDROID_SKIN_INCLUDES
        048d491 emugl: Define EMUGL_SRCDIR and EMUGL_INCLUDES
        30ba0ed emugl: Move OpenGLESDispatch API headers to .../host/include
        78bf951 emugl: Move public API headers to .../host/include
        99c545e Fix Windows WM_DESTROY warning on exit
        3ba830a ui: Remove the multitouch overlay when losing focus.
        0505580 Revert "emugl: Refactor libOpenGLESDispatch"
        fda1d55 [Emulib] Add RecurrentTask and simplify ParallelTask.
        d3e7710 [Cleanup] Get rid of some compier warnings
        4730bcf [Emulib] Fix the StringVector initializer-list ctor
        5e006c3 Change the default hw.cpu.ncore to 2
        b6cf582 Boot with -no-window and any skin
        6e6b29f Fix some ugliness at the top of extended controls window
        82dae65 UI Refactoring - split up extended controls [final]
        5e67873 Remove extra format from D(...) in surface-qt.cpp
        244b90b ui: Default the device location to the Googleplex
        a8a549f [Emulib] Metrics: Also report host os with crash stats.
        f130685 Fix scrollbar styling
        45aa551 UI Refactoring - split up extended controls [part 3]
        34291e9 (WIP) Add new gfx drivers from crash reports
        e53882d [Emulib] Fix some breakpad warnings (macro redefinition)
        9d6b0d7 [Emulib] System::runCommand improvements.
        55ea00b emugl: Refactor libOpenGLESDispatch
        26c2af1 [UI] Cleanup the method that caused warning from Qt
        8ddf6a8 [CrashService] Fix some issues with crash in Gfx driver detection
        96c0ace Fix booting problem with resize2fs on windows
        c58f9f5 [Crash] Check the UI agent before accessing it as it can be null
        f7c542d Make user suggestions from crash dump
        91fe815 [Emulib] Workaround Cygwin issue with CreateProcess and null std handles
        97d89de [Emubase] Remove unneeded functions from StringVector
        74ff767 (WIP) New hwinfo collection flow
        36583f6 ui: Undelete the labels on the two Settings paths
        3491c5f [Emulib] Add an object to run task in thread and collect result.
        61b82d5 emugl: Handle glGetString(GL_EXTENSIONS) deprecation.
        d432b25 package-release.sh: Add --debug option
        29bb7bd package-release.sh: Fix packaging of qemu2 darwin binaries
        ca040ac [UI] Make extended controls active and retain old tab on setOnTop()
        52b035c [CPUID] Fixed the virtualization instructions detection logic
        9cae231 Fix SmartPtr crash
        ae4b807 Force touch instead of multi-touch for api 10
        2c2b4fd Replace more exit calls with chain-of-returns.
        c723df5 Allow more responsive UI.
        f2a801b clang-formatted -no-window changes
        6fbb63a Adding -no-window support in the Android Emulator
        d92a395 ui: Adds a popup recommending x86 AVD's if supported.
        463b032 ui: Remove bogus tool tip from SEND MESSAGE button
        e0cc3fe [Qt] More fixes to dialog generation.
        ce354fb Trailing EOL breaks the test.
        be446de Option to collect system info on crash
        1a0b24c [qt] Set parent widget for progress dialog.
        f3f4332 ui: Updates the file push dialog to show progress.
        882d293 Fix missing EOL in text files.
        6168e7c Fix line endings DOS -> UNIX.
        33b1676 Remove executable bit from non-executable files.
        48d6ae7 Split EGLDispatch and GLESv*Dispatch from libOpenGLRenderer
        d48df62 build-qemu-android.sh: Add --no-android option.
        b6d0217 [Emulib] Use new path for Android Studio installation id. [RELAND]
        942c168 Revert "[Emulib] Use new path for Android Studio installation id."
        8fdb7b9 ui: Remove spurious error pop-up on "end call"
        b471adb [Emulib] Use new path for Android Studio installation id.
        c4d4307 ui: Emulator "always on top"
        7e849e9 ui: Minor zoom fixes.
        f94ff8d Create common utility functions for handling DNS
        5a89c71 [Emulib] Bugfixes in android::base::Thread
        747fa1a [Emulib] Sleep for active timers in generic looper
        9e11b0b Add descriptions to tool tips on the tool window buttons.
        99f91c1 ui: Fix the rotate keyboard shortcuts on OSX.
        5bb5240 ui: Fix more flicker on rotation.
        0249d55 Allow anisotropic filtering.
        4375d17 UI Refactoring - split up extended controls [part 2]
        a64d10a Rotate left/right using keyboard shortcuts
        e313001 Update skin files documentation.
        3399b48 Bring back the separate rotation buttons
        8052ff7 Use a bogus domain name in invalidURL crash reporter test.
        f56be5f Changing crashsystem spawn service to runCommand
        8553948 [Qemu] Get rid of most obvious exit() calls in qemu1
        b872aee [eGl] Fix the crash if glGetString() returns NULL
        e4a65cb [Metrics/UpdateCheck] Correctly encode the query string when reporting
        42af71e [Emulib] Add Uri::FormatEncodeArguments() to encode query string
        f687d93 [Emulib] StringFormat() improvement: support string classes
        a5c5302 UI Refactoring - split up extended controls [part 1]
        612d37f [Egl] Fix the finalization of FrameBuffer if it wasn't created yet
        88d02d6 [Metrics] Add better debug message to metrics uploading
        3dab939 Fix appearance of "play" button icon on Retina screen
        a11d28b Fix build breakage caused by https://android-review.googlesource.com/#/c/189031/
        726637d base: Accept StringView objects in logger.
        49f3623 Fix -gpu mesa when pressing power button will crash
        0428d29 base: Group System.h functions by category.
        31f27a7 Full-skin rotation
        529f9a9 base: Migrate android::base::System functions to use StringView.
        678a5b8 metrics: Add object to automatically flush metrics file.
        fbeed26 Qt: Implement a Qt event loop based Looper.
        ac4b8c0 [Emu-Check] Add a new 'hyper-v' check to the emulator-check
        054c927 [Emulib] Fix and extend the Win32UnicodeString copying/assignment
        a5a893f [Emulib] Search for an executable on path when launching (Windows)
        14f506f [Emulib] Change Win32UnicodeString to constuct from StringView
        1eb8484 [Qemu1] Make /dev/kvm fd close on exec
        0320267 [EmuCheck] New emulator-check binary for Android Studio queries
        533dd97 Put multi-touch setting back
        368890a skin: Fixes more flicker on Windows.
        0eb2ca7 Code cleanup crash service
        5dfcdb6 Clean up crash reporter, increase wait interval
        dd0bf82 Changing win crash reporter to wait on named pipe
        4cc1b13 [Ui] Fix the segfault at exit (again x3)
        41b4526 [UpdateChecker] Removed unnecessary StringView() ctor call
        8a24018 [Emulib] System::runCommmand() function
        dd9c448 [Emulib] System::findBundledExecutable() now searches in root too
        b338a59 [Emulib] PathUtils - add toExecutableName() and StringView params
        7fdeb6b [Emulib] Small improvement of Uri::Encode/Decode()
        a3c5165 [Emulib] Improve the StringView class
        3111670 [Emulib] Add = {} initialization support to PodVector&StringVector
        17cf32b [Emulib] Add a header to enable enum class fields
        182c566 Patch QT mingw qmake.config for release_with_debug
        1f79806 Change crashreport errors to warnings
        4a403b0 [Emulib] Fix update check URL formatting.
        5bcb83d skin: Fixes flicker on resize (Linux/Windows).
        65d5cd1 [Launcher] Fix engine autodetection logic for -help and -version
        07f50cf [UpdateCheck] Don't uriencode the web site address
        b399658 [Qemu1] Don't delete main thread's looper with metrics teardown
        a43b6ce Add build-id linker flag to prebuilt build scripts
        ef483c4 Re-Adding crashreport unit tests
        14e5aee [UpdateCheck] Pass additional arguments to the update check url
        2581930 Add build-id linker flag to new BUILD_TARGET_LDFLAGS
        a639a55 Make the tool window look nice on retina displays
        6329642 Unit test updates following update checker changes
        d2a6ea9 [Emulib] Implemented a missing StringView(const String&) ctor
        c787dcc [Emulib] Add System::getOsType() method
        2f0dc3e Add tool tips to tool window buttons
        5fde8f8 SDK tools version --> emulator version updates
        0c3e6b5 Allow ANDROID_GL_SOFTWARE_RENDERER=1 in QEMU2
        fb3e449 android/curl-support.h: Refactor CURL using code
        d932953 android/qemu-setup.c: Move to AndroidEmu.
        ed0e6be android/emulation/android_pipe.c: Move to AndroidEmu.
        9705caa [Launcher] Don't rely on argv[0] when looking for the engine
        3fba32b [Launcher] Renamed main launcher file .c -> .cpp
        bda00f4 ui: Changes the controls for zoom.
        29ef892 android/main-common-ui.h: New header.
        930fd90 Fix --out-dir=<dir> build.
        9d3aca5 build: Add new definitions-*.mk files
        7eac752 build: Rename OBJS_DIR to BUILD_OBJS_DIR
        75884a0 build: Get rid of SRC_PATH + small cleanups
        982c3af build: Rename BUILD_DEBUG_EMULATOR to BUILD_DEBUG
        c825124 build: Rename local-host-tool and local-host-define
        e735ea6 build: More HOST_XXX renames.
        16e325c build: Rename HOST_OS and HOST_ARCH
        2054ea5 build: Rename HOST_XXX and MY_XXX variables.
        7c21815 build: Move definitions from Makefile.top.mk to binary.make
        3ad4d79 build: More renaming of internal variables.
        d909771 build: Rename SYMBOLS_DIR to _BUILD_SYMBOLS_DIR
        664c63c build: Rename BUILD_SYSTEM to _BUILD_CORE_DIR
        902cd51 Move Makefile to android/build/main.make
        ab6d0f1 build: Move emulator-libui to Makefile.android-emu.mk
        38c6beb build: Cleanup emulator-libui rules.
        2b3b168 build: Move GPS/KML parser code to AndroidEmu.
        8903d40 build: Get rid of emulator-common module.
        18b3b8d Move audio-test.[hc] into android-qemu1-glue/
        fbbe0ef Fix windows unit-tests.
        ac5b9f7 Removing osmesa from mesa build script
        ebb91f7 ui: Stop the emulator window from moving during rotation
        3210d9a Implement the help hotkey
        1d40507 Change the "home" key shortcut on OS X
        794a9d2 Make hotkey strings on the Help page platform-specific.
        11374dc Make crash dump details path more robust
        123edb6 Fixing win64 crash service path
        72bde8a [Mac] Fixed the haxm memory leak when adb is launched from emulator
        92be18b [Emulator] Fix freeze on exit (Windows)
        bd6d15b [Emulib] Fixed System::runSilentCommand() for Posix
        db384ed Revert "Force windows crash-service path to 32 bit"
        c96cbdb Force 64 bit emulator on OSX
        b8cd20e Fixing windows crash service client detection
        978fafd Force windows crash-service path to 32 bit
        e37d841 HACK: Fix -gpu mesa on qemu2
        8593b7f [Emulib] System::runSilentCommand() improvements
        abdc2c8 Install prebuilt dll symbols during build flow
        3b91989 Move copy of prebuilt dlls to android-configure
        6d858bf ui: Updated Qt UI keyboard shorcuts.
        eda4eb2 build: Move AndroidEmu unit-tests.
        fa72f03 build: Move crash service sources out of AndroidEmu.
        bf20bd9 build: cleanup AndroidEmu dependencies.
        8ead67f build: Move android-wear into AndroidEmu.
        5eb2e37 Makefile.android-emu.mk: Move jpeg-compress.c and uncompress.cpp
        4dbf961 Fix out-of-bounds access in Qt image scaling
        25c0454 Makefile.android-emu.mk: Reduce dependent sources list.
        626ce62 Makefile.android-emu.mk: cleanup.
        24ecc2d Use different SwiftShader library naming scheme.
        e268e26 [Launcher] Allow '-debug-init' to act as '-verbose' in launcher
        a294563 [Emulib] Print the 'sdk root not found' message once
        a9a7b97 Adding symbols and strip to prebuilt build scripts
        dbf34e8 Qt: Handle adb start failure when close emulator
        99a4c1e [Emulib] Unquote the ANDROID_SDK_ROOT path on Win32
        3bd6103 Fix emulator hang when receiving a phone call
        e7cbccd Send adb shell stop before close
        119ce8d Add 'mips' to ranchu backend support list
        30c4f1c emulator: Fix platform build run.
        7d93a59 build: Move EMULATOR_COMMON_XXX to Makefile.common.mk
        f57837d [windows] camera: Remove QEMU dependency.
        b849f04 Allow -gpu swiftshader if swiftshader is available.
        82eca1f build: Remove obsolete LOCAL_NO_DEFAULT_COMPILER
        67068fc CleanSpec.mk: Remove obsolete file.
        0b0af35 Makefile: Remove LIBS_DIR
        2ea53d0 Makefile: Remove obsolete VPATH usage.
        71ad206 Makefile: Rename CONFIG_H to CONFIG_HOST_H
        f8447b0 Fixes a multi-touch related bug (see below).
        7b357b2 [Emulib] Cleanup of UpdateChecker (use the async API)
        a053494 [qemu1] Move the metrics reporting into separate thread
        e0eb2f3 docs/DEVELOPMENT.TXT: Update docs.
        da4fa8a [Emulib] C wrappers for the c++ android::base::async() function
        5eca844 [Emulib] async() new function + auto signal masking in new threads
        27ab19c [Cleanup] Renamed metrics files .c -> .cpp
        d00459b android/camera/camera-capture-windows.c: translate to C++
        d36e2f7 Fix API 21 x86_64 boot.
        f12852b Change some hotkeys' prefix from ctrl+shift to ctrl+alt
        5d7c859 [Ui] Set the splash screen window icon
        cd49419 ui: Disable multi-touch until it works on QEMU2.
        cd692bc Fix path_is_dir() on Windows.
        8651fa0 [Emulib] Check the kernel version to match the selected engine
        75cf63d emulator: Make QEMU2 the default emulator when possible.
        fa56bef Remove OS X cleanup hack.
        3b51c2d Fix cdma index out of bound in qemu1
        7d70249 [Ui] Load latest available emulator version into Help:About
        5b7acd3 ui: Implement 'Android SDK location' setting
        583fff1 Center startup progress bar for Windows.
        aa9d392 ui: Adds two-finger pinch/rotate gesture to emulator UI.
        a2646a0 Removing curl verbosity from upload_symbols script
        0f94de9 Fix upload_symbols curl command
        2d36d17 Changing upload_symbols to increase curl verbosity
        52dfb6f Increasing CrashService WaitCrash timeout
        e9664ba Increasing CrashService unit test timeout
        84304bd Adding additional CrashService unit test check
        7237a15 Set minimum HAXM version to 6.0.1
        647c300 Disabling CrashService bad URL unit test on windows
        676252b Screen doesn't sleep when pressing power button on mac
        9ea8ec2 Updated looks for startup dialog.
        21e3eca Adding more checks to CrashService unit tests
        efa31cb Revert "Revert "Breakpad Integration""
        95bea80 [Emulib] Make sure there's no trailing slash in the app dir
        363be76 ui: Change 'Recents' to 'Overview'
        8232611 ui: Show a "Starting..." pop-up until the main window first appears
        ba3b353 Revert "Breakpad Integration"
        e5c18a0 [WearAgent] Moved adb service connection to a separate thread
        8d6434e Fix tool window buttons appearance when pressed
        e495af2 Fix issue 196108: some keyboard shortcuts don't work on Mac
        93b6f08 [Emulib] Made ScopedPtr::reset() safer
        298a858 [Emulib] Added Thread::maskAllSignals() method
        bea6c12 Breakpad Integration
        330da62 Add evil hack to prevent crash on OS X and Linux.
        07a63d6 [QEMU1] Fix segfault on exit/remember window pos
        9c7995a Fix text elision in screenshot save path
        59edbd3 Exit zoom mode before rotating.
        5216b23 Rotate should be directionless for now.
        63b0290 [Emulib] Improved scoped ptr, auto lock and system
        c40e33b [Emulib] New FunctorThread class
        3288d20 Minor comment change, warning fix, copyright text
        190a8ae ui: Replace two rotate buttons with one button
        19ad1a1 ui: Query battery status to populate the battery UI page
        3cd3793 Fix offset bug of rotating after zoom.
        59f21b3 Fix buggy native scrollbar on OS X.
        f78dddd [Emulib] Modernize DISALLOW_COPY_AND_ASSIGN(T) macro
        8730449 GPU based texture scaling.
        7df2609 Revert "Re-upload: Fix some memory leaks."
        13620db Remove ranchu intermediate launchers.
        73d2acf Include lib64 into SDK tools for windows
        5f72809 Fix large file support for 32-bit Windows binaries.
        92eb7c4 android::base::String.release(): use strdup()
        c68a1ca Fix crash that may occur when closing the extended window
        0b918a5 Fix double lock when using serial_recv
        44586fa ui: Hide controls that aren't functional yet.
        a13f91c [Build] Fixes some warnings in camera API
        45803fb Fix Windows camera lockup with smp > 1
        609ef8b [Windows] Emulator runs on the parent console in parallel
        d0adfc1 Re-upload: Fix some memory leaks.
        ce46997 Renaming VERSION_STRING to EMULATOR_VERSION_STRING
        8a5dd3e Adding android build number to version defines
        eb659d8 Fix rotation.
        21327d8 [Windows-x64] Enable x64 versions of emulator on Windows
        b3dd29c [Qt] Windows - tool window closes leaving emulator running
        d3ba32b Revert "Fix some memory leaks."
        d62de1d Fix minor compiler warnings
        87ea036 Fix some memory leaks.
        b5d442c Fix Darwin build.
        e989b40 build: Remove SDL-based UI support code.
        a578dbf Updating breakpad build script
        9650569 Fix bug - load gpx/kml inactive on first run
        6cfe0e5 Fix repainting issues on Windows
        b396929 Changing PACKAGES.txt breakpad description
        51ebf12 Smooth icons on Retina screen
        60a7792 [Qt] Convert screenshot directory path to native OS format
        b6d5301 ui: Restore lines under editable widgets
        0141650 Adding breakpad patches
        2bfaae8 android::base::String: Implement release() method.
        a32245c Add Qemu2 backend support for mips32 using -ranchu switch
        9e63983 path_split(): Move to android::base::PathUtils
        7c5e4dc path_can_xxx(): Use android::base::System.
        4dfa6f5 path_get_absolute(): implement with android::base::System
        3230d88 path_is_absolute(): use android::base::PathUtils::isAbsolute()
        9c45306 android/utils/path.h: Start using android::base::System.
        859b506 Tool window buttons to send appropriate events
        b93d649 Exit with error message when screen is too large for software GPU.
        6ce13cb Add persistence and async loading to the Location page
        d268cc5 Fix Windows freeze on startup by locking qemud mux
        cd5a128 Remove an unneeded swap function
        7f03314 Add decoder for creating client EGL images
        9426c10 android-rebuild.sh: Fix --symbols option.
        fd52a47 Implement a setting to control grabbing keyboard input
        9852636 Increase FPS/decrease frame hits+jerks for smp>1
        1c31f57 [Qt] Fix intermittent crash on close when extended window is open
        b8bf3c7 ui: Revert to a uniform Home key
        b77a5bd Fix shaper.h to be compatible with C++ sources.
        9f990ad Ignore hw.cpu.ncore in classic emulator
        488f0e3 skin/qt: Hide all title bar buttons on OSX
        15a6922 [Qt] Fix the use-after-free bug in Qt UI + skin
        e20f099 [Qemu-GL] Fix the use-after-free bug in EglWindowSurface
        1d196d4 [Common] Improved LazyInstance<> code to be more secure and clear
        9021830 skin/qt: Make the screen flash when a screenshot is taken.
        c0a97ce ANDROID-CODING-STYLE.TXT: Document '#pragma once'
        ab33382 ui: Improve pull-down lists on Mac
        19c3801 ui: Add controls to the Settings page
        29b9e53 Fix the audio problem in goldfish
        089c75b skin/qt: "Marching ants" zoom!
        e5540da skin/qt: Window management updates.
        0bf5c47 ui: Move "About" from the Settings page to the Help page
        8c13c8a [Qemu] Move the VERSION_STRING definition into AndroidEmu
        2135e83 ui: Tweak the look of the Help page
        4a278c6 [Launcher] Correctly set up the library search paths on Windows
        204e65e QEMU2 camera support (AndroidEmu changes)
        0d876cd [AndroidEmu] Pass the correct port number to initModem()
        e19046a skin: Allow for additional device rotations.
        250a2ea [Qemu] Reduce input latency in Qt UI
        f638250 ui: Adjust the size of the text on action buttons
        de28c0e Make system images read-only by default.
        f985e25 Fix blackscreen with gpu off
        962bbb7 android::base::ScopedCPtr: Add documentation and array access.
        99b9fd9 Reduce CPU usage with gpu=on
        6e4229e Don't wipe data partition before locking it.
        a643183 ui: Implement media keys in the UI
        8dcbe9b ui: Make the Zoom button toggle between up and down
        ad6530e Bring back old "rotate" functionality and fix d-pad buttons.
        915f0d0 ui: Put the Settings tab before the Help tab
        0c5c07c [Qemu2] Fixed the SDK path calculation to work with qemu2
        c27c9e8 AndroidEmu: added ScopedCPtr alias to manage malloc()'d memory
        e654c48 Disabling grep highlighting on colorful terminals
        dc9b005 Adjust UI look--partly for Mac
        132c9e8 Move emulated NAND partition setup code.
        273b8af Move android/ext4_resize.[hc] to android/filesystems/
        0534e0c Move initial partition handling to vl-android.c
        2e66e85 Move NAND limit code to android/emulation/
        0a8b75d build: Add --ssh-wrapper=<command> to build scripts.
        132030c Move ext4_resize.cpp to AndroidEmu
        6b3bb75 Added System::getLauncherDirectory
        53dd5cd ui: Remove spurious #define to eliminate compiler warning
        497399c Address zyy@ comments on keyboard shortcuts change
        1151645 Moved GetWindowsError to Win32Utils::getErrorString
        be386be skin/qt: Fix crash when sending SMS without modem
        8935782 Fix low framerate problem.
        d50d285 Adding Breakpad Patches
        37a230f Fix Darwin build.
        d49765c Change function signature to eliminate compiler warning
        bf1b2c9 skin/qt: Fix an error-message related crash on OSX.
        866761b Altering keyboard shortcut behavior
        832f05a Added -accel-check command line option
        72847a3 Consistently use stdint types in target-i386/hax-interface.h
        d35900e Added a bunch of x86_cpuid utility functions
        bbd6f6b Implemented WindowsInstaller::getVersion
        abcb684 Fix the Help page and QTabWidget styles
        7b1d24f Display screenshot save path in a QLineEdit
        ff9dbd6 skin/qt: Toggle the zoom button when using the keyboard shortcut.
        eaccf34 skin/qt: Prevents window from moving on resize.
        a0f8dca Improved Scoped<Resource> swap tests to check resource
        39568f8 Added ScopedRegKey implementation
        f3914ee ui: Correct the color of the dark-themed Help icon
        2209d08 qt: Fix cleanup bugs.
        7ce4327 qt: Adjusting the look of the UI
        f93fd00 Add a "Help" page to the extended window
        35f89ea skin/qt: Keep the zoom button down when in zoom mode.
        9df26bc Disable play/stop button when there are no GPS points to play back.
        6339439 skin: Fix passing keyboard key presses to the AVD
        9c14775 Qemu: restore original ADB in qemu2
        de5454f skin: Fix the sdl2 build.
        6d2b8c1 Fix --ui=sdl build (unknown identifier in event-sdl2.c)
        4f1e6f5 qemu-launcher: Fix Windows bittness issue (force 32 bits)
        47e60eb build-qt.sh: Add patch to fix Chrome Remote Desktop crash.
        3bff4ff skin/qt: Update screenshot to save to default location.
        164dc1c Fix typo in debug output
        628ca48 Adding aux vector to elf definitions
        08df772 Location page: remove pause button, add playback speed control
        e9a5466 Add a Help icon to the Qt resource
        0fd6e59 Use QSettings to save and restore user selections
        4bc2537 Enable guest-side GPU emulation.
        6684af8 Fix styling for QTabWidget tabs
        1e8081d Add controls for sending a single GPS point on the location page
        da22742 Fix --out-dir=<path> build.
        7e1b36b Edit the qemu2 launcher to pass all arguments through
        d76d942 [Qemu2 qt] Ported better path_is_absolute into AndroidEmu
        41d2e56 [Qemu2 qt] Split out the androidEmu library
        fa349f6 QEMU1 changes to make AndroidEmu usable in QEMU2
        6a98028 Change the colors of the DPad controls in the dark theme
        dc2057b Add controls for modifying light, pressure and humidity sensors.
        0ef6575 build: Add local-link-static-c++lib function.
        2c78847 Allow the user to select the folder for saving screenshots
        fd149cb Qemu: moved looper-qemu.* into the glue code
        ac52cfa Qemu: fixed a typo in comment
        0595c04 Fixed a bad include in qe_path.cpp
        4f19d4d Add some buttons to the UI resource
        7c73c96 Updates Qt "zoom" controls.
        61ee452 build: Build QEMU2 from sources by default.
        506d3ee android-configure.sh: Panic if PC Bios files are missing.
        e29fd07 build: Allow modules to specify custom CC, CXX, LD and AR tools.
        f96bb90 build: Remove my-host-tool
        a105bdb UpdateChecker: better message about newer version
        fcf5642 docs: Added commit message instructions
        e096428 Fix flicker in Google Maps
        3f7a9d4 Fixes zoom on devices with high device pixel ratios.
        343a26d Darwin: Get rid of '-undefined dynamic_lookup'
        d024acc build-qemu-android.sh: Disable VNC SASL support.
        c4d8732 Add opengl_alive metric variable; track in emulator init; exit if openGL init fails
        8032cd3 Add a widget for editing angle measurements
        41c01b0 Add support for light, pressure and humidity sensors in the emulator
        589d6ac Fix emulator skin on retina screen.
        c9147ed Fix aliasing for OS X with retina screens.
        d3c047c Implement the new keyboard shortcuts for the extended settings window.
        aa6da12 build: Simplify QEMU1 build rules.
        9f4e947 distrib/jpeg-6b/libjpeg.mk: Simplify build script.
        ba20386 Makefile.qemu-launcher.mk: Simplify build script.
        f994129 build: Remove un-necessary tabs.
        739c3f8 Move CXX_STD_LIBS definition.
        434cad1 distrib/Qt5.mk: new build script.
        365e5ee distrib/libbreakpad_client.mk: new build script.
        bc7bc8e distrib/libxml2.mk: New build file.
        e731737 distrib/libcurl.mk: Move LibCURL declarations.
        903d14a Hide Sensors and Fingerprint pages. Clean up the Phone page.
        14bf16e Fix the window icon for Windows.
        2ce2e13 Fix setWindowIcon for OS X by setting it for the entire QApplication.
        aba0376 Clean up the Cellular and Battery UI panes
        0b9f706 Select ranchu kernel when "-ranchu" option is given
        e754df6 android::base::System: Use Unicode file paths on Windows.
        eead247 android/base/Win32UnicodeString: New helper class.
        d67ba8d Fix regex and eliminate compiler warning
        03b7d93 Android build change to recognize all C++ extensions
        1ffd320 Use trilinear filtering to remove aliasing.
        7e0c92d Update Qt error messages for adb-dependent tasks.
        b7f1e42 Add a method to show a particular page to ExtendedWindow
        632fba9 build: removed 'function' from definition
        fffab33 Re-enable the loading of the Qt window icon.
        87f2b00 Update default keyboard shortcuts
        54f9f0b Fix aliasing on skins.
        f6b30e6 android-configure.sh: Add --build-qemu2 option.
        f58b5a4 build-qemu-android.sh: Capture link output.
        9b70504 build: Add support for LOCAL_WHOLE_STATIC_LIBRARIES
        a37fd5e Fix a few minor typos.
        1cceafa build: Add LOCAL_INSTALL_DIR
        b349772 Show the ADB port on the Settings window
        3110f64 Updates the Qt "zoom" code to work on OSX.
        30e53e8 Revert "Revert "base/files: Add IniFile class [Reland]""
        ebd3e51 build: Typo fixup to aosp:178630
        9dc6f69 Revert "base/files: Add IniFile class [Reland]"
        1d13fc2 utils: Update ini.h to wrap around base/files/IniFile.h [reland]
        b0680a3 base/files: Add IniFile class [Reland]
        1d81c5e build: Link launcher program and unittests with -static.
        a67f747 launcher: Always inject custom library path.
        4cff263 build: Copy libstdc++ to installation dir for linux.
        6f2a9a6 Adjust the colors of the buttons on the Locations page
        223d0d1 Implement the Recents key on the UI
        bbab80d Minor fix up.
        ade79c0 Fix up for http://r.android.com/178142.
        13fa09b metrics: Start reporting opengles hardware strings. [reland]
        4b4cd8d android-configure.sh: Fix e2fsprogs prebuilt location.
        92f8e92 Fix flicker when scrolling a zoomed-in window
        406a559 Properly shutdown emulator when closing Qt UI.
        5aa3b13 Modify what is sent for the HOME key
        ca0b92e Extend the debug bit mask to 64 bits
        b5cb9d0 Display the current emulator version on the Settings page
        92fc760 Remove Camera, Hardware Sensors and Record Screen from sidebar
        3ef12d5 Fix the background of emulator window on startup.
        1e8f904 Make the "keyboard shortcuts" page display the keyboard shortcuts.
        64c7bd0 update Android emulator icon files.
        fcb8ddd Rename android_icon.* files to emulator_icon.*
        30b779e Fix Windows build.
        87d7df4 Remove extra call to initSettings()
        3cc1bff Add a "Zoom" icon on the main tool bar
        9b0fea0 Implements "zoom" for Qt UI with host GPU.
        32699cd Pass the debug flag to qemu2 build script
        0ab85f3 Revert "base/files: Add IniFile class."
        5fd78b6 base/files: Add IniFile class.
        d8c4a19 Making window borders visible in WIN32
        c4a5e58 Move QEMU1 auto-generated to $OUT_DIR/build/
        0a1c704 build: unified module definitions for 32/64 bits.
        aef2c7a build: Move common module declarations to Makefile.common.mk
        61b409e build: Rename Makefiles.
        aa51782 build: Remove a few obsolete definitions.
        b3195e6 Remove sources of zlib, libpng and libSDL2
        5367336 Makefile.*: Get rid of QEMU_HOST_TAG
        e7361d2 android-configure.sh: Small cleanup
        509bb43 Make Breakpad symbol generation optional.
        348d357 build: Strip final binaries + move build files to $OUT_DIR/build/
        20674c1 build: Fix intermediates-dir-for definition.
        f4a67de android/build/clear_vars.make: Clear LOCAL_SYMBOL_FILE
        4526298 Further improvements in Location page
        a36b3a9 build-qemu-android.sh: Always force the SDL2 ui backend.
        5341621 build-qemu-android-deps.sh: Fix Darwin sdl2.pc file.
        d64c594 Adding pc-bios to darwin remote builds
        dec0f4c Change package_release to build qt by default
        07054d9 Fix segmentation fault in charmap.c
        93b6069 Change buttons on location page
        7ef6972 Improvements in the appearance & behavior of Location page
        06a4d71 Fix the "minimize" button
        a10383b Add a script to measure the boot time of an Android device or AVD.
        2021787 Fix quoting in Makefile.
        12669e5 Make extended controls window unresizeable.
        2601abd Build Qt UI by default.
        f777059 Default to building packages with C++11.
        137db50 [Refactor] multitouch-screen.c to AndroidEmu
        0be30fd Revert "Build Qt UI by default."
        f545251 Fix adb hang when communicating using qemud.
        a920532 [Refactor] Kill last two glue #includes in the lib
        a755fec [Refactor] Got rid of glue agents references in main-common
        0b87a38 [Refactor] qemu-setup.c to AndroidEmu
        2733a26 Remove "SD card" pane
        e66408a utils: Small changes to iniFile API.
        e5c0b03 base: Add ability to LOG(...) a std::string.
        473b733 Fix crash for arm images on OS X.
        c90a752 Build Qt UI by default.
        ddf0bd1 [Refactor] Moved console.c to AndroidEmu
        b2489ec Updates the Qt resizing implementation to work on OSX.
        4b16807 gen-android-sdk-toolchain.sh: Fix pkgconfig creation bug.
        adbdc32 Ground work for ANGLE integration
        8a50275 Add LOCAL_SHARED_LIBRARIES in vars to clean
        aa7f1ba [Refactor] telephony/sysdeps_qemu.c -> AndroidEmu lib
        b12aed0 fix build script error for windows e2fsprogs
        26f751e Explicitly build esfsck.exe resize2fs.exe tune2fs.exe
        2d677c8 [Refactor] cleaned up utils/stream.h/cpp
        4dd226f Fix building bin for windows platform
        de6c81f [Refactor] shaper.c into AndroidEmu lib
        56b7c22 Some cosmetic changes in the virtual sensor code.
        63d207b Distribute bin and bin64 when packagint SDK tools
        c5ed248 [Refactor] snapshot.c to AndroidEmu
        faa026a Fix a missing comparison on checking 32 bit windows host
        be09113 Add support for manipulating the virtual sensors through the UI.
        cd2b3aa [Refactor] Move modem_driver to AndroidEmu
        94d0551 [Refactoring] Moved android_qemud out of glue code
        a0f1ffd Move telephony/ to android-qemu1-glue/telephony/
        bef565d Move back code from QEMU1 glue directory to android/
        0984a8d android-qemu1-glue: Remove CharDriverState dependencies.
        5f7d263 CSerialLine: Add buffer and pipe functions.
        74092a2 Do not force memory increase on 32bit windows host
        81427a6 Implements "zoom" for Qt UI on with -gpu mesa.
        0054b77 Check for the telephony agent late in the messaging process
        6653a5e Move charpipe implementation to android-qemu1-glue/emulation/
        0f1baa8 android-qemu1-glue: Fix source files location.
        3087301 Fix hang on OS X.
        4c05532 Move glue code to android-qemu1-glue
        0d441f8 android/: Move sdl_init_display() to android/display.c
        987f8c0 android/: Fix obsolete QEMU dependencies.
        5befbeb [Refactor] Remove unnecessary gps.h include
        6c6a81e Add 'minimize' button; remove 'unfold' button
        4d450fd [QT-SMS] Fixed bad string length for unicode text
        9beccb3 [refactoring] Abstract out telephony modem object
        ac3af22 android-configure.sh: Fix Windows build.
        06f47f5 android/display-core.c: Remove obsolete source file.
        172632a migrate-glue-code.py: new single-use script
        a8807f4 Always indicate 32 bit operation for Windows
        a3ec332 Use the MinGW toolchain generated by gen-android-sdk-toolchain.sh.
        977dd86 Removed some spammy debug messages
        96059d1 Fix wrap-around due to subtracting from unsigned.
        13f7530 Fix Darwin Qt build.
        c7db17c Remove unused Qt UI definition file
        d850609 Adding breakpad and symdump to emulator build flow
        0893268 [Bug] Fixed - HW sensors updates are not passed to guest
        f784489 Warning user if $SHELL is not properly defined.
        768d2d1 Updates Qt emulator to desired resizing spec.
        5a492f6 [Qt UI] Hanging after window move fix on Windows
        4a7f0e6 Revert "metrics: Start reporting opengles hardware strings. [reland]"
        7f48dce Eliminate some compiler warnings
        cf4ea62 Implement DPad
        a472bc1 metrics: Start reporting opengles hardware strings. [reland]
        716854c Remember the UI theme selection
        f7ae2b0 emulation: Add a helper object for control callbacks.
        d61856e Implements drag-and-drop to copy files for the Qt emulator.
        d5670a0 android_pipe: Fix crash on vmstate loading error.
        f42dd02 UpdateChecker: changed xml parsing to libxml2
        fd07b84 console: Use Looper::WatchFd for IO.
        39b6f4f Create a C interface for QEMU implementation of user event handling.
        b7e088b console: Use agent interfaces for location, finger, battery.
        dbbcac6 qt: Make control agents more generally accessible.
        776c2ea C++11 coding style update
        ecc84c3 qt: Make battery_agent more generally accessible.
        bdcae88 console: Add new interface for VM operations.
        ffc9a76 Refactoring: removed qemud/hw-qemud.h include from common files
        24fd02a UpdateChecker: stop printing debug information when not asked
        bcb67b9 Refactoring: got rid of qemu-specific headers in hw-sensors.c
        f16a479 Fix the edges of the extended tabs
        aade9fc Make the main tool bar change colors with the theme
        e3ddadb XCode 6 no longer comes with SDK 10.8.
        2c5c9df Incorrect comparison between pointer and boolean.
        836772c Space between string literal and macro.
        5cb2929 Fix GPX parsing code to work on Windows.
        6680b53 Modify GPX parsing to calculate time delays.
        b20b86e Revert "UpdateChecker: changed xml parsing to libxml2" Broken build on Mac
        1fb13f7 Support for -no-boot-anim for Ranchu emulator
        de95a54 Minor tweak to kernel/Android version map
        95f2ce6 QEMUD: move qemud_register_service() to the common lib
        3c8f731 Add the Back, Home, and Recents buttons to the main toolbar
        3fdb15e Make the main toolbar icons larger
        7f0e45c Add the Screenshot button to the main toolbar
        49aaf3e Move SMS messaging onto the telephony page
        8ea3222 Add 560dpi constant to emulator
        acab4e7 android/base/Limits.h: Remove problematic header.
        f5fda76 AndroidEmu refactoring: get rid of qemu dependency for ini.c
        3c49ea1 QEMUD refactoring: the refactoring
        310f73f QEMUD refactoring: created serial line abstraction
        c3e39e6 UpdateChecker: changed xml parsing to libxml2
        edc07b2 Add Breakpad prebuilt
        edbbb04 qemu-launcher: Support multiple cores for qemu2.
        67b3a3b Make the fingerprint button momentary
        030b434 MIPS Goldfish: Support for memory up to 4 GB
        3642da6 target-mips: Add TLB Refill exception interpreter

    $ cd external/qemu-android && git log --oneline --no-merges 1bc6453..2ee7107 .
        2ee7107 goldfish_sync: reset sync device on reboot [device changes]
        1c8e111 win32: Fix for minor compiler error with updated Mingw toolchain.
        c4e2ec5 Battery: have battery fully charged to start with
        75221c6 Qemu 2 Command line option to bypass adb secure check
        a227985 [qemu2] When saving pipes, store the device version first
        f075c22 Remove potential double-free condition.
        9b60b76 Fix upstream build.
        7ea6c84 [qemu2] Fix all 'unused variable' warnings for assert-only vars
        0c03bce android_pipe: lower irq if the state is reset
        cb47325 android_pipe: More robust pipe state resetting on reboot
        08ddc27 [qemu2] [tiny] Remove extraneous semicolon in a macro.
        8f38148 android_pipe: close all pipes on reboot
        929b81f [qemu2] Also drop studio client id and update channel metrics.
        9fd00e1 Fix tcp redir
        903551c Automatically create QCoW2 images as needed on startup
        4425010 Remove QEMU2 android_parse_network_xxx() functions.
        0eb298b [goldfish-sync][qemu2] add goldfish sync device
        c840b80 Remove custom QEMU2 console code.
        e431140 Get rid of custom QEMU2 pipe service code.
        c963620 Add save and load routines for QEMU2 pipes.
        fc1a51e [Build break] Add a missing include
        c9b6b12 Revert "Revert "[qemu2] Don't allow running the same AVD in multiple instances""
        d78e69e Enable down to 8KHz sample rate in HDA codec
        104b551 Enable hda audio emulation for x86 and x86_64
        b4e11f1 [metrics] Add selected renderer [qemu2]
        2894527 Add VOICE_ENABLE/DISABLE cmds to PAAudio
        4835519 Add fragment size limit to paaudio to reduce latency
        64da771 [UI] Correct emulator's use of port numbers
        d333eb2 [qemu2] Cleanup wear agent and socket drainer.
        0ec3bb5 UI: Remember the Cellular Network settings
        72a2a71 [qemu2] Provide ffs{,l,ll} implementations for mingw.
        8e840b9 [master][crash] Check for a non-null listen channel before adding a watch
        a518b9e Fix qemu_mutex_check_iothread()
        31cbad3 [qemu2] Fix crash when -append is used without -kernel.
        9494044 Allow setting the network connection to LTE
        8e3e005 Add ACPI configs for goldfish rtc x86/x86_64 devices
        ea9937e Remove QEMU internal -list-webcams option.
        c070c3e qemu2: support no-audio option
        6dbf574 target-mips: Fix RDHWR on CP0.Count
        0af4d3e [UI] Remove unneeded keyset code.
        6f562ed [qemu2][pipe] Speed up the pipe code for guest read requests
        716f94c [qemu2][adb] Get rid of the data_out watching
        ec76373 monitor.c: Fix upstream build.
        4b7a2c9 QEMU2 Glue: Remove compiler warning.
        782a735 [adb] Fix a crash caused by a call into a closed pipe
        a7e5bfe [qemu2] Optimize the tcg_enabled() call
        3564b0a [qemu2] Cleanup pointer collision in adb backend when add io watcher
        a05153a hw/misc/android_pipe.c: Remove obsolete mutexes.
        c1480a7 console: Fix error message for 'gsm hold' without a parameter.
        d751420 battery: Fix typo in reported health (Overheat not Overhead)
        fca5cf8 AndroidPipe: Proper multi-threading support.
        37d9725 glue: provide qemu2::VmLock sub-class of android::VmLock.
        8de56f2 main-loop.h: Implement qemu_mutex_check_iothread()
        9d2efcd [qemu2] Simplify -port and -ports cli behaviour.
        8af5ba0 [qemu2] Always use the custom Android CPU definition
        8cdbb25 [qemu2] Remove the obsolete qemu2 version of sensors
        460dcd4 Disable the -tcpdump flag for now.
        f9499ff Cap HAXM memory to 3G
        8ebe695 Android pipe: Implement AndroidPipeHwFuncs::resetPipe() callback.
        cccb243 AndroidPipe: Rename android pipe functions.
        9f427fa Android pipe refactoring.
        7618a72 [qemu2] Tweak CMA code for -gpu guest
        023b3a8 [qemu2] Fix a crash with -no-cache argument
        aa92bf3 Fix x86_64 CPU model for Android emulation with TCG
        2d39e84 [Main] Fixing qemu flags off-by-1 parsing bug.
        22517fa target-i386: Add Android-specific CPU models for TCG
        5e9e4b1 Add a "gsm signal-profile" command
        ccfbaf4 Revert "[qemu2] Don't allow running the same AVD in multiple instances"
        b1c5d30 darwin: Reduce compiler warnings.
        21e25f7 main.cpp: Remove unused function.
        886f894 disasm-a64.c: Remove win32 compiler warning.
        74cc2a2 slirp.c: Remove win32 compiler warning.
        ff86119 virtio-pingpong.c: Remove win32 compiler warning.
        969f443 qemu-char.c: Remove win32 compiler warning.
        1cdf6ba hax-windows.c: Remove compiler warnings.
        f2398d8 android-commands.h: Remove Win32 compiler warning.
        ee15374 hw/display/goldfish_fb.c: Remove minor Win32 compiler warning.
        602b4c9 include/disas/bfd.h: Remove compiler warnings.
        c264225 Remove vexing compiler warning.
        fb356f9 Remove hardcoded key mappings from QEMU2.
        bf1aad8 [qemu2] Replace the rest of exit() calls with returns
        322bdbf [qemu2] Don't allow running the same AVD in multiple instances
        1a93698 android/adb-server.c: Listen for host ADB server connections on both ::1 and 127.0.0.1
        b53db1b [qemu2] fix a buffer overflow in inet_parse()
        8ad895b Adjust CMA for software renderer in more cases
        8f80824 MIPS32: Ranchu: Change default cpu to 74Kf
        dd58cc8 Move network-related globals to AndroidEmu
        dd13e08e android::SerialLine: Inject QEMU2 implementation at runtime.
        8a32791 [qemu2] Change exit to error return in ram_block_add.
        fc8e986 console: Validate GPS longitude and latitude values.
        ec1d01d Qemu2: resize userdata-qemu.img if requested
        6f3f50c Use loopback interface for lookup in "redir del"
        3e659ea Fix the 'rotate' console command
        6f4c709 [Console] Fix a crash in the console "event send" command.
        272612a [gpu on] Fix the hang with qemu2 arm images and gpu on
        3c1320a Implement the gsm data and gsm voice commands.
        f524d40 Added support for some console commands before auth
        e030f38 Emulator console requires authentication
        4853f8d Clamp hw.cpu.cores to 16 on Windows.
        8ac2d81 android-qemu2-glue: ensure arm xml linked for gdbstub
        fc5fcaf gdb: provide the name of the architecture in the target.xml
        d9443c0 gdbstub: Fix buffer overflows in gdb_handle_packet()
        6953a7d Add GDB qAttached support
        6b357c2 gdbstub: Introduce an is is_query_packet helper
        776c951 gdbstub: Fix qOffsets packet detection
        86deb71 gdbstub: avoid possible NULL pointer dereference
        3eab98b [pipe] Get rid of another linear list traversal on pipe commands
        9a1f939 [pipe] Skip the non-pending pipes when responding a wake request
        9e4e182 [qemu2] Use hash map for a pipe by channel lookup
        2962e8f arm64: enalbe audio support on qemu
        93d4bdc [gl][Qemu2]Update the opengles pipe initialization function call
        df93f0b [adb] Disable Nagle algorithm on the adb server socket
        acc4ba9 [gl] Qemu2-related cleanups
        af11d99 [win] Die on ctrl-C if emulator's hanging
        e328710 Remove USE_ANDROID_EMU + Fix upstream build.
        9675147 Complement patch for serial port parameter refactoring.
        8698af8 [ui] Display the current GPS location
        288dfeb QEMU2 Glue: Use AndroidEmu to generate kernel command-line parameters.
        9719252 Make multitouch input more stable.
        f6c050a [leaks] Don't double allocate a string for metrics assignment
        8764e1b Setup qemu2 console agents.
        46e3f86 [leaks] Deallocate the ini file object used for hw.ini creation
        7b332de [leaks] Delete the thread looper on thread exit (qemu2)
        2cac867 [UI] Enable the arrow keys regardless of D-pad.
        5000258 Fix automatic adb_port detection
        26d36e5 [update-check] Qemu2 part - remove the config dir parameter
        5a99b9f Add support for -report-console in QEMU2
        9bca637 Add support for -port and -ports to QEMU2
        e76e522 Fix ARM64 boot: Check TARGET_ARM64 #ifdef before TARGET_ARM
        88e18ec [emulib] Qemu2 - StudioHelper cleanup
        5824cf0 Fix typo declaring the QEMU cpu type for 32-bit ARM.
        a6ac4e4 Implement android::base::VmLock for QEMU2 glue.
        bd4aa36 Move Android-specific network related constants.
        528a29a qemu2: -writable-system support for API > 15
        e384e69 qemu2: Parse UI command line options
        e18a280 Move UI-related command-line option parsing code to AndroidEmu.
        60ab290 [android] main.cpp: Use AndroidEmu for command-line parsing.
        e3324ef hw/mips/mips_ranchu.c: Fix boot using kernel with built-in DTB
        68fd37f target-mips: Fix TLB Refill exception interpreter
        1719b42 Fix boot for API <= 15
        32e2066 [Crash] Add thread safety to Qemu2's adb implementation
        48e1f9d Remove LOCAL_GENERATE_SYMBOLS variable from build
        e525d23 [Crash] Assert in adb_server_close()
        addc5ab goldfish_events: Remove AndroidEmu dependencies.
        949d949 goldfish_events: Rename gf_XXX to goldfish_XXX
        1ac9949 vl.c: Refine hax support code a little.
        d5c4a49 qemu-char.c: Minor change recv() to read()
        a31e925 trace-events: minor formatting
        a095bde goldfish_fb: Remove USE_ANDROID_EMU usage.
        786a29f Move opengl_{recv,send}_all() to android_pipe_opengles.c
        72f83d5 Enable 32-ARM qemu-android build.
        99b087f gen-qemu2-sources-mk.py: Remove linux-x86 source files.
        eb043d8 gen-qemu2-sources-mk.py: Stable sort order for source file lists.
        7f802bf Update Help:About to show how ADB can find this device
        d2bf902 Fix build-qemu-android.sh build.
        9be50e4 Remove support for dynamic skins
        4737d23 qemu-setup.c: Exit properly on android_emulation_setup() errors.
        5cd2b6a Makefile.qemu2-sources.mk: Fix build for mips
        1ef42eb Makefile.qemu2-sources.mk: Generate from upstream build lists.
        21c7af6 Fix upstream build.
        1ba93fd Remove android::base::String, use std::string instead.
        68c5059 android/console.h: Introduce AndroidConsoleAgents.
        f8ca644 [main] Stop loading custom keysets.
        fa7b157 [Crash] Qemu2 - report the kvm errors with crash handler
        cd6af68 [Metrics] Add api level to the reported metrics
        a734773 Fix build
        dc98eef Add host GPU info to metrics. [QEMU2]
        34069d1 Fix crashes when accessing null pipe
        50325d1 Make GPU blacklist testing easier. [QEMU2]
        3895335 Present GPU blacklist status as a window. [QEMU2]
        ea6b534 Detect and force software on crashy GPU's [QEMU2]
        9ff082d Allow switch to software GPU when a GPU crash is being reported
        aa56448 [qemu2] Report qemu version separately from the emulator ver
        b2a9e85 [qemu2] replace abort() with crash handler call in thread
        6da1528 Show error message and exit when not enough memory
        0e70741 Fix unicode file path support build issues
        75936af Support unicode file paths on Windows
        e677d91 [qemu2] Change exit() to a return in configure_accelerator()
        62bd0e4 Disable framebuffer_update_display if gpu host is used
        1a8654c Enable webcam commandline params
        294500e Fix hax sign conversion when using large ram sizes
        ef66479 Instrument to catch crashes in tcp_output (part B)
        bd66ad9 Limit VM memory to maximum HAXM memory
        ec204ef Error out when isa_bus_new fails
        4083c60 Instrument to catch crashes in tcp_output
        4a34149 [main] Disable unsupported QEMU2 flags.
        5816144 [Qemu2] Add AVD and HAX info to crash reports
        0c0551e Add function to retrieve maximum HAX RAM size
        7d4ea66 [qemu2] Upload command line and environment with the crash
        017919a Report crashes on exit from 'adb emu kill'
        7ca00c5 [Crash] Clean up the framebuffer pointer in DCL before it is freed
        b5c4e19 Fix documentation for -gpu guest CMA.
        30aa677 -gpu guest: account for high resolutions
        70bbfec Support ANDROID_ADB_SERVER_PORT env variable
        e3c6a32 [qemu2] Really initialize process on the main thread.
        bb61f10 [qemu2] Route Ctrl-C event to EmulatorQtWindow::closeRequest.
        464fd9c qemu2 Fix handling of "-prop xxx=yyy" on the command line
        4a1e925 Skip skin display initialization in no-window mode
        a76fa53 Suppress 'could not lock' messages on exit
        cfd3d4f [Crash] Show an error message about VirtualBox when Hax sync fails (qemu2)
        138295a [qemu2] Update metrics setup to include adb liveness ping.
        59e623e Remove QemuLooper's mFdWatches for qemu2
        734cbb3 Document Windows -gpu mesa boot animation off hack
        f3b8659 Windows - Fix booting >=1080p AVDs with -gpu mesa
        42da86e Revert "Revert "Revert "Revert "Add locks to pipe access and adjust pipe access order""""
        582baf6 Avoid adding too many watchers for adb server data
        6e8051b Disable goldfish framebuffer write when using host gpu
        f699f01 ui qemu2: Eliminate crash when entering trackball mode
        bf6dc3f android: Move android_base_port definition.
        24d1db2 android: Move main-android.cpp to android-qemu2-glue/main.cpp
        ad34c13 android: Remove duplicate android_console_rotate() implementations.
        061dcd2 Adding qemu2 console crash command
        191c2df Add io watch for adb server data on every second
        99bd8d9 main-android.cpp: Allow SMP support for Intel only
        9543029 Revert "Revert "Revert "Add locks to pipe access and adjust pipe access order"""
        f06ca74 Revert "Revert "Add locks to pipe access and adjust pipe access order""
        9b46646 Revert "Add locks to pipe access and adjust pipe access order"
        108771f Add locks to pipe access and adjust pipe access order
        26f2e84 metrics: Also report host os.
        cba6eef [Qemu2] Don't exit() on hax cpu sync failure, just return instead
        aeda218 Enabling -no-window support in the qemu2 engine
        847c6dc Fix upstream QEMU2 build.
        63bab03 Add support for multiple DNS servers
        dea0f48 [Qemu2] Add support for http proxy
        e88923f Revert "Increase pre-UI boot speed on OS X"
        eaf5676 Revert "Increase boot speed on OS X."
        50056df target-i386: HAX: Avoid mapping duplicate memory slots
        a9c4423 Add -wipe-data to qemu2
        e0e7dba support -port in qemu2
        530672e [Qemu2] Get rid of most obvious exit() calls in qemu2
        9b9ae52 Fix back on typing '99' in QEMU2
        9592276 [Qemu2] Make /dev/kvm/ fd close on exec #2
        5b6ba7d Enables multitouch.
        dc6c4c0 [Ui] Update qemu2 because init_sdl_ui() is now ui_init()
        d25ce35 [Qemu2] Made a qemu version message prettier
        5a988ec [Qemu2] Pass the emulator version to UpdateChecker
        69f43c1 build: Remove ANDROID_EMU_STATIC_LIBRARIES_QEMU2
        961fdc9 [qemu2] Cleanup the console messages - fix line endings
        08d07ad [qemu2] Fix readline implementation to correctly handle rn
        353f531 Use the new android/emulator-common-ui.h header.
        2d7875c build: Rename HOST_OS and HOST_ARCH
        9e43b0a build: Use common UI library instead of rebuilding from sources.
        ac0a376 Fix build-qemu-android.sh build.
        9fb9687 Remove obsolete CONFIG_QT define.
        182cc3f [Qemu2] Fix the monitor implementation in Qemu2
        c3f6617 [Mac] Fix the HAXM memory leak when launching child process
        3aedb91 build: Cleanup build rules.
        7958a09 Enable support for netspeed, netdelay and netfast
        01b9789 [Qemu2] Mount the system image as read-only
        c831b65 Add gsm command to qemu2 console
        845baed Fix lock after destroy in coreaudio
        c30b7fa [qemu2] Move the metrics uploading into separate thread
        557b4c4 Disable netspeed for qemu2
        ca37af3 Add cdma command to qemu2's console
        9aca733 Enable generating breakpad symbols for Qemu2
        2748efb Add sms command to qemu2 console
        8dcaac8 Apply clang-format to android-console.c
        a8430a6 Add geo and finger commands to qemu2's console
        f32ed14 Fix QEMU2 HW keyboard
        af2743d Breakpad integration for qemu2
        e6c768d Configure kernel parameters correctly on start
        ec8b6a5 Rename VERSION_STRING to EMULATOR_VERSION_STRING
        bcba067 ui: Recents button in QEMU2
        44500c9 Remove minor compiler warnings
        8f4b294 Fix leaked AConfig.
        d827214 Fix Windows build.
        2b92f1f build: Remove support for SDL-based emulator UI
        bc1a34f mips-ranchu.c: fix the wrong port number in the title bar
        1d90f0b Qemu2: ranchu backend support for mips32
        9180ffd [Qemu2] Fixed upstream build
        82f58a7 Add cellular support.
        e7c74cf Support Nexus 5X DPI
        17e59df Increase pre-UI boot speed on OS X
        a943a22 Revert "Revert "Add GSM support.""
        fc3bbea QEMU2 ui: Query battery status to populate the battery UI page
        f83960f Fix OS X startup kill loop on x86_64 images
        c0fbe74 Fix OS X crash on startup with qemud=1/GSM
        98ec2e2 Revert "Add GSM support."
        a2a974f Increase boot speed on OS X.
        529668f Enable sensor support.
        f207407 Add GSM support.
        be9628a [Qemu2] Enable the update checker and metric reporting
        72d4413 [Qemu2] Use the common VERSION_STRING from AndroidEmu
        b17ffde GPS support should be under USE_ANDROID_EMU.
        5d1073e Add gps support.
        8c0260b [Qemu2] Reduce the input latency because of timer waiting
        27ddd94 QEMU2 camera support
        7355d17 [Qemu2] Fix the 'port 0' in the title bar
        2a5d762 Support true color framebuffers.
        dac5ef9 [Qemu2] Delay the bh creation in Qemu2-specific Looper code
        e9a9a1c Fix build-qemu-android.sh build.
        8f180d0 Qemu2: Honor hardware buttons config setting
        a90d7e1 Qemu2: fix locking on ReadConsoleInput() on Windows
        0b111cd Fix qemu2+qt booting on windows
        24a8b01 Remove un-needed directory.
        768b782 Resize userdata images to the size specified in avd
        fef0acf Clean up unused list in android_pipe
        9629ddf Mac OS X booting error fix
        e20b309 Fix GPU lock/adb flakiness with smp > 1
        d1403e8 Fix adb flakiness on backend side
        d059b2b Qemu2: qemu2 part of restoring the faster ADB in qemu2
        9732aef Qemu2: rename the qemu2 version of adb initialization function
        969f50a Qemu2: set the ranchu option unconditionally
        fecd96b Qemu2: Honor VM heapsize in config.ini
        896383b Enable guest-side GPU emulation.
        1e154c4 Call qemu_looper_setForThread() in qemu_thread_create().
        7022862 Fix: Call setForThread when using HAX
        316621d [Qemu2 qt] Implementation of skinning and Qt UI for Linux
        6932932 Qemu2: renamed a function which clashed with AndroidEmu
        47717fb [Qemu2 qt] Changes in the .sources generation script
        b6e5cbf Fix the regression on qemu2+GPU with sdl2
        2103fc4 Fix GPU lockup: Don't spin on EAGAIN.
        b55e4b1 Darwin: Fix list of QEMU2 library dependencies.
        e33336f Darwin: Remove CONFIG_VNC_SASL from config-host.h
        3595e69 build: Fix darwin-x86_64 config to use SDL2.0 backend
        e8a13f2 [Qemu2 qt] Added DisplayUpdateListener to qemu2
        b34a421 [Qemu2 qt] cpu-common.h C++ compatibility
        208a6b8 [Qemu2 qt] Add 'const' to loc_set_cmdline() function parameter
        0901f89 [Qemu2 qt] Make timer.h c++ compartible
        aba9290 [Qemu2 qt] Added a callback version of battery status getter
        60d1a32 [Qemu2 qt] Renamed some C++ keyword-named variables
        3ceecb5 [Qemu2 qt] Renamed socket functions clashing with AndroidEmu
        b378bc2 Support building QEMU2 from the emulator's build system.
        11524d0 Add missing cpu_synchronize_state() hook for HAX
        8b6936b target-i386: hax: Fix crash in hax_log_sync()
        f75173f Fix slow boot issue on OS X
        58a4e73 Get qemu2 gpu emulation to work on windows
        12649f4 Need to find proper solution that does not have negative effect.
        e9f94f9 Fixes the QEMU2 emulator rendering pipeline.
        098465e Temporary fix: adb connection to qemu2 avd flaky
        f289a00 Support Nexus 6 DPI

    $ cd external/gtest && git log --oneline --no-merges b91418b..f52a103 .
        f52a103 Revert "Disable the legacy gtest."
        0af8635 Disable the legacy gtest.
        5e5723a Remove deprecated Android.mk files
        1d8db72 gtest: Add support for std::unique_ptr bool conversion
        4c0e47a Allow libgtest on unbundled builds
        2a1db29 Update Android.bp to match Android.mk
        49f2bfa Allow libgtest_prod on Windows.
        9ba217a Update sanitize property format
        87cecf0 Revert "Revert "Add libgtest_prod.""
        9409446 Update Android.bp to match Android.mk
        a335cab Add gtest libs for all NDK STLs.
        baa71b2 Revert "Add libgtest_prod."
        18d1e9c Add libgtest_prod.
        81cb746 Implement GetThreadCount for Linux.
        34114d4 Implement GetThreadCount for Linux.
        b6335c0 Remove extra cc_test options
        f463507 Fix gtest soong unbundled builds
        f0f8f7a Android.bp: Move from src&test to top level
        8f7edf5 external/gtest: Add Android.bp files
        7f4fe57 add gtest to darwin and windows whitelist for adb_test
        cf861d2 package version metadata for external/
        e826aa4 Allow to build host gtest libraries in unbundled build.

