)]}'
{
  "log": [
    {
      "commit": "f94b4936b40dab2b56cf97185b1257e0abb3d5fd",
      "tree": "751e73a1487ff8016ef7c26386122c3a3b809d76",
      "parents": [
        "52ecba88d181e64da8bd16f7e2d771812bd8a25b"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon May 21 16:09:32 2018 -0700"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon May 21 17:40:56 2018 -0700"
      },
      "message": "Marks deprecated StatsManager APIs.\n\nMarking some API\u0027s as deprecated, so users avoid getting confused.\n\nTest: Test that build works.\nBug: 80099023\nChange-Id: I4b3d4e4fa1ee3d706e49b8180aa4d0ad0e7d6eeb\n"
    },
    {
      "commit": "2776ed56b846ff34e45467f7618a679049d16f3f",
      "tree": "19921e59ac06c3e0d9995ba90b7f2a74a7a009af",
      "parents": [
        "13d650d7cfbc328a3d02b9a252646252cacfac9e"
      ],
      "author": {
        "name": "fionaxu",
        "email": "fionaxu@google.com",
        "time": "Tue May 08 11:57:53 2018 -0700"
      },
      "committer": {
        "name": "fionaxu",
        "email": "fionaxu@google.com",
        "time": "Tue May 08 15:25:40 2018 -0700"
      },
      "message": "add install action for carrier id to system API\n\nBug: 79426800\nTest: Manual\nChange-Id: Icd3e9ae527dc17ab5762aa57df596f058de08d5b\n"
    },
    {
      "commit": "3990ee1c9fcd8f801220edec94e6bef3009809b5",
      "tree": "c6812678c94be38c009d8b6070cf0514c56ae0fd",
      "parents": [
        "10fb6582eb9c0e84938af9a2be0017e35eb59c5e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 10:19:55 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 13:49:21 2018 -0600"
      },
      "message": "Clean up APIs before declaring API 28.\n\nAs part of finalizing an SDK, we need to ensure that no new APIs are\nmarked @Deprecated, since they\u0027re typically cleanup that someone\nforgot to finish.\n\nSomeone forgot to replace Slice.getTimestamp() with Slice.getLong().\n\nBug: 77588754\nTest: builds, boots\nExempt-From-Owner-Approval: SDK finalization\nChange-Id: Ic0ec91a43d161a69c1e840c42046ad500b7aeca0\n"
    },
    {
      "commit": "10fb6582eb9c0e84938af9a2be0017e35eb59c5e",
      "tree": "01a292ff62d1ea35c60a44f57094d820f1f6fd56",
      "parents": [
        "9054656c203a9188f4283587d75de896087990f2",
        "a7025bae0ac1f0776a004e7b7a09c48993c09d80"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 18:36:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 18:36:31 2018 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Hide IWLAN system API\" into pi-dev"
    },
    {
      "commit": "68e5f0f2427398db1187cfaf8454f92fd335f7b6",
      "tree": "41995bcd5ac32d0e1d4728ba21dc0cd35d153871",
      "parents": [
        "6b317915e8ffa28066744e597fd5404a09240f22",
        "0486b927b3cc83113ef7b863f4a7331c8182d1a4"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Apr 11 17:09:07 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 17:09:07 2018 +0000"
      },
      "message": "Merge \"[DO NOT MERGE] - Hide Tunnel Mode IpSec API\" into pi-dev"
    },
    {
      "commit": "6b317915e8ffa28066744e597fd5404a09240f22",
      "tree": "35031577fccd8ab3250be79f6905727ce94308ed",
      "parents": [
        "87646514be50390c251e00e21b31b32f2eb10f1c",
        "4f71629002ae1da22ca1c07ce11b9cca9b272d97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 11 17:02:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 17:02:06 2018 +0000"
      },
      "message": "Merge \"StatsManager throws exceptions\" into pi-dev"
    },
    {
      "commit": "4d1b57dad36984dabd1924e41a86640b9c51684e",
      "tree": "fdd840b8e0765999f838f5b0266c6ec720f0a0e4",
      "parents": [
        "c826eec11f09e08d3ffd463df1d7610e918041b1",
        "b95c90ce2d10a93c680b2ddbdf7ad61feb3abf5a"
      ],
      "author": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Wed Apr 11 15:58:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 15:58:27 2018 +0000"
      },
      "message": "Merge \"Add an API to check whether the recoverable keystore is enabled\" into pi-dev"
    },
    {
      "commit": "0486b927b3cc83113ef7b863f4a7331c8182d1a4",
      "tree": "4b2c917791440d8f0478762362c96874226da957",
      "parents": [
        "3c33d2b997462b35382da0fca7e8afd07108d4cd"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Mon Apr 09 21:24:35 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Apr 10 19:24:07 2018 -0700"
      },
      "message": "[DO NOT MERGE] - Hide Tunnel Mode IpSec API\n\nHide the tunnel mode of the IpSec API because\nthere is a disincentive to launch it without\na supported customer use case. That use case,\nIWLAN is having its APIs hidden, so we should\nhide these as well to avoid constraining future\nimplementation.\n\nAlso, due to issues with the lifetime of the NATT\nmanagement object, this API needs to be hidden\nuntil such time as the lifetime of the Keepalive\ncan be handled independently of the lifetime of\na Transform.\n\nBug: 72523623\nTest: compilation (api removal)\nChange-Id: I076030bdbab1cd7d69f6a034577d529970b050dc\n"
    },
    {
      "commit": "4f71629002ae1da22ca1c07ce11b9cca9b272d97",
      "tree": "9df07317b627a0be00312edbb17969699da95b4f",
      "parents": [
        "135d82ac4526e2d5fa56484e80bce86dd10431ea"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Apr 10 17:15:12 2018 -0700"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Apr 10 19:07:32 2018 -0700"
      },
      "message": "StatsManager throws exceptions\n\nWhen StatsManager fails to connect to statsd, it now throws an exception\nfor the caller to catch. It also throws an exception of the config being\nadded is of an unreadable format.\n\nDue to backwards compatibility issues, the old APIs could not be\nchanged, so new ones were made to replace the old ones. The old ones are\nnow temporary and will be removed when the compatibility issue is\nresolved.\n\nBug: 77648233\nTest: gts-tradefed run gts-dev --module GtsStatsdHostTestCases\nChange-Id: Ibea05883a29b9b3ef9927d2f8fe295eb99832ab7\n"
    },
    {
      "commit": "96212bca06842f223a0e9e377e2c00a2008c96a2",
      "tree": "b97f1ad3d63d6a863eb02b6c25de1c68ae2d17e2",
      "parents": [
        "65317bac02e993d1313a1958a8497ff5f2a2ecd5"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Tue Apr 10 15:04:51 2018 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Tue Apr 10 17:34:12 2018 -0700"
      },
      "message": "Review of suspend/unsuspend APIs\n\nClarified the package extras bundle returned from\ngetSuspendedPackageAppExtras.\nMoved the bundle arg to the last in LauncherApps.onPackagesSuspended and\nclarified the contents of the Bundle.\nisPackageSuspended(String) now throws a NameNotFoundException if the\npackage is not found.\nAlso, removed a permission check from isPackageSuspendedForUser.\n\nTest: builds, boots, existing tests:\natest com.android.server.pm.SuspendPackagesTest\n\nBug: 77518983, 77517955, 77507744, 77801528\nChange-Id: I06b5f69f8f8a079c206863cb6122e90be58366cd\n"
    },
    {
      "commit": "a7025bae0ac1f0776a004e7b7a09c48993c09d80",
      "tree": "f274b914e7f62d570180b995ddd686d82495b77b",
      "parents": [
        "66b90a035f13d3ad0f7399cd8978c890a38ec935"
      ],
      "author": {
        "name": "Jack Yu",
        "email": "jackyu@google.com",
        "time": "Tue Apr 10 17:13:19 2018 -0700"
      },
      "committer": {
        "name": "Jack Yu",
        "email": "jackyu@google.com",
        "time": "Tue Apr 10 17:15:31 2018 -0700"
      },
      "message": "DO NOT MERGE - Hide IWLAN system API\n\nHide IWLAN system API for P. Will expose those APIs when IWLAN\nfull mode support is in place.\n\nTest: Telephony sanity tests\nBug: 64132030\nChange-Id: Ic56a04538fc532a7326c8a9234182899d52f15c1\n"
    },
    {
      "commit": "b95c90ce2d10a93c680b2ddbdf7ad61feb3abf5a",
      "tree": "304d495eaf9325eabe617a07e47fd5659861fdec",
      "parents": [
        "69ade357413ea66fab63fe13be2efd68fd8e3a4f"
      ],
      "author": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Tue Apr 10 13:58:25 2018 -0700"
      },
      "committer": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Tue Apr 10 14:50:21 2018 -0700"
      },
      "message": "Add an API to check whether the recoverable keystore is enabled\n\nBug: 77690455\nTest: It builds\nChange-Id: I94be0e341d8a3e0fa9a5f9af8beda60e08a449e8\n"
    },
    {
      "commit": "e901d69ea66c990d8ba728a75622e39e9543f397",
      "tree": "5755ac22f0b66ed6b374bb5947fbedad47219e85",
      "parents": [
        "5f205b17ae5774f1436b040205e08379c0cb8fff",
        "45b9e40a4f23f36be88f7474660e931b58aedf1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 10 20:15:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 20:15:24 2018 +0000"
      },
      "message": "Merge \"setPackagesSuspended now overwrites all the state\" into pi-dev"
    },
    {
      "commit": "082147cfe180e7e0117adaf3b1dfa84d7f01570e",
      "tree": "d23b6698e8808a23c24969d89dd9384a94e48e19",
      "parents": [
        "0d130cbc8653c5136f7fa38f93a7c962a33d90eb",
        "122df868919f3e2b9a92d6e9dc66808884f3f080"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 10 11:28:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 10 11:28:44 2018 +0000"
      },
      "message": "Merge \"Added system-wide minimum brightness curve.\" into pi-dev"
    },
    {
      "commit": "45b9e40a4f23f36be88f7474660e931b58aedf1e",
      "tree": "0995ddafa8f7908bfec012bd1df863b212e4a1d7",
      "parents": [
        "daafeb35a1a10198e1cff62831ffefa8676fa185"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Mon Apr 09 17:33:53 2018 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Mon Apr 09 17:49:54 2018 -0700"
      },
      "message": "setPackagesSuspended now overwrites all the state\n\nEarlier setPackagesSuspended ignored the rest of the paramters when\nsuspend state did not change. This was a problem because then there was\nno good way to update the other parameters without unsuspending the app,\nwhich is not desirable.\nRemoved setSuspendedPackageAppExtras as now they can be update with this\napi.\nAlso sending broadcasts when packages get unsuspended due to suspending\npackage removed.\n\nTest: Existing tests pass:\natest com.android.server.pm.PackageUserStateTest\natest com.android.server.pm.SuspendPackagesTest\natest com.android.server.pm.PackageManagerSettingsTests\n\nBug: 77522553\nChange-Id: I72a3c228d3d65c430e242da97b2bc6997ec6a135\n"
    },
    {
      "commit": "5e0d36041172a6393e8028184854d3c175f48051",
      "tree": "11c7d9a296b4ef9308e951ea2918c88f03d5cdba",
      "parents": [
        "6c44f1aa3501c3dbdcc1f61effab0c1e88b32837",
        "0fc6d03b628c8cbe80e3c2c14aaf8c6944b32d1e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Mon Apr 09 23:20:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 09 23:20:43 2018 +0000"
      },
      "message": "Merge \"API council requested tweaks to SubscriptionPlan.\" into pi-dev"
    },
    {
      "commit": "28faced9734d509f8829ea710fe93bf33a4be324",
      "tree": "51ece7a10965b90f012c6b22b98a820f5f13f1ec",
      "parents": [
        "bb96c13c7027f187d08746470434e81387edaa36",
        "da26eb3382de885a01933f55dec9b19505cb763f"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Apr 06 17:57:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 17:57:10 2018 +0000"
      },
      "message": "Merge \"Added dontSendToRestrictedApps broadcast option\" into pi-dev"
    },
    {
      "commit": "122df868919f3e2b9a92d6e9dc66808884f3f080",
      "tree": "40d3084241885a2473d23b3bb74fc51ff5eab9b7",
      "parents": [
        "b175d0db8f2cf175a6eaa9cd29a7105ab3371729"
      ],
      "author": {
        "name": "Dan Gittik",
        "email": "dangittik@google.com",
        "time": "Wed Mar 28 16:59:22 2018 +0100"
      },
      "committer": {
        "name": "Dan Gittik",
        "email": "dangittik@google.com",
        "time": "Fri Apr 06 17:04:45 2018 +0100"
      },
      "message": "Added system-wide minimum brightness curve.\n\nThe minimum brightness curve guarantess that any brightness curve\nthat dips below it is rejected by the system.\nThis prevent auto-brightness from setting the screen so dark as to\nprevent the user from resetting or disabling it, and maps lux to\nthe absolute minimum nits that are still readable in that ambient\nbrightness.\n\nTest: atest BrightnessConfigurationTest.\n\nFixes: 77176207\n\nChange-Id: Ibd1e83e9b147f3849d6c907f828cbe5950c8367f\n"
    },
    {
      "commit": "892ebd02856f82fac9006babbc9aff43cc4bf71e",
      "tree": "2fead9dee3a5ce2aa937f4e9460c9714d7c6831e",
      "parents": [
        "977837acd69e74ec3149a48d90cfa3b01a7217b7",
        "1b2f37401818b04cf4908d5aa9017eab44fe5662"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Fri Apr 06 12:54:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 12:54:24 2018 +0000"
      },
      "message": "Merge \"Tweak SystemUpdatePolicy APIs\" into pi-dev"
    },
    {
      "commit": "4147a83ae5709bdb22986b49798f05488e4579f1",
      "tree": "32faa306ecb43e0de8f0cf697762b568e48232df",
      "parents": [
        "ddeaefb546c15f26bf7d4372a0d3e000463c7a5e",
        "c157e21249b01cca18e6712d69c719f245db51a7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 12:28:09 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 12:28:09 2018 +0000"
      },
      "message": "Merge \"Revert \"Remove deprecated RecoveryController API.\"\" into pi-dev"
    },
    {
      "commit": "c157e21249b01cca18e6712d69c719f245db51a7",
      "tree": "7f093cc71f0ce933bde4f8dcbf5effaecd877ae5",
      "parents": [
        "0d55aa387a4ec65899fc82a1391e5533c85c3edb"
      ],
      "author": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Fri Apr 06 10:13:16 2018 +0000"
      },
      "committer": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Fri Apr 06 10:30:44 2018 +0000"
      },
      "message": "Revert \"Remove deprecated RecoveryController API.\"\n\nThis reverts commit 0d55aa387a4ec65899fc82a1391e5533c85c3edb.\n\nReason for revert: aps_sidecar binary is still using some of these @removed APIs. Although HEAD of auth_folsom is fixed, aps_sidecar burned in framework is old.\n\nBug: 77629807\nChange-Id: I2f03c7d12de30cc2eebd91bb65646caaa00fcd1d\n"
    },
    {
      "commit": "271ba383b6bfa07a97e4f5dd65a89679e0270bd7",
      "tree": "5a62552c60c64249b12f8d583b9038359f8f43c6",
      "parents": [
        "d5a3d881679ed122758bb37c7fa3e8726952b8a8",
        "83f59c61dd709cbdda6900294184135e40a22c57"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 00:52:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 00:52:32 2018 +0000"
      },
      "message": "Merge \"Unhide constructors of DataService and NetworkService.\" into pi-dev"
    },
    {
      "commit": "b172d5b4375ecb1895d3d7bed3d94e4fac3551a2",
      "tree": "80bac1bb38bd117cf15ce1e4d20b0298bc37a00c",
      "parents": [
        "a43acdabd40d069e2534a6b7978b715f9602af1a",
        "3f2c54b7820c3a568890700479230966fdbcf0a4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 06 00:23:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 00:23:52 2018 +0000"
      },
      "message": "Merge \"Update IpSecManager to use InetAddress and prefixLen\" into pi-dev"
    },
    {
      "commit": "83f59c61dd709cbdda6900294184135e40a22c57",
      "tree": "af7a2cb389b29a79e718c571e2faa33c89eba957",
      "parents": [
        "2d3e4b743713ea4c5fbe321a3f5bd225d35aba65"
      ],
      "author": {
        "name": "Malcolm Chen",
        "email": "refuhoo@google.com",
        "time": "Tue Apr 03 11:48:56 2018 -0700"
      },
      "committer": {
        "name": "Malcolm Chen",
        "email": "refuhoo@google.com",
        "time": "Thu Apr 05 15:02:17 2018 -0700"
      },
      "message": "Unhide constructors of DataService and NetworkService.\n\nDataService and NetworkService are System level classes. We shouldn\u0027t\nhide their constructors otherwise their System level sub-class\ncan\u0027t be instantiated properly.\n\nTest: gts\nBug: 77531655\nChange-Id: I1a58b4857dbcf939ac124e20eb0a801ad5a9b597\n"
    },
    {
      "commit": "822ce4f3aa0c6df1b58b66d342694957ba63b4f9",
      "tree": "80f0c7a2f3659ac51c5d68f3d8f94c83d98e26a9",
      "parents": [
        "d2c218f78a0a42717337aa49d3b7fa5390afa9ad",
        "3c3af1406e9fc8afbe9593df6c23fe3d4daa6b42"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 21:15:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 21:15:19 2018 +0000"
      },
      "message": "Merge \"Activity interceptor dialog for suspended apps\" into pi-dev"
    },
    {
      "commit": "3f2c54b7820c3a568890700479230966fdbcf0a4",
      "tree": "8e48c674f80b201bbc7393850cbaed5bb0aaf8ad",
      "parents": [
        "0c2b3185b21b7f84a69559b0b0844ae41af7409f"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Apr 03 20:30:54 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Apr 05 17:41:11 2018 +0000"
      },
      "message": "Update IpSecManager to use InetAddress and prefixLen\n\nLinkAddress constructors are currently @hide; this change updates\nIpSecManager to use InetAddress and prefixLen, and then construct a\nLinkAddress internally. LinkAddress is used over the binder interface to\nIpSecService to ensure validity.\n\nBug: 77528639\nTest: CTS, Java unit tests ran on walleye\nChange-Id: I19e124adef6d9f4992d8293db3190bcf74c95848\n"
    },
    {
      "commit": "37317e166867a569dae7e5cbd8de8439eae57439",
      "tree": "cd7d9393e66d9c5f64313bfbc09a430f31a57b2e",
      "parents": [
        "b9c661f79ff0ee4e1dfff06f21f572c3a5fb9dc8",
        "39ccc7e388bb6e5e6972497258750c06d0a4e959"
      ],
      "author": {
        "name": "Jan Althaus",
        "email": "jalt@google.com",
        "time": "Thu Apr 05 16:53:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 16:53:17 2018 +0000"
      },
      "message": "Merge \"Makes TCS methods non-abstract\" into pi-dev"
    },
    {
      "commit": "39ccc7e388bb6e5e6972497258750c06d0a4e959",
      "tree": "72c70a89ffe34b918de5f8bffba4875ee802d1b9",
      "parents": [
        "b2e6e45d009e7c9148e69bf2c1f0b46917bee7b0"
      ],
      "author": {
        "name": "Jan Althaus",
        "email": "jalt@google.com",
        "time": "Wed Apr 04 13:56:40 2018 +0200"
      },
      "committer": {
        "name": "Jan Althaus",
        "email": "jalt@google.com",
        "time": "Thu Apr 05 17:26:03 2018 +0200"
      },
      "message": "Makes TCS methods non-abstract\n\nThis only affects System API\n\nBug: 77563695\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest\nTest: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nTest: bit FrameworksCoreTests:android.widget.TextViewActivityTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextSelectionTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextLinksTestBug:\nChange-Id: Ie927ffe3a4678b7a622c139a5431b89e8f22c6e4\n"
    },
    {
      "commit": "1b2f37401818b04cf4908d5aa9017eab44fe5662",
      "tree": "3ca5ce9dfd72b072d5109066de2dee46b749ad25",
      "parents": [
        "b2e6e45d009e7c9148e69bf2c1f0b46917bee7b0"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Mar 28 14:54:08 2018 +0100"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Apr 05 14:26:52 2018 +0100"
      },
      "message": "Tweak SystemUpdatePolicy APIs\n\n* Introduce a FreezePeriod class that represents a single freeze period\n  and is defined by two MonthDay instances.\n* Add ERROR_UNKNOWN to ValidationFailedException\n* Make SystemUpdatePolicy final\n* Document SystemUpdatePolicy.InstallationOption and add IntDef to getType()\n\nTest: runtest frameworks-services -c com.android.server.devicepolicy.SystemUpdatePolicyTest\nTest: cts-tradefed run cts-dev -m CtsDevicePolicyManagerTestCases -t com.android.cts.devicepolicy.DeviceOwnerTest#testSystemUpdatePolicy\nTest: gts-tradefed run gts-dev --module GtsGmscoreHostTestCases --test com.google.android.gts.devicepolicy.DeviceOwnerTest#testSystemUpdatePolicy\nBug: 74976911\nChange-Id: I85cf636c3a98c97bd03b7b296c3130028051a791\n"
    },
    {
      "commit": "3c3af1406e9fc8afbe9593df6c23fe3d4daa6b42",
      "tree": "6e85c622f7d388974527b008b75cfc15e21d691e",
      "parents": [
        "53a77b615c6917b10ea9c73b25ddde7082995e48"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Fri Mar 30 00:28:37 2018 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Wed Apr 04 18:40:19 2018 -0700"
      },
      "message": "Activity interceptor dialog for suspended apps\n\nAdded an AlertActivity to intercept the start for an activity belonging\nto a suspended app. More details will be shown if the suspending app\nalso defines an activity to handle the API action\nSHOW_SUSPENDED_APP_DETAILS.\n\nTest: Added tests to existing classes. Can be run via:\natest com.android.server.pm.SuspendPackagesTest\natest com.android.server.pm.PackageManagerSettingsTests\natest com.android.server.pm.PackageUserStateTest\n\nBug: 75332201\nChange-Id: I85dc4e9efd15eedba306ed5b856f651e3abd3e99\n"
    },
    {
      "commit": "da26eb3382de885a01933f55dec9b19505cb763f",
      "tree": "4940a9a25e3c8eaf6e6a6dcb6490324118914cc8",
      "parents": [
        "b4da14cde90711daeceb5f460b5bc4e5dda89cc5"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Mar 30 16:01:26 2018 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Apr 04 16:39:24 2018 -0700"
      },
      "message": "Added dontSendToRestrictedApps broadcast option\n\nSets whether pending intent can be sent for an application with\nbackground restrictions\n\nTest: manual\nBug: 77237719\nChange-Id: I9acc2471f1dbd657ed9a6dd93888e04a6ae48d61\n"
    },
    {
      "commit": "0fc6d03b628c8cbe80e3c2c14aaf8c6944b32d1e",
      "tree": "0dd261554c127a0c8ba9402edece54ef65f9363e",
      "parents": [
        "b622906dc51a437c2891d004f77039c5ad157a77"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Mar 30 16:25:11 2018 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 04 16:06:27 2018 -0600"
      },
      "message": "API council requested tweaks to SubscriptionPlan.\n\nReturn new shiny Range\u003c\u003e object instead of Pair\u003c\u003e.  Tell developers\nwhat permission to check on refresh broadcast.  Describe what\nexceptions might be thrown, and that an empty list is okay.\n\nAllow creation of plans with richer Period object, instead of forcing\nthem into rigid week or day options.\n\nProtect SubscriptionPlan broadcast.\n\nTest: atest android.util.RecurrenceRuleTest\nTest: atest com.android.server.NetworkPolicyManagerServiceTest\nBug: 74945820\nChange-Id: I7e555798e0cfaa214ca93d9df627c6443fc5d986\n"
    },
    {
      "commit": "0d55aa387a4ec65899fc82a1391e5533c85c3edb",
      "tree": "6b8552e69f7e32c6a9116ae1917e7c2827422dd5",
      "parents": [
        "3f6b7714a7afd826c2e66d1baf747469145f8d77"
      ],
      "author": {
        "name": "Dmitry Dementyev",
        "email": "dementyev@google.com",
        "time": "Mon Apr 02 14:10:57 2018 -0700"
      },
      "committer": {
        "name": "Dmitry Dementyev",
        "email": "dementyev@google.com",
        "time": "Mon Apr 02 18:35:08 2018 -0700"
      },
      "message": "Remove deprecated RecoveryController API.\n\n1) Mark all deprecated methods as removed.\n\nBug: 74944591\nTest: atest RecoveryControllerHostTest\nChange-Id: I2dd88d2ba0b9fb254327ee85b9d983ab10eb061b\n"
    },
    {
      "commit": "bf9dfb16be7d58b473cff96a3ab9ac3b2ff33b43",
      "tree": "d0d775a5b7e07dbf6b9ae38dad7d471a4b68137c",
      "parents": [
        "4a3ccc18e6ba1ab45ba242f9ceb22c925c14d06d",
        "080c8542b68cf17a0441862c404cb49ce0e86cfe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 09:08:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 09:08:52 2018 +0000"
      },
      "message": "Merge \"TextClassifier API updates.\" into pi-dev"
    },
    {
      "commit": "21306849e6f3dc57385e61a694905e4b12b227d9",
      "tree": "8bdb0c1c350ee16aa6dd4d659a11f2558f841f52",
      "parents": [
        "4ab18af48a240c0987fb12e71e8d040befe09ade",
        "e9d9b4b9a27f419fbd6096698f692b474939cb48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Apr 01 22:26:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 01 22:26:18 2018 +0000"
      },
      "message": "Merge \"Fix issue #77230164: Add app op to control foreground services\" into pi-dev"
    },
    {
      "commit": "080c8542b68cf17a0441862c404cb49ce0e86cfe",
      "tree": "673eb1f9a99b63b42f615f60c23a9c46aee8848f",
      "parents": [
        "7a33063b39c0a48e57d7146adfc4640a8944adec"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Tue Mar 27 00:04:06 2018 +0100"
      },
      "committer": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Sun Apr 01 20:04:47 2018 +0100"
      },
      "message": "TextClassifier API updates.\n\n1. Wraps TC queries in Request objects\n2. Adds create/destroyTextClassificationSession system APIs\n3. Adds the session Ids to system API calls\n4. Change setSignature() to setId() on result objects\n5. Plumbing to make the API updates work as things currently work\n6. Hide Linkify.addLinksAsync APIs\n\nBug: 74461129\n\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest\nTest: bit CtsViewTestCases:android.view.textclassifier.cts.TextClassificationManagerTest\nTest: bit CtsWidgetTestCases:android.widget.cts.TextViewTest\nTest: bit FrameworksCoreTests:android.widget.TextViewActivityTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextSelectionTest\nTest: bit FrameworksCoreTests:android.view.textclassifier.TextLinksTest\n\nChange-Id: I933ada8b37ef9893331a265e3b4fc08e043f1029\n"
    },
    {
      "commit": "77fcc0da3b95b5a191fa65751aa86bc696260df7",
      "tree": "3a1f5fb6708ea48182ccd72732c6812b45f977fa",
      "parents": [
        "014432cb676bfc01eea1dde116a40ac4e8b1e389",
        "37121d467c3e2fe56dc30cc2a6f6a37231791d7a"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Fri Mar 30 21:36:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 21:36:35 2018 +0000"
      },
      "message": "Merge \"Unhide @SystemApi Constructor\" into pi-dev"
    },
    {
      "commit": "e9d9b4b9a27f419fbd6096698f692b474939cb48",
      "tree": "947fc0991f9a1256ee24ee65b968c3af2c490d12",
      "parents": [
        "b5dcf7d3ac4f8b213085eb266588acb2117b4044"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 28 13:51:46 2018 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 30 13:10:54 2018 -0700"
      },
      "message": "Fix issue #77230164: Add app op to control foreground services\n\nNew app op added.\n\nBug: 77230164\nTest: atest CtsAppTestCases:ActivityManagerProcessStateTest\\#testForegroundServiceAppOp\nChange-Id: I59f2f03850da4b9f5550e82ba28f175e4779e783\n"
    },
    {
      "commit": "8982a81f3c63a9e08c693e503d75db46ce9c19eb",
      "tree": "db4233c41e54bd2f639406992e0e8ce757620642",
      "parents": [
        "e6b1a7804d962d06263329792b8b65050ad45d91",
        "d9c9fff1399e09ae49c6cd6e131d884e9e0bc96e"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Fri Mar 30 16:32:52 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 16:32:52 2018 +0000"
      },
      "message": "Merge \"Add OEM_PAID capability to system api\" into pi-dev"
    },
    {
      "commit": "37121d467c3e2fe56dc30cc2a6f6a37231791d7a",
      "tree": "a3f56941bf8d1471d492b55cf75bde123a161595",
      "parents": [
        "de51e0c61523f948d9a9797fce1f07e2a67e99fd"
      ],
      "author": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Mar 29 11:12:24 2018 -0700"
      },
      "committer": {
        "name": "Brad Ebinger",
        "email": "breadley@google.com",
        "time": "Thu Mar 29 11:36:28 2018 -0700"
      },
      "message": "Unhide @SystemApi Constructor\n\nThere are a few small classes that never got properly\nexposed as @SystemApi. These classes were not caught\nbecause vendors currently build against the source\ndirectly and have access to hidden APIs. We can not\nchange the vendor code at this point (different vendor\ncode for each year for all supported devices), but\nwe can start pulling back the API for new devices.\n\n1) Keep all public mutable fields @hide and put\ntodo (and file bug b/74402619) to make fields\nprivate or final.\n\n2) Add public constructor that populates all fields\nso that @hide public mutable fields can be set to\nprivate/final in the future.\n\n3) Provide getters for fields that will not be\npublic in the future.\n\nIn this way, we can make minimal API changes for P,\nsupport new vendor/3rd party ImsServices, and phase\nout old ImsService implementations that still build\nagainst the source instead of using the correct\n@SystemApi.\n\nBug: 77278031\nBug: 74402619\nTest: Manual\nChange-Id: Ifa3b6d0cbdb12e92efc699b760ca874768a89a7c\n"
    },
    {
      "commit": "462e29da9ba854eb3651dd9664b09a2852a05141",
      "tree": "a0a19cd7df8534632d2adc9f0280c201c2488573",
      "parents": [
        "a22cca47e22e315102777f93a6a7272570d6b98b"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Mar 22 15:52:41 2018 +0000"
      },
      "committer": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Mar 29 18:41:03 2018 +0100"
      },
      "message": "Add a SystemApi to control display saturation.\n\nAllows an app with the appropriate permission to reduce\n(make more gray) the saturation of colors on the display.\n\nTest: manual\nBug: 77189882\nChange-Id: I2b7b065d07bd2ca24730b2e8c52d161c22b307ab\n"
    },
    {
      "commit": "64faa5b60febaa8cf96202f09d100851c6c8bd67",
      "tree": "5b66af2930e2107bdc6ebec1daccfd8e740cb7b3",
      "parents": [
        "f3faf62adcac557b6fb9042f3b39954691cf8eb3",
        "27926edc3b737823bd6bc3146b6e73a69f8dfe3a"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Mar 29 17:27:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 17:27:56 2018 +0000"
      },
      "message": "Merge \"Indicate whether BandConfig initialization is required or not.\" into pi-dev"
    },
    {
      "commit": "27926edc3b737823bd6bc3146b6e73a69f8dfe3a",
      "tree": "fc4ecd283df447801dfd59266f3cd713dfd53c49",
      "parents": [
        "f45b3a1136ebe31126f992c26e5378c661bbc440"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Tue Mar 27 13:28:42 2018 -0700"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Mar 29 07:45:06 2018 -0700"
      },
      "message": "Indicate whether BandConfig initialization is required or not.\n\nThe broadcastradio HAL 1.x requires waiting for onConfigChanged callback\nto indicate the initialization is done, while HAL 2.0 does not have the\nconfig setting (at the tuner session level) at all.\n\nThis change makes it possible to cleanly workaround race condition in the\nradio app retaining support for both HAL revisions. Future versions of the\nRadioManager will provide a method to open a session without taking care\nabout these nuances.\n\nBug: 74353024\nTest: manual\nChange-Id: I5de2d5e5c33626fcf0cfbbaf121d0b13e53d0bae\n"
    },
    {
      "commit": "d9c9fff1399e09ae49c6cd6e131d884e9e0bc96e",
      "tree": "ff85f668e63415d8adba6d63d9f01b63fc255bbd",
      "parents": [
        "601861fd1cce308320ebe21e47a48e0c9c68de55"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Thu Mar 22 11:41:32 2018 -0700"
      },
      "committer": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Tue Mar 27 23:17:14 2018 -0700"
      },
      "message": "Add OEM_PAID capability to system api\n\nSome system apps should be able to request OEM_PAID networks.  This\nmakes a lot of sense when Android is used as in-vehicle infotainment\nsystems.\n\nBug: 68762530\n\nTest: runtest -x frameworks/base/tests/net/ -c android.net.NetworkCapabilitiesTest\n\nChange-Id: Ic916de7522a9f803a2410bc4e3e82101fd9d0dbd\n"
    },
    {
      "commit": "a78a764fe3ce57f673cd60cc58f40ae87c19669b",
      "tree": "6bf2171f053555e2aec16875b23281695cea557c",
      "parents": [
        "0c1c9cd7f2a343bb7bb9881326d7bb34db2e2fad",
        "59159c437a8696c67b92c4e4cbf57402cb018cad"
      ],
      "author": {
        "name": "Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Wed Mar 28 04:18:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 28 04:18:51 2018 +0000"
      },
      "message": "Merge \"Address comments from API Review.\" into pi-dev"
    },
    {
      "commit": "17b6490ce18092091c523f9a364f2effd76289f3",
      "tree": "71d03840f067b26ad8c0341220815c684c32b28d",
      "parents": [
        "0fba0640a119abaae887735cf609d294097e060f",
        "105540da419d7ec1da86f3c0ad6e5e2173deeb8e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 21:50:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 21:50:31 2018 +0000"
      },
      "message": "Merge \"Regularize some wallpaper APIs\" into pi-dev"
    },
    {
      "commit": "59159c437a8696c67b92c4e4cbf57402cb018cad",
      "tree": "30b4e9646c12982808ebb79b6debcf82ec29376a",
      "parents": [
        "a194d92495a298561879dde137e6342d0e6784e8"
      ],
      "author": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Thu Mar 15 18:06:42 2018 -0700"
      },
      "committer": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Tue Mar 27 12:31:56 2018 -0700"
      },
      "message": "Address comments from API Review.\n\nBug: 74975825\nBug: 74976716\nBug: 74976875\nTest: test on phone\nChange-Id: I5417e5dd95c75fd3fd9fa98d7559511bd0fcd8a0\n"
    },
    {
      "commit": "105540da419d7ec1da86f3c0ad6e5e2173deeb8e",
      "tree": "d6678819b9d9b6812c60c85b1081fbb560596e8d",
      "parents": [
        "02bfc970684e8d7cf4c8479c556cbf2d111f3516"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Mar 21 13:03:09 2018 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 26 11:26:50 2018 -0700"
      },
      "message": "Regularize some wallpaper APIs\n\nSpecifically:\n\n  + support clearing wallpapers, with similar permissions to setting\n  + support adjusting padding, with similar permissions as defining\n    wallpaper dimension hints (which behave somewhat similarly)\n\nBug: 62343054\nTest: atest CtsPermissionTestCases:NoWallpaperPermissionsTest\nChange-Id: Ia25f2791a20564c58096a25e6e189aa3b06b411c\n"
    },
    {
      "commit": "4f2e53fe482255eef18b2c6d17150cd122340920",
      "tree": "b8119715b0150cdf57f4d5a7b4bc568aea253ce8",
      "parents": [
        "b9e9f09486f512274a2b39bf9b9d38a3c077dc71",
        "ca0c1ac30447f09b4445b7f3760614c5f0e0a9f2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 24 01:12:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 24 01:12:49 2018 +0000"
      },
      "message": "Merge \"Unhide ImsReasonInfo Constructor\" into pi-dev"
    },
    {
      "commit": "ecd4709573096b28b21b85df15e10925c42f482c",
      "tree": "601e17f677f9fa16325e9c31094811feda78597d",
      "parents": [
        "3aa86b427f56fcb6ad937c02ab65c7e9cec775db",
        "7953997160c032d1fa1d2b09636cd38787ba2909"
      ],
      "author": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Fri Mar 23 23:11:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 23:11:46 2018 +0000"
      },
      "message": "Merge \"Split the DownloadStateCallback class into two\" into pi-dev"
    },
    {
      "commit": "8808edb063650f4497e6a31f8fbe4d2bcbdf227f",
      "tree": "44042aaed8444b4f2810c777b4587d9e967da716",
      "parents": [
        "ea4f21f62e18580d2829810abcc1a3e6d2d1676a",
        "bc813eb26e3027856114a26312e36e4bad86bd86"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Mar 23 19:13:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 19:13:22 2018 +0000"
      },
      "message": "Merge \"Provide app launch count in UsageStats\" into pi-dev"
    },
    {
      "commit": "9ec7026e924104acaee5cc5bac8888ae5452f3be",
      "tree": "fb5c63707499c209b068b8a5da8193b74ce0aa27",
      "parents": [
        "3384343629f686e6db6d202814d959f342214429",
        "40d8a45b23fef543f183bfc2a061ec7d96b6e252"
      ],
      "author": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Fri Mar 23 15:25:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 15:25:36 2018 +0000"
      },
      "message": "Merge \"Unhide the enum/function for the password hashing algorithm scrypt\" into pi-dev"
    },
    {
      "commit": "933dfc1cd6041d1e77d169be91818d5b31e36edc",
      "tree": "fe82b53258754f260a5826240fb84c5d394d82b4",
      "parents": [
        "51856fde2bd2e7f00f4646900412d73dcb256d09"
      ],
      "author": {
        "name": "Aseem Kumar",
        "email": "aseemk@google.com",
        "time": "Thu Mar 22 22:09:34 2018 -0700"
      },
      "committer": {
        "name": "Aseem Kumar",
        "email": "aseemk@google.com",
        "time": "Fri Mar 23 05:16:42 2018 +0000"
      },
      "message": "Delete unimplemented APIs from RecoveryController.\n\nBug: 74859770\nTest: make update-api builds\nChange-Id: Ic547e0ee2ef13995389a71369ffa736a7d83b78a\n"
    },
    {
      "commit": "40d8a45b23fef543f183bfc2a061ec7d96b6e252",
      "tree": "0be7792149b8f2a1cbace8fa39a1f8491f9b27e0",
      "parents": [
        "b09f2b5926ace1ab1abb1a0dd0eb4ed70953d199"
      ],
      "author": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Wed Mar 21 20:07:43 2018 -0700"
      },
      "committer": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Thu Mar 22 20:22:44 2018 -0700"
      },
      "message": "Unhide the enum/function for the password hashing algorithm scrypt\n\nBug: 75024420\nTest: none, it\u0027s just unhiding APIs\nChange-Id: I9cbb327678d334079e2c660d85013f3073d4cb87\n"
    },
    {
      "commit": "0205fd10646785f6d573b487f8ad5f56470bff07",
      "tree": "ecb0af38eb95283a310843700ceb593639691dfa",
      "parents": [
        "3c0f0b3e8b02561faecf884e2cbdc35a7b48cbdc",
        "159788455c79fa47847d0c40fcee7aceff2551ae"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 22 23:10:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 23:10:11 2018 +0000"
      },
      "message": "Merge \"Add MANAGE_IPSEC_TUNNELS Permission\" into pi-dev"
    },
    {
      "commit": "3a31f6c5ccd9c8e490ecb475262059e7f52717b3",
      "tree": "ab865e7c61b8978a96e2e68fce26181e8dbcfa9f",
      "parents": [
        "6affc07065083468c5580b04d3572ef6acbb138c",
        "88b745cce3555c3c29acec29aa71240f3b71b22c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 22 22:22:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 22:22:30 2018 +0000"
      },
      "message": "Merge \"Removed urlBarResourceId.\" into pi-dev"
    },
    {
      "commit": "6affc07065083468c5580b04d3572ef6acbb138c",
      "tree": "ce99f9bff97029318db42ac178b83a8379d99319",
      "parents": [
        "fc16c4b3c48233be0f22db671d7e80188b2dea17",
        "021b57ab8df0927aa1f78a2f3bb01d5e70594b1a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 22 22:15:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 22:15:31 2018 +0000"
      },
      "message": "Merge \"APIs to suspend packages with SUSPEND_APPS permission\" into pi-dev"
    },
    {
      "commit": "159788455c79fa47847d0c40fcee7aceff2551ae",
      "tree": "cd7f708e07a4b11e56f7f5048bf83c7f10c8d6e5",
      "parents": [
        "8a047a0c5207433769a084f524fd3f9ebed18da8"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Mar 21 15:32:42 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Mar 22 14:16:50 2018 -0700"
      },
      "message": "Add MANAGE_IPSEC_TUNNELS Permission\n\nAdd a new MANAGE_IPSEC_TUNNELS permission and\nprotect all IPsec Tunnel mode APIs with it.\nThis permission is only granted to the system or\nthrough an AppOp.\n\nBug: 66955045\nTest: compilation\nChange-Id: I0f618373b500c493ef2211bece681f74652a1833\n"
    },
    {
      "commit": "8a047a0c5207433769a084f524fd3f9ebed18da8",
      "tree": "5955f2e8f87afbd0cde492505972e66cd69a9daf",
      "parents": [
        "812319dc7da3ad9e1062aa94fa72445f11d43d1e",
        "1bb42067f077bed8c865d8cef2f4b397be4d996e"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Mar 22 21:14:36 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 21:14:36 2018 +0000"
      },
      "message": "Merge \"Add AppOp for IpSec Tunnels\" into pi-dev"
    },
    {
      "commit": "bc813eb26e3027856114a26312e36e4bad86bd86",
      "tree": "a19f4c10792816809309bf64bba518ea676f7372",
      "parents": [
        "9531b70cae96e8e59d38bd91d636cbe084574f3a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 20 19:37:46 2018 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 13:51:57 2018 -0700"
      },
      "message": "Provide app launch count in UsageStats\n\nThis counts the number of times the app was launched from outside\nthe app and ignores intra-app activity transitions.\n\nIntroduce a new permission for registering to observe app usage.\n\nFixes a bug where Settings couldn\u0027t force the app into another\nbucket if it was recently launched.\n\nBug: 74335821\nFixes: 76100712\nTest: Manual test using Settings\nTest: UsageStatsTest to verify permission change\nChange-Id: Ibd343c1cfa37089a3ac6fc30ba3194e21a9be499\n"
    },
    {
      "commit": "021b57ab8df0927aa1f78a2f3bb01d5e70594b1a",
      "tree": "f051df742120d34fc3ef87ee4c1d65b2e970d6ab",
      "parents": [
        "5d9617c439d0f85b67ba0d21e43f665ab9bf13ae"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Mar 08 18:21:50 2018 -0800"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Mar 22 12:59:57 2018 -0700"
      },
      "message": "APIs to suspend packages with SUSPEND_APPS permission\n\nChanged the existing hidden api setPackagesSuspendedAsUser to a system\napi setPackagesSuspended that can be called by apps with either\nMANAGE_USERS or SUSPEND_APPS permission. Additionally, the suspending\napp can now specify optional extra information meant to be used by the\nsuspended apps and the launcher to deal with this state.\n\nThe following other APIs are added:\n - isPackageSuspended(): Apps can query whether they are in a suspended\n state\n - @SystemApi getPackageSuspendedAppExtras(String): Apps with permission\n SUSPEND_APPS can get the appExtras passed to PM when suspending the\n app.\n - @SystemApi setPackageSuspendedAppExtras(String, PersistableBundle):\n Apps with permission SUSPEND_APPS can update app extras for a\n suspended package.\n - getPackageSuspendedAppExtras(): Apps can call to get the appExtras\n passed in to PM when they were suspended.\n\nTest: Can be run via:\natest com.android.server.pm.PackageManagerSettingsTests\natest com.android.server.pm.PackageUserStateTest\natest com.android.server.pm.SuspendPackagesTest\n\nBug: 74336673\nChange-Id: I3b9ed2c8478b34ee2e8986f5f5fddb2839d102e3\n"
    },
    {
      "commit": "88b745cce3555c3c29acec29aa71240f3b71b22c",
      "tree": "f92270f1d59ed4ab108859bab14af749ac3bac97",
      "parents": [
        "4e561f83cbfc1c05955f724db73c72366ad816eb"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Mar 21 20:02:42 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Mar 22 11:44:06 2018 -0700"
      },
      "message": "Removed urlBarResourceId.\n\nIt will be removed before the final P build.\n\nTest: atest FrameworksServicesTests:AutofillManagerServiceTest CtsAutoFillServiceTestCases\nFixes: 74445943\n\nChange-Id: I9bc243a3c1ae78f2c385dbb907d362d8ab16b34c\n"
    },
    {
      "commit": "c6bd1855656168119ab4ac62cbf0e7930551e846",
      "tree": "86a12390453cf28dc2ca103a074843b5695a72a1",
      "parents": [
        "3818de595b1b53a0fc9944d16d302169aff00384",
        "93d002ca5f94facfec75359999c910f914d7b7c4"
      ],
      "author": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Thu Mar 22 17:23:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 17:23:05 2018 +0000"
      },
      "message": "Merge \"Unhide RecoveryController#getRootCertificates()\" into pi-dev"
    },
    {
      "commit": "3818de595b1b53a0fc9944d16d302169aff00384",
      "tree": "d444c011946aa97b161c8fd832d1d313b43ac7a4",
      "parents": [
        "3bfa02a114a3df6f312ebbe7a521740b29208aa8",
        "750b71c6512dad08e9c8eb59c2ad3c0d4fcfe79f"
      ],
      "author": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Thu Mar 22 17:19:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 17:19:33 2018 +0000"
      },
      "message": "Merge \"Unhide RecoverySession#recoverKeyChainSnapshot() method\" into pi-dev"
    },
    {
      "commit": "4e561f83cbfc1c05955f724db73c72366ad816eb",
      "tree": "edc5d7507a4f03f4991fbba1ae288e6d0bbdb84c",
      "parents": [
        "8055aa2434f0163163fd07bbb8027fa2ee4ebb25",
        "fd4003bf0949a4a33200621d0c6f33dbebfa14d3"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Mar 22 16:24:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 16:24:53 2018 +0000"
      },
      "message": "Merge \"Renamed AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES.\" into pi-dev"
    },
    {
      "commit": "750b71c6512dad08e9c8eb59c2ad3c0d4fcfe79f",
      "tree": "96a5266a387d19120af6e56566735eaf5056b091",
      "parents": [
        "98ea60c42766e973eb787a55a9b84ca91981c9e0"
      ],
      "author": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Wed Mar 21 16:31:52 2018 +0000"
      },
      "committer": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Thu Mar 22 13:49:54 2018 +0000"
      },
      "message": "Unhide RecoverySession#recoverKeyChainSnapshot() method\n\nThe other methods expose raw key materials, which is a security flaw. This\nnew API is already being used by GMSCore, via reflection (although falling\nback to the old methods if it is not available). Would be good to switch it\non ASAP.\n\nBug: 74345822\nTest: Tested with GMSCore\nChange-Id: I30d53c9e825888d1122c72d23b7c1c10c6edb1e9\n"
    },
    {
      "commit": "93d002ca5f94facfec75359999c910f914d7b7c4",
      "tree": "5f6d728044d5734d58aec4c758ff26ab087fb016",
      "parents": [
        "98ea60c42766e973eb787a55a9b84ca91981c9e0"
      ],
      "author": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Wed Mar 21 21:57:07 2018 +0000"
      },
      "committer": {
        "name": "Robert Berry",
        "email": "robertberry@google.com",
        "time": "Thu Mar 22 13:49:20 2018 +0000"
      },
      "message": "Unhide RecoveryController#getRootCertificates()\n\nThis is so we can add a GTS test to affirm that GMS devices include the\nGoogle Cloud Key Vault root certificate.\n\nTest: runtest frameworks-core -p android.security.keystore.recovery\nBug: 74621045\nChange-Id: Ib6431f5739f3dff066832e6aa300dd9da5bc0727\n"
    },
    {
      "commit": "e7997a3ea7c5dea839220ae832ea5ff7a7dc7742",
      "tree": "51962a2154f0cf113ecdd27faec7988d714c2ad0",
      "parents": [
        "b09f2b5926ace1ab1abb1a0dd0eb4ed70953d199"
      ],
      "author": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Wed Mar 21 19:50:50 2018 -0700"
      },
      "committer": {
        "name": "Bo Zhu",
        "email": "bozhu@google.com",
        "time": "Wed Mar 21 19:50:50 2018 -0700"
      },
      "message": "Unhide the new RecoverySession#start with the alias for root cert\n\nBug: 76033708\nTest: none, it\u0027s just unhiding APIs\nChange-Id: Iec1e44d24bb1704da082404566233ada83b8eb81\n"
    },
    {
      "commit": "ca0c1ac30447f09b4445b7f3760614c5f0e0a9f2",
      "tree": "c6618bfaa809d2c87087a572839ea33692d5ac6a",
      "parents": [
        "4d6dc48d242a643acd846b4892803c8295740b64"
      ],
      "author": {
        "name": "Mohamed Abdalkader",
        "email": "abdalkader@google.com",
        "time": "Tue Mar 20 17:19:29 2018 -0700"
      },
      "committer": {
        "name": "Mohamed Abdalkader",
        "email": "abdalkader@google.com",
        "time": "Thu Mar 22 00:40:01 2018 +0000"
      },
      "message": "Unhide ImsReasonInfo Constructor\n\nTest: builds\nBug: 76033384\nChange-Id: If1101b82f92e45cd417f34356545363f6f9bf322\n"
    },
    {
      "commit": "7953997160c032d1fa1d2b09636cd38787ba2909",
      "tree": "f133712c526a67f138c9301c7d831d11739c248e",
      "parents": [
        "0efaf2088d8e3ba8ec560aa5eb597ef456b5213e"
      ],
      "author": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Mon Mar 19 18:12:23 2018 -0700"
      },
      "committer": {
        "name": "Hall Liu",
        "email": "hallliu@google.com",
        "time": "Wed Mar 21 23:39:07 2018 +0000"
      },
      "message": "Split the DownloadStateCallback class into two\n\nUse individually-registered DownloadStatusListener and\nDownloadProgressListener instead to listen for download status and\nprogress, respectively.\n\nBug: 74409377\nTest: cts\nChange-Id: Ifd5289038ffd66eef8bd7916f5256205b49be5f9\n"
    },
    {
      "commit": "fd4003bf0949a4a33200621d0c6f33dbebfa14d3",
      "tree": "f51dbec3783fed2d2f7eb0587dca40f4be3e5d4e",
      "parents": [
        "655877cd84d274ff66bc29f5889dec554a439312"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue Mar 20 17:12:17 2018 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Mar 21 16:36:25 2018 -0700"
      },
      "message": "Renamed AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES.\n\nThe syntax of that setting changed from P Developer Preview1 to the final P, so\nit\u0027s safer to use a new name than risk breaking devices during the update.\n\nBug: 74458004\nTest: atest CtsAutoFillServiceTestCases:VirtualContainerActivityCompatModeTest\\\nFrameworksCoreTests:SettingsBackupTest\n\nChange-Id: I1c507e8eae20f598dfe259178667ae6c2bc892ff\n"
    },
    {
      "commit": "1bb42067f077bed8c865d8cef2f4b397be4d996e",
      "tree": "424061c4516940c9a7965b9f35366dd527b1bd7d",
      "parents": [
        "32ca41d02880686148cfa730897c575104cf045c"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Mar 14 17:08:53 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Mar 21 15:23:39 2018 -0700"
      },
      "message": "Add AppOp for IpSec Tunnels\n\nAdd a new AppOp to allow bound system services\nsuch as TelephonyDataServices and potentially\nVPN providers to access the IPsec tunnel\nmanagement APIs. Since this is not directly\nuser-facing, and not all System apps should have\nthis privilege, the access is only granted via\nan AppOp or to the system itself.\n\nBug: 66955045\nTest: compilation (still WIP)\nChange-Id: I0b0528c75c622d8538baeec019c3672cbed5d899\n"
    },
    {
      "commit": "095b9e8e1c58393bac6e5f409ab73fe91cc15263",
      "tree": "b11a68b35233f703af99f914ed7440d02bf9ee7f",
      "parents": [
        "025cb0c392b623038bea3e1b0a59dc0c17eb1bef",
        "82485a2660b8eb3689021889f68b7e6e199a31c4"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Mar 21 20:59:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 20:59:02 2018 +0000"
      },
      "message": "Merge changes I4c26aea7,I79911434 into pi-dev\n\n* changes:\n  Check mOwnedByTransform to avoid DELSA on SPI\n  Expose add/removeAddress for IpSecInterfaces\n"
    },
    {
      "commit": "1918ef7569e90c70246e535478b26732b82d92d3",
      "tree": "1f0e89e4d85c2d5f531fff7fc74d2b9471171215",
      "parents": [
        "fc4ae7ec0eea2351afcff2a08a21247e10533c79"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 14 09:20:39 2018 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 21 10:03:29 2018 -0400"
      },
      "message": "UsageEvents for slices pinning\n\nTest: atest frameworks/base/services/tests/servicestests\nBug: 73455786\nChange-Id: I6a37f5525c29d3f47aa37e262c8834840309ba44\n"
    },
    {
      "commit": "6ed6340e3cd43fc111fb4916b380da61eba834c4",
      "tree": "0e8878fde93cf3ab28f74b9024409851868c956d",
      "parents": [
        "efcd6e1ceb5363f37f49569f93e9ae9cfd20ddc2",
        "7e25b3d9155343c6ee227499a5c29f42ae9d791c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 21 03:27:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 03:27:56 2018 +0000"
      },
      "message": "Merge changes from topic \"SoundTriggerJobService-steps\" into pi-dev\n\n* changes:\n  Throttle number of sound trigger operations / day\n  Add SoundTriggerDetectionService\n  Expose SoundTriggerManager and SoundTrigger APIs\n"
    },
    {
      "commit": "daec95a7f50d1227dd7129342ae667f0b5d30553",
      "tree": "202d2ee02ef67008364d24beed0ab3961a0d985e",
      "parents": [
        "dbad69dd42d76592288c80b0718baee669486dd9",
        "6d1009f882f1b0234e77ec3bb583a58090bfff39"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 21 02:31:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 02:31:19 2018 +0000"
      },
      "message": "Merge \"Get current and default brightness configs.\" into pi-dev"
    },
    {
      "commit": "c8f63060adc880eb6cfdee1e08cafcf2f379096a",
      "tree": "2ebee0c759b49e97b21dbea56c1bb3f9f84b43c7",
      "parents": [
        "da4b0c65a5cbebf6c5e66b869b75dd3a6625cd2e"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Mar 20 12:26:10 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Mar 20 16:01:28 2018 -0700"
      },
      "message": "Expose add/removeAddress for IpSecInterfaces\n\nWhen exposing the APIs, these were missed.\nThe outer structure is exposed, so this exposes\nthe addAddress and removeAddress methods.\n\nBug: 75234273\nTest: compilation\nMerged-In: I79911434f9baa660e4d8564cc59d80da4a710c42\nChange-Id: I79911434f9baa660e4d8564cc59d80da4a710c42\n(cherry picked from commit a83601a511c3f11470109d78d1a736acdb9c6bd8)\n"
    },
    {
      "commit": "b8651f6fba3afa7501c4e6924f0324159f64a9c9",
      "tree": "774973e53ca6c328cf9f49237c79dadcd7b170cd",
      "parents": [
        "60b877fa8c8c823bcfdb228d847eb1f87f6d4521",
        "d60a07f022404f9b7c67f07d02144443807b3688"
      ],
      "author": {
        "name": "Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Tue Mar 20 22:53:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 22:53:31 2018 +0000"
      },
      "message": "Merge \"Mark eraseSubscriptions as @SystemApi.\" into pi-dev"
    },
    {
      "commit": "06ce5f6803c65bb69f2961ba4e917b57da45058b",
      "tree": "2ecc4a1c6a30d26af6f4658997b38545f1e8d2e7",
      "parents": [
        "651667cea110fe4278bbbca8c6819fb4a9e7798f",
        "f0acb024331a0f4062a57ceef7e58c919a64d880"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 20 21:31:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 21:31:58 2018 +0000"
      },
      "message": "Merge \"Make SYSTEM_INTERACTION a SystemApi\" into pi-dev"
    },
    {
      "commit": "18e3eb816887156f40def1c14db434ddde9ec245",
      "tree": "eb89c3addc9bac983b9d4fb1138ebe4de5fcc52a",
      "parents": [
        "a5fd0294c76c1faa3479a2093ae3e5f0838791ad"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Fri Mar 09 16:55:55 2018 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Mar 20 13:57:14 2018 -0700"
      },
      "message": "Add SoundTriggerDetectionService\n\nThe service is meant to replace the PendingIntent based API. Once all\nusers of the PendingIntent based API switched the PendingIntent based API\nwill be removed.\n\nTo have as little as possible impact on the whole SoundTrigger framework\nthe RemoteSoundTriggerDetectionService class implements the same\ninterface as the PendingIntent based class. Hence the exising code has\nvery little change. Further once the old code can be removed the amount\nof changed (and added) code is limited.\n\nThe RemoteSoundTriggerDetectionService -\u003e SoundTriggerDetectionService\nis a vanilla as possible service implementation. The special behaviors\nare:\n- The system holds a wakelock while service operations are in progress\nand the service is bound as foreground. Hence the service can e.g.\nlisten to the microphone.\n- Service operations have a certain amount of time they are allowed to\nrun. Once every operation is either finished or the the operation\nexceeded the allotted time, the system calls onStopOperation for each\nstill pending operation. This is a similar model as for the commonly\nused JobService.\n  Please note that if the time allowed for an operation is 15s and\nop1 was run as 0si, and op1 was run at 5s, the service is allowed to run\nuntil 20s. Hence _both_ onStopOperations will happen at 20s. This is\ndone for ease of implementation but should not give the service more\npower than calling onStopOperation exactly 15s after each operation is\ntriggered.\n- If an operation is done before the allotted time is reached, the\nservice can declare the operation as finished manually by calling\nonOperationFinished. This is a call back into the system, hence a\n\u0027client\u0027 binder is sent to the service. If the operation is finished\nby calling this method onStopOperation will not be called.\n- As the service instance might be killed and restored between\noperations we add a opaque bundle \u0027params\u0027 to each operations. The users\nof the API can use this to send data from the start command to the\noperations. It can also just be set to null. The params are not meant to\nstore changing state in between operations. Such state needs to be\npersisted using the regular methods (e.g. write it to disk)\n- A service can be used for multiple recognition sessions. Each\nrecognition is uniquelity defined by its sound model UUID. Hence each\noperation gets at least tree arguments: Operation ID, sound mode UUID, params\n- As a small optimization the params are cached inside of the service\ninstance.\n\nThe time allowed for each operation is in a @SystemAPI global setting,\nso the service can make sure it finishes the operations before they are\nstopped. It might take some time to deliver the operations via the\nbinder, hence it is not recommended to try to use every last ms of\nallotted time.\n\nTest: atest SoundTriggerDetectionServiceTest (added in separate CL)\n      atest android.provider.SettingsBackupTest\nChange-Id: I47f813b7a5138a6f24732197813a605d29f85a93\nFixes: 73829108\n"
    },
    {
      "commit": "a5fd0294c76c1faa3479a2093ae3e5f0838791ad",
      "tree": "6bed7e39614da1a36a94361aebfc1e9d4e4a5b97",
      "parents": [
        "c863d506cfb0df24f8a5291a3ae33434e75f014d"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Mar 06 13:44:07 2018 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Tue Mar 20 13:57:14 2018 -0700"
      },
      "message": "Expose SoundTriggerManager and SoundTrigger APIs\n\nThese APIs require a system permissions, hence SystemAPI.\n\nAs SoundTrigger is now partially SystemApi and partially internal API a\nlot of @hide tags are needed to keep hiding the still internal classes,\nfields and methods. As SoundTrigger is heavily used via reflection no\nstructural change to this class can be made.\n\nThe MANAGE_SOUND_TRIGGER permission should be visible to the apps as\nthe apps need to know which permission to request in their manifest.\nIf it wouldn\u0027t be exposed it would just be a magic string.\n\nTest: built\nChange-Id: Ic93d67639e2605c26c961acdd827c14cb0a68f47\nBug: 73829108, 71981721\n"
    },
    {
      "commit": "cfa85917798b3b96b49a6c7c9a13bf0e0876f044",
      "tree": "30f11237381fef2544904c0ebc7574abffc6da23",
      "parents": [
        "3785417848f95c24d2095daeaed0d1cb6b04fb35",
        "71e4c9bfade54977b98eb6c68f01100c074b0329"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Tue Mar 20 19:27:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 19:27:10 2018 +0000"
      },
      "message": "Merge \"Revert \"TelephonyManager System APIs process\"\" into pi-dev"
    },
    {
      "commit": "71e4c9bfade54977b98eb6c68f01100c074b0329",
      "tree": "820095243f38eb5e43cbe5bc57f5275ed7dc4bfe",
      "parents": [
        "2f398567532dee2764d85496f9f56cbce287c96d"
      ],
      "author": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Tue Mar 20 16:18:36 2018 +0000"
      },
      "committer": {
        "name": "Amit Mahajan",
        "email": "amitmahajan@google.com",
        "time": "Tue Mar 20 16:21:39 2018 +0000"
      },
      "message": "Revert \"TelephonyManager System APIs process\"\n\nThis reverts commit 2f398567532dee2764d85496f9f56cbce287c96d.\n\nReason for revert: b/75998747\n\nBug: 75998747\nMerged-in: I4a98388c732249ce2aaf05a57c3a98c15f4bd4b3\nChange-Id: I35569102bc311162c3d3550fadb6b4307dbe3af1\n"
    },
    {
      "commit": "a382a8e668445e51aa2f035aedccb91edd1503be",
      "tree": "d4eb708ce0f4227a169efd9b201e32392e7a5a6f",
      "parents": [
        "2034c837b2c76d224b8ad2cf34f21a51b7cef3d7"
      ],
      "author": {
        "name": "Peter Visontay",
        "email": "pvisontay@google.com",
        "time": "Fri Mar 16 16:06:57 2018 +0000"
      },
      "committer": {
        "name": "Peter Visontay",
        "email": "pvisontay@google.com",
        "time": "Tue Mar 20 14:25:12 2018 +0000"
      },
      "message": "Add missing \"android:\" prefix to some app op constants.\n\nBug: 75253734\nTest: none\nChange-Id: Ie91b4bee938b9c834c2cb3c831e3473fab0f534c\n"
    },
    {
      "commit": "46c0e91b74fbddf0031175ec855b11a12581fe11",
      "tree": "b434a9020a7ff38f016d736e4f57ad951a4dad2f",
      "parents": [
        "c45c2d65a58d1dfc64bc8532f33bd7b6c8e42f86",
        "015288241edac0f87929774b35b3aa06fc6bb911"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 19 22:15:11 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 22:15:11 2018 +0000"
      },
      "message": "Merge \"Removing the settings-based IncidentReportArgs method.\" into pi-dev"
    },
    {
      "commit": "96e680cb90594c5bae1625a3ea6009fd9ea02f16",
      "tree": "f17371e120a88bb4b9278b483f5341bd2d6e88d7",
      "parents": [
        "0c46d7b57ffc30d5a7c6d743496350443131331c",
        "c1a3a0d780e37e7c061bc94ae19fe4a6010c583e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 19 21:04:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 21:04:39 2018 +0000"
      },
      "message": "Merge \"Small fixes to StatsManager API.\" into pi-dev"
    },
    {
      "commit": "f0aeb0578e2283081cc2e755661b8f92d7233599",
      "tree": "09fda671d48f3f3b213ffcb0a10087570dc7cad3",
      "parents": [
        "dba47fcd09a50bdddcf6509d0766dfca3a5d39a7",
        "2f398567532dee2764d85496f9f56cbce287c96d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 19 20:55:18 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 20:55:18 2018 +0000"
      },
      "message": "Merge \"TelephonyManager System APIs process\" into pi-dev"
    },
    {
      "commit": "2f398567532dee2764d85496f9f56cbce287c96d",
      "tree": "b48723dc874da26f6e2d6e0f9a44669db6bd7802",
      "parents": [
        "dbeb6bc3f14d51cfee7b16214c348e2824a9d5ef"
      ],
      "author": {
        "name": "sqian",
        "email": "shuoq@google.com",
        "time": "Thu Mar 08 17:03:35 2018 -0800"
      },
      "committer": {
        "name": "sqian",
        "email": "shuoq@google.com",
        "time": "Mon Mar 19 11:35:36 2018 -0700"
      },
      "message": "TelephonyManager System APIs process\n\n- lock down some TelephonyManager APIs with system permission\n- deprecate some TelephonyManager APIs due to its equivalents\n- introduce an aidl interface that handles the current\ngetPhoneType() functions\n\nThe doc: https://docs.google.com/spreadsheets/d/1OJ6EXJ-Zys21mZ1BHgJeWkcfLq0pPxBR765r46ck80U/edit#gid\u003d0\n\nBug: 62346128\nTest: Compile\nChange-Id: I5367372f3304e5ad368d0d4775f6e96168243aa3\nMerged-In: I5367372f3304e5ad368d0d4775f6e96168243aa3\n(cherry picked from commit 3b991aee47d7c46c7ae708636e268b0c7709b3e2)\n"
    },
    {
      "commit": "c1a3a0d780e37e7c061bc94ae19fe4a6010c583e",
      "tree": "00cb54ce534272a1ee6b8f7046653d36ea8f3bc9",
      "parents": [
        "02a4219cb7ff9ad848456903ac939f019d2161fc"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Feb 21 18:58:23 2018 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Mar 19 10:26:51 2018 -0700"
      },
      "message": "Small fixes to StatsManager API.\n\nAdds some annotations, deletes an unused API method, and adds some\ncomments.\n\nTest: Flashed onto marlin-eng and verified there are no crashes.\nBug: 72562867\nChange-Id: I6c93ee4aeeacf6842795256c76551cfb1c28888d\n"
    },
    {
      "commit": "6d1009f882f1b0234e77ec3bb583a58090bfff39",
      "tree": "92cb2df2f3332d0d6012b9b7970e0044206955a6",
      "parents": [
        "b7ad5e429f7ec16bb0c35e1aed9e0e7a87a78f65"
      ],
      "author": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Wed Mar 14 14:28:23 2018 +0000"
      },
      "committer": {
        "name": "Kenny Guy",
        "email": "kennyguy@google.com",
        "time": "Mon Mar 19 15:05:25 2018 +0000"
      },
      "message": "Get current and default brightness configs.\n\nGetter System API to match existing setter for\nthe bightness configurations.\nGetter System API to read the default brightness\nconfiguration.\n\nBug: 74105596\nTest: atest BrightnessTest\n\nChange-Id: If0a0effad6a4ba6da2e5391dd6bde91dc04bad9c\n"
    },
    {
      "commit": "015288241edac0f87929774b35b3aa06fc6bb911",
      "tree": "019418038896a9b0f8e7d6f1a640c5037a2ceb10",
      "parents": [
        "e588d6145dfd7171903e2e8c3583ba4904e07394"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Thu Mar 08 18:58:43 2018 -0800"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Fri Mar 16 18:15:46 2018 -0700"
      },
      "message": "Removing the settings-based IncidentReportArgs method.\n\nBug: 72378645\nTest: Flashed device\nChange-Id: Ia12afffed169e1d0201e99887e74398de40c6cf6\n"
    },
    {
      "commit": "a8bb9d255fe933938dab8c7ceec94b4fcd984847",
      "tree": "950caeba2669c34bd777b6a937f5ff4ff6595c24",
      "parents": [
        "3b0450d4a96b8caa24bb2ae0a8d29bfc1ff4e7d3",
        "62ec27e97f68513c5637383fb72de469c5e903c1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 16 22:40:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 22:40:46 2018 +0000"
      },
      "message": "Merge \"App Time Limits API in UsageStats\" into pi-dev"
    },
    {
      "commit": "c1742e51378c3ec99a0e5df14dc0c77bcca0d16a",
      "tree": "37f47804617eeb769214000a83a43dd28630385b",
      "parents": [
        "f836c8940a20e0b3e09f0b6e74375364ca2725c4"
      ],
      "author": {
        "name": "Aseem Kumar",
        "email": "aseemk@google.com",
        "time": "Mon Mar 12 14:34:58 2018 -0700"
      },
      "committer": {
        "name": "Aseem Kumar",
        "email": "aseemk@google.com",
        "time": "Fri Mar 16 13:07:25 2018 -0700"
      },
      "message": "Unhide getKey() and importKey() and the whole class of RecoveryController.\nAdded @RequiresPermission(android.permission.RECOVER_KEYSTORE) on all\npublic APIs of RecoveryController.\n\nBug: 73900159\nTest: adb shell am instrument -w -e package \\\ncom.android.server.locksettings.recoverablekeystore \\\ncom.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: I1047c038603869307d7a2462a2e5635fcd1c94c2\n"
    },
    {
      "commit": "f0acb024331a0f4062a57ceef7e58c919a64d880",
      "tree": "98db80d2f92e3ba19595c180bbb16f5a513d673c",
      "parents": [
        "7d17dd7184ce2cdf3dbc0dac6ead40549ef3987b"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Thu Mar 15 20:17:22 2018 -0700"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Fri Mar 16 12:03:20 2018 -0700"
      },
      "message": "Make SYSTEM_INTERACTION a SystemApi\n\nChange-Id: I53f6180b47fcf3d678d447f180f3c60a099cbbf1\nFixes: 74004153\nTest: builds and flashes\n"
    },
    {
      "commit": "d60a07f022404f9b7c67f07d02144443807b3688",
      "tree": "0fc4ba6ca5cdb90451b6e6c8b84ae2009fc79a85",
      "parents": [
        "889cf2e00dc518bb1436cf6c6b8d75dc80c6e4f3"
      ],
      "author": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Tue Mar 13 17:20:07 2018 -0700"
      },
      "committer": {
        "name": "Holly Jiuyu Sun",
        "email": "jiuyu@google.com",
        "time": "Fri Mar 16 10:43:30 2018 -0700"
      },
      "message": "Mark eraseSubscriptions as @SystemApi.\n\nThis is a blocker for P.\n\nBug: 74621500\nTest: test on phone\nChange-Id: I9455a0b7594cbd2acbdbba99a725c9866c448a07\n"
    },
    {
      "commit": "62ec27e97f68513c5637383fb72de469c5e903c1",
      "tree": "ce5ceae6a6e2939674f9a6633acdb84a81e19bf5",
      "parents": [
        "200de1cc86c38bc34317c500f808be40baf341d0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Mar 11 14:42:06 2018 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 15 17:07:28 2018 -0700"
      },
      "message": "App Time Limits API in UsageStats\n\nAllow setting groups of apps to control usage time limits on.\nApplies only to activity time in the foreground.\n\nUpdated UsageStatsTest app to be able to add an observer for\na 30 second timeout across multiple comma separated package\nnames.\n\nBug: 74335821\nTest: atest FrameworksServicesTests:AppTimeLimitControllerTests\n      Install and run frameworks/base/tests/UsageStatsTest\n\nChange-Id: I677c30b4f211f7acf72c9766df3d8c1ac56a4b4e\n"
    },
    {
      "commit": "5d9617c439d0f85b67ba0d21e43f665ab9bf13ae",
      "tree": "1fc134c6150743665b53b29515c826bfe5ae1c4d",
      "parents": [
        "75a3173245ac35f97dbb3e931ab5d2f4cfda5b5a",
        "aa90e8781fd9390f547f3346d34ebbe158415ade"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 03:00:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 03:00:46 2018 +0000"
      },
      "message": "Merge \"Add notification category: CATEGORY_NAVIGATION; Add @SystemApi @hide notification categories: CATEGORY_CAR_EMERGENCY, CATEGORY_CAR_WARNING, and CATEGORY_CAR_INFORMATION.\" into pi-dev"
    },
    {
      "commit": "b33cef07f27afe00f4db54215af02f7f58bfffde",
      "tree": "65baaea59d028d22b7fd91d811be05552b502c97",
      "parents": [
        "c6556e7cb6717ec015dbe95d9b5bc41efbcc77a6",
        "4e12de81b86f1f77bb5fe2864250c2ceda307f81"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 15 01:08:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 01:08:33 2018 +0000"
      },
      "message": "Merge \"Unhiding APIs in UsageEvents for public use\" into pi-dev"
    },
    {
      "commit": "aa90e8781fd9390f547f3346d34ebbe158415ade",
      "tree": "fc2f6d97d9e623c878fb89cda3fd2ba1a66efd0b",
      "parents": [
        "41b5ece1359db36c59a38629225c75da7513e9cd"
      ],
      "author": {
        "name": "Adora Zhang",
        "email": "qiaozhang@google.com",
        "time": "Mon Mar 12 14:07:50 2018 -0700"
      },
      "committer": {
        "name": "Adora Zhang",
        "email": "qiaozhang@google.com",
        "time": "Wed Mar 14 14:53:26 2018 -0700"
      },
      "message": "Add notification category: CATEGORY_NAVIGATION;\nAdd @SystemApi @hide notification categories: CATEGORY_CAR_EMERGENCY, CATEGORY_CAR_WARNING, and CATEGORY_CAR_INFORMATION.\n\nBug: 74546526\nTest: runtest -x tests/app/src/android/app/cts/NotificationTest.java\n\nChange-Id: Ib997992e039d2eddbd9c744816c35e279f9f9682\n"
    },
    {
      "commit": "4e12de81b86f1f77bb5fe2864250c2ceda307f81",
      "tree": "0eb14ae62dd6767f0d98837f397f94e9d7f68977",
      "parents": [
        "f2939ab2da5586cdf5f64ec72a643814ec6fdd4c"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Mar 08 18:34:15 2018 -0800"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Wed Mar 14 14:27:09 2018 -0700"
      },
      "message": "Unhiding APIs in UsageEvents for public use\n\nThese apis are needed to interpret standby bucket change history\nwhen using UsageStatsManager#queryEventsForSelf\n\nTest: atest android.app.usage.cts.UsageStatsTest#testQueryEventsForSelf\n\nBug: 71906213\nChange-Id: Ib9f458bf32089ad30c97eca9dd5cc4df5a392191\n"
    }
  ],
  "next": "bf5387edd88cdceb5208899ebd70d188fea54cfa"
}
