)]}'
{
  "log": [
    {
      "commit": "be43ac86865c8013bef120f1f327c2cfe98ebfe8",
      "tree": "ccdf8e4b281121734c476950ca34370b67053a84",
      "parents": [
        "6f99da88db2e59bbfba82d079370130d4026ce12"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Apr 04 15:14:49 2018 -0700"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Apr 10 18:11:19 2018 -0700"
      },
      "message": "Synchronize stack position and size update for split screen\n\nWhen entering split screen, the secondary window changes position so\nit\u0027s below the primary split screen when minimized. The WSA at the same\ntime is also changing size to fit the area. However, the size doesn\u0027t\nchange until the client requests a new size and a frame with the correct\nsize comes in. This causes the stack to update position before the\nresize which causes content to get cut off and then a jump when the resize\ncompletes.\n\nThis change updates the WSA position as soon as it recognizes that the\nstack changed position due to entering split screen secondary. The WSA\nsets its position as the negative of the stack position, making the\ncalculated window position at (0,0). When a relayout is requested, the\nWSA\u0027s position is requested back to (0,0), deferring until the new frame.\nThis will put the WSA position at (0,0) when a frame with the correct size\nis drawn. This places the window position at the stack\u0027s new position in\nthe same transaction that a WSA frame with the new size is drawn.\n\nChange-Id: I8c88d7784f827d66926fb5c382af2346028dc48f\nFixes: 74354855\nTest: Entering split screen with quick step is smooth\nTest: Entering split screen with old launcher still works\n"
    },
    {
      "commit": "d7375ac9d79b86ffae9fc1e0d92505b6bfa57eb0",
      "tree": "8e0e085835dbeaa431f8d785e88830078d3240a3",
      "parents": [
        "4f9d750e91061923da90ef174a592fc59d0eff9e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Mar 12 23:18:58 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Apr 09 03:05:37 2018 -0700"
      },
      "message": "Support bluetooth not using MultinetworkPolicyTracker\n\nThis required advancing the IpManager to IpClient refactoring\n(Bluetooth used IpManager and friends). Most importantly, the\nBluetooth code used WaitForProvisioningCallback, so this is\nmoved into IpClient proper now. Also: some more renaming\ncleanup.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\nBug: 62476366\nBug: 72663849\n\nMerged-In: I5e5b2c59ad3ea9ad574e8e683bcab3b09cfe0791\nMerged-In: I89b45310181d952129fb2294db63654da9b4057f\nChange-Id: I9eee2a9d5c31cdd48a054a7edc3403584efb1864\n(cherry picked from commit 8d1fe54be1b605846cca9dfe4a966b3c5e739caa)\n"
    },
    {
      "commit": "8d8a35a90ec568da101f3e05dc8f12b58f99af5b",
      "tree": "869f38eda63a88ccf286e8033b9bbdda220e4026",
      "parents": [
        "0c42369361f08c316d864de085b573edeb95d8b5",
        "79c6d0590ed178c4995d05cf2fb49662b0055686"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Apr 06 06:48:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 06:48:25 2018 +0000"
      },
      "message": "Merge \"Move the logic of (re)evaluation of Private DNS\" into pi-dev"
    },
    {
      "commit": "79c6d0590ed178c4995d05cf2fb49662b0055686",
      "tree": "4c1d8271e12ab8d7f23aaa4d42c726fdd82121a4",
      "parents": [
        "5ab3cf8bec827ed6cfa3a8e462751e8558728d20"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Mar 21 07:18:33 2018 -0700"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Apr 05 19:18:47 2018 -0700"
      },
      "message": "Move the logic of (re)evaluation of Private DNS\n\nMoves this out of ConnectivityService and into each NetworkMonitor\n(where it\u0027s more self-contained).\n\nTest: as follows\n    - builds, flashes, boots\n    - runtest frameworks-net passes\n    - manual testing with working and non-working hostnames behaves\n      somewhat (but not entirely) as expected, and not always quickly\nBug: 64133961\nBug: 72345192\nBug: 73872000\nBug: 77140445\nMerged-In: I5dc90ecfe6f6f10967b7501645ad8e030cb38982\nMerged-In: Ida4967d22f0781524f0f269e30e653b8ec867258\nChange-Id: Ic4322af3cb49149f2d975cb31f54b2ac7927f907\n(cherry picked from commit 736353a584aa89a29e737e21e29c49fad0d38a63)\n"
    },
    {
      "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": "71c632367a798cdf656e6ac51daf0379ee525759",
      "tree": "3663ef1acfb9fe3df32bc37011e51e2345027d6f",
      "parents": [
        "0df72e4065a815a9bdd1a6af510163f9e46d5ea4",
        "3150dbf7a57c7f0332db9c9197ad046023bd6ece"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 00:25:34 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 05 00:25:34 2018 +0000"
      },
      "message": "Merge \"WM Tests: Use a separate WindowManager instance per test\" into pi-dev"
    },
    {
      "commit": "c4020ffcabda67a8d16fda496d9a5abd1880dabe",
      "tree": "3c6601edf88a49827b55ca342793103f1113cb99",
      "parents": [
        "de3569ef84cbe35c7d5e482b8a9d271ed052dd09",
        "83c1e74b1e41f2c093da80ae0eba2442f348cd77"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 04 16:54:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 16:54:46 2018 +0000"
      },
      "message": "Merge \"Mark networks with OEM_PAID always restricted\" into pi-dev"
    },
    {
      "commit": "83c1e74b1e41f2c093da80ae0eba2442f348cd77",
      "tree": "1e897ace8f2b8240761eb3ddc737b7c4db5edebb",
      "parents": [
        "50228a647183c9315312f8f36ba849f8b1e6d3d0"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Mar 30 09:21:27 2018 +0000"
      },
      "committer": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Wed Apr 04 05:35:54 2018 +0000"
      },
      "message": "Mark networks with OEM_PAID always restricted\n\nBug: 68762530\nTest: runtest -x frameworks/base/tests/net/ -c android.net.NetworkCapabilitiesTest\n\nCherry-picked from AOSP with no conflicts\n\nMerged-in: I173ee0a3bc1797d03ba34c5f025844eaada87ee4\nChange-Id: I173ee0a3bc1797d03ba34c5f025844eaada87ee4\n(cherry picked from commit efbacc0ccb70917b2782272e6b8f1a0fb3f56cbe)\n"
    },
    {
      "commit": "592dadbd43fcb7c5d67e737adb34d07923da90c4",
      "tree": "5d2502b3b2d1e1c9f2a73644a0c23d86564e2627",
      "parents": [
        "7ee86d1dbce8afa70ff699c7a8414b160aba8b74"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Mar 15 18:06:06 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Apr 03 18:23:11 2018 +0000"
      },
      "message": "Add AppOps Checks for MANAGE_IPSEC_TUNNELS\n\nAdds support for a new AppOp to permit services to\nuse IpSec tunnel mode. The IpSecService now needs\na context so change the service mode to a cached\nservice rather than a static service.\n\nBug: 66955045\nTest: runtest frameworks-net\nChange-Id: I17a4a286225b432c3e15ea1587d946189931b4f4\n"
    },
    {
      "commit": "5be71dcb03ff689098d992c5455f0a1766c8a2e0",
      "tree": "a0f3bda56bf9f98b9ebf7c1c7721e2caff703569",
      "parents": [
        "60a24b97f75ddb65a75cef75551f2ebafa6fb141"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Wed Mar 28 20:11:49 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Tue Apr 03 16:16:14 2018 +0900"
      },
      "message": "APF: drop multicast ICMPv6 while in doze mode\n\nSome WiFi hotspots send excessive multicast IPv6 ping requests which\ncause considerable power drain. Thus, drop all multicast ICMPv6 ping\nrequests while the device is in doze mode.\n\nBug: 66930077\nTest: runtest -x tests/net/java/android/net/apf/ApfTest.java\nTest: manual - compared generated APF bytecode using apf_disassembler\nTest: manual - force idle mode while sending multicast pings to device\nChange-Id: I25dbf99985cf4413b4d0e3920d281fe6d663197a\n(cherry picked from commit e2c70f8a6092f740ea10e7476b33860d756cf94f)\n"
    },
    {
      "commit": "5a36b3b6ea58af62b4db20240f45aee2df6a73cc",
      "tree": "e769b9aa6e92dfbe6035bc5b49a559f8c13a2d45",
      "parents": [
        "7a8aac8c6e68f3177d7f38e28862647c61b19c86",
        "7a26ba37f6a1205c8914c62c4756f24329317f6b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 03 02:25:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 03 02:25:49 2018 +0000"
      },
      "message": "Merge \"Refactor isTetheringSupported() calls\" into pi-dev"
    },
    {
      "commit": "7a26ba37f6a1205c8914c62c4756f24329317f6b",
      "tree": "3af6ea02b0dcd775b9f38be1252e2c11de1a5846",
      "parents": [
        "ea31cbea935a20d9d290453c2ba2f8b8670e45ca"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Mar 09 14:18:02 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Apr 02 16:59:23 2018 -0700"
      },
      "message": "Refactor isTetheringSupported() calls\n\nTethering currently wants access to complex isTetheringSupported\nlogic that is only available in ConnectivityService. Instead of\ntrying to access that via ConnectivityManager, pass this capability\nin to Tethering directly, in the TetheringDependencies object.\n\nAlso:\n    - ConnectivityManager is only a source of static constants now,\n      so \"import static\" all the constants that are actually used.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net works\n    - manual USB towards WiFi tethering works\nBug: 68951715\n\nMerged-In: Ifa121b057f9959ddb980edc940327929e48ea973\nMerged-In: Iad6358dc2f1d10b322d22ec90543adc50882962d\nChange-Id: Ia64faaadefb4a5d84a50da98bdebd544b6fda101\n(cherry picked from commit 465ff3a0c1da8afd5cb13b25ed9a3c95ee0dd2c4)\n"
    },
    {
      "commit": "75525b39f4deb8409825fd43195d5f82628ef3e5",
      "tree": "66c3c5d6e39e96d1cfa1cd62d912a3f076c96050",
      "parents": [
        "07daad2dbffa9ce81a5c66adf7f12715bce5516a"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Feb 27 16:47:22 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Apr 02 13:30:02 2018 +0000"
      },
      "message": "Fix network usage stats on 464xlat tethered.\n\nUsage stats corrections for 464xlat in NetworkStatsFactory are not applied\nto tethered traffic. Add adjustments in NetworkStatsService. After\nmigrating external callers off NetworkStatsFactory, we will be able to\nonly apply adjustments in NetworkStatsService and remove stacked\ninterface tracking from NetworkStatsFactory.\nBug: 72107146\nFixes: 72107146\nTest: runtest frameworks-net \u0026 manual - checked corrected network usage\nMerged-In: Ieb25c41c651499fdd01225ae5ac21d95e3d823f5\nMerged-In: I016722f3a0ae2ae0a1d48bfacc4fe07ee3578ef7\n(cherry-pick of aosp I5ce450e616b4fddf21f2a491fe5d0c9e9f969bda)\n\nChange-Id: Id41cf22a0f9a63cb1832e9375bfb045861f08e52\n"
    },
    {
      "commit": "6e66280d3538bd5985d0b8341ab8bef5caf48f48",
      "tree": "960fabf023a214fa73c4418f094084cbd6c83775",
      "parents": [
        "bf9dfb16be7d58b473cff96a3ab9ac3b2ff33b43",
        "577164bd45544ee0b3c24945643b3ab20b49b663"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 09:42:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 09:42:26 2018 +0000"
      },
      "message": "Merge \"Fix PermissionMonitorTest that has been failing.\" into pi-dev"
    },
    {
      "commit": "4a3ccc18e6ba1ab45ba242f9ceb22c925c14d06d",
      "tree": "8e7327def3a887349ea80d689646e4552cbc9e29",
      "parents": [
        "6f5a8db2e93bc358b211f576aa91cf9fdc7a88de",
        "035dbd438ab454da6236dfda7547f94f6102a4cc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 02 08:37:20 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 08:37:20 2018 +0000"
      },
      "message": "Merge \"apf: adjust JNI to accept_packet()\u0027s new signature\" into pi-dev"
    },
    {
      "commit": "577164bd45544ee0b3c24945643b3ab20b49b663",
      "tree": "266aeb1123241ca8600698a3b184288a540679b8",
      "parents": [
        "6f5a8db2e93bc358b211f576aa91cf9fdc7a88de"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Apr 02 16:16:46 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Apr 02 07:44:21 2018 +0000"
      },
      "message": "Fix PermissionMonitorTest that has been failing.\n\nThe fail is related to a recent fix to PermissionMonitor\nthat went into pi-dev only : ag/3799094, which fixed getting\nthe remote package name for the correct macro user instead of\nthe default. That fix had broken the test, this change fixes it.\n\nTest: test now passes\nBug: 77315205\nChange-Id: I26f8276eafe80478d5fefcff92e7dc2f12128bb4\n"
    },
    {
      "commit": "035dbd438ab454da6236dfda7547f94f6102a4cc",
      "tree": "ac4c22759bb80ac83301160ddd6865c9579fa2b7",
      "parents": [
        "85e4a97789820424a23a6a63db4f851f1d8d42bb"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Fri Mar 30 17:12:02 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon Apr 02 16:27:08 2018 +0900"
      },
      "message": "apf: adjust JNI to accept_packet()\u0027s new signature\n\nBug: 73804303\nTest: runtest -x tests/net/java/android/net/apf/ApfTest.java\nMerged-Id: I0a3ad562496f3e06bc9527af4e038be3cdfe25c6\nMerged-Id: I1674ac22f00af037ad415a4436b94b2eec6a02b7\nMerged-Id: I966776e6574cbf167a6148e20d40e2bdcc887327\nChange-Id: Id5c3cec5459ce6f9693457448002e60bbca6c09b\n(cherry picked from commit 64bc32c5d4ae8a5c479a15615f99180476e9b2fa)\n"
    },
    {
      "commit": "6f5a8db2e93bc358b211f576aa91cf9fdc7a88de",
      "tree": "d3afe8de91ec9ef5a79dc053acc543cb4e2c96c5",
      "parents": [
        "dfa8f0dbcef180d3a9cdeb7311146cc1c0432962",
        "b6a920124f28422877f59bfb32719099a0067d76"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Apr 02 05:40:04 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 02 05:40:04 2018 +0000"
      },
      "message": "Merge \"Add method to NetworkStatsService for UID stats.\" into pi-dev"
    },
    {
      "commit": "ddc4e1ab0647523f62bbc573766b8683dee5f5bf",
      "tree": "d9eb65167aa2490254043f527b0190b704e04548",
      "parents": [
        "35147b2dae7dbf19a670b86aede67a41c60d37b5",
        "7fc0f633bc11c9fd89eb4bd3581ea2e85eaa31c1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 30 23:12:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 23:12:31 2018 +0000"
      },
      "message": "Merge \"Fix BackgroundDexOptTest\" into pi-dev"
    },
    {
      "commit": "7fc0f633bc11c9fd89eb4bd3581ea2e85eaa31c1",
      "tree": "fc7f0c129e5e5ea67c8c8417c87d2e0897fa7ce0",
      "parents": [
        "d9b53a097d0eec2d1112b25a67b28c203e9251f9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 30 12:38:59 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 30 14:04:48 2018 -0700"
      },
      "message": "Fix BackgroundDexOptTest\n\nTest: atest BackgroundDexOptServiceIntegrationTests\nBug: 76425903\nChange-Id: I19b72b95ee19ebe1807e1ce108a39dec6196a097\n"
    },
    {
      "commit": "36f2d8a4e1247b4556d10691eb8e40b26122f92c",
      "tree": "ac32f575ac66f558b48561171a8171d5df66e4ec",
      "parents": [
        "eff51d566a78efbf6e44fa67bef6689e261079ac",
        "bfa67c81bf88b842fdb63b63b0cfd96e021f82af"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Fri Mar 30 20:28:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 20:28:19 2018 +0000"
      },
      "message": "Merge changes from topic \"encap-api\" into pi-dev\n\n* changes:\n  Require explicitly supplied truncation length\n  Clarify UDP encapsulation socket API\n"
    },
    {
      "commit": "b6a920124f28422877f59bfb32719099a0067d76",
      "tree": "e8a982540df8827a0e8de4ceccf3e693e542746b",
      "parents": [
        "601861fd1cce308320ebe21e47a48e0c9c68de55"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Mar 06 12:36:54 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 18:58:18 2018 +0900"
      },
      "message": "Add method to NetworkStatsService for UID stats.\n\nUseful for clients such as BatteryStats which currently rely\non NetworkStatsFactory. Data at that stage is incomplete as\nit does not account for tethering, VT data and corresponding\n464xlat corrections.\n\nTest: runtest frameworks-net, CTS tests pass.\nBug: b/72107146\nMerged-In: I31c5b9b4a7c6e72910152415894a137f000a5858\nMerged-In: I2527d95000c7500c824ede70f87ecb38e21ed323\n(cherry picked from aosp 088ff6824f13145ea52207bdead0d7e454a6f3ce)\n\nChange-Id: Ie80f1bb21124241f3414f9be77aceac9a44ec6d1\n"
    },
    {
      "commit": "671547b2249a3bc2f613ae6279d207084bc30fa4",
      "tree": "55369c78eb1091fb0f21753c111b68b5b555458d",
      "parents": [
        "4140cc106e3e250bc4487c433ecd885bf0d1f7a5",
        "6c02f9942aaf4f6665018e0c7f07aeceb5ae752e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 09:15:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 09:15:13 2018 +0000"
      },
      "message": "Merge \"Use InterfaceSet for upstream interfaces.\" into pi-dev"
    },
    {
      "commit": "4140cc106e3e250bc4487c433ecd885bf0d1f7a5",
      "tree": "d0e7fd5e795043152ff1ee7a8774594bec356ca6",
      "parents": [
        "37e8dfa8e97d785431ae866862aa8f1d4adf28c7",
        "5d0dc453e90554e739c5994a417e73a560edc547"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 09:13:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 09:13:50 2018 +0000"
      },
      "message": "Merge \"Add tests for IPv4 of dual stack tethering.\" into pi-dev"
    },
    {
      "commit": "6c02f9942aaf4f6665018e0c7f07aeceb5ae752e",
      "tree": "e27766b0ff8e607f0d5d4a832af31823f1e3dc1f",
      "parents": [
        "5d0dc453e90554e739c5994a417e73a560edc547"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 09 14:07:18 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 18:08:52 2018 +0900"
      },
      "message": "Use InterfaceSet for upstream interfaces.\n\nAllows using different upstream interfaces for IPv4 and IPv6.\n\nBug: 38218697\nBug: 64382985\nBug: 64976379\nBug: 64995262\nBug: 64380515\nTest: runtest frameworks-net, manual (with aosp/644099 applied)\n(cherry-pick of aosp I3db63f7aa5255a0229253187def7590a386c5133)\nMerged-In: Ic8602dd029b5a9626aaf6651315b82ab6327037c\nMerged-In: I015ac946afa581be1d94f10ab766ac00f5a4ede0\n\nChange-Id: I8c48dab5eb67e60dadbfa974122fc884f4badd15\n"
    },
    {
      "commit": "5d0dc453e90554e739c5994a417e73a560edc547",
      "tree": "3fcd2b4725efaeff39abe10460b6585c5f6d9637",
      "parents": [
        "601861fd1cce308320ebe21e47a48e0c9c68de55"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Mar 15 11:57:14 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 18:08:52 2018 +0900"
      },
      "message": "Add tests for IPv4 of dual stack tethering.\n\nAlso refactoring some Tethering and TetherInterfaceStateMachine calls\nto address testability issues.\n\nThis is in preparation of other work to have IPv6-only or 464xlat\ntethering working.\n\nTest: runtest frameworks-net\nBug: 38218697\nBug: 64382985\nBug: 64976379\nBug: 64995262\nMerged-In: I3b91125b1a715690c2cd417b1e937e568c755d9f\nMerged-In: I05de77d9b90d147bf1d6ee7f7ee19a049afddfa1\n(cherry-pick of aosp I721aca4789ddfbee5a97316aae0b378d79ee2107)\n\nChange-Id: Idfdd1b9cd5419c1f51f0fbb1eba2f36a9c12474b\n"
    },
    {
      "commit": "37e8dfa8e97d785431ae866862aa8f1d4adf28c7",
      "tree": "caa6a01e04ca9794047180dc9212f2029df79a40",
      "parents": [
        "1a8d1a51cfada41f10dbcffb4b0840a48773ca4b",
        "507754a81e0b9d871e59fe9621c2a5d57befff90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 30 08:48:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 30 08:48:25 2018 +0000"
      },
      "message": "Merge \"Limit the number of routes for performance\" into pi-dev"
    },
    {
      "commit": "507754a81e0b9d871e59fe9621c2a5d57befff90",
      "tree": "44d9179d51ddb3ccb61b016913fb33cb84c90912",
      "parents": [
        "77e0b7b821a4d334606f07c7626aa59f9bee8446"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Mar 29 14:10:44 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 30 15:41:50 2018 +0900"
      },
      "message": "Limit the number of routes for performance\n\nIn evaluating whether \"most\" of the addressing space is\ncovered, the list of routes are obtained from a third-party\napp, so it\u0027s possbile the system service stalls unless\nsome limit is enforced on how much work it has to do.\nThis change limits the number of routes to 400, as determined\nby time measurement on various devices.\n\nBug: 74176086\nTest: runtest framework-net\nChange-Id: Ie4a96098bc044ade87b188839586f14dd101c100\n"
    },
    {
      "commit": "bfa67c81bf88b842fdb63b63b0cfd96e021f82af",
      "tree": "8938dd8a39c5fae57c9bb87420cf46b453cf60b9",
      "parents": [
        "6ea93c4bcaf5c2c8489695308e77b659b70b64d4"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Mar 28 13:10:40 2018 -0700"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Mar 29 23:07:42 2018 -0700"
      },
      "message": "Require explicitly supplied truncation length\n\nInstead of providing default truncation lengths (based on RFC or\notherwise), this change imposes a restriction that the truncation length\nmust be supplied for all auth or aead algorithms.\n\nBug: 77204048\nTest: Updated tests, ran on walleye\nMerged-In: I4a0e2e71aa97259e56f44e7c8a2ce53135708d97\nChange-Id: I4a0e2e71aa97259e56f44e7c8a2ce53135708d97\n(cherry picked from commit bb7f2820f5bcccf8618078c2cbe4ea9836797e3b)\n"
    },
    {
      "commit": "6ea93c4bcaf5c2c8489695308e77b659b70b64d4",
      "tree": "05415c453684f7988f65d6e42269c146611f1581",
      "parents": [
        "3d8fa52f59dcfae93e8ecc7a669fd3757e87c63f"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Mar 27 16:55:48 2018 -0700"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Mar 29 23:05:42 2018 -0700"
      },
      "message": "Clarify UDP encapsulation socket API\n\nThis change updates the getSocket() methods for IPsec to improve clarity\nof the return types, both for public APIs, and internal-only methods.\n\nBug: 72473753\nTest: APIs updated, CTS + unit tests ran.\nMerged-In: I0afebd432c5d04c47c93daa1ce616d712aa323d7\nChange-Id: I0afebd432c5d04c47c93daa1ce616d712aa323d7\n(cherry picked from commit 4c987ebade580d4abc8a3d549e0df90baab33140)\n"
    },
    {
      "commit": "786b7ad2604709b63dac4675a0477b58c7532068",
      "tree": "5ec1bd1dfac70be8b984d390b88a8322ce0550c6",
      "parents": [
        "601861fd1cce308320ebe21e47a48e0c9c68de55"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Mar 05 18:14:56 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Mar 30 12:18:23 2018 +0900"
      },
      "message": "Allow null subscriberId in NetworkStatsManager.\n\nUse a MATCH_MOBILE_WILDCARD template to avoid filtering by\nsubscriberId when querying statistics from NetworkStatsService.\n\nBug: 74038898\nChange-Id: I8296220472a9ba37044dd1a5ede9bdb45d3ed339\nFixes: 74038898\nTest: runtest frameworks-net, CTS tests pass\nMerged-In: I1e4e283c6eaecf33d12488e41e0c524f6ff83954\nMerged-In: Ia84d2c7cc63bf8b8bf30f133e0382fd7103bf490\n(cherry-picked from aosp I4b39e7031416cb33b23d89aa36ff0f774eaa942f)\n"
    },
    {
      "commit": "3150dbf7a57c7f0332db9c9197ad046023bd6ece",
      "tree": "8113a524168863ea168b654b32bfded13ef22520",
      "parents": [
        "52c15f1699e60c0701cc21a69847a005efe87bc9"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Wed Mar 28 18:06:52 2018 +0200"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Mar 29 21:27:47 2018 +0000"
      },
      "message": "WM Tests: Use a separate WindowManager instance per test\n\nFixes a bunch of flakes, where the WindowManagerService instance\nwas reused between tests, which caused delayed callbacks from a\nprevious test affecting state of a future test.\n\nAlso introduces a DexmakerShareClassLoaderRule to manage\nthe \u0027dexmaker.share_classloader\u0027 property instead of sprinkling\nerror prone System.setProperty() invocations all over the tests.\n\nChange-Id: Ic9445d1b2cef594e79365c425632aabced6343a9\nFixes: 76111404\nFixes: 75991352\nFixes: 75991878\nFixes: 75992153\nTest: atest services/tests/servicestests DexmakerShareClassLoaderRuleTest packages/SystemUI/tests packages/SystemUI/shared/tests\n"
    },
    {
      "commit": "ce68c5d6154d482d77434bf65a3f65ec20fc4372",
      "tree": "ff3a1715d4049d04f8ee9862a91897403e437392",
      "parents": [
        "00f3c4333e37a7f02320abc8293e692bf0c41b14"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Wed Mar 07 23:40:32 2018 +0000"
      },
      "committer": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Tue Mar 27 22:45:49 2018 +0000"
      },
      "message": "Merge \"Minor clean-up in NetworkCapabilities\" am: 539f85a18d am: b1e2bfe4df\nam: 8a956a5141\n\nBug: 72828388\nTest: frameworks/base/tests/net/ -c android.net.NetworkCapabilitiesTest\n\nChange-Id: I2f45d2c70c7c0142ae3b3ce9e6329c5f25b63380\n(cherry picked from commit feb8d1498a822730e29cf346fe3382e3f5293a58)\n"
    },
    {
      "commit": "608ec66d62647f60c3988922fead33fd7e07755e",
      "tree": "603144475060416c137fefb5169faf0e8cd2952f",
      "parents": [
        "0491f5aa0f3cc6b46bdf433bc900433b965943e2"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Fri Mar 02 13:45:09 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Mar 26 20:55:54 2018 +0000"
      },
      "message": "UsbHostManager: Restore inserted device logging\n\nRestore logcat logging of newly-added USB devices.\nEliminate blacklist log lines.\n\nTest: Connected USB Storage and USB audio devices.\nUpdated UsbDescriptorParserTests for device descriptor\nversion.\n\nexample output:\nUsbHostManager: USB device attached: vidpid 03eb:2433 mfg/product/ver/serial Libratone/Libratone_INEAR/1.00/Inear_mcu_app_0.2.1_20160304 hasAudio/HID/Storage: true/true/false\nUsbHostManager: USB device attached: vidpid 05dc:a82b mfg/product/ver/serial Lexar/ARA Storage /2.08/0024070163400215 hasAudio/HID/Storage: false/false/true\nUsbHostManager: USB device attached: vidpid 18d1:5029 mfg/product/ver/serial Google/USB-C to 3.5mm-Headphone Adapter/22.80/201405280001 hasAudio/HID/Storage: false/true/false\nUsbHostManager: USB device attached: vidpid 18d1:5025 mfg/product/ver/serial Google/USB-C to 3.5mm-Headphone Adapter/22.80/201405280001 hasAudio/HID/Storage: true/true/false\n\nBug: 74119682\nChange-Id: I72688f651c819d4bdc48f6d6316570ca5fc54d1e\n"
    },
    {
      "commit": "0491f5aa0f3cc6b46bdf433bc900433b965943e2",
      "tree": "1b9cfc681da9925fbeb04c83a44d64d522bb1056",
      "parents": [
        "d52c532df7c7c481bf6e482c37f4e0ee02618fce"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Fri Mar 02 13:18:18 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Mar 26 20:55:28 2018 +0000"
      },
      "message": "UsbDescriptorParser: always parse in constructor\n\nUsbDescriptorParser::parseDescriptors always returned true.\nRemove the return value, and remove the one constructor that\ndoesn\u0027t parse descriptors so the device is always in a parsed state.\n\nBug: 74119682\nTest: Built\nChange-Id: I2dd8d439405867d78102a9591dd1db36fe3959dc\n"
    },
    {
      "commit": "117e7f3c76a02060b423cc370aadc0325ccebd9d",
      "tree": "6c7b311604fb50a704a4f0f8d7c13793694e1265",
      "parents": [
        "9ecfce3b447ad3d9fbd8349fd52f603ccafe9e4e"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Sun Mar 04 21:01:01 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Mar 23 21:59:24 2018 -0700"
      },
      "message": "Pass all relevant resolver info to netd\n\nTest: runtest frameworks-net passes\nTest: manual testing of opportunistic and strict mode works\nBug: 34953048\nBug: 64133961\nBug: 72345192\nMerged-In: I96f7747b8f0bb38d95579b688b4c2d068f1229cf\nMerged-In: Ia4d896c4cc33c02f0c46d5d4c760cc33b13dff0b\nChange-Id: Ia4f1905e1fa60e7a468c2246fb809191d2ba796b\n(cherry picked from commit e5dac904d361a349f1cfc48500a678d22e3a7316)\n"
    },
    {
      "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": "991b971acbb4675636ccab8b3d9ba891c5f7d936",
      "tree": "4b8979d9de465e553904061dc2981c0b485190be",
      "parents": [
        "8e9a1123fa1d542e4e31771874f33e7b81d0f08f",
        "dfdd82e84fcd102ab9b4d2233d195a013914c2ae"
      ],
      "author": {
        "name": "Kurt Marcinkiewicz",
        "email": "kurdt@google.com",
        "time": "Fri Mar 23 18:02:19 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 18:02:19 2018 +0000"
      },
      "message": "Merge \"Allow specifying a network for SNTP time sync\" into pi-dev"
    },
    {
      "commit": "1f654aa24738233f872f708e4e13a9c02af5d6f4",
      "tree": "768d42e27dc2675f25fcf25a8ed73698fe9defdc",
      "parents": [
        "9e5a7f2a63e1a43abf9b3a9f644fa5b70fefab03",
        "26aa91ab27c4064cc7e77267a1a4ef7544d35f5c"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 23 06:36:47 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 06:36:47 2018 +0000"
      },
      "message": "Merge \"Have PermissionMonitor arbiter which app can access background networks\" into pi-dev"
    },
    {
      "commit": "26aa91ab27c4064cc7e77267a1a4ef7544d35f5c",
      "tree": "975f7a5eb43aa8fadb2cdedb8b33c8f5ac5a0d2d",
      "parents": [
        "245f8e5ab58aa38671b9c0015493e6dda07f595a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Mar 20 19:13:57 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 23 13:37:56 2018 +0900"
      },
      "message": "Have PermissionMonitor arbiter which app can access background networks\n\nThis will let ConnectivityService send the right callbacks to the\nrelevant apps.\n\nTest: manual with apps\n      runtest frameworks-net\n      cts\n      new tests for this functionality\nBug: 67408339\n\nChange-Id: I6f08efd9e73c7e191f833d7f307a3bf4c9e2f0b4\n"
    },
    {
      "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": "dfdd82e84fcd102ab9b4d2233d195a013914c2ae",
      "tree": "bddf480e4a7e63ea8b3cd987c65f8ef87bc82d9a",
      "parents": [
        "163a57d71e6844856b2c7a3a1dc9ce3b5e2100b5"
      ],
      "author": {
        "name": "Kurt Marcinkiewicz",
        "email": "kurdt@google.com",
        "time": "Mon Mar 05 14:45:04 2018 -0800"
      },
      "committer": {
        "name": "Kurt Marcinkiewicz",
        "email": "kurdt@google.com",
        "time": "Thu Mar 22 13:43:25 2018 -0700"
      },
      "message": "Allow specifying a network for SNTP time sync\n\nPermits syncing over a specific network instead of the default for\nthe process. This was causing an issue with Android Wear devices\npaired with iOS where the default network is bluetooth\n(see b/32663274).\n\nThis CL is in support of ag/3776564\n\nBug: 32663274\n\nTest: adb shell am instrument -e class android.net.SntpClientTest -w \\\ncom.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner\n\nChange-Id: Ic9fc169cf75457810d4992121d85d7642e350b90\n"
    },
    {
      "commit": "297871902b8824abab6f5c6ee1b09dd4b22c8ad6",
      "tree": "00ee549c7befbd483f50a5bbbbf394e2e42d4e11",
      "parents": [
        "b630550ed19798ad89d8e10b750c72f899ad3e92"
      ],
      "author": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Wed Mar 21 17:55:33 2018 -0700"
      },
      "committer": {
        "name": "jdesprez",
        "email": "jdesprez@google.com",
        "time": "Wed Mar 21 17:57:24 2018 -0700"
      },
      "message": "Add TestablesTests to device-tests for APCT suite\n\nAPCT is being converted to a suite style. Tag\nTestablesTests to be included in new style run.\n\nTest: build device-tests\nBug: 74440293\nChange-Id: I642dae21f8484c6f20a0babe88f36abb8b25ff7f\n"
    },
    {
      "commit": "82485a2660b8eb3689021889f68b7e6e199a31c4",
      "tree": "01ffa9d16dc0e7a976c28457a3939a8c315db85d",
      "parents": [
        "c8f63060adc880eb6cfdee1e08cafcf2f379096a"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Feb 27 19:19:40 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Mar 20 18:29:02 2018 -0700"
      },
      "message": "Check mOwnedByTransform to avoid DELSA on SPI\n\nThe owned by transform flag prevents the removal\nof an SPI from accidentally deleting an associated\nSA in the kernel. That flag wasn\u0027t actually being\nchecked, so deleting an SPI would result in the\ntransform being removed.\n\nThe existing code already guarantees that the SA is\ndeleted when the transform is deleted\n\nBug: 73258845\nTest: runtest frameworks-net\nMerged-In: I4c26aea7af817a5d9e54da5db1cdf4f943bcae06\nChange-Id: I4c26aea7af817a5d9e54da5db1cdf4f943bcae06\n(cherry picked from commit 22795302be4ec35449908cf566aa7c16945df836)\n"
    },
    {
      "commit": "da4b0c65a5cbebf6c5e66b869b75dd3a6625cd2e",
      "tree": "882c6fe351e75e9e6150f2776aa0062f07689555",
      "parents": [
        "eb37b9cbb0bad11557c850a2b2805929a666061c"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Thu Mar 01 18:53:07 2018 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Mar 20 16:01:27 2018 -0700"
      },
      "message": "Added implementation for VTI add/remove address\n\nThis change adds implementation details for add/remove addresses onto a\nVTI.\n\nBug: 73675031\nTest: New tests added, passing on Walleye\nMerged-In: Idde9d943a5285d2c13c5c6b0f7b8a9faf718e6a5\nChange-Id: Idde9d943a5285d2c13c5c6b0f7b8a9faf718e6a5\n(cherry picked from commit ecc9f7cc08804e3fa15fea04ae94ea1bc74edbfe)\n"
    },
    {
      "commit": "e588d6145dfd7171903e2e8c3583ba4904e07394",
      "tree": "f1dca5a8784eac0b6e86edc86be714c7ce7d642b",
      "parents": [
        "36b0b60e40fb37f9f08a718ed040ad5010018b8e",
        "63bf68d5c3eebe227fae099609eda2b470e20bf0"
      ],
      "author": {
        "name": "Gopinath Elanchezhian",
        "email": "gelanchezhian@google.com",
        "time": "Sat Mar 17 00:55:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 17 00:55:05 2018 +0000"
      },
      "message": "Merge \"Add cycle-clean option in AppLaunch\" into pi-dev"
    },
    {
      "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": "63bf68d5c3eebe227fae099609eda2b470e20bf0",
      "tree": "9522b5d17a521309b2e3c06c0babc14b66721b9d",
      "parents": [
        "6604af68c5606a64ec103c973e5dea43e52817a7"
      ],
      "author": {
        "name": "gopinath",
        "email": "gelanchezhian@google.com",
        "time": "Thu Mar 15 19:24:38 2018 -0700"
      },
      "committer": {
        "name": "Gopinath Elanchezhian",
        "email": "gelanchezhian@google.com",
        "time": "Fri Mar 16 19:08:09 2018 +0000"
      },
      "message": "Add cycle-clean option in AppLaunch\n\nIf cycle-clean is enabled then all the apps will be\nkilled at the end of the cycle and cache will dropped.\n\nCycle time is also enabled to measure the sum of launch times\nduring each cycle.\n\nAbove two options will enable use to measure app launch time under\nmemeory pressue by not killing the app between the launches and\nby killing all the apps and dropping the cache before each cycle\nand measuring the cycle time.\n\nBug: b/73091210\n\nTested : Tested with nodropcache, no force stop between launches\nand cycle clean option and the cycle time avg,min and max\nis printed as expected.\n\nChange-Id: I8fb22439a9fe191104ce024c8a85a2688068cd60\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": "e87923c2df457bfec3bd804f51315471291015cb",
      "tree": "85e0f6fd351140654a3b2ff0a6fffdc4e10d509f",
      "parents": [
        "4985fdef8bee4598df89f014a0886be24cd17fdb"
      ],
      "author": {
        "name": "Kevin Neas",
        "email": "kneas@google.com",
        "time": "Mon Mar 12 17:36:23 2018 -0700"
      },
      "committer": {
        "name": "Yuanlang Song",
        "email": "yuanlang@google.com",
        "time": "Thu Mar 15 21:55:45 2018 +0000"
      },
      "message": "Protecting against trying to launch apps that don\u0027t exist\n\nBUG: 74083361\n\nChange-Id: Ia0750bcca2534e794a81f094d5c214af4011c0ce\nTest: Locally\n(cherry picked from commit cb45b97a539a6460af1ecb43ddc3bf574f8100a9)\n"
    },
    {
      "commit": "f85de9616f1ddba0a143b84c79368c4ddabcccb1",
      "tree": "ea64bebbce70f75c3db871e62867ef53d52a839c",
      "parents": [
        "560b26a9d25c806b00b40c2852ef519d2adb1597",
        "090c6b1c94f75fb0d2193354ca453d528da0fa99"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 12 05:07:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 05:07:32 2018 +0000"
      },
      "message": "Merge \"Allow apps in /odm/app and /odm/priv-app\" into pi-dev"
    },
    {
      "commit": "090c6b1c94f75fb0d2193354ca453d528da0fa99",
      "tree": "cf7af82334e2f94e594aed9f219f5d456b2f9d56",
      "parents": [
        "be1033fda24a7c1ba9ef3ca590da30be56acc6d2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 28 12:03:28 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Mar 12 10:40:33 2018 +0900"
      },
      "message": "Allow apps in /odm/app and /odm/priv-app\n\n/odm is a vendor partition other than /vendor. Both partitions are for\nHW-specific modules such as HALs. The difference is that /odm is owned\nby ODM (usually device manufacturer which designs the board), whereas\n/vendor is owned by SoC manufacturer. In other words, /odm partition is\nfor board-specific customization to the /vendor partition.\n\nSince apps can exist in /vendor/app and /vendor/priv-app, the same has\nto be supported for /odm partition.\n\nBug: 71366495\nTest: m -j\nTeet: cd frameworks/base/tests/OdmApps; atest .\nChange-Id: I1ec8b22b080efdefd67a45ce9c7aeaa2aef350e0\n"
    },
    {
      "commit": "505511c8290e8815fa6d8b69dead08d71e347e7b",
      "tree": "002b5e3cd28a2d67168d3dd40357c3df736468bf",
      "parents": [
        "0aa191ccbf159b0d6127cfc190e2c4d5fa319eb9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 08 18:12:46 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 08 18:30:06 2018 -0800"
      },
      "message": "Add sleep for profile saving in AppLaunch\n\nAim to prevent cases where the profile won\u0027t be saved when we compile.\n\nBug: 70734839\nTest: m\nChange-Id: Ib6f8740c70729914fc559f249b19adea1e7777f0\n"
    },
    {
      "commit": "d137c872cdc5e157c0ff65076689f7c4552a9013",
      "tree": "3c2dffe6115c25dc65faf975c7d3bc12f397bde4",
      "parents": [
        "aa79f03ca6c4c5a3a262aeaf2b608ffd4807ab13"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Mar 07 11:42:04 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nExempt-From-Owner-Approval: Global cleanup\nChange-Id: I26458e41ecb84de91ac9a356a5d4bafb44f463c1\n"
    },
    {
      "commit": "16268a69d6fdf6758d34f67ee635dae96d479333",
      "tree": "ef49116300f6a0940ea4dec2234745b6f4acd68f",
      "parents": [
        "69598bbef56ba17a85a044f62380141964b93183",
        "dd027b3ab2087f4ccaf4e9d72472327f27789a1d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 06 23:04:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 23:04:16 2018 +0000"
      },
      "message": "Merge \"Fix issue #72116995: Add permission guarding Service#startForeground\" into pi-dev"
    },
    {
      "commit": "67ccb4f5c49b0a05b536a78ec66ea986ad43c26c",
      "tree": "e72d2dc4ce52c8043dc0d5286c45a8398af30b78",
      "parents": [
        "983c1e54e1ae651ffb4c0f1ce34a561624af6060",
        "0d3aa08a2f0cb82adb936e26d4de2b14408a1dd9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 06 18:50:01 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 18:50:01 2018 +0000"
      },
      "message": "Merge \"Update UsbHandlerTests\" into pi-dev"
    },
    {
      "commit": "ea1b8bd5a5647dd1cb65cac0100bac29e41ddc48",
      "tree": "592e0e5a6f374aa1895d9ad97326e6c9010a825c",
      "parents": [
        "cefe0c65184b0a288fe0c4cdce721ebc0ffb8efa"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri Mar 02 16:51:13 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Mar 06 11:06:34 2018 +0900"
      },
      "message": "Fail if the interface is not available when starting\n\nAddresses a long-standing TODO.  Now, when calling IpClient\u0027s\nstartProvisioning(), the interface has to be available (i.e.\nInterfaceParams#getByName() must return non-null).\n\nAlso:\n    - add a test\n    - refactor for testability\n    - delete some constructors no longer used\n    - properly handle passed-in null IpClient.Callback\n    - some more IpManager -\u003e IpClient renaming\n    - permit recording metrics before starting a provisioning\n      attempt (logging immediate errors) without Log.wtf().\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks/opt/net/wifi/tests/wifitests/runtests.sh passes\n    - runtest frameworks-net passes\n    - basic WiFi IpClient connections works fine\nBug: 62476366\nBug: 73487570\nMerged-In: I68e5e24122dc31e730cdbe8d75e33847e6332da4\nMerged-In: Ifd27f5d908947cd7b4e1b8d54f9fa87e43ebb11b\nMerged-In: Ief3c8e1652f69af0276fe35946ae1bf6e6b1b57e\nChange-Id: Ic83ad2a65637277dcb273feb27b2d1bb7a11eb2b\n(cherry picked from commit b152cd0aa4f333b721615bb17773b35a989245fb)\n"
    },
    {
      "commit": "dd027b3ab2087f4ccaf4e9d72472327f27789a1d",
      "tree": "1f937eaea62c46d7f3758ccb73835acfa3c77ee9",
      "parents": [
        "081d3d2d89e7f73d01260ab92114814718614bea"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 19 17:44:46 2018 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 05 16:59:21 2018 -0800"
      },
      "message": "Fix issue #72116995: Add permission guarding Service#startForeground\n\nNow requires permission if targeting P.\n\nNote that this is a separate permission from the existing one\nthat is required for instant apps to use foreground services.  The\nreason for this is that their semantics are different (the instant\napps permission is associated with an app op for control over what\nthe app is allowed, while the regular app permission is just a\nnormal permission that is always granted and only there for\nauditing of apps), and there are probably going to be cases where\na developer will want to use a foreground service in the full\nversion of their app but not as an instant app.\n\nBug: 72116995\nTest: atest CtsAppTestCases\nChange-Id: I883c9515c307ed8e39f0bf888c4045944c8183ac\n"
    },
    {
      "commit": "0d3aa08a2f0cb82adb936e26d4de2b14408a1dd9",
      "tree": "4847ce58b9f059a07d648153aa003cf49db3563b",
      "parents": [
        "74cfe5674202a85f2779d5e8c9092edcf0ebd4db"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Fri Mar 02 12:38:26 2018 -0800"
      },
      "committer": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Mon Mar 05 22:52:11 2018 +0000"
      },
      "message": "Update UsbHandlerTests\n\nSome tests weren\u0027t being run due to\nmissing annotations.\n\nBug: None\nTest: atest UsbTests -- passes\nChange-Id: Ifc99d8f0b1a825bacf7d1ed59c790c343722b37c\n"
    },
    {
      "commit": "2d8067ed3ddc3a227cd5fdf6309c4961ad41e75f",
      "tree": "ae9b2a143f138e4e2f7b45e7376810bb7381fc06",
      "parents": [
        "b9774cbe9dc0833a257e3efde166e9b91f55aa73",
        "f5312f353810abf484e9d3f3756fee97a6740337"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Sat Mar 03 00:14:52 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 03 00:14:52 2018 +0000"
      },
      "message": "Merge \"Extend network request to query networks w/o capabilites\" am: d846adac83 am: a3be78b5e7\nam: f5312f3538\n\nChange-Id: I3bf776767be61577f1bca0d98d4aaf82a0e45336\n"
    },
    {
      "commit": "f5312f353810abf484e9d3f3756fee97a6740337",
      "tree": "c338f65767be37b896bdb643715b3814ec73a808",
      "parents": [
        "5f01f4272376b2d8aeab674baddd5510be938175",
        "a3be78b5e734ba40cbc7d8dc766c5114e695b89e"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Sat Mar 03 00:03:37 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Mar 03 00:03:37 2018 +0000"
      },
      "message": "Merge \"Extend network request to query networks w/o capabilites\" am: d846adac83\nam: a3be78b5e7\n\nChange-Id: Ie0c4fa4648c235589fecd79a25d28f1e62025fb7\n"
    },
    {
      "commit": "a3be78b5e734ba40cbc7d8dc766c5114e695b89e",
      "tree": "d0484ad22ace01b3e02912349b85f3ad43d6614c",
      "parents": [
        "32c5a97aece336db86e5fd6122c55e2cda270aad",
        "d846adac83878b82dcabcf2e4d73dc8a74c176d0"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Fri Mar 02 23:52:18 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 23:52:18 2018 +0000"
      },
      "message": "Merge \"Extend network request to query networks w/o capabilites\"\nam: d846adac83\n\nChange-Id: Id1d86938fa2d5aff4dbf9cde87548d80c76674d9\n"
    },
    {
      "commit": "d846adac83878b82dcabcf2e4d73dc8a74c176d0",
      "tree": "ae1cc735b597b10279fa89f76483300f5ae542b9",
      "parents": [
        "45277c7aca55997670a15ff186d373b0735397de",
        "1cd48dae228b4c3fdddac12fea6621599b2274a8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 19:04:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 19:04:31 2018 +0000"
      },
      "message": "Merge \"Extend network request to query networks w/o capabilites\""
    },
    {
      "commit": "d1bf7733afd26c97321ab43384badb3eb9924283",
      "tree": "98e287cd8652b418568670f86fbadfaaf89ad48b",
      "parents": [
        "9fae0a82af2be32a6d29001457f686f27e551c4e",
        "1be320a494cd292235d16ce4d155bfb858eaadf0"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 13:25:02 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 13:25:02 2018 +0000"
      },
      "message": "Merge \"Give apps with NETWORK_SETTINGS right to see any VPN.\" am: 6001f72478 am: e5e819f078\nam: 1be320a494\n\nChange-Id: I9a9d0eb212f6de105abc070a1eb5ff698b4e67bc\n"
    },
    {
      "commit": "1be320a494cd292235d16ce4d155bfb858eaadf0",
      "tree": "2161161814650c7b6c09ac39e9a206d4ab539b81",
      "parents": [
        "207b8e2b4efdc90c6dd06e70a28365b8d6592202",
        "e5e819f0784bbe8c924744abf9e089b0c1d9a5b4"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 13:17:23 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 13:17:23 2018 +0000"
      },
      "message": "Merge \"Give apps with NETWORK_SETTINGS right to see any VPN.\" am: 6001f72478\nam: e5e819f078\n\nChange-Id: I7f08217c5abc86a8784b91145f1b02d6693b3919\n"
    },
    {
      "commit": "e5e819f0784bbe8c924744abf9e089b0c1d9a5b4",
      "tree": "8b3fdd117986b1d3a7be85b02962c5a9be0e17bf",
      "parents": [
        "18e51821b10eaae1745039daa80883f0fd864491",
        "6001f72478f44bc139e348be5e86e3d39525444d"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 13:10:45 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 13:10:45 2018 +0000"
      },
      "message": "Merge \"Give apps with NETWORK_SETTINGS right to see any VPN.\"\nam: 6001f72478\n\nChange-Id: Iab9c8df6071e6dec35b5f492eb8344ba370e0036\n"
    },
    {
      "commit": "9fae0a82af2be32a6d29001457f686f27e551c4e",
      "tree": "e12198ee20096878be7042bb76c882ab66128897",
      "parents": [
        "f10700343c142ef95694aa5fa92ccba95201a4dc",
        "207b8e2b4efdc90c6dd06e70a28365b8d6592202"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 12:54:29 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 12:54:29 2018 +0000"
      },
      "message": "Merge \"Give VPNs the INTERNET capability when they route most of the IP space\" am: 20013384dc am: 18e51821b1\nam: 207b8e2b4e\n\nChange-Id: Ifd77149ca2c45249b8776c878c6fac46ae81c2a4\n"
    },
    {
      "commit": "207b8e2b4efdc90c6dd06e70a28365b8d6592202",
      "tree": "7161eb4596c2ef2f654fcd8b66098acaa7776ef5",
      "parents": [
        "85f47b72b8f245bc1b94ff2ecadb48e454a95b3f",
        "18e51821b10eaae1745039daa80883f0fd864491"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 12:46:46 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 12:46:46 2018 +0000"
      },
      "message": "Merge \"Give VPNs the INTERNET capability when they route most of the IP space\" am: 20013384dc\nam: 18e51821b1\n\nChange-Id: I33c6fcc72753e00af601cf915aa78416174a3871\n"
    },
    {
      "commit": "18e51821b10eaae1745039daa80883f0fd864491",
      "tree": "17ba0b668968fbdaf90bf4fd3de44cd6674e91a3",
      "parents": [
        "1c1b58432b0a79ab7e9c1b5676e61c8f0083c055",
        "20013384dcb0eb69ccabf9f7444df0ecfd47c75e"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 12:34:25 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 02 12:34:25 2018 +0000"
      },
      "message": "Merge \"Give VPNs the INTERNET capability when they route most of the IP space\"\nam: 20013384dc\n\nChange-Id: Icd1466c79d2593fcab5bd2e31a1acb3a36a705da\n"
    },
    {
      "commit": "6001f72478f44bc139e348be5e86e3d39525444d",
      "tree": "f6bd4fccb0d76a3d28e7867855fd53d2043ad306",
      "parents": [
        "20013384dcb0eb69ccabf9f7444df0ecfd47c75e",
        "b552c4655f59131cbfd00beaf9cbfcd291dfe852"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 11:52:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 02 11:52:15 2018 +0000"
      },
      "message": "Merge \"Give apps with NETWORK_SETTINGS right to see any VPN.\""
    },
    {
      "commit": "b552c4655f59131cbfd00beaf9cbfcd291dfe852",
      "tree": "11a177484e6f7a4427428b8ea852aa654f862dc8",
      "parents": [
        "6b0e7370e2a2f3bcfe526af5803135c7872ad81a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Feb 21 18:43:54 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 17:10:11 2018 +0900"
      },
      "message": "Give apps with NETWORK_SETTINGS right to see any VPN.\n\n...not only the ones that apply to them.\n\nBug: 73217368\nTest: runtest frameworks-net and CTS\nChange-Id: I436972a3e51e98bdd815771b451bcedadf684763\n"
    },
    {
      "commit": "adbf1d029b753fabc2a7a5ad3b22d3d416cecdd9",
      "tree": "d9ea33106d990144d6577e5692c5757e176c6fc3",
      "parents": [
        "6b0e7370e2a2f3bcfe526af5803135c7872ad81a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Feb 26 11:52:46 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Mar 02 16:20:22 2018 +0900"
      },
      "message": "Give VPNs the INTERNET capability when they route most of the IP space\n\nTest: manual, plus wrote some new tests for this\nBug: 72765718\nChange-Id: I9759da72b752fd8eeb1d0647db9ab341f04c0528\n"
    },
    {
      "commit": "1cd48dae228b4c3fdddac12fea6621599b2274a8",
      "tree": "53e5cac577192f2818f729542e823319d69f388d",
      "parents": [
        "7959e70ef2c4ac5c4a3782a8cd231f9b20568dd5"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Thu Feb 01 11:16:02 2018 -0800"
      },
      "committer": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Thu Mar 01 17:52:02 2018 -0800"
      },
      "message": "Extend network request to query networks w/o capabilites\n\nAdd another bit mask into NetworkCapabilities class that represents\nunwanted capabilities and corresponding methods to add and remove them.\n\nBug: 72828388\nBug: 68762530\n\nTest: runtest -x frameworks/base/tests/net/\nChange-Id: Ie291167eb74fdb696c7ee145c8cc46ea8115d6ba\n"
    },
    {
      "commit": "09ad1cbdc0bd1a88d1de0758aecb42caa92d6e99",
      "tree": "dfb24fd029e47d6ede80aa31cc888ee1ea4757db",
      "parents": [
        "669194a830299225fce7e384dc0f501decfee1e1",
        "9ee9e6b2b64dfdcb1a9a30c4134244a270883ae9"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Mar 01 11:53:43 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 01 11:53:43 2018 +0000"
      },
      "message": "Merge \"frameworks/base: Set LOCAL_SDK_VERSION where possible.\" am: c164c83191\nam: 9ee9e6b2b6\n\nChange-Id: I984b5ee633078401769d3c649aa9b020715772df\n"
    },
    {
      "commit": "9ee9e6b2b64dfdcb1a9a30c4134244a270883ae9",
      "tree": "75b836921fd9350f4a322fefbcc3bce0c4d1a262",
      "parents": [
        "773523a6672952fe8fb844db3e73c6fc853a2f31",
        "c164c831918dd20903974b325d494991b146d08d"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Mar 01 11:46:29 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 01 11:46:29 2018 +0000"
      },
      "message": "Merge \"frameworks/base: Set LOCAL_SDK_VERSION where possible.\"\nam: c164c83191\n\nChange-Id: Icd753634a498a9c1a2d2e27ad4e6cd788e7b9e1f\n"
    },
    {
      "commit": "1ddda1cba36080f9b8d658dea063ae7c10ac96bf",
      "tree": "ed26909be041c2fe70c63de76e089d6714dc84ef",
      "parents": [
        "467b444d0a84e0095cd89442dd274f7e2403ef24",
        "bc697b6abf61f6940f37661ec58aa1288edcc51e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 02:47:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 02:47:15 2018 +0000"
      },
      "message": "Merge \"Fix link-type check warning on com.android.media.remotedisplay\""
    },
    {
      "commit": "a3e79fbb8cdc9ef78e519f2d89e2f70e41864a1d",
      "tree": "e2bac4b9794e76f3923b096f5efb99d631a19c6a",
      "parents": [
        "e8b557bc08facb3d60b605f3e8cb26b31baaa28b"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 17:15:21 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: Ibcffec873a693d1c792ca210fb597d2bf37e9068\nMerged-In: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "ab6ec61251786bf6b4d0407db3bc28aeefcb55db",
      "tree": "fbdb5c5bd38879440eac702018dd53c0ed639541",
      "parents": [
        "58c83fa7c8609059f3d66a5860abb302284c2981"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 23 12:57:51 2018 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 28 15:13:23 2018 +0000"
      },
      "message": "frameworks/base: Set LOCAL_SDK_VERSION where possible.\n\nThis change sets LOCAL_SDK_VERSION for all packages where\nthis is possible without breaking the build, and\nLOCAL_PRIVATE_PLATFORM_APIS :\u003d true otherwise.\n\nSetting one of these two will be made required soon, and this\nis a change in preparation for that. Not setting LOCAL_SDK_VERSION\nmakes the app implicitly depend on the bootclasspath, which is\noften not required. This change effectively makes depending on\nprivate apis opt-in rather than opt-out.\n\nTest: make relevant packages\nBug: 73535841\nChange-Id: I4233b9091d9066c4fa69f3d24aaf367ea500f760\n"
    },
    {
      "commit": "9f3bad7260d718558d6f2f2048d973f2cd588b0b",
      "tree": "919f3f567603fb8cf0b98d86f200f546910d66f8",
      "parents": [
        "4c00edd36139789a94cc4a01c51451edc4476df8"
      ],
      "author": {
        "name": "Alexandru-Andrei Rotaru",
        "email": "rotaru@google.com",
        "time": "Tue Jul 18 16:49:22 2017 +0100"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Feb 28 17:52:38 2018 +0900"
      },
      "message": "Notify the user and turn off tethering when the service is disallowed.\n\nAdded UserRestrinctionListener for turning the service off one the\nDISALLOW_CONFIG_TETHERING is on into Tethering.  Added notification\nabout\ntethering being turned off. Also added Unit Tests to test the\nfunctionality\nof the UserRestrictionListener added.\n\nBug: 27936525\nTest: Turn the tehering service on (either wifi, usb or bluetooth).\nAutomatically the system should send a notification about the service\nbeing active.Close settings from recents. From TestDPC User Restrictions\nswitch on DISALLOW_CONFIG_TETHERING. The tethering should be turned off\nand a notification should appear informing that the service is inactive.\n\nMerged-In: Ib7ea8885cedc2a842ebd4487c8b366a6666996bc\nChange-Id: I4a57137a7ad592ca186d9508d5cc2fad3f1bc985\n"
    },
    {
      "commit": "b1a83edb5cd2a5ce018536e16bec92f1c928fb03",
      "tree": "7e47241d63c9f67358cf28c48a89e7bf19f66868",
      "parents": [
        "805ea225b9f65206a5296b5cdeb52081e57154f3",
        "3b7de5541924927e4dee1b8718ad2b6097222cb0"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Wed Feb 28 08:42:24 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 28 08:42:24 2018 +0000"
      },
      "message": "Merge \"Add OEM_PAID network capability\" am: 4c00edd361 am: 7b87c2050c\nam: 3b7de55419\n\nChange-Id: Id64d288764dc5a556b60f5e3b866b40792647ac0\n"
    },
    {
      "commit": "3b7de5541924927e4dee1b8718ad2b6097222cb0",
      "tree": "5d829f96032af5601ac212e04a957039bb402493",
      "parents": [
        "9af710c58756fb75c9b97604b85f8d9000a8c2df",
        "7b87c2050c61db50a809737fe9be3fc33682cf59"
      ],
      "author": {
        "name": "Pavel Maltsev",
        "email": "pavelm@google.com",
        "time": "Wed Feb 28 08:28:25 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 28 08:28:25 2018 +0000"
      },
      "message": "Merge \"Add OEM_PAID network capability\" am: 4c00edd361\nam: 7b87c2050c\n\nChange-Id: Ie0377fea66f784c910bd0a06f87543cc5cf82c84\n"
    },
    {
      "commit": "4c00edd36139789a94cc4a01c51451edc4476df8",
      "tree": "fcff696be14e41d4490762d5896562208a4c512e",
      "parents": [
        "8c32954906f0ce7192f25b38154d9dbc18bc508b",
        "43403201e66f49a309fd23f42705e3a434a5fa01"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 07:06:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 28 07:06:00 2018 +0000"
      },
      "message": "Merge \"Add OEM_PAID network capability\""
    },
    {
      "commit": "bc697b6abf61f6940f37661ec58aa1288edcc51e",
      "tree": "4ba7ce0d33099a2eaf97dc2aa153161701fb69f7",
      "parents": [
        "2016c0f4f6de20411257ed84d4fc1aa3d6226d41"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 22 16:21:14 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Feb 28 09:45:40 2018 +0900"
      },
      "message": "Fix link-type check warning on com.android.media.remotedisplay\n\nThe library has been built without SDK, and is used by an app\nRemoteDisplayProviderTest that is built with SDK. Such this SDK -\u003e\nnon-SDK dependency has been causing link-type check warnings, which will\nturn into errors soon.\n\nThis change fixes the warning by making a stub library\ncom.android.media.remotedisplay.stubs from the runtime library and let the app\nto link against the stub library. Since the stubs library does not use any\nprivate APIs, it is built with SDK.\n\nBug: 69899800\nTest: m -j RemoteDisplayProviderTest is successful and does not show any\nlink-type check warning.\n\nChange-Id: I7ee297a9d1aa4f01136b9a026a4939df2d483b8c\n"
    },
    {
      "commit": "23aee1bbb511310d636347d45a0e6fa14aae9543",
      "tree": "7fb741f41e16bd27745cce22b1f0a8c1951e7fc8",
      "parents": [
        "7cd6e3a0e9152cf6b694266281e48e61e4bf8c3b",
        "7db57cbea2c15d03d153969d0bbf45b3fd0761da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 00:09:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 00:09:15 2018 +0000"
      },
      "message": "Merge changes from topic \"terminal_type_fix\"\n\n* changes:\n  Add test for UsbDescriptorParser.java\n  USB Audio: broaden Terminal Type interpretation\n"
    },
    {
      "commit": "8fa73a4b8787ef5bc842a3ca3b47c3bac251a899",
      "tree": "471fc4a4d24cf142a5f29202d888e0101246903f",
      "parents": [
        "911128733927bce59a4a567f459a3e8c29f19d2b",
        "20f00dfe66f01e02a7bd131f723c0bfe1baaed6a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 27 19:39:51 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 27 19:39:51 2018 +0000"
      },
      "message": "Merge \"Frameworks: Annotate JUnit4 test with @Test\" am: 4d9bec6b4a am: 0e8e9472ba\nam: 20f00dfe66\n\nChange-Id: I0c611c22eedda2d849bd16ef2e2bb7e2e60e0a5a\n"
    },
    {
      "commit": "20f00dfe66f01e02a7bd131f723c0bfe1baaed6a",
      "tree": "aa13e269a57c976746e7a53ef11faf560325a891",
      "parents": [
        "9f53412f2f11cee6fc3eaa6e97f0a362354617f7",
        "0e8e9472baffd618a4c2da84a0b073849734e6a5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 27 19:19:01 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 27 19:19:01 2018 +0000"
      },
      "message": "Merge \"Frameworks: Annotate JUnit4 test with @Test\" am: 4d9bec6b4a\nam: 0e8e9472ba\n\nChange-Id: I70e11136f6e261cccf4ce57f757f97999f74b402\n"
    },
    {
      "commit": "7db57cbea2c15d03d153969d0bbf45b3fd0761da",
      "tree": "db318328fc88c2a8a324dce8e72454201896a3cf",
      "parents": [
        "0ef73801f5b5a560a1f84ccad3d13bd80b525de2"
      ],
      "author": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 26 14:32:19 2018 -0800"
      },
      "committer": {
        "name": "Andrew Chant",
        "email": "achant@google.com",
        "time": "Mon Feb 26 17:41:26 2018 -0800"
      },
      "message": "Add test for UsbDescriptorParser.java\n\nTests with descriptors from USB-C to 3.5mm adapter in four cases:\n - line level load connected, no microphone\n - low impedance load with microphone\n - low impedance load without microphone\n - no load attached.\n\nTest: Ran tests without fix for bug 73813676, failed.\nRan tests with fix, all passed.\n\nChange-Id: I067a15a122996e80c70bf287c6982611b6deee01\n"
    },
    {
      "commit": "886a7bdc3b19d7755cd77dd1254cd9ebefdeaa95",
      "tree": "9f086b72d475454becb30dd86eaedfec1b46c5e4",
      "parents": [
        "d8580e897be41b130a491ac959926b4444aec2b5"
      ],
      "author": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Mon Feb 26 14:53:56 2018 -0800"
      },
      "committer": {
        "name": "Arthur Eubanks",
        "email": "aeubanks@google.com",
        "time": "Mon Feb 26 15:06:19 2018 -0800"
      },
      "message": "Remove internal links from ActivityManagerPerfTests README\n\nTest: None\nChange-Id: I0dd9cfa210c5ce3a207708c80813fed032c6e196\n"
    },
    {
      "commit": "5f50a4b8275dfe009eb346457da531e40c1874a5",
      "tree": "03cc95e62e7602733d3a53186cad127fbf400ba8",
      "parents": [
        "ee211a8822a073debe8255ae7aa075b2a5a6eb14",
        "dec475649aceb419c496b56748aaf5d600f904bb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 26 22:29:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 22:29:16 2018 +0000"
      },
      "message": "Merge \"Improve output of voice interaction test app.\""
    },
    {
      "commit": "f157b9f983c50c642885e5138666bec15abe8f00",
      "tree": "9eb3c55e3fcb0d1f8c6aab036021e49279f56809",
      "parents": [
        "61799eacf4af2a9f3b9477096ab7712eb8de22e2",
        "0fbfc627ee2f1e43e69f6339c48d169e74f556d5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 26 17:11:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 26 17:11:50 2018 +0000"
      },
      "message": "Merge \"CoreTests: Tidy up legacy tests.\""
    },
    {
      "commit": "a7b26b59af43393cd7d1731dd2833e252bc82933",
      "tree": "86a4190be14f21941f5b211a66b6f044f35cabc0",
      "parents": [
        "701421c6c9cc388b8e0c2817e4081a1b35e92ce6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 26 08:06:30 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 26 08:09:26 2018 -0800"
      },
      "message": "Frameworks: Annotate JUnit4 test with @Test\n\nMollify Errorprone.\n\nBug: 72076216\nTest: m javac-check RUN_ERROR_PRONE\u003dtrue\nTest: atest IpSecServiceParameterizedTest\nChange-Id: Ia3a253c4c5994937efc0f498ac047c5fb4eee3e9\n"
    },
    {
      "commit": "dec475649aceb419c496b56748aaf5d600f904bb",
      "tree": "ce24dca4f7151a992049bef40f5cbc58fdf96090",
      "parents": [
        "761b33299afba0537a6b527495b30c17ecadbc65"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 23 15:38:03 2018 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 23 15:38:03 2018 -0800"
      },
      "message": "Improve output of voice interaction test app.\n\nBug: 73830394\nTest: built and ran\nChange-Id: I9722b91021585e15ec52ffd36325f884e784f7da\n"
    },
    {
      "commit": "aa23db0fdcf01c679d634e684c278a4faf753a0a",
      "tree": "eac7d800f1851b950c7c372031cc51764fc52155",
      "parents": [
        "bf077b51b4065da8c8af0a3ff59f39c8eeda1690",
        "55ca1f4c47f941a0a7418b71819a13a99b0dde64"
      ],
      "author": {
        "name": "Gopinath Elanchezhian",
        "email": "gelanchezhian@google.com",
        "time": "Fri Feb 23 22:20:22 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 22:20:22 2018 +0000"
      },
      "message": "Merge \"Add support for hot launch in App launch test.\""
    },
    {
      "commit": "c5f5ad103fb9416cb63ec9f7c2397bb343cb2f44",
      "tree": "46188506d53f9a59e12750ec95f146b424460687",
      "parents": [
        "1dcd64578992a650f3134be2178694ce0b6ee9d8",
        "dd531adbd2e49ccb47ae70df0bb75c77472612bc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 23 21:26:02 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 23 21:26:02 2018 +0000"
      },
      "message": "Merge \"Frameworks: Remove bogus test method\" am: c65d52ff78 am: 8120e8616b\nam: dd531adbd2\n\nChange-Id: I0317dedfe5c20c54551f72e6c691dea67dde83ca\n"
    },
    {
      "commit": "dd531adbd2e49ccb47ae70df0bb75c77472612bc",
      "tree": "72cc206d64192d970e5daab9dac8356e2c82f70d",
      "parents": [
        "239d74fa195fd047f66c9fd9f1d5ad1cdb4de62c",
        "8120e8616bb571b3b40abbab14fb391f38401149"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 23 21:15:06 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 23 21:15:06 2018 +0000"
      },
      "message": "Merge \"Frameworks: Remove bogus test method\" am: c65d52ff78\nam: 8120e8616b\n\nChange-Id: I1dd4cb24ed7c5afdb9185bacabf7b0a3e8f3a7d8\n"
    },
    {
      "commit": "55ca1f4c47f941a0a7418b71819a13a99b0dde64",
      "tree": "5359581d94faabf85861cfb991166d014a779ec8",
      "parents": [
        "0f3f71f41a1cb60fde4ab60d6a4bb1a189ba5920"
      ],
      "author": {
        "name": "gopinath",
        "email": "gelanchezhian@google.com",
        "time": "Tue Feb 20 17:21:18 2018 -0800"
      },
      "committer": {
        "name": "Gopinath Elanchezhian",
        "email": "gelanchezhian@google.com",
        "time": "Fri Feb 23 19:42:15 2018 +0000"
      },
      "message": "Add support for hot launch in App launch test.\n\nforce-stop-app option is added to control hot launch and\ncold launch.\n\nBug: b/73091210\n\nTest:\nam instrument -w -r   -e debug false -e launch_directory /sdcard\n-e apps \"Calculator^Calculator|Clock^Clock\" -e trial_launch true\n-e log false -e timeout_msec 300000 -e force-stop-app false\n-e launch_order CYCLIC -e simpleperf_cmd \"simpleperf stat -a\"\n-e launch_iterations 10 com.android.tests.applaunch/android.test.InstrumentationTestRunner\n\nChange-Id: I4b0f7a61c46e8091e69cad9fa65b5b34f680252d\n"
    },
    {
      "commit": "725024bb2a4488ef90de86ea4f70f3c4a1d4fc7c",
      "tree": "e4fc9fdf790b7f800304c9418f4dad9bcc651441",
      "parents": [
        "f6ff0f88eed8fa3b1e12bb6d95fe2c7ca625330c",
        "e0c2995d0f16246336d4385d5ebe631a60e12e86"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Feb 23 16:28:58 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 16:28:58 2018 +0000"
      },
      "message": "Merge \"Name specific app for rapid data usage.\""
    },
    {
      "commit": "e0c2995d0f16246336d4385d5ebe631a60e12e86",
      "tree": "7a91be48313ada0edbddf6edf2b35f34e2a9165d",
      "parents": [
        "f66699314c762ea8ee3bcfbd6654b02e4e6b7c98"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Feb 20 17:24:55 2018 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Fri Feb 23 16:27:39 2018 +0000"
      },
      "message": "Name specific app for rapid data usage.\n\nWhen a single app is responsible for more than half of the data usage\nthat caused us to trigger a \"rapid usage\" alert, name that app in the\nnotification.  Tests to verify.\n\nMove NPMS-\u003eNSS direct calls to \"Internal\" pattern, following\nbest-practices to avoid unnecessary AIDL exposure.\n\nRemove 3G/4G split mobile plan support, which has been deprecated for\nyears and was never supported in a shipping product.\n\nMove MultipathPolicyTracker in tree to reflect its package name.\n\nTest: bit FrameworksNetTests:*\nTest: bit FrameworksServicesTests:com.android.server.NetworkPolicyManagerServiceTest\nBug: 69263587, 64221505, 73431080, 72746951\nExempt-From-Owner-Approval: approved in previous PS\nChange-Id: I3e4ec1ae2222d51b232f76f32faca93d4f8cd272\n"
    },
    {
      "commit": "336dd4c262dbc98e8fcc1622d2815716ab6012b3",
      "tree": "72ad5f25f30125ebc0e7bb68d09a27b9c3fadd4a",
      "parents": [
        "c3e842fde8132e40d3f8915658853a0f7b378160"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 22 21:25:25 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 22 21:25:25 2018 -0800"
      },
      "message": "Frameworks: Remove bogus test method\n\nIt\u0027s tripping Errorprone\u0027s JUnit3 test pattern.\n\nBug: 73797534\nTest: m javac-check RUN_ERROR_PRONE\u003dtrue\nChange-Id: Ib0b9b342e085ba640d60e82ebd9a1bbb4fc4e916\n"
    },
    {
      "commit": "f8149eb6ae50ac373731984c817b52f3deb63a67",
      "tree": "8ee44f56c4922ff310e417fbc74fc3787eefbd00",
      "parents": [
        "99ef04f7173677ac52bf952979085e97e25f858c",
        "ebd2ea0daf7d5bbeba8b6444c81b023ea55becec"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 18:49:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 18:49:15 2018 +0000"
      },
      "message": "Merge \"Start target package by binding to Service, not starting Activity\""
    }
  ],
  "next": "ebd2ea0daf7d5bbeba8b6444c81b023ea55becec"
}
