)]}'
{
  "log": [
    {
      "commit": "8f7656176b33a1d24e1e9fb606ffab9a9871bf57",
      "tree": "7fa89b667d570ef72b3240e4ced83d8fe8fbcab1",
      "parents": [
        "b1dd3d1d3efb8ec79e1ee0135aaf9c04d5f9bb6c"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Thu Sep 17 09:35:05 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Sep 18 22:48:34 2020 +0000"
      },
      "message": "Use libcutils_headers for android_filesystem_config.h\n\nandroid_filesystem_config.h is found since system/core/include is on\nthe include path for all projects and contains a symlink to the real\nandroid_filesystem_config.h.  This is fragile and the below bug seeks\nto remove this symlink and have users correctly depend on\nlibcutils_headers.\n\nBug: 165825252\nTest: build\nChange-Id: I244149c2eaf9beefbb8f0e1a0f20cf1adec684eb\n"
    },
    {
      "commit": "46760802b462f0221a36621e9fba59d8b0320a97",
      "tree": "442dcb0f27af322a965a4c788439eac278f6fe44",
      "parents": [
        "65ad57413c3a817ab5de9958aca2504e3418a307",
        "5a8fd4c4c10afb071e1410be2d09e82ede36ea7f"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 22 17:40:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 22 17:40:31 2020 +0000"
      },
      "message": "Merge \"Fix bugprone-posix-return warnings\" am: 2816b20196 am: 5a8fd4c4c1\n\nChange-Id: I1d83f4fed6d21a2777ed65b681645d694bd673af\n"
    },
    {
      "commit": "5a8fd4c4c10afb071e1410be2d09e82ede36ea7f",
      "tree": "ab5c8e43868ae5e929a756900998c0e445707552",
      "parents": [
        "55654a3c4fe8c5a19c0fc8a145ebe9ce7c508760",
        "2816b2019617f59854b6a4fc59683dd63fb1b994"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 22 17:27:57 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 22 17:27:57 2020 +0000"
      },
      "message": "Merge \"Fix bugprone-posix-return warnings\" am: 2816b20196\n\nChange-Id: I03a8c07336f18a9be70e1d2cbaff7465ab084b50\n"
    },
    {
      "commit": "b6409546dc9a3ba3119c030ce0c94e3f46cd6b04",
      "tree": "f4185ae9d5b9a3c22b3384dd61733bb9e1ab069d",
      "parents": [
        "10685e6236d33b3ae006eacf36fee2ea2f1a84e2"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Apr 21 11:41:49 2020 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Apr 21 11:41:49 2020 -0700"
      },
      "message": "Fix bugprone-posix-return warnings\n\nTest: WITH_TIDY\u003d1 make\nBug: 154629561\nChange-Id: I27b3ffc430400b4f133890748a2124afdabb7814\n"
    },
    {
      "commit": "530a7536ac6f17c25eb9c3f6b93b2343b0617399",
      "tree": "a45a3127a32fb83f8470b267c0df1a0f353a82ea",
      "parents": [
        "d6bd328e22c932348a35c46d6fd4c845a1d414b5",
        "7662f71bc1c87bea7ad9ee773e7c09280d21aab7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 23 03:47:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 23 03:47:05 2020 +0000"
      },
      "message": "Merge \"MTP: Sanitize filename provided from MTP host\" into qt-qpr1-dev am: 2d3c39c7ec am: 7662f71bc1\n\nChange-Id: If178b6eeaa50306458f8f191d626b51a0e4c1084\n"
    },
    {
      "commit": "6111b2b92a1844f5796c718bf0736102b876c2b9",
      "tree": "4602e69e50256ce7cc852e840e990ed0b36b9492",
      "parents": [
        "58cc8f2c0254f03d66a28ae1cf0809c171d4ac7d"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue May 28 17:18:21 2019 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Thu Feb 13 14:03:38 2020 +0800"
      },
      "message": "MTP: Sanitize filename provided from MTP host\n\nFix potential security vulnerability via MTP path traversal\n\nBug: 130656917\nTest: atest frameworks/av/media/mtp/tests\nTest: Manual test: modified libmtp for path traversal attack\nTest: Manual test: normal recursive folder copy\nNote: Also patched with 68ccf5c (b/135764253)\nChange-Id: I467e1e6a76d09951050f7f45e5a63419e540c572\n(cherry picked from commit e783e4b24b9e4080e50c50d62a24bcbfabb3e03d)\nMerged-In: I467e1e6a76d09951050f7f45e5a63419e540c572\n"
    },
    {
      "commit": "0931b108b8916d77747840f091f63d03f98d81e6",
      "tree": "7490d3cd8f6d66b4d85c9172d891dcccaef9395b",
      "parents": [
        "f29bd6bf2944f57de04362c10c223960e5e89eec"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Wed Feb 12 23:20:06 2020 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Wed Feb 12 23:20:06 2020 +0800"
      },
      "message": "MTP: Sanitize filename provided from MTP host#3\n\nFix string handling on file name\n\nBug: 130656917\nTest: atest frameworks/av/media/mtp/tests\nTest: Manual test: modified libmtp for long path traversal attack\nTest: Manual test: normal recursive folder copy\nChange-Id: Ic6cf2af860f2c5e40fd176b5f4c6d0edfac79b49\n"
    },
    {
      "commit": "b8d374b9e257f64fc5e86616988cc601b48d3def",
      "tree": "5260e702606440842130b69643cc5d2eb5f43dde",
      "parents": [
        "231698afc6bec6524029a558e20d8386be0cc0a9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 16 14:11:11 2019 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 16 14:11:13 2019 -0700"
      },
      "message": "Disable support for object references.\n\nMediaProvider has standardized on being an indexed view of files that\nwe discover on disk, so that we can always recover that indexed\ninformation in case of user data wipe or corruption.  This means\nthat MediaProvider no longer supports abstract \"object references\".\n\nThis doesn\u0027t prevent future MTP implementations from bringing back\nobject reference support, and the recommended path forward would\nbe to have MtpDatabase convert object references into playlist files\nthat are written to disk.  MediaProvider will then gladly scan those\nplaylist files to be visible to users.\n\nShift to directly using the existing Files.getContentUri() API for\nall MediaProvider interactions.\n\nBug: 137890034\nTest: atest --test-mapping packages/providers/MediaProvider\nChange-Id: Ib9513867c5074d1553b70fc7f188bfd594dcb52d\n"
    },
    {
      "commit": "f1b49a5d80b627fbda6fcbcf6a782b132ac5f445",
      "tree": "2669cb55dc8110dba09ea8ead901c65d55aa3317",
      "parents": [
        "81ed5b4bd0a99d1ebf85ba0b7262ffb5cf8d3d38",
        "58996804e03162098dca4400ff237852335626e4"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 13 22:19:06 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 13 22:19:06 2019 +0000"
      },
      "message": "Merge \"Add deprecated header f_mtp.h to mtp code.\" am: ade6032e11 am: 292c88a4f5 am: 58996804e0\n\nChange-Id: Iac9bfe361be16bc9f77d1061ec848c0dca99345e\n"
    },
    {
      "commit": "41b5c1c143f15e306f591ae9eaa86224ca281e00",
      "tree": "a033f10b0020899bc3cdc2ef001d636a2dd0d28a",
      "parents": [
        "f6cd76eef99409ea943e995e3c8fae92a787fb36"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 09 15:12:05 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 09 15:19:09 2019 -0800"
      },
      "message": "Add deprecated header f_mtp.h to mtp code.\n\nSince the only f_mtp.h header is deprecated in newer Android kernels,\ncopy this file out of bionic and to the only place it\u0027s used.\n\nTest: Builds.\nChange-Id: I06bab28f46b7d60bdb83a279b8ebec306b2e6661\n"
    },
    {
      "commit": "8dd02f16dc8063ffa06f91bfa00ea0519bd7929f",
      "tree": "e1b3a4a4e8cb0eaf63c4ed66e783e12ab3a2e42c",
      "parents": [
        "9c82c6e715d4125535e03e19f833e1171746c359",
        "abe5ec4c84567b4c112e4d245cc265e8d8ffcda1"
      ],
      "author": {
        "name": "nolyn.lu",
        "email": "nolyn.lu@spreadtrum.com",
        "time": "Tue Oct 01 18:39:05 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 01 18:39:05 2019 -0700"
      },
      "message": "Merge \"can\u0027t copy/paste folders on sdcard from PC side in MTP mode\" am: 130e1d19c8 am: ab26cfa48b am: 3bd0212e58\nam: abe5ec4c84\n\nChange-Id: I5bfb8399774e1e87fc03fe603408be69ddc66979\n"
    },
    {
      "commit": "ef9bef54d8f7779133c7b09a3c864e441bbc9b17",
      "tree": "9f1852c3dc2bb3bcae189438ee6a6190b79a41c1",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "nolyn.lu",
        "email": "nolyn.lu@spreadtrum.com",
        "time": "Thu Jul 05 16:24:13 2018 +0800"
      },
      "committer": {
        "name": "nolyn lu",
        "email": "nolyn.lu@unisoc.com",
        "time": "Fri Sep 27 11:50:41 2019 +0000"
      },
      "message": "can\u0027t copy/paste folders on sdcard from PC side in MTP mode\n\nWhen copy/paste folders from PC (e.g. windows),\nthere\u0027s an extra white space at the end of the folder names.\nIt cause the mkdir call failed with *Invalid argument* on device.\n\nbug: 139645636\n\nChange-Id: I4f0c017fd086b87180ba014722cdcf4d988e8bc5\n"
    },
    {
      "commit": "eb59aea0d6e29bd7479cdd5014ecf221879dd52f",
      "tree": "58eb58b7c88ad102305743701e9b640c682881a4",
      "parents": [
        "20c03026bd65dd73dd244929e87befbe801bc794",
        "ca5cc4e8136f71a448f41f68ea78be19735624d4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 18 22:02:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 18 22:02:13 2019 +0000"
      },
      "message": "Merge \"MTP: free leaked DIR after copyRecursive\""
    },
    {
      "commit": "ca5cc4e8136f71a448f41f68ea78be19735624d4",
      "tree": "b1d970ba90565be41b73c6d9bb51b382e081ca4b",
      "parents": [
        "1b96fe4a784c96cdeac6e704f196f1dcb48b3e9e"
      ],
      "author": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Thu Jul 18 12:47:56 2019 -0700"
      },
      "committer": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Thu Jul 18 12:47:56 2019 -0700"
      },
      "message": "MTP: free leaked DIR after copyRecursive\n\nTest: mmm -j\nTest: atest mtp_ffs_handle_test\nChange-Id: I572c8c0e982e89ed6f21f181e503b11e5439be59\n"
    },
    {
      "commit": "995c91c952e1559ca77bb0b50a22d7e7abecf35d",
      "tree": "2bbf707846cd5c45fe55b14f8bfc5f19656e4ccb",
      "parents": [
        "1b96fe4a784c96cdeac6e704f196f1dcb48b3e9e"
      ],
      "author": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Wed Jul 17 12:53:48 2019 -0700"
      },
      "committer": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Wed Jul 17 15:00:17 2019 -0700"
      },
      "message": "MTP: handle bad conversion from UTF-16 to UTF-8\n\nTest: repo sync -c -j 100 \u0026\u0026 mmm -j \u0026\u0026 flash\nTest: atest mtp_ffs_handle_test\nTest: HWASAN_OPTIONS\u003d\"handle_abort\u003d2\" ./mtp_fuzzer all_corpus/\nBug: 137780371\nChange-Id: I4bd7e926c8c04913f171806b9046d31e99fd8a73\n"
    },
    {
      "commit": "1a44ae12307bc7cbf835895036727cfa4cd82484",
      "tree": "1d219c360183e1a2d21db8e93adee72e4db12206",
      "parents": [
        "f634f3b4747341673e773586ed98fbe887a5652d",
        "76fc7cbf696a560f0752d3e628ef64fdc02c8ce5"
      ],
      "author": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Mon Jul 15 16:28:11 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 15 16:28:11 2019 +0000"
      },
      "message": "Merge \"MTP: add friend class for fuzz testing\""
    },
    {
      "commit": "76fc7cbf696a560f0752d3e628ef64fdc02c8ce5",
      "tree": "70174bc6da94b445a51f951f3c8a6cfd17ccdf30",
      "parents": [
        "c860fc0a54eeebe3a47bf101963ca432d22e3b3e"
      ],
      "author": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Mon Jul 01 15:01:43 2019 -0700"
      },
      "committer": {
        "name": "Grant Hernandez",
        "email": "granthernandez@google.com",
        "time": "Mon Jul 01 15:21:19 2019 -0700"
      },
      "message": "MTP: add friend class for fuzz testing\n\nIn preparation for fuzz testing the MtpServer, we need to be able to\nmock the IMtpHandle interface to avoid reading directly from the USB\ninterface.\n\nTest: SANITIZE_TARGET\u003d\u0027hwaddress fuzzer\u0027 mmm -j .\nTest: atest mtp_ffs_handle_test\nChange-Id: I79d023cbda75d6760bed22b659fa31328e9d81c5\n"
    },
    {
      "commit": "68ccf5c4139e38a3908aa9f1ab7f388796b8241f",
      "tree": "0ea19ed7587e015993389262a1f66414eba2a1f6",
      "parents": [
        "4c3979cf2bdb0ef406898496e1bb14202f3821dc"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Jun 25 18:58:37 2019 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Jun 25 18:58:37 2019 +0800"
      },
      "message": "MTP: Sanitize filename provided from MTP host#2\n\nFix potential stack buffer-overflow\n\nBug: 135764253\nTest: atest frameworks/av/media/mtp/tests\nTest: Manual test: modified libmtp for long path traversal attack\nTest: Manual test: normal recursive folder copy\nChange-Id: Idcefb9a27da7481e821f3de22821cb461e2e1a9b\n"
    },
    {
      "commit": "e783e4b24b9e4080e50c50d62a24bcbfabb3e03d",
      "tree": "06c7e3e2e47002e6e9ee6c99e2597606b8d706d2",
      "parents": [
        "8b43461ccef647345a49d65698c7e03c50e78e3b"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue May 28 17:18:21 2019 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Thu May 30 22:36:27 2019 +0800"
      },
      "message": "MTP: Sanitize filename provided from MTP host\n\nFix potential security vulnerability via MTP path traversal\n\nBug: 130656917\nTest: atest frameworks/av/media/mtp/tests\nTest: Manual test: modified libmtp for path traversal attack\nTest: Manual test: normal recursive folder copy\nChange-Id: I467e1e6a76d09951050f7f45e5a63419e540c572\n"
    },
    {
      "commit": "5e8bde02d41199676d665ecd8c8c7a03ebaec475",
      "tree": "f1cdffec8d4e2e4b19dd36642f41413c7b488308",
      "parents": [
        "706ee95f5d7fd94e3fe9aec4c54e4f12f09bfb90",
        "53c0535c112a4b91b30764902afe00a9a990adeb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 24 13:21:42 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 24 13:21:42 2019 -0700"
      },
      "message": "Merge \"fix copy large file issue over MTP on 32bit device\" am: 37d1715a68\nam: 53c0535c11\n\nChange-Id: Id104edc267b984638ec3ea765e6a7f6e4d7868dd\n"
    },
    {
      "commit": "8b89ccf010dacc90b4510088f667ce1e19e68834",
      "tree": "2e843dd14924916fbb35f0b38203920dc26cf0fc",
      "parents": [
        "28d257e48bb6584b3cc7d46a790b92acd23c2880"
      ],
      "author": {
        "name": "faqiang.zhu",
        "email": "faqiang.zhu@nxp.com",
        "time": "Thu Apr 11 19:04:53 2019 +0800"
      },
      "committer": {
        "name": "faqiang.zhu",
        "email": "faqiang.zhu@nxp.com",
        "time": "Wed Apr 24 18:10:46 2019 +0800"
      },
      "message": "fix copy large file issue over MTP on 32bit device\n\nchange offset variable type from off_t to loff_t, then it won\u0027t overflow\nwhen the offset value is larger than 2GB.\n\nchange the pwrite and pread function to be pwrite64 and pread64 so the\noffset parameter won\u0027t overflow.\n\nChange-Id: I45947479a59a4240fd708787384bcadee09d8947\nSigned-off-by: faqiang.zhu \u003cfaqiang.zhu@nxp.com\u003e\n"
    },
    {
      "commit": "11966872eedd949041dfe0a905794654a3df49cf",
      "tree": "7ad77e435903461790f78282853777f389b7bfd0",
      "parents": [
        "71028253b21dfee4e3908916c4182cd0ea140f11"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 22 17:54:19 2019 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Mar 28 23:54:38 2019 -0700"
      },
      "message": "Remove subdirs from Android.bp\n\nsubdirs is meaningless now.\n\nTest: Builds\n\nBug: 129513796\n\nChange-Id: I60130e38b5924b73c5520d884868dd580f5345bf\n"
    },
    {
      "commit": "a6d44870d8edeffe8b6db3261d04b9e48fb11fd3",
      "tree": "7979909943d8b065d9f45085ac45d73b70dd3106",
      "parents": [
        "6f5b63b08a23b8eecf4c1ea667e11ddc341ace73",
        "f2388b3c23754f33f9bba1f73c0b2ca57f00e546"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 27 01:44:42 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 27 01:44:42 2019 +0000"
      },
      "message": "Merge \"MTP: CPU usage high while under MTP mode.\""
    },
    {
      "commit": "f2388b3c23754f33f9bba1f73c0b2ca57f00e546",
      "tree": "4596638c804d1873d945bce1b552171747a7d6cf",
      "parents": [
        "fa66483acb53c575fc476f04bebf0d0463752297"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Dec 18 17:39:58 2018 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Feb 26 20:29:30 2019 +0800"
      },
      "message": "MTP: CPU usage high while under MTP mode.\n\npoll timeout not setting well in MTP ffs handler.\nThis will cause MTP ffs handler not going into sleep mode.\n\nBug: 121171744\nTest: MTP 500 Mbyte file copy throughput from / to Host (no drop)\nChange-Id: I9b8a7257670b8e536bf2ea81118d297211254984\n"
    },
    {
      "commit": "8c27636d64b702659b6dfe3bc9872a30e8935d01",
      "tree": "a073d1cfb29ae231088cd32df7251c5c61d94b3e",
      "parents": [
        "3e29834e34d2504d0b943ec4536297f8cb2378b4",
        "752403d7b33cb3242316037cbd3c1e1a4951ffd8"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Tue Feb 12 20:52:41 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 12 20:52:41 2019 -0800"
      },
      "message": "Merge \"Mark functions in IMtpDatabase as pure virtual\" am: 3b4bad329a am: e08a1f04f3\nam: 752403d7b3\n\nChange-Id: Iefb77f3c8c536df70f070dece2b19c6927b80c51\n"
    },
    {
      "commit": "0e29fbafa80b6c7283564b12bdb33d90d514ff73",
      "tree": "f47fdea56b897cf9966449bd0b641940b97957f8",
      "parents": [
        "b4e48f1c6d8d7efd7191081e7594880102bc236a"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Feb 07 15:47:54 2019 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Feb 07 15:49:36 2019 -0800"
      },
      "message": "Mark functions in IMtpDatabase as pure virtual\n\nBug: http://b/116873221\n\nMark beginCopyObject() and endCopyObject() as pure virtual.  If not,\nClang assumes that the TU which defines this function will contain the\nvtable for the class as well.  Since there\u0027s no out-of-line definition\nof this funciton, no TU ends up with the vtable.\n\nThis causes a problem with coverage builds, which are built with -O0,\nwhere calls don\u0027t get inlined, thereby requiring a definition of the\nvtable.  For non -O0 builds, the vtable is not required since the\nvirtual calls get inlined/optimized-out.\n\nTest: Build with and without -O0.\nChange-Id: I5e8dcf583a75af51af1e9dd31a6635aa2f9d4413\n"
    },
    {
      "commit": "989a1cc0ca9f96f69565e477872b29cb452a330a",
      "tree": "7c1e786ff6bd5230862dca748c65580980f6fedb",
      "parents": [
        "a38d7a9588a1fd50f44598d28f57de4329388416",
        "6ff493b2fe11e3ced040c16724f35c76a3e740a1"
      ],
      "author": {
        "name": "robinz1x",
        "email": "robinx.zhang@intel.com",
        "time": "Wed Dec 05 17:56:58 2018 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 05 17:56:58 2018 -0800"
      },
      "message": "Merge \"Use uint32_t instead of int to support 2~4G file\" am: b4ce717ae5 am: ddb6b5e754\nam: 6ff493b2fe\n\nChange-Id: Idf58b96216150d48ce4d73a03eb1898133f0cca3\n"
    },
    {
      "commit": "df4b507474b2bccb70bb06dd6552c42e0a2dad9f",
      "tree": "4b9421971b1e943c1a444964979c10df38dab9a3",
      "parents": [
        "d8afe483117a3704037d6767f11859ea035e16d6"
      ],
      "author": {
        "name": "robinz1x",
        "email": "robinx.zhang@intel.com",
        "time": "Mon Jul 09 10:37:56 2018 +0800"
      },
      "committer": {
        "name": "Guobin Zhang",
        "email": "guobin.zhang@intel.com",
        "time": "Mon Nov 19 17:19:21 2018 +0800"
      },
      "message": "Use uint32_t instead of int to support 2~4G file\n\nMtpDevice::sendObject is using int to define object size,\nif the object size is bigger than 2GB, the size will be type-cast to\na negative number. And it will cause a endless loop in MtpDataPacket::write\nuntil DUT auto reboot.\n\nAnd JNI api android_mtp_MtpDevice_send_object requires that object\nsize must be uint32_t , so MtpDevice::sendObject works well after its\nsize parameter is changed from int to uint32_t.\n\nAlso change the return type of below API from int to int64_5\nint64_t MtpDataPacket::write(struct usb_request *request, UrbPacketDivisionMode divisionMode,\n        int fd, size_t size)\nso that it can return the right size in the case of writing 2~4G file.\n\nTest: manual - connect Android device to Android Automotive\nTest: manual - select MTP/File Transfer in android device\nTest: manual - copy a file which is bigger than 2GB from automotive to the android device.\n\nbug: 115451170\n\nChange-Id: I65b89f195ef0527a802bccefc90721e536683b87\nSigned-off-by: robinz1x \u003crobinx.zhang@intel.com\u003e\nSigned-off-by: Guobin Zhang \u003cguobin.zhang@intel.com\u003e\n"
    },
    {
      "commit": "dfc777b807355fbc649f506bdacdff443bc52609",
      "tree": "38cb05cbf48887d8929a2e018cc35738ff5c7ac7",
      "parents": [
        "3024905911dd7270086d66d88005084990593ae2",
        "f981c6e9302da64437c2e2e163564e7b7022264a"
      ],
      "author": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Tue Oct 23 21:17:17 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 23 21:17:17 2018 -0700"
      },
      "message": "Merge \"MtpPacket: Add finite timeout for bulk transfer\" am: e0bc1a9b8e am: 8918b09949\nam: f981c6e930\n\nChange-Id: I265eea36edaa6e625b34b6c8a7415eb0ef5cebea\n"
    },
    {
      "commit": "e0bc1a9b8ee77919211819d03404aca893f8bcbf",
      "tree": "97a602b1371172cd3a016e48e82739cb3784e23c",
      "parents": [
        "4cc8f84d26649f207a355cbe3fbaa7b0383bdd0d",
        "cedcd64796dc783d33d8ed21fe123d811142fb08"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 24 03:57:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 03:57:47 2018 +0000"
      },
      "message": "Merge \"MtpPacket: Add finite timeout for bulk transfer\""
    },
    {
      "commit": "cedcd64796dc783d33d8ed21fe123d811142fb08",
      "tree": "7994267a2f26da692b97b895770435328034cc31",
      "parents": [
        "d22857101ea092618470b085fb3378e4b06a03bd"
      ],
      "author": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Mon Jul 16 11:42:50 2018 +0530"
      },
      "committer": {
        "name": "Saranya Gopal",
        "email": "saranya.gopal@intel.com",
        "time": "Wed Oct 10 11:41:28 2018 +0530"
      },
      "message": "MtpPacket: Add finite timeout for bulk transfer\n\nWhen timeout is set as \u00270\u0027 for USB bulk transfer,\nkernel waits indefinitely in case of faulty\nresponder devices. This results in device reboot\nif hung_task panic is enabled in kernel.\nSo, add a finite timeout for USB bulk transfer.\n\nBug: 113991602\nTest: manual run and test with bad responder device\n\nChange-Id: I29631dfa3624afa4b4f9912a985351993cbc1698\nSigned-off-by: sgopal1 \u003csaranya.gopal@intel.com\u003e\n"
    },
    {
      "commit": "6ec3379fc0ec92925a8b137386ca189fba0dc33f",
      "tree": "8ad8785e391305f5568e375a459786fe8e60cdcc",
      "parents": [
        "afd5101b9e661fb17b8bacf7bc2293aa97088dcb",
        "ba38922ad0f62b897ddd28fa6982eb4912573256"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 05 02:50:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 05 02:50:50 2018 +0000"
      },
      "message": "Merge \"MTP: Remove extraneous logs\""
    },
    {
      "commit": "75e4e9b844d570491ec6442824908ede4b9d439b",
      "tree": "fc292683e049a3ba26b1d39fd48face194115803",
      "parents": [
        "97b434cd6609ac7c70e06cb1de3dae85a4cb64f4",
        "479020f47f326b9bcc777034325c8aac086e44a1"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Wed Oct 03 18:19:10 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 03 18:19:10 2018 -0700"
      },
      "message": "Merge \"MTP: Add OWNERS for MTP functionality\" am: ecc03e9e4f am: fb54082512\nam: 479020f47f\n\nChange-Id: I4b56122e732944d97bbc1be19f6dbfb06b8a847a\n"
    },
    {
      "commit": "690a31781aae41bd954ad4f4832c9c22bee4d5dc",
      "tree": "e505679c5e03d447e54d4725cd31dad7c6c0f69d",
      "parents": [
        "3d514b76343437a6277a777e20ff13a15b0c8f1b"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Thu Sep 27 13:05:03 2018 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Oct 02 14:14:56 2018 +0800"
      },
      "message": "MTP: Add OWNERS for MTP functionality\n\nBug: 116760814\nTest: NA\nChange-Id: I743f307c5fb4b34cd7ab52b3107609bbd87ad57f\n"
    },
    {
      "commit": "ba38922ad0f62b897ddd28fa6982eb4912573256",
      "tree": "abc31846ca7ffbfbaabf1aafe6521e4467a5ba43",
      "parents": [
        "31496f674fffd4eb6e97a9fdfd69b817a63e9983"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Thu Sep 27 19:22:55 2018 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Fri Sep 28 14:02:31 2018 +0800"
      },
      "message": "MTP: Remove extraneous logs\n\nRemove extraneous logs which might include PII\nAlso add / modify some debug log\n\nBug: 111604284\nTest: Copy file and check log\nChange-Id: I7da65824be3d4d0b66f48d199ed181de96ded924\n"
    },
    {
      "commit": "d97d79c2a82b3e90de10b913f49ce9f416c95e4b",
      "tree": "334a9ba2c7c788befbac36a9c93fe3e23fbdf4a0",
      "parents": [
        "6976bebc9da7de3f77438dd314a05eb2f9a04aa8"
      ],
      "author": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Tue Sep 25 23:24:27 2018 +0800"
      },
      "committer": {
        "name": "James Wei",
        "email": "jameswei@google.com",
        "time": "Wed Sep 26 06:27:44 2018 +0000"
      },
      "message": "MTP: handle cancel event while copying file\n\nWhile received canceling event, error code is set but not\nreturned with correct state\n\nBug: 65644242\nTest: manually copy file with / without cancel under Win10\nTest: atest MtpFfsHandleTest\nChange-Id: I601599c77bdd7c8615ed63970c8b22b8c5fcc315\n"
    },
    {
      "commit": "5513843dfeb5ffcff1fa5f8a5254187eca245256",
      "tree": "a67be0a83d7259a57b4267fc237db60f6967802d",
      "parents": [
        "93adab132cfdd6e71cee2af14eea711b49a4c76d"
      ],
      "author": {
        "name": "James",
        "email": "jameswei@google.com",
        "time": "Mon Jul 02 18:07:30 2018 +0800"
      },
      "committer": {
        "name": "James",
        "email": "jameswei@google.com",
        "time": "Fri Jul 27 11:49:21 2018 +0800"
      },
      "message": "MTP: Add support of ObjectInfoChanged Event\n\nUnder MTP mode, new file created at device side shown size zero at PC side\ndue to file information is not updated to PC in time with ObjectAdded event\n\nBug: 77883345\nTest: 1. Take screenshot of device under MTP mode with Win10 / Linux\n    2. file copy, delete, rename between PC and device\n    3. file copy, delete, rename on device with adb shell command\nTest: adb shell am instrument -w android.mtp/\n\tandroid.support.test.runner.AndroidJUnitRunner\n\nChange-Id: If428064fb0104b53b8afd5b050a4fab4a09312f0\n"
    },
    {
      "commit": "ccf9b815fdaccb82d4e79f363f973b56dfebfb4c",
      "tree": "416f38c76a003b60b449702f54586b42635356cd",
      "parents": [
        "e85263ca59ad7c03584ae9fc07a0157eeddfb5e6",
        "dd946e87b865627829d38b0335254a03677d1108"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Jul 13 21:10:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 13 21:10:00 2018 -0700"
      },
      "message": "Merge \"Switch to a thread pool for aio operations\"\nam: dd946e87b8\n\nChange-Id: I5ef02f77c0320d88e4f81b21e986511de6d9bfaa\n"
    },
    {
      "commit": "297912b6c9046ac3a00acc2dfd9389c6feb557ad",
      "tree": "94386f5070738c78c84f2ec54f970f8cbd6eea73",
      "parents": [
        "6b98328f14468a56d8534f7fa4a790d575fc5c95"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri May 11 11:29:54 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 15 21:43:45 2018 +0000"
      },
      "message": "Remove limitation on read/write size\n\nPreviously ios called through read write\nwere limited to 16kb because read packets\nare very small. However, write packets can\nbe greater than that amount in cases where\na folder contains over 4k items. Thus,\nremove the limitation.\n\nAdd corresponding ReadLarge and WriteLarge\ntests as well.\n\nBug: 79214960\nTest: mtp_ffs_handle_test passes, Mtp works\nwith large folders\n\nChange-Id: I8a980612c3eb941552ff4dd11ac631d1dc5d3347\n"
    },
    {
      "commit": "dc148de23ea1437f0e9f9794c8977ad6cf70f361",
      "tree": "88fe154c746933e85ba24f1d3babd9851a3a3e28",
      "parents": [
        "bf2e1e8debbe1e91549b2defe2345d1a1876a8df"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 14 12:07:16 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 14 19:28:20 2018 +0000"
      },
      "message": "Call access(2) on all files/dirs modified by Mtp\n\nExternal sdcards are accessed through /mnt/media_rw,\nso access() each touched file for sdcardfs to update\nits metadata. This is done for all created/deleted/renamed\nfolders and files.\n\nBug: 77849654\nTest: use mtp with emulated sdcard\nChange-Id: Ic8cef9dc90e9cbc9783ff45a87c481833f910665\n"
    },
    {
      "commit": "bc1d4b41f4df1b6dd04801ea5a526d23f5321340",
      "tree": "9c40c27d4c306658b10f622f5a32f111e2623c68",
      "parents": [
        "e1d2f7dd9b8f153fc581144ab4d4a77c6241918a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 15:25:03 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 17:32:27 2018 -0700"
      },
      "message": "Fix Unicode string handling\n\nLinux uses UTF8 but java and MTP both\nuse UTF16. In a few places, this results\nin the top byte of a UTF16 string being\ntruncated on conversion to UTF8.\n\nAlso, the hardcoded UTF to byte serialization\nin MtpStringBuffer is incorrect.\nReplace it with conversions from std, and\nreplace usages of MtpString with MtpStringBuffer.\n\nRemove any remaining usages of libutils\nand replace them with corresponding std\nlibraries.\n\nBug: 70546563\nTest: Mtp works, tests pass\nTest: file/folder names containing emoji can be transferred to/from\nwindows\nChange-Id: Idbcb73f1beac17ce8a90843fa254e759dd1a6369\n"
    },
    {
      "commit": "febd7fe9b8bf0a597e4d35b8d4acd1ad260746ae",
      "tree": "f5c1e30ac59e514fee320fe22f6ab819c97851fc",
      "parents": [
        "4d9abd9392ab0697548bd9c4c7a25617886a8980"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 14 19:03:22 2018 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Mar 27 16:18:19 2018 -0700"
      },
      "message": "Switch to a thread pool for aio operations\n\nCreating a thread for each operation was\nslightly wasteful. This also makes traces\neasier to read.\n\nTest: Transfer files, view traces\nBug: 76154677\nChange-Id: I6028f113b9e5a84f01fb020a209a4dccadfdece4\n"
    },
    {
      "commit": "63dac45aa868b9048c028967e9865c90a9ba544d",
      "tree": "b21d37631cde212935b35cb8109ee333b69d97c6",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Dec 06 15:19:36 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 05 13:44:25 2018 -0800"
      },
      "message": "Remove configure() from Mtp\n\nInstead of configuring the server each\ntime the connection happens, UsbService\nwill now pass in the control fd with the\ndescriptors already written. Also, PTP\nendpoints have been moved to their own\ndirectory at /dev/usb-ffs/ptp rather than\nusing the same ones as mtp.\n\nBug: 72877174\nTest: Verify PTP and MTP config changes work\nChange-Id: I9a0336afd610aa397c9947568c308afb89b27c08\n"
    },
    {
      "commit": "e5aa05d12a48f7c5766a80d5bd2dc8cd068c1bcd",
      "tree": "7dd4c8dfd8429a55c5aa56bc8d55a3e7139bacee",
      "parents": [
        "e5b50aeedba87b11b278105cc42343691a5b9e2f"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Oct 13 12:14:42 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Dec 15 00:08:44 2017 +0000"
      },
      "message": "MtpServer changes for MtpStorageManager\n\nMoveObject and DeleteObject require\nbegin() and end() methods in order to\nmaintain database consistency. delete() now\nhas to return errors.\n\nAllow sendObject after sendObjectInfo since\nthe spec allows this.\n\nTest: See tests for main MtpStorageManager change\nBug: 63143623\nChange-Id: Ied105e884cafd36e861521dcc59740e23b330f5f\n"
    },
    {
      "commit": "6c11077d90682f3a36ba8c622d2aad1a36bc7e6f",
      "tree": "00650204f72220f87ba612e5f9b3224dc47bdda6",
      "parents": [
        "15b0a63b2754388468e9ed5aef2b42bd151102eb",
        "6313143933d8c3e3e3edd67a4be07379f27ca467"
      ],
      "author": {
        "name": "kyle_tso",
        "email": "kyle_tso@htc.com",
        "time": "Wed Dec 06 03:09:33 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 06 03:09:33 2017 +0000"
      },
      "message": "Merge \"Add support of directory copy\"\nam: 6313143933\n\nChange-Id: I1cd990c87f0de15e642713602183e14e672b7ff9\n"
    },
    {
      "commit": "6de16604f3fbf8d955caacc722b71b8d210d7a7a",
      "tree": "f362768f16b044259ce5074acb80baca50c0c81f",
      "parents": [
        "289cce603494363f9d0f6d42b16289b632205f77"
      ],
      "author": {
        "name": "kyle_tso",
        "email": "kyle_tso@htc.com",
        "time": "Wed Nov 22 18:14:51 2017 +0800"
      },
      "committer": {
        "name": "kyle_tso",
        "email": "kyle_tso@htc.com",
        "time": "Wed Nov 22 20:51:50 2017 +0800"
      },
      "message": "Add support of directory copy\n\nWhen copying directories, files and sub-directories should be\nrecursively copied. And we have to update the database by scanning\nthe entire directory.\n\nTest: Copy directories with sub-directories and files inside to\nanother location. All directories and files are successfully\ncopied.\n\nChange-Id: Iea9603b51bd0a944c87dedd962804d18d11984c4\nSigned-off-by: kyle_tso \u003ckyle_tso@htc.com\u003e\n"
    },
    {
      "commit": "4593b04bdad2ae66b22c5d3fb78276b523b7e942",
      "tree": "d855fc3d7505c608fc720474d2af565feb131738",
      "parents": [
        "ea8dd2c787f88e7289ffb8f226237587f95d8a93",
        "79edadcea74151b573d5b973d5a421baee693ec1"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:29:40 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:33:45 2017 -0800"
      },
      "message": "Merge commit \u002779edadcea74151b573d5b973d5a421baee693ec1\u0027 from\noc-mr1-dev-plus-aosp into stage-aosp-master\n\nChange-Id: I04234f284e3117e8343e7c888646400c81f5a131\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\n"
    },
    {
      "commit": "fbc8b0683630a0f14dda04f71da7df9a5f13821f",
      "tree": "6fc30b433297fc31a863d01508ff03f1d80953ef",
      "parents": [
        "8aa2c307cba938b20129d52dab5da5c568dd1219"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 23 12:03:40 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Nov 10 10:59:41 2017 -0800"
      },
      "message": "Always set sys.usb.ffs.mtp.ready during configure\n\nSometimes, due to a race, the configure\nwill fail even though descriptors are actually\nwritten because MtpServer did not die properly.\nMtpServer lifetime is fixed properly in master\nwith multiplexed io, but to work around the\nissue here, we set the property at all times.\n\nAlso reduce the timeout to leave room for\nUsbDeviceManager.\n\nBug: 67844294\nTest: Plug/replug device on sled with usb debugging off x50\nTest: Verify that the race is hit, but projection still starts\nTest: Verify that all other usb configurations still work\nChange-Id: I39dd4d3db95e087f065d58ba80ca980559920c99\n"
    },
    {
      "commit": "8aa2c307cba938b20129d52dab5da5c568dd1219",
      "tree": "ed590aa8d539166570394b9856489011c1d80f10",
      "parents": [
        "bd20c630f0b77c9c2189b37da6862b658048b851",
        "ee8946f48e7ea5c28a811263ecc8da79e65a61ac"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 01 21:15:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 21:15:39 2017 +0000"
      },
      "message": "Merge \"Perform database moveObject after actual move.\""
    },
    {
      "commit": "ee8946f48e7ea5c28a811263ecc8da79e65a61ac",
      "tree": "53975cfc4414f4cac019509aedaaf8705f8f3db2",
      "parents": [
        "7377ddd0f1ff9692df64e1549e16b7f21b498681"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 31 12:26:07 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 31 12:27:55 2017 -0700"
      },
      "message": "Perform database moveObject after actual move.\n\nFor folders to recursively update their paths,\nMediaProvider expects the folder to already exist\nwhen database moveObject is called.\n\nBug: 66925416\nTest: Move a folder containing files and use content query --uri content://media/external/file to verify paths are correct.\nChange-Id: I45668159d2d3f99db088d8d4dcd065a79b732c44\n"
    },
    {
      "commit": "38cefbe16a44aacb365af0aa3a5e2e9820ca1575",
      "tree": "0110a14146f9856d777f68408b537857f2f758dd",
      "parents": [
        "c98c6fa1949166ddb370c8a9ccd2d072e8ad0e6d",
        "87ecf3ae39362f1ca3f9432034b7c04e088d92d7"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 11:31:46 2017 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 11:31:46 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\n"
    },
    {
      "commit": "87ecf3ae39362f1ca3f9432034b7c04e088d92d7",
      "tree": "76fab23b1f3ac93b81260eb0870c2f5828078041",
      "parents": [
        "1e216bc835a9e8d0336272ecdb5a398718a8f1db",
        "729f6f601822ae012e8cbbe813c3aa97060b1a8a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 24 01:30:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 01:30:47 2017 +0000"
      },
      "message": "Merge \"Move mtp descriptors into separate source, add tests\"\nam: 729f6f6018\n\nChange-Id: I61ee4b4da3bc4b971f5786fb84794b94fae5421d\n"
    },
    {
      "commit": "7377ddd0f1ff9692df64e1549e16b7f21b498681",
      "tree": "a4e536dab10ab8e394177ac20fddc23ed02a3277",
      "parents": [
        "729f6f601822ae012e8cbbe813c3aa97060b1a8a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 23 18:25:45 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 23 18:26:57 2017 -0700"
      },
      "message": "Add OWNERS file for frameworks/av/media/mtp\n\nTest: None\nChange-Id: I96f55feaf24bb1efa88bce613adc6ca29daba569\n"
    },
    {
      "commit": "69b74506f9d658fd9ed18676eb75b86fdb7d7d73",
      "tree": "0d33726bbdb700379bd4016e4b0579b0447af820",
      "parents": [
        "5617fb288bc3f8335273f526a5ca7c18d67076cf"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 02 16:26:37 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 23 15:21:11 2017 -0700"
      },
      "message": "Move mtp descriptors into separate source, add tests\n\nFunctionfs descriptors are moved into MtpDescriptors.cpp.\nAdded assertions and tests to ensure that descriptors aren\u0027t\nunintentionally changed, and bug numbers in comments for\nfuture context.\n\nTest: updated MtpFfsHandle_test passes\nBug: 67367056\nChange-Id: I90eb5e48a687f366b8919621718e976e83b5b064\n"
    },
    {
      "commit": "bae12e14dc94ff031612b1266f68657719bd54c5",
      "tree": "4a6984d4625f9105d0f5f80d9c7b7d80fc0045d3",
      "parents": [
        "d79a8385468a9db2ca3971a193f501b6df741636",
        "fa7b99dd9c86c397971d21b70b0b9a13df141fa0"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Oct 19 18:08:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 19 18:08:46 2017 +0000"
      },
      "message": "Merge \"Account for folders in copy and move.\"\nam: fa7b99dd9c\n\nChange-Id: I55f333c2237e97ea0ca38d296d6285d09d673197\n"
    },
    {
      "commit": "e242f12c0f33518e0760fabfdad8cb93a1c8a2fb",
      "tree": "c12c22ff3550202df1af4a0816f6ee3c489f3938",
      "parents": [
        "49d0502f1a227a510df65ec74f14eef91185dc6a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 16 14:54:08 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Oct 19 17:55:26 2017 +0000"
      },
      "message": "Account for folders in copy and move.\n\nCopy and move will use mkdir() if target\nis a folder, and copyFile() if target is a file.\n\nMove will recursively copy contents if moving\nbetween different storages. Move will also\nchange the storageId.\n\nBug: 67028892\nTest: Copy and move folders on win 10\nChange-Id: If114ef74b9d8668cf66d45953d9ea8b17bc11ae8\n"
    },
    {
      "commit": "788a634f3f085ef6a85717c0f5733996bbb24387",
      "tree": "a691124e7d30fcc64165caa46a82aa382003139a",
      "parents": [
        "df3be9cc7981ce0623686013d529aac18b6d9e7c",
        "fcd0cd6ed2edbf57a44eff9467e4f0b79e58a3e2"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 17 20:24:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 17 20:24:11 2017 +0000"
      },
      "message": "Merge \"Add MTP and PTP OS descriptors.\" am: 159158c3cd am: 735d9100a1\nam: fcd0cd6ed2\n\nChange-Id: I68e30dd27043e3e4d2e73e40c3571819ca8cd58d\n"
    },
    {
      "commit": "735d9100a10148a6965794c4759d2f9b53386dfe",
      "tree": "972678478fd949bb26aed4290d839adc3560e1f2",
      "parents": [
        "1bf4543ffb8e081d5d3b1d8dbfcb98d5129c2887",
        "159158c3cd9f39089c1d60650776b1d9d2180d9e"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 17 01:57:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 17 01:57:02 2017 +0000"
      },
      "message": "Merge \"Add MTP and PTP OS descriptors.\"\nam: 159158c3cd\n\nChange-Id: Ib487d3521c4aab29ad2d188ee568b42b07f76325\n"
    },
    {
      "commit": "7501480fcfd20035735e9f00b92975c19fa8de28",
      "tree": "e6642a06bc3481f3e819b3f8021caae99188243b",
      "parents": [
        "29880190f622974c5515fd7be1aebfa5e4aee674",
        "6e401fdf3350c9c7879c12e7fc1e52ab9a863c45"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 03 00:31:02 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 00:31:02 2017 +0000"
      },
      "message": "Merge \"Add implementations for move and copy operations.\" am: 24287d0bd5 am: 848fa50927\nam: 6e401fdf33\n\nChange-Id: I787850832e701a25022ba496315f68325442e627\n"
    },
    {
      "commit": "848fa50927b712748103ca9cc8c45bc39139ae8b",
      "tree": "9b8b9cefd5b2042e48e13c1df7e18cbf19287693",
      "parents": [
        "dad308b4f3deb589094b93eedda26fb07078d44f",
        "24287d0bd55ccb779ca800647f39f266c584e3f6"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 03 00:00:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 00:00:57 2017 +0000"
      },
      "message": "Merge \"Add implementations for move and copy operations.\"\nam: 24287d0bd5\n\nChange-Id: I9a63975ec6f1dd0df0e93255e8a8be4ec1db170a\n"
    },
    {
      "commit": "51bf9853c28e6d193e6521a698866d675d854431",
      "tree": "9b39fee360bb417941376f38f3080c9c00b9b738",
      "parents": [
        "708b3e0b72189d2d2e932459bd0391f98c9ff9a2"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Aug 31 11:57:45 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 02 16:31:23 2017 -0700"
      },
      "message": "Add MTP and PTP OS descriptors.\n\nThis adds OS descriptor functionality for\ndevices that don\u0027t use configfs for OS descriptors.\n\nTest: usb sniffer, verify descriptors sent\nBug: 64790536\nChange-Id: Iec417606f86fe4d7492273d09d685ab2ec3d03c8\n(cherry picked from commit 95ea161b05040412d95b5add98dc882e3be4075c)\n"
    },
    {
      "commit": "708b3e0b72189d2d2e932459bd0391f98c9ff9a2",
      "tree": "fc7856849cca6731143755c464df310e817d78f7",
      "parents": [
        "0d51135defebfe9bf0d790216ee4668c96041224"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Sep 26 17:53:39 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Oct 02 11:56:25 2017 -0700"
      },
      "message": "Add implementations for move and copy operations.\n\nPreviously, we didn\u0027t have these implemented so the\nhost OS would emulate them by pulling the object\nand pushing it to a new location. This can result\nin data being lost and it is slow.\n\nWith the operations implemented, moving objects\non the same storage is instantaneous since the data\ndoesn\u0027t need to move. Moving objects between storages\nand copying objects are both much faster since no\ndata has to be moved through USB.\n\nBug: 66679910\nTest: Move and copy objects, verify they are correct\nChange-Id: I38c69eee41d883af46fa2f1b9e091193b2847e8c\n"
    },
    {
      "commit": "8ec71590ccfa122a4e9908cf3ebe6bd33482d0dd",
      "tree": "7a681c8d980935800b76f4bb2983272fd57d018b",
      "parents": [
        "c7f474434f3d50fea49dade42ded59fa87dee62d",
        "347894fe7518f9400f7542e1204d5d9bb8292c11"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 29 03:48:14 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 03:48:14 2017 +0000"
      },
      "message": "Merge \"Switch MtpFfsHandle to aio, add control functions.\" am: 82651d413e am: 68ce743ef9\nam: 347894fe75\n\nChange-Id: I8b9700a6eafe3f959cf00c48aa12f6ea11bd5fe7\n"
    },
    {
      "commit": "68ce743ef9ad6b1f37bfdf55eb67d836696bd422",
      "tree": "0d9a5921801fcc73535dfbf0f6409d87b5059262",
      "parents": [
        "64dd76afd8027ec7edcf9bb7a40afd024cfc10f6",
        "82651d413eb66978f2020058235811c0f5bb2094"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 29 03:38:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 29 03:38:18 2017 +0000"
      },
      "message": "Merge \"Switch MtpFfsHandle to aio, add control functions.\"\nam: 82651d413e\n\nChange-Id: I622346740d9310c9c9569ed5feb463f51cab6b5e\n"
    },
    {
      "commit": "64dd76afd8027ec7edcf9bb7a40afd024cfc10f6",
      "tree": "edc09e87635805ae0582918ed8a071b49f731755",
      "parents": [
        "c18df3b337ab15b938683ff561854896679ca0f2",
        "af41c2cedeff1ea399173c78c7fbb66860806d5b"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 21:03:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 22 21:03:27 2017 +0000"
      },
      "message": "Merge \"Stop capturing mtp_event by reference in lambda\" am: 0fdeb09e89 am: 1532a1d523\nam: af41c2cede\n\nChange-Id: I8a3b33687fca6d095ac6cf0f48dd18a1c036a8a9\n"
    },
    {
      "commit": "c18df3b337ab15b938683ff561854896679ca0f2",
      "tree": "b382f9d0fcd4bc935153abf98f4ea8749d0f6eb2",
      "parents": [
        "1fb7851c8cb45d4f8f4c99b2997f34eb06f383d0",
        "6faa468bcd0e451cb748fef03b1f4d3492406c0c"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 21:02:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 22 21:02:50 2017 +0000"
      },
      "message": "Merge \"mtp: Send events async.\" am: a009b07a0d am: 847b97afef\nam: 6faa468bcd\n\nChange-Id: I50268decf270896cac18d47b7ec388f34c54daad\n"
    },
    {
      "commit": "df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2",
      "tree": "15e227b89c1c6a9877b7e37269cdb63b1ffaac90",
      "parents": [
        "0fdeb09e898c39d9e353311577b72f1a53bc11f3"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed May 03 17:17:49 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 20:47:04 2017 +0000"
      },
      "message": "Switch MtpFfsHandle to aio, add control functions.\n\nMtpFfsHandle now uses kaio to handle usb data.\nThis achieves better performance without using\nthe endpoint alloc ioctl.\n\nThis also allows ep0 events to be handled without\nrace conditions. Events will also include control\nrequests, which will allow both host and device\ninitiated cancellation.\n\nBug: 37916658\nBug: 36802721\nTest: Transfer various size files, run MtpFfsHandleTest\nTest: Cancel transfer on Windows\nTest: Allow device to cancel transfer on Windows\nChange-Id: Ib3ce996f00782ce7f68f29b2510dbc17f09fdf14\n"
    },
    {
      "commit": "008f4df3ca1bdb0e0df80fff68467a95ddbc6c40",
      "tree": "0626aa4ddfd8ef52fe7ad71a6538050458494c13",
      "parents": [
        "a009b07a0d116c6181a8af71d55bd2d17e8f48d1"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Aug 09 17:53:50 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 20:45:51 2017 +0000"
      },
      "message": "Stop capturing mtp_event by reference in lambda\n\nThis takes a reference to the event,\nwhich then can become invalid. Instead\npass by copy like normal.\n\nBug: 64529223\nTest: No crash\nChange-Id: I2ac7bd0002e6d0ce1c547c24334dfd2926ed7090\n(cherry picked from commit 7360303d3e93cd6a5fd8c5c4340a335416bd0f28)\n"
    },
    {
      "commit": "94ef0eaba32244d8732394291873f2abd4c63da3",
      "tree": "89fc952700a3a4211e87e76a22c4fce1b2ff2c56",
      "parents": [
        "b5c1bcb963dc638d4f67b6b016509c174363f48e"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jul 26 11:37:23 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Aug 22 20:45:27 2017 +0000"
      },
      "message": "mtp: Send events async.\n\nAFT will not read the events endpoint at all\ncausing every sendEvent() to block. Since\nevent ordering doesn\u0027t really matter, send\nevents in their own detached thread instead.\n\nBug: 36802721\nTest: Connect AFT, create a folder from device, check not frozen\nChange-Id: I4b8aee93c19fa9c73e6b2f34d9794a491b2433e1\n(cherry picked from commit d80492b819b3934475596ec4afda979bad3bd126)\n"
    },
    {
      "commit": "e67106418d7025ba28b90d8d32ceb2674ad043f1",
      "tree": "4d6ee7d347843b6c55b21c536b0941f784b2d0bc",
      "parents": [
        "2c8c51d4aeffc4d561a67b06d20fff67d9a5a5aa"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 14 19:33:15 2017 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 14 19:34:11 2017 -0700"
      },
      "message": "heif: add new format type\n\nbug: 64077740\nChange-Id: I3329b911fde9fecd1c0f91a931d7883685e74c13\n"
    },
    {
      "commit": "7360303d3e93cd6a5fd8c5c4340a335416bd0f28",
      "tree": "55d99900aa9f5b63159e93742014771709d8152b",
      "parents": [
        "ad708fb449369c567e1bf3a7e1f2a5e56b72762f"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Aug 09 17:53:50 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Aug 10 11:04:32 2017 -0700"
      },
      "message": "Stop capturing mtp_event by reference in lambda\n\nThis takes a reference to the event,\nwhich then can become invalid. Instead\npass by copy like normal.\n\nBug: 64529223\nTest: No crash\nChange-Id: I2ac7bd0002e6d0ce1c547c24334dfd2926ed7090\n"
    },
    {
      "commit": "d80492b819b3934475596ec4afda979bad3bd126",
      "tree": "161c8d73186a32e2ade72a22e26cf4a4c29840ef",
      "parents": [
        "5b2a1573873782ace86914720fd7e46f677e71cc"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Jul 26 11:37:23 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Aug 07 19:47:53 2017 +0000"
      },
      "message": "mtp: Send events async.\n\nAFT will not read the events endpoint at all\ncausing every sendEvent() to block. Since\nevent ordering doesn\u0027t really matter, send\nevents in their own detached thread instead.\n\nBug: 36802721\nTest: Connect AFT, create a folder from device, check not frozen\nChange-Id: I4b8aee93c19fa9c73e6b2f34d9794a491b2433e1\n"
    },
    {
      "commit": "c9589bb0c2f6197c98edd2a47fcd4e8e85cc397b",
      "tree": "995380adda5da11b26257a5f10163e6ad6d9a765",
      "parents": [
        "07def20c4082b831ce5678959ef6a034674b808d",
        "aef8eb866df8b6b681422801fb2b44ba29953370"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 16 01:48:18 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 16 01:48:18 2017 +0000"
      },
      "message": "Merge \"Fix file transfer corner cases.\" into oc-dev am: 922669e81c\nam: aef8eb866d\n\nChange-Id: I5a838ba9fdbc481674eb4c6638d1221a7027f205\n"
    },
    {
      "commit": "aef8eb866df8b6b681422801fb2b44ba29953370",
      "tree": "c54293216cbbea020dc8f4132276727a47c6a8dc",
      "parents": [
        "86a0b96ddca0a657eeb1ba95ded957ba79c07c23",
        "922669e81c23ea3a400879dd7cb5f222b5e48e67"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue May 16 00:19:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 16 00:19:58 2017 +0000"
      },
      "message": "Merge \"Fix file transfer corner cases.\" into oc-dev\nam: 922669e81c\n\nChange-Id: Idf99f296e03b2e35b6140d5650147a7dcb3cbc8f\n"
    },
    {
      "commit": "5410756e75fb7567540f13d3813f42f4ac3838a0",
      "tree": "9c43426b3e7ec072dff9a54b795757566f389673",
      "parents": [
        "77994d70fe8d4805126361bbd0afbcac1cd1d2f0"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 15 11:54:19 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon May 15 13:21:46 2017 -0700"
      },
      "message": "Fix file transfer corner cases.\n\nFix zero packet read/write in corner cases\nwith initial read/writes. This affects transfers\nof 16372 bytes to the device and transfers of\n1012 bytes (or packet size - 12) from the device.\n\nTest: Transfer various length files\nBug: 37175601\nChange-Id: Ic1281e8757d1a33d78c66d2c57319b5ee38d6a46\n"
    },
    {
      "commit": "971ceda091cc5e282b21bbfe61572d3bd55ab40f",
      "tree": "fce5be366e6daa7d831bb33a8891f9bea32caeb3",
      "parents": [
        "d8e8d3f4a3240e47d4a0211634c55abdd55700de",
        "33435d749d68e0990793c15ab2fe30a352e8d3d8"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri May 05 23:18:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 05 23:18:21 2017 +0000"
      },
      "message": "Merge \"Convert libmtp to soong.\" am: 3f877d4945 am: 1cd753b1af\nam: 33435d749d\n\nChange-Id: Ia31b32d5ec0f6f2eef51b979aae750090834ca32\n"
    },
    {
      "commit": "e997c143b86082d1426f8d3d755b7aeaaa7c3dc3",
      "tree": "05d208c9f1cccadbba54491eee4da0de5bc33787",
      "parents": [
        "a33999bab96f0ee1f44816cb3b5c1312bc2a4f91"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri May 05 09:51:37 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri May 05 09:51:37 2017 -0700"
      },
      "message": "Convert libmtp to soong.\n\nBug: 37512442\nTest: native test\nChange-Id: Idf0e96a206faadc5a3179f0df564ab1d4daacda2\n"
    },
    {
      "commit": "777449ca7d0a4c8ca97da6097198e868a93b50cc",
      "tree": "6f3d5da570234851c040671ef873ba3c7a8fa564",
      "parents": [
        "3243d43c0596c18845781607bae6ef8995ea624d"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Wed May 03 14:58:13 2017 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu May 04 08:31:09 2017 -0700"
      },
      "message": "Convert libmtp to soong.\n\nBug: 37512442\nTest: native test\nChange-Id: Idf0e96a206faadc5a3179f0df564ab1d4daacda2\n"
    },
    {
      "commit": "96e42ccc01c6d6209fc3d9c5ff9f58ea9fc156f7",
      "tree": "de081d6014b44dd9a3a62d61004195ec235707ee",
      "parents": [
        "88858c73749a6582bd9a1cda4fc0ca57ee7da34c",
        "3d28aa79b2d96c81009ac32bc0bbe8ffe407c8cb"
      ],
      "author": {
        "name": "caozhiyuan",
        "email": "cao.zhiyuan@zte.com.cn",
        "time": "Thu Apr 27 23:37:48 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 27 23:37:48 2017 +0000"
      },
      "message": "Merge \"mtp: Preserve last modified time of files.\" am: c11caab96f am: 607c4c0f5e am: 8e2e605ebf\nam: 3d28aa79b2\n\nChange-Id: Iece12aea37654a3b1ac7c14ca62526cb05ad7610\n"
    },
    {
      "commit": "3d28aa79b2d96c81009ac32bc0bbe8ffe407c8cb",
      "tree": "79a447a020f44d5043b7c93fe676bd30baa56699",
      "parents": [
        "f417a01ad53982f5fa0b3b0d4f7e78d6b19d11f9",
        "8e2e605ebfef81b734e589c26c4cfd8abe009096"
      ],
      "author": {
        "name": "caozhiyuan",
        "email": "cao.zhiyuan@zte.com.cn",
        "time": "Thu Apr 27 23:10:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 27 23:10:46 2017 +0000"
      },
      "message": "Merge \"mtp: Preserve last modified time of files.\" am: c11caab96f am: 607c4c0f5e\nam: 8e2e605ebf\n\nChange-Id: I939de1c7a71b23b49319668a803381c88ae6729e\n"
    },
    {
      "commit": "854cb1745dd4abd06e6e8e6eef99f44faa54a219",
      "tree": "f73f7217c3556de262f0f7645b2275265320a4fb",
      "parents": [
        "94d15f9c0c7dc8a916ebfcf0f208adcc427df7f6"
      ],
      "author": {
        "name": "caozhiyuan",
        "email": "cao.zhiyuan@zte.com.cn",
        "time": "Wed Apr 26 16:52:30 2017 +0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Apr 27 11:35:32 2017 -0700"
      },
      "message": "mtp: Preserve last modified time of files.\n\nBug: 6325175\nTest: Transfer files\nChange-Id: I54af3205575f2bb83c732bb70907f60e0b785e91\nSigned-off-by: caozhiyuan \u003ccao.zhiyuan@zte.com.cn\u003e\n"
    },
    {
      "commit": "2c6162a2b7488001e0ce470d06654e9480c83e17",
      "tree": "49f606674e83880bcc298cc10ac30eea6f2bcdd0",
      "parents": [
        "f226672fc6bce11c684c77ef06492cee95bcab97",
        "f43c5e853dfa90c4416b32806e16606ff5d6525a"
      ],
      "author": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Wed Apr 19 02:01:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 19 02:01:59 2017 +0000"
      },
      "message": "Merge \"Fix clang static analyzer warnings.\" am: 9696b02782 am: 9f6dcf33da am: bf78bff35f\nam: f43c5e853d\n\nChange-Id: I3c3880dc13346d42dcacd92f0645450ff0ca0cc8\n"
    },
    {
      "commit": "f43c5e853dfa90c4416b32806e16606ff5d6525a",
      "tree": "498c83a842b5ca9933e2d1cec4f692fb3273b92b",
      "parents": [
        "6f5adfc7fd79d33aba68dec83f1416da7d18351d",
        "bf78bff35f69597710f4398651cc3c0b364cd52d"
      ],
      "author": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Wed Apr 19 02:00:33 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 19 02:00:33 2017 +0000"
      },
      "message": "Merge \"Fix clang static analyzer warnings.\" am: 9696b02782 am: 9f6dcf33da\nam: bf78bff35f\n\nChange-Id: I426c9830fd19be6b65d8da8a5ba9289735566680\n"
    },
    {
      "commit": "33587d19286015e7cef72273e473e7657e4656d8",
      "tree": "957cebf19d2ba5dcc3729064e3219d7183495379",
      "parents": [
        "6f2e6b252464097cff52f4a8f77cbad1001bfa3a"
      ],
      "author": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Tue Apr 18 16:41:09 2017 -0700"
      },
      "committer": {
        "name": "Manoj Gupta",
        "email": "manojgupta@google.com",
        "time": "Tue Apr 18 16:41:09 2017 -0700"
      },
      "message": "Fix clang static analyzer warnings.\n\nFix the following warning:\nframeworks/av/media/mtp/MtpServer.cpp:1098:5: warning: Assigned value is\ngarbage or undefined [clang-analyzer-core.uninitialized.Assign]\n\nBUG:None\nTEST:Warnings fixed.\nChange-Id: If4e54ebd9b865e2e6cdc7666da0c9987a918df7c\n"
    },
    {
      "commit": "b78d29291f6fe3164197513f53e830005ac07080",
      "tree": "f3f22a2a4f24921b1a16e4085d0c7093174af127",
      "parents": [
        "c4e0ee148e15ae35c440189500775cfed800ff57",
        "d93543b5c831d61069d77f516a04eac499ed0cce"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Sat Apr 15 22:30:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 15 22:30:09 2017 +0000"
      },
      "message": "Merge \"Fix zero length packet handling\" into oc-dev am: b5e067007d\nam: d93543b5c8\n\nChange-Id: I53c651782c50610cbf86d518ab96f070e4768a75\n"
    },
    {
      "commit": "c9cbf9870c28d5c65e7363db5291a4b89e1a8e8d",
      "tree": "89d86db72449d891e77cd0a334fb4b8686b86f8f",
      "parents": [
        "f4b7240b9d7095545d1ee1a772edacdeec1f6610"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Apr 14 15:26:53 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Apr 14 17:44:49 2017 -0700"
      },
      "message": "Fix zero length packet handling\n\nEnsure that a zero length packet is properly sent\n/ received when handling data that is a multiple of the\nendpoint size.\n\nThis fixes an issue where files whose size is a multiple\nof the endpoint size would hang during transfer.\n\nBug: 37175601\nTest: check successful file transfer.\nChange-Id: Iaf3cea18422234d65b59f5961ef9fb3f3ee2049a\n"
    },
    {
      "commit": "c089021a2047ce243cdcc143f7c863937e2d0b13",
      "tree": "22efe48b33762dadf1f9fe43dfaed8eee27aba43",
      "parents": [
        "e61d039902da4c7ea0efffa620ddd35097566a25",
        "a4fc619868a679c4c081bcb445b5a79c891b80be"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Apr 06 21:34:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 06 21:34:53 2017 +0000"
      },
      "message": "Merge \"Wait for threads to finish before returning.\" into oc-dev am: aedcedfa85\nam: a4fc619868\n\nChange-Id: I71b758a55e6a81f606f2e1e33a3ae6c161851344\n"
    },
    {
      "commit": "7063c936e50326883e672837036381f77080c2f3",
      "tree": "2c64eedc087ee2bdd5de64368bb73ed87c040a7b",
      "parents": [
        "97e6e199f9470cea3d686e0ed1033b171747356a"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Apr 04 15:06:10 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Apr 06 12:05:40 2017 -0700"
      },
      "message": "Wait for threads to finish before returning.\n\nPrevents the thread struct from being deallocated\nbefore the thread has finished.\n\nBug: 35152606\nTest: Transfer files in both directions, verify behavior when\ninterrupted\n\nChange-Id: Ic247072234977709711366636e6a39031fbc125a\n"
    },
    {
      "commit": "45b20b8de58c33a8af55bc93fb41e9ae0c5485ef",
      "tree": "a5ff770134b02103665b5e144896ffaa9b81752f",
      "parents": [
        "19b93ac3719c1f51636ed5dbffbb3b5036a2cf55",
        "e88401953eee20160ef8076bc034a6510096062d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Apr 04 19:46:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 04 19:46:16 2017 +0000"
      },
      "message": "Merge \"Add timeout to lock in MtpServer configure\" into oc-dev am: f97ade3242\nam: e88401953e\n\nChange-Id: I2ffa24b3b06bfbe58ac42d10f51dc4ead6743c42\n"
    },
    {
      "commit": "0475d911fcc1e6e1b4f49626f59a0a07038590fa",
      "tree": "9c4f71008370a17223a80dfd9a0966fcbfdaafaf",
      "parents": [
        "58a220fe06957cf7f0325cc9509947f1602e2986"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Apr 03 11:24:48 2017 -0700"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Apr 03 14:22:34 2017 -0700"
      },
      "message": "Add timeout to lock in MtpServer configure\n\nIn situations where MtpServer is in a bad state, this will prevent\nthe configure call from blocking indefinitely, which will prevent\na few visible problems and allow the state to recover on the next\nconfig change.\n\nBug: 34873000\nTest: Connect to AA test sled\nChange-Id: I5daf9cfcec69c967bde6bf3f6fd90e1c434e18bb\n"
    },
    {
      "commit": "53f2ecaa60aea710d803ee94bbf398c50892c1a1",
      "tree": "ea8db11ae098b0e876414f01bddc41a7af3e9402",
      "parents": [
        "5f8beee0ea76ffe5cc40a517e8db43dbd64fbeff"
      ],
      "author": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Tue Mar 28 16:13:37 2017 -0700"
      },
      "committer": {
        "name": "Dan Shi",
        "email": "dshi@google.com",
        "time": "Tue Mar 28 16:13:37 2017 -0700"
      },
      "message": "Add test config to mtp_ffs_handle_test\n\nDesign doc:\nGeneralized Suites \u0026 the Unification of APCT \u0026 CTS Workflows Design/Roadmap\nhttps://docs.google.com/document/d/1eabK3srlBLouMiBMrNP3xJPiRRdcoCquNxC8gBWPvx8/edit#heading\u003dh.78vup5eivwzo\n\nDetails about test configs changes are tracked in doc\nhttps://docs.google.com/document/d/1EWUjJ7fjy8ge_Nk0YQbFdRp8DSHo3z6GU0R8jLgrAcw/edit#\n\nBug: 35882476\nTest: local test\nChange-Id: I740caff88234fb986ca03553ab28c519cfe6aa18\n"
    },
    {
      "commit": "cde65569ec8bd25a2dd3efd32d35fa0341f2d80a",
      "tree": "6a03a0e2d0cd36c8ecade9063178eb429907c81f",
      "parents": [
        "4e83083be466482a8deacbc66924ca5bc1586957",
        "6bf6de375299db41d5510dca3321ebe42ceeb007"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 08 00:28:00 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 08 00:28:00 2017 +0000"
      },
      "message": "Merge \"Add support for MTP_RESET_DEVICE operation.\" am: 52afe9d2cf am: bf7c90ad04\nam: 6bf6de3752\n\nChange-Id: I0f643f12c720ef2c31848fe01704afcd094d7f46\n"
    },
    {
      "commit": "bf7c90ad0445740c77b2ee380f382d937bdd67a8",
      "tree": "44c89119c73afe78c7a0c8737718b86cf2c6bdb3",
      "parents": [
        "0942860c57f13254fd1799bea45e06ea532b9ed3",
        "52afe9d2cf7bf85eace3f928716030f39a5c6e21"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 08 00:22:29 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 08 00:22:29 2017 +0000"
      },
      "message": "Merge \"Add support for MTP_RESET_DEVICE operation.\"\nam: 52afe9d2cf\n\nChange-Id: I36c8e325e2b2dde85cb2a3546508c95e5da77e57\n"
    },
    {
      "commit": "6dafeccb9c82e2b1328f36fbce1b26e7799b1100",
      "tree": "4d1fb7bf5b1aa258297bcd925e938d4268e96e64",
      "parents": [
        "1df67b1b3a1a06d4a74a091345bd74045fe5bb82"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 23 16:39:30 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Wed Mar 08 00:18:25 2017 +0000"
      },
      "message": "Add support for MTP_RESET_DEVICE operation.\n\nSince we only support one open session, this\ncommand is the same as CLOSE_SESSION.\n\nTest: mtp-reset\nChange-Id: I2e95687a685af239c92473feb7c98419fcd55a1e\n"
    },
    {
      "commit": "9a161f06819e8bc5627a3e4384bf4774e3e4a1e1",
      "tree": "2116718d39ffbe6e301de61385e650e18d579e8e",
      "parents": [
        "c9dce5e883e34d14d954bb71d57b7257fe878416",
        "daaea6d2f1957dfea0501b6518f8deead7af4a7a"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Mar 01 01:21:50 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 01 01:21:50 2017 +0000"
      },
      "message": "Merge \"fix warning: dereference of a null pointer\" am: 9a6b9ed394 am: 90b59dbb0d\nam: daaea6d2f1\n\nChange-Id: If2eb8cba1df0760fb2c01e65e28d9b3f8ec4912c\n"
    },
    {
      "commit": "90b59dbb0d5e42e85f93e284f2ac47d4e6f7540b",
      "tree": "1e359b46e1f8449645a31354bacc234bf8319a85",
      "parents": [
        "840e2dcbae8d17bb6f092df32cb12324e18090b9",
        "9a6b9ed394c3ece622029ce5c169f19fd55de5b3"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Mar 01 01:16:45 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 01 01:16:45 2017 +0000"
      },
      "message": "Merge \"fix warning: dereference of a null pointer\"\nam: 9a6b9ed394\n\nChange-Id: I8f944dd30a2663262baa00a08c1e4204a29242eb\n"
    },
    {
      "commit": "9a6b9ed394c3ece622029ce5c169f19fd55de5b3",
      "tree": "1fd20bf47821c4349f68c27ca0a9c56b09fbbe9e",
      "parents": [
        "b95db7560eef62369312ecf82e2a90fb9d610d92",
        "0269068cb60dd68addfa5699664f04b376a82472"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 01 01:10:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 01 01:10:02 2017 +0000"
      },
      "message": "Merge \"fix warning: dereference of a null pointer\""
    },
    {
      "commit": "99c915d334e3810784474900297ee13d7523e61c",
      "tree": "3d77d5424af6003189c32f51a35888fe4741c46b",
      "parents": [
        "a42728489d3fbcd1d199099f33567119d05a7d2a",
        "01520fce8799d8ba067a796b68abe5e83c0b1336"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 23 18:49:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 23 18:49:11 2017 +0000"
      },
      "message": "Merge \"Raise MTP max burst values.\" am: b95db7560e am: 840e2dcbae\nam: 01520fce87\n\nChange-Id: Ie378fdc9908d4f6830e3bfedc3884bfbb5a322b4\n"
    },
    {
      "commit": "840e2dcbae8d17bb6f092df32cb12324e18090b9",
      "tree": "4238833e44846fcfea0ca1a314003567c9dccd46",
      "parents": [
        "7ac1f99edbb6857d5ce07fd08784cd4db077207e",
        "b95db7560eef62369312ecf82e2a90fb9d610d92"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 23 18:44:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 23 18:44:42 2017 +0000"
      },
      "message": "Merge \"Raise MTP max burst values.\"\nam: b95db7560e\n\nChange-Id: I56563e74a34598d6e4415f0c2054932f88cd8bd2\n"
    },
    {
      "commit": "2a14168f59bf5ad6e0cddb28c23f3e7fef75ac89",
      "tree": "2f65a14ddb4dd865bb8a59f99fbadd361b2eb48a",
      "parents": [
        "a2e67eb95e8dafeffb75c4e65f2648dedaa50a7d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Feb 13 14:24:13 2017 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Thu Feb 23 18:40:50 2017 +0000"
      },
      "message": "Raise MTP max burst values.\n\nSlightly increases transfer speeds on USB 3.0 connections.\n\nTest: Transfer files\nChange-Id: I25fb0a37fa92063356c4a2a0e0ba7f011b6b0527\n"
    }
  ],
  "next": "79a9526b3314fd133355ce7ba68e8465c98137c7"
}
