)]}'
{
  "log": [
    {
      "commit": "17492d06912c311084742336df2f6eb6bce5ace1",
      "tree": "21f010a0e2812ee51c08a5cc9910fdc2f5949a3c",
      "parents": [
        "4837dbe53612a1a6edbed058bfc214aa0da62613",
        "ee4d7be21948307a0fedc6ab75a21d41660aa0c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 14 10:13:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 14 10:13:32 2019 +0000"
      },
      "message": "Merge \"Add a whitelist to control packages that can use Bugreporting API\""
    },
    {
      "commit": "274ce2d831e7238de82d26ef213f69f7540cbbc3",
      "tree": "67305104a0a2b9a64269d9520ac2f2d824809b32",
      "parents": [
        "09a4ee1988ad8237b1e2bfa0a45d9b0e6048cf72",
        "ea435f81ad1d1a03f94a06814d858c9155c01947"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 13 21:45:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 21:45:28 2019 +0000"
      },
      "message": "Merge \"Add me to owners for batterystats.\""
    },
    {
      "commit": "ea435f81ad1d1a03f94a06814d858c9155c01947",
      "tree": "a7d47d2d38879fa7bbfaf5e967b990085d5f11d7",
      "parents": [
        "350f48328b6385dfedf9a849454427cd0bb1d3d7"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Mar 13 12:11:05 2019 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Mar 13 12:16:07 2019 -0700"
      },
      "message": "Add me to owners for batterystats.\n\nI do solemnly swear that other powers I get incidentally will be\nused carefully.\n\nTest: none\nBug: 123732427\nChange-Id: I672f5f10b32646b8beb3e9692ed131019c391593\n"
    },
    {
      "commit": "a4dac052109cd309a29d6d376a8fec7b3a7e05a3",
      "tree": "884edd4908b6b1d0a0078704c91f774926770686",
      "parents": [
        "b9478c48cf1c467934af7c431fb2f4d0b6e2d839",
        "1841870f226e33fafab19d56322ebd0848cab6c7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 13 18:52:35 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 18:52:35 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE Let isLocationEnabledForUser() return true location setting\""
    },
    {
      "commit": "b9478c48cf1c467934af7c431fb2f4d0b6e2d839",
      "tree": "101098ff7aa21a0e684f1acc5a1494dd921a2f72",
      "parents": [
        "8ced10ec234e5aa3379d6f0e06857e3cccaf2e0b",
        "1c918f7e1e63d4c1941568af01a6a61c2c7be1c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 13 18:01:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 18:01:46 2019 +0000"
      },
      "message": "Merge \"Add alanstokes as owner of DynamicCodeLoggingService.\""
    },
    {
      "commit": "ee4d7be21948307a0fedc6ab75a21d41660aa0c5",
      "tree": "b4e56124c3ae516b0d8a7bdf8646a0ca959ff7c7",
      "parents": [
        "a018254b452a04e0f4822b38c15b47df9c0a230d"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Feb 28 21:35:02 2019 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Mar 13 17:01:56 2019 +0000"
      },
      "message": "Add a whitelist to control packages that can use Bugreporting API\n\nTest: checked SecurityException is thrown for my custom app\nTest: whiltelisted my custom app, checked no SecurityException is thrown\nBug: 126541701\nChange-Id: Id0b61ccc1adf40bcb455d3b59b640f4b160bdd84\nMerged-In: Id0b61ccc1adf40bcb455d3b59b640f4b160bdd84\n(cherry picked from commit 07964b49ac81b9955d9ecf5cf60c0bb1fc32c501)\n"
    },
    {
      "commit": "5a490d4bb77a47230627cce87438e99afe4cf59c",
      "tree": "aa4dfc23502260361b3e53439b66aba6d3c06672",
      "parents": [
        "a018254b452a04e0f4822b38c15b47df9c0a230d",
        "2410821b670bdc76c2089124b152f14a0eeed218"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 13 16:51:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 16:51:30 2019 +0000"
      },
      "message": "Merge changes from topic \"hidl-updater-system\"\n\n* changes:\n  pm: AndroidHidlUpdater: system only\n  pm: PackageBackwardCompatibility -\u003e applyPolicy\n"
    },
    {
      "commit": "1c918f7e1e63d4c1941568af01a6a61c2c7be1c1",
      "tree": "abd2b03704e149ff61779368ca02849b2dff5e10",
      "parents": [
        "e27b409046253b69a748ee2419a511f19fe7695d"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Mar 12 12:51:13 2019 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Wed Mar 13 12:33:59 2019 +0000"
      },
      "message": "Add alanstokes as owner of DynamicCodeLoggingService.\n\nAs suggested by agampe on I69f415929785845ede8f2d1341f4b70f97b4f480.\n\nTest: None.\nChange-Id: Ibaac6f5d96ad9b9a343ba8940345bc7d0c8126d9\n"
    },
    {
      "commit": "e27b409046253b69a748ee2419a511f19fe7695d",
      "tree": "4dff635f4025c4ebc0da851ae95769cbd2ca519b",
      "parents": [
        "894c578a023b49e1b7852dea8629520b6d66d27e",
        "87f403e6b21d8de19a4bf77bf491cebb536beaf7"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Wed Mar 13 12:33:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 12:33:03 2019 +0000"
      },
      "message": "Merge \"Refactor OWNERS file.\""
    },
    {
      "commit": "a5fe44c6b538c2a86cb18a10bf9e947085b6e3bf",
      "tree": "09d3b575931f4a52bc7061bf95c66d283f062a18",
      "parents": [
        "ae79013ec21c91c9aaaf2cda2a850229125c5bcb",
        "3e112d56a4ed55ddfaa5226f8e4bc4e90244c093"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Mar 13 02:26:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 13 02:26:04 2019 +0000"
      },
      "message": "Merge \"DO NOT MERGE - Merge PPRL.190305.001 into master\""
    },
    {
      "commit": "1841870f226e33fafab19d56322ebd0848cab6c7",
      "tree": "f4a8b9e0a78e0a7aa30cc80a9e182d1e53cbc4c9",
      "parents": [
        "f96cc080668db4442b38e8e48d70db2e010ed354"
      ],
      "author": {
        "name": "Soonil Nagarkar",
        "email": "sooniln@google.com",
        "time": "Mon Mar 04 17:17:22 2019 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Tue Mar 12 21:47:07 2019 +0000"
      },
      "message": "DO NOT MERGE Let isLocationEnabledForUser() return true location setting\n\n* In API 28, LocationManager#isLocationEnabled() and\n  LocationManager#isLocationEnabledForUser(UserHandle) always\n  return false when a device has neither LocationManager#GPS_PROVIDER\n  nor LocationManager#NETWORK_PROVIDER.\n* Instead of letting setLocationEnabled() and isLocationEnabled()\n  depend on whether device has GPS or NETWORK location provider, this\n  CL changes these two APIs to directly use LOCATION_MODE setting to\n  store the location enable state\n* Hence when LOCATION_PROVIDERS_ALLOWED contains a provider, the provider\n  may be used, but it is not guaranteed to exist\n* Settings.java has two workarounds that actually convert:\n   - putInt(LOCATION_MODE, LOCATION_MODE_HIGH_ACCURACY)\n       \u003d\u003e putString(LOCATION_PROVIDERS_ALLOWED, \"+gps\");\n       \u003d\u003e putString(LOCATION_PROVIDERS_ALLOWED, \"+network\");\n   - getInt(LOCATION_MODE, LOCATION_MODE_HIGH_ACCURACY)\n       \u003d\u003e getString(LOCATION_PROVIDERS_ALLOWED):\n         - \"gps,network\" - LOCATION_MODE_HIGH_ACCURACY\n         - \"gps\"         - LOCATION_MODE_SENSORS_ONLY\n         - \"network\"     - LOCATION_MODE_BATTERY_SAVING\n\t - others        - LOCATION_MODE_OFF\n* Hence this is NOT a new behavior\n\nBug: 121040693\nBug: 118242060\nBug: 127359153\nTest: CTS tests,\nandroid.bluetooth.cts.BluetoothLeScanTest#testBasicBleScan,\nandroid.bluetooth.cts.BluetoothLeScanTest#testScanFilter,\nandroid.location.cts.LocationManagerTest,\nandroid.location2.cts.LocationManagerTest\nChange-Id: I7972d8f97f4ca82c58c29641a081ef73fdcb106c\n"
    },
    {
      "commit": "b28b7960b2bd2d33cbccd88d2d4d3c05e09f2770",
      "tree": "3a37dda0a944c90264b6eb04bc790aa89d12c6b8",
      "parents": [
        "8bf13f06d71f01b79752965526cbdf598c1067fd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Mar 06 09:20:37 2019 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Mar 12 21:44:08 2019 +0000"
      },
      "message": "pm: PackageBackwardCompatibility -\u003e applyPolicy\n\nThis moves PackageBackwardCompatibility from parsePackage to\napplyPolicy.\n\nThe motivation of this is to expose partition information to these\nfiles. Specifically, to expose whether the app is a pre-installed\n(or updated pre-installed app) for certain backwards compatibility\nrules that should only apply to these cases.\n\nBug: 86259915\nTest: boot Pixel 2\nTest: Pixel 3: atest -p cts/tests/signature\n- all passed except for CtsSystemApiAnnotationTestCases test which\n  failed (known issue b/124210145)\nChange-Id: Ic824f06489781233dc98bf3dc0182681d32f7142\n"
    },
    {
      "commit": "05ab6811d067987958b95b6361ba6e080b5294f9",
      "tree": "6836b9695cb5dbae13c8595d9739e4a8d6527209",
      "parents": [
        "eb3e7b3f64d2587fa22d2954ff6ab80d11f1de98"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed May 02 21:14:54 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 12 21:47:21 2019 +0900"
      },
      "message": "Tell the factory it is already serving a request.\n\nThis is a cherry-pick of ag/607226 that has been rebased on\ntop of four years of changes and with comments addressed.\n\nGives each factory a serial number and propagates it to every\nNetworkAgent so when a score comes back indicating a request is\nbeing handled the factory can account for it properly.\n\nWithout this, a new request that\u0027s already handled by a network\noffered by a factory will not cause an increment of the factorys\nref count. Concretely this results in issues like the RAT icon\nnot being displayed in spite of the network actually being up\nand usable.\n\nThis will be ported to AOSP as soon as possible, but immediately\nsome master-only WiFi tests need to be adjusted with this change\nwhich would not let me submit to AOSP.\n\nBug: 18637384\nBug: 29030667\nTest: manual\nTest: atest frameworks/opt/telephony/tests/telephonytests\nTest: atest frameworks-net\nTest: atest CtsNetTestCases CtsHostsideNetworkTests\nChange-Id: I597ac588f76dd507512ff02868fd1310b7e63f7e\nMerged-In: I597ac588f76dd507512ff02868fd1310b7e63f7e\n"
    },
    {
      "commit": "87f403e6b21d8de19a4bf77bf491cebb536beaf7",
      "tree": "d15b93323aeb86f5f79cbbaef562dcb1389e1f24",
      "parents": [
        "307df45b5fdfb990aeb0bf7aca5ddacefebdc93e"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Mar 12 12:47:08 2019 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Mar 12 12:47:08 2019 +0000"
      },
      "message": "Refactor OWNERS file.\n\nThis makes it easier to read the per-file exeptions and to make\nfurther changes.\n\nSpecifically:\n- Collapse multiple lines so we only have one per-file line per file.\n- Remove per-file owners who are already global owners of all files here.\n\nSee https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/syntax.md.\n\nThis reverts many of the changes in\nb662614ca624c3d79827470fafb522b0d9b7f48f but I believe does not\nactually change the effect of it at all.\n\nTest: None.\nChange-Id: I1bef6e806c17344c57377a8ab28109fa40e9ecf2\n"
    },
    {
      "commit": "eb3e7b3f64d2587fa22d2954ff6ab80d11f1de98",
      "tree": "633ea90e6ef5988cef1bbf50950d783b5bb9c83e",
      "parents": [
        "307df45b5fdfb990aeb0bf7aca5ddacefebdc93e",
        "ddb720a85ed39b855984aff1d14a54dde0b6a011"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 12 12:04:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 12:04:46 2019 +0000"
      },
      "message": "Merge \"[CS] Support \"instant failure\" from factories\""
    },
    {
      "commit": "e252a740ca6323c5497cab2b1ed277572304c9fc",
      "tree": "5da78d6e3f1f4d6d85f66bc63a4630fe11754f76",
      "parents": [
        "f96cc080668db4442b38e8e48d70db2e010ed354"
      ],
      "author": {
        "name": "lucaslin",
        "email": "lucaslin@google.com",
        "time": "Tue Mar 12 13:08:03 2019 +0800"
      },
      "committer": {
        "name": "Lucas Lin",
        "email": "lucaslin@google.com",
        "time": "Tue Mar 12 07:37:33 2019 +0000"
      },
      "message": "Check if network has partial connectivity\n\nIn some networks, network validation may only get success\nresult for http probe but fail result for https probe.\nFor this kind of network, it may still work at some websites\nor apps, but user didn\u0027t know about that. In order to fix this\nissue, we will check if network has partial connectivity and\nnotify user to make a choice if they want to use this partial\nconnectivity or not.\n\nBug: 113450764\nTest: 1. Build pass.\n      2. Fake partial connectivity case for testing.\n      3. atest FrameworksNetTests\n      4. atest NetworkStackTests\n\nChange-Id: I69ed00ac4850904ff708c9fef22e148879a10e92\n"
    },
    {
      "commit": "3e112d56a4ed55ddfaa5226f8e4bc4e90244c093",
      "tree": "c29eec27616098c92fe83d5bca52bb8d11258bd6",
      "parents": [
        "bee0cbe5df04d56d0e66ae2deb28b650fb0b26fe",
        "33e0de46b6b006137bd8f30d7eee8be77432dd5d"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Mar 12 00:17:37 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Mar 12 00:17:37 2019 -0700"
      },
      "message": "DO NOT MERGE - Merge PPRL.190305.001 into master\n\nBug: 127812889\nChange-Id: I7c5ada5c5afe38848be733616cbb1568440ab1c5\n"
    },
    {
      "commit": "f9cca7dcc2ef4480d362a6b3b806a002264bbc5c",
      "tree": "e5a1f8756be109271deedae0d96c99345450970e",
      "parents": [
        "47890345d0f2812f1aca7d3f5d6cecb47e9bd90c",
        "c7054c5e2083ef37e65d53e18cfb80940729d5ae"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 12 05:27:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 05:27:33 2019 +0000"
      },
      "message": "Merge \"Move NetworkStack start to AM.systemReady\""
    },
    {
      "commit": "cc3a190b0735e75cf2cee8b38d5188ed3b740d54",
      "tree": "ec88a5d1228824a5d3b70832c26e1942cae2c781",
      "parents": [
        "b8f2ab93623d9301ce4cf8ace6545908bcbae548",
        "1d5cd19090d62cdb27b3ab0261fee56b8f80a9cd"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Tue Mar 12 05:11:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 05:11:50 2019 +0000"
      },
      "message": "Merge \"Improve keepalive offload documentation and error handling\""
    },
    {
      "commit": "c7054c5e2083ef37e65d53e18cfb80940729d5ae",
      "tree": "05817b41acc4f0ef3cab358c7507ff1ed833922b",
      "parents": [
        "7c447498c38f633718d2a95adef3a0609e86862e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 12 11:50:22 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 12 04:53:11 2019 +0000"
      },
      "message": "Move NetworkStack start to AM.systemReady\n\nIn practice the NetworkStack was not started after\nActivityManager#systemReady, since ActivityManager was only scheduling\nthe start (mPendingStarts).\nRequesting the start too early causes issues for the PackageManager to\ninstall updates/rollbacks.\n\nTest: flashed AOSP and internal builds, WiFi working\nBug: 128331883\nChange-Id: I93315ad31925bd436e21d1eabb21d5967e6aae60\n"
    },
    {
      "commit": "b8f2ab93623d9301ce4cf8ace6545908bcbae548",
      "tree": "b6ae486cdbe42609f2ce4d0e2b77bd2859c96e5b",
      "parents": [
        "bc18cc9b194f69e1d93b04637451f45d743bebb7",
        "8acc99a974a8c0a8f3e3ca3be06356b0f5e6f702"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 12 01:37:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 12 01:37:26 2019 +0000"
      },
      "message": "Merge \"Use an in-process APK for in-process NetworkStack\""
    },
    {
      "commit": "ddb720a85ed39b855984aff1d14a54dde0b6a011",
      "tree": "307626c04148f02bb4b265adad708a492137fcc0",
      "parents": [
        "e17575c03e1c1fb92f01fb7ff5d56e76692ddaa4"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Tue Jan 08 12:09:18 2019 -0800"
      },
      "committer": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Mon Mar 11 16:15:43 2019 -0700"
      },
      "message": "[CS] Support \"instant failure\" from factories\n\nAdd a mechanism by which a factory can declare \"instant failure\" for\na request - which would result in it getting an OnUnavailable()\n(even without a timeout).\n\nFactories may only do this iff:\n1. They know they are the only factory which may fulfill this\n   request (common for transport-specific requests).\n2. The know that the request can definitely not be\n   fulfilled at any point in the future.\n\nBug: 31382922\nTest: atest ConnectivityServiceTest\nMerged-In: I9bce0f4d85fa8cad7f8a9998819f945b778c5ac5\nChange-Id: I9bce0f4d85fa8cad7f8a9998819f945b778c5ac5\n"
    },
    {
      "commit": "bc18cc9b194f69e1d93b04637451f45d743bebb7",
      "tree": "1b4dbfc0dd86192474b5170e57d5b7ca954dfc1b",
      "parents": [
        "118354f77c8db8ebbcad421b25976795c53882bf",
        "df6b2f6989f2ce7ede7fca00b1e0cfcbcdc1f0a3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 22:57:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 11 22:57:58 2019 +0000"
      },
      "message": "Merge \"Remove android-support-test lib from testutils.\""
    },
    {
      "commit": "df6b2f6989f2ce7ede7fca00b1e0cfcbcdc1f0a3",
      "tree": "5e712e5b7619dc10b121ad704d9b565638ecec4c",
      "parents": [
        "bee0cbe5df04d56d0e66ae2deb28b650fb0b26fe"
      ],
      "author": {
        "name": "Ian Kasprzak",
        "email": "iankaz@google.com",
        "time": "Fri Mar 08 18:49:31 2019 -0800"
      },
      "committer": {
        "name": "Ian Kasprzak",
        "email": "iankaz@google.com",
        "time": "Mon Mar 11 20:09:29 2019 +0000"
      },
      "message": "Remove android-support-test lib from testutils.\n\nFixed dependencies as needed.\n\nFixes apct/net/networking_framework_unit_test broken\nin aosp/919393.\n\nTest: m tests, checkbuild and Forrest (via gerritt) testing\nBug: 127910239\n\nChange-Id: Ida0ca8012ede9227d204935b11002ddfa2f134ff\nMerged-In: Ia825e0926b46855f9056739441cb21a065692076\n(Manual partial cherry-pick of ec6bcbceee8fed0f99d1d5d1760b74eead98668a)\n"
    },
    {
      "commit": "5227285ad764998aa5d7a8d5efc8273f038765d9",
      "tree": "e21d09c62b1eb67272aa957b9769bacb3a2f008c",
      "parents": [
        "bee0cbe5df04d56d0e66ae2deb28b650fb0b26fe",
        "26299ed5fd11282c37d5524abacd1901a8f9dfc3"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Mar 11 17:04:57 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 11 17:04:57 2019 +0000"
      },
      "message": "Merge \"Add tethering event callback API\""
    },
    {
      "commit": "29f63aff0f03fa18b4bd9318948b26e404ad5d65",
      "tree": "68676589a1675c56e6602194ab24e7d57b8240d0",
      "parents": [
        "8e8ed1dfc2314f77d9a356da491b936012f4425c"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Oct 15 14:27:15 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Mar 11 15:58:31 2019 +0900"
      },
      "message": "[PT17.5] Revert to booleans for send/not send broadcast constants.\n\nIn PT17, for security of the patch these two constants have been\nswitched from boolean to enum values. While this is nice for making\nsure a patch is correct, it\u0027s also pretty wasteful. Now that it\u0027s\ncertain that the values of these fields don\u0027t matter, they can be\nset to logical values (as opposed to reversed as it was the case\nbefore PT17.\n\nTest: runtest\nChange-Id: I93a0780e23c2f658687be066dc16f27529baaa86\n"
    },
    {
      "commit": "a1600670167423301d3a5671758f3d7d824e314a",
      "tree": "4da143dcb685e7d78a36d6e2383a0a3c8e1d6fec",
      "parents": [
        "016409b3d532a91fab663c5c5d681b5df7225e88"
      ],
      "author": {
        "name": "Nazanin Bakhshi",
        "email": "nazaninb@google.com",
        "time": "Fri Mar 01 10:10:22 2019 -0800"
      },
      "committer": {
        "name": "Nazanin Bakhshi",
        "email": "nazaninb@google.com",
        "time": "Fri Mar 08 19:24:22 2019 +0000"
      },
      "message": "make onActiveDataSubId in PhoneStateListener public API\n\nBug: 124260187\nTest: CTS\nChange-Id: I6e5a5c8273348d822b8f552599784b8e986850bf\nMerged-In: I6e5a5c8273348d822b8f552599784b8e986850bf\n(cherry picked from commit 026c42d7521c390b171f2b42a9b961fdc325b44a)\n"
    },
    {
      "commit": "016409b3d532a91fab663c5c5d681b5df7225e88",
      "tree": "23d81840b0eb5a42532e23c96dc8ed25261f6da9",
      "parents": [
        "18e0781d3de56c3cad29d52f8a09e84b185da2bc",
        "db859e7ece52d6ebd58b499cd6b1e325e47ac472"
      ],
      "author": {
        "name": "Nazanin Bakhshi",
        "email": "nazaninb@google.com",
        "time": "Fri Mar 08 18:25:59 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 18:25:59 2019 +0000"
      },
      "message": "Merge \"Rename PREFERRED_DATA_SUBID_CHANGE to ACTIVE_DATA_SUB_CHANGE\""
    },
    {
      "commit": "1451b2f3a5aebf326b4fd39ff80c7fd1e54c77c8",
      "tree": "64d50838789ca56421bb6d1ed6723fc9bc02376e",
      "parents": [
        "cfd72b9386632e0704feda6d281be7182677fb08",
        "8ee0674e09f24c897dcff3ed84266daa7618b71d"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Fri Mar 08 17:39:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 17:39:44 2019 +0000"
      },
      "message": "Merge \"Update DynamicAndroidService for IGsiService AIDL changes.\""
    },
    {
      "commit": "26299ed5fd11282c37d5524abacd1901a8f9dfc3",
      "tree": "fc6ba952f5cf911ccdc3f725ee7ccc6019ba6a24",
      "parents": [
        "c8dfb728917c68d9cf4638fb05e4ddbe5ae8f80c"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Feb 27 14:56:11 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Sat Mar 09 00:35:55 2019 +0800"
      },
      "message": "Add tethering event callback API\n\nProvide OnTetheringEventCallback for system app to know\ntethering\u0027s upstream.\n\nBug: 125583822\nTest: -build, flash, boot\n      -atest FrameworksNetTests\n\nChange-Id: I7ca81b27c9b805cc01884509f5b20d9d0a24cd36\nMerged-in: I7ca81b27c9b805cc01884509f5b20d9d0a24cd36\n"
    },
    {
      "commit": "a6f3476476104eed5c59d086da730092b3fe200e",
      "tree": "6ac5e3d28438ce2d95af903566d35aad65103893",
      "parents": [
        "e5e3ac639b08f1d88e7daaf4d7bcece26876ffc2",
        "12aaf7e2ef7e5a707a23992c03b75891f667bc1c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 08 15:55:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 15:55:53 2019 +0000"
      },
      "message": "Merge \"Give Telephony the permissions to access the network stack.\""
    },
    {
      "commit": "e5e3ac639b08f1d88e7daaf4d7bcece26876ffc2",
      "tree": "dbde0f37c605fa6c33ad62f6374e9619c671cfed",
      "parents": [
        "f635f126661cd5190ba852c96cdf14c9d30105eb",
        "ea89cf2c6e300dd66c34cab43a9fadf94cedf8dd"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 15:21:01 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 15:21:01 2019 +0000"
      },
      "message": "Merge \"Add junyulai@ as owner of the core networking dirs\""
    },
    {
      "commit": "ea89cf2c6e300dd66c34cab43a9fadf94cedf8dd",
      "tree": "070eaa1bb801eda55dd0a166b2f33845033188a5",
      "parents": [
        "1b9adbfdd1f18cb16e82f9a6f158d3ac242fffa1"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 20:28:35 2019 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 08 13:04:05 2019 +0000"
      },
      "message": "Add junyulai@ as owner of the core networking dirs\n\nAlso removed emeritus accounts ek@ and silberst@ from various places.\nA cleanup using \u0027include\u0027 would probably be in order...\n\nTest: N/A\nChange-Id: I575e60dd5e600e42d9571ce8e8d7661d30e99bfe\n"
    },
    {
      "commit": "12aaf7e2ef7e5a707a23992c03b75891f667bc1c",
      "tree": "4e7230f676bebe4449a5a5e0f584fb4fafb93619",
      "parents": [
        "58038da960ef93976a76b5e4348033fcd0843294"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 08 19:46:00 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 08 20:43:10 2019 +0900"
      },
      "message": "Give Telephony the permissions to access the network stack.\n\nTest: manual\nChange-Id: I28308f421aa955fe110b50452b115a0178b24745\n"
    },
    {
      "commit": "8acc99a974a8c0a8f3e3ca3be06356b0f5e6f702",
      "tree": "d54c00bbf3aea4a18779ccefb70dd101604ea08c",
      "parents": [
        "5026c9ea2868e879b598e61561313b2b1af44e27"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 08 17:20:49 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 08 19:18:40 2019 +0900"
      },
      "message": "Use an in-process APK for in-process NetworkStack\n\nInstead of having a library in the classpath where the NetworkStack is\ncreated by reflection on devices using the network stack in-process,\njust bind to a version of the network stack service that runs in the\nsystem process.\n\nIf the in-process version is installed it will be used, otherwise the\nmodule is used with its own process.\n\nBug: 127908503\nTest: blueline boots and has functional WiFi\nTest: atest FrameworksNetTests NetworkStackTests\nTest: svelte build boots and has functional WiFi\nChange-Id: I7722b173e5686e0dbb9cfddcfb34344b0f4135d9\n"
    },
    {
      "commit": "086779de1125bc4a0f44220cf8c56e5d5521862d",
      "tree": "823b861a703ebd63d6a5649fe1bd27a8866cd70c",
      "parents": [
        "c8dfb728917c68d9cf4638fb05e4ddbe5ae8f80c"
      ],
      "author": {
        "name": "Jimmy Chen",
        "email": "jimmycmchen@google.com",
        "time": "Thu Mar 07 14:15:36 2019 +0800"
      },
      "committer": {
        "name": "Jimmy Chen",
        "email": "jimmycmchen@google.com",
        "time": "Fri Mar 08 16:34:20 2019 +0800"
      },
      "message": "IPv6: enable IPv6 link local routing for local network\n\nIPv6 link local is an automatically configured address. The routing should be\nactivated regardless of the DHCP service.\n\nBug: 126063997\nTest: Unit tests - atest FrameworksNetTests\nTest: Unit tests - atest FrameworksWifiTests\nTest: * DUT1 enables hotspot\n      * DUT2 associates to DUT1\n      * use ping6 to verify the local link on both side\nTest: * DUT1 creates a P2P group\n      * DUT2 joins this group as a legacy client\n      * use ping6 to verify the local link on both side\n\nChange-Id: I102bf29e8da14808097e43c840d74d41b6b3758f\n"
    },
    {
      "commit": "65087f4705d47b83983f32c0e9f6e99b8af23e14",
      "tree": "d22787fccd2ab616203d844e7b684928298aa9a6",
      "parents": [
        "4add708b9111d12b9a263746c4c3be613b8a3615",
        "5ad260d087c551ef58f7ed8d91a80334d0047ae8"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 08 00:34:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 08 00:34:25 2019 +0000"
      },
      "message": "Merge \"Support VPN Proxy(1/2)\""
    },
    {
      "commit": "cbc409986d02c208fd04725fcfc296fc9937a372",
      "tree": "965179685e7f1af35b6721618f53f7b200130c7e",
      "parents": [
        "b31032b3b077066ad6fb681d01844aa0baada742",
        "6c24213d2e430eaf7d541814484510128800d90f"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Mar 07 23:32:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 23:32:55 2019 +0000"
      },
      "message": "Merge changes Ie66ba631,Ic42c09a3\n\n* changes:\n  Implement TestNetworkService\n  Add shell TestNetworkManager and Service\n"
    },
    {
      "commit": "db859e7ece52d6ebd58b499cd6b1e325e47ac472",
      "tree": "e93edd4c57071e5c4ca70dfd7fa409fd9798f0dc",
      "parents": [
        "10c573ff852309894b383ae9aa13dca0d64f8d3e"
      ],
      "author": {
        "name": "Malcolm Chen",
        "email": "refuhoo@google.com",
        "time": "Thu Feb 14 19:50:19 2019 -0800"
      },
      "committer": {
        "name": "Nazanin Bakhshi",
        "email": "nazaninb@google.com",
        "time": "Thu Mar 07 19:20:47 2019 +0000"
      },
      "message": "Rename PREFERRED_DATA_SUBID_CHANGE to ACTIVE_DATA_SUB_CHANGE\n\nRedefine a PhoneStateListener event so that it reflects which\nsubscription is currently being used for Internet data. It could\nbe default user data subscription or currently active opportunistic\nsubscription.\n\nBug: 124260187\nTest: unittest\nChange-Id: Icb90b5bd93845c29157cafddcd53335728638ec2\nMerged-In: Icb90b5bd93845c29157cafddcd53335728638ec2\n"
    },
    {
      "commit": "fbcc63d51f775f1b45330d33bdd354d7a6997410",
      "tree": "e117bf7e72ccfa1fe2ca673f2fe28e665b56efbc",
      "parents": [
        "722dff1f3582d520f26159b744c2e2d0a0a1e926",
        "9554abf9ed2556a92dee0ccce7972691a44d5ec7"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Mar 07 13:21:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 13:21:53 2019 +0000"
      },
      "message": "Merge \"Fix TetheringEntitlementValueListener related API\""
    },
    {
      "commit": "1d5cd19090d62cdb27b3ab0261fee56b8f80a9cd",
      "tree": "932f0c8466916ec7735fdd7043222a0af4f5610e",
      "parents": [
        "d05e13d0a4b28fa282eb7dc4e0ec8194a9b86166"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Mon Mar 04 11:49:17 2019 +0800"
      },
      "committer": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Thu Mar 07 16:01:30 2019 +0800"
      },
      "message": "Improve keepalive offload documentation and error handling\n\nBug: 123987401\nTest: atest FrameworksNetTests\nChange-Id: Id651cfb743f02b05ca3845af3c393eaf5762bb20\n"
    },
    {
      "commit": "9554abf9ed2556a92dee0ccce7972691a44d5ec7",
      "tree": "f37a22d18a091c61b71438f09b3cbd2de7d6846a",
      "parents": [
        "06e2f822b9e49665b32952608e96723737c713b1"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Mar 06 16:25:00 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 07 13:33:21 2019 +0800"
      },
      "message": "Fix TetheringEntitlementValueListener related API\n\nTest: -build, flash, boot\n      -atest FrameworksNetTests\nbug: 126701557\nbug: 126392011\n\nChange-Id: I6dda10fbfe8ffaef71269617750a22563396f5ea\n"
    },
    {
      "commit": "3da7809ae47b4d37d57e0da5932d48beb4bb6530",
      "tree": "aeb318fbd1c902ce4035623721572e62bafe0b91",
      "parents": [
        "fd2bb720300fd838331ac891d513a88d24626539",
        "b7bda39d90e291ec9d22aba12edf0f8b503722c6"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Mar 07 03:54:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 07 03:54:22 2019 +0000"
      },
      "message": "Merge \"Fix SocketUtils API\""
    },
    {
      "commit": "6c24213d2e430eaf7d541814484510128800d90f",
      "tree": "f0901d4847a7c30abd2c1971d3f900a989069ead",
      "parents": [
        "e40eab608af245357705852cdad52b6d615ff518"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Nov 14 17:53:19 2018 -0800"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Mar 06 15:37:52 2019 -0800"
      },
      "message": "Implement TestNetworkService\n\nThis change adds the relevant JNI implementations, as well as the\nimplementations and NetworkAgent tracking code in the TestNetworkService.\n\nTestNetworkService (And Manager) is designed for use exclusively in\ntesting code, allowing for the creation of TUN and IPsec backed networks\nin test code. Specifically, this allows for testing of components such\nas IP, DHCP, or DNS clients, as well as kernel features such as IPsec.\n\nAccess to the TestNetworkService will be conditioned upon the\nMANAGE_TEST_NETWORKS permission that will be granted only to the Shell.\nCTS will use UiAutomation.adoptShellPermissionIdentity() to gain the\nability to use this service.\n\nBug: 72950854\nTest: CTS tests passing\nChange-Id: Ie66ba631a548b5f9c6b5ed0797582f86688debe5\n"
    },
    {
      "commit": "5819a3378d7f65be2e86201e2fdf2160468198dd",
      "tree": "4328bb478c282327c01591b810eef203b6200fe4",
      "parents": [
        "eb4d20673fc494469933c5a7e9ba6450297fac0c",
        "83b870f7d2fad96f357c91259011a8a7b35ed8d6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 06 23:28:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 23:28:33 2019 +0000"
      },
      "message": "Merge \"Reset callNetworkType and CallQuality after calls\""
    },
    {
      "commit": "8ee0674e09f24c897dcff3ed84266daa7618b71d",
      "tree": "8330a5c86271a339bed8d3ba5abf6c84b9239bda",
      "parents": [
        "049867e3644385aa9a261138406eca95dae03c4a"
      ],
      "author": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed Feb 27 13:45:34 2019 -0800"
      },
      "committer": {
        "name": "David Anderson",
        "email": "dvander@google.com",
        "time": "Wed Mar 06 14:26:26 2019 -0800"
      },
      "message": "Update DynamicAndroidService for IGsiService AIDL changes.\n\nBug: 125540538\nTest: framework builds\nChange-Id: I7c7f5053d02b231c4d987a145034683ff325e276\n"
    },
    {
      "commit": "6d80c7a6e434d955a51a3b77a94b090eddecb3b3",
      "tree": "d6aad7070f08de977947c6a189e6a1eafb8267cc",
      "parents": [
        "6792c595a22e2dc38f00c12823d40c38efe9d432",
        "b662614ca624c3d79827470fafb522b0d9b7f48f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 06 20:51:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 20:51:42 2019 +0000"
      },
      "message": "Merge \"Added secondary owners on per-file entries.\""
    },
    {
      "commit": "b662614ca624c3d79827470fafb522b0d9b7f48f",
      "tree": "16908194c3edd8a39f652e630c3f612fd573ff3a",
      "parents": [
        "693e023bac07ccfb9546e8f35c4991245f9e8bd3"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Mar 06 09:10:27 2019 -0800"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Mar 06 09:10:42 2019 -0800"
      },
      "message": "Added secondary owners on per-file entries.\n\nTest: none\nBug: 126945732\n\nChange-Id: I4b9786c9b01993f230f962a54e08127684b3289e\n"
    },
    {
      "commit": "d05e13d0a4b28fa282eb7dc4e0ec8194a9b86166",
      "tree": "c849a4a990874aa3a91b3ff68a979f93d81b7fbb",
      "parents": [
        "c61bb461b6c01d9bc07a6285d6814faacd6410c7",
        "8fbb952718845b45c181976eafb726b6de4bc032"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Wed Mar 06 10:04:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 06 10:04:12 2019 +0000"
      },
      "message": "Merge \"Add default-permissions\""
    },
    {
      "commit": "b7bda39d90e291ec9d22aba12edf0f8b503722c6",
      "tree": "6ddefd33f12eee3ffcea82e0000e52bd2ca377f6",
      "parents": [
        "7c447498c38f633718d2a95adef3a0609e86862e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Mar 06 18:02:34 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Mar 06 18:02:34 2019 +0900"
      },
      "message": "Fix SocketUtils API\n\n - connect, sendTo, bind were added as public API, so do not need to be\n   maintained as SystemApi in SocketUtils. These APIs were added in Q\n   timeframe.\n - Add @Nullable/@NonNull annotations.\n\nBug: 126699304\nBug: 126477266\nTest: booted, WiFi works\nChange-Id: I3f086ac8952cfd6a4d8f861d2e1c7aa1ca8be999\n"
    },
    {
      "commit": "8fbb952718845b45c181976eafb726b6de4bc032",
      "tree": "c3e179fea087530d563149866b0413e2cafa1bf5",
      "parents": [
        "d14d29ca8fa5f823cee1c5eabe139e2733374f71"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Thu Jan 03 17:37:10 2019 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Wed Mar 06 14:14:33 2019 +0900"
      },
      "message": "Add default-permissions\n\nThis module is for API check of java file generated from\ndefault-permissions.xsd\n\nBug: 80453829\nTest: m -j\nChange-Id: Ic2d6b9a64ceb19711ce6f3fb2da0f1f01d17ebc5\n"
    },
    {
      "commit": "ca1c6419c377b6ad0cafb8a201b8596ba704d557",
      "tree": "686571efb1bbee0efbc0424af99c0adb62c00259",
      "parents": [
        "4b2b84931a80fcb99807472d3ecf3858d891eff0",
        "51297d72e6097fb0d925d242ab105f79a830b001"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:37:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 05 15:37:27 2019 +0000"
      },
      "message": "Merge \"Remove calls to VMRuntime methods that are no-ops.\""
    },
    {
      "commit": "51297d72e6097fb0d925d242ab105f79a830b001",
      "tree": "3e4fcd22cb2d134acdfd6601508c5600a9ac45e1",
      "parents": [
        "69ae441fa1cf4d7d91baca8b701d675a88e01b8a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 04 13:23:34 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 14:12:19 2019 +0000"
      },
      "message": "Remove calls to VMRuntime methods that are no-ops.\n\nTest: m\n\n(Cherry-picked from: 5735cc7a116598eb9eb635857605394f67ef005e)\nChange-Id: If2e6afe21f6efcb141f3a4428ff9154b68f08a1d\nMerged-In: Ibe849f56f5fe8af1415dc6c85b484d0edca518ec\n"
    },
    {
      "commit": "92c55f03c6629079df5653b1a661e33b01ac69c7",
      "tree": "ad41c0f6e119ae1c1035242bbc50824257c869cf",
      "parents": [
        "d14d29ca8fa5f823cee1c5eabe139e2733374f71",
        "c51b06d276ffde3527a4800213a85aff87c2e29c"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Tue Mar 05 01:37:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 05 01:37:30 2019 +0000"
      },
      "message": "Merge \"Fix isActiveNetworkMetered for VPNs.\""
    },
    {
      "commit": "69ae441fa1cf4d7d91baca8b701d675a88e01b8a",
      "tree": "1ad0fc384e420cf3cca649ff51cb31edc6a1597c",
      "parents": [
        "049867e3644385aa9a261138406eca95dae03c4a",
        "ce7fdd4b831b7feadb6cb9dc4b82ed30d691640c"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Mon Mar 04 09:16:07 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 04 09:16:07 2019 +0000"
      },
      "message": "Merge \"Return not supported if no necessary socket option\""
    },
    {
      "commit": "a56c2e4e5554e306b016f71e0ac53ef5b719f4b8",
      "tree": "81eb1fa2f1574af356eb19f428fdfad8e5a6e14e",
      "parents": [
        "077a04828d4ca663e9c04ecb5bf0d010a3891f40",
        "db3a236d7fe4a5229555b6fd23b2cb4316ffcf8b"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Sun Mar 03 06:53:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 03 06:53:47 2019 +0000"
      },
      "message": "Merge \"Check if DUN APN exists to decide isDunRequired\""
    },
    {
      "commit": "a8820983b3d192f156cdfb2def5874e66c1d672a",
      "tree": "547cbac7f08e8ed602df323cf3d810dc7c9772ad",
      "parents": [
        "63f516d1ee1e5893fc09be1ebbd84d71639286d2",
        "94229b3103fff3b85d6774fffdf19f8d149ac217"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 02 05:38:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 02 05:38:21 2019 +0000"
      },
      "message": "Merge \"Ensure handleUpdateLinkProperties runs on the CS handler thread.\""
    },
    {
      "commit": "8091d9e6d9591af206bd2674b402d02a8ce52761",
      "tree": "8e6c24b8df033206523054fbef78325dfeeecae4",
      "parents": [
        "3275a6b2450745486cacf2fc7ed8d4075556e606"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Tue Feb 26 14:52:33 2019 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@google.com",
        "time": "Fri Mar 01 17:23:42 2019 +0000"
      },
      "message": "Migrate frameworks/base/tests/testables and its users to androidx.test\n\nSee go/jetpack-test-android-migration\n\nTest: atest TestablesTests NetworkStackTests FrameworksServicesTests SystemUITests FrameworksUiServicesTests ExtServicesUnitTests\nExempt-From-Owner-Approval: already reviewed\nChange-Id: I083fcdaa71b503535aa2b3c257740f3ecf055373\nMerged-In: Ib04d80954bd8536914d88c66b28e6632e60a6245\n"
    },
    {
      "commit": "3275a6b2450745486cacf2fc7ed8d4075556e606",
      "tree": "738bad919a538ddf136f3456855789bc94a510cd",
      "parents": [
        "7bb0bcd305f37a0f12afdc433e9b992a5b104291",
        "653356f114fa798ee0cc3d5d5ac4ccd0ab4783de"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 01 14:44:49 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 01 14:44:49 2019 +0000"
      },
      "message": "Merge \"Support dexopting shared libraries.\""
    },
    {
      "commit": "653356f114fa798ee0cc3d5d5ac4ccd0ab4783de",
      "tree": "fd93bbbff12b7cbf2af8ca761ff3f9f6424f574d",
      "parents": [
        "c76c5529bf24d489f7f312de7d25fa0d6aa4f4e8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 26 23:24:34 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 01 10:27:35 2019 +0000"
      },
      "message": "Support dexopting shared libraries.\n\nTest: adb shell setprop dalvik.vm.boot-image /system/framework/apex.art \u0026\u0026 see compilations in dalvik-cache\nTest: BackgroundDexOptServiceIntegrationTests\nTest: DexoptUtilsTest\nBug: 119800099\nChange-Id: I3445b8743d576e09c9a339602307ba3a219db1fc\n"
    },
    {
      "commit": "e40eab608af245357705852cdad52b6d615ff518",
      "tree": "f45a9a82d362a7258912107dacbc3398c9f449e6",
      "parents": [
        "93dfa10da4f4c38af17daa8561b14a96bd0067f7"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Nov 14 17:50:13 2018 -0800"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Feb 28 21:46:58 2019 -0800"
      },
      "message": "Add shell TestNetworkManager and Service\n\nThis adds the scaffolding for TestNetworkManager and TestNetworkService.\nThese are separate from the ConnectivityManager/ConnectivityService in\norder to prevent polluting the API space, and making them harder to\nmaintain.\n\nBug: 72950854\nTest: Compiles, CTS tests relying on this pass\nChange-Id: Ic42c09a33d962471e2587ec27f3fab2d72bbcd42\n"
    },
    {
      "commit": "93dfa10da4f4c38af17daa8561b14a96bd0067f7",
      "tree": "0a3a19dfa7cbf362219544d3c09ab398cd034346",
      "parents": [
        "c931e9b0c05bf6d061d45e7278a3d1b51c4d14e9",
        "d33cbc6f5ffe1d1e83afbf6cc977e9f31994fb9d"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Mar 01 03:06:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 01 03:06:06 2019 +0000"
      },
      "message": "Merge \"Remove ConnectivityManager and its usages from NetworkStatsService.\""
    },
    {
      "commit": "c931e9b0c05bf6d061d45e7278a3d1b51c4d14e9",
      "tree": "e8b6774e08acbe2c2a50e3e38fc25b23854468ca",
      "parents": [
        "572b1ee84b64b33a5d87d81c0547586656929a9d",
        "8165386bfecdf2c06e5da046fa190b0a340c70e8"
      ],
      "author": {
        "name": "Chen Xu",
        "email": "fionaxu@google.com",
        "time": "Fri Mar 01 02:17:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 01 02:17:33 2019 +0000"
      },
      "message": "Merge \"add NonNull and Nullable annotation to APIs\""
    },
    {
      "commit": "d33cbc6f5ffe1d1e83afbf6cc977e9f31994fb9d",
      "tree": "b57c45244a22b9f19f203d7586d570d5484717ed",
      "parents": [
        "222d1d04bfb1b4eda3962a917779ffc0efa987af"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Feb 07 14:13:13 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Mar 01 00:10:52 2019 +0000"
      },
      "message": "Remove ConnectivityManager and its usages from NetworkStatsService.\n\nNSS needed it for getting VpnInfo[], NetworkState[] and\nactiveLinkProperties which it used to query via ConnectivityManager.\n\nFor VpnInfo[], this was racy as NSS may ignore intermediate changes to a\nVPN\u0027s underlying networks. See http://b/123961098 for more context.\n\nIt may also lead to deadlocks b/w ConnectivityService and\nNetworkStatsService. See http://b/126245192 for more info.\n\nThis change will ensure that NSS is never contending on any of\nConnectivityService locks.\n\nBug: 123961098\nBug: 126245192\nBug: 120145746\nTest: atest FrameworksNetTests\nChange-Id: Id1da446b54d95ee68ed14079107b1a10318bcf8b\nMerged-In: I57e117bb4e9efe491b19d6b5a479f2d58d1c58e6\n"
    },
    {
      "commit": "8165386bfecdf2c06e5da046fa190b0a340c70e8",
      "tree": "c0ae271cc98a073b6a173e182ca1c669dc78f1a5",
      "parents": [
        "0b2044a91ce03b521e920c4c84d65119d9d8dac1"
      ],
      "author": {
        "name": "chen xu",
        "email": "fionaxu@google.com",
        "time": "Thu Feb 28 10:44:54 2019 -0800"
      },
      "committer": {
        "name": "chen xu",
        "email": "fionaxu@google.com",
        "time": "Thu Feb 28 14:15:58 2019 -0800"
      },
      "message": "add NonNull and Nullable annotation to APIs\n\nBug: 126699430\nBug: 126699963\nBug: 126700457\nBug: 126700771\nBug: 126702453\nBug: 123939479\nTest: Build\nChange-Id: Ib429d2918e63f8d272fc7842b0abd83ffd5a9090\n"
    },
    {
      "commit": "c51b06d276ffde3527a4800213a85aff87c2e29c",
      "tree": "fcc5a7792ecb5ee0f0ce62093886c30eab0df63c",
      "parents": [
        "222d1d04bfb1b4eda3962a917779ffc0efa987af"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Mon Feb 25 17:22:02 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Feb 28 13:18:11 2019 -0800"
      },
      "message": "Fix isActiveNetworkMetered for VPNs.\n\nThis change is basically a revert of http://ag/3580901.\nIt was made because previously VPN capabilities did not use to update\nbased on its underlying networks. That is no longer the case anymore.\n\nThis was previously returning meteredness on the basis of VPN\u0027s first\nunderlying network which is incorrect in cases such as VPN using\nmultiple underlying networks, or VPN that has explicitly marked itself\nas metered via VpnService.Builder#setMetered API.\n\nBug: 123936838\nTest: atest FrameworksNetTests\nChange-Id: Ia54b8570fbad4a638a6d43a95e0271c6baf66685\n"
    },
    {
      "commit": "83b870f7d2fad96f357c91259011a8a7b35ed8d6",
      "tree": "84ddabb54f0bece866a19a44ceabfc6dde9e67dc",
      "parents": [
        "474d0ab6bf904cf645b787aa1d4ae547341b702c"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Fri Feb 22 14:19:55 2019 -0800"
      },
      "committer": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Thu Feb 28 11:48:14 2019 -0800"
      },
      "message": "Reset callNetworkType and CallQuality after calls\n\nWhen the PreciseCallState is not active, we can zero-out/reset the\ncallNetworkType and CallQuality. This way we don\u0027t return the cached\nvalue when the next call comes.\n\nBug: 125342572\nTest: manual\nChange-Id: I8cb34b43bc5983be9c2b5576a1c797907518ecc9\n"
    },
    {
      "commit": "a02847ec0dd7dfe231305a0e70e68e40ec4af553",
      "tree": "feba388b734525c2c389463e76ef6ff6f1bc70a6",
      "parents": [
        "0d99ab3f18f3f94280de3f689261a7fdfc58b817",
        "b313e0c83455b00783e1669f7428e923e3554448"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 23:37:42 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 27 23:37:42 2019 +0000"
      },
      "message": "Merge changes from topic \"nat64\"\n\n* changes:\n  Catch ServiceSpecificException instead of IllegalStateException.\n  Manage NAT64 prefix discovery lifecycle in the framework.\n  Track NAT64 in the framework and start clatd iff NAT64 detected\n  Change Nat464Xlat lifecycle.\n  Minor improvements to verifyTcpBufferSizeChange.\n"
    },
    {
      "commit": "a7f44ba8674ebf95e939fa53b7c4785afd02b9a9",
      "tree": "f6c914424c1a3afc192ebe1400ef1b63f9705c42",
      "parents": [
        "0b2044a91ce03b521e920c4c84d65119d9d8dac1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 26 21:40:59 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 16:42:28 2019 +0000"
      },
      "message": "No need to pass shared library infos explicitly in performDexOpt.\n\nThe method can just infer it from the passed package.\n\n(cherry picked from commit 1158b87c6ea6d809c2ae665cc0db9f464515ced2)\n\nTest: m\nChange-Id: I676ee7d49600a36a8bd54893679d7dc900da2012\nMerged-In: I676ee7d49600a36a8bd54893679d7dc900da2012\nExempt-From-Owner-Approval: approved in internal.\n"
    },
    {
      "commit": "94229b3103fff3b85d6774fffdf19f8d149ac217",
      "tree": "667db7e02fe6a9b182875d9e80cce1fe89e06571",
      "parents": [
        "b313e0c83455b00783e1669f7428e923e3554448"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 20 21:34:01 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 18:21:22 2019 +0900"
      },
      "message": "Ensure handleUpdateLinkProperties runs on the CS handler thread.\n\nIn its own change for ease of rollbacks due to the risk of\npossibly crashing existing codepaths.\n\nBug: 65674744\nTest: atest FrameworksNetTests\nTest: builds, boots. Wifi, cell data, private DNS work\nChange-Id: I2c0acc1c7b8367803f17b4a12c1df0fdfbc29691\n"
    },
    {
      "commit": "b313e0c83455b00783e1669f7428e923e3554448",
      "tree": "f5d2d3a710ce7b6e73bed935ecc0ce342e6d29eb",
      "parents": [
        "d593e298c66d1138240f8e97e92b8a5b8f9eb130"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 10:35:10 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 18:21:22 2019 +0900"
      },
      "message": "Catch ServiceSpecificException instead of IllegalStateException.\n\nThe old NetworkManagementService methods to start clatd threw\nIllegalStateException, but the new netd methods throw\nServiceSpecificException. Update the catch clauses so that if\nstarting clatd fails, the system doesn\u0027t crash.\n\nAlso stop logging stack traces but only include the exception\nmessage itself.\n\nBug: 65674744\nTest: atest FrameworksNetTests\nTest: connecting/disconnecting to v6-only wifi in a loop does not crash\nChange-Id: I4a9ec7f104712fbbe08f4f67e3288df03e8ed873\n"
    },
    {
      "commit": "0b2044a91ce03b521e920c4c84d65119d9d8dac1",
      "tree": "12557b8aa7236641e6bba051e81ddfb5b55587a9",
      "parents": [
        "548170a66aa19fab16594a33f181dd9425f9561d",
        "ad5037b91b078a2bb3236d24525003b75749bebf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 26 19:49:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 26 19:49:03 2019 +0000"
      },
      "message": "Merge \"Fix the build failure with enabling DEBUG_PSS\""
    },
    {
      "commit": "d593e298c66d1138240f8e97e92b8a5b8f9eb130",
      "tree": "0e9e4094184f75c450d6a81fd527c338a74a3b62",
      "parents": [
        "6998fa8a17756b36d925446bb5e1f3ec4993200f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Feb 19 13:21:56 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 27 00:18:13 2019 +0900"
      },
      "message": "Manage NAT64 prefix discovery lifecycle in the framework.\n\nCurrently NAT64 prefix discovery, which runs in netd, is started\nby netd itself when a network is programmed with all-IPv6 DNS\nservers. Unfortunately this is not correct because in many cases\nwe program DNS servers before the network is connected and it\u0027s\nactually possible to send packets to them.\n\nIn general netd does not have enough visibility into network\nlifecycle management to decide when to start and stop prefix\ndiscovery. So move it into the framework with the rest of the\n464xlat control plane.\n\nBug: 65674744\nTest: atest FrameworksNetTests\nChange-Id: I8fa051a9c216d9c05082bf7d0bbb0cbd56000162\n"
    },
    {
      "commit": "ad5037b91b078a2bb3236d24525003b75749bebf",
      "tree": "2c40e972d4fa90ab958bb834a73269ead4879077",
      "parents": [
        "60e7162e05eba84e131986e2d435e78e1f94a834"
      ],
      "author": {
        "name": "Xiong Li",
        "email": "xiong.li@sony.com",
        "time": "Tue Feb 26 17:13:54 2019 +0800"
      },
      "committer": {
        "name": "Xiong Li",
        "email": "xiong.li@sony.com",
        "time": "Tue Feb 26 17:23:23 2019 +0800"
      },
      "message": "Fix the build failure with enabling DEBUG_PSS\n\nframeworks/base/services/core/java/com/android/server/am/ActivityManagerService.java:2688:\nerror: variable pid might not have been initialized\n    if (DEBUG_PSS) Slog.d(TAG_PSS, \"Skipped pss collection of \" + pid +\n\nBug: None\nTest: make -j12\nChange-Id: Ib668ba2606348f92239355b04039b45cae025cf3\n"
    },
    {
      "commit": "db3a236d7fe4a5229555b6fd23b2cb4316ffcf8b",
      "tree": "c4502dd8256c6db7a3e540778a2d09121a062323",
      "parents": [
        "03c14760a593b8bbea502fc8cbcc0ffe1e2ac058"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Fri Oct 05 12:36:08 2018 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Tue Feb 26 16:30:48 2019 +0800"
      },
      "message": "Check if DUN APN exists to decide isDunRequired\n\nChange isDunRequired variable from integer to boolean.\nBefore this change tethering would reference\nconfig_tether_upstream_types reource configuraton to decide\nisDunRequired for DUN_UNSPECIFIED case.\nAfter the change, if isDunRequired is true, tethering would\nrequest DUN. If it is false, tethering skip DUN type. In order\nto backwards compatibility, tethering would not add mobile/hipri\ntype to upstream configuration if one of them already exist in\nupstream configuration.\n\nTest: - build, flash, booted\n      - runtest frameworks-net\n      - manully test with TMO, VZW SIM.\nbug: 63150712\n\nChange-Id: Ia998ea502674ff186d52af37e3fd8f07de495245\n"
    },
    {
      "commit": "5ad260d087c551ef58f7ed8d91a80334d0047ae8",
      "tree": "da3be74bd8cd815c82e941b55fe9d92c5da4e240",
      "parents": [
        "9de24de618947056f95e0608d36b0b46db416e5b"
      ],
      "author": {
        "name": "Takayuki, Ogura",
        "email": "takayuki.x.ogura@sony.com",
        "time": "Fri Jan 25 19:47:05 2019 +0900"
      },
      "committer": {
        "name": "Fen Wang",
        "email": "fen.wang@sony.com",
        "time": "Tue Feb 26 10:53:33 2019 +0900"
      },
      "message": "Support VPN Proxy(1/2)\n\nUse VPN Proxy if it is set in VPN Settings\n\nBug: 118793208\nTest: runTest\nChange-Id: Ib58685fe3afc6e0279f6abe762e9adabd6ea6ccc\n"
    },
    {
      "commit": "0a04598a39e512e89be7dcca10c0f429359f1eea",
      "tree": "4b4bc63722d7f3d1d6fc69257ae6d062c7210035",
      "parents": [
        "e24b30b7d4b8851592c59446939fe032aef439a0",
        "65ed9d922798a9d841bca61de9b2e97a34ceb04f"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Mon Feb 25 21:49:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 25 21:49:11 2019 +0000"
      },
      "message": "Merge \"CallAttributes uses the call network type\""
    },
    {
      "commit": "6998fa8a17756b36d925446bb5e1f3ec4993200f",
      "tree": "e8c180a879d94016f0af4756b676c5b4dbf62070",
      "parents": [
        "df59563de231e19d56e04c5691ad9b67031a576e"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 08 10:04:25 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 11:42:00 2019 +0900"
      },
      "message": "Track NAT64 in the framework and start clatd iff NAT64 detected\n\nCurrently, both netd and clatd do NAT64 prefix detection, and we\nstart clatd on all IPv6-only networks regardless of whether netd\nhas detected a NAT64 prefix or not.\n\nInstead, track the NAT64 prefix in the framework, and only start\nclatd if the prefix is detected. This will allow us to remove\nDNS64 detection in clatd, and pass the NAT64 prefix and the IPv6\naddress to clatd on the command line instead of clatd finding it\nitself. That way, netd and the framework will always know how\n464xlat is configured, and we\u0027ll be able to use that information\nin netd.\n\nTest: builds, boots\nTest: atest FrameworksNetTests\nChange-Id: Ida32d5760c5aecf7aeebef08fdb596291b2ce14a\n"
    },
    {
      "commit": "df59563de231e19d56e04c5691ad9b67031a576e",
      "tree": "b6d7571a93196045aaee35f35cdfa3c7ee6882a3",
      "parents": [
        "f56ff048c23014325cb75a116169d2d4d193f540"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jan 08 14:43:37 2019 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Feb 25 11:42:00 2019 +0900"
      },
      "message": "Change Nat464Xlat lifecycle.\n\nCurrently, NetworkAgentInfo keeps a Nat464Xlat object only on\nnetworks where we\u0027re starting clatd (i.e., IPv6-only networks).\nSimplify this code by making the Nat464Xlat object final and\nalways non-null. This allows us to use Nat464Xlat to store\ninformation, such as the NAT64 prefix, even if the clat daemon\nhas not been started yet.\n\nAlso, remove the STOPPING state which waits for the interface to\nbe removed. Instead, when stop() is called, immediately enter the\nIDLE state.\n- This is necessary in order to be able to call start() again\n  before the interface removal notification has arrived.\n- It\u0027s also arguably more correct than the current code,\n  because when stop() returns clatd has already terminated\n  (ClatdController::stopClatd calls waitpid), and thus the tun\n  fd is already closed and the tun interface is gone.\n\nAlso, now that Nat464Xlat objects are reused after stop(), add\ntest coverage for calling start() after stop, in both cases:\n- The notification that the previous interface was removed\n  arrives before the second start().\n- The notification that the previous interface was removed\n  arrives after the second start() but before the notification\n  that the second interface was added.\n\nAlso fix a couple of lint warnings.\n\nTest: builds, boots\nTest: atest FrameworksNetTests\nTest: clatd stops when IPv4 address added\nTest: clatd restarts after \"adb shell killall clatd\"\nChange-Id: I3dc66d155aa27606681f3473daf2170434d8c6d0\n"
    },
    {
      "commit": "ee15067180704b2239468b650309506baeef4a9e",
      "tree": "8a8918fa4976c4260f0b9cc25b06949b341eacb2",
      "parents": [
        "e8eb967389b5ade9db024cb3d3a6ae829c0f13cd",
        "a1ae02519d6fb5de636fc8728dec7cb9b14de356"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Feb 22 18:32:13 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 18:32:13 2019 +0000"
      },
      "message": "Merge \"Update RulesManagerService after APEX files\""
    },
    {
      "commit": "a1ae02519d6fb5de636fc8728dec7cb9b14de356",
      "tree": "131d6d7fbbe0ffd344946b40a3b76e82fc422b1b",
      "parents": [
        "d989ed753d3a46c017f3729aa466939b2945ddcc"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Feb 18 10:49:15 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Feb 22 15:43:39 2019 +0000"
      },
      "message": "Update RulesManagerService after APEX files\n\nContext\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe \"time zone updates via APK\" feature was implemented in O-MR1 to enable\ndevices to take time zone updates via an APK update and without needing\nan OTA. RulesManagerService is an important part of the time zone updates via\nAPK feature. When RulesManagerService was implemented things were simple; there\nwas a copy of time zone data in /system. A new (optional) copy was introduced\nin /data that could be managed / updated by the RulesManagerService.\nSince there were only two copies the /system copy was referred to as the\n\"system\" data.\n\nWith the introduction of the runtime APEX and time zone data APEX things\nhave become more complicated. Android devices can have time zone data in\nseveral places:\n\n1 The copy in /system/usr/share/zoneinfo/ is partially complete and remains\n  for legacy usecases, e.g. binaries that \"know\" about the /system path and\n  cannot be updated, or binaries which run before /apex paths are mounted.\n\n2 The copy in /apex/com.android.runtime/ is a complete set of time zone\n  data that can be used by libraries on the device.\n\n3 The copy in /apex/com.android.tzdata/ is the \"overlay\" copy for use when\n  the time zone data APEX can be updated. For devices that can take APEX\n  updates it will be present and is expected to start with the same version as\n  present in /apex/com.android.runtime. Note: Nothing in the code *requires*\n  this copy to be present but it is expected to be present in most cases.\n\nRulesManagerService is being kept around for devices that may not have the\ncapability of updating their APEX files but which still want to update time\nzone data without taking an OTA. It is assumed that RulesManagerService will\n*only* be turned on in these situations and *not* when the time zone\ndata in /apex/com.android.tzdata/ might actually be updated independently of\nthe copy in /apex/com.android.runtime/.\n\nThe RulesManagerService therefore adds the fourth copy of the data that *could*\nbe present:\n\n4 The copy /data/misc/zoneinfo/ managed by RulesManagerService.\n\nImportant libraries / binaries on device know about all 4 copies and\nprioritize them in order 4, 3, 2, 1. i.e. the libraries will use the\nfirst copy of data found in that order.\n\nIn scenarios where RulesManagerService is disabled, 4 will not be present\nand therefore 3 will be used (or 2 if 3 is also not present).\n\nIn scenarios where RulesManagersService is enabled, 4 is present iff an\nAPK update has been received. It is assumed that *if* /apex/com.android.tzdata/\nis present, it contains the same version of tz data as in\n/apex/com.android.runtime/, will never be updated, and can therefore\nbe ignored by RulesManagerService.\n\nThe changes\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThis commit and others in the same topic do the following:\n\n1) Change RulesManagerService references to \"system\" data to \"base\" data in a\n   valiant attempt to limit confusion until it can be removed.\n2) Switch RulesManagerService over from using the data in\n   /system/usr/share/zoneinfo/ as base data to the data in\n   /apex/com.android.runtime/.  As part of this change, the RulesManagerService\n   can now use the tz_version file to identify the version of tzdb in \"base\"\n   rather than reading the header of the tzdata file, so that is done\n   here too.\n3) Update imports neccessary to meet pre-upload check requirements.\n\nNote: tzdatacheck, an independent binary that manages time zone data\nafter OTA, was updated to use /apex/com.android.runtime/ instead of\n/system/usr/share/zoneinfo/ in commit c6a2737e0861472d1726ed472708d7762ab1e802.\n\nBug: 119293618\nBug: 113373927\nTest: atest FrameworksCoreTests:android.app.timezone\nTest: atest FrameworksServicesTests:com.android.server.timezone\nTest: CTS: run cts-dev -m CtsLibcoreTestCases -t libcore.libcore.timezone.ZoneInfoDBTest\nTest: CTS: run cts-dev -m CtsLibcoreTestCases -t libcore.libcore.icu.TimeZoneIntegrationTest\nChange-Id: Idabe245c7ad337938c202b1796ce9d89ec68bbd6\n"
    },
    {
      "commit": "2badc1e43453697c5da7ecf0038ca8a554210383",
      "tree": "c4394fca546da6d25427123163e57b8a870e4da9",
      "parents": [
        "1d8977b9922649ef9ecd0ba054c2bdf868ccfd56",
        "cfb3d4856ea02e6c5eb54b6f9081530c30a5dca9"
      ],
      "author": {
        "name": "Nandana Dutt",
        "email": "nandana@google.com",
        "time": "Fri Feb 22 08:43:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 08:43:48 2019 +0000"
      },
      "message": "Merge \"Add a new error code for disallowing concurrent bugreports\""
    },
    {
      "commit": "1d8977b9922649ef9ecd0ba054c2bdf868ccfd56",
      "tree": "7bee56a61afccdce641a41a8d07f78174390629d",
      "parents": [
        "233b4f140b9d26a1387351b73990cd0572251c37",
        "6dea37dc6e1f8723a774cd203cb99c48079603e7"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Feb 22 07:39:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 07:39:20 2019 +0000"
      },
      "message": "Merge \"Fix RouterAdvertisementDaemon thread leakage problem\""
    },
    {
      "commit": "ce7fdd4b831b7feadb6cb9dc4b82ed30d691640c",
      "tree": "0c1cd130dbcdb98e01019f97dff8f5d5f2c93502",
      "parents": [
        "db400ed187ff20dd44d7cd963603cff70cc27343"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Feb 20 22:47:08 2019 +0800"
      },
      "committer": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Fri Feb 22 06:12:14 2019 +0000"
      },
      "message": "Return not supported if no necessary socket option\n\nIn order to support tcp keepalive offload, some socket\noptions are necessary. If one of them isn\u0027t supported in\nkernel, just return ERROR_HARDWARE_UNSUPPORTED to the\ncaller.\ne.g.\nTCP_REPAIR starts from kernel 3.5\nTCP_REPAIR_QUEUE starts from kernel 3.5\nTCP_QUEUE_SEQ starts from kernel 3.5\nTCP_REPAIR_WINDOW starts from kernel version 4.8\n\nBug: 124453402\nTest: -boot, flash, atest FrameworksNetTests\n      -start tcp keepalive offload in kernel 4.4 and 4.9 device.\n\nChange-Id: I6f87e5be2f2ca7aae1293820c164d0bc7b664eb6\n"
    },
    {
      "commit": "9f0115bb6e20f18872303c8a68072d9268825913",
      "tree": "5789a6fe29bfa0670f320320fa0771a697c202b1",
      "parents": [
        "07037a86d3211bf84f897ae28f4c303d7587ee41",
        "c2841ec7feb095cc36d2540844228ee72da3dfca"
      ],
      "author": {
        "name": "Sooraj Sasindran",
        "email": "sasindran@google.com",
        "time": "Fri Feb 22 00:41:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 22 00:41:29 2019 +0000"
      },
      "message": "Merge \"Allow UiAutomation to adopt the shell permission indentity\""
    },
    {
      "commit": "65ed9d922798a9d841bca61de9b2e97a34ceb04f",
      "tree": "c52d12fd21d4ae1e4b4d222a5c0b127585931fe3",
      "parents": [
        "0dddb902aea5a7e4d20722ebb3dbf1d28ff38787"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Tue Feb 19 14:42:07 2019 -0800"
      },
      "committer": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Thu Feb 21 15:52:36 2019 -0800"
      },
      "message": "CallAttributes uses the call network type\n\nInstead of the ServiceState.getNetworkType(), since the service state\nmight not match the RAT of the specific call, we use the radio type from\nthe ImsCall.\n\nBug: 124785734\nTest: manual\nChange-Id: I33f84bb415c943d5b766fcd3a4e8257d8f7c1cfe\n"
    },
    {
      "commit": "969abcc46fea8625688b8e401be6d0d1a56f3ad5",
      "tree": "8a8a9049139a5eb4f6755e5a0e4056cf8829e19c",
      "parents": [
        "703e8c68ec5cca7b9b03fd88116bc1ffdc6a0929",
        "a25379f577698a32ba3f82dfe80ee3e307253ff6"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 21 22:13:31 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 22:13:31 2019 +0000"
      },
      "message": "Merge \"Add logging to NetworkStackClient\""
    },
    {
      "commit": "703e8c68ec5cca7b9b03fd88116bc1ffdc6a0929",
      "tree": "880676adca1e812d12f384372381438bce3a13f0",
      "parents": [
        "bede9f869b7e1feb257b8941a29e1b76f8be4a77",
        "e16cd66ace1aa9baaef17ec37cbd9d6e3277f576"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 21 20:27:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 20:27:58 2019 +0000"
      },
      "message": "Merge \"Send special permission information to netd\""
    },
    {
      "commit": "bede9f869b7e1feb257b8941a29e1b76f8be4a77",
      "tree": "1b4516ec32105a2888e692b6cca413a18974908a",
      "parents": [
        "c3ae401a983623563e4a66efd9f390fe7baa0604",
        "669393319a478af97f65887545aff098d107054d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 21 20:27:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 20:27:53 2019 +0000"
      },
      "message": "Merge \"Use toArray(T[]) instead of toArray().\""
    },
    {
      "commit": "c2841ec7feb095cc36d2540844228ee72da3dfca",
      "tree": "a75b7383d0285ee73db59fbc8f650221ef2b3087",
      "parents": [
        "a6dda25ac90b7ce6a9afa7da6cc86fade59f9ebf"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 25 16:39:23 2018 -0700"
      },
      "committer": {
        "name": "Sooraj Sasindran",
        "email": "sasindran@google.com",
        "time": "Thu Feb 21 19:59:14 2019 +0000"
      },
      "message": "Allow UiAutomation to adopt the shell permission indentity\n\nFor testing we often need to run shell commands. This can be done\ntoday via running a shell command from an instrumentation test\nstarted from the shell. However, this requires adding shell commands\nwhich are not in the API contract, involve boilerplate code, require\nstring parsing, etc.\n\nThis change allows an instrumentation started from the shell to\nadopt the shell UID permission state. As a result one can call APIs\nprotected by permissions normal apps cannot get by are granted to\nthe shell. This enables adding dedicated test APIs protected by\nsignatures permissions  granted to the shell.\n\nTest: cts-tradefed run cts-dev -m CtsUiAutomationTestCases\n          -t android.app.uiautomation.cts.UiAutomationTest#testAdoptShellPermissions\n\nbug:80415658\n\nMerged-In: I4bfd4b475225125512abf80ea98cd8fcacb6a1be\nChange-Id: I4bfd4b475225125512abf80ea98cd8fcacb6a1be\n"
    },
    {
      "commit": "4e4b3ac9c5d9b27d23f34766117e3e9782e526c3",
      "tree": "fd11cde67be0bc9c364102ddb1386e913dc40a4a",
      "parents": [
        "f1324dcacea4163d50d6a4d588ed4f89e5758a11",
        "8b5976ec3d2c3314e11ff71c27c530df653455a2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 21 17:24:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 17:24:00 2019 +0000"
      },
      "message": "Merge \"Pick up the apexBootImage pinner service files when the boot image is apex.art.\""
    },
    {
      "commit": "cfb3d4856ea02e6c5eb54b6f9081530c30a5dca9",
      "tree": "16021e8f3fea73747d4e4a19ab07d2f30db27fc2",
      "parents": [
        "f1324dcacea4163d50d6a4d588ed4f89e5758a11"
      ],
      "author": {
        "name": "Nandana Dutt",
        "email": "nandana@google.com",
        "time": "Wed Feb 20 11:25:35 2019 +0000"
      },
      "committer": {
        "name": "Nandana Dutt",
        "email": "nandana@google.com",
        "time": "Thu Feb 21 16:17:54 2019 +0000"
      },
      "message": "Add a new error code for disallowing concurrent bugreports\n\nBUG:123571915\nTest: manual\nChange-Id: I8787137c3cfeb33aacfa439f6eab1a668977e572\n"
    },
    {
      "commit": "f1324dcacea4163d50d6a4d588ed4f89e5758a11",
      "tree": "d962b33b260f1a38d9f8ebee9903f0874d316230",
      "parents": [
        "617e556477170312aa26c881e18ba2de7ea1016c",
        "256298eb94d34fd7e76ba4f0e4528d433e68ceac"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 21 14:21:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 14:21:19 2019 +0000"
      },
      "message": "Merge \"Change getPackageUid to getPackageUidAsUser\""
    },
    {
      "commit": "6dea37dc6e1f8723a774cd203cb99c48079603e7",
      "tree": "ce8f76390cf25f2cbffc678043ec3eb343ab6159",
      "parents": [
        "5cf41e47fe12ccbe110eb01ac788b627bdc89965"
      ],
      "author": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Fri Jan 25 13:36:34 2019 +0800"
      },
      "committer": {
        "name": "Iris Chang",
        "email": "iris.chang@mediatek.com",
        "time": "Thu Feb 21 09:19:29 2019 +0000"
      },
      "message": "Fix RouterAdvertisementDaemon thread leakage problem\n\n[Prerequisites]\nDefault value of mRaLength is 0, so getNextMulticastTransmitDelaySec()\nreturns DAY_IN_SECONDS (1 day) in this scenario.\n\n[Issue Details]\nExamine MulticastTransmitter.run() for detail:\n\n676        public void run() {\n677            while (isSocketValid()) {\n678                try {\n679                    Thread.sleep(getNextMulticastTransmitDelayMs());\n\nInvoke RouterAdvertisementDaemon.stop() here. Since MulticastTransmitter\nis in a sleep, this thread will pend 1 day until the next check of\nisSocketValid() triggers the quit action, which causes thread leakage\nduring Wi-Fi Hotspot on/off stress test.\n\n680                } catch (InterruptedException ignored) {\n\n[Solution]\nInvoke maybeNotifyMulticastTransmitter() after closing socket in\nRouterAdvertisementDaemon.stop() to interrupt MulticastTransmitter from\nwaiting.\n\nBug: 123491872\nTest: FrameworksNetTests\n  adb shell am instrument -w com.android.frameworks.tests.net\nTest: CTS - CtsNetTestCases\n  ANDROID_BUILD_droid-cts/tools/cts-tradefed run cts -m CtsNetTestCases\nTest: CTS - CtsNetTestCasesLegacyApi22\n  ANDROID_BUILD_droid-cts/tools/cts-tradefed run cts -m\n  CtsNetTestCasesLegacyApi22\nTest: CTS - CtsNetTestCasesLegacyPermission22\n  ANDROID_BUILD_droid-cts/tools/cts-tradefed run cts -m\n  CtsNetTestCasesLegacyPermission22\n\nChange-Id: I0c0d63b43a88e1026aaecfc1853309ad63f62268\n"
    },
    {
      "commit": "a25379f577698a32ba3f82dfe80ee3e307253ff6",
      "tree": "f34b507f7dfa3183d6ee9cad7879589e38e62649",
      "parents": [
        "256298eb94d34fd7e76ba4f0e4528d433e68ceac"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Feb 18 11:20:28 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 21 17:09:12 2019 +0900"
      },
      "message": "Add logging to NetworkStackClient\n\nThe current logging relies on the system log that may rotate. This is a\nproblem to investigate bugs where the network stack service is not\nstarted. Add a SharedLog to NetworkStackClient and dump it in\nConnectivityService (for lack of a better place to dump it).\n\nBug: 124307802\nTest: Booted, dumpsys connectivity shows the log\nChange-Id: If596451d0613645f68a8a32acb032eea76ea506c\n"
    },
    {
      "commit": "256298eb94d34fd7e76ba4f0e4528d433e68ceac",
      "tree": "f291ed448dccb86f0cbf28646b8e2ddad6ff10e3",
      "parents": [
        "e4a40c77e1dc2a45dc77f129bb08c971b8b8d686"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 21 17:07:57 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Feb 21 17:07:57 2019 +0900"
      },
      "message": "Change getPackageUid to getPackageUidAsUser\n\nThe wrong overload of PackageManager is being called, setting\nUSER_SYSTEM as flag instead of the user to resolve the network stack\nUID.\n\nTest: phone boots, WiFi works, additional tests in child CLs\nChange-Id: I89b11b38c390d0e77a5917c74daccccd74c2d0a3\n"
    },
    {
      "commit": "e16cd66ace1aa9baaef17ec37cbd9d6e3277f576",
      "tree": "c09c8e13615ca0672ecc6e33734c89c532a41576",
      "parents": [
        "669393319a478af97f65887545aff098d107054d"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Mon Jan 07 16:14:26 2019 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Feb 20 14:07:18 2019 -0800"
      },
      "message": "Send special permission information to netd\n\nNetd need the list of apps that have permission INTERNET or permission\nUPDATE_DEVICE_STATS at run time to make decisions about application\nrequest. To avoid protential deadlock and reduce the traffic between\nnetd and system server, Use packageManagerServcie to send the list of\napps that have those permissions to netd when device boot and when new\napps get installed.\n\nBug: 111560570\nBug: 111560739\nTest: install and uninstall packages and dumpsys netd trafficcontroller\nChange-Id: Idb9905f424557a5c59e35d41f5eafe345aca87e0\n"
    },
    {
      "commit": "669393319a478af97f65887545aff098d107054d",
      "tree": "e612d1334c34617ab715838b661f02a4f62deda5",
      "parents": [
        "5751278992b6a0f25f8cc435e3173af7d1013e22"
      ],
      "author": {
        "name": "Garfield Tan",
        "email": "xutan@google.com",
        "time": "Fri Oct 12 17:45:50 2018 -0700"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Feb 20 14:06:30 2019 -0800"
      },
      "message": "Use toArray(T[]) instead of toArray().\n\ntoArray() always creates Object array, which can\u0027t be cast to array type\nof specific types.\n\nBug: None\nTest: Package can be installed and uninstalled correctly with a package\nlist.\n\nChange-Id: I9d6c8c2b1c3de767b87643f4c3aaff1044e33fbc\nMerged-In: I9d6c8c2b1c3de767b87643f4c3aaff1044e33fbc\n"
    },
    {
      "commit": "8b5976ec3d2c3314e11ff71c27c530df653455a2",
      "tree": "f41ca73cbc8e10487520ebfa7d58eb9d08598c76",
      "parents": [
        "4ba3b12efb713c21904214ee33e44a711bdca3ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 15:41:03 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 18:07:36 2019 +0000"
      },
      "message": "Pick up the apexBootImage pinner service files when the boot image is apex.art.\n\nTest: adb shell dumpsys pinner\nBug: 119800099\nChange-Id: I780b65dfba0fc8f7a2807f29fa3a0f7984ae7023\n"
    },
    {
      "commit": "4ba3b12efb713c21904214ee33e44a711bdca3ff",
      "tree": "dcf0648697834cd9f53cbdd489d3766c66b9c703",
      "parents": [
        "619ed85e812ff1de47de56cce24cc046cc9caa72",
        "31a61f6348b69c4dfc68e95c9a44e428234dd5f6"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Feb 20 16:25:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 16:25:58 2019 +0000"
      },
      "message": "Merge changes from topic \"PPRL.190205.001\"\n\n* changes:\n  Fix merge problems with cherry-picking \"Add notification settings to backup\u0026restore\" change into pi-dev\n  DO NOT MERGE - Merge PPRL.190205.001 into master\n"
    }
  ],
  "next": "21078b1edd38a46287451a86a7b8b905f6b06b50"
}
