)]}'
{
  "log": [
    {
      "commit": "31b0486d1b3bef3d84759299442146d054665505",
      "tree": "be34462789a8d7c9d9c095a1efcd1db1ead1a3e0",
      "parents": [
        "20a80efa34ed830351570b8284549fe24e23abb4",
        "38b5053209d84247db69b550e466ab56305bb2b9"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Mar 07 18:29:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 07 18:29:29 2017 +0000"
      },
      "message": "Merge \"Add \"since\" annotations for Support Lib in framework docs build\""
    },
    {
      "commit": "a485f71fd77302f31daa0d6ae29f6802a61eddcf",
      "tree": "97209ffcf4fea539f8178c4e28bfd72bfc0bab6b",
      "parents": [
        "a2f8f4970ef852d4b0caf40d7828376e4a4890c2",
        "1fb3404b2ba69a823e961bec2d9ed61622107052"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 21:39:13 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 06 21:39:17 2017 +0000"
      },
      "message": "Merge \"Refactor EphemeralResolverService\""
    },
    {
      "commit": "1fb3404b2ba69a823e961bec2d9ed61622107052",
      "tree": "0401b1a9cfae2e4509bbc62587a48ca034a217b0",
      "parents": [
        "43d059bf486969912b404b9d5f11ac0d2b9e7b89"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed Mar 01 13:56:58 2017 -0800"
      },
      "committer": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Fri Mar 03 15:45:20 2017 -0800"
      },
      "message": "Refactor EphemeralResolverService\n\n* Change name to InstantAppResolverService\n* Left old service in place to handle existing client\n  [to be removed prior to O launch]\n* When resolving phase II, return a list instead of a single item\n\nBug: 34763730\nTest: Build and verify resolution occurs w/ legacy \u0026 new resolver service\nChange-Id: Ieccaf91538bd91c04f4be4e35d8264619d7cd6d7\n"
    },
    {
      "commit": "75dbc8f9c16cd148b60cdfab2ea892c6398a90ad",
      "tree": "df7e868024af479de239f998bfb64f22895679b5",
      "parents": [
        "06b11b70004b5af17350a075cc18d0c7bf577c2c"
      ],
      "author": {
        "name": "Billy Lamberta",
        "email": "blamb@google.com",
        "time": "Fri Mar 03 13:09:15 2017 -0800"
      },
      "committer": {
        "name": "Billy Lamberta",
        "email": "blamb@google.com",
        "time": "Fri Mar 03 14:25:58 2017 -0800"
      },
      "message": "Set hdf var \u0027dac\u0027 to true in droiddoc options.\nAllows for DAC template customizations in Doclava.\n\nTest: make offline-sdk-docs\nChange-Id: I11aa79eeba2f7440fa68ee92276eecec6db7f836\n"
    },
    {
      "commit": "63394b734646fa8f6199870ca74822a84299704c",
      "tree": "3937862fc10403e0177f92f5cb250c42de67f6c8",
      "parents": [
        "a6d6e60e0058fa29e5f20e981f13f78ace3e3573"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon Dec 19 10:53:15 2016 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Mar 03 16:18:32 2017 +0000"
      },
      "message": "Move framework-specific portions of pathmap.mk into frameworks/base\n\nTest: make docs \u0026\u0026 make\nChange-Id: I983a17bed8b14b6d94f7c4d3e900f4bb8bb34b86\n"
    },
    {
      "commit": "7ad11281378a1248c08c703b14cfc681e37cac1b",
      "tree": "9d02e84a119bd747e68a6677122d120ea1450817",
      "parents": [
        "d11f127428a01dd86f5bb71797105b9b30be9e40"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 28 13:08:56 2017 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Mar 03 02:56:32 2017 +0000"
      },
      "message": "Allow auto-fill services to disable themselves\n\n1. Added a new API for a connected auto-fill service to\n   disable itself\n\n2. Added a new shell command to destroy all pending sessions\n   which is used in CTS tests\n\n3. Fixed a bug where the unbind timeout was in minutes\n   instead of seconds\n\nTest: wrote CTS tests, all auto-fill tests pass\n\nbug:35848030\n\nChange-Id: I681605aa0b8c004a0f14e30b57117c291d89a894\n"
    },
    {
      "commit": "158cd7b1f2aac1e076ef43debd0ec882a9f2c822",
      "tree": "aa88f1f9917bb2b28d09fd3be9c56db70083ab10",
      "parents": [
        "c3013b5bda4a7fd77e627da3b0fa4a6e136e396a",
        "bd16f457a181b8dd32305cedc71ea492a3450739"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 28 06:19:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 06:19:49 2017 +0000"
      },
      "message": "Merge \"Add callback for AVRCP 1.6 support\""
    },
    {
      "commit": "bd16f457a181b8dd32305cedc71ea492a3450739",
      "tree": "f5f55d515b754ad88ef587f63daa18ebfcf578db",
      "parents": [
        "2584ba6bf4310264239f1f168e52cb0ed3e09055"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Feb 03 16:21:38 2017 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 28 04:29:38 2017 +0000"
      },
      "message": "Add callback for AVRCP 1.6 support\n\nBug: 33828042\nTest: Build\nChange-Id: Iaf5cecfa38065cfeed096929952559d7cb2e248b\n"
    },
    {
      "commit": "c1e701d03f4e8353c0287152d20afbc7f0c13569",
      "tree": "d560f4c86ec0fabfa661de68668770e011b4247f",
      "parents": [
        "7485a9bbb38779746bc8555a4de2b6d88a20f0f7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Feb 27 16:06:46 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Feb 27 16:09:23 2017 -0800"
      },
      "message": "MediaCas: move *.aidl files from frameworks/base to frameworks/av\n\nPDK builds can\u0027t reference frameworks/base from frameworks/av.\n\nbug: 22804304\nChange-Id: Ibcda0b6a56e36233ad37c2d5d2b03d5c58674010\n"
    },
    {
      "commit": "38b5053209d84247db69b550e466ab56305bb2b9",
      "tree": "3fb8bd09059cd1428a5c3692cffd97c835f25568",
      "parents": [
        "e20e7ebbfb39a52e95c72c6abbf1409a2a9abc44"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Feb 24 10:29:48 2017 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Fri Feb 24 15:15:17 2017 -0500"
      },
      "message": "Add \"since\" annotations for Support Lib in framework docs build\n\nBug: 35707648\nTest: make docs\nChange-Id: I74729254d0002c739ec23cb7473157fc2b8e92bb\n"
    },
    {
      "commit": "05b9926a2cae29904e8c60f74e654cea88c8c5b3",
      "tree": "e329c6a64d610b89799e8a5ecec5680ef4ef90cd",
      "parents": [
        "13a80432a603538154e4159bd9fe17aa5a16827a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Feb 23 14:51:06 2017 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Feb 23 14:51:06 2017 -0800"
      },
      "message": "Add API \u0027since\u0027 tag for O dev preview (current.txt)\n\nChange-Id: I10ffd161f9249794df7d263a11703fbca0d88451\n"
    },
    {
      "commit": "13a80432a603538154e4159bd9fe17aa5a16827a",
      "tree": "b62aab3bfb80d4d10df0a98e6082f060c1ce7c0c",
      "parents": [
        "15d10517cfbab44f31ec9831f5683b0ee2f7fcde",
        "15b85174246a490c41ce333c62d585c9327b0bba"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Feb 23 22:42:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 22:42:10 2017 +0000"
      },
      "message": "Merge \"switch all droiddoc builds to use templates-sdk from doclava\""
    },
    {
      "commit": "15d10517cfbab44f31ec9831f5683b0ee2f7fcde",
      "tree": "12ecf27bf5f56f5d84717818bb1975a63e85b978",
      "parents": [
        "423b3bd84f4d928365a392d75e35f4cde09ef1a5",
        "d5927ae8833780395f8fc5070d0a0a4f8f668292"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Feb 23 22:36:18 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 22:36:22 2017 +0000"
      },
      "message": "Merge \"MediaCas: add framework APIs\""
    },
    {
      "commit": "15b85174246a490c41ce333c62d585c9327b0bba",
      "tree": "f4d4e6695b075f415aaf873b501d9ab29b018ac4",
      "parents": [
        "d7ece194c79e9a959c0ec8380e17c960a1a98c9c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Tue Feb 21 14:30:58 2017 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Feb 23 21:27:13 2017 +0000"
      },
      "message": "switch all droiddoc builds to use templates-sdk from doclava\n\nChange-Id: I9007f4d49a3076e8b38a2c97e936cf6d6710e87a\n"
    },
    {
      "commit": "d5927ae8833780395f8fc5070d0a0a4f8f668292",
      "tree": "7a9d20d856c46bb6a1dd0796ef82a54cc1c16e09",
      "parents": [
        "ab7bc7afd7a5f9a994e55402795590df57fcb0bf"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jan 03 11:07:18 2017 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Feb 22 17:27:01 2017 -0800"
      },
      "message": "MediaCas: add framework APIs\n\nJava API changes to support MediaCas framework.\n\nAlso add partial-frame related enums to MediaCodec,\nMediaCodecInfo, and MediaExtractor as a way to indicate\na input frame contains partial data.\n\nTest: basic test app and test plugin to execise the code path;\nimpelenting playback of CAS-secured MPEG2TS streams, including\na Widevine-based CAS plugin, locally modified ExoPlayer and\nAndroid TV Tuner input.\n\nbug: 22804304\nChange-Id: Ia4ba1d4046f7588e42bfb21e726390457d2fc8e3\n"
    },
    {
      "commit": "95cb226c1a4ff47531da65ef2617ade0dea5c9b8",
      "tree": "b4892fc2349e674751a929be9b9459b2f2926ff3",
      "parents": [
        "56ff7d9e7384fbf09a73ee61120539b2aa0e1983"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Jan 11 10:11:26 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Feb 22 12:56:38 2017 +0900"
      },
      "message": "IP connectivity metrics: cleanup obsolete code\n\nThis patch cleans obsolete code related to IP connectivity metrics:\n - remove @SystemApi on android.net.metrics: now that metrics events\n   are processed and serialized in the frameworks only, event classes\n   should not appear in the system apis.\n - remove obsolete Logger classes: ConnectivityMetrics app was the\n   unique user of ConnectivityMetricsLogger until nyc-mr1. From nyc-mr1\n   the app started using dumpsys to get metrics for IpConnectivity and\n   Telephony, which made ConnectivityMetricsLogger obsolete.\n - simplifications in MetricsTestUtil\n\nTest: - runtest frameworks-net\n      - manually verified $ adb shell dumpsys connmetrics\nBug: 30054585\nBug: 32648597\nChange-Id: I85ef65f7f69eb9299e4636cc7af54067201d9daf\n"
    },
    {
      "commit": "f9bd2944694539f1dce74d420156cc50bbb4af14",
      "tree": "1e4d0a136606788c633f5b823daca0caa4334499",
      "parents": [
        "2d8f7e80beb0c4762faca9d37539524377da43c2",
        "df1742ed47da1e9b61afeae16fa448d5302a8aa0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 21 19:23:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 21 19:23:46 2017 +0000"
      },
      "message": "Merge \"Overhaul GraphicsStatsService\""
    },
    {
      "commit": "df1742ed47da1e9b61afeae16fa448d5302a8aa0",
      "tree": "7986faf156f39bbe218ab13bad3ae5a1ea3dd581",
      "parents": [
        "f8a420097e54a369d3bd1aa152ea0eea58ff5c94"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 19 15:56:21 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 21 09:49:10 2017 -0800"
      },
      "message": "Overhaul GraphicsStatsService\n\n* LRU cache of recently-used is dead, replaced\n  disk storage\n* ASHMEM size is read from native by the system service,\n  no longer requires keeping a sizeof() in sync with a\n  constant in Java\n* Supports dumping in proto format by passing --proto\n* Rotates logs on a daily basis\n* Keeps a history of the most recent 3 days\n\nBug: 33705836\nTest: Manual. Verified log rotating works by setting it up to\nrotate every minute instead of day. Confirmed /data/system/graphicsstats\nonly has the most recent 3 entries after several minutes\n\nChange-Id: Ib84bafb26c58701cc86f123236de4fff01aaa4aa\n"
    },
    {
      "commit": "58229846d03ce719c5a6ef94975b57f4ed21e87a",
      "tree": "4c9ad15e66c660a27de86686ffec5350779dae60",
      "parents": [
        "d7df6748f21d3f4b9209eaa2bfba73af0af31538",
        "cf9d19e030830fd808d59f1c97edf65e66f675d6"
      ],
      "author": {
        "name": "Daniel Nishi",
        "email": "dhnishi@google.com",
        "time": "Tue Feb 21 17:37:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 21 17:37:58 2017 +0000"
      },
      "message": "Merge \"First pass at adding the cache quota suggestions.\""
    },
    {
      "commit": "af736c9e996a8b0dcf287e6ff264c5a1f8ac50e8",
      "tree": "def3def9b3c171ad440ff2964ded188bceea54fa",
      "parents": [
        "d133b00efb49adeb21b9b62b334769c03f40bf43",
        "e86b78a57404a6d138e999db7c9379a05d1cf73f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 17 15:05:08 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 17 15:05:37 2017 -0800"
      },
      "message": "resolve merge conflicts of e86b78a57404 to master\n\nTest: none\nChange-Id: I8bf02f8198d003c4453cc59b7a3bccdff688ca15\n"
    },
    {
      "commit": "3c2c2764d4b141ee835b7c0725022e9af77c83a9",
      "tree": "dfe6c8998651225e6451b7551d70a07895f97b0e",
      "parents": [
        "4896a04013a97a41564b0a68685cc559bc81fcca",
        "313e645801e561dbf25320110ab4790a33720dae"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 17 22:25:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 22:25:53 2017 +0000"
      },
      "message": "Merge changes I82aa8140,Ib62a5dd6,I2c4d64e2\nam: 313e645801\n\nChange-Id: Ia10d20ea4ebabc2cc84524950dec7570104b185f\n"
    },
    {
      "commit": "313e645801e561dbf25320110ab4790a33720dae",
      "tree": "64ccd7f6d68c3c4e09425790275f6833e8d1ec54",
      "parents": [
        "855889b086ab62255b13cb7eb3783ae5e95ee492",
        "254a418e97e02f43d1f25ea801d67e1bdf498d65"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Feb 17 21:44:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 21:44:21 2017 +0000"
      },
      "message": "Merge changes I82aa8140,Ib62a5dd6,I2c4d64e2\n\n* changes:\n  Enable multidex for SystemUITests\n  Add missing transitive dependencies\n  Revert \"Remove support of disabling Jack.\"\n"
    },
    {
      "commit": "c9c8b590c5d51b54a84824270be49ddc16fd2a71",
      "tree": "8529edd7e9d1181235c62c2bf17cf42b4f716bb9",
      "parents": [
        "2dc835dd1ca183103f069fdb85ec9e3548d1b3c2",
        "f46aa6f9eea39df7f0a9528d78b8687f2e0e5b63"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Fri Feb 17 20:29:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 20:29:13 2017 +0000"
      },
      "message": "Merge \"Adds @hide ImsService APIs\" am: 2b879016d3\nam: f46aa6f9ee\n\nChange-Id: I12e10d796a7b2d56cacf8e9b53bb5e228b79ecc3\n"
    },
    {
      "commit": "cf9d19e030830fd808d59f1c97edf65e66f675d6",
      "tree": "7d27e4f71ff44e24ce8aa36038dc5e88b4eb8a70",
      "parents": [
        "ceb250424a32ef45549fa728adcd766cb7c35b54"
      ],
      "author": {
        "name": "Daniel Nishi",
        "email": "dhnishi@google.com",
        "time": "Mon Jan 23 14:33:42 2017 -0800"
      },
      "committer": {
        "name": "Daniel Nishi",
        "email": "dhnishi@google.com",
        "time": "Fri Feb 17 10:26:16 2017 -0800"
      },
      "message": "First pass at adding the cache quota suggestions.\n\nThis currently integrates with installd, but not with\nany framework API to expose this information to apps.\n\nThe first pass, as per the design doc, adds a service\nwhich polls for large changes in the file system free space.\nIf enough spaces changes, it begins a recalculation of the\ncache quotas and pipes the information down to installd.\nThis calculation is done in the updateable ExtServices.\n\nFurther enhancements in later patches include integrating this\nto listen to package install and removal events, caching the\nlast computed quota values into an XML file on disk to load\non boot, and exposing the information to apps.\n\nBug: 33965858\nTest: ExtServices unit test\n\nChange-Id: Ie39f228b73532cb6ce2f98529f7c5df0839202ae\n"
    },
    {
      "commit": "be2d3307e23f08bbc29e1b33b6aba9c7d05a5867",
      "tree": "8ce1604900d34f98860b49d0e9723bb541ebc647",
      "parents": [
        "97ebc29e9c3afb65394be27c09ab42ca7d32c602"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Dec 21 16:48:32 2016 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 16 11:41:42 2017 -0800"
      },
      "message": "Revert \"Remove support of disabling Jack.\"\n\nThis reverts commit ba068f48727dee2223b3be3b0359accb949e363d.\n\nTest: builds\nChange-Id: I2c4d64e26c2e4ceb710a39de2ee9749160d33a72\n"
    },
    {
      "commit": "1639c21be6e7cd7699db4080fcf2ccc5cb2006e6",
      "tree": "00eb626935a8066011289e7cc54e37bb52a10318",
      "parents": [
        "eb82e3de8777414e722dca06039e477eea3a0cdd"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Wed Jan 25 14:26:41 2017 -0800"
      },
      "committer": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Feb 16 11:14:26 2017 -0800"
      },
      "message": "Adds @hide ImsService APIs\n\nAdds @hide ImsService API implementations to be used for the new\ndynamic ImsResolver.\n\n1) ImsService - The main class that all vendor ImsServices will implement.\nImsServices that implement this method must return their implementations\nof MMTelFeature when onCreateMMTelFeature is called. The base ImsService\nclass also relays all method calls through itself as a proxy. So, when\nTelephony calls a method, the ImsService figures out which MMTelFeature\nshould be called (by slot) and then calls that feature\u0027s method\nimplementation.\n\n2) MMTelFeature/RcsFeature - Implements the I*Feature interfaces, which\nare used on both sides of the interface. The vendor implemented ImsService\nmust implement all methods provided in the I*Feature interface in their\nimplementation of *Feature that they return to the ImsService.\n\n3) ImsServiceProxy[Compat] - The Proxy interface in telephony that will be\ncalled in ImsManager. When a method in this class is called, it will call\nthe respective AIDL function: Telephony -\u003e IImsServiceController AIDL -\u003e\nvendor ImsService -\u003e vendor ImsFeature implementation.\nImsServiceProxyCompat is there to provide backwards compatibility with\nolder ImsServices that do not use the new ImsService implementations.\nIt implements all of the methods that are defined in the new I*Feature\ninterfaces and translates them to the old ImsService AIDL calls.\n\nTest: Adds Unit Tests (see frameworks/opt/telephony)\nMerged-In: Id3466c178384158c788ab1d708ab108bb95866fc\nChange-Id: Id3466c178384158c788ab1d708ab108bb95866fc\n"
    },
    {
      "commit": "15708a316bcfafc93aa1795fae65e83035270d88",
      "tree": "c74dfad07487f843ad9cbd93e9ed06d2cc5072b0",
      "parents": [
        "89863ea4f6e973a9405ee3c9fac79dd18b535c7e"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Wed Jan 25 14:26:41 2017 -0800"
      },
      "committer": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Feb 16 11:03:31 2017 -0800"
      },
      "message": "Adds @hide ImsService APIs\n\nAdds @hide ImsService API implementations to be used for the new\ndynamic ImsResolver.\n\n1) ImsService - The main class that all vendor ImsServices will implement.\nImsServices that implement this method must return their implementations\nof MMTelFeature when onCreateMMTelFeature is called. The base ImsService\nclass also relays all method calls through itself as a proxy. So, when\nTelephony calls a method, the ImsService figures out which MMTelFeature\nshould be called (by slot) and then calls that feature\u0027s method\nimplementation.\n\n2) MMTelFeature/RcsFeature - Implements the I*Feature interfaces, which\nare used on both sides of the interface. The vendor implemented ImsService\nmust implement all methods provided in the I*Feature interface in their\nimplementation of *Feature that they return to the ImsService.\n\n3) ImsServiceProxy[Compat] - The Proxy interface in telephony that will be\ncalled in ImsManager. When a method in this class is called, it will call\nthe respective AIDL function: Telephony -\u003e IImsServiceController AIDL -\u003e\nvendor ImsService -\u003e vendor ImsFeature implementation.\nImsServiceProxyCompat is there to provide backwards compatibility with\nolder ImsServices that do not use the new ImsService implementations.\nIt implements all of the methods that are defined in the new I*Feature\ninterfaces and translates them to the old ImsService AIDL calls.\n\nTest: Adds Unit Tests (see frameworks/opt/telephony)\nChange-Id: Id3466c178384158c788ab1d708ab108bb95866fc\n"
    },
    {
      "commit": "da0acdf938f1d6e7a978e143d5d80d8dd5af52ad",
      "tree": "a87f84a6afb69607c20513adb4730af5daf7ff92",
      "parents": [
        "3d52f79be4dba94f046709fabc1bfb911a670709"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 15 10:28:51 2017 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 15 20:32:41 2017 -0800"
      },
      "message": "Auto-grant background execution and data access\n\nCompanion apps can declare they want background access and\nbackground execution exceptions via dedicated permissions\nin their manifest. If such a permission is requested we\nauto-grant the corresponding exception after the user has\nchosen a device from the companion UI. These permissions\nare appop ones allowing us to use the app ops for gauging\nwhether the user has made a change after we auto-granted\nthe permission since we would like to revoke these special\nprivileges when the app disassociates itself from the\ncompanion device if the user did not make an excplicit\nchoice otherwise.\n\nWhile at this auto-grant fixed location permission to the\ncompanion device discovery service.\n\nTest: manual\n\nChange-Id: I46ee4291e5e5a8f7613f0dd75eb61d6b9341f306\n"
    },
    {
      "commit": "782043caf81055aa1c331e9cc15b24a10e1bf17a",
      "tree": "3f0991e7170aef7cd87b13e2bc7135b91d582783",
      "parents": [
        "9b6611290644d5fd3c96d532f1fa7513848d0f33"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Feb 11 00:52:02 2017 +0000"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 13 21:31:37 2017 -0800"
      },
      "message": "Refactor auto-fill\n\n* Fix a layering issue where auto-fill manager which is in view\n  depended on activity which is in app\n\n* Moved auto-fill classes to view or service based on their\n  purpose and removed dependecy on the classes in view to the\n  classes in service\n\n* Push state to local auto-fill manager whether auto-fill is\n  enabled to avoid making IPC for every focus transition if\n  the user did not enable the feature\n\n* Remove unnecessary offload to messages when handling calls\n  to auto-fill manager service as these are made over a oneway\n  interface and in general they do almost no work and typically\n  we do these on the binder thread\n\n* Removed id from data set and fill response as the provider\n  can embed everything it needs to id them in the auth pending\n  intent\n\n* Enforce the auth UI to be only an activity as this will work\n  with multi-window, recents, and back and also does not require\n  draw on top of other app special permission\n\n* Authentication also no longer requires passing a remotable\n  callback to the auth activity but the activity handles the\n  request as if called for a result\n\n* Handling stopping of a user to clean up in-memory state as\n  well as handling when a user gets unlocked as a provider may\n  be non-direct boot aware\n\n* User the correct context when creating an auto-fill manager\n\n* Move the receiver that listens for requests to hide system\n  windows to the manager service as the UI is a singleton and\n  no need every per-user state to register its own\n\n* Removed extras from dataset as the only case a provider needs\n  to associate state with a dataset is for auth and the provider\n  can embed this data in the auth pending intent\n\nTest: manual and CTS\n\nChange-Id: I4bc54c13cf779d7f6fdb3ab894637f9fac73f603\n"
    },
    {
      "commit": "b1f573dca3ccdd113ca513f32c9964211ca71c78",
      "tree": "5baf30a11c5ee9acf7405867a69a2df1b68ebd1c",
      "parents": [
        "570661486882ab2690b62176e83c23a4b2d6a796"
      ],
      "author": {
        "name": "Stefanot",
        "email": "stefanot@google.com",
        "time": "Fri Jan 27 12:03:53 2017 +0000"
      },
      "committer": {
        "name": "Stefanot",
        "email": "stefanot@google.com",
        "time": "Fri Feb 10 11:03:08 2017 +0000"
      },
      "message": "Add monitoring to backup in BackupManager.\n\nThis is the first CL of many that will add instumentation to\nbackup/restore operation in the BackupManager. For more details please\npoint to:\nhttps://docs.google.com/document/d/1sUboR28LjkT1wRXOwVOV3tLo0qisiCvzxIGmzCVEjbI/edit#\nThis first Cl introduces 3 events that we sent to the monitor.\n\nTest: ag/1858962 (same topic)\n\nBUG: 34873525\n\nChange-Id: I6c338b6fd9f4d7c8670dac201897250b6b170677\n"
    },
    {
      "commit": "a0e468ac3358583ae34db510fe2fc33c832eb29a",
      "tree": "b3a23bb99074b2097bdf76e510d30943888dc294",
      "parents": [
        "47c4c94100e1ec861d2c2593ad66ba050bbe93fe",
        "7fa65eef203c4ed3ce00ddef96ccf311d3bfb58c"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Feb 09 05:11:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 09 05:11:04 2017 +0000"
      },
      "message": "Merge \"Avoid sync IPCs from TSMS to SpellCheckerService\""
    },
    {
      "commit": "7fa65eef203c4ed3ce00ddef96ccf311d3bfb58c",
      "tree": "8ad2efdf2380996ecb8a2d731790fb30268e8a04",
      "parents": [
        "fd62c58ede768be5830a052ee2d5ee6ade787839"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Wed Feb 08 11:54:05 2017 -0800"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Wed Feb 08 11:54:05 2017 -0800"
      },
      "message": "Avoid sync IPCs from TSMS to SpellCheckerService\n\nCurrently, TextServicesManagerServices uses an AIDL interface called\nISpellCheckerService when binding to a spell-checking service.\nHowever, this interface uses synchronous (blocking) binder calls\nrather than asynchronous (oneway) calls.  As a result, there are\nsituations where the system process has made a blocking binder call\ninto untrusted application code from its main looper thread.\n\nAs general policy, the system process must never allow its looper\nthreads to block on application code.\n\nThis CL addresses the above issue by converting ISpellCheckerService\ninto oneway interface, which instead takes a result receiver\nISpellCheckerServiceCallback so that spell-checking services can\nreturn results asynchronously.\n\nNote that the above protocol issue was also the root cause of\nBug 5471520.  Hence we can also logically revert the previous CL [1]\nfor Bug 5471520.\n\n [1]: Iedf2c2cdd8d4834545d06d72ade3ce211b104b1d\n      4e713f14419a37f385cf1509b011982bdcf67edc\n\nTest: Ran `adb shell dumpsys textservices` to check the\n      \"Spell Checker Bind Groups:\" section in the following three\n      steps.\n      1. Before apps start requesting spell checker sessions.\n      2. While apps are owning active spell checker sessions.\n      3. After all the apps that owned spell checker sessions are\n         gone.\n      Made sure that spell checker service is not running when\n      there is not spell checker bind group.\nBug: 7254002\nChange-Id: I92e7aa40dc9ea14f67d355f0bfa15325b775d27b\n"
    },
    {
      "commit": "e5d975cdffc29aa8f9390f001e15d2eb0f19ce82",
      "tree": "4dc0a94d464fa410a699a035e45cf407d740cc9d",
      "parents": [
        "4561f90194a511d135bcb9645332f99fe42e053e",
        "cf879db3666523404ff7e15e77b11434732b4a06"
      ],
      "author": {
        "name": "Wyatt Riley",
        "email": "wyattriley@google.com",
        "time": "Wed Feb 08 02:08:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 02:08:06 2017 +0000"
      },
      "message": "Merge \"GNSS Batching - Default Implementation\""
    },
    {
      "commit": "cf879db3666523404ff7e15e77b11434732b4a06",
      "tree": "b479463245b8ad1f2c70862856ace256ada7f619",
      "parents": [
        "85adc2148854ed63569457da651e0213eaeaf0a4"
      ],
      "author": {
        "name": "Wyatt Riley",
        "email": "wyattriley@google.com",
        "time": "Thu Jan 12 13:57:38 2017 -0800"
      },
      "committer": {
        "name": "Wyatt Riley",
        "email": "wyattriley@google.com",
        "time": "Tue Feb 07 14:55:21 2017 -0800"
      },
      "message": "GNSS Batching - Default Implementation\n\nConnections from .hal layer, through to\nLocation Manager System APIs\n\nBug: 31974439\nTest: builds, boots, ordinary GNSS \u0026 new GNSS batching\n      basic functional checks on Marlin\nChange-Id: If75118c27b5ed34cfc16c9f817b60a3be5485095\n"
    },
    {
      "commit": "6ed45d8cd33c297e608aba94fc1f61dace7a7cca",
      "tree": "7d62835183a39a490ad2b518b27cdf6c1c232cdf",
      "parents": [
        "556897f7018e1b231d6200e21dd45657f180a63c"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Sun Jan 22 13:52:51 2017 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Mon Feb 06 12:50:55 2017 -0800"
      },
      "message": "CompanionDeviceManager\n\nThis introduces an API for apps that support companion devices to provide a\nmore streamlined flow for pairing and setting up the device\n\nBug: 30932767\nTest: Using a toy app, invoke the newly introduced API (CompanionDeviceManager),\n and go through the flow. Ensure filtering works, and device is returned to\n the calling app. Ensure the calling app can pair to the selected device.\nChange-Id: I0aeb653afd65e4adead13ea9c7248ec20971b04a\n"
    },
    {
      "commit": "0f4928f1f73407485d6d94beda1dba1a2360ebbf",
      "tree": "423b3d3f2a1a51981a7b7f0fdc7575482b706f36",
      "parents": [
        "21c8595d764bf6cbf2a1b59715c85ca211240ed4"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 02 20:02:51 2017 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 06 04:02:35 2017 +0000"
      },
      "message": "Refactoring of auto fill - lifecycle, auth, improvements\n\n1. Move management of the remote fill service in a dedicated\n   class that abstracts away the async and ephemeral nature\n   of the binding.\n\n2. Update auth to move fingerprint out of the platform and\n   allow response and dataset auth.\n\n3. Cleaned up the fill and save callback classes.\n\n4. The UI is now shared among all sessions and cleaned up.\n\n5. Reshuffled the remote callbacks to have cleaner separation.\n\n6. Cleaned up and tightened the reponse and dataset classes.\n\n7. Added API to support communicationn with intent based auth.\n\nTest: CTS + manually\n\nbug:31001899\n\nChange-Id: Idc924a01d1aea82807e0397ff7293d2b8470d4d6\n"
    },
    {
      "commit": "27fcd9c97a2ceb50bab026237390207e5ee9e290",
      "tree": "d3860272f2978e1cef6afadf9f68f99afe806e53",
      "parents": [
        "669b1d6bfe2d737cbd69f75d32378f7e6cab0c30"
      ],
      "author": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Fri Jan 20 15:57:24 2017 -0800"
      },
      "committer": {
        "name": "Phil Weaver",
        "email": "pweaver@google.com",
        "time": "Tue Jan 31 14:27:09 2017 -0800"
      },
      "message": "Accessibility can capture fingerprint gestures\n\nBug: 27148522\nTest: Unit tests for two new classes in this CL, CTS in\nlinked CL.\nChange-Id: Icb5113e00b1f8724814263b3cc7f72fe4a6f0b41\n"
    },
    {
      "commit": "67024f1b8feac1f59fff6a123f45f18a70e80e4f",
      "tree": "08f14fe708c46cc5c13766b33b7eb497ed119878",
      "parents": [
        "6675bbf093e2d9fdb620ed42602dde2a7902e8ce",
        "c565e1d3cea6f8db4fa0371b3cdb9fe11dbf4483"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Mon Jan 30 19:12:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 19:12:50 2017 +0000"
      },
      "message": "Merge \"Implement TextClassification system service.\""
    },
    {
      "commit": "7d670b4f738df436ba8025ee2ae360ce070c2a7f",
      "tree": "58d9461c2f4117378b1c6c0d4de6ee711de61520",
      "parents": [
        "3bec1cf5a57012407d0261533232e531a115a994",
        "eabc9e95768e7ac9acc3b32dc9ac2edf99c9e2c5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 19:42:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 19:42:59 2017 +0000"
      },
      "message": "Merge \"OMS: introduce the OverlayManagerService\""
    },
    {
      "commit": "fca7aac5ecd995085b71a4d90b4862f68fbaeb45",
      "tree": "9589533ab024714d5b6fcda9a13919d203698559",
      "parents": [
        "9e77aefe9ce2c3caa8c0daebf21c86088e10b951"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 26 18:47:14 2017 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jan 26 18:47:14 2017 -0800"
      },
      "message": "Work around clang-tidy segmentation fault.\n\nThis should affect only builds that call clang-tidy.\nWithout this change, clang-tidy has segmentation fault\nwhen compiling several files in the incident_* directories.\n\nBug: 34740546\nTest: build with WITH_TIDY\u003d1 and\nDEFAULT_GLOBAL_TIDY_CHECKS\u003d\"*,-readability-*,-google-readability-*,-google-runtime-references\"\n\nChange-Id: Idfd46f36c01ccdd401eb54b750bc9d962c29ddeb\n"
    },
    {
      "commit": "eabc9e95768e7ac9acc3b32dc9ac2edf99c9e2c5",
      "tree": "f4621e85646f090e0adf1643d3d4ef24ab51e721",
      "parents": [
        "dacf5e522e67fc1576f5362c372a8159c88423a4"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Tue Dec 15 16:40:23 2015 +0100"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 26 17:04:53 2017 -0800"
      },
      "message": "OMS: introduce the OverlayManagerService\n\nAdd a new system service to manage Runtime Resource Overlays. This will\noffload the PackageManagerService and allow administration of overlay\npackages while affected packages continue to execute.\n\nOverlays can be enabled or disabled during runtime. Running applications\nwill re-create their ResourcesImpl objects and restart their activities\nvia the usual activity life cycle.\n\nThe order in which a set of overlays is loaded may also be changed\nduring runtime. The underlying mechanics are the same as for when an\noverlay is enabled or disabled.\n\nWhen an overlay changes state, e.g. becomes enabled, the\nOverlayManagerService will broadcast one of the new intents\nandroid.intent.action.OVERLAY_ADDED, *_CHANGED, *_REMOVED or\n*.OVERLAYS_REORDERED.\n\nClients that wish to read information about overlays for users other\nthan themselves are required to hold the\nandroid.permission.INTERACT_ACROSS_USERS_FULL permission. This mirrors\nthe protection level of PackageManager.getPackageInfo.\n\nClients that wish to change the information are required to\nhold the permission android.permission.CHANGE_OVERLAY_PACKAGES.\n\nEach pair of overlay package and corresponding target package is\nrespresented by a new OverlayInfo class. This class mirrors the\nexisting PackageInfo class.\n\nOverlay packages are handled per Android user. The data is persisted in\n/data/system/overlays.xml.\n\nCo-authored-by: Martin Wallgren \u003cmartin.wallgren@sonymobile.com\u003e\nSigned-off-by: Zoran Jovanovic \u003czoran.jovanovic@sonymobile.com\u003e\nBug: 31052947\nTest: run tests from \u0027OMS: tests for OverlayManagerService\u0027\nChange-Id: I15325e173193df3240b8dc0a58c852fd7a3d5916\n"
    },
    {
      "commit": "0f4a8ba209175bc61b9925508b4980cee3601f96",
      "tree": "9202aa9dfaa4ed0c007664767d5ad4ea8c14e6b6",
      "parents": [
        "3cb0a47aded5d31a24469b9da0485cf121efb7d8",
        "ded1df24e01b7317593bbec84724b10f5444d5d9"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Jan 26 01:56:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 26 01:56:25 2017 +0000"
      },
      "message": "Merge \"Adding Dynamic ImsService Binding (1/3)\" am: 8e6b13a1c0 am: 64057ab972 am: 2741442324\nam: ded1df24e0\n\nChange-Id: Ifd95efa076b7f5c8c8b02be7688aab1008bbc63c\n"
    },
    {
      "commit": "ded1df24e01b7317593bbec84724b10f5444d5d9",
      "tree": "6a5ca2a99db381d7558e8dc799c3b39ad3cee351",
      "parents": [
        "7fef16ff248051b57433186f14db04d8cf070628",
        "2741442324618804cca953e30251864142e6302d"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Jan 26 01:49:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 26 01:49:53 2017 +0000"
      },
      "message": "Merge \"Adding Dynamic ImsService Binding (1/3)\" am: 8e6b13a1c0 am: 64057ab972\nam: 2741442324\n\nChange-Id: Ibd5c988226e7994c332a7e7f8b40a9338cf84e0f\n"
    },
    {
      "commit": "2741442324618804cca953e30251864142e6302d",
      "tree": "73cc677fcff49d36e8f903d96e16a2112700bd89",
      "parents": [
        "a07e5312ccc21dffbfeecee17e5c859e0cb952d1",
        "64057ab972674ac0105af9e3a7003416f9a9c823"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Jan 26 01:46:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 26 01:46:06 2017 +0000"
      },
      "message": "Merge \"Adding Dynamic ImsService Binding (1/3)\" am: 8e6b13a1c0\nam: 64057ab972\n\nChange-Id: I901c72a38b522c190e849de55078036adc80d8b6\n"
    },
    {
      "commit": "64057ab972674ac0105af9e3a7003416f9a9c823",
      "tree": "667f891c9608c66bbf5de259f0ddc6f424a178f2",
      "parents": [
        "e80181055327812d83b73fe0357bebce156af3b1",
        "8e6b13a1c0e969b00d6b6e29fd367082be071ff9"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Jan 26 01:41:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 26 01:41:38 2017 +0000"
      },
      "message": "Merge \"Adding Dynamic ImsService Binding (1/3)\"\nam: 8e6b13a1c0\n\nChange-Id: I8534273da5579b7662e66f80a60348a4665dd65b\n"
    },
    {
      "commit": "024aaf23881c142ba92194a001ac038253ae708e",
      "tree": "d0017aaa47e767a9dcf823f556604186509f417b",
      "parents": [
        "6d064d8780c4626d033c26fd87242080a2f1c768"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Mon Jan 23 15:17:50 2017 -0800"
      },
      "committer": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Wed Jan 25 15:12:28 2017 -0800"
      },
      "message": "Adding Dynamic ImsService Binding (1/3)\n\nAdds support for dynamic ImsService Binding (change 1/3). Included\nin this change:\n- AIDLs for ImsServiceController\n- ImsFeature/ImsServiceBase definitions\n- KEY_CONFIG_IMS_PACKAGE_OVERRIDE CarrierConfig option\n\nTest: Unit Tests in opt/telephony\nBug: 30290416\nChange-Id: Ic4cb1d85a29681b08a6a525c588a72209862dcc3\n"
    },
    {
      "commit": "b7cab6a19096458a7fafa905eed52db83759b6c6",
      "tree": "2afce756d27e0d5efd92e6f9ec3ca35a084cc336",
      "parents": [
        "b08655764bea5ab0c2042c0cf59d4b2a602f6584",
        "6e2b01ce75fb1d5647d5d788d8a5644c30cb3068"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 01:16:28 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 01:16:32 2017 +0000"
      },
      "message": "Merge changes from topic \u0027bisto-request\u0027\n\n* changes:\n  Allow privileged app to set media key event listener\n  Allow privileged app to set volume key long-press listener\n"
    },
    {
      "commit": "d9793989834ec7dd3dfe645c6bfba50978c16253",
      "tree": "fee409cb03b67e511341d9f219be2722008acd18",
      "parents": [
        "454a9777b84431ad0f3492477d197390eb491508",
        "823287d28ed75f96cee31cf465220fcbcbc5c7ac"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "badhri@google.com",
        "time": "Tue Jan 24 23:46:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 23:46:25 2017 +0000"
      },
      "message": "Merge \"Refactor UsbPortManager to use the binderised USB HAL\""
    },
    {
      "commit": "a393ff7dc7e7e7002a400d37868e0d6c14507b43",
      "tree": "437078580339282863067237e616782a6b33f07c",
      "parents": [
        "274907e729c45a112e1215a97a7ef43926053da9",
        "865303fce57b968f5bd7efb4dd23ccb1a3747b93"
      ],
      "author": {
        "name": "Shreyas Basarge",
        "email": "snb@google.com",
        "time": "Tue Jan 24 22:02:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 24 22:02:28 2017 +0000"
      },
      "message": "Merge \"API to select backup transport\""
    },
    {
      "commit": "6e2b01ce75fb1d5647d5d788d8a5644c30cb3068",
      "tree": "83df9116a274617897b06369a3c0fc8d9e3b34ba",
      "parents": [
        "5026936e49540449165fd5881231f8970a29ea91"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Jan 19 16:33:14 2017 -0800"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Jan 24 09:41:54 2017 -0800"
      },
      "message": "Allow privileged app to set media key event listener\n\nIf the media key listener is set, the listener will receive the media key\nevents before any other sessions, but after the global priority session.\nIf the event is handled by the listener, other sessions cannot get the event.\n\nPrivileged app needs permission android.permission.SET_MEDIA_KEY_LISTENER\nto set the listener.\n\nBug: 30125811\nChange-Id: I2b2cf4ac7873b70899194701c6921990dcb9de02\n"
    },
    {
      "commit": "5026936e49540449165fd5881231f8970a29ea91",
      "tree": "67fc01a29dbe5ebd1132e17e4151eeabee62ad4c",
      "parents": [
        "70c5c30afa1379d4c3c856f08a3b5a0fdb5f9d92"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Dec 23 11:22:02 2016 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Jan 24 09:41:43 2017 -0800"
      },
      "message": "Allow privileged app to set volume key long-press listener\n\nIf the volume long-press listener is set, the listener will receive\nthe volume key long-presses instead of chaging the volume.\n\nPrivileged app needs permission\nandroid.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER to set the listener.\n\nBug: 30125811\nChange-Id: I5e8fafbb950e5e11522da0f14004648d0877bf3e\n"
    },
    {
      "commit": "865303fce57b968f5bd7efb4dd23ccb1a3747b93",
      "tree": "d4fac32c678adc66ce81fc77c252a41b00107f5f",
      "parents": [
        "1628b97e54d7f56352d7f3ad9c6b4166d56082a5"
      ],
      "author": {
        "name": "Shreyas Basarge",
        "email": "snb@google.com",
        "time": "Fri Jan 13 14:48:56 2017 +0000"
      },
      "committer": {
        "name": "Shreyas Basarge",
        "email": "snb@google.com",
        "time": "Tue Jan 24 17:28:48 2017 +0000"
      },
      "message": "API to select backup transport\n\nThis cl adds an API to select a backup\ntransport by its component name and\nreceive a callback when BackupManager\nis bound to the transport. Calling this API\nwill make BackupManager bind to the transport\nif it isn\u0027t already bound to it.\n\nAlso fixes the issue where BackupManager would\ndetect only one transport per package.\n\nRef: go/backup-transport-switching\n\nBug: 33616220\nTest: Manually tested. GTS tests will be put up shortly.\n\nChange-Id: I8c23bdbb84ceb05eb1fad9b3a8b9c4441cb06c74\n"
    },
    {
      "commit": "823287d28ed75f96cee31cf465220fcbcbc5c7ac",
      "tree": "1a1767aa62eed4b2ee6ea7fbef3861aab9aa3690",
      "parents": [
        "29d20fc0f9d185ce356a984468142ae5c63e911b"
      ],
      "author": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Mon Jan 23 17:13:15 2017 -0800"
      },
      "committer": {
        "name": "Badhri Jagan Sridharan",
        "email": "Badhri@google.com",
        "time": "Mon Jan 23 17:13:15 2017 -0800"
      },
      "message": "Refactor UsbPortManager to use the binderised USB HAL\n\nMove to a USB HAL to handle type-c ports as upstream is\nconsidering in merging a generic type-c interface to mainline\nkernel. However, the new sysfs interface can see minor changes\nin the future as the sysfs interface is sitll going to land\nin testing and it is still under review.\n\nBug: 31015010\nTest: Manually tested on Angler and sailfish for type-c role switches.\nChange-Id: I26771074c4b4f79a133e519bc6d35a4864a696d8\n"
    },
    {
      "commit": "04d72abde1efc963ebb2f145f859552e83b92d13",
      "tree": "62e2d74e3cb0d336d0d02afa4d89c650e83c4e6b",
      "parents": [
        "b334b8f0f26d93e50c07bbb90ade097025d795c1"
      ],
      "author": {
        "name": "Clara Bayarri",
        "email": "clarabayarri@google.com",
        "time": "Tue Jan 10 09:31:51 2017 -0800"
      },
      "committer": {
        "name": "Clara Bayarri",
        "email": "clarabayarri@google.com",
        "time": "Mon Jan 23 15:02:23 2017 +0000"
      },
      "message": "Expose fonts.xml via public API with a service\n\nThis change creates a new FontManagerService, in charge of providing\nfont management data. It exposes a public API to retrieve the\ninformation in fonts.xml without accessing it directly. To do this,\nit also refactors FontListParser\u0027s internal classes into a new public\nFontConfig class holding all the font data.\n\ngetSystemFonts() returns all the available information in fonts.xml\nas well as file descriptors for all the fonts. This allows us to\nshare the memory consumed by these files between all clients.\n\nBug: 34190490\nTest: See attached CTS change in topic\nChange-Id: I0e922f8bcc9a197a1988d04071eb485328d66fb7\n"
    },
    {
      "commit": "c565e1d3cea6f8db4fa0371b3cdb9fe11dbf4483",
      "tree": "3dddff584652550eb8eb7a53482cc24a79b210f4",
      "parents": [
        "e19fa20ca5a1e6f5c7fd95ed8990923a01185f92"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Wed Dec 14 15:38:56 2016 +0000"
      },
      "committer": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Fri Jan 20 20:22:16 2017 +0000"
      },
      "message": "Implement TextClassification system service.\n\n- This service provides the TextClassificationManager access to the\n  classification model file.\n  See: Icb82b707c9c1b4dcb739f44d888bbc43bc3b03bb\n- This service is started at boot time.\n  See: Ie4a597bc5c6c4140afbcf7feaa9dd237a3fd5fef\n\nTest: Manually tested. Also see: Ic2a5eceeaec4cd2943c6c753084df46d30511fee\nBug: 32503402\nChange-Id: Ic428d00f291e268211866b3fc6b7acbc3eb04e1e\n"
    },
    {
      "commit": "389b853bc88fd77a7dceecbb9fb02c0c05d90e6a",
      "tree": "5b04e5c30c0f3bdc4e38b7da6060841c844adfbc",
      "parents": [
        "1fee3a64b7c673364a6288068fff5fd049b7e9b4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 02 12:17:21 2016 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jan 18 19:08:35 2017 +0900"
      },
      "message": "DO NOT MERGE: Switch over to new \"time.android.com\" NTP pool.\n\nAlso add logging to measure success/failure details.\n\nTest: builds, boots, and NTP fix obtained\nBug: 32969463\n\n(cherry picked from commit d3f689bf14a05de735b5cc92dcf20e7226c78690)\n\n(cherry picked from commit dda938a698a17b2943bbe78f6631a26dedabf28a)\n\nChange-Id: I67e4f54f8f2ec69b6522fbbe06ef196b1084f44a\n"
    },
    {
      "commit": "40e4645e6e564b962bb73c85c5325ec54ad34cc1",
      "tree": "f922e3a77dd5c52809942b82109ffd9ee2ac7f86",
      "parents": [
        "7d13f29b128b1cc572025a5f248559bb50c4be3a"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Dec 16 18:38:53 2016 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jan 17 11:45:41 2017 -0800"
      },
      "message": "Rewrite FingerprintService to use HIDL 2.1\n\nBug: 33199080\nTest: Fingerprint enroll, remove, unlock, fingerprint arbitration.\n\nChange-Id: I8b98236ba81f053527ee74c8a189af1adfd17d55\n"
    },
    {
      "commit": "6d553874bed06280766ae24ea605f9bbde3f5a4a",
      "tree": "4ba8338d6c7850b177104dab4ec0ea6b72016cff",
      "parents": [
        "e961992ed313ea1c733500d9b66f1af5349b59b2"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Dec 08 17:13:25 2016 -0800"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue Jan 10 12:50:47 2017 -0800"
      },
      "message": "YAMAFFR - Yet Another Major AutoFill Framework Refactoring\n\n- Explicitly split View methods into Assist and AutoFill methods, rather\n  than use an overloaded method that takes flags.\n- Simarly, renamed ASSIST_FLAG_SANITIZED_TEXT and\n  ASSIST_FLAG_NON_SANITIZED_TEXT flags to\n  AUTO_FILL_FLAG_TYPE_FILL and AUTO_FILL_FLAG_TYPE_SAVE respectively.\n- Created a AutoFillUI class to host the auto-fill bar and other UI\n  affordances.\n- Moved the temporary notifications to AutoFillUI (eventually that\n  class will host the real UI).\n- Moved FillData to android.app.view.autofill package.\n- Split IAutoFillCallback in 2 (IAutoFillAppCallback and\n  IAutoFillServerCallback, residing at the app and system_server\n  respectively), so service cannot fill the app directly (which lets\n  the framework control the UI).\n- Moved assist\u0027s IResultReceiver to AutoFillServiceImpl so\n  system_server can act as a mediator between the AutoFillService\n  implementation and the app being auto-filled.\n- Replaced FillData and FillableInputFields by a bunch of new objects:\n  - FillResponse contains a group of Datasets, each representing\n  different values\n    that can be used to auto-fill an activity (for example, different\n    user accounts), optional id of fields the service is interested\n    to save, and an optional bundle for service-side extras.\n  - Dataset contains a name, Fields, and an optional bundle for\n    service-side extras.\n  - Fields contain an AutoFillId (parcelable) and a value (Bundle)\n- Changed the temporary notifications to emulate the new workflow:\n  - Initial notification requests the auto-fill data but do not\n    auto-fill.\n  - Once service calls back, a new notification is shown with the\n    results.\n  - Then if the user selects a dataset, the activity is auto-filled\n    with it.\n  - It also shows a notification to emulate what can be saved.\n- Created an VirtualViewDelegate for views that uses a virtual\n  hierarchy for assist data.\n- Added new methods on ViewStructure to add children with virtual ids.\n- Added 2 methods on View to support auto-fill:\n  - autoFill(Bundle) to auto-fill the view.\n  - getAutoFillType() to return how the view can be auto-filled.\n- AutoFillType defines the input fields that support auto-fill:\n  - Text fields (like EditText)\n  - Toggle fields (like CheckBox)\n  - Lists (like RadioGroup)\n- AutoFillType can also have a sub-type representing its semantic (for\n  now only text fields have it, and it\u0027s the same as getInputType()).\n- etc :-)\n\nBug: 31001899\nTest: manual verification\nChange-Id: I2dd2fdedcb3ecd1e4403f9c32fa644cb914e186f\n"
    },
    {
      "commit": "9f7fd6c734527b33e40a9f0d8199c961d52694bb",
      "tree": "50c01c90b2910a26a61c420a61b83ea1758d2906",
      "parents": [
        "955da4804e7cc940e7aed93cb2ab1774e5f1cb03",
        "03533715295154f0bb66f84b7c25832d21156805"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Tue Jan 10 16:20:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 10 16:20:13 2017 +0000"
      },
      "message": "Merge \"API improvements for creating NotificationChannels\""
    },
    {
      "commit": "8dedad31f7fa604028ee6d28963bcc564e76c467",
      "tree": "56b0761b6cc37c6e56b639358edde3d7efb6db00",
      "parents": [
        "bd439dcef072fd9a853a6bc9055cfa347ad7c969"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 09 18:21:21 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 09 22:30:58 2017 -0700"
      },
      "message": "Wire up storage stats API to installd.\n\nNow that installd has the implementation details we need, we can wire\nup the public APIs to use them.\n\nShuffle APIs around a bit so that StorageStats can be reused for both\nUID and UserHandle results, and rename StorageSummary to\nExternalStorageStats.  Provide getTotalBytes() and getFreeBytes() as\nfirst-class methods so we can answer those questions quickly without\npaying the cost of measuring external storage details.\n\nCurrent costs on a typical device with a test account after flushing\ndentry caches:\n\nqueryStatsForUid() manual: 6922ms\nqueryStatsForUid() quota: 525ms\n\nqueryStatsForUser() manual: 1686ms\nqueryStatsForUser() quota: 113ms\n\nqueryExternalStatsForUser() manual: 42ms\nqueryExternalStatsForUser() quota: 2ms\n\nFor verification purposes, a new \"fw.verify_storage\" system property\ncan be set to compute both manual and quota statistics, and log any\ndiscrepancies.\n\nTest: builds, boots\nBug: 27948817, 32206268\nChange-Id: I4ea3df3372a7379aa8cf4c20c44120c8f0702c15\n"
    },
    {
      "commit": "03533715295154f0bb66f84b7c25832d21156805",
      "tree": "c4e1d1632a5c86e1a22c97152dc1a2d019b4fb3e",
      "parents": [
        "92b504cb9e3feb94d1bcd7e987e0ba97ee5d0fc7"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Thu Jan 05 10:30:07 2017 -0500"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Fri Jan 06 16:13:04 2017 -0500"
      },
      "message": "API improvements for creating NotificationChannels\n\nRemove listener for aysnchronous operation.\nAllow multiple channel creation from a single call.\nSilently no-op for creating existing channels.\n\nTest: runtest systemui-notification\nChange-Id: Ibc1340d21efa0c12d126bee437adcbb99141e86a\n"
    },
    {
      "commit": "e8cece9f2010388e02d8f4b3150f25168f8b7d76",
      "tree": "d71c47bdfd720ca9c7d2bf35a24c82c2c2de9ba0",
      "parents": [
        "c9facc0a1f6f3facb7d67ddae9b8a04af78dad0c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 04 11:33:33 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 05 15:39:16 2017 -0700"
      },
      "message": "Initial API shape for storage statistics.\n\nThis API is designed to provide both UID-level stats and overall\nsummary data for a given storage device, as identified by UUID.\n\nThe use of UID-level granularity might appear a bit clunky, but it\nmatches other usage statistics (such as network and battery), and it\nallows us to implement it using an extremely fast quota kernel\nfeature.\n\nA future CL will wire up the implementation to installd.\n\nTest: builds, boots\nBug: 32206268\nChange-Id: I7b51877682d0370c2402c19346f57809f0e7ac53\n"
    },
    {
      "commit": "48e6745a08e6b89a91afd43809948c47b08b0367",
      "tree": "091a46a4623b45f13ac719eea79fe173eb4173e5",
      "parents": [
        "c519b8d83ef043e01ace1b2dd2c39b1cbf57d258",
        "48738f5ad07b71066a74766a3a066dd10c45f027"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Thu Dec 29 20:08:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 20:08:38 2016 +0000"
      },
      "message": "Rename the Bluetooth profile classes for HID Device role. am: 0afe190af5 am: 94e3d3f499 am: 91ab2e2f98\nam: 48738f5ad0\n\nChange-Id: I15651c5a6e3baf53d915626ea6c55180fefe28b5\n"
    },
    {
      "commit": "c519b8d83ef043e01ace1b2dd2c39b1cbf57d258",
      "tree": "bf3c0d2d1c054349a23383635c88d989f23c22ad",
      "parents": [
        "9d621c4977df2319294843b7989a643c7bfcf720",
        "a9c92c2442db2775173136148f09f8e93385543e"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Thu Dec 29 20:07:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 20:07:51 2016 +0000"
      },
      "message": "Bluetooth: Add support for HID Device Role am: e88fd4b594 am: ee469c6fe9 am: 1ee22b7f70\nam: a9c92c2442\n\nChange-Id: I56625e00b1b6c2b7b11e4ce4dc3038072ef6c231\n"
    },
    {
      "commit": "48738f5ad07b71066a74766a3a066dd10c45f027",
      "tree": "30fdc95d18104f0c9af0f428c2706ff12fd6d477",
      "parents": [
        "a9c92c2442db2775173136148f09f8e93385543e",
        "91ab2e2f983eddee138bd7f577c5659e0e610fdc"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Thu Dec 29 20:00:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 20:00:09 2016 +0000"
      },
      "message": "Rename the Bluetooth profile classes for HID Device role. am: 0afe190af5 am: 94e3d3f499\nam: 91ab2e2f98\n\nChange-Id: If0e072e96491020191a7742928cc90adff151342\n"
    },
    {
      "commit": "a9c92c2442db2775173136148f09f8e93385543e",
      "tree": "d904538910482bdc82a9dfda5bf14ebe22b6d5c6",
      "parents": [
        "b5a5a516237a42c17df9366cbf7e6a2b2c8465d1",
        "1ee22b7f7050db257572d9c1a2cb0355c2881c6c"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Thu Dec 29 19:59:28 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 19:59:28 2016 +0000"
      },
      "message": "Bluetooth: Add support for HID Device Role am: e88fd4b594 am: ee469c6fe9\nam: 1ee22b7f70\n\nChange-Id: Ia82f834d4d2ad800574bb0317f4fb3b3786972fc\n"
    },
    {
      "commit": "91ab2e2f983eddee138bd7f577c5659e0e610fdc",
      "tree": "63a0300734cb0f697eda19c25c675c3b7b230e7a",
      "parents": [
        "1ee22b7f7050db257572d9c1a2cb0355c2881c6c",
        "94e3d3f499b8e6eaf25db3dc4975004960043081"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Thu Dec 29 19:46:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 19:46:55 2016 +0000"
      },
      "message": "Rename the Bluetooth profile classes for HID Device role. am: 0afe190af5\nam: 94e3d3f499\n\nChange-Id: I97ff93fd2564bd76d90095f8086f79c6c6086aff\n"
    },
    {
      "commit": "1ee22b7f7050db257572d9c1a2cb0355c2881c6c",
      "tree": "93462dcbc558e1014fd83ff947672b5075b11c28",
      "parents": [
        "2c29250b443d1ed263889a19453d3d462c7fbc24",
        "ee469c6fe9a91877fa9427bc5135cbec20fe1af6"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Thu Dec 29 19:46:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 19:46:08 2016 +0000"
      },
      "message": "Bluetooth: Add support for HID Device Role am: e88fd4b594\nam: ee469c6fe9\n\nChange-Id: Ic48911d254671d402f5a6b8198109f28e6497036\n"
    },
    {
      "commit": "94e3d3f499b8e6eaf25db3dc4975004960043081",
      "tree": "0934e86c3008070d8f10f684dab47945167f0d4a",
      "parents": [
        "ee469c6fe9a91877fa9427bc5135cbec20fe1af6",
        "0afe190af52d83c5e52fa994e53c48e33e8e3bf4"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Thu Dec 29 19:38:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 19:38:41 2016 +0000"
      },
      "message": "Rename the Bluetooth profile classes for HID Device role.\nam: 0afe190af5\n\nChange-Id: Ib5c9b904da57048d719df504142edd3dab0e6ec3\n"
    },
    {
      "commit": "ee469c6fe9a91877fa9427bc5135cbec20fe1af6",
      "tree": "388e201c216cd4686a527ebd208c8ca27bc0e9e1",
      "parents": [
        "fd770e1cb8e08accb3b3fb0f79af1336a1ec86ed",
        "e88fd4b5940a855e961cffa36e93f844a44cd2d4"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Thu Dec 29 19:37:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 29 19:37:58 2016 +0000"
      },
      "message": "Bluetooth: Add support for HID Device Role\nam: e88fd4b594\n\nChange-Id: Ic2a82d5670ffbd3046766d73ed9b180546c59169\n"
    },
    {
      "commit": "0afe190af52d83c5e52fa994e53c48e33e8e3bf4",
      "tree": "9160d8c5818a628916337193a9cc377506be9227",
      "parents": [
        "e88fd4b5940a855e961cffa36e93f844a44cd2d4"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Fri Dec 23 11:52:21 2016 +0000"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Dec 29 14:30:40 2016 +0000"
      },
      "message": "Rename the Bluetooth profile classes for HID Device role.\n\nWe already have BluetoothInputDevice class, so adding something\ncalled BluetoothHidDevice seems confusing. On the other hand,\nthe new class is designed to connect to HID Host devices, so\nnaming it BluetoothInputHost makes sense and goes in line with\nthe existing BluetoothInputDevice.\n\nThe same goes for the new constant HID_DEVICE that is just as\nconfusing to have together with the INPUT_DEVICE one.\n\nThis CL also renames the \"connection state changed\" broadcast\n(for the same reasons), declares it as an SDK constant, and also\nadds some javadoc to it.\n\nNote that BluetoothHidDeviceApp* classes remained unchanged, as\nthose correspond to the app that implements the Device (and\nconnects to the Host).\n\nTest: make\nChange-Id: I5075ca5b97db3c1dd403c2e9660eecc7380cffe2\n"
    },
    {
      "commit": "e88fd4b5940a855e961cffa36e93f844a44cd2d4",
      "tree": "dd494f6a65e8a1edd003041ffde2ec6301ea5426",
      "parents": [
        "895e2d7a405e9224515b6564ab4700aad3b0abf1"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Fri Apr 18 11:22:45 2014 +0530"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Dec 29 14:29:53 2016 +0000"
      },
      "message": "Bluetooth: Add support for HID Device Role\n\nThis patch adds the HID Device Role support in Bluetooth framework.\nAlso AIDL and callback related files for HID Device role are added\nto provide interface for third party applications to communicate with\nHID Device Service.\n\nChange-Id: Id03a362b7bcfa2e76056fa0197eaac12ce49b5a2\n"
    },
    {
      "commit": "292a6a4e9934a94eea97b018befde3baed895f7d",
      "tree": "ccef5b540cc0d4fcdde69ef86047a71462ee7681",
      "parents": [
        "fe9a2a799f0f388c7c531454b8ec964ed8497499"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 01 08:32:15 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 21 13:58:08 2016 -0800"
      },
      "message": "Notification of playback activity\n\nAudioService keeps track of status of implementations of PlayerBase.\nAudioService\u0027s PlaybackActivityMonitor maintains a list of\n  playback configurations for each PlayerBase, and a list\n  of clients that want to receive updates about the playback.\nPlayback activity clients can query the playback configuration\n  of the system through AudioManager, or register a callback\n  for updates. For clients with MODIFY_AUDIO_ROUTING permission\n  (system), the playback configurations contain more information\n  about each player (player type, uid, pid, state), and can see\n  all players, not just the \"active\" ones. The act of stripping\n  off data about the players that is not supposed to be seen\n  by non-system clients, is referred to as \"anonymization\". It\n  is implemented in system server, so no system data is ever\n  sent to playback activity clients without system permission.\nMore information about the AudioPlaybackConfiguration is\n  available in the SystemApi (uid, pid, player type, player state).\n\nTest: run cts -m CtsMediaTestCases -t android.media.cts.AudioPlaybackConfigurationTest\nBug: 30955183\n\nChange-Id: I85997594c0378216419f5f0fdaa0714996fd3573\n"
    },
    {
      "commit": "1754d744a7a34731ffc07af1bc3dbfcb06864ab0",
      "tree": "8596241d2c9ccfb1b1748e3a5a37f2befa155a87",
      "parents": [
        "de5b027d2cbd430ef5007911cd73084c081afaab"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 21 17:51:35 2016 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Dec 15 11:23:05 2016 -0800"
      },
      "message": "First checkin of incident reporting.\n\nThere are a few major pieces here:\n\nincidentd\n---------\nThis daemon (started by init) runs and accepts incoming requests to take\nincident reports.  When prompted, it calls into various system services\nand fills in an IncidentProto data structure, and then writes the report\ninto dropbox.\n\nThe next steps for incidentd:\n    - Security review of SELinux policies. These will be a subset of\n      the dumpstate permissions.  Until this is done, incidentd is\n      not started at boot time.\n\nincident\n--------\nThis shell command calls into incidentd, and can initiate an incident\nreport and either capture the output or leave for dropbox.\n\nincident_report\n---------------\nThis host side tool can call adb shell with the correct parameters\nand also format the incident report as text.  This formatting code\nwas left of the device on purpose.  Right now it\u0027s pretty small, but\nas the number of fields increases, the metadata and code to do the\nformatting will start to grow.\n\nThe incident_report command also contains a workaround to let it\nwork before incidentd is turned on by default.  Right now, it is\nimplemented to call adb shell dumpsys \u003cservice\u003e --proto directly,\nwhereas in the future it will go through the full incidentd flow.\n\nincident_section_gen\n--------------------\nA build-time tool that generates a stripped down set of information\nabout the fields that are available.\n\nlibincident\n-----------\nThis library contains the code to connect to incidentd, and the\nmeta proto definitions that are used by the framework protos.\nThe basics are here now, but they are not fully fleshed out yet.\nThe privacy.proto file contains annotations that can go in the\nproto file that we will later use to filter which fields are\nuploaded, and which are used by local sources.  For example, a\ndevice in a test lab is safe to upload much much more information\nthan a real user.  These will share the same mechanism, but the\nuser\u0027s output will be filtered according to these annotations.\n\nframeworks/core/proto\n---------------------\nThese .proto files contain the definitions of the system\u0027s\noutput.  There is one master android.os.IncidentProto file that\nis the top level of an incident report, but some other services\n(notification, fingerprint, batterystats, etc) will have others\nthat are used directly by the logging mechanism.\n\nOther files which are shared by several of the services also go\nhere, such as ComponentName, Locale, Configuration, etc.  There\nwill be many more.\n\nThere is also a first iplementation of a dump method handling\n--proto in the fingerprint service.\n\nIncidentManager\n---------------\nThe java API to trigger an incident report.\n\nTest: Not written yet\nChange-Id: I59568b115ac7fcf73af70c946c95752bf33ae67f\n"
    },
    {
      "commit": "ab99c11c55c82e39a601a0b6f59005011f9fa109",
      "tree": "94f09bcaefeb06033dc86eca3ab51ea9bfa202a1",
      "parents": [
        "9cf894cd4ebf5cc6a07c7c7b9a2f9cd9298c1b11",
        "2d895c3efd625e09e9f2cc4d0c7131b34f52f154"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Dec 15 17:59:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 15 17:59:39 2016 +0000"
      },
      "message": "Merge \"ShortcutManager: direct pin shortcut support.\""
    },
    {
      "commit": "bf46e6b2e15cf7bb790c0fd13126640f26c11a9e",
      "tree": "9c27e3afc9137766ba833f3fe2b5255b4446e84f",
      "parents": [
        "9ed3a080e866c087af725e0b6abda026c83a9aa8",
        "e9be5d908d32d67db9968a9ff12c37b579149bf7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Dec 14 15:22:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 15:22:43 2016 +0000"
      },
      "message": "Copy core-junit files into legacy-test. am: cd7c34d8bf am: 98e609d556 am: c3650beee5\nam: e9be5d908d\n\nChange-Id: I826ea0752c64b39f3cb9c96a6a33c0f2c4fad98b\n"
    },
    {
      "commit": "e9be5d908d32d67db9968a9ff12c37b579149bf7",
      "tree": "3569cd4f77ade93ad673e71ab766720bdb734bfe",
      "parents": [
        "61a967a3f07f5b78737d6fffb93e88c950ac8ad6",
        "c3650beee54c4406d307449548738c78d56fd099"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Dec 14 15:15:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 15:15:51 2016 +0000"
      },
      "message": "Copy core-junit files into legacy-test. am: cd7c34d8bf am: 98e609d556\nam: c3650beee5\n\nChange-Id: I04560b5982651d175a268056f32eb36980ef2259\n"
    },
    {
      "commit": "c3650beee54c4406d307449548738c78d56fd099",
      "tree": "72d06da6cb2c0a8a6e21d7d472d9626635bc23b2",
      "parents": [
        "49a848e46fcf30d768c677546dfe32fdc84509e0",
        "98e609d55607e4ff0c669398d33ab45ba31d6153"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Dec 14 15:09:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 15:09:22 2016 +0000"
      },
      "message": "Copy core-junit files into legacy-test. am: cd7c34d8bf\nam: 98e609d556\n\nChange-Id: I4eb422f8fe217e5528e632d1f85c1303604b0d64\n"
    },
    {
      "commit": "98e609d55607e4ff0c669398d33ab45ba31d6153",
      "tree": "1b6307ebe004e8c3ea8b427c2d56214127785aaa",
      "parents": [
        "5d53a925a17b0629e1e8ddded614a88554b2f92a",
        "cd7c34d8bf4302e640c742d7bb94107cc1505aff"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Dec 14 15:02:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 15:02:16 2016 +0000"
      },
      "message": "Copy core-junit files into legacy-test.\nam: cd7c34d8bf\n\nChange-Id: I672fa4b006b04db5a4c8f86793f1c891bc55754a\n"
    },
    {
      "commit": "cd7c34d8bf4302e640c742d7bb94107cc1505aff",
      "tree": "6cdb06c518b7dcff1be867ce2a86bf5e20ccd4e3",
      "parents": [
        "3e24af3eb760afafdc1a704a0c3e9f42db2e6475"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 12 16:35:36 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Dec 14 14:19:08 2016 +0000"
      },
      "message": "Copy core-junit files into legacy-test.\n\nThe legacy-test directory contains part of the Android API and\nso must maintain backwards compatibility. The junit classes that\nare in the API are copied here to ensure that they do not change\nwhen external/junit is upgraded.\n\nBug: 30188076\nTest: make checkbuild and checked legacy-test contents\nChange-Id: I6c263afc16c06abfd027334be51a41422239a189\n"
    },
    {
      "commit": "d1c710d5cff55b632e91d95cdba158bbc3879bc8",
      "tree": "7d60dd7d5534a00dfd9fa666c74eded24a628f7a",
      "parents": [
        "b2e8690507f64f935d20a7ce75cefbaf6cf2c160",
        "4c47adef60ca0326bdbe124dfdd335382e5c0787"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Dec 14 10:51:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 10:51:33 2016 +0000"
      },
      "message": "DO NOT MERGE [DPM] Management and retrieval of network logs\nam: 4c47adef60\n\nChange-Id: I39486c9d6116023f1ee9bd576b7fcd0fe20023a1\n"
    },
    {
      "commit": "b2e8690507f64f935d20a7ce75cefbaf6cf2c160",
      "tree": "b24164c2c50011d024ad3decd4b7f8b03f4a0578",
      "parents": [
        "7efe982f0f92e679209e7cd2cd5b39e8958c7e73",
        "c3abd34cfed63d5b71366901d19f6d9cd8319306"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Dec 14 10:50:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 14 10:50:36 2016 +0000"
      },
      "message": "DO NOT MERGE [DPM] DO can start network logging and listen for events\nam: c3abd34cfe\n\nChange-Id: I7952d67d22a141040f3ee3ac2b6c3aa2cfccbbf7\n"
    },
    {
      "commit": "2d895c3efd625e09e9f2cc4d0c7131b34f52f154",
      "tree": "800554eac2ef7e92319221afa71eb68d1c143ecc",
      "parents": [
        "54365465897a0fbb2d61c3fb2460698384328ad4"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Dec 02 15:48:40 2016 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Dec 13 09:56:03 2016 -0800"
      },
      "message": "ShortcutManager: direct pin shortcut support.\n\nTest: Manual test and all the unit tests:\nadb shell am instrument -e class com.android.server.pm.ShortcutManagerTest1 -w com.android.frameworks.servicestests\n... to test8\n\nBug 32908854\n\nChange-Id: I11b81656959cccfb4efa83f08380b915e6eb84a6\n"
    },
    {
      "commit": "4c47adef60ca0326bdbe124dfdd335382e5c0787",
      "tree": "88884ded0fe7a064c3f8da5baeb532ee87f6676b",
      "parents": [
        "c3abd34cfed63d5b71366901d19f6d9cd8319306"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Oct 12 16:40:06 2016 +0100"
      },
      "committer": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Tue Dec 13 17:19:22 2016 +0000"
      },
      "message": "DO NOT MERGE [DPM] Management and retrieval of network logs\n\nThis CL follows up on ag/1530343 and adds:\n1) Various network events.\n2) Retrieval method in DPM and APIs in DeviceAdminReceiver.\n3) Extension of NetworkLogger and it\u0027s NetworkLoggingHandler.\n\nTest: runtest --path frameworks/base/services/tests/servicestests/src/com/android/server/devicepolicy/NetworkEventTest.java\nBug: 29748723\nChange-Id: I42a1a477e7c75c109a3982f809c22732b814e8b2\n"
    },
    {
      "commit": "c3abd34cfed63d5b71366901d19f6d9cd8319306",
      "tree": "4d70254c61562222b7e993ca80e0c9a77c3603e4",
      "parents": [
        "c5700918aae3e8dee10418adfa9f3439724787d5"
      ],
      "author": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Wed Oct 12 14:59:26 2016 +0100"
      },
      "committer": {
        "name": "Michal Karpinski",
        "email": "mkarpinski@google.com",
        "time": "Tue Dec 13 17:15:38 2016 +0000"
      },
      "message": "DO NOT MERGE [DPM] DO can start network logging and listen for events\n\nThis CL adds:\n1) Setter and getter in DPM to manipulate logging switch (retrieval\nmethod to come in a subsequent CL(s)).\n2) A way for DPM to register to listen for events.\n3) Skeleton of NetworkLogger class (more to come in subsequent CL(s)).\n\nBug: 29748723\nChange-Id: I5c04662ccc6febd2ba294b0eaca1ed1da9c16e47\n"
    },
    {
      "commit": "c5b56942024a3211234cf35fed44e3e732143947",
      "tree": "a9ba3717cad5816144e4f795a728d71a7b5c375a",
      "parents": [
        "3e51510960e78b060bc69bd1bdcc1fa31898e38c",
        "7797e545239e81a9216994527badcc98178ebfcc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 10 16:29:23 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 10 16:29:23 2016 -0700"
      },
      "message": "Merge commit \u00277797e545239e81a9216994527badcc98178ebfcc\u0027 into dec10\n\nChange-Id: I430a39241bd2d278eaf1e01b89be3ad368789f6d\n"
    },
    {
      "commit": "9ff67746e60ce9e49d7c21e2af087c081873c544",
      "tree": "ba26df0b146b2aef763d994b0487f5313dbb6405",
      "parents": [
        "6952303c285028ba00c76f10865fa518eaca9dd2",
        "104fd011b22b62e7bf45ccbd82b4d9537631e7c7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 10 23:07:59 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 10 23:07:59 2016 +0000"
      },
      "message": "Merge \"Final push of installd to Binder; goodbye socket!\" am: 1950377f91\nam: 104fd011b2\n\nChange-Id: I4b2ae2329e8842def8682199c5ee8544c22c2be4\n"
    },
    {
      "commit": "104fd011b22b62e7bf45ccbd82b4d9537631e7c7",
      "tree": "850824aa556500bdf01611b7a4308e4fac192b1f",
      "parents": [
        "dc017c4e49a8c9899d2115d7a2a519107a83aa67",
        "1950377f9163c1bd84832c960bbed73b31c2fe85"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 10 23:01:59 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 10 23:01:59 2016 +0000"
      },
      "message": "Merge \"Final push of installd to Binder; goodbye socket!\"\nam: 1950377f91\n\nChange-Id: If10d4f4aafa68b78ddd9a98e8699fe008bbda49b\n"
    },
    {
      "commit": "740f523b2571d1c4eb4a954e1faedea45dd7fa53",
      "tree": "dc80945193278aee84829e99139af8e336c68cb4",
      "parents": [
        "d7b144a5e9dc1d4eead6ee3b66afd63b4bec8c67"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 09 14:31:26 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 09 15:30:34 2016 -0700"
      },
      "message": "Final push of installd to Binder; goodbye socket!\n\nMove last two straggling installd commands to Binder and destroy the\nsocket-based communication channel forever.\n\nTest: builds, boots, apps install fine, pre-OTA dexopt works\nBug: 13758960, 30944031\nChange-Id: I9afb9f71858febde34a94f53839b2986493b68a0\n"
    },
    {
      "commit": "e03b8124d0a940e7b16be03257f55618d156fdab",
      "tree": "b8271bb8e098f915e3c34ea70ed194977837c2ce",
      "parents": [
        "f8145c9f3f19cf71aecb96a1d49e567feb24e296",
        "22f02b3e4acd7c6983f4d4d58b85069d5ec920ab"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Fri Dec 09 15:23:05 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 09 15:23:08 2016 +0000"
      },
      "message": "Merge \"Accept adjustments from notification assistant.\""
    },
    {
      "commit": "7e28011feabb613cbff3e28ae8134f6190f9dba3",
      "tree": "fc24cf5b109ab0269f7d13748d978241873a3efc",
      "parents": [
        "accb2854d1037703d82167af5c4393e628835e87",
        "28b617bdea359addf8057213abef4b6c5ac02495"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 09 15:10:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 09 15:10:10 2016 +0000"
      },
      "message": "Merge \"Move android.test classes from core/java to legacy-test/src\" am: 2761ed124a\nam: 28b617bdea\n\nChange-Id: I83a6ce6c329e7eb18ee90689682c30d4a73d7f8e\n"
    },
    {
      "commit": "28b617bdea359addf8057213abef4b6c5ac02495",
      "tree": "902ebc36f01f87b336c0dbe72ee509ba409f5088",
      "parents": [
        "4180078d0df0ef7205847d03f07fd7c160dbd1e2",
        "2761ed124ad7e54a99d70078121229ce942075a0"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 09 15:05:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 09 15:05:06 2016 +0000"
      },
      "message": "Merge \"Move android.test classes from core/java to legacy-test/src\"\nam: 2761ed124a\n\nChange-Id: I0009b93ff096456d7f5fd5f83e71fd4b9bff31db\n"
    },
    {
      "commit": "2761ed124ad7e54a99d70078121229ce942075a0",
      "tree": "f9e1b928bafb46ea6319e57886da5909acc86c7f",
      "parents": [
        "a44c833042ded18df5c1779396f74282b61f9a33",
        "df2576045e0edbed05bf4511e0e9ba1038b8f3bb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 09 14:56:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 09 14:56:37 2016 +0000"
      },
      "message": "Merge \"Move android.test classes from core/java to legacy-test/src\""
    },
    {
      "commit": "dda938a698a17b2943bbe78f6631a26dedabf28a",
      "tree": "01359931c5903022e34e6159263ef20911253a0c",
      "parents": [
        "dadf6caf9f2a8c360203a3f141a8c1366159ec4d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 02 12:17:21 2016 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Dec 09 13:59:18 2016 +0900"
      },
      "message": "DO NOT MERGE: Switch over to new \"time.android.com\" NTP pool.\n\nAlso add logging to measure success/failure details.\n\nTest: builds, boots, and NTP fix obtained\nBug: 32969463\n\n(cherry picked from commit d3f689bf14a05de735b5cc92dcf20e7226c78690)\n\nChange-Id: I7da416099ae903fd92beb516251ef4e51673eecf\n"
    },
    {
      "commit": "df2576045e0edbed05bf4511e0e9ba1038b8f3bb",
      "tree": "c2f71972c597a374f97425ab16fcc26471140cff",
      "parents": [
        "b92aa5bdfde63e56f1e1e63fbe913638c440ffba"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 30 13:29:39 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Dec 08 14:55:35 2016 +0000"
      },
      "message": "Move android.test classes from core/java to legacy-test/src\n\n(cherry picked from 2395179afb2ea957a9ba66404021c14160361611)\n\nBug: 30188076\nTest: make checkbuild\nMerged-In: Ifa291909fcf47da788627b496bd72f54efd78ed7\nChange-Id: Ie20dceb9f89df245ed6da5fc2fb06185bd7b104b\n"
    },
    {
      "commit": "2395179afb2ea957a9ba66404021c14160361611",
      "tree": "53d28f10a2f8edb0baa3a046afa04bfbe1c270aa",
      "parents": [
        "3c41744b8cab0eb540dee45a7f986bf25d78188e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 30 13:29:39 2016 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Dec 08 14:49:35 2016 +0000"
      },
      "message": "Move android.test classes from core/java to legacy-test/src\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ifa291909fcf47da788627b496bd72f54efd78ed7\n"
    },
    {
      "commit": "22f02b3e4acd7c6983f4d4d58b85069d5ec920ab",
      "tree": "a53764f473c32ad7f8878746d56d9ecd8d215d6d",
      "parents": [
        "56cbe002c09edcf2025c975fc2f4aeee032fc925"
      ],
      "author": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Thu Dec 01 15:05:13 2016 -0500"
      },
      "committer": {
        "name": "Julia Reynolds",
        "email": "juliacr@google.com",
        "time": "Wed Dec 07 12:51:16 2016 -0500"
      },
      "message": "Accept adjustments from notification assistant.\n\nTest: runtest systemui-notification \u0026 cts in same topic.\nChange-Id: Icff1f89eac32b82d583eca24b0a15f67795912a1\n"
    },
    {
      "commit": "33e8de479ab373767ef38de24c17aec326281c52",
      "tree": "926160bea7dbf453c5a5bb2fca9d4111c732621d",
      "parents": [
        "d917e23bbb8bda95f9ce512b1446f15926868454",
        "2b57c69e258f4f5254c1c42d4241aaac7df6654c"
      ],
      "author": {
        "name": "Jeremy Joslin",
        "email": "jjoslin@google.com",
        "time": "Wed Dec 07 00:05:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Dec 07 00:05:29 2016 +0000"
      },
      "message": "Merge \"API for requesting network recommendations.\" am: 800a4e753e\nam: 2b57c69e25\n\nChange-Id: I8f2357942919193a22e97e4f1d9ec415b736565c\n"
    },
    {
      "commit": "2b57c69e258f4f5254c1c42d4241aaac7df6654c",
      "tree": "35a57c84d9810438a92cb7036cab3bba96580a5b",
      "parents": [
        "19426fef23de12470599f84261632d20f2944b10",
        "800a4e753e991ea23b4c72568b3150b8c232aa6a"
      ],
      "author": {
        "name": "Jeremy Joslin",
        "email": "jjoslin@google.com",
        "time": "Tue Dec 06 23:58:13 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 06 23:58:13 2016 +0000"
      },
      "message": "Merge \"API for requesting network recommendations.\"\nam: 800a4e753e\n\nChange-Id: Icda431682a283051d4f5f5052dc70b8ab8e01dc9\n"
    },
    {
      "commit": "82834baa358f55acb542e17da828b2d497cf8332",
      "tree": "35a57c84d9810438a92cb7036cab3bba96580a5b",
      "parents": [
        "800a4e753e991ea23b4c72568b3150b8c232aa6a",
        "5b9b0db9f8532aea7c907d3f5ac8b7808b46c1c7"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Dec 06 15:17:16 2016 -0800"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Dec 06 15:17:16 2016 -0800"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\n"
    }
  ],
  "next": "d1daf6d22aeb502c0f94261f3421999c2da6ee51"
}
