)]}'
{
  "log": [
    {
      "commit": "e9635d80f190519289fa39a27e1a7a4c085ca7cf",
      "tree": "efbbd87eb112fe58c9ee90a8d6a905b2ae3fd15b",
      "parents": [
        "c84e33b3f16496c710722039fa0566ae76c6acfc",
        "28417f4982159d579888d5e2aacf0e101c05fb89"
      ],
      "author": {
        "name": "Wayne Ma",
        "email": "waynema@google.com",
        "time": "Wed Apr 24 13:05:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 13:05:59 2019 +0000"
      },
      "message": "Merge \"Backwards-incompatible resolv module API change for making setResolverConfiguration take a parcelable.\" into qt-dev"
    },
    {
      "commit": "ceba00a7def085bec0a6ca2c24479022cca22c7c",
      "tree": "4431bf4a8ac3ff64a3c647d21e867945f2315338",
      "parents": [
        "c37d832194c9a93a720bf14d0a991377e4d4db53",
        "e846376e622d068866262a6588f0e66d77be1c6d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 10:24:57 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 10:24:57 2019 +0000"
      },
      "message": "Merge \"Add test for rollback of same version apk.\" into qt-dev"
    },
    {
      "commit": "e846376e622d068866262a6588f0e66d77be1c6d",
      "tree": "83c01677234145f69725011d13bf4ff5bbb8305b",
      "parents": [
        "6243f0aa27ee1c0f589489ab386d375afacfe2c3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 23 15:58:33 2019 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 23 15:58:33 2019 +0100"
      },
      "message": "Add test for rollback of same version apk.\n\nThe test is marked @Ignore because of a bug in RollbackManager that\nfails to expire a rollback when there is a new update of an apk to its\nsame version code:\n\nSTACKTRACE:\njava.lang.AssertionError: expected null, but was:\u003candroid.content.rollback.RollbackInfo@28c0495\u003e\n  at org.junit.Assert.fail(Assert.java:88)\n  at org.junit.Assert.failNotNull(Assert.java:755)\n  at org.junit.Assert.assertNull(Assert.java:737)\n  at org.junit.Assert.assertNull(Assert.java:747)\n  at com.android.tests.rollback.RollbackTestUtils.getUniqueRollbackInfoForPackage(RollbackTestUtils.java:321)\n  at com.android.tests.rollback.RollbackTest.testSameVersionUpdate(RollbackTest.java:795)\n\nBug: 120200473\nTest: atest RollbackTest\nChange-Id: Ib03692c170ee689fcf667689dad25647e55f984f\n"
    },
    {
      "commit": "27f23459d2ff87f2b9938faf97f841bc38850be2",
      "tree": "927463c17a52315a925dbe488874809605310e22",
      "parents": [
        "55a1d5bd5f386fc2a22ef7587870dca3924de3b9",
        "98c59fafc21e27d163d97d4387c7aa7e51c2fc32"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Apr 23 07:04:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 07:04:26 2019 +0000"
      },
      "message": "Merge \"Fix an argument to the legacy broadcast\" into qt-dev"
    },
    {
      "commit": "98c59fafc21e27d163d97d4387c7aa7e51c2fc32",
      "tree": "f470c305b85d5769a7c0fc6b70e34e5c71265e44",
      "parents": [
        "fc0f0ea6903ee69c6b077ec3236980b928f9acdb"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Apr 11 14:09:07 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Apr 23 02:36:32 2019 +0000"
      },
      "message": "Fix an argument to the legacy broadcast\n\nTest: new test for this\nFixes: 62650382\nChange-Id: I918b8271d3c3c058553ca888cb54cd36a6efba66\nMerged-In: I0fc408d546ae9d72b7dd9415e502252b484d4329\nMerged-In: I9282930106d1eee3274d9e5c4e89de60e929a0e6\n"
    },
    {
      "commit": "47159d969f58600472045de0ac9192106e00a949",
      "tree": "20cb6dd128e0e131ce7077b647c701c76e95ad37",
      "parents": [
        "f49ca518514f3ece743d96524c8991b12d5ca732",
        "206077ad855c5c6b1d6b12d5e0484de6ce43ed87"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 22 20:14:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 22 20:14:31 2019 +0000"
      },
      "message": "Merge \"Add smoke test for jni library\" into qt-dev"
    },
    {
      "commit": "ff46a2567b667ee7b22fa4c7a9e2fa108d4cb4fa",
      "tree": "fc323809ffbd76957b50a39c4b767cceabf65745",
      "parents": [
        "0cab8dc0db59bbbcc1f76f46c82b5dec3d2e21d6"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 10 23:07:55 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Apr 22 15:44:23 2019 +0900"
      },
      "message": "Make LegacyTypeTracker testable\n\n...and add basic trivial tests for it.\n\nTest: this, and ConnectivityServiceTest\nBug: 62650382\nChange-Id: Ie7ca938e6f66f1b15feb6ed93afa0aebb20884ae\n"
    },
    {
      "commit": "dd0b1d9bd88fde74ab000fac033fecc84a9d58a9",
      "tree": "7d2706ec25dc9d4a21b11843583fcab07976c3c2",
      "parents": [
        "0595e5ab7840f40193ae3db70077f36f63f5ba84",
        "2ec3cce4526370b6971a2a91c455d949c0120356"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Sat Apr 20 02:04:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 20 02:04:40 2019 +0000"
      },
      "message": "Merge \"Tethering: fix using wrong subId problem\" into qt-dev"
    },
    {
      "commit": "f2087397ef23c6f5daa2937b5558808c993d4a5a",
      "tree": "ff419af0767dbb88e3b527a90b318f2aaed7317c",
      "parents": [
        "151675e37e282f8048b8944ba93a54a820e49f52",
        "7570cac60e36a8b4c49e7932a41a9cb9214f1cf3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 19 18:31:46 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 18:31:46 2019 +0000"
      },
      "message": "Merge \"Propogate per-display IME status to SysUI\" into qt-dev"
    },
    {
      "commit": "7570cac60e36a8b4c49e7932a41a9cb9214f1cf3",
      "tree": "9fd7a4294110ad8e5965be386d186154d678020f",
      "parents": [
        "3ba6ace87c8c0bfdc193f4f677f131cad2bd2e70"
      ],
      "author": {
        "name": "lumark",
        "email": "lumark@google.com",
        "time": "Thu Mar 07 22:14:38 2019 +0800"
      },
      "committer": {
        "name": "lumark",
        "email": "lumark@google.com",
        "time": "Fri Apr 19 13:33:21 2019 +0800"
      },
      "message": "Propogate per-display IME status to SysUI\n\nCL [1] introduced SystemUI to support updating IME window status per\ndisplay. (i.e. IStatusBarService#setImeWindowStatus left TODO item to\nadd displayId parameter to select the target display.)\n\nFor IMMS, we applied this API base on current token\u0027s displayId, and refined\nthe code flow in Sysui to reset IME window state for non-target display\u0027s\nNavBar when single IME switch to another display case.\n\nAnd make sure some cases in IMMS should reset IME window status:\n- When current method unbind.\n- When current top window focus display is not same as current token\u0027s display.\n  (That means the input session may connected but IME window not\n  yet attached. Note that it doesn\u0027t include external display without\n  system decoration and show IME window on default display case since it\n  is intentional behavior and we still need to update status for this\n  case.)\n\nAlso added testSetImeWindowStatusWhenImeSwitchOnDisplay in\nNavigationBarFragmentTest to enhance the ability of verifying external\nnavigation bar.\n\n[1]: 24e7a9fdb51978a47ce29f3816338da04a49d6ca\n\nBug: 127309955\nBug: 117478341\nTest: atest NavigationBarFragmentTest\nTest: manual as below steps:\n      - Pre-condition:\n          1. Enable desktop mode.\n          2. Create simulated display.\n      - Use case 1):\n          1. Launch an activity with input field on simulated display.\n          2. Bring up the IME there, expect back key icon on external\n             NavBar will changed when IME bring up.\n          3. Tap on primary display or launch an activity there.\n\t     (or pressing home key)\n          4. Expect IME will hide \u0026 back key icon on external NavBar will\n             set back.\n      - Use case 2):\n          1. Launch activity with input field on default display.\n          2. Tapping EditText in activity on default display.\n\t  3. Expect IME will bring up here and back key icon on default\n\t     display will changed when IME bring up.\n          4. Launch activity without input field in external display.\n\t     (i.e. clock app)\n          5. Expect Both Default \u0026 external display\u0027s nav bar back key icon\n\t     will set back.\n\nChange-Id: Ia414b8aea631e295cccd6f6da44d04bad16545c7\n"
    },
    {
      "commit": "2ec3cce4526370b6971a2a91c455d949c0120356",
      "tree": "0907a869f6b0c81680a15a8dfd387fa003eea1d5",
      "parents": [
        "17203cd88b318fa69001731c82474b23e6a9774b"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Tue Apr 16 06:03:51 2019 -0700"
      },
      "committer": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Fri Apr 19 04:38:13 2019 +0000"
      },
      "message": "Tethering: fix using wrong subId problem\n\nThere is the potential bug[1] that default data subId change\nintent may lose. So tethering may cache the outdated default\ndata subId in TetheringConfiguration. Now EntitlementManager\nwould fetch configuration every time and this would re-exam\nwhether subId is changed.\nAdditional passing subId to Settings to avoid default data\nsubId change right away when launching entitlement check.\nThus, Settings can know whether this is outdated entitlement\ncheck request.\n[1] b/129224596\n\nBug: 129751453\nTest: -build, flash, boot\n      -atest FrameworksNetTests\n      -manual test with carrier SIM\n\nChange-Id: I318cdd86bd7e516f7673bb293d1d9bf967861d8f\nMerged-In: I32e238c4786657ecd4bacfa3260c28c3f083cf08\nMerged-In: I318cdd86bd7e516f7673bb293d1d9bf967861d8f\n(cherry picked from commit 430dd6e98aa1e76219c7ba74b9d9a1b202bf39cc)\n"
    },
    {
      "commit": "28417f4982159d579888d5e2aacf0e101c05fb89",
      "tree": "cae4100f933b17f161ef6ef7cd2c3bfe7470a25e",
      "parents": [
        "43a7706f430317a4f18cee79c1ab6389c74a44da"
      ],
      "author": {
        "name": "Wayne Ma",
        "email": "waynema@google.com",
        "time": "Wed Apr 17 08:03:59 2019 -0700"
      },
      "committer": {
        "name": "Wayne Ma",
        "email": "waynema@google.com",
        "time": "Thu Apr 18 11:06:51 2019 +0000"
      },
      "message": "Backwards-incompatible resolv module API change for making setResolverConfiguration take a parcelable.\n\nTest: built, flashed, booted\n      atest FrameworksNetTests\n\nBug: 130788363\nChange-Id: I3b4e8672f5273c3baa9378025bfaef2e6514df64\nMerged-In: I6dc9029af0df0d3b391210bd315516bdf1b5e4c9\n(cherry picked from commit 9e9fda7558a924feb86869fca7dc7fd7dd01a78c)\n"
    },
    {
      "commit": "9f376950bd88f9c65de520f8649fc9ac384880a9",
      "tree": "7fa6eda789f31ae43255ad0c169379e52b3f128e",
      "parents": [
        "1ead26718cc24c99a91ec161e9632249122653dc"
      ],
      "author": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Fri Apr 05 18:46:11 2019 +0900"
      },
      "committer": {
        "name": "Tadashi G. Takaoka",
        "email": "takaoka@google.com",
        "time": "Wed Apr 17 02:36:22 2019 +0000"
      },
      "message": "Rename cts-amwm-util to cts-wm-util\n\nTest: Build FlickerTests\n  atest -b FlickerTests\nBug: 129909356\nChange-Id: I796bd8f52be21ccb7f770fb6c8dda9605451b10d\n"
    },
    {
      "commit": "153f73cbcc69bcbe7d74e26d367d18fdabffdc84",
      "tree": "e9425b652c9711a31ae29e7046db8e3fee6a4b47",
      "parents": [
        "008483c045b9d7e8634fae470f720e44c7ec1880",
        "ca7f710eee9c2f089e93b2e2c5a34ea1e1112a0c"
      ],
      "author": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Tue Apr 16 21:18:18 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 21:18:18 2019 +0000"
      },
      "message": "Merge \"Add unit tests for activity client state changes\" into qt-dev"
    },
    {
      "commit": "206077ad855c5c6b1d6b12d5e0484de6ce43ed87",
      "tree": "b77379ae45e48edf6219e027b4b9257b133e91b8",
      "parents": [
        "be0106abced580a34ea89d0484b2851d0b73065c"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Fri Apr 05 14:14:55 2019 -0700"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Mon Apr 15 19:02:56 2019 -0700"
      },
      "message": "Add smoke test for jni library\n\nSince the Framework net test require jni library\nlibnetworkstatsfactorytestjni, but the test fails to load that library\nunless *all* the dependencies of that library are explicitly listed in\njni_libs, whenever any of the dependencies changes the framework net\ntest will start failing and it might not be catched since the change\nmight not related to frameworks/base. And this smoke test is aimed to\nspot those native library changes and it should be stable enough to put\nin global presubmit.\n\nBug: 124764595\nTest: FrameworksNetSmokeTests\nChange-Id: Id24e7f0558b5643e4ad7393e85f1f0a2bd875615\nMerged-In: Id24e7f0558b5643e4ad7393e85f1f0a2bd875615\n(cherry picked from commit 5f8a630da7d5b308c0824a25f6fc1dd4c7552c9f)\n"
    },
    {
      "commit": "6acd95099edc56292e89e812ad41f6c68c54738a",
      "tree": "ddd723c154703e403bb7db879a9d42c5d7deabba",
      "parents": [
        "d81cd2629666b0ed852142607852232094e04d11"
      ],
      "author": {
        "name": "gopinath",
        "email": "gelanchezhian@google.com",
        "time": "Wed Apr 03 15:05:43 2019 -0700"
      },
      "committer": {
        "name": "Gopinath Elanchezhian",
        "email": "gelanchezhian@google.com",
        "time": "Thu Apr 11 16:19:32 2019 +0000"
      },
      "message": "Add option to enable tracing all the launches.\n\nThis option is disabled by default.\n\nBug: b/129888684, b/130154337\n\nTest : Ran app launch test case locally.\n\nChange-Id: I1305361adf0cb80e2be6a191b8639f7a53e9abfc\n(cherry picked from commit 806aa81113c8bbbb7c4566f0b87858dc2f41a3b6)\n"
    },
    {
      "commit": "f4e878d7cec5e2699d847468b63253dbf2bda08b",
      "tree": "90e641473848aea0b50b3e5993b168d9a67c6fb1",
      "parents": [
        "1c891d6772a995211e2ee6dbd40aa9c48823dce7",
        "6997f3c852fff4e33ce77b8943e57b7735b76327"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Thu Apr 11 15:54:46 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 11 15:54:46 2019 +0000"
      },
      "message": "Merge \"Fixed PackageWatchdog health check state\" into qt-dev"
    },
    {
      "commit": "bbde1150c5a35878cc7d662be81c642d2eae6b23",
      "tree": "32f263f4fb7455cf23ad3a92fc54613574f539d8",
      "parents": [
        "7757b14c3b0b58102e5a91b092cb6a4bb03b6d18",
        "aca8a770cd28367f85b8965e6def6f73cc4927e1"
      ],
      "author": {
        "name": "Ricky Wai",
        "email": "rickywai@google.com",
        "time": "Thu Apr 11 13:33:04 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 11 13:33:04 2019 +0000"
      },
      "message": "Merge \"Do not allow moveToFront() and moveTaskToFront() when app is in background\" into qt-dev"
    },
    {
      "commit": "6997f3c852fff4e33ce77b8943e57b7735b76327",
      "tree": "d8c1dad56ba5eb2f87ee1b764e1ec39578e64fa7",
      "parents": [
        "e777220a38cf25fd1c8cd8d2320f2a456dfa747a"
      ],
      "author": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Fri Apr 05 17:06:25 2019 +0100"
      },
      "committer": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Thu Apr 11 13:51:58 2019 +0100"
      },
      "message": "Fixed PackageWatchdog health check state\n\n1. Receiving List\u003cPackageInfo\u003e:\nSince I29e2d619a5296716c29893ab3aa2f35f69bfb4d7, we now receive a\nList of PackageInfo instead of Strings for packages supporting\nexplicit health checks. Now, we parse this List\u003cPackageInfo\u003e from\nExtServices instead of trying to parse List\u003cString\u003e and we use the\nhealth check timeout in the PackageInfo as the health check expiry\ndeadline instead of using the total package expiry time.\n\n2. Updating health check durations onSupportedPackages:\nBefore, we always updated the health check duration for a\npackage if the package is supported and the health check state is\nnot PASSED, this caused the health check duration for a package to\nnever reduce as long as we kept getting onSupportedPackages. Now, we\nimproved the readability of the state transitions onSupportedPackages.\nWe now correctly only update the health check duration for supported\npackages in the INACTIVE state.\n\n3. FAILED state:\nBefore we only had INACTIVE, ACTIVE and PASSED states. When a package\nhas failed the health check we could notify the observer multiple\ntimes in quick succession and get into a bad internal state with\nnegative health check durations. Now we added check to ensure we\ndon\u0027t try to schedule with a Handler with a negative duration and we\ndefined a negative health check duration to be a new FAILED state if the\nhealth check is not passed. This clearly defines the state transitions\nas seen below:\n\n+----------+     +---------+    +------+\n|          |     |         |    |      |\n| INACTIVE +----\u003e+ ACTIVE  +---\u003e+PASSED|\n|          |     |         |    |      |\n+-----+----+     +----+----+    +------+\n      |               |\n      |               |\n      |               |\n      |               |\n      |          +----v----+\n      |          |         |\n      +----------\u003e FAILED  |\n                 |         |\n                 +---------+\n\n4. Uptime state:\nEverytime we pruned observers, we scheduled the next prune and stored\nthe current SystemClock#uptimeMillis. This allowed us determine how\nmuch time had elapsed for the next prune. The uptime was not correclty\nupdated when starting to observe already observed packages. With the\nfollowing sequence of events:\n\n-monitor package A for 1hr\n-30mins elapsed\n-monitor package A again for 1hr\n\nA would expire 30mins from the last event instead of 1hr.\nThis was because the second time around, we\nsaved the new state to disk but did not reschedule so did not update\nthe uptime at last schedule, so 1hr from the first event, we would\nprune packages with the original uptime and incorrectly expire A\nearlier. Now we update all internal state, fixed this and added a test\nfor this case.\n\n5. Readability\nImproved method variable names, logging and comments.\n\nBug: 120598832\nTest: Manual testing \u0026\u0026 atest PackageWatcdogTest\nChange-Id: I1512d5938848ad26b668636405fe9b0db50d3a2e\n"
    },
    {
      "commit": "9f7dba61559a1f17a51511a7d24b86bab473d380",
      "tree": "2da85dbe9c073c820b345bc27f986a9467a59560",
      "parents": [
        "0444bcc6d40acd51c384dfa823c743b0c4e1e608",
        "d3538564e599dda0cb32d0e626bbf2285f5b52da"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Wed Apr 10 21:30:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 10 21:30:49 2019 +0000"
      },
      "message": "Merge \"Remove Test Api annotation from ProtoInputStream\" into qt-dev"
    },
    {
      "commit": "610eed67b6d1a8dacd96be03c49227915cc22cb5",
      "tree": "d0253bd23d9dcd4b25d4b42ca0c4a20756b5fe78",
      "parents": [
        "f746b4b4850eeb45cb64910e72fe45e37534c944",
        "f846efc286a58a6afd617bec93d87af22f4dbf09"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Wed Apr 10 17:07:02 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 10 17:07:02 2019 +0000"
      },
      "message": "Merge \"Fix remove-before-add for IpSecService RefcountedResource\" into qt-dev"
    },
    {
      "commit": "aca8a770cd28367f85b8965e6def6f73cc4927e1",
      "tree": "13224b602b9e62e27fd7992f58b3bef9fbfd68e6",
      "parents": [
        "10a222bf3c35cc62ea5062987814fc60c93b16d8"
      ],
      "author": {
        "name": "Ricky Wai",
        "email": "rickywai@google.com",
        "time": "Thu Apr 04 16:01:06 2019 +0100"
      },
      "committer": {
        "name": "Ricky Wai",
        "email": "rickywai@google.com",
        "time": "Wed Apr 10 17:24:30 2019 +0100"
      },
      "message": "Do not allow moveToFront() and moveTaskToFront() when app is in background\n\nBug: 129063631\nTest: Unable to start activity / move task in background\nChange-Id: Icb5ebad3567b911719341f221483df1a1512109b\n"
    },
    {
      "commit": "bd92d1539f29c0e7082756dcc0481e67a4079e62",
      "tree": "4ba318964150fd58ecdb614c39547cd5c48a76d6",
      "parents": [
        "c8d2c7172369638a10f0538db29e64371ae19034"
      ],
      "author": {
        "name": "Chiachang Wang",
        "email": "chiachangwang@google.com",
        "time": "Tue Apr 09 23:24:41 2019 -0700"
      },
      "committer": {
        "name": "Chiachang Wang",
        "email": "chiachangwang@google.com",
        "time": "Wed Apr 10 06:36:55 2019 +0000"
      },
      "message": "Enforce NETWORK_STACK permission for calling NSS#forceUpdateIfaces\n\nConnectivityManager and its usages are removed from\nNetworkStatsService. After that, forceUpdateIfaces requires\ninformation that only ConnectivityService has, hence\nrestricting the calling permission to NETWORK_STACK or\nMAINLINE_NETWORK_STACK permission. The required permission\nwill be changed from READ_NETWORK_USAGE_HISTORY to\nNETWORK_STACK or MAINLINE_NETWORK_STACK. This change would make\nit impossible to call outside the system.\n\nBug: 126830974\nTest: atest FrameworksNetTests\nMerged-In: I1b26dc64eaab2151e6885fd01cc5e8d4e18c4e60\nChange-Id: I4ea421e4126a45f65d25fe0bec74243a3b20aeab\n(cherry picked from commit 6b895dea25b4fca87d275bb78367411623ded1d4)\n"
    },
    {
      "commit": "f846efc286a58a6afd617bec93d87af22f4dbf09",
      "tree": "2f4ee44eeac817faec4a8396ff5169834655eb7d",
      "parents": [
        "4244434bebc7930f502bda73028ce414d51e5bb8"
      ],
      "author": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Apr 09 11:31:46 2019 -0700"
      },
      "committer": {
        "name": "Benedict Wong",
        "email": "benedictwong@google.com",
        "time": "Tue Apr 09 21:37:26 2019 +0000"
      },
      "message": "Fix remove-before-add for IpSecService RefcountedResource\n\nThis patch fixes a bug where if a binder dies before the linkToDeath\ncall, the cleanup will be performed before the entry is added to the\narray. While it is safe in that quotas and tracking performs as per\nnormal, the RefcountedRecord may not be cleaned up.\n\nRethrowing this exception is safe, since the only paths that would hit\nthis are all on binder threads coming from applications. Further, it\nseems there is only one real way of this getting hit - if the app that\ncalled the creation died during the binder call.\n\nBug: 126802451\nTest: Compiled, CTS tests passing\nChange-Id: Ib955acaa5e498c0e977cb5f2e48cffbc9fea8c7c\nMerged-In: I6db75853da9f29e1573512e26351623f22770c5d\nMerged-In: I416c2e43961ec0e1cc6b2fbcef970fbce858603b\nMerged-In: Ib955acaa5e498c0e977cb5f2e48cffbc9fea8c7c\n(cherry picked from commit 6c089d90bfa728e9842de0f5947f0c557c62dea0)\n"
    },
    {
      "commit": "634dff01cb545b0c4eb3f48ac3aba2fb31c50fdc",
      "tree": "f55841e302499e522f2da9addfb72b92c60892fc",
      "parents": [
        "8d994400b5f24062a10c26bb3fa53bbf615bc0f1",
        "f0d45503bc402c8dbfaa866c652d901c1bfd115a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 09 09:15:02 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 09 09:15:02 2019 +0000"
      },
      "message": "Merge \"Fix flaky UdpEncapsulationSocket test\" into qt-dev"
    },
    {
      "commit": "f0d45503bc402c8dbfaa866c652d901c1bfd115a",
      "tree": "326553a00ceceeb709309c2f7c8270e4a6e0825e",
      "parents": [
        "16f682cac6840e6fd760cd3a076a36c46042cf6c"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Apr 04 09:18:29 2019 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Apr 09 06:44:32 2019 +0000"
      },
      "message": "Fix flaky UdpEncapsulationSocket test\n\nThis commit reduces the flakiness of the\ntestOpenAndCloseUdpEncapsulationSocket by retrying up to three times.\nUnfortunately, testing port-selected socket creation is racy against\nother applications. This helps to handle the same race condition as done\nin IpSecService#bindToRandomPort\n\nBug: 128024100\nTest: 200x runs of testOpenAndCloseUdpEncapsulationSocket\nChange-Id: I7e036ce821019dbac6c50899bd0894e89d2fe82a\nMerged-In: Idf040a67e53d9b9ec6e6c647ce24f8ada501d355\nMerged-In: Iad9aea4b42cd8b31a5a2659bb9cb54dd1c64e8b7\n(cherry picked from commit 614ab3dd4e49e9b664f5065983fb9067148fef12)\n"
    },
    {
      "commit": "b878dff8490968c994bc6ad4eb5988886d3c2c36",
      "tree": "d010135e1d07c990b2cb84c73b648be610810926",
      "parents": [
        "db54f466410bcc8c8e7278e683011d04453af52e"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Mon Apr 08 12:31:01 2019 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Apr 09 06:40:07 2019 +0000"
      },
      "message": "Disable InetDiagSocketTest in a better way.\n\nTest: treehugger\nBug: 124354087\nBug: 128024100\nChange-Id: I3048625a2507e70402ce376e7208f58cdf5ddfba\nMerged-In: I3d8cebec00dde7d0b61469f36887cd5afface043\nMerged-In: I1fcb9ca292777fb017e9108a3e12cffba87e1985\n(cherry picked from commit 2373c8a129feb562a7893722b9ffa0bf905a4472)\n"
    },
    {
      "commit": "db54f466410bcc8c8e7278e683011d04453af52e",
      "tree": "d8ee4967bdd37b4ec3ad78b948a0d099d0c783dc",
      "parents": [
        "16f682cac6840e6fd760cd3a076a36c46042cf6c"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Apr 04 01:51:30 2019 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Apr 09 06:38:08 2019 +0000"
      },
      "message": "Temporarily disable InetDiagSocketTest.\n\nThis test is too flaky to run in presubmits.\n\nBug: 124354087\nTest: atest InetDiagSocketTest\nChange-Id: I90bc52a6f5b92d634862e3464634dfdbd3cada6a\nMerged-In: Ic580b9261e0d556ec10f92ddffd8f2766e25f424\nMerged-In: Ide5ac3f5316c4671b17fb9486ac56fc5feaf7b08\n(cherry picked from commit fdc03bab0be653e1f64e51adb6449f34d795ef6a)\n"
    },
    {
      "commit": "e945aa8ba18233dd7c6a3df82f9798f22e599936",
      "tree": "ced78b596f3e485d2c51987cc1c9ac07d1becda6",
      "parents": [
        "66846fe8258841979f19412647608b000e257490",
        "7aea73b8826eef8cb4aca56ccf5a69023cccf1ef"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue Apr 09 05:16:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 09 05:16:29 2019 +0000"
      },
      "message": "Merge \"Add common tests for FrameworksBaseTests and CTS\" into qt-dev"
    },
    {
      "commit": "15777f204d8a3a12f8625a0a7fa8cdf444df7d83",
      "tree": "0922da71f00b4df1b5d0e54441fcf126755ae992",
      "parents": [
        "a39c85fc2b563e628a4fd197b4a8b0d0ba86ec43",
        "e602db5fb94b6952346290847af96ceef8f0c811"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 08 17:08:54 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 08 17:08:54 2019 +0000"
      },
      "message": "Merge changes Ic4eb56fc,I7ba66213,I4b4dba44 into qt-dev\n\n* changes:\n  WifiScannerTest: More unit tests\n  WifiScannerTest: Add unit tests\n  WifiManagerTest: Add unit tests\n"
    },
    {
      "commit": "7c6c28f18b81340f6ff79321c92259e95ccf4677",
      "tree": "72f908249b49f4df3dbea2c3a2a87135c48e8ef7",
      "parents": [
        "e0283ded0a7b2a2010f614943f939e1adc81ebeb"
      ],
      "author": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Fri Apr 05 12:03:10 2019 +0100"
      },
      "committer": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Mon Apr 08 11:33:14 2019 +0100"
      },
      "message": "Allow different explicit health and package expiry timeouts\n\nWe have always evaluated the explicit health check results on package\nexpiry. Since I29e2d619a5296716c29893ab3aa2f35f69bfb4d7 we now receive\nexplicit health check timeouts from ExtServices. This cl doesn\u0027t yet\nuse the timeout but it treats explicit health check timeouts as\ndifferent events from package expiry. This is in preparation to use\nthe timeouts from the cl mentioned above.\n\nImproved readability: Logging, comments, variable and function names\n\nBug: 120598832\nTest: atest PackageWatchdogTest\nChange-Id: I8030dae1fef5b8fee42095c1eaf16861cc33ac59\n"
    },
    {
      "commit": "ca7f710eee9c2f089e93b2e2c5a34ea1e1112a0c",
      "tree": "0ec75a9bdb690057b506cb0551a967e4ebd7352f",
      "parents": [
        "d9ed8116266232713edb49c27ca8d8d8b4e5c32a"
      ],
      "author": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Sun Mar 24 23:31:24 2019 -0700"
      },
      "committer": {
        "name": "Andrii Kulian",
        "email": "akulian@google.com",
        "time": "Fri Apr 05 16:07:59 2019 -0700"
      },
      "message": "Add unit tests for activity client state changes\n\nThis also adds new module for tests that require Extended Mockito.\n\nBug: 127106719\nTest: atest FrameworksCoreTests:android.app.activity.ActivityThreadTest\nChange-Id: I7ed5de72d35babbbf72c4c823d3a9e4baa50e3c4\n"
    },
    {
      "commit": "e602db5fb94b6952346290847af96ceef8f0c811",
      "tree": "cef359f624da08a2edd82f11b25156a0455c53d6",
      "parents": [
        "35b304d2ffd089cc4334cd200ad9ce7b92955671"
      ],
      "author": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Fri Apr 05 13:11:28 2019 -0700"
      },
      "committer": {
        "name": "Roshan Pius",
        "email": "rpius@google.com",
        "time": "Fri Apr 05 15:16:56 2019 -0700"
      },
      "message": "WifiScannerTest: More unit tests\n\nBug: 130035791\nTest: ./frameworks/base/wifi/tests/runtests.sh\nChange-Id: Ic4eb56fc3ba6bffd3df529432d17af0ba35b6333\n"
    },
    {
      "commit": "7aea73b8826eef8cb4aca56ccf5a69023cccf1ef",
      "tree": "60d6ad5d117f90c2b9014e82cfdf408023a6354e",
      "parents": [
        "442a4e7b163fdb72fcd3ff4253a0d3e8511d1b7c"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu Apr 04 09:47:10 2019 -0700"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri Apr 05 05:52:03 2019 +0000"
      },
      "message": "Add common tests for FrameworksBaseTests and CTS\n\nThe common package covers tests that should be included both in CTS and\nunit tests.\n\nTest: atest FrameworksBaseTests\nBug: 129199908\nChange-Id: Ic78ff947250871fa773252c924f1dee9395c6074\n(cherry picked from commit 054e3e0f5ebfffe5d9fdd0095abac309552ae0cd)\n"
    },
    {
      "commit": "cb148b2ce07e91b4b3b1a6b55f84584bb3cbb1a8",
      "tree": "c9dfc8db1ff9b317d0ef338d9edbe70d8d86fd27",
      "parents": [
        "fd33fe0e8a9084cb9cc427c3aa9453bdcb4a38c7"
      ],
      "author": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Mon Apr 01 18:54:17 2019 +0100"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Thu Apr 04 23:26:49 2019 +0000"
      },
      "message": "Refactor PackageWatchdog explicit health checks\n\nImprovements:\n\n1. Queuing PackageWatchdog requests to startObserving packages:\nWhen observing packages with the watchdog, we needed to get\nthe packages supporting explicit health checks so we can decide if a\npackage should be passing or not. This prevents us from receiving\nrequests to monitor packages during early boot, before third party\npackages are ready. In this change we don\u0027t depend on ExtServices to\nbe up to startObserving, we initially treat all package as failing a\nhealth check and lazily syncRequests to request or cancel explicit\nhealth checks based on the currently observed packages. When we receive\nonSupportedPackages, we mark the packages that don\u0027t support health\nchecks as passing.\n\n2. Lazy binding to the explicit health check service:\nWe were always bound to the explicit health check\nservice regardless of whether we are expecting requests or not, we need\nto be able to bind and unbind dynamically to improve device resource\nusage. In this change, we bind as soon as we make a request and are\nexpecting results, we unbind otherwise.\n\n3. Fixed Races:\nThere were a couple of potential races that could lead to exceptions\nthat could bring the system server down, e.g when the service is\ntransitioning between disconnected and connected state (maybe it\ncrashed) or when ExtServices is being upated and is down or early\nboot requests when third party apps are not ready. This change fixes such.\n\n4. Logging:\nWe improved the logging wording and order and made it more consistent\n\nBug: 120598832\nTest: Manual tests. Stress tested behavior by killing extservices and\nmaking requests simultaneously\n\nfunction killproc {\n    while true\n    do\n        local pid\u003d$(adb shell pidof $1)\n        if [[ ! -z $pid ]]\n        then\n            echo $pid\n            adb shell kill $pid\n        fi\n    done;\n}\n\nadb install-multi-package -i com.android.shell --enable-rollback \\\nNetworkStack.apk ModuleMetadataGoogle.apk\n\nAlso switched between enabled and disabled states to verify packages\nare handled correctly. Will automate these tests in later cl\n\natest PackageWatchdogTest\nChange-Id: Iafaef553e95d107f700109f9a8328950a5e2bf71\n"
    },
    {
      "commit": "d3538564e599dda0cb32d0e626bbf2285f5b52da",
      "tree": "e96e858a0fe6e80c8788224f650a2b011c0c9e70",
      "parents": [
        "dd07ae579c291a2b6ffe09bd576fd908eb9e5ddd"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Thu Mar 14 12:02:50 2019 -0700"
      },
      "committer": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Thu Apr 04 20:23:29 2019 +0000"
      },
      "message": "Remove Test Api annotation from ProtoInputStream\n\nAlso move cts tests to unit tests\n\nTest: atest ProtoInputStreamTests\nFixes: 115635242\nChange-Id: I9aff1227328aad6ec2bec3471f73ae90293a028d\n"
    },
    {
      "commit": "259c73c00704a48fe25505546ce4f721eb40de9b",
      "tree": "d943893bde9197a3105dd98131f9633709df5c4b",
      "parents": [
        "d7ffb21343d0ecb3b13ea876958891d3d66b5017",
        "061cec7755075037549fb9b322baf9e9cab1665d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 23:44:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 23:44:26 2019 +0000"
      },
      "message": "Merge \"Move NetworkStatsFactory into service directory\""
    },
    {
      "commit": "061cec7755075037549fb9b322baf9e9cab1665d",
      "tree": "4a43925f9b82494441ca617226b9798696eee46a",
      "parents": [
        "b00f655fc260cdc92c92ea5a94d07034a042b8be"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Fri Mar 01 15:07:24 2019 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Apr 03 14:28:41 2019 -0700"
      },
      "message": "Move NetworkStatsFactory into service directory\n\nIn order to notify netd to swap eBPF maps before pulling the\nnetworkStats from eBPF maps, NetworkStatsFactory need to use the\nNetdServices to issue binder calls. So it need to be moved from\nframework/base/core to framework/base/service since object in\nframework/base/core cannot get any system services. This change is also\nnecessary for setting up a lock inside NetworkStatsFactory to prevent\nracing between two netstats caller since the lock need to be hold before\nnetd trigger the map swap.\n\nAlso fix the compile problem caused by moving the NetworkStatsFactory\nand the related tests. Rename the packages and the jni functions to a\nmore proper name.\n\nBug: 124764595\nBug: 128900919\nTest: NetworkStatsFactoryTest\n      android.app.usage.cts.NetworkUsageStatsTest\n      android.net.cts.TrafficStatsTest\n\nChange-Id: Ifcfe4df81caf8ede2e4e66a76552cb3200378fa8\n"
    },
    {
      "commit": "da0e27e7e4aede3caf0e0f569843d48f8d08203b",
      "tree": "1c8ab03b748c68a15c09f7f8696081da8252b9eb",
      "parents": [
        "3a333d5130ac789437653d7b0e9298f7e26e4321",
        "943e7405f23d8ce4ab937a9bdfbbd74bf3a8b087"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 03 19:58:46 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 03 19:58:46 2019 +0000"
      },
      "message": "Merge \"Straighten AIDL interface for the memory store\""
    },
    {
      "commit": "4fe8600cb3b1dddb226dd2b397ac0e75324ad90d",
      "tree": "a786da59e2d5a463107dda886d69610365f461cd",
      "parents": [
        "719082db6892f2d43e95b24d74d9881123055fd8",
        "16ee7a1be49f723f2af89b60dade4b911b3d0505"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Apr 03 11:03:32 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 11:03:32 2019 -0700"
      },
      "message": "Merge \"Clean up permissions when uids are no longer used\" am: 7754d368f4 am: ecb28c1948\nam: 16ee7a1be4\n\nChange-Id: I7773132d11d6225eac91ab2fee1043159c295d83\n"
    },
    {
      "commit": "16ee7a1be49f723f2af89b60dade4b911b3d0505",
      "tree": "ede4e75e53547b53377c03f9ced02b0a2c311424",
      "parents": [
        "6277c39b0ed061beac01e94cdbd19a7bce469439",
        "ecb28c1948f5a46346782dca3467b5f2f010d87a"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Apr 03 10:50:39 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 10:50:39 2019 -0700"
      },
      "message": "Merge \"Clean up permissions when uids are no longer used\" am: 7754d368f4\nam: ecb28c1948\n\nChange-Id: I256ca6f16ea1fcd240a1b7cd2b3199d4504e6c33\n"
    },
    {
      "commit": "7754d368f4df84563996d3715b5b7213220c6252",
      "tree": "cf3cb8d0332593718d518effd8f1cb32b87a686c",
      "parents": [
        "16749ac83ef06f53379fb996a6b244ee2fd84090",
        "a6817cd532d7036a2ec794f124368de94bf18621"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 17:15:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 17:15:48 2019 +0000"
      },
      "message": "Merge \"Clean up permissions when uids are no longer used\""
    },
    {
      "commit": "ed194a33e05adabe6d159001f289f0c50ea8e6b8",
      "tree": "6bc0b4a0b958c04c95d68b41585fc8f54e0c0f43",
      "parents": [
        "62e98c42e3d793b81b15357e54b229c656b0b89a",
        "9d4a2a27e6c1a4ba227751a59da08f4f7bbb03d5"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Wed Apr 03 03:54:42 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 03:54:42 2019 -0700"
      },
      "message": "Merge \"Some cleanups for Tethering\" am: 31b33b6f41 am: 5dff3c98c5\nam: 9d4a2a27e6\n\nChange-Id: I0f5c8f33f13dfa2366992a2b2e0ada7667b90e2f\n"
    },
    {
      "commit": "9d4a2a27e6c1a4ba227751a59da08f4f7bbb03d5",
      "tree": "cbf408284924f50236148e4d059f070a6b6a17c6",
      "parents": [
        "f51cadfad5ec833a48b40c961b06fcd50a518e46",
        "5dff3c98c5099ecd5205ed0bb9715e953ee023da"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Wed Apr 03 03:45:05 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 03:45:05 2019 -0700"
      },
      "message": "Merge \"Some cleanups for Tethering\" am: 31b33b6f41\nam: 5dff3c98c5\n\nChange-Id: I0e00187f9a5eee9e55f961ce0458c9b91af19fb7\n"
    },
    {
      "commit": "31b33b6f41c471898f317dbb3dbb7eaf3e58a8ca",
      "tree": "8c565b1dadee24967fa6369d8144e98d721e0041",
      "parents": [
        "75a76da717d70ca8d56cb015881fbe2cd0424008",
        "9f246bd9e34b650b98abc03d3acd1b1bf49c2393"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Wed Apr 03 10:16:25 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 10:16:25 2019 +0000"
      },
      "message": "Merge \"Some cleanups for Tethering\""
    },
    {
      "commit": "6cb1a0adcc2ea37684db8c171af3e5402522bc92",
      "tree": "f64d3bf4bfb6a523f1923613971dd897166793cc",
      "parents": [
        "94fda28a6b995c0f143f3e920eea07370eb2e0bc",
        "18758e9f90a4e284a47bef2af8a38a598e4b35c5"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Apr 03 02:19:30 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 02:19:30 2019 -0700"
      },
      "message": "Merge \"Add tests for PermissionMonitor\" am: a84cdf4fc6 am: b9ee567881\nam: 18758e9f90\n\nChange-Id: Ifcb29bfded1b1675231c397ed886506a70267279\n"
    },
    {
      "commit": "18758e9f90a4e284a47bef2af8a38a598e4b35c5",
      "tree": "3c5a8b82171efbbf92e5437a0761ce0a6790dfc0",
      "parents": [
        "a4d0bd441cfcbbe91f68a2865ca94184d960318c",
        "b9ee56788156c5963796ae0ad0e53b6674ef0ffb"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed Apr 03 02:05:07 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 03 02:05:07 2019 -0700"
      },
      "message": "Merge \"Add tests for PermissionMonitor\" am: a84cdf4fc6\nam: b9ee567881\n\nChange-Id: I9be22991bd590a7aee4d0a4b2908e0023870d0b6\n"
    },
    {
      "commit": "943e7405f23d8ce4ab937a9bdfbbd74bf3a8b087",
      "tree": "2d1e3e7816316676a1b50ea986938e21ba458bae",
      "parents": [
        "73381bde793f04dd23b2afb2efdf82e8afb7c91c"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Feb 01 14:20:32 2019 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 03 15:18:08 2019 +0900"
      },
      "message": "Straighten AIDL interface for the memory store\n\nSome names were still wrong somehow, and the wrappers were\nmissing.\n\nTest: NetworkStack \u0026 FrameworkNetTests\nChange-Id: I475bd011ad9bc714a07021a9dfd85c4876f8e9ad\n"
    },
    {
      "commit": "a84cdf4fc697410deed530a07ab12430d48c427c",
      "tree": "146d65153f13cdf4075a47cb48a3c7d968c029fa",
      "parents": [
        "8dedf2b5e48637f4cb9dce0e1466ae49ca265d73",
        "436fe58cce87934a88a6e3c6d7d16e19f69a4200"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 03 06:12:12 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 03 06:12:12 2019 +0000"
      },
      "message": "Merge \"Add tests for PermissionMonitor\""
    },
    {
      "commit": "9f246bd9e34b650b98abc03d3acd1b1bf49c2393",
      "tree": "96d98b78976fa8951b6c0b684189e4148d464def",
      "parents": [
        "c650674397fe611aa93bc9555c8b5e7b158fc992"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Apr 03 10:43:09 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Wed Apr 03 13:56:00 2019 +0800"
      },
      "message": "Some cleanups for Tethering\n\nBug: 126481523\nTest: -build, flash, boot\n      -FrameworksNetTests\n\nChange-Id: I904646efa87eb5434124c7828aca4ab09c5dc38e\n"
    },
    {
      "commit": "d3c115b26a9a62dec76f79572a33cfde12280984",
      "tree": "8aec97ad6c7a8cd00bf79abfdb70aadd261196fe",
      "parents": [
        "5419b11e14c2ea95c026c6a4fd99ba2b96c7d31a",
        "4bf4e79766aa4b8159d2dc6f5cb22be98ec9f566"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 21:19:14 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 02 21:19:14 2019 -0700"
      },
      "message": "Merge \"Make CaptivePortalProbeSpec and CaptivePortalProbeResult as a library\" am: 3db9cfe660 am: 2d20cd2378\nam: 4bf4e79766\n\nChange-Id: Iccf60b710df5895d8d269b6c918a8b2f252e93a6\n"
    },
    {
      "commit": "4bf4e79766aa4b8159d2dc6f5cb22be98ec9f566",
      "tree": "d0577fe095574b0e3d2e65ff67eed0df4067607f",
      "parents": [
        "9f2d31f1725f8b4256aa0c404daa7542c29f5639",
        "2d20cd2378423ce11fa9cee701f53b0ea5c03033"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 20:45:17 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 02 20:45:17 2019 -0700"
      },
      "message": "Merge \"Make CaptivePortalProbeSpec and CaptivePortalProbeResult as a library\" am: 3db9cfe660\nam: 2d20cd2378\n\nChange-Id: I5a5fd9f900bb1d7217364812d9d0e5477179bfc9\n"
    },
    {
      "commit": "a6817cd532d7036a2ec794f124368de94bf18621",
      "tree": "537af77cf47f1875677ddbc11c1f7d31750a1227",
      "parents": [
        "436fe58cce87934a88a6e3c6d7d16e19f69a4200"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Mon Mar 25 18:13:34 2019 -0700"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Tue Apr 02 20:31:57 2019 -0700"
      },
      "message": "Clean up permissions when uids are no longer used\n\nThe kernel eBPF maps have a blacklist to store all the uids that doesn\u0027t\nhave internet permission. When an app is unintalled from the device and\nit is the last package on device that uses that uid, make sure we\ncleaned the uid from the map and do not add no longer used uids into the\neBPF map. This action helps reduce the number of entries stored in the\nmap and reduce the chance of overflow the eBPF map.\n\nBug: 128944261\nTest: PermissionMonitorTest\nChange-Id: I10dd0113d00d6cf9ca39902d9721f2591d387d4a\n"
    },
    {
      "commit": "436fe58cce87934a88a6e3c6d7d16e19f69a4200",
      "tree": "6324a7bb209d69311006b36a89cee57c2044d430",
      "parents": [
        "1423684d1afbc5bb9b15d270ba5f87f5544d8ac7"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Mon Feb 25 22:55:58 2019 -0800"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Tue Apr 02 20:31:49 2019 -0700"
      },
      "message": "Add tests for PermissionMonitor\n\nAdd more tests to PermissionMonitor to verify the functionality related\nto INTERNET permission and UPDATE_DEVIE_STATS permission. Modified some\nof the class design of PermissionMonitor so that it is easier to test\nthe new functionalities.\n\nBug: 111560570\nTest: PermissionMonitorTest\n\nChange-Id: Ic5585f337db5de48e2f87bf4f01ed7d85c349827\n"
    },
    {
      "commit": "452d42f51729de5bdc78dbfa8e4669c21b5cf753",
      "tree": "0d1eab4884d2c21a7f077766b69d83ed159b3ad1",
      "parents": [
        "c2a64487aec3dd17551259f7d1e89f353f7602f8",
        "a6684f67139406a47fe2606938f6bf12d62881a3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 02 20:53:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 20:53:39 2019 +0000"
      },
      "message": "Merge \"Pick the primary color as the best color to use.\""
    },
    {
      "commit": "a6684f67139406a47fe2606938f6bf12d62881a3",
      "tree": "9726ddb230de1b29682561e0b17532c23be0f0ff",
      "parents": [
        "60a54acbbf5c10ae11d17aa2b94af07744506379"
      ],
      "author": {
        "name": "Robert Snoeberger",
        "email": "snoeberger@google.com",
        "time": "Tue Apr 02 13:21:42 2019 -0400"
      },
      "committer": {
        "name": "Robert Snoeberger",
        "email": "snoeberger@google.com",
        "time": "Tue Apr 02 15:15:38 2019 -0400"
      },
      "message": "Pick the primary color as the best color to use.\n\nPreviously, the best color was picked by checking the colors\nagainst the blacklist. The logic was for picking the best color\nwas broken When the blacklist was removed for\nb/124180048.\n\nFixes: b129762944\nTest: New test points added to TonalTest.java\nChange-Id: Ie51806735910bb40e5e66d7baf545ea213e4a01e\n"
    },
    {
      "commit": "b0f53b84cc9e2595bed22fa68eee4ab0e3690b9e",
      "tree": "3141f87835cccc7ab24e8f13da1934b11fb7478d",
      "parents": [
        "1e97aab6f423e0528912e72fe23f51e5e0a4e29a"
      ],
      "author": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Fri Mar 29 19:21:30 2019 +0800"
      },
      "committer": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 17:55:42 2019 +0800"
      },
      "message": "Make CaptivePortalProbeSpec and CaptivePortalProbeResult as a library\n\nThese two classes were added to @SystemApi because they are used\nboth by NetworkMonitor and CaptivePortalLogin. However it turns\nout they are not needed in the framework, so having them as a\nlibrary sounds better.\n\nChange-Id: Iadf77ec5952b6da8812dc6d006a39bd4e93d2bd9\nFix: 129433264\nTest: atest NetworkStackTests FrameworksNetTests\n"
    },
    {
      "commit": "1241da4193d6f73c29936496ffd4492b66a42034",
      "tree": "21948d0b6be2569fef9ad02a2ae55ed866319e6b",
      "parents": [
        "1d5f6d3b9e94dd512c9abe62c09999a77203df1d",
        "0741b41d949f5f91e6ed34e15c67327ae21bbd76"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 02 09:07:17 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 02 09:07:17 2019 +0000"
      },
      "message": "Merge \"Block getAvailableRollbacks on the handler thread.\""
    },
    {
      "commit": "1d5f6d3b9e94dd512c9abe62c09999a77203df1d",
      "tree": "76ac38361ebc47e6eea18c6363602e2c24a1f6d0",
      "parents": [
        "0b4b2f2377a3184f42861d956da596f9a6136127",
        "1d7b92b9d5dfa3500c2c1f03cbde749ae9f8a3c7"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 01:29:08 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 02 01:29:08 2019 -0700"
      },
      "message": "Merge \"Address leftover comments on 923337 and 930217.\" am: 1e97aab6f4 am: 55a22b5d17\nam: 1d7b92b9d5\n\nChange-Id: I75eadb66c81d72c768e77feddd383d60f8accd65\n"
    },
    {
      "commit": "1d7b92b9d5dfa3500c2c1f03cbde749ae9f8a3c7",
      "tree": "62b17530934e8ed4a61b4b1f137a9bc5bca343b7",
      "parents": [
        "96724b57ae15bce2125c728bacc42a3c6afa64aa",
        "55a22b5d175da7250002b1f8376a05e8b8129ce9"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 01:14:24 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 02 01:14:24 2019 -0700"
      },
      "message": "Merge \"Address leftover comments on 923337 and 930217.\" am: 1e97aab6f4\nam: 55a22b5d17\n\nChange-Id: Ibbc8dd7bb869f76515c9f57793db02953dd07804\n"
    },
    {
      "commit": "1e97aab6f423e0528912e72fe23f51e5e0a4e29a",
      "tree": "316a57f7ac952facc9422be69ce78b6f57a507da",
      "parents": [
        "4b5ca28dfe79971cb2bd8778a77d9aa488fc7e10",
        "3d67f53b02aa5f0adfc12dbc0e5b5643f1a6c42d"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 07:39:04 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 02 07:39:04 2019 +0000"
      },
      "message": "Merge \"Address leftover comments on 923337 and 930217.\""
    },
    {
      "commit": "c533a42c8036b972d42e8db250543a14e9c78999",
      "tree": "082a9c5b4df19fd56d5391fbd05140b5415ea362",
      "parents": [
        "cf78d78729136e145aa58a3c2f6830f9baa4db61",
        "c13f50f5af8c51d71f8cc5f4cef4cf289a739c24"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Mon Apr 01 19:24:38 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 01 19:24:38 2019 -0700"
      },
      "message": "Merge \"Fix IpPrefixTest#testContainsInetAddress fail.\" am: 66a133858b am: 9872066d02\nam: c13f50f5af\n\nChange-Id: I9e74dc9bf30a53ce78395e502a52891ba488f4b1\n"
    },
    {
      "commit": "c13f50f5af8c51d71f8cc5f4cef4cf289a739c24",
      "tree": "179f4a5f9fdc594609aeafa0892d69ecc38b9693",
      "parents": [
        "aae8aa3dde6ab549c657c14bfb7e5eecd8054ec8",
        "9872066d02079bf0107470074e193a8cb6b108f4"
      ],
      "author": {
        "name": "Paul Hu",
        "email": "paulhu@google.com",
        "time": "Mon Apr 01 18:59:35 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 01 18:59:35 2019 -0700"
      },
      "message": "Merge \"Fix IpPrefixTest#testContainsInetAddress fail.\" am: 66a133858b\nam: 9872066d02\n\nChange-Id: I257b51a4f0be974eacf8a6c0f12b5d5aacdc7a5f\n"
    },
    {
      "commit": "4fcdc7ed05893eb848a5fc5e239e1194a85a6a49",
      "tree": "c915f68b1affaee229ab0a57eeb3ba0d78faa0e5",
      "parents": [
        "154a0d0b38250bcf246c53b9229937c60a176fbc"
      ],
      "author": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 00:49:00 2019 +0800"
      },
      "committer": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Tue Apr 02 00:49:00 2019 +0800"
      },
      "message": "Fix IpPrefixTest#testContainsInetAddress fail.\n\nThe argument of IpPreFix#contains() has been marked as @NonNull.\nSo the IpPrefixTest#testContainsInetAddress should not test\ncontains() method wiht null object.\n\nBug: None\nTest: atest FrameworksNetTests\n      atest IpPrefixTest#testContainsInetAddress\n\nChange-Id: I2f6bee19514dc47702f64d2a2bbf02d8b7b1b407\n"
    },
    {
      "commit": "3cae85005f16d572c6e241848ad147ae3ffc514c",
      "tree": "15cc487b9f35fd89f15dd8c54e3dfacc95da370e",
      "parents": [
        "90cd3d6d483f92d664d5d4b783d61de722732f14",
        "7b56e5607c9ed778379f88667ac76a9bf930adbd"
      ],
      "author": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Mon Apr 01 16:41:57 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 16:41:57 2019 +0000"
      },
      "message": "Merge changes from topic \"explicit\"\n\n* changes:\n  Notify PacakgeWatchdog when apps are ready\n  Add explicit health check to PackageWatchdog\n"
    },
    {
      "commit": "2a80a980e9f8a824470123d9e46203cc195a5a50",
      "tree": "a5c434ffc428a05a9e1b3de6eb684eff5c28e722",
      "parents": [
        "c795cc48029d09c899b2b0b8c0ba99f3fdfed30f",
        "11dfd279a33e126d2df847656bf73fd92df79218"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 01 16:23:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 01 16:23:22 2019 +0000"
      },
      "message": "Merge \"WindowInsets: populate system gesture and tappable element insets\""
    },
    {
      "commit": "caa435ef51062efff71aae31965c692f4bbd48d7",
      "tree": "f8615490fc16440fc5feaa3b1babe9aa4191a7e6",
      "parents": [
        "d9246ef1fa429d7c27e489bb97d18dea4f33aa12"
      ],
      "author": {
        "name": "Zimuzo",
        "email": "zezeozue@google.com",
        "time": "Wed Mar 20 11:16:06 2019 +0000"
      },
      "committer": {
        "name": "Zimuzo Ezeozue",
        "email": "zezeozue@google.com",
        "time": "Mon Apr 01 14:02:56 2019 +0000"
      },
      "message": "Add explicit health check to PackageWatchdog\n\nPackageWatchdog now uses the ExplicitHealthCheckController introduced\nin Ia030671c99699bd8d8273f32a97a1d3b7b015d3b when observing packages.\n\nBug: 120598832\nTest: Manually tested that after an APEX update, the network stack\ndoes not pass the explicit health check until WiFi is connected\nsuccessfully. If Wi-Fi is never connected and the network stack\nmonitoring duration is exceeded, the update is rolled back.\n\nChange-Id: I75d3cc909cabb4a4eb34df1d5022d1afc629dac3\n"
    },
    {
      "commit": "11dfd279a33e126d2df847656bf73fd92df79218",
      "tree": "5b810e7023ec21adf0384c027273c45b83f560c9",
      "parents": [
        "d96f4fa19c4531f6de96278e80ad6557e00e57c6"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 25 19:21:26 2019 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Apr 01 15:46:13 2019 +0200"
      },
      "message": "WindowInsets: populate system gesture and tappable element insets\n\nAlso fixes an infinite recursion when invoking\nTestableContext.(un)registerComponentCallbacks().\n\nTest: atest WindowInsetsPolicyTest\nBug: 126511573\nChange-Id: I5c9f40054493a83746bce6124d72412e8eb8a0d1\n"
    },
    {
      "commit": "60a54acbbf5c10ae11d17aa2b94af07744506379",
      "tree": "7b9a518e39a5c6799d050f965d6fc980816609d3",
      "parents": [
        "79013e11c3b83f48b5e3cae4a2777ae2bacf01d0",
        "8e6c80f2389e713f8050bd285fb33382fbbd5f7b"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Mon Apr 01 06:35:34 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 01 06:35:34 2019 -0700"
      },
      "message": "Merge \"Add DHCP address lease expiry in IpMemoryStore.\" am: 17ea70c6d3 am: 23f6cd281a\nam: 8e6c80f238\n\nChange-Id: Ib09ee6a702fb25a682d4782a8822237ebb9a0dfb\n"
    },
    {
      "commit": "8e6c80f2389e713f8050bd285fb33382fbbd5f7b",
      "tree": "15bff81c0bd46c1f43a17ab8b5103fad05e969c9",
      "parents": [
        "bf3e6f5e754a6f3c4e6c3ee396790884b9d56989",
        "23f6cd281a2d0fa5fa90dadfd9042beb5d0c68d1"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Mon Apr 01 06:27:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 01 06:27:18 2019 -0700"
      },
      "message": "Merge \"Add DHCP address lease expiry in IpMemoryStore.\" am: 17ea70c6d3\nam: 23f6cd281a\n\nChange-Id: I690d6c1602292731f27b3f2d0a1a36cf95849d2e\n"
    },
    {
      "commit": "17ea70c6d3568a1c6f98bacc4594e45d4678da49",
      "tree": "271142db3ae305a9805bd262a1b8443f6763b37a",
      "parents": [
        "f9d61f1c6dd0f797ca5286495503b45d4b83cbd7",
        "385ccb05c834053c3867d7750e2d9eb71f0adcf1"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Mon Apr 01 12:59:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 01 12:59:20 2019 +0000"
      },
      "message": "Merge \"Add DHCP address lease expiry in IpMemoryStore.\""
    },
    {
      "commit": "3d67f53b02aa5f0adfc12dbc0e5b5643f1a6c42d",
      "tree": "a6aaf98f49ef94fba0db0d66d22b52fc1a9cf1ad",
      "parents": [
        "06bdf061f00cf6017976e8b26da007729c800e10"
      ],
      "author": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Fri Mar 22 16:35:06 2019 +0800"
      },
      "committer": {
        "name": "paulhu",
        "email": "paulhu@google.com",
        "time": "Mon Apr 01 16:24:10 2019 +0800"
      },
      "message": "Address leftover comments on 923337 and 930217.\n\n- Restrict unprivileged apps to use\n  NetworkRequest.Builder#setSignalStrength.\n\n- Remove the \"throws NullPointerException\" in\n  CaptivePortalProbeSpec constructor.\n\n- Remove the null check in LinkProperties.\n\n- Add annotataion into all ConnectivityManager.NetworkCallback\n  methods.\n\nChange-Id: Id275cac1d6a30d7515cd7b113394f5e8a0179314\nFix: 129097486\nTest: atest FrameworksNetTests\n"
    },
    {
      "commit": "b93bfa1d690eb35205108b6c53a8c726798ca752",
      "tree": "dc1da98e8dcacd0d9ecf980a9155dfa33433727f",
      "parents": [
        "b9b310a9762a3aa8bfd241774823574679a877f1",
        "940cbf970a3f87003a22e92669dfa7e1fa3db539"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Mar 31 21:35:25 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Mar 31 21:35:25 2019 -0700"
      },
      "message": "Merge \"Fix race when starting NetworkMonitor\" am: 78454f3c46 am: f75ba075e4\nam: 940cbf970a\n\nChange-Id: I595ecdbf0b8e91fec4287c3476239a1e6c9c80a7\n"
    },
    {
      "commit": "940cbf970a3f87003a22e92669dfa7e1fa3db539",
      "tree": "f13ef17e2102bd6d301f9a706db9b33c6d061607",
      "parents": [
        "ae55a7a3697f908e98dc1ffdeb07be6099048f16",
        "f75ba075e4d96dde3fc4c6340a790c7ef64bd116"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Sun Mar 31 21:25:12 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Mar 31 21:25:12 2019 -0700"
      },
      "message": "Merge \"Fix race when starting NetworkMonitor\" am: 78454f3c46\nam: f75ba075e4\n\nChange-Id: I049ea18e6c5c42a1b31d93541aa3846b14b7ab08\n"
    },
    {
      "commit": "78454f3c468e8ddf98c6f2e4f539bf90af34e0c2",
      "tree": "15ffdf0640c8826770cda6bed90134bada06b7cd",
      "parents": [
        "c650674397fe611aa93bc9555c8b5e7b158fc992",
        "3962f678c3559ee62bcfd81d353af5d86a32622e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Apr 01 03:54:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 01 03:54:03 2019 +0000"
      },
      "message": "Merge \"Fix race when starting NetworkMonitor\""
    },
    {
      "commit": "3962f678c3559ee62bcfd81d353af5d86a32622e",
      "tree": "e5e05a11c032559ee3cd3e48eae67bf64dce04ec",
      "parents": [
        "1859ae7e7d0d250aebd32d98c1963f6f7084dd1f"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Wed Mar 27 15:42:53 2019 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Mon Apr 01 11:33:10 2019 +0900"
      },
      "message": "Fix race when starting NetworkMonitor\n\nNetworkMonitor obtained LinkProperties and NetworkCapabilities via\nsynchronous calls to ConnectivityManager after receiving an asynchronous\nnotification, which is prone to races: the network could be gone before\nthe LinkProperties/NetworkCapabilities can be fetched.\n\nFix the race by passing LinkProperties/NetworkCapabilities directly to\nNetworkMonitor in the asynchronous notifications.\n\nTest: atest FrameworksNetTests NetworkStackTests\nTest: booted, WiFi works\nBug: 129375892\nChange-Id: I200ac7ca6ff79590b11c9be705f650c92fd3cb63\n"
    },
    {
      "commit": "6764eff395a9830d6c2dae2e922bef66acdf12b0",
      "tree": "1c1e3e1c45252cbcc52342f57caf3d0075572a62",
      "parents": [
        "eea508002787872f541d13c238e8f48cebedf047",
        "ceb74821a3d6c45bbb90aa15d494285488bddb15"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Mar 29 02:24:24 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 29 02:24:24 2019 -0700"
      },
      "message": "Merge \"Use IDnsResolver instead of INetd for resolver related binder commands\" am: b9ef4dd299 am: 1711278ce2\nam: ceb74821a3\n\nChange-Id: I2d642b71df25934fddd8a1476b5d27457628b8e2\n"
    },
    {
      "commit": "ceb74821a3d6c45bbb90aa15d494285488bddb15",
      "tree": "b85c09b7735afee1f644b56c68d60260bc717928",
      "parents": [
        "2be1be042638ea32894974a31451904f217b4970",
        "1711278ce273e17c6123ec126dd9ad90ccfa6479"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Mar 29 02:10:55 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 29 02:10:55 2019 -0700"
      },
      "message": "Merge \"Use IDnsResolver instead of INetd for resolver related binder commands\" am: b9ef4dd299\nam: 1711278ce2\n\nChange-Id: I80ae047bd65b654e01061a9f218be23e1e3ef2ed\n"
    },
    {
      "commit": "b9ef4dd299f8b7d3f01fd76ea85a6a62b7a1c645",
      "tree": "35db2eb4c53e6484917afc1d20600dc8baf3c892",
      "parents": [
        "bc350db984669fb4220e75b67407e0bec3e51038",
        "6591477a5b0bab828b4a611fef83941322458f3c"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Fri Mar 29 08:45:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 29 08:45:19 2019 +0000"
      },
      "message": "Merge \"Use IDnsResolver instead of INetd for resolver related binder commands\""
    },
    {
      "commit": "385ccb05c834053c3867d7750e2d9eb71f0adcf1",
      "tree": "30523fa6c7f2568206a402780b33c40ff3a14206",
      "parents": [
        "bc350db984669fb4220e75b67407e0bec3e51038"
      ],
      "author": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Fri Mar 01 12:25:36 2019 +0900"
      },
      "committer": {
        "name": "Xiao Ma",
        "email": "xiaom@google.com",
        "time": "Fri Mar 29 16:51:47 2019 +0900"
      },
      "message": "Add DHCP address lease expiry in IpMemoryStore.\n\nBug:122710829\nTest: atest FrameworksNetTests\nChange-Id: I643fe1231edcd18923514ab66c64a6cf83e69443\n"
    },
    {
      "commit": "112b8bd6c5b9556d0658cda720604b3ce54f8a68",
      "tree": "f295b21e8cb7f077eabeba6bc690d28c43240454",
      "parents": [
        "525412b9de4901d14da3dcc305f40313c6b6d31b",
        "09ef7691f5041793cdaf01e83fc450a30c7210c6"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Mar 28 18:16:37 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 28 18:16:37 2019 -0700"
      },
      "message": "Merge changes from topic \"vpn_data_accounting\" am: 6c93e5378a\nam: 09ef7691f5\n\nChange-Id: If4fff1b4d14e80e024ce7b1aa85ebd3afcb1ecc2\n"
    },
    {
      "commit": "6c93e5378a754f1992aaf4bfd5d030c623dbc57b",
      "tree": "af2795f972ca15bc53580341ec062b1bca63dd75",
      "parents": [
        "c3b3a5fa2e780c89eafb3e43ab1747487d33f8b1",
        "346aa87544a0d9e212dbb0dd9265a31ca609c7a4"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Mar 29 00:40:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 29 00:40:53 2019 +0000"
      },
      "message": "Merge changes from topic \"vpn_data_accounting\"\n\n* changes:\n  Move BatteryStats and StatsCompanionService to use NetworkStatsService.\n  NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.\n  Take all VPN underlying networks into account when migrating traffic for VPN uid.\n"
    },
    {
      "commit": "bc82c01a16bca8764d1a7025d1fc60feb7994105",
      "tree": "9f856e4610983705d84622d0ec56d855402e0b9c",
      "parents": [
        "d272ec184bfaf59b6fe7c4051e252f43af766fad",
        "525412b9de4901d14da3dcc305f40313c6b6d31b"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 17:12:05 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 28 17:12:05 2019 -0700"
      },
      "message": "Merge \"Close tethering when UI entitlement fails\" am: c3b3a5fa2e am: fed8661b68\nam: 525412b9de\n\nChange-Id: I432e6e2267a87503bc7d431ef268477cc07de3da\n"
    },
    {
      "commit": "525412b9de4901d14da3dcc305f40313c6b6d31b",
      "tree": "bfc470ec1667464887146c1c2a872ec5a6c52794",
      "parents": [
        "8331efe0afd5132fffd15ce952f6eba76499a795",
        "fed8661b68c6722571f16e678b5f4d580a31defd"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 16:54:03 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 28 16:54:03 2019 -0700"
      },
      "message": "Merge \"Close tethering when UI entitlement fails\" am: c3b3a5fa2e\nam: fed8661b68\n\nChange-Id: I3132c0ae24ee4175b3c5283ce68add22af0fb90e\n"
    },
    {
      "commit": "c3b3a5fa2e780c89eafb3e43ab1747487d33f8b1",
      "tree": "d8e7aeb98014900a75acbe48dcb31d7c1befde18",
      "parents": [
        "6bd5cf2bcc28cf3d21d7b2d8b7d7c3e7de180f89",
        "29b7014dab40cc472d36df91fe644ef5ac3df6c3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 28 23:34:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 23:34:34 2019 +0000"
      },
      "message": "Merge \"Close tethering when UI entitlement fails\""
    },
    {
      "commit": "5a0ad86fb3e22c9eac13ce52dae2428d49647bdd",
      "tree": "b08e4568b8f9246fc3ea1c3bf5b2ca247d5ddf8b",
      "parents": [
        "886705338b1eac09d12adffb4da319e25a5ef04d",
        "70626a863a73dfdc5ed7f20cd8c45c4182a72b42"
      ],
      "author": {
        "name": "Yury Khmel",
        "email": "khmel@google.com",
        "time": "Thu Mar 28 23:28:06 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 23:28:06 2019 +0000"
      },
      "message": "Merge \"arc: Switch to measure Hardware surfaces.\""
    },
    {
      "commit": "d9ee5557f16ef2ba5e715ad67e19eab047929f2a",
      "tree": "99d55065e65361acea6b393a170f98f8a63d7eb1",
      "parents": [
        "e70f7365efa4e6e3144abf3d0a752b2b166cb5cf",
        "c82d3e9e3c6dd8be410aeb7212c0e2655b20a15e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 28 20:34:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 20:34:25 2019 +0000"
      },
      "message": "Merge \"Explicitly exclude @Ignore annotation\""
    },
    {
      "commit": "70626a863a73dfdc5ed7f20cd8c45c4182a72b42",
      "tree": "51a898d4a51f9d3b717ce437d601bc09f3b2a5fb",
      "parents": [
        "cb1f204387bdbfd2c49398d3aa649f3d70b6b295"
      ],
      "author": {
        "name": "khmel@google.com",
        "email": "khmel@google.com",
        "time": "Mon Feb 04 16:55:40 2019 -0800"
      },
      "committer": {
        "name": "Yury Khmel",
        "email": "khmel@google.com",
        "time": "Thu Mar 28 20:12:46 2019 +0000"
      },
      "message": "arc: Switch to measure Hardware surfaces.\n\nThis switches SurfaceView performance measurement to hardware canvas\ntype. Sloweness of this sub-test is caused by CPU blit operation. This\ntype is not highest priority for ARC++ and hardware rendering has more\nsense to check.\n\nBug: 116859584\nTest: Manually, FPS is 60 for caroline, which is expected.\nChange-Id: Ic683c040e6089b878772e902f7a975898848b364\n(cherry picked from commit 10da79663169f5d59a50d1a24b53d89f9844977a)\n(cherry picked from commit 198a8d4c3b879d54681515367e13347cd258672a)\n"
    },
    {
      "commit": "cb1f204387bdbfd2c49398d3aa649f3d70b6b295",
      "tree": "b6b8b2849cb1283540ea462840447a82f4524a0e",
      "parents": [
        "c27024d97ae3c14eb50dd97a15325931482fb6bb",
        "017a97825e4b73a96121661aea02a0b84a6a3d6e"
      ],
      "author": {
        "name": "Yury Khmel",
        "email": "khmel@google.com",
        "time": "Thu Mar 28 20:10:08 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 20:10:08 2019 +0000"
      },
      "message": "Merge \"Add initial GamePerformance test.\""
    },
    {
      "commit": "29d2ef2fe10ce9686b57a21aa8e10f6481c92a9a",
      "tree": "2517b585de7634e54a44f7dc54654b9261ffda19",
      "parents": [
        "95aa6d446f8197822fd5749aeb7c6aff5577c206"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Fri Jan 18 19:22:48 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Mar 28 10:31:51 2019 -0700"
      },
      "message": "NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.\n\nThis API is similar to one provided by NetworkStatsFactory with the\ndifference that NSS also migrates traffic from VPN UID to other apps.\n\nSince traffic can only be migrated over NetworkStats delta, NSS\ntherefore maintains NetworkStats snapshot across all UIDs/ifaces/tags.\n\nThis snapshot gets updated whenever NSS records a new snapshot\n(based on various hooks such as VPN updating its underlying networks,\nnetwork getting lost, etc.), or getDetailedUidStats API is invoked by\none of its callers.\n\nBug: 113122541\nBug: 120145746\nTest: atest FrameworksNetTests\nTest: manually verified that battery stats are migrating traffic off of\nTUN (after patching above CL where we point BatteryStats to use this\nAPI).\nChange-Id: Ib0f0c2d4d41ee1d7a027ea9da457baaf198d649e\n"
    },
    {
      "commit": "95aa6d446f8197822fd5749aeb7c6aff5577c206",
      "tree": "bc029e734b213074908f6e25f23217cf547c2e11",
      "parents": [
        "289759e0d2cbc381a7495e28094f55b31a702058"
      ],
      "author": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Sun Feb 17 23:43:25 2019 -0800"
      },
      "committer": {
        "name": "Varun Anand",
        "email": "vaanand@google.com",
        "time": "Thu Mar 28 10:31:49 2019 -0700"
      },
      "message": "Take all VPN underlying networks into account when migrating traffic for\nVPN uid.\n\nBug: 113122541\nBug: 120145746\nTest: atest FrameworksNetTests\nTest: Manually verified on device that stats from VPN UID are moved\n      appropriately based on its declared underlying network set.\nTest: vogar --mode app_process --benchmark NetworkStatsBenchmark.java\n\nChange-Id: I9d8d0cc58d18002c1c96f8ddff780ef8dc452d21\n"
    },
    {
      "commit": "c82d3e9e3c6dd8be410aeb7212c0e2655b20a15e",
      "tree": "94712fe2939f73ba85a1980b09c9afd537b65890",
      "parents": [
        "67542eec78d318d60cbbe98f8870b7debe665793"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 28 08:50:03 2019 -0700"
      },
      "committer": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Mar 28 08:50:03 2019 -0700"
      },
      "message": "Explicitly exclude @Ignore annotation\n\nSome flicker class are marked Ignored causing some issue\nwith the AJUR runner. To avoid them, simply filter it.\n\nTest: None\nBug: 129468528\nChange-Id: I6442204eb6f89b4bf90a39ee821ebc4daebbe120\n"
    },
    {
      "commit": "80a19bfb312d33f4c5515e174cdc899d6a7f01ab",
      "tree": "a129ff91128d44e8c8985390fe84ca9b4d0bf8d1",
      "parents": [
        "f2c49988c395b8841bf49051891f8df75fd09433",
        "068c1bbf8ff8b47465763f09d2331d1e85a40644"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 03:22:04 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 28 03:22:04 2019 -0700"
      },
      "message": "Merge \"Only apply entitlement check to cellular upstream\" am: eea398a690\nam: 068c1bbf8f\n\nChange-Id: Iab4e067c3fec1c3b150559bfedc5643cf6c7476a\n"
    },
    {
      "commit": "eea398a690496127b3626917bd800a5d57ae911c",
      "tree": "fdf28ad6b422fb5eb0a44589bf661ef46f302470",
      "parents": [
        "d08c3b655b71c1100a216b89fae236da861ae66e",
        "3b519638a379f124b9776a222ffb01139902aea7"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 09:52:52 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 09:52:52 2019 +0000"
      },
      "message": "Merge \"Only apply entitlement check to cellular upstream\""
    },
    {
      "commit": "7d1f0fb263d598da52e425c9c78faef992412413",
      "tree": "909bde91c2528bf5fe5493db8f1afea30101c422",
      "parents": [
        "805e4a07cd19cc2a4af672fa8748605e1be4aab1",
        "a0d280fc54e4da2f443beccb21db832b116ef2a8"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 08:38:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 28 08:38:40 2019 +0000"
      },
      "message": "Merge \"Only apply entitlement check to cellular upstream\""
    },
    {
      "commit": "29b7014dab40cc472d36df91fe644ef5ac3df6c3",
      "tree": "a6316cc47cf284f969ac6ae04756c3a40caf0822",
      "parents": [
        "3b519638a379f124b9776a222ffb01139902aea7"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Tue Mar 26 21:41:59 2019 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 11:48:40 2019 +0800"
      },
      "message": "Close tethering when UI entitlement fails\n\nThis is a alternative way for moving TetherService logic\ninto EntitlementManager[1]. Settings would close tethering\nwhen silent entitlement check fail. To be consistent,\ntethering should also be closed if UI entitlement check\nfails.\n\n[1] https://android-review.googlesource.com/c/platform/frameworks/base/+/928136\n\nbug: 129330738\nTest: -build, flash, boot,\n      -atest EntitlementManagerTest\n      -manual test with carrier SIM\n\nChange-Id: Idfc35461b6359f3a624e78d49b6f73812db6d8ab\n"
    },
    {
      "commit": "3b519638a379f124b9776a222ffb01139902aea7",
      "tree": "fae0f3acaf6f67113906b125ae5cac4bee460a3b",
      "parents": [
        "963136ce56c60ac615cbbba8cc7ec885d5c0b1df"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Fri Sep 07 16:19:12 2018 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Thu Mar 28 11:18:07 2019 +0800"
      },
      "message": "Only apply entitlement check to cellular upstream\n\nInstead of doing a tethering entitlement check whenever we turn\non tethering, provisioning result should only affect mobile\nupstream. List behavior changes below:\n\n1. Change tether entitlement check from pre-flight check to\nrun-time check.\n2. Only run entitlement check when upstream is mobile.\n3. Move schedule entitlement re-check logic from Settings to\nframework.\n4. Run all entitlement thing in TetherMaster thread to avoid\nmulti-thread problem.\n\nTest: -atest FrameworksNetTests\n      -build, flash, booted\nbug: 111490073\nChange-Id: Ic2980b4d6864d6f7287816c43eb6cf7a5cdec541\nMerged-in: Ic2980b4d6864d6f7287816c43eb6cf7a5cdec541\n"
    },
    {
      "commit": "649d9a23e6d4fba0a0214d9394fba7d86c60b3b9",
      "tree": "08c497cece7a0c0665063293a17addb4dd7281f7",
      "parents": [
        "b17c4244af14dad1bf26a3004b72e7e176afb176",
        "213cda6940ec0e31d1cc9900a05131bd92812062"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Mar 27 18:43:18 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 27 18:43:18 2019 -0700"
      },
      "message": "Merge changes I0baf582f,I4bba01ba am: e5ee6b9b31 am: abb63e3a99\nam: 213cda6940\n\nChange-Id: I2cc021899270b41e4b9047ef32869af53ea6fb65\n"
    },
    {
      "commit": "213cda6940ec0e31d1cc9900a05131bd92812062",
      "tree": "9d5c73627c7ea3c7b15c8803c8f1fe60ba5f80f5",
      "parents": [
        "044a6a4580a933daa8ea99c92c9b8476cb3a093e",
        "abb63e3a99fff2a5fa9757aa0913c2f5de92690c"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Wed Mar 27 18:27:36 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 27 18:27:36 2019 -0700"
      },
      "message": "Merge changes I0baf582f,I4bba01ba am: e5ee6b9b31\nam: abb63e3a99\n\nChange-Id: Ia6cd87afec7c449b9096400352c5f6de75a012bc\n"
    },
    {
      "commit": "e5ee6b9b312aa902bbaf1c58afb6fd1307ca953c",
      "tree": "466eb6a4cd4046f1487da461cc51e17120711698",
      "parents": [
        "6a753ba787dc410625c49ee18b1365ba19ee4928",
        "15178155e0e19d8ca4bd8ee66f9b560d9feb5ae7"
      ],
      "author": {
        "name": "Junyu Lai",
        "email": "junyulai@google.com",
        "time": "Thu Mar 28 00:53:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 28 00:53:20 2019 +0000"
      },
      "message": "Merge changes I0baf582f,I4bba01ba\n\n* changes:\n  Block unpriviledged apps which create keepalives with null fd\n  Fix keepalive don\u0027t get removed when lower layer error\n"
    }
  ],
  "next": "29ce084e7234bc115a139ca9ca65be5b3bd537e2"
}
