)]}'
{
  "log": [
    {
      "commit": "4bff76be8058a0c2948836b4fd01b35bb57e9f86",
      "tree": "ffdfb6fa3c735d352a035cd5b91229e3e06237be",
      "parents": [
        "8f66efbffe60943d712136f3a1cc71b487d38a53",
        "20dca26f41ef1b9097c2e7112cb641f21e6806f4"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Jul 17 13:59:15 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 17 13:59:15 2018 -0700"
      },
      "message": "Merge \"UsbDescriptor: Add finite timeout to control transfer\"\nam: 20dca26f41\n\nChange-Id: I86a916694a497bedb7d2df8a64dd17e0e15ce332\n"
    },
    {
      "commit": "58484d7c6995ae57dfd8265e7a568af87d09a72d",
      "tree": "4d3009aa0e722483f6ed148fa5a7957045c2c43b",
      "parents": [
        "ff801e5fd719c9aa797edd14e13562727b0e1236"
      ],
      "author": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Tue Jul 10 09:31:33 2018 +0530"
      },
      "committer": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Tue Jul 10 09:54:03 2018 +0530"
      },
      "message": "UsbDescriptor: Add finite timeout to control transfer\n\nUsing \"0\" as value for USB control transfer timeout\nresults in an unlimited timeout in case of bad USB\ndevices. In host kernels where hung task panic\nis enabled, this results in device reboot.\nSo, add a finite timeout for USB control transfer.\n\nTest: manual run and test with bad USB devices.\n\nChange-Id: Ibc13ca4d8259a08ae7419bb3bcac9c161b1d3693\nSigned-off-by: sgopal1 \u003csaranya.gopal@intel.com\u003e\n"
    },
    {
      "commit": "3984cf625cf7df7906c0c86ad59eb42c750ff78c",
      "tree": "4597eb32c4f3e73b21b0651449ea33dea6d39161",
      "parents": [
        "f0b9fbebc0fa36c9603e21e4d0e60f0bd6495419"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Apr 09 17:35:32 2018 -0700"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Apr 11 16:35:50 2018 -0700"
      },
      "message": "Fixing typo in proto field.\n\nBug: 72814439\nBug: 74975371\nTest: atest CtsIncidentHostTestCases:com.android.server.cts.UsbIncidentTest\nChange-Id: Ia04c13b96bd1996e6e96f9b4e2e693af4cb97070\n"
    },
    {
      "commit": "df101a459692cda5c73d149c582d68dc42ece852",
      "tree": "6eb5a6b4f443047a80d8db2d957611d7e98670f1",
      "parents": [
        "31e1171fd8a476cb4d580233b95dfd3c31b624e8",
        "6d319b8aaa961862afac48010d96d03afb11fa1c"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 02:49:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 02:49:02 2018 +0000"
      },
      "message": "Merge \"Write descriptors for Mtp in UsbService\" into pi-dev"
    },
    {
      "commit": "608ec66d62647f60c3988922fead33fd7e07755e",
      "tree": "603144475060416c137fefb5169faf0e8cd2952f",
      "parents": [
        "0491f5aa0f3cc6b46bdf433bc900433b965943e2"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Fri Mar 02 13:45:09 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Mar 26 20:55:54 2018 +0000"
      },
      "message": "UsbHostManager: Restore inserted device logging\n\nRestore logcat logging of newly-added USB devices.\nEliminate blacklist log lines.\n\nTest: Connected USB Storage and USB audio devices.\nUpdated UsbDescriptorParserTests for device descriptor\nversion.\n\nexample output:\nUsbHostManager: USB device attached: vidpid 03eb:2433 mfg/product/ver/serial Libratone/Libratone_INEAR/1.00/Inear_mcu_app_0.2.1_20160304 hasAudio/HID/Storage: true/true/false\nUsbHostManager: USB device attached: vidpid 05dc:a82b mfg/product/ver/serial Lexar/ARA Storage /2.08/0024070163400215 hasAudio/HID/Storage: false/false/true\nUsbHostManager: USB device attached: vidpid 18d1:5029 mfg/product/ver/serial Google/USB-C to 3.5mm-Headphone Adapter/22.80/201405280001 hasAudio/HID/Storage: false/true/false\nUsbHostManager: USB device attached: vidpid 18d1:5025 mfg/product/ver/serial Google/USB-C to 3.5mm-Headphone Adapter/22.80/201405280001 hasAudio/HID/Storage: true/true/false\n\nBug: 74119682\nChange-Id: I72688f651c819d4bdc48f6d6316570ca5fc54d1e\n"
    },
    {
      "commit": "0491f5aa0f3cc6b46bdf433bc900433b965943e2",
      "tree": "1b9cfc681da9925fbeb04c83a44d64d522bb1056",
      "parents": [
        "d52c532df7c7c481bf6e482c37f4e0ee02618fce"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Fri Mar 02 13:18:18 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Mar 26 20:55:28 2018 +0000"
      },
      "message": "UsbDescriptorParser: always parse in constructor\n\nUsbDescriptorParser::parseDescriptors always returned true.\nRemove the return value, and remove the one constructor that\ndoesn\u0027t parse descriptors so the device is always in a parsed state.\n\nBug: 74119682\nTest: Built\nChange-Id: I2dd8d439405867d78102a9591dd1db36fe3959dc\n"
    },
    {
      "commit": "6d319b8aaa961862afac48010d96d03afb11fa1c",
      "tree": "a90ec1e5d307de422619e6102060df871e222f54",
      "parents": [
        "c7f6eadffc0a243618ce09ee8d6bb8235738135d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Dec 06 16:03:57 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Mar 22 11:35:19 2018 -0700"
      },
      "message": "Write descriptors for Mtp in UsbService\n\nThe current model for setting up a functionfs\nfunction is:\n\nUsbDeviceManager#setCurrentFunctions() -\u003e\nintent is sent to MtpReceiver to write the descriptors -\u003e\ninit/hal waits for descriptors to write, then pulls up gadget -\u003e\nGadget is configured, a USB_STATE intent starts MtpServer\n\nThe main downside of this is a lack of reliability because\nthe Mtp process could be killed at any point. Normally, a\ngadget is unbound if its control endpoint is closed. no_disconnect\nworks around this, but is still a little janky. In addition, the\nextra intent delays the startup of the gadget.\n\nWith the new model, UsbDeviceManager writes the descriptors\non initialization. Since it is a system service, it won\u0027t be killed.\n\nUsbDeviceManager#setCurrentFunctions() -\u003e\ninit/hal pulls up gadget -\u003e\nGadget is configured, a USB_STATE intent starts MtpServer\nMtpServer calls UsbManager#getControlFd to get a dup of the control\nendpoint.\n\nAlso modify permissions so system server can access mtp files.\n\nBug: 72877174\nTest: Change usb configurations to ptp/mtp\nChange-Id: Id17d2b5930f4e1f37ec1b4f00add9d594174ad49\n"
    },
    {
      "commit": "ff1f7090c62ac7b4abff39ad432c38e7d30f2b3d",
      "tree": "e34a071730b6f7d5f25cf3437322d4b6f17a3446",
      "parents": [
        "f6f3aba7f433e52ab85c1d9af9b1a11787bee227",
        "d399f2eaff15aa3019a3ecc973afd1305b3ff68b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 02:52:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 02:52:31 2018 +0000"
      },
      "message": "Merge \"Set systemReady before querying the portStatus.\""
    },
    {
      "commit": "23aee1bbb511310d636347d45a0e6fa14aae9543",
      "tree": "7fb741f41e16bd27745cce22b1f0a8c1951e7fc8",
      "parents": [
        "7cd6e3a0e9152cf6b694266281e48e61e4bf8c3b",
        "7db57cbea2c15d03d153969d0bbf45b3fd0761da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 00:09:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 00:09:15 2018 +0000"
      },
      "message": "Merge changes from topic \"terminal_type_fix\"\n\n* changes:\n  Add test for UsbDescriptorParser.java\n  USB Audio: broaden Terminal Type interpretation\n"
    },
    {
      "commit": "d399f2eaff15aa3019a3ecc973afd1305b3ff68b",
      "tree": "fb997569e4252daf5bfe8177857dac5548644391",
      "parents": [
        "e7658ef2b84c39467c2e6635807457d3d4a94194"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Mon Feb 26 18:32:26 2018 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Tue Feb 27 22:56:45 2018 +0000"
      },
      "message": "Set systemReady before querying the portStatus.\n\nSince the callbacks are async, its possible that the callback gets\ncalled before the systemReady flag is set.\n\nChange-Id: I5752c097e25ef30a151461540dd7d5323cc927af\n"
    },
    {
      "commit": "0ef73801f5b5a560a1f84ccad3d13bd80b525de2",
      "tree": "55e2e62fa0fc0cd5987d2b53fed6ed019c90b264",
      "parents": [
        "8dc8a59fb91e40e17ca6b13960036744001beca0"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 26 10:00:40 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 26 14:39:46 2018 -0800"
      },
      "message": "USB Audio: broaden Terminal Type interpretation\n\nTerminal type is currently used to determine presence of audio input\nor output capabilities on audio devices.\n\nBroaden the set of terminal types accepted as inputs and outputs.\n\nTest: Verified by playing with USB-C to 3.5mm adapter with\nhigh impedance load, checked Terminal type reported as 0x0603.\nVerified no audio on old build, audio on new build.\nChecked with low impedance load with and without microphone.\nChecked with no load.\n\nBug: 73813676\nChange-Id: Ib9b291e4770dc3c03157df7ac4277da1692174d7\n"
    },
    {
      "commit": "20b1414fe002df2d8aeb584dc1227f2962dfa17f",
      "tree": "e4947cf5ace2dce7fb060e12a18922215c8862a1",
      "parents": [
        "4e056c8bfacc2be6d36e47305df4a85f87d02bc4"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Feb 23 17:03:55 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Sat Feb 24 02:19:16 2018 +0000"
      },
      "message": "Initialize functions as NONE in legacy handler.\n\nSince adb is being removed from the functions read\nfrom sys.usb.config anyway, it makes more sense to\nset it to NONE on boot. This prevents errors with\ndevices that already have oem functions in the config.\n\nBug: 73010922\nTest: Power test passes\nChange-Id: I855ba228dbdd9f8c8a91842a8beb68a789fdf1e9\n"
    },
    {
      "commit": "aacda9d287b882bf7da41429402543a74b7d442a",
      "tree": "0b396efa33eaa0c93c277b7d0c2d66f61e6352bb",
      "parents": [
        "16f6a68aa955186a8b21f5432e5ba2238ac54d3b",
        "c8001253d3e9e2959bd8d440c30f899f8aaa99cc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 23:02:45 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 23:02:45 2018 +0000"
      },
      "message": "Merge \"add OWNERS file to audio, media and usb services\""
    },
    {
      "commit": "c8001253d3e9e2959bd8d440c30f899f8aaa99cc",
      "tree": "a7feba2214a13f0c5a81aba7661834cd269ff990",
      "parents": [
        "fc7423bcba0678cc4a09ce19ec42830126107770"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 14 15:32:23 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 14 16:06:58 2018 -0800"
      },
      "message": "add OWNERS file to audio, media and usb services\n\nAdded:\n services/core/java/com/android/server/audio/OWNERS\n services/core/java/com/android/server/media/OWNERS\n services/usb/OWNERS\n\nTest: make\nChange-Id: I292c3acbfa4163607ce5b9a440ad4d56406fbf9d\n"
    },
    {
      "commit": "5f53db38b2911105106ae7bda8e05a8779d6d4b8",
      "tree": "80919d3d936f0440158c1c0590ae1de91a350e95",
      "parents": [
        "d80805fe01ed558f8343bed0ce5c492cc9c566ce",
        "278f4c9a05c75eac73b6a659798266504c95e2a0"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Wed Feb 14 19:00:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 14 19:00:23 2018 +0000"
      },
      "message": "Merge changes from topic \"uac_jackdetect\"\n\n* changes:\n  Add a selected UsbAlsaDevice\n  ALSA jack detection support\n  Synchronize UsbAlsaDevice, rename playback/capture.\n"
    },
    {
      "commit": "278f4c9a05c75eac73b6a659798266504c95e2a0",
      "tree": "970c64aefaa9cabaac35fa4d64b1196564e5fa3a",
      "parents": [
        "07a97da51fc7d43db9903d793d614340b1cf3b67"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 12 18:47:26 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Tue Feb 13 16:51:34 2018 -0800"
      },
      "message": "Add a selected UsbAlsaDevice\n\nKeep track of the currently selected UsbAlsaDevice in a\nsynchronized manner.\nAllow it to notify AudioService that it has been disabled\nprior to replacing it with a new Audio Device.\n\nTest: verified audio worked as expected when using\nboth UAC2 and non-UAC2 3.5mm adapters, with 3.5mm\nplugging/unplugging and USB-C plugging/unplugging.\n\nChange-Id: I8b76145490da38d4eec25f4f2bdb6695afa151b9\n"
    },
    {
      "commit": "07a97da51fc7d43db9903d793d614340b1cf3b67",
      "tree": "85cf28bcfc440f0d78ffa6b6d610ac4a13f46634",
      "parents": [
        "54b15e98cdb40969929fa23ce42e6817a4b8392c"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 05 15:55:02 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Tue Feb 13 16:42:35 2018 -0800"
      },
      "message": "ALSA jack detection support\n\nAdds support for ALSA jack detection for USB.\nSpawns a new thread for ALSA jack detection on device\ninsert.  If the device doesn\u0027t support ALSA jack detection,\nthe thread terminates.\n\nTest: UAC2 audio accessory and a kernel\nwhich supports USB ALSA Jack detection, switching between\nspeaker and USB works perfectly with plug/unplug at jack.\n\nBug: 68337205\nBug: 70632415\nChange-Id: I1800660ad4d2341f19ce7be6d6b01f81a7f2d1a6\n"
    },
    {
      "commit": "2135f41477bdf8f5a0149e6b2c6d0b5b10f643ac",
      "tree": "cf9d0fbd4dba4096326a4c194483821845dc3cb6",
      "parents": [
        "fc7423bcba0678cc4a09ce19ec42830126107770"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Feb 13 12:58:41 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Feb 13 12:58:41 2018 -0800"
      },
      "message": "Don\u0027t set functions at registration on boot\n\nIf onRegistration is called before functions\nare received, adb can be kicked on boot. To fix,\ndon\u0027t set functions if they are still being\nrequested.\n\nBug: 73168456\nTest: adb logcat doesn\u0027t dc\nChange-Id: I25bfe13604f0ce0c65c3eb82bcfafd9fcae0283f\n"
    },
    {
      "commit": "54b15e98cdb40969929fa23ce42e6817a4b8392c",
      "tree": "c9dd970dd551b3f5ab3251a6ee5423e086ac82e7",
      "parents": [
        "4b1f8e2f2de09cb0670cb539d489e41efdb72c99"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 12 15:06:10 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 12 15:45:48 2018 -0800"
      },
      "message": "Synchronize UsbAlsaDevice, rename playback/capture.\n\nSynchronize external access to UsbAlsaDevice fields.\nRename all playback fields to output, capture to input.\nMove Alsa Device String generation to UsbAlsaDevice.\n\nTest: Used Google Play Music to test audio output while\ninserting \u0026 removing USB audio devices.\n\nBug: 68337205\nBug: 70632415\nChange-Id: I77d413736253e28a33993f45e6e405209563f3e4\n"
    },
    {
      "commit": "bbab23ff97688f33c5cc41d5d0e134c0d9f58c6c",
      "tree": "495d74767efc00b7aebc085751ee61af1636bff6",
      "parents": [
        "b5cc72055fd3f4a8476f1b00931bc96ba366a859"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 07 15:34:27 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 08 02:19:42 2018 -0800"
      },
      "message": "Frameworks: Annotate trivial @GuardedBy in services/ misc\n\nAdd @GuardedBy for simple functions that require a single lock\nand are named XYZLocked.\n\nDerived by errorprone.\n\nBug: 73000847\nTest: m\nTest: m javac-check-framework RUN_ERROR_PRONE\u003dtrue\nChange-Id: Id1d9fbe5018250e3b9d1466fc5f670d5ad902fa3\n"
    },
    {
      "commit": "d33a85c4d781c8fcc2a15d38cee58dfab692a581",
      "tree": "8ca375776b8f1193ce9c047dee2523ae50885336",
      "parents": [
        "b4a1dfc54099fc103468e1b875efdad1dcf813a9",
        "0be310a3039870d4e5674d356f5ca2ffb06c1309"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Feb 05 19:25:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 19:25:34 2018 +0000"
      },
      "message": "Merge \"Move sharedPreferences to DE directory\""
    },
    {
      "commit": "371a3b879ba82bbe5a4d914328a20659131d0220",
      "tree": "47a498c48ea5efa9f0a157af8ce670e599a14118",
      "parents": [
        "a938cfa7a4e63c6d940aa614d8e00f69f4b4ca52"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Fri Jan 26 13:00:22 2018 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Fri Feb 02 16:40:26 2018 -0800"
      },
      "message": "Dump usb as DualDump\n\nThis allows to dump the USB state as proto-buf. This in turn allows to\nautomatically process this data.\n\nTest: adb shell dumpsys usb\n      incident_report usb\n      No automated test possible as no field is guaranteed to be set\nChange-Id: Ifdf22bfaf9c78226c420b11c43278013ce69f849\n"
    },
    {
      "commit": "0be310a3039870d4e5674d356f5ca2ffb06c1309",
      "tree": "3a5d844b2f6e2311e612a2c346144169d3adb9e8",
      "parents": [
        "d82eeb321b2f6ef504f7d5679ae2069997c70024"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jan 31 15:29:31 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Feb 02 12:49:47 2018 -0800"
      },
      "message": "Move sharedPreferences to DE directory\n\nPrevents crashes / loss of behavior when\nuser 0 is locked, but another user is\nunlocked.\n\nBug: 72662661\nTest: have lock on user 0, reboot, switch to and unlock user 10\nChange-Id: I72767fc4726d3b316266a1499dbe51bd7d9830bc\n"
    },
    {
      "commit": "16d7913d982dd74bc4309128c4562c816e683bd7",
      "tree": "e76facad985bf12fe363fd68c4f65dc92323a70f",
      "parents": [
        "50c00924d8483ea04ab64bc1d9775d6147afb591"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Jan 02 08:42:30 2018 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 02 09:38:38 2018 -0700"
      },
      "message": "Optimize/streamline USB audio (dis)connect\n\nMap from usb device \"address\" to ALSA card num.\nRemove Alsa filespace monitor.\n\nBug: 72435641\n\nTest: Connect various devices and check for correct input/out determination.\nPrototype Headset, Presonus AudioBox 22VSL...\n\nChange-Id: I9e25b3e9c1c3280c26171873c0a48c58cbb99fb5\n"
    },
    {
      "commit": "50c00924d8483ea04ab64bc1d9775d6147afb591",
      "tree": "4fb2803ba3d81f56da20c8e5cb0972257b5bf2c2",
      "parents": [
        "64b7ccee7f14cad523b0dbb7696b8db33ad35258"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Jan 31 13:03:02 2018 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 02 09:31:50 2018 -0700"
      },
      "message": "renamed UsbAudioDevice.java to UsbAlsaDevice.java\n\nTest: Manual, build, run... AOK.\n\nChange-Id: Iba43f94fd74aad826891534c648e61db0d0423b2\n"
    },
    {
      "commit": "e649748eb69aad55fa77f43d3f658b2a51db1248",
      "tree": "3a4976f67750b36d40be8a2b4075e76443ed0bbf",
      "parents": [
        "a5a4386a30ea1ddceaf28940def901f61197a6e1"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jan 31 18:02:38 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 01 02:21:07 2018 +0000"
      },
      "message": "Parse persist property the legacy way\n\nDevices like bat still have oem functions\nin the persist prop, so don\u0027t throw errors.\n\nTest: device boots\nBug: 72765363\nChange-Id: I7d1e334d7cafb1ba1f328ee4160da3b098f76fa1\n"
    },
    {
      "commit": "28b6fc9c25cd55c500426cdcbe233a123736fa0a",
      "tree": "71fd1d0dd435e545f8fc34f85917a573f224dc05",
      "parents": [
        "327b809ad11a5094248652014227470c4be329e6"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jan 17 17:18:12 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jan 31 11:40:53 2018 -0800"
      },
      "message": "Usb changes and strings for connected devices 2.0\n\nNew metrics constant and usb strings for the new\nnotification / details page.\n\nBug: 69333961\nTest: Check notification\nChange-Id: If9bde7f787e40e42bb991a99b032e1ff968a0a41\n"
    },
    {
      "commit": "327b809ad11a5094248652014227470c4be329e6",
      "tree": "9779e98e6ab294d0455b67d7a764a892007cce6a",
      "parents": [
        "1810393c5a5fa0d9f8579e0eeabd7b334482163c"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Jan 09 17:53:04 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jan 31 11:40:48 2018 -0800"
      },
      "message": "Refactor and clean up USB, add tests\n\nChange UsbManager apis to use long instead of string, to match\nusb hal. Change UsbDeviceManager internals to match as well.\n\nRemove isFunctionEnabled and add getEnabledFunctions. Callers\nwould often call isFunctionEnabled for every possible function\nto get the list of functions, so getEnabledFunctions reduces the\nnumber of aidl calls.\n\nSeparate out dependencies between UsbHandler and UsbDeviceManager\nand staticize the UsbHandler classes. Add unit tests with\nmocked out dependencies to test state transitions for UsbHandler.\n\nBug: 62876645\nTest: atest UsbTests\nChange-Id: I785c4c24121a70e725de9742c6af50a6bf1baea0\n"
    },
    {
      "commit": "e17b445b6c813f6f9bc93a5e3811128a197ef50b",
      "tree": "38b022068c50b29069bfa51626697e36d69ba6f8",
      "parents": [
        "6521393583be1d361e7fbf7d69184cfa30cb037c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 10 13:15:40 2018 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 26 15:15:04 2018 -0800"
      },
      "message": "Reduce pss collection amount, improve logging.\n\nTuned rates that we collect PSS, to reduce how much we do\nthat heavy operation.  Added a new way to determine\nwhether a process has changed to a state for the\n\"first\" time -- now this is when it has gone to that\nstate for the first time since it was in a lower state.\nThis will reduce the amount of time we consider a\nprocess to be first to only when it has previously\ngone into a higher state than it had before.\n\nKeep track of more fine-grained information about why we\ncollect a PSS sample (not just internal, but for a single\nprocess, all processes because of a mem state change, all\nprocesses because of a poll).\n\nStarted collecting RSS in various places, so we can start\nlooking at that w.r.t. PSS and see about transitioning to\nit is a new primary metric.\n\nAdded logging for many of the places where the system\nwrites its configuration files, so we can more easily\nsee any bad behavior going on in those areas.\n\nAdded some currently disabled code to read smaps directly\ninstead of using fgets().  Probably won\u0027t help, but want\ntot test.\n\nBug: 70859548\nTest: atest CtsAppTestCases\nChange-Id: I400dba0f3ae9c024df51c946cfa592561028b598\n"
    },
    {
      "commit": "6754ca81c2a5f88d67b759c24db0b4aba3a82314",
      "tree": "a9974429733defe0afcdb9fea9666b4f2fd9064f",
      "parents": [
        "0cccde6b1ad66c16a1dbacdd17c634efdf80d83d"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Thu Jan 11 16:56:29 2018 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Thu Jan 25 14:42:42 2018 +0000"
      },
      "message": "Add support for UsbDeviceManager to talk to USB GADGET HAL\n\nTill now, Init scripts(property tiggers) are used define the\noperation that needs to be performed when a certain gadget\ncomposition needs to be enabled. Based on the user preference,\nusb service sets the sys.usb.config which triggers the\ncorresponding property triggers in init scripts and usbservice\npolls on sys.usb.state to infer whether the property triggers\nhave completed executing.\n\nThis CL makes UsbHandler class abstract to make init scripts\nbased legacy implementation and HAL based implementation to\nshare the common logic. The legacy init script based logic is\nimplemented by UsbHandlerLegacy and HAL based logic is implemented\nby UsbHandlerHal. The decision on which one to initialize is\nmade depending on whether the device has Gadget HAL impelemented.\n\nSince HIDL supports asynch calbacks, usb state management is moved\nto the message queue to avoid polling incase of HAL based\nimplementation.\n\nTo switch to a new configuration:\n1. UsbService calls setCurrentUsbFunctions and queues\n   MSG_SET_FUNCTIONS_TIMEOUT\n2. If the  setCurrentUsbFunctionsCb arrives on time,\n   then  MSG_SET_FUNCTIONS_TIMEOUT is cancelled and\n   default functions are retried by queueing\n   MSG_SET_DEFAULT_FUNCTIONS if SUCCESS is not signalled.\n3. If MSG_SET_FUNCTIONS_TIMEOUT gets executed, then,\n   default functions are retried by calling\n   setEnabledFunctions(null, false, mUsbDataUnlocked);\n\nAlso, for HAL based implementation config_oemUsbModeOverride is no\nlonger needed as hal can take of enabling oem specific functions.\n\nBug: 63669128\nTest: Tested usb gadget configuration for both cases:\n1. When gadget hal is present\n2. When gadget hal is not present\nChange-Id: Ifcef464a0b97b265872696346a76162f8e84d6c0\n"
    },
    {
      "commit": "5eb97dcf50da4a405b5bc889ec2cec27b0fd07d9",
      "tree": "079351789b9ad93a5c1521c39e9a23092c2342f7",
      "parents": [
        "174df238ac2ce4e952c88d0aa83505aa123629e5"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Thu Jan 11 16:56:29 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Jan 22 17:02:25 2018 -0800"
      },
      "message": "Add support for UsbDeviceManager to talk to USB GADGET HAL\n\nTill now, Init scripts(property tiggers) are used define the\noperation that needs to be performed when a certain gadget\ncomposition needs to be enabled. Based on the user preference,\nusb service sets the sys.usb.config which triggers the\ncorresponding property triggers in init scripts and usbservice\npolls on sys.usb.state to infer whether the property triggers\nhave completed executing.\n\nThis CL makes UsbHandler class abstract to make init scripts\nbased legacy implementation and HAL based implementation to\nshare the common logic. The legacy init script based logic is\nimplemented by UsbHandlerLegacy and HAL based logic is implemented\nby UsbHandlerHal. The decision on which one to initialize is\nmade depending on whether the device has Gadget HAL impelemented.\n\nSince HIDL supports asynch calbacks, usb state management is moved\nto the message queue to avoid polling incase of HAL based\nimplementation.\n\nTo switch to a new configuration:\n1. UsbService calls setCurrentUsbFunctions and queues\n   MSG_SET_FUNCTIONS_TIMEOUT\n2. If the  setCurrentUsbFunctionsCb arrives on time,\n   then  MSG_SET_FUNCTIONS_TIMEOUT is cancelled and\n   default functions are retried by queueing\n   MSG_SET_DEFAULT_FUNCTIONS if SUCCESS is not signalled.\n3. If MSG_SET_FUNCTIONS_TIMEOUT gets executed, then,\n   default functions are retried by calling\n   setEnabledFunctions(null, false, mUsbDataUnlocked);\n\nAlso, for HAL based implementation config_oemUsbModeOverride is no\nlonger needed as hal can take of enabling oem specific functions.\n\nBug: 63669128\nTest: Tested usb gadget configuration for both cases:\n1. When gadget hal is present\n2. When gadget hal is not present\nChange-Id: Ifcef464a0b97b265872696346a76162f8e84d6c0\n"
    },
    {
      "commit": "7ca5d3a334ce1bd16360cef14889f44829bf8208",
      "tree": "75ef88dc558c8997e7651c6c56b19c7ec0035596",
      "parents": [
        "65a6237243a794125b6596f9187dbaa84032f522"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Nov 30 19:10:55 2017 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Fri Jan 12 15:35:43 2018 +0000"
      },
      "message": "DO NOT MERGE: Add setScreenUnlockedFunctions method to UsbManager\n\nCherry-pick from 30b9adfad1c5055044f0b585782b10f764e0ddf9\n\nThe screen unlocked functions save effort on setting\nthe usb config during each connection. These\nfunctions persist between connections and between\nboots. When the screen is unlocked and these\nfunctions are set, the current functions will\nbe automatically set to the screen unlocked functions.\n\nAlso added svc command for this so it can be\nused and tested while the UI is worked on.\n\nBug: 62876645\nTest: svc usb setScreenUnlockedFunctions mtp\nTest: Test functions with locking, unlocking, and\ndisconnecting, with no lockscreen, swipe, and pattern\n\nChange-Id: Ia05e095917166d25398c4d310b02971e3a1bb12a\n"
    },
    {
      "commit": "65a6237243a794125b6596f9187dbaa84032f522",
      "tree": "5d0ed610a175344c05bdb1996e294f4d372d4d6d",
      "parents": [
        "999d998fb0ab695f35b3f035f599b4a2c29a09ab"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Fri Aug 18 17:26:05 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Wed Jan 10 16:45:32 2018 -0800"
      },
      "message": "Overcome disconnect during oem override\n\nCherry-pick from 83a0d6fa577fab4d45aba38e3eb52b08b8123c17\n\nWhile bootup, usb gets configured when the property triggers are\nrun. While in oemOverride, the current configuration is persisted\nin sys.usb.\u003cbootmode\u003e.config. Do not reconfigure the stack if the\ncurrent configuration is same as the new configuration.\n\nBug: 64225494\nChange-Id: Id35d110bf3fa8f58d05e14941716d4ad2b196f8d\n"
    },
    {
      "commit": "30b9adfad1c5055044f0b585782b10f764e0ddf9",
      "tree": "2501d4b4057bb311aede24739f1f5fdf95107cfa",
      "parents": [
        "03033385afd531807c5f96a577f76f12a9a08431"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Nov 30 19:10:55 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Jan 09 15:36:35 2018 -0800"
      },
      "message": "Add setScreenUnlockedFunctions method to UsbManager\n\nThe screen unlocked functions save effort on setting\nthe usb config during each connection. These\nfunctions persist between connections and between\nboots. When the screen is unlocked and these\nfunctions are set, the current functions will\nbe automatically set to the screen unlocked functions.\n\nAlso added svc command for this so it can be\nused and tested while the UI is worked on.\n\nBug: 62876645\nTest: svc usb setScreenUnlockedFunctions mtp\nTest: Test functions with locking, unlocking, and\ndisconnecting, with no lockscreen, swipe, and pattern\n\nChange-Id: Ia05e095917166d25398c4d310b02971e3a1bb12a\n"
    },
    {
      "commit": "f25c4eb7fdf89e8a012c92c585c988fe1b410b2c",
      "tree": "f9235dd35b2d3ba63f1661a5436cc49435c5501e",
      "parents": [
        "7310f4f35b5b53f6f0f6dd7d3a12ff1c9f273173"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Dec 11 08:36:41 2017 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Dec 13 13:33:40 2017 -0700"
      },
      "message": "Adding ability to control how the USB data is dumped.\n\nAlso added tracing to android.UsbDevice creation.\n\nTest: Try each dump command with CALYX Pat USB DAC \u0026 Dragonfly Red USB DAC\n\nChange-Id: I2ec05dfa9c544d0c50ee59e3b990e9010cbe0aa0\n"
    },
    {
      "commit": "eb652a47a180092b397ec40c718dfc13935f7fb6",
      "tree": "9af0e5fbe2002dca0a1ec816b51b56bdcb81418a",
      "parents": [
        "f2ed7683daee70d4330306ded96d657ffc826b3e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 05 09:46:29 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 12 23:22:25 2017 +0000"
      },
      "message": "Convert services to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m checkbuild\nChange-Id: I417409281c928ea667d937090d2a0d9d72a449a2\nMerged-In: I417409281c928ea667d937090d2a0d9d72a449a2\nExempt-From-Owner-Approval: trivial conversion\n(cherry-picked from commit e0b2ee52d2f274a2d46b2e6695e42d2764c39fa7)\n"
    },
    {
      "commit": "e0b2ee52d2f274a2d46b2e6695e42d2764c39fa7",
      "tree": "b108622b940a6d004b50b2768f6738fecbb4dfb8",
      "parents": [
        "23627fbff5f13629e997a00b006a1ebdc423e735"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Dec 05 09:46:29 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 08 21:00:15 2017 +0000"
      },
      "message": "Convert services to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: m checkbuild\nExempt-From-Owner-Approval: trivial conversion\nChange-Id: I417409281c928ea667d937090d2a0d9d72a449a2\n"
    },
    {
      "commit": "2b3ae20bfc52c72266ff846a451eaac2259ebaeb",
      "tree": "5ffb4a2a7ae5e43ad72cdcad28700e477c998b45",
      "parents": [
        "33619ed5476fc204167751012ab2f48315c87f07"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Nov 29 17:37:35 2017 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Dec 06 09:49:22 2017 -0800"
      },
      "message": "Saving USB Device connect/disconnect info.\n\nTest: Manual testing with Skylab, Mir, HTC dongle \u0026 Presonus AudioBox 22VSL\n  (and various others)\n\nChange-Id: Ice1bb889bc4655805d6b117988a5ebc4baa48cde\n"
    },
    {
      "commit": "558ff9d3f5f0a70d745b72d1d2d84f4e91850b8b",
      "tree": "7b8888644ec40818e32ec3a6920069283d49a58b",
      "parents": [
        "e6e6f2d6c1e3e85e96481ce800cb2db83a14b75f"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Nov 17 15:11:36 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Nov 27 20:58:38 2017 -0700"
      },
      "message": "Fixed class and subclass IDs sign extension on byte-\u003eint problem.\n\nDevices - Skylab, Mir, HTC dongle, Presonus AudioBox 44VSL, HP mouse\nHard coded class ID of 0xFF and subclass 0xFD to match b/68944518 symptoms.\n\nBug: 68944518\n\nTest: Manual - see above\n\nChange-Id: I7330c57b15278158a2eb449f0463b91244a3e176\n"
    },
    {
      "commit": "9d84fee2eaa54b6e229d165e380c35ccc559de72",
      "tree": "074dafad2efe85567c4656a6110eb6bd6bb1d816",
      "parents": [
        "13a0dbc173ea0991c2bcd0b3394897457af2c549"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Fri Nov 17 13:51:19 2017 +0000"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Nov 27 20:58:38 2017 -0700"
      },
      "message": "Revert \"Revert \"Eliminate native/JNI/callback USB Descriptor parsing mechanism\"\"\n\nThis reverts commit 115cd64f168e14401ba3a2062c8cbe9361416802.\n\nChange-Id: I8be17cf939397b3c8ac6b11759b8195f5febab10\n"
    },
    {
      "commit": "c8ed5ecdc44ec92db5fe2c19a8ea9648e0e815bc",
      "tree": "aa6bb1905dd80f747e4454c92d969807b5871d62",
      "parents": [
        "42753a512e2719ca078851a62760a19890641e6f"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Sep 25 13:03:08 2017 +0100"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Nov 16 09:00:00 2017 +0000"
      },
      "message": "Check camera permissions for any devices using the VIDEO class\n\nAny USB devices that are of class VIDEO or have similar\ninterfaces should check whether the calling client has\ncamera permissions before granting access to the device.\nThe above restriction will apply for any packages that\ntarget P or above.\n\nBug: 27367690\nTest: Manual using 3-rd party USB webcam applications.\nChange-Id: I7b4f808d344cae33fde93e6d81c7cceed523e24a\n"
    },
    {
      "commit": "220871a697290529278ed16db508eda8e12f3fc7",
      "tree": "bc13101b63c6fe39a9d92706ecb7ded7f98f5a9c",
      "parents": [
        "802f191b2b84a1b1b82c7f6f3268846084b35dfb",
        "98e12851336b7db16e583f9afac63ecc97465980"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 12:31:11 2017 -0800"
      },
      "message": "Merge commit \u002798e12851336b7db16e583f9afac63ecc97465980\u0027 from\noc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.\n\nChange-Id: Ia7b8da4a00d215160e4a4fa40f6044208d1297b7\nMerged-In: I19846d2a3ee27aecbae2367a74ee49082eea154d\n"
    },
    {
      "commit": "630fc40aadf3f83671607bd6a651770958c16dfa",
      "tree": "667f3637f66943f0c365d4d31a4f6f7c0ec3cd6b",
      "parents": [
        "3f89bd678334a1cfd24e387a3be6c2c395ff2856",
        "5a633c6e4d9661c574ac34e891da22ec62b5e383"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 20:11:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 20:11:49 2017 +0000"
      },
      "message": "Merge \"Don\u0027t show \"always use\" when app can\u0027t be default\""
    },
    {
      "commit": "115cd64f168e14401ba3a2062c8cbe9361416802",
      "tree": "4959045d918d308d9ecb6f3fd0296710d0c1a486",
      "parents": [
        "95966880171a8cdf7c1f6471a2794a0d3b07f69f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 09 18:03:17 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 09 18:35:10 2017 -0800"
      },
      "message": "Revert \"Eliminate native/JNI/callback USB Descriptor parsing mechanism\"\n\nThis reverts commit 513160fd807e43c6a8268cbe279d8398b44acb26.\n\nBug: 68944518\nBug: 68008691\nBug: 68337205\nTest: USB connection to audio device and laptop\nChange-Id: If9223aae953581b2f2e3a6b1adf174528aa94132\n"
    },
    {
      "commit": "5a633c6e4d9661c574ac34e891da22ec62b5e383",
      "tree": "deb9c8586788c74ea0260fb2c54caff01d29b453",
      "parents": [
        "3b382900a81a10498fc35e927086982bc8e18437"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Thu Nov 09 15:55:24 2017 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Thu Nov 09 16:58:20 2017 -0800"
      },
      "message": "Don\u0027t show \"always use\" when app can\u0027t be default\n\nEach USB device can have one default handler. This app is launched when\nthe device is plugged in. A default handler automatically gets\npermission to access the device when launched.\n\nAll other apps have to request the permission to access the USB device\nvia UsbManager.requestPermission. In the permission dialog there is an\noption to make the app the default app for the device. Of course this\nonly makes sense if this app declares the right properties to be\nauto-launched. Hence check this and only then show this options.\n\nAlso made the string in the dialogs easier to understand.\n\nAccessoryFilter and DeviceFilter needed to be copied so I can access\nthem from system-ui. No code change in these classes.\n\nTest: requested permissions from app that could by the default for the\n      device and from an app that could not. Also tested \"confirm\" flow\n      that is executed when the device is plugged in and a app that\n      might be default is installed.\nBug: 67381583\nChange-Id: I12eb7efed0ad107c70ae32433a5629108f252486\n"
    },
    {
      "commit": "92a948e4cb8cfa026487884e4fb1e91a66e85fc4",
      "tree": "b71cd3ee7d7a2b900042a212d634c7a9a225007d",
      "parents": [
        "680130d1be3c507c541ab39c1ec6c17b5bf1a765",
        "79a2d2a936c735adc33d570de4330f1852e69d5d"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Fri Nov 03 22:43:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 03 22:43:31 2017 +0000"
      },
      "message": "Merge \"Respect Accessory timeout value when restoring defaults\" am: 3ddf22e69c am: c37036d164\nam: 79a2d2a936\n\nChange-Id: I5d315bf170184c65d2713c4be55170bab1eb42f6\n"
    },
    {
      "commit": "79a2d2a936c735adc33d570de4330f1852e69d5d",
      "tree": "f6abed5d294227b81c71a8b929dc870084110b73",
      "parents": [
        "e9cbcf42ad6ebecc5b8bf15e4e81f100abeeedd1",
        "c37036d1644f4de785935c87a1281d7435b22241"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Fri Nov 03 22:32:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 03 22:32:26 2017 +0000"
      },
      "message": "Merge \"Respect Accessory timeout value when restoring defaults\" am: 3ddf22e69c\nam: c37036d164\n\nChange-Id: Id6feac7351a4627c0a4a90b67899ee2c1aa469e8\n"
    },
    {
      "commit": "c5bd3d3bb8864371d6c7720cb58d0a9d53ebe684",
      "tree": "6945437dc47a909df3e2f70430fa6f0a7505140f",
      "parents": [
        "a7c51a3d7fa6e8cdbe0ba22f871b0b98fd8f9677"
      ],
      "author": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Thu Nov 02 18:39:31 2017 -0700"
      },
      "committer": {
        "name": "Selim Gurun",
        "email": "sgurun@google.com",
        "time": "Thu Nov 02 18:39:31 2017 -0700"
      },
      "message": "Respect Accessory timeout value when restoring defaults\n\nAndroid accessory mode timeout value is a lot larger than default\ntimeout value (10 seconds vs. 1 second). The large timeout\nvalue is needed to accomodate for HUs that are not quick\nto respond after MTP to Accessory mode change.\n\nBug: 68819844\nTest: Manual\nChange-Id: I665e1001f8df66fb00cbfcbf6c58d97c372797fc\n"
    },
    {
      "commit": "513160fd807e43c6a8268cbe279d8398b44acb26",
      "tree": "00f43450c0bb4de537d3b3cd589f52f1c792dca7",
      "parents": [
        "9cc9ad632b25e7ebbb680654dcc4561b02f088cb"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Oct 19 14:08:12 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Nov 02 16:43:23 2017 -0600"
      },
      "message": "Eliminate native/JNI/callback USB Descriptor parsing mechanism\n\nAlso optimized connection mechanism.\n\nBug: 68008691\nBug: 68337205\nTest: Manual\nDevices - Skylab, Mir, HTC dongle, Presonus AudioBox 44VSL, HP mouse\n\nChange-Id: I287bcdd251b38d2a5cbd37bca1a80bf7f7b0a265\n"
    },
    {
      "commit": "fd47f4032da128e78d605e10f9e67786b08a14e2",
      "tree": "bd81c9c72edcc016fed65d31eda6b043528f95f9",
      "parents": [
        "9eb155567d911516ed23bad643b47486d6cc6fcd"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Oct 06 14:58:58 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Oct 12 10:53:03 2017 -0600"
      },
      "message": "Checking for errors opening/parsing ALSA \"cards\" file.\n\nTest: Manual\nBug: 67590842\n\nChange-Id: I62a5da97776bc7b7f03d3883cb06607cbdf6f6ce\n"
    },
    {
      "commit": "50f8bbb9cf0d32476caf91570e0e6bdbf2d7ac99",
      "tree": "a47798c7478cd27491a990ac110976d51c71cc47",
      "parents": [
        "592a1e301409d9e1df5500f00015370f2f79d773"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Oct 05 15:28:20 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Oct 05 15:28:20 2017 -0600"
      },
      "message": "Catch IO Exception in UsbDevicesParser and don\u0027t add failed devices.\n\nNote: This is related to bug 66988327, but NOT a fix for it.\n\nBug: 66988327\nTest: Manual\nChange-Id: Ib9ccaa9634c7fc011f70513d5589870e9190418a\n"
    },
    {
      "commit": "aa12c85c9865754b7bbaf68dd75814c6fbd67177",
      "tree": "fa98b8d36be1064d3baf689905956c0164cf5485",
      "parents": [
        "d2dff96c459a25aa5e2b23c180cc95a90722b186",
        "a3841871a3dc2d2269b163a5ff4b41a05f905040"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Sep 06 01:59:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 06 01:59:32 2017 +0000"
      },
      "message": "Merge \"Add dump of USB descriptors to the dumpsys for UsbHostManager service.\" into oc-mr1-dev am: e7b8f6d24a\nam: a3841871a3\n\nChange-Id: Idcbb5dd875ec1afcf4250b641e707cc9f2115e10\n"
    },
    {
      "commit": "53215d1f7d79c6577b32c3b71db6db6435c95f09",
      "tree": "4b7c9a3af8a3d226cd9b0e54b536fb0eedc16891",
      "parents": [
        "563a5637d71db27e0fc95082601198e29d80a15e"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Aug 31 13:20:26 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Sep 05 14:30:01 2017 -0600"
      },
      "message": "Add dump of USB descriptors to the dumpsys for UsbHostManager service.\n\nCleaned up text formatting.\n\nBug: 65158441\nChange-Id: Ie6531d42bb0d78f2b8af382329a973e629f23c5f\nTest: Manual - connected USB headset, ran adb shell dumpsys usb. Examined output.\n"
    },
    {
      "commit": "6598a033ab9c2ebb9b9ebd5d95c531f3a27f4b7d",
      "tree": "b55f3a229b36f53c6aa94a365c19152687e6f9ed",
      "parents": [
        "6aeabfe3bad8e380b1e2f25f8a622f9609c6b079",
        "ea09d7640374059bb621ce1db0736666a4add99c"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 30 23:13:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 30 23:13:35 2017 +0000"
      },
      "message": "Merge \"Adding USB audio-class 2.0 spec descriptors.\" into oc-mr1-dev am: 87cb6d806e\nam: ea09d76403\n\nChange-Id: I777211f0a458b256cfc884c64df29bd5fed0b84a\n"
    },
    {
      "commit": "87cb6d806e83bb3c0e3ea778acf1e36df70374f3",
      "tree": "943cb495a4b502f8df5c7d3050cdc11c57d2ff22",
      "parents": [
        "4a8f95ba5691ff85f398ddc1b6a5c5aeb8d10d6a",
        "fd7cb85feff517f3cc94384102933aa4485e1fc5"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 30 22:13:36 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 30 22:13:36 2017 +0000"
      },
      "message": "Merge \"Adding USB audio-class 2.0 spec descriptors.\" into oc-mr1-dev"
    },
    {
      "commit": "fd7cb85feff517f3cc94384102933aa4485e1fc5",
      "tree": "db4ad9f773e738362188b533088186ef4d18b1c5",
      "parents": [
        "b140dc40d4aa4f46489f6829dc7faba4060c1a9a"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Jul 07 08:14:52 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 30 10:29:16 2017 -0600"
      },
      "message": "Adding USB audio-class 2.0 spec descriptors.\n\nAdded USB audio-class 2.0 format type descriptors.\nAdded Tree parsing.\nRearchitected reporting (again) to better support reuse and scale.\n\nBug: 64301464\n\nTest: Run code against representative USB audio peripherals and verify\nthat each correctly handles or ignores all descriptors and the correct\ndevice semantics (headset / not-headset) are still calculated.\n\nChange-Id: I1b3b01ab1cd804ed876bf6427c3afba15eea6a6e\n"
    },
    {
      "commit": "29b3cfa21daeb4190948b99cbed093e684f22c56",
      "tree": "c5d6831e8785942e5a609cb723fc38133cce15e9",
      "parents": [
        "ffb1952c38d7d39aec6325fd773662ffd731b126",
        "54c6447f47c212006e3b9d0f72a32246b9260399"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Aug 24 23:10:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 24 23:10:06 2017 +0000"
      },
      "message": "Merge changes from topic \"am-2cfb180af8604b6fac1598107a7b546e\" into oc-mr1-dev-plus-aosp\nam: 54c6447f47\n\nChange-Id: I13aeac421ecf7a54f16e0fd6aaa19be3f513be4a\n"
    },
    {
      "commit": "e537a8313987bd10208281c4fa5c6834b4fd1d15",
      "tree": "ce90d5768625db645a01cbd873cda36d6d57b65c",
      "parents": [
        "07168bf44b97f3d9d6b80b615d983f0eba84254b"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 17:37:09 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Aug 23 11:10:44 2017 -0700"
      },
      "message": "Reset functions to null when user changes.\n\nWhen MTP or PTP is in the config and user changes,\nit clears dataUnlocked but sets the functions to\nmCurrentFunctions which will leave MTP or PTP in the\nconfig. If dataUnlocked is false, we want to remove\nMTP/PTP from the config when adb is enabled, and leave\nthem in otherwise. This is done automatically by\nsetting functions to null.\n\nBug: 64822515\nTest: Change users while adb  / mtp connected.\nChange-Id: I82561f82e06f247c967438a473b08b5098d39ccb\n"
    },
    {
      "commit": "83a0d6fa577fab4d45aba38e3eb52b08b8123c17",
      "tree": "6e4c0e922192f9c54e8e2b4748a6311873b6213b",
      "parents": [
        "eb5600a2a034dc9f42895602d44545bef32a041d"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Fri Aug 18 17:26:05 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Fri Aug 18 17:26:05 2017 -0700"
      },
      "message": "Overcome disconnect during oem override\n\nWhile bootup, usb gets configured when the property triggers are\nrun. While in oemOverride, the current configuration is persisted\nin sys.usb.\u003cbootmode\u003e.config. Do not reconfigure the stack if the\ncurrent configuration is same as the new configuration.\n\nBug: 64225494\nChange-Id: Id35d110bf3fa8f58d05e14941716d4ad2b196f8d\n"
    },
    {
      "commit": "e15b5619c5405ec57119611733929f091a7e3cbc",
      "tree": "d932fbc08406d756cb661e4c0c86f0ab00fe2dca",
      "parents": [
        "055bbecbcbbe95fea9b00cd92242e366aac090fc",
        "89163cf020e19ab2233759da69b2490e7524ca5b"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Tue Aug 01 19:15:49 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 19:15:49 2017 +0000"
      },
      "message": "Merge \"Reword analog audio not supported notification\" into oc-dr1-dev am: 69840ca338\nam: 89163cf020\n\nChange-Id: Idf481243ae12d62e2fe492d7834ef0d8e7476a04\n"
    },
    {
      "commit": "fb80072f9926ea74f2e957fc86eb935ac753e01d",
      "tree": "7b67f7af115d8dc30d28fff32abac5ca5a5fbb33",
      "parents": [
        "c199e3fdf18e23774dd0d9f6837dca8c0dc579c9",
        "69840ca338347a1c2607d0f40d061c7be0e0c584"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Tue Aug 01 19:03:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 19:03:55 2017 +0000"
      },
      "message": "Merge \"Reword analog audio not supported notification\" into oc-dr1-dev\nam: 69840ca338\n\nChange-Id: I6a9a611c13de7a63e6d5bdbf4718827f2295a28b\n"
    },
    {
      "commit": "69840ca338347a1c2607d0f40d061c7be0e0c584",
      "tree": "049a4fb9b90e1f96761066056d876d1d5853f746",
      "parents": [
        "50d25dc00c7d2106903fe99c4ffa8b787b75efb9",
        "30c8efa66ba6b08de951ad672a6004da04059af2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 01 18:51:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 01 18:51:53 2017 +0000"
      },
      "message": "Merge \"Reword analog audio not supported notification\" into oc-dr1-dev"
    },
    {
      "commit": "09acfdf0c732ba2419ab7f6fbe8e0378610ae5f4",
      "tree": "c225b409f8ba94f575c855eb3ff21847ae3b8ce5",
      "parents": [
        "81362679ad986622e2f40e543166c18b550746e8",
        "3e62b611f093df207f990fcc9a5bf3487d92df81"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Tue Aug 01 15:43:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 15:43:51 2017 +0000"
      },
      "message": "Merge \"Fix exceptions causing HTC dongle (and JBL headset) to fail connection logic.\" into oc-dr1-dev am: f3562ffdfb\nam: 3e62b611f0\n\nChange-Id: I4d5c511c043048e79b4846febda85f521fb59f31\n"
    },
    {
      "commit": "18d64cf8fe4698c35f0f421dba3ab777ffbc8bba",
      "tree": "094c15ca8d98a38e6741f16f599b04fd8266688a",
      "parents": [
        "08674f3a25fc36355e296afb61d30e63e5b81928",
        "f3562ffdfbb31638297c983221626d94e81ab084"
      ],
      "author": {
        "name": "Paul Mclean",
        "email": "pmclean@google.com",
        "time": "Tue Aug 01 15:35:05 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 01 15:35:05 2017 +0000"
      },
      "message": "Merge \"Fix exceptions causing HTC dongle (and JBL headset) to fail connection logic.\" into oc-dr1-dev\nam: f3562ffdfb\n\nChange-Id: I0304bf7c72a340f4bebebea89d2e934ae5830b33\n"
    },
    {
      "commit": "30c8efa66ba6b08de951ad672a6004da04059af2",
      "tree": "fd2f9b023bb4592d80940fcbd80420d01a4676e1",
      "parents": [
        "bba60fadc7faeefe6afa3fe530e5c7ad36ee4d26"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Mon Jul 31 12:55:46 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Mon Jul 31 17:05:17 2017 -0700"
      },
      "message": "Reword analog audio not supported notification\n\nNew title: Analog audio accessory detected\nNew message: The attached device is not compatible with this\nphone. Tap to learn more.\n\nAlso switch to bigTextStyle as the notification message\ntakes more than one line to display.\n\nBug: 63962800\nTest: Attached analog audio accessory to verify the notification\nmanually. Also verified that the charging notification remians\nuntouched.\nChange-Id: I5c395bdf3c3dd11f3be8835ec773f087afdc85d9\n"
    },
    {
      "commit": "7d545bef6077d55dcbc3533e416698bf62085d41",
      "tree": "784565322c846f9d9851af618c2224ab6fa961ec",
      "parents": [
        "5934ae605a0d84f8a21c4637f60b07b884837dfd"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Jul 28 17:36:15 2017 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Jul 28 17:47:54 2017 -0700"
      },
      "message": "Fix exceptions causing HTC dongle (and JBL headset) to fail connection logic.\n\nBug: 64108509\nTest: Manual\n\nChange-Id: I9574f34cea4ff9ef3e18553a138f1a8b95b1b108\n"
    },
    {
      "commit": "1e249aeafa3539f2a4a2bb47b1fb2996f7627b01",
      "tree": "44806cefd6a54265c0422bf064e83b0b26ff8d89",
      "parents": [
        "a556374b761cb27c9c0e49678ce820a9bbce8708",
        "19ad4c2055c001293a6d57450855ee4192feee40"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Wed Jul 19 18:16:40 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 19 18:16:40 2017 +0000"
      },
      "message": "Merge \"Always reevaluate whether to show the notification for USB_DEVICE_* intents\" into oc-dr1-dev am: d5f442d65b\nam: 19ad4c2055\n\nChange-Id: I4b6edbefd70585302959aa830f5a6d50f4f01a4d\n"
    },
    {
      "commit": "5e79cbb2913c28ca6d79001ddaa0c8cec78b3eed",
      "tree": "020d1347f0e7bce78df7f8a367a7b2fb215a4b89",
      "parents": [
        "f99ac67bdb19c96eedc9ce274ded306e9f658371"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Tue Jul 18 17:29:10 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Tue Jul 18 17:44:47 2017 -0700"
      },
      "message": "Always reevaluate whether to show the notification for USB_DEVICE_* intents\n\nThe decision whether to show or hide the \"Usb supplying power..\"\nnotification is based on two different broadcasts\n1. USB_DEVICE_ATTACHED/DETACHED\n2. USB_PORT_CHANGED\n\nDepending on how long the port takes to enumerate, the required\nintents might arrive in different order. Previously, it was assumed\nthat the ATTACHED broadcast would arrive before the PORT_CHANGED\nbroadcast and the code was aggressive to reduce the number of\ntimes the decision to display/hide the notification is made.\nThis might cause the notification to be displayed in some instances\nwhen it is not supposed to be displayed. This CL makes the usb service\nto always reevaluate whenever USB_DEVICE_ATTACHED/DETACHED is\nreceived.\n\nAlso, adding logs to print whenever the notification in enqueued/\ndequeued.\n\nBug: 63785369\nTest: Verified that the notification is displayed when connecting\nto another pixel device and hidden when mouse or headset is\nconnected.\nChange-Id: I30650a2d9923d01a1fce4b9450e65ec7f4e6557b\n"
    },
    {
      "commit": "39c9e18721729c38252e8dd5f2d2736aa145c67d",
      "tree": "084dd05990ca2617752412ad91177112d5d7b2b0",
      "parents": [
        "e67247af4b888a28ce396e50091a0af28ab273f1",
        "6899fa6c81f8a87c10b152a69397641f76a085f0"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jul 13 18:09:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jul 13 18:09:17 2017 +0000"
      },
      "message": "Merge \"More fine-grained exception handling so we can still use non-excepting descriptors.\" into oc-dr1-dev am: 84a60bf9e8\nam: 6899fa6c81\n\nChange-Id: Ic70707c334e9765e7f196bdcb0d2d753ce17b0fb\n"
    },
    {
      "commit": "20568917af6d2a6c569d7f0f0155e80c3bcd1b78",
      "tree": "4cfea8b02f7d0b0a69210f2157d98b37fd829ee7",
      "parents": [
        "b82963f3e038cf12708374c78aff3f57619d02b7"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Jul 11 11:18:59 2017 -0600"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 13 15:53:42 2017 +0000"
      },
      "message": "More fine-grained exception handling so we can still use non-excepting descriptors.\n\nBug: 63655391\nTest: Manual - connect various devices and verify the connection state is correct.\nChange-Id: Iae6143d2e853e916c8588e0c6f771c00714b3a8a\n"
    },
    {
      "commit": "6276bb899e810655fab9083393c7f4d2a494b7d7",
      "tree": "38d6964075253793fff2dc1b755546f3a4a240b4",
      "parents": [
        "f922271d4e1a6532e38748b666db8ed4f3059e17"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Tue Jul 11 16:34:41 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Wed Jul 12 18:47:07 2017 +0000"
      },
      "message": "Clear mCurrentAccessory if accessory function is no longer enabled\n\nAccessory mode implements debounce timeout ACCESSORY_REQUEST_TIMEOUT\nwithin which when a disconnect is seen, the accessory function would\nbe removed from the usb configuration but mCurrentAccessory would\nnot be set to NULL until the timeout expires.\n\nAlso, setEnabledFunctions(null, false, false) does not force an\nadditional disconnect when accessory function has already been\nremoved from usb configuration.\n\nBUG: 62241238\nChange-Id: I25973475fb02d613e11396bcad5e88656ad8940a\n"
    },
    {
      "commit": "f148e8ecceb4bb2f65dfe308aad59531db06059e",
      "tree": "3c30d10a00ef9c004df53e4abe0f25f8db0b29df",
      "parents": [
        "06815d6023f03f0169d67634b3ba10d60c33c7e2",
        "702d82fdc0d5cb9abc236660070a531bf4044db0"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Jul 11 00:58:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 11 00:58:17 2017 +0000"
      },
      "message": "Merge \"Catch exception in descriptor parser causes device connection to be skipped.\" into oc-dr1-dev am: 22d4bf2283\nam: 702d82fdc0\n\nChange-Id: Ia45c777b095ff8c29042145fd11b29dcace24366\n"
    },
    {
      "commit": "b82963f3e038cf12708374c78aff3f57619d02b7",
      "tree": "aede9269adea666bdecceecb3a3ddac0a4da4404",
      "parents": [
        "bc0afda3d2da5d60d48a1ab9e1c54cf50154fa19"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Jul 10 14:51:57 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Mon Jul 10 14:57:20 2017 -0600"
      },
      "message": "Catch exception in descriptor parser causes device connection to be skipped.\n\nBug: 63538159\n\nTest: Manual - force an exception and verify the the device is still available.\nChange-Id: I4f4c59d4d0f73b664fac8bc74a64414d0e9d9a24\n"
    },
    {
      "commit": "b60c48a6a2c5cf3f20ff2c20bf930e069afd2f01",
      "tree": "647a42877fafd68b16b9edeeb9d39fd213345555",
      "parents": [
        "789f10fe12ccda4d313b9f1193c28ebc4e09eda5",
        "885b9e7133438e0ccfb782b62f0e93cae5b39d60"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jul 06 16:52:04 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 06 16:52:04 2017 +0000"
      },
      "message": "Merge \"Broadcast only if boot complete\" into oc-dr1-dev"
    },
    {
      "commit": "885b9e7133438e0ccfb782b62f0e93cae5b39d60",
      "tree": "d63fcd6e6dd8f2b979bd021f9fa6b62ffd70779f",
      "parents": [
        "8a3620f2cc04669bdd1e7a0917ef030ecf1575bf"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jun 29 11:11:52 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jul 05 10:44:59 2017 -0700"
      },
      "message": "Broadcast only if boot complete\n\nAccessory connects / disconnects can occur before\nboot complete, so don\u0027t broadcast intents if that\nis the case.\n\nBug: 63114621\nTest: connect/disconnect an accessory\nChange-Id: Ib8f9eb97ce1630004511fcc1fb84594ccc812c06\n"
    },
    {
      "commit": "6bad7044f5b5f12fdf69d388b6cd9f028ded9806",
      "tree": "82ad34cf55502928be62ba44484f68f814b52ec7",
      "parents": [
        "94c15f432a88296469aa5c8343f1aa185bc7bdb3",
        "03196cdf2eaaf3ca84454e74218114b5c02c161b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jun 30 15:52:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 30 15:52:02 2017 +0000"
      },
      "message": "Merge changes I09ecc525,I83e7e8ef\n\n* changes:\n  Revert \"Do not use lambda as it breaks javac\"\n  Add missing dependency to services for desugaring\n"
    },
    {
      "commit": "ed0cc81212c44f831aed19661a4377ff99cdb60c",
      "tree": "846ee9e8409d8e01e642be076eff6324ab0c06a6",
      "parents": [
        "266bd0d6cac294089ee1d8ab216d0d19a0d76c80",
        "dc0c14f169430915df4b9613f88264080ce5633c"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jun 29 21:54:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 29 21:54:39 2017 +0000"
      },
      "message": "Merge \"Broadcast only if boot complete\""
    },
    {
      "commit": "e3bb95dddb3849d3a54538f507bfe83f6b74cb62",
      "tree": "f9e358873722724de5d5828c611559e3c5702e75",
      "parents": [
        "0e00add46a760480bb9269b391347834b6be8355",
        "1ae42731549bd50f1c2ae8094e3602ba04cf1632"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jun 29 19:42:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 29 19:42:04 2017 +0000"
      },
      "message": "Merge \"Adding USB Headset awareness.\" into oc-dr1-dev am: f56b57781e\nam: 1ae4273154\n\nChange-Id: I24ffbb79b965df15a22dbc5d6ce3ae90ddb27b50\n"
    },
    {
      "commit": "dc0c14f169430915df4b9613f88264080ce5633c",
      "tree": "a42b6a754fa90c890d120328125bb4822dd29805",
      "parents": [
        "37ddbfaa390d17af2bf70f1dfa482de08d383075"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jun 29 11:11:52 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Jun 29 11:14:30 2017 -0700"
      },
      "message": "Broadcast only if boot complete\n\nAccessory connects / disconnects can occur before\nboot complete, so don\u0027t broadcast intents if that\nis the case.\n\nBug: 63114621\nTest: connect/disconnect an accessory\nChange-Id: Ib8f9eb97ce1630004511fcc1fb84594ccc812c06\n"
    },
    {
      "commit": "03196cdf2eaaf3ca84454e74218114b5c02c161b",
      "tree": "bbd748e96dcc35bfc041078e1ebde65a9c87161b",
      "parents": [
        "e44d2ae8b1ca5498c15858ad71737fbcdbaae6ad"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 29 10:35:22 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jun 29 10:35:22 2017 -0700"
      },
      "message": "Revert \"Do not use lambda as it breaks javac\"\n\nThis reverts commit e37eda7b413099f881f348aeafc5d2d33639484e.\n\nI83e7e8efdff9cd662e179240336abebedf859c62 adds the missing\ndependency to let desugar work.\n\nBug: 63078196\nTest: m -j ANDROID_COMPILE_WITH_JACK\u003dfalse\n"
    },
    {
      "commit": "b5eaa809da69865cbde156007ae5363f9209f932",
      "tree": "917a76675ec760ed3a0c3977e9e58b38abd4a459",
      "parents": [
        "c84cd09d3689a4f78a4ab20bcedae0b504a08981"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Jun 07 16:48:32 2017 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jun 29 10:30:05 2017 -0600"
      },
      "message": "Adding USB Headset awareness.\n\nBug: 36220140\nBug: 62043095\nTest: Manual\nChange-Id: Ic4636e3dc2dfce0154e6405848bea7752cf2d07b\n"
    },
    {
      "commit": "e37eda7b413099f881f348aeafc5d2d33639484e",
      "tree": "f4184273d347f8b899d30f507656ad3a8f9fc40a",
      "parents": [
        "0cdd7b7420473fd29592b6342e332c0ed929e236"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Jun 27 16:47:02 2017 -0700"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Jun 27 23:58:33 2017 +0000"
      },
      "message": "Do not use lambda as it breaks javac\n\nBug: 63078196\nTest: Built\nChange-Id: I6f195ad127e95b76b85ad7417f31ac19af0ac5bc\n"
    },
    {
      "commit": "bee04d08b555b030c6e6cf31b10124862411eeb1",
      "tree": "cd0476eb4dc2865982ecad8e4b74dff503bbac6f",
      "parents": [
        "cc1ee93545abd9edf454eb07f2e92845acf0b5fd"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Jun 26 15:32:00 2017 -0700"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Jun 26 16:04:10 2017 -0700"
      },
      "message": "Clean up USB*Manager.\n\nJust automatic cleanup.\n\nTest: Built\nChange-Id: I1da09d6b43503a6b77a3619f0f8513ef39cf2d75\n"
    },
    {
      "commit": "31f5b6875c1b6b84caec2ef27861a703f4a79a6d",
      "tree": "e5b8d7d581d403fd837f54c2c2e8d38ffed3f99b",
      "parents": [
        "972bad878ebb870d25ebd4416e94be4023936b8b",
        "7f3047e6b6613e35f99fa505d4c9f1b99cf27c60"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 05 23:16:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 05 23:16:46 2017 +0000"
      },
      "message": "Merge \"Enable MTP or ADB when default functions are enabled\""
    },
    {
      "commit": "42f4815eff4028c34bf496d30474b042a72d279f",
      "tree": "d66278415422ce35de2377744ab6106c384cbfe1",
      "parents": [
        "6256362a127597d6ba98a4795468d67b29af3833",
        "8d5570b9e1075b759f1f465d77f19986523d1974"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Jun 05 18:54:08 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 05 18:54:08 2017 +0000"
      },
      "message": "Merge \"Remove ptp from persist config on boot\" into oc-dev am: 1d1cf13056\nam: 8d5570b9e1\n\nChange-Id: I792ed0959e5a24ef8893a1bd63e3a33278462556\n"
    },
    {
      "commit": "6032c354d9c7bc7986faaa9eea467896318a7a66",
      "tree": "20a8811c419eaf4392e2a2ebe14f006cefca22a9",
      "parents": [
        "6fb15ea9d4d95cdb66a79764f38ec658f0053cc0"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Jun 02 12:05:03 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Jun 02 12:05:03 2017 -0700"
      },
      "message": "Remove ptp from persist config on boot\n\nWe got a report from a user in which ptp was set in the\npersistent config, likely from a previous version.\nThis causes errors in the usb state and is not removed\nby an ota. To fix, remove ptp in the same place that mtp\nis removed from the persistent config.\n\nBug: 62202885\nTest: Add ptp to persistent config, verify removed.\nChange-Id: I5ebd93b9c8a49bcaca5a3362e49ed1e1acf50a9b\n"
    },
    {
      "commit": "7f3047e6b6613e35f99fa505d4c9f1b99cf27c60",
      "tree": "99a97901e6a58fad772aafa84451df5739c0e95f",
      "parents": [
        "f685344bb29efa91e083ef4f3d9d371518e1fe9c"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Wed May 24 12:42:50 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Thu May 25 10:30:22 2017 -0700"
      },
      "message": "Enable MTP or ADB when default functions are enabled\n\nClients (viz. Tethering) use UsbManager@setCurrentFunction(null, ..)\nto make the device switch to default functions. While in OemMode,\nthis gets set to the last enabled functions list. Instead,\nenable MTP or ADB depending on whether ADB is enabled or not.\nThis is the expected behavior for normal boot as well.\n\nBug: 37491031\nTest: Verified that the device falls back to either mtp or adb while\nin OemOverride mode.\nChange-Id: I1c26d1d0ee3c015b597d40771cd765b783cd91bb\n"
    },
    {
      "commit": "3a958a09d23fb5500c329f806e4b7e404502473e",
      "tree": "e6c061b51ea7c3083a753a1e2ec2823b7f2279fc",
      "parents": [
        "c1e3ab359fff2d3b328fca89673202e9ffcbf158",
        "daa9c19daeff49ebdd7f5ea847292b68334132fc"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 22 23:13:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 22 23:13:58 2017 +0000"
      },
      "message": "Merge \"Revert \"Upgrade logging for UsbDeviceManager to narrow down bugs.\"\" into oc-dev"
    },
    {
      "commit": "daa9c19daeff49ebdd7f5ea847292b68334132fc",
      "tree": "2df3ddd5cb7fa037840f25f36ef81f62ecd4504e",
      "parents": [
        "ad962a923c0b8ec555d3474b394bc3bed0f3613d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu May 04 16:30:12 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 22 10:57:08 2017 -0700"
      },
      "message": "Revert \"Upgrade logging for UsbDeviceManager to narrow down bugs.\"\n\nThis reverts commit c889b4f4eb62ae7ad8de3ff3d98768e71cb3ad5a.\n\nMerged-In: I74306bacad2a61471a9b8c9fd881229b22b6975e\nChange-Id: I74306bacad2a61471a9b8c9fd881229b22b6975e\n"
    },
    {
      "commit": "b2dac523919754b635fb3297d3b9b52909262ac4",
      "tree": "95829876b743cb199f1b51744d6e8d1afbfc66c0",
      "parents": [
        "ef66f191282a1a576ff5e5fec2c3351e0022b5fa"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu May 04 16:30:12 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 15 13:24:23 2017 -0700"
      },
      "message": "Revert \"Upgrade logging for UsbDeviceManager to narrow down bugs.\"\n\nThis reverts commit c889b4f4eb62ae7ad8de3ff3d98768e71cb3ad5a.\n\nChange-Id: I74306bacad2a61471a9b8c9fd881229b22b6975e\n"
    },
    {
      "commit": "653fbeeec4b8f42787d480c2b0a0e9c5f479202a",
      "tree": "8334f8dc8710dd20f1651cb5b059de52d3f37f47",
      "parents": [
        "e088e568f263c5a44b08b435675f8591223e6ad6",
        "c5a4576cab99dc52d077ff8190cd622b3d10adc3"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri May 12 20:31:51 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 20:31:51 2017 +0000"
      },
      "message": "Merge \"Only force reset when adb is not enabled (i.e. mtp is)\" into oc-dev am: f874fd319e\nam: c5a4576cab\n\nChange-Id: I153a5ad3e4bd0de9a62ef39ebc7579f4916b79e3\n"
    },
    {
      "commit": "278685d468da236366845ede2f29ce3a84c901eb",
      "tree": "627b8bee570d62cd22b2fc9f170ae18f89f1ae32",
      "parents": [
        "15a028c9292a173f8e3b0fdc85746a4dad2036a9",
        "ba8b3f05b652323b46cbc28ee71647083082f6b5"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Fri May 12 20:29:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 20:29:15 2017 +0000"
      },
      "message": "Merge \"Remove forward matches before checking for default\" into oc-dev am: d53cbfd0dc\nam: ba8b3f05b6\n\nChange-Id: Ic35779f6b6ad97dc1a6f83356dfa45e0d5b5f406\n"
    },
    {
      "commit": "f874fd319e7abfb8f8421827a0ce224b9881b661",
      "tree": "e80f8cdaa24fe6a125a3a81ed95b5b7c36dfe3b8",
      "parents": [
        "a44c50f3626685f6663a9fe3beb62a54baf94baa",
        "ad962a923c0b8ec555d3474b394bc3bed0f3613d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 19:41:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 19:41:52 2017 +0000"
      },
      "message": "Merge \"Only force reset when adb is not enabled (i.e. mtp is)\" into oc-dev"
    },
    {
      "commit": "d53cbfd0dc5f3c63d5ace4f67ff87fe8219a8fb1",
      "tree": "2834173be3b99372b4f2c66af2ef2b91e29e427d",
      "parents": [
        "1454afce8255079ec4fc42220cd0dac2a86da2b6",
        "0d78363a39de01232097a90933cfeb9f8bbe823d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 19:17:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 19:17:37 2017 +0000"
      },
      "message": "Merge \"Remove forward matches before checking for default\" into oc-dev"
    },
    {
      "commit": "81e8d4b340bf5cfd35ad8a12eb0349b947a2f5f5",
      "tree": "97eef529704d71c2e0cdb4c7e1ba614c66b18d06",
      "parents": [
        "a5b396b5cbbd7874b2bf3f5ca9eb819f97ad75ad",
        "6f286b270d2853bf44cb73964a9e79ba1c44c69e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 19:07:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 19:07:41 2017 +0000"
      },
      "message": "Merge \"Prevent multiple copies of android.hidl.manager-V1.0-java\" into oc-dev"
    },
    {
      "commit": "ad962a923c0b8ec555d3474b394bc3bed0f3613d",
      "tree": "2e8f7b6eb111bf3246bdc368e8c809d7649ed793",
      "parents": [
        "a7af3852081a883ab9323407db47902edcf704b0"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu May 11 12:42:58 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu May 11 13:50:28 2017 -0700"
      },
      "message": "Only force reset when adb is not enabled (i.e. mtp is)\n\nSome users depended on adbd continuing to run after disconnect\nin order to use scripts with nohup. This change allows this\nuse case to keep working since only mtp has to be force\nset.\n\nBug: 38227228\nTest: adb shell \"nohup sh /sdcard/script\" where script contains\n\"sleep 5; touch /sdcard/done\" and verified file still appears even if\ndisconnected during sleep.\nTest: am force-stop com.android.providers.media, still connects\n\nChange-Id: I25ae2b922fa4d06109ac8cf5e43e1c47a33c46a6\n"
    },
    {
      "commit": "0d78363a39de01232097a90933cfeb9f8bbe823d",
      "tree": "90b98ea1efc2d4c7b424dd6b9fc035d6db5e2514",
      "parents": [
        "a22a5d83c2ec9d4b0549e92c1d3af7550896e7ee"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon May 08 09:47:55 2017 -0700"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Thu May 11 10:23:41 2017 -0700"
      },
      "message": "Remove forward matches before checking for default\n\nA forward match is a intent-target (aka. match) that switches between the\npersonal and work profile\u0027s intent resolver.\n\nThis can be unnecessary if there are no work profile matches.\n\nWe need to remove these unnecessary matches early as the default activity\nresolution code considers a system app as default _only_ if it is the only\nmatch. Before there could still the an unnecessary forward match under\nconsideration.\n\nTest: Connected USB accessory that only matches a system app on the personal\n      profile.\n      Before we showed a confirm-dialog, now we consider the system app\n      as default and automatically launch it.\nFixes: 37530439\n\nChange-Id: I7bc9b969fc0b9abae4d15dd3f268783d05b91f9a\n"
    },
    {
      "commit": "e5bf8265258c49c4ee18aa563b49978bd1563c6b",
      "tree": "959775b37cfce65f3bc587fd46da7b5be6af8af0",
      "parents": [
        "6970d4707a2d4e6e1c161904576f877a67b7a75d"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Fri May 05 11:07:49 2017 -0700"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Wed May 10 07:27:24 2017 -0700"
      },
      "message": "Prevent multiple copies of android.hidl.manager-V1.0-java\n\nLink to android.hidl.manager-V1.0-java shared libraryto prevent\nduplicate copies of the library present in process address\nspace.\n\nBug: 38036660\nTest: Verified that the UsbService reports status of the ports through\ndumpsys usb.\nChange-Id: Ie3de4f9bbe28061e7cc464fa3cab2f6bd6fe6995\n"
    },
    {
      "commit": "16bcd7219d968602d09c8c86460b31ffb3d46990",
      "tree": "d1fd634a9331e2e98a0414029621fc6097081165",
      "parents": [
        "bf28b01587ff430c415b29fb3af8091ccef02c3a",
        "bc535b11b67821921cb7778cfc0a4dfc0f09d951"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Wed May 10 02:32:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 10 02:32:54 2017 +0000"
      },
      "message": "Merge \"Merge \"Fixes for handling users + default for USB\" into oc-dev am: 5262ae9b87\" into oc-dev-plus-aosp\nam: bc535b11b6\n\nChange-Id: I6e20b889abbb7d2c037d71c271a733e0639b3e1e\n"
    },
    {
      "commit": "5262ae9b878c5cd7e4fb7de00914ed4c35b10ce9",
      "tree": "f39ab4a8d5dccb201e79d72254f12623639a56ab",
      "parents": [
        "62643dddc7824d33862155d05b19c57cb01b0ef2",
        "d4b09d4e16a9dc2bb08b1e06b87c02de3f46308c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 01:39:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 10 01:39:33 2017 +0000"
      },
      "message": "Merge \"Fixes for handling users + default for USB\" into oc-dev"
    }
  ],
  "next": "9507d707189fa75757a3c69c9964ee93e78a0cc2"
}
