)]}'
{
  "log": [
    {
      "commit": "09071b4fa85a76e88ddcc01363d6fa817b84a7de",
      "tree": "58b4d19732fbb8e95acd45370a94065d2058e3dc",
      "parents": [
        "12cdea59d3ebb57129e8f2106eba432a7c2f6761",
        "36a8942ca2a9f8bd909d7afc1aa2290557a1cbc3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 20 12:41:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 20 12:41:17 2018 +0000"
      },
      "message": "Merge \"Fix an incorrect null check\""
    },
    {
      "commit": "36a8942ca2a9f8bd909d7afc1aa2290557a1cbc3",
      "tree": "4202498b7e0ec9338bf6a0089a5b586b9aeecd6e",
      "parents": [
        "079f03f584e24915a296aaa4d8512ca1a7111e09"
      ],
      "author": {
        "name": "Edward Savage-Jones",
        "email": "edward.savage-jones@sony.com",
        "time": "Thu Jul 19 12:23:58 2018 +0200"
      },
      "committer": {
        "name": "Edward Savage-Jones",
        "email": "edward.savage-jones@sony.com",
        "time": "Thu Jul 19 13:03:16 2018 +0200"
      },
      "message": "Fix an incorrect null check\n\nFound an incorrect null check when debugging.\n\nTest: Manual\nChange-Id: I7ea3e2cf88117ccef48f994719986e371e45d777\n"
    },
    {
      "commit": "bbe8990162c7e903c1bbbc34d43585dca8ab90cf",
      "tree": "2f8a35029d39a54b674bce0274ab75ef9a7931ab",
      "parents": [
        "20dca26f41ef1b9097c2e7112cb641f21e6806f4",
        "d8e8c8b21bcf76ae472f26f4d9fc21aa76c7c045"
      ],
      "author": {
        "name": "Tyler Gunn",
        "email": "tgunn@google.com",
        "time": "Tue Jul 17 20:29:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 17 20:29:59 2018 +0000"
      },
      "message": "Merge \"Ensure Notification re-post with setOnlyAlertOnce(true) silences sound.\""
    },
    {
      "commit": "20dca26f41ef1b9097c2e7112cb641f21e6806f4",
      "tree": "1cf506e33c4df74b845fb684b7ba69ae286e5ce0",
      "parents": [
        "1febe4196e74b6e21a6832d06a199f001ae3b3f6",
        "58484d7c6995ae57dfd8265e7a568af87d09a72d"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Jul 17 19:47:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 17 19:47:29 2018 +0000"
      },
      "message": "Merge \"UsbDescriptor: Add finite timeout to control transfer\""
    },
    {
      "commit": "d8e8c8b21bcf76ae472f26f4d9fc21aa76c7c045",
      "tree": "d409a611ed0daea3430e41f6984d9ccaa02d9ecd",
      "parents": [
        "b4919259ab3a5caf367ca05798618c6785606182"
      ],
      "author": {
        "name": "Tyler Gunn",
        "email": "tgunn@google.com",
        "time": "Tue Jul 03 12:38:49 2018 -0700"
      },
      "committer": {
        "name": "Tyler Gunn",
        "email": "tgunn@google.com",
        "time": "Tue Jul 17 18:23:22 2018 +0000"
      },
      "message": "Ensure Notification re-post with setOnlyAlertOnce(true) silences sound.\n\nWhere a notification channel has an associated looping sound, it should\nbe possible to re-post the notification with setOnlyAlertOnce(true) to\ncause the notification channel\u0027s sound to silence.\n\nWhen re-posting the notification, this CL fixes an issue where\nNotificationManagerService wouldn\u0027t call clearSoundLocked to stop playing\nthe sound, resulting in the notification continuing to playing the sound\nassociated with the notification channel.\n\nTest: Manual testing, updated unit test\nBug: 110348674\nMerged-In: I3ec26f0804bcf59f7356a2329b73ba8ed8f7ea51\nChange-Id: I3ec26f0804bcf59f7356a2329b73ba8ed8f7ea51\n"
    },
    {
      "commit": "6e35b2c596c20b724c36fed3dde6687d44635d35",
      "tree": "35603bba6237fce653f8e1e3249384309133c212",
      "parents": [
        "600aeb124ba9bdb5c16da802dd1c85a4265ed1d8",
        "1d64e03f916817c5fc89f214db1ffeec526ec611"
      ],
      "author": {
        "name": "Mark Chien",
        "email": "markchien@google.com",
        "time": "Tue Jul 17 05:49:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 17 05:49:09 2018 +0000"
      },
      "message": "Merge \"Remove SimChangeListener from Tethering\""
    },
    {
      "commit": "4cfaa2ebdbd6332803aa5b0c9df17fef69e0df8a",
      "tree": "846b4b19d91dd46e4b6bba5df62a3bdd57544a14",
      "parents": [
        "e859c42e23c6db3d08588aecf4942d6e84bda1dd"
      ],
      "author": {
        "name": "Todd Kennedy",
        "email": "toddke@google.com",
        "time": "Wed May 02 10:59:45 2018 +0100"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 16 11:37:02 2018 -0700"
      },
      "message": "old paths contains all entries when updating\n\nIn certains circumstances, only the base and split APKs were included in\nthe \"old paths\" list when updating the application info. Instead, this\nlist should contain _all_ elements, including any additional libraries\nthat may be added to the overall classpath.\n\nBug: 77342775\nBug: 80337129\n\nTest: Manual. Install a package. Install a split with --dont_kill. See that the path doesn\u0027t contain duplicate entries\nTest: Uninstall GMS updates and reinstall. Verify that GMS Dex files aren\u0027t extrated out of the APK.\n\n(cherry picked from commit b9656a93aac435cefaa4ca0e1b06495d690ba019)\n\nMerged-In: Id9739cce215ab07bff1b17966583c0cf51a0b34a\nChange-Id: I3c61b1b61dc1ab8a1a51a5be68f19ae9af586692\n"
    },
    {
      "commit": "1d64e03f916817c5fc89f214db1ffeec526ec611",
      "tree": "0b47ec64a9a011700f7d9716fb9a192cd89490b4",
      "parents": [
        "3c1604da8b04d9e43554dada977bbca54bbea313"
      ],
      "author": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Mon Jul 16 19:54:26 2018 +0800"
      },
      "committer": {
        "name": "markchien",
        "email": "markchien@google.com",
        "time": "Mon Jul 16 19:54:26 2018 +0800"
      },
      "message": "Remove SimChangeListener from Tethering\n\nSimChangeListener is obsolete. It is replace by\nACTION_CARRIER_CONFIG_CHANGED.\n\nTest: as follows\n    - built, flashed, booted\n    - runtest frameworks-net passes (with --no-hidden-api-checks)\n    - tethering/hotspot on/off\nBug: 111490073\n\nChange-Id: I82644ea136f43869a953a1f7b72dc489fe90f380\n"
    },
    {
      "commit": "62d5e041a2c219b1ce6aaa8ccbc83e0fa7989ab7",
      "tree": "bcc5976e7007f4495faf93e7858ce374478c5477",
      "parents": [
        "1035f48f612f259cfa4b6433a5d62cda7355f4ff",
        "d02c5d8400d2b5c9782119e8cb9f36c59c37d0bd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 10 16:24:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 16:24:47 2018 +0000"
      },
      "message": "Merge \"Java side setup and access to Binder Proxy Tracking\""
    },
    {
      "commit": "1035f48f612f259cfa4b6433a5d62cda7355f4ff",
      "tree": "44abbccc1b3a295f6c4fab8013e377d342443d4e",
      "parents": [
        "079f03f584e24915a296aaa4d8512ca1a7111e09",
        "a12c0f506cf509e1220f0095010350181c31c367"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 10 14:51:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 10 14:51:50 2018 +0000"
      },
      "message": "Merge \"Mark installable jars with installable: true\""
    },
    {
      "commit": "58484d7c6995ae57dfd8265e7a568af87d09a72d",
      "tree": "4d3009aa0e722483f6ed148fa5a7957045c2c43b",
      "parents": [
        "ff801e5fd719c9aa797edd14e13562727b0e1236"
      ],
      "author": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Tue Jul 10 09:31:33 2018 +0530"
      },
      "committer": {
        "name": "sgopal1",
        "email": "saranya.gopal@intel.com",
        "time": "Tue Jul 10 09:54:03 2018 +0530"
      },
      "message": "UsbDescriptor: Add finite timeout to control transfer\n\nUsing \"0\" as value for USB control transfer timeout\nresults in an unlimited timeout in case of bad USB\ndevices. In host kernels where hung task panic\nis enabled, this results in device reboot.\nSo, add a finite timeout for USB control transfer.\n\nTest: manual run and test with bad USB devices.\n\nChange-Id: Ibc13ca4d8259a08ae7419bb3bcac9c161b1d3693\nSigned-off-by: sgopal1 \u003csaranya.gopal@intel.com\u003e\n"
    },
    {
      "commit": "725e8f6856481b14a5fe465eb8552ce7a837896a",
      "tree": "44c3da49ccdfac233d807c27bf764f9e45355a55",
      "parents": [
        "d004710e0e33e0b60b829146cc5147cacb064543"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Wed Jul 04 17:57:51 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jul 05 15:23:40 2018 +0900"
      },
      "message": "Always close file descriptors\n\nEvery error thrown leaked a netlink NETFILTER socket.\n\nTest: as follows\n    - built, flashed, booted\n    - runtest frameworks-net passes\n    - enabled tethering and tried to cause conntrack updates to sessions\n      that had expired (which causes ErrnoExceptions to be thrown)\n      while monitoring lsof for system_server\u0027s NETFILTER sockets\n\nBug: 32163131\nBug: 64976634\nBug: 110122306\n\nChange-Id: Ib52b812e8434c27ad9f2596666400c13e03c2216\n"
    },
    {
      "commit": "c6d00228cd94f9f5f5cdf7c89ba8e8e887df6213",
      "tree": "5434854be10bb3ce8ef496b559d99667ef95ebf0",
      "parents": [
        "38f75762977b3fb5d6965c90e9d4a57e72654c1c"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jun 26 18:53:43 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jul 03 13:33:34 2018 +0900"
      },
      "message": "Push DNS configuration on network validation\n\nTest: as follows\n    - built, flashed, booted\n    - runtest frameworks-net passes\n    - connected to captive portal network,\n      saw failed validation attempt (opportunistic),\n      passed portal, saw successful revalidation attempt\nBug: 64133961\nBug: 72344805\nBug: 109928338\n\nChange-Id: I0471685c2234af8a8c7f5b2ad3205eb6e36333c5\n"
    },
    {
      "commit": "a1874cc580a96fad684820d264d1c0fb7babf6e4",
      "tree": "cd1947c67b27a4f2660adbe5ad3689f78fc7a8a4",
      "parents": [
        "2e371c1b5a8326c1af21b6d12f90f61591d0b1c9"
      ],
      "author": {
        "name": "Sehee Park",
        "email": "sehee32.park@samsung.com",
        "time": "Tue Jun 19 20:07:37 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jul 02 18:17:31 2018 +0900"
      },
      "message": "Modify catch when addInterfaceToLocalNetwork() is called.\n\nFatal Exception is occured in system process. Becuase addInterfaceToLocalNetwork()\nthrow IllegalStateException but it can not be handled in TetherInterfaceStateMachine.\nModify catch from \"RemoteException\" to \"Exception\" when addInterfaceToLocalNetwork() is called.\n\nTest: Repeat on/off tethering\nTest: \"runtest --no-hidden-api-checks frameworks-net\" passes\n\nBug: 110396460\nChange-Id: I2f2f1325cfcce40c3113ccccf69b2bbd5df4ae5b\nSigned-off-by: Sehee Park \u003csehee32.park@samsung.com\u003e\n"
    },
    {
      "commit": "d02c5d8400d2b5c9782119e8cb9f36c59c37d0bd",
      "tree": "400a2f6b48dd571fcffd7827e8aecd866618074e",
      "parents": [
        "af228ca978941f98d54ba70f7bfc790cf2d69f51"
      ],
      "author": {
        "name": "Michael Wachenschwanz",
        "email": "mwachens@google.com",
        "time": "Mon Aug 14 23:10:13 2017 -0700"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 28 22:17:22 2018 +0900"
      },
      "message": "Java side setup and access to Binder Proxy Tracking\n\nExpose Binder Proxy Tracking by Uid from the native side. Enable\n tracking for SYSTEM and killing of any bad behaving uids.\n\nMerged-In: Ifd6d0f30a93fad406417dd83c1495c105bced974\nChange-Id: Ifd6d0f30a93fad406417dd83c1495c105bced974\nFixes: 63901963\nTest: bit FrameworksCoreTests:android.os.BinderProxyCountingTest\n(cherry picked from commit 55182464fb9f6536ee500eac02a031e7b7226fc4)\n"
    },
    {
      "commit": "a12c0f506cf509e1220f0095010350181c31c367",
      "tree": "7598f2489c53f952940acf254840648450a4b6f2",
      "parents": [
        "f40f05229c81971720ae16d20a2e629f142f39a7"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 27 11:00:11 2018 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 27 11:49:44 2018 -0700"
      },
      "message": "Mark installable jars with installable: true\n\nMost jars don\u0027t need to be installed on the device.  Instead of\nusing java_library and java_library_static to distinguish between\nthem make java_library and java_library_static identical and use\ninstallable: true to identify the few jars that need to be dexed\nand installed on the device.\n\nBug: 110885583\nTest: m checkbuild\nChange-Id: I579da7c1a712ec4fb49e288e7f3ab369cb75baf4\n"
    },
    {
      "commit": "9916d4b3e89b1faf8b658cc3924e0b30cc46958a",
      "tree": "8a91bb6a8a5f5b91e8519b096ea5ee3247470744",
      "parents": [
        "251a0cfb78807df22dc2156f4fd7750cbe370f71",
        "6fd62b3f2df5e63503ebe4318a9e1702dfff6209"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Jun 27 16:27:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 27 16:27:26 2018 +0000"
      },
      "message": "Merge \"Support seamless handover between VPN fds.\""
    },
    {
      "commit": "b3d6abbe6fbf5147cb5d8aa2320b11fa9c6cca81",
      "tree": "6a00c0e2ebe56124f420fb25c6db2e138393debb",
      "parents": [
        "b1fc5a4c7ee9dffe48f143c580d88ee4862f3c2e"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 21 15:16:36 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 26 09:46:32 2018 +0100"
      },
      "message": "Prepare for migration to the time detector service\n\nPaves the way for moving more behavior to the time detector\nservice from the NetworkTimeUpdateService.\n\nThe NewNetworkTimeUpdateService is effectively identical to\nthe OldNetworkTimeUpdateService in this initial commit.\n\nBug: 78217059\nTest: build / boot\nMerged-In: Ica9fa9b61c849e034d76c0faae5693b60a4a197f\nChange-Id: Ica9fa9b61c849e034d76c0faae5693b60a4a197f\n"
    },
    {
      "commit": "b1fc5a4c7ee9dffe48f143c580d88ee4862f3c2e",
      "tree": "abdf61aebf3f619aa89f86e24fa9d7b1119439c0",
      "parents": [
        "55c0a6682574b881b0ccdf2b08fdc4b6c84d1b81",
        "4980bbcd300e2ec2565bc13ef85fcb1081ab0b5e"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 26 08:43:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 26 08:43:55 2018 +0000"
      },
      "message": "Merge \"Add more behavior to TimeDetectorService\""
    },
    {
      "commit": "55c0a6682574b881b0ccdf2b08fdc4b6c84d1b81",
      "tree": "57659eac44ad1d32f41acb20f64e35469ad9e578",
      "parents": [
        "e193298c4a0f25177ce6141664d51aa1ecdc9765",
        "cccc48d0fe07349e1804dd7803db604d37a6d450"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 26 08:34:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 26 08:34:56 2018 +0000"
      },
      "message": "Merge \"Minimum viable TimeZoneDetectorService\""
    },
    {
      "commit": "4980bbcd300e2ec2565bc13ef85fcb1081ab0b5e",
      "tree": "48ee8104f144051990dc7384921d694718fffb5a",
      "parents": [
        "3580a6a9966ee6fcb487e09b49445ac8c318b76a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 12 21:06:20 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 25 19:34:05 2018 +0100"
      },
      "message": "Add more behavior to TimeDetectorService\n\nThe client code now \"suggests\" time updates\nto the time detection service. The current implementation\nof the time detection service will validate and set the\ndevice system clock as needed. In future it will ignore\nthese suggestions if better information is available.\n\nResponsibility for sending the\nTelephonyIntents.ACTION_NETWORK_SET_TIME intent has\nbeen moved to the time detection service until it can be\nremoved or replaced.\n\nThe telephony code is still responsible for basic rate\nlimiting but the majority of the decision logic has been\nmoved to the service.\n\nThere is an associated change in telephony code to switch to\nusing the server.\n\nBug: 78217059\nTest: atest FrameworksServicesTests:com.android.server.timedetector\nTest: atest FrameworksCoreTests:android.util.TimestampedValueTest\nChange-Id: I4f7a10ac06b2d32da22689e1ddf309e0a2795f30\n"
    },
    {
      "commit": "72302908d42d8317b69da68285898d995523a33f",
      "tree": "0ef3117722824df2e392015bacb579cc2439a56c",
      "parents": [
        "a0b9309ba2724e29c7e204dc84e5c50fe3431d98"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Thu Jun 14 17:36:40 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jun 25 19:25:17 2018 +0900"
      },
      "message": "Prefer default Internet network for upstream tethering.\n\nRather than use the crufty config.xml list of upstream transport types,\nuse ConnectivityService\u0027s notion of the default network for the upstream.\nIn cases where a DUN network is required and the default network is\ncurrently a mobile network, look for a DUN network (code in Tethering\nis currently responsible for requesting one).\n\nTest: as follows\n    - built, flashed, booted\n    - runtest frameworks-net\n    - tethered via mobile, joined captive portal network, maintained\n      laptop access via mobile until captive passed (then used wifi)\n    - disabled client mode wifi, disabled mobile data, plugged in\n      ethernet adapter, observed connectivity via ethernet\nBug: 32163131\nBug: 62648872\nBug: 63282480\nBug: 109786760\nBug: 110118584\nBug: 110260419\nMerged-In: I9cddf1fb7aa3b8d56bf048c563556244e74808c2\nMerged-In: Icac3e5e20e99093ddb85aae1ca07ed7b5cf309fd\nChange-Id: I925b75994e31df8046f3ef9916a2457b4210485e\n(cherry picked from commit 4080a1bd15572caf149762e45c958627feceb74d)\n"
    },
    {
      "commit": "d6a1657466059a54a0851c7cb6aae47b6af9457a",
      "tree": "93406cf61f8c738547fcd38e4656d1c8500ab863",
      "parents": [
        "b352dcd153445e32c74701b89ec1d26e73a97e47",
        "f13f8f71657dc46c10e0078e765569b3c8e2cfa5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 21 20:15:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 20:15:31 2018 +0000"
      },
      "message": "Merge \"Trim away some dead code\""
    },
    {
      "commit": "f13f8f71657dc46c10e0078e765569b3c8e2cfa5",
      "tree": "8181136952a3c4df948ef2f9182a30a2da33388b",
      "parents": [
        "a9bf7a881056cda29ee2dc04179ed9a89e5884a0"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 24 08:51:40 2017 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 21 15:40:47 2018 +0100"
      },
      "message": "Trim away some dead code\n\nThe time zone listening is currently unused so can\nbe removed. Also removed an unused constant and made a\nconstant final.\n\nBug: 63743683\nTest: Build\nMerged-In: I15870a025e9acac597edd914c9e59df415108586\nChange-Id: I15870a025e9acac597edd914c9e59df415108586\n"
    },
    {
      "commit": "cccc48d0fe07349e1804dd7803db604d37a6d450",
      "tree": "5074de619835716126f01e71c1e5f55dd5559cdd",
      "parents": [
        "3b0eba44994cf35b743a09cba351427a1f700c5f"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 19 12:53:47 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 21 09:30:34 2018 +0000"
      },
      "message": "Minimum viable TimeZoneDetectorService\n\nThis is a do-nothing TimeZoneDetectorService that can be\npopulated in following commits. A temporary method has been\nadded so the service has one method.\n\nUnit tests can be run with:\n\natest FrameworksServicesTests:TimeZoneDetectorServiceTest\n\nTest: build / boot\nTest: See above\nMerged-In: I565fb5dd2f18b7aac2e5779d346bfe69e9da02af\nChange-Id: I565fb5dd2f18b7aac2e5779d346bfe69e9da02af\n"
    },
    {
      "commit": "faf31f86381122507398624698b7c89273f01ff5",
      "tree": "4ed28243acc85504087f909199b32b73080d390b",
      "parents": [
        "b3eeb859f7760785fee6d65fc0bad6ac27f7c614",
        "4a192e2bba63b1b13030273b9fcc92932235179f"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 21 03:39:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 03:39:15 2018 +0000"
      },
      "message": "Merge \"Add StackedLinkProperties test case\""
    },
    {
      "commit": "b3eeb859f7760785fee6d65fc0bad6ac27f7c614",
      "tree": "c8b03903c72a5915cda334670f0ded72f8cb0860",
      "parents": [
        "b773556215391c1eb15949dc48596252b9e059ae",
        "55269f757e44b25706e26977ca3f69ce079490f5"
      ],
      "author": {
        "name": "Dan Zhang",
        "email": "danielzhang@google.com",
        "time": "Thu Jun 21 02:41:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 02:41:59 2018 +0000"
      },
      "message": "Merge \"Fix \u003cUCP\u003e[Power] toggled the power status\""
    },
    {
      "commit": "98efc79f81df55332be3dd86bbf28c0663c1d9b4",
      "tree": "78a918a8e41f9448c1887dcfbb5fcccd53c48ce4",
      "parents": [
        "79d3bf6e54b7651f228c7904da99a33655c4d712"
      ],
      "author": {
        "name": "Beverly Tai",
        "email": "beverlyt@google.com",
        "time": "Mon Jun 11 14:50:36 2018 +0000"
      },
      "committer": {
        "name": "Beverly Tai",
        "email": "beverlyt@google.com",
        "time": "Tue Jun 19 14:12:19 2018 +0000"
      },
      "message": "Allow apps to queue multiple toast messages.\n\nThis reverts commit 4ee785b698211b5ccce104e226b073ffbb12df55.\n\nTest: manual\nBug: 70864097\nReason for revert: Apps should use the same toast for same message\nChange-Id: I1dfacef240f9b6548ff30a45da1d843047bf4e90\n"
    },
    {
      "commit": "4a192e2bba63b1b13030273b9fcc92932235179f",
      "tree": "0c8bdaf0c18588adbde0e50b31747b161f59aa91",
      "parents": [
        "a9bf7a881056cda29ee2dc04179ed9a89e5884a0"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Wed Jun 13 15:00:37 2018 +0800"
      },
      "committer": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Tue Jun 19 16:53:08 2018 +0800"
      },
      "message": "Add StackedLinkProperties test case\n\nChange access level of getNetworkAgentInfoForNetwork in ConnectivityService to get\nbetter testability. And add test case to verify clat state transition and make sure\nlinkProperties are updated correctly.\n\nBug: 80261579, 109913107\nTest: runtest frameworks-net -c com.android.server.ConnectivityServiceTest \\\n          -m testStackedLinkProperties\nChange-Id: I72fce594d74bd349f65557edca03640e1b86317c\n"
    },
    {
      "commit": "84d4e535ae02c8472ff00887dde1739cc411b6a4",
      "tree": "51bd14e2b1072d315f9d1a9675c99b4bae047185",
      "parents": [
        "5b99659943e274252ed9e658b6dddb0e5b13119c",
        "d82ba6d374f33da5aa24d01199f193f49d35ae37"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Jun 18 09:00:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 18 09:00:40 2018 +0000"
      },
      "message": "Merge changes I4b1bca8b,Idb7d2f28,I4825e632\n\n* changes:\n  [PT09] Add javadoc comments to all ProxyTracker methods/members.\n  [PT08] Move setDefaultProxy to ProxyTracker\n  [PT07] Small cleanup of setGlobalProxy\n"
    },
    {
      "commit": "185a29a5a83f20a8bc72f2205470f8f3ff3da5a3",
      "tree": "fee6f4ceb6a4921e6b0aef424dd2405c26986a7b",
      "parents": [
        "5392d799ab9e9a392df24780d3727a9c55664517"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jun 13 16:56:38 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Jun 14 17:44:55 2018 +0100"
      },
      "message": "Clear calling identity before doing any work\n\nThis makes sure that the system server is credited/blamed\nfor the logic being executed.\n\nTest: (internal) atest FrameworksServicesTests:com.android.server.timedetector\nBug: 78217059\nChange-Id: Ie2586cf0d983e9aef9371d6db285c8420e9c8dc0\n"
    },
    {
      "commit": "8ec0c6ba4833273f0978512d0ae0cefd5248781a",
      "tree": "bb92df3f608dca3a17a3f33a7198c2db8dab07da",
      "parents": [
        "cb749e2e50e2d8e1adac2a3e91a822c69a7d5bdf",
        "74ce8b3b58931a67f77e9182a52e9811bbbcad7b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 19:19:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 19:19:57 2018 +0000"
      },
      "message": "Merge \"persist.sys.boot.reason is cleared once read by bootstat\""
    },
    {
      "commit": "cb749e2e50e2d8e1adac2a3e91a822c69a7d5bdf",
      "tree": "12dd516d4163f828bbd3c606f968cbc5e47b0f5f",
      "parents": [
        "6c0106b57fb54f9f47109508413859297378ab7d",
        "4773b9dadc6036d0797e19aa1650bfaa592712f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 12 17:01:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 17:01:25 2018 +0000"
      },
      "message": "Merge \"Simple pass-through TimeDetectorService\""
    },
    {
      "commit": "4773b9dadc6036d0797e19aa1650bfaa592712f5",
      "tree": "2cad78e0c5f8d1ed10f4532c339e319eab4ba349",
      "parents": [
        "b557907f51a8a92954b60fe1d181e7f4e9f5c803"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Jun 08 18:44:49 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 12 15:33:35 2018 +0100"
      },
      "message": "Simple pass-through TimeDetectorService\n\nThis is sufficient to wire up time detection from telephony\nto the new service without breaking time detection.\n\nThis cherry-pick contains a small change: to use\nSystemClock.elapsedRealtime() instead of the newer\nSystemClock.elapsedRealtimeClock() with Clock.millis().\n\nBug: 78217059\nTest: atest FrameworksServicesTests:com.android.server.timedetector\nTest: atest FrameworksCoreTests:android.util.TimestampedValueTest\nMerged-In: Id7175878dc22e5272c31f3e478af4b0e4183b62b\nChange-Id: Id7175878dc22e5272c31f3e478af4b0e4183b62b\n(cherry picked from commit 24836bfb1564b1f98c322108a924965a8dbbee4f)\n"
    },
    {
      "commit": "6c0106b57fb54f9f47109508413859297378ab7d",
      "tree": "7ea6b1dad79406d75756e44f509820c2235bb671",
      "parents": [
        "5e1d95b0cc05eb1a6bf25a13223601f2e8f8fccb",
        "3c443fcf403cb3a55fac8f12e5c1f75aade410e0"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 12:23:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 12:23:59 2018 +0000"
      },
      "message": "Merge changes I6abd2221,I2c149d29,I45d22857,I1f879b2c,If4986a25, ...\n\n* changes:\n  [PT06] Move setGlobalProxy into ProxyTracker\n  [PT05] Move sendProxyBroadcast into ProxyTracker.\n  [PT04] Move PacManager into ProxyTracker.\n  [PT03] Move some more code into ProxyTracker.\n  [PT02] Move static methods to ProxyTracker\n  [PT01] Introduce ProxyTracker\n  Remove a useless parameter.\n  Small cleanup of Network.\n  Cleanup of LinkProperties.\n"
    },
    {
      "commit": "d82ba6d374f33da5aa24d01199f193f49d35ae37",
      "tree": "fe86ca2f356531f2d6b203f4bc28ec5984247c03",
      "parents": [
        "daab8f917e55a95badb7e0b767f28c50f89ea9ee"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jun 08 12:41:21 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:16 2018 +0900"
      },
      "message": "[PT09] Add javadoc comments to all ProxyTracker methods/members.\n\nAlso rename some vars and inline a function that is now private.\n\nTest: runtest\nChange-Id: I4b1bca8b29f46d97056973cd38ed8effc3f5b591\n"
    },
    {
      "commit": "daab8f917e55a95badb7e0b767f28c50f89ea9ee",
      "tree": "eb549abb56aaf7c4c35f35e7fdc2f66aa6b89894",
      "parents": [
        "1900b59e25f349d867f93fa9abede09936a39312"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jun 08 12:20:15 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:16 2018 +0900"
      },
      "message": "[PT08] Move setDefaultProxy to ProxyTracker\n\nTest: runtest\nChange-Id: Idb7d2f2895aac63d54e3a6481379b739a726eff6\n"
    },
    {
      "commit": "3c443fcf403cb3a55fac8f12e5c1f75aade410e0",
      "tree": "5cfa02822d805d0581be763a8483ee91336f5500",
      "parents": [
        "3319c62dfe67a0f263de4002409f96d17fd211ca"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 18:37:59 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:15 2018 +0900"
      },
      "message": "[PT06] Move setGlobalProxy into ProxyTracker\n\nTest: runtest\nChange-Id: I6abd2221882db368a411b7174c66d8bd3b6b5110\n"
    },
    {
      "commit": "1900b59e25f349d867f93fa9abede09936a39312",
      "tree": "7459dbbb073d51cffae78e34b2f47ba3db7d8e95",
      "parents": [
        "3c443fcf403cb3a55fac8f12e5c1f75aade410e0"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 19:40:24 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:15 2018 +0900"
      },
      "message": "[PT07] Small cleanup of setGlobalProxy\n\nTest: runtest\nChange-Id: I4825e6326f7ce7bd45d625d57824f8d27c51d6f2\n"
    },
    {
      "commit": "3319c62dfe67a0f263de4002409f96d17fd211ca",
      "tree": "7659bbae2d10de3f9a0670dc15e6681c8c11d591",
      "parents": [
        "ff5d0055bc08780e97bd37f44271f1129360db28"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 19:30:29 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:15 2018 +0900"
      },
      "message": "[PT05] Move sendProxyBroadcast into ProxyTracker.\n\nTest: runtest\nChange-Id: I2c149d29d4b75d3978021b940b6bc58f677b8d17\n"
    },
    {
      "commit": "ff5d0055bc08780e97bd37f44271f1129360db28",
      "tree": "4e5970983f58bf6ffc732255bc9dce831d3acfed",
      "parents": [
        "5afbc83b9115003299c0e4037a8a29de55ef8028"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 19:20:08 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:15 2018 +0900"
      },
      "message": "[PT04] Move PacManager into ProxyTracker.\n\nTest: runtest\nChange-Id: I45d22857459fe1746d484ac04f8d5cd81fc61835\n"
    },
    {
      "commit": "5afbc83b9115003299c0e4037a8a29de55ef8028",
      "tree": "1c7665ba86a677634d1112d2595d40d11bf119fa",
      "parents": [
        "4949dd75407aac265d784ae6c1d983cf73b41b80"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 18:02:37 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:15 2018 +0900"
      },
      "message": "[PT03] Move some more code into ProxyTracker.\n\nAdd finals and annotations. Remove comments that have lost their\ncontext (they were in the context of disabling a permission check\nthat had been added, but constituted an API change that would not\nserve any real purpose).\n\nTest: runtest\nChange-Id: I1f879b2c105d2127072b88233d72097a0d78fe14\n"
    },
    {
      "commit": "4949dd75407aac265d784ae6c1d983cf73b41b80",
      "tree": "4d93628b13372b00d7d79f7c8bde10ec94e7a2c1",
      "parents": [
        "52c2aa7eeb6e7ab3d925c7665afe932d50743ae7"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 17:41:29 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:14 2018 +0900"
      },
      "message": "[PT02] Move static methods to ProxyTracker\n\nNo logic changes. Only changes are adding nullability annotations,\nfinal modifiers, and adding an s in a comment.\n\nTest: runtests\nChange-Id: If4986a25bb36819de8ff459c4c0439c56d4e5a50\n"
    },
    {
      "commit": "52c2aa7eeb6e7ab3d925c7665afe932d50743ae7",
      "tree": "09f992e7c866dd09ee7b4f6de02085a86af06d3d",
      "parents": [
        "c098291bc4f09c4cc7ae0d16abc811e4cd4d924d"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 16:44:04 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:14 2018 +0900"
      },
      "message": "[PT01] Introduce ProxyTracker\n\nThe goal of this is to simplify ConnectivityService by reducing\nthe amount of code it contains. This is small enough to be obviously\ncorrect and followup changes will move code into this class.\n\nTest: runtest\nChange-Id: Ic5ab19b521e98ae397c9bf657856820304362fbb\n"
    },
    {
      "commit": "c098291bc4f09c4cc7ae0d16abc811e4cd4d924d",
      "tree": "c0c6f6fbade37ebd788b2c668ec5b01d7bbea0b2",
      "parents": [
        "6823744fa66c80f2afa6d877d75785793637a01a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Jun 07 16:11:34 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 12 19:03:14 2018 +0900"
      },
      "message": "Remove a useless parameter.\n\nThis argument is useless because all its callers pass the same\nvalue : false.\n\nTest: runtest\nChange-Id: Id921caa4ffadef535a5bbcfea052283a07320b28\n"
    },
    {
      "commit": "5e1d95b0cc05eb1a6bf25a13223601f2e8f8fccb",
      "tree": "4a78461f7b7b61c76e8c14b2f52c0a2b8eaa8b22",
      "parents": [
        "0be0692691db1d2b921deb43b4e0b8a55ced490f",
        "b557907f51a8a92954b60fe1d181e7f4e9f5c803"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Jun 12 09:50:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 12 09:50:32 2018 +0000"
      },
      "message": "Merge \"Minimum viable TimeDetectorService\""
    },
    {
      "commit": "b557907f51a8a92954b60fe1d181e7f4e9f5c803",
      "tree": "c82bd687ee073b95f2ec5bb7ed363e27435917e7",
      "parents": [
        "20e243d627586ec727384aacf2cf5aa94e38b779"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed May 30 14:35:24 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 11 15:29:57 2018 +0100"
      },
      "message": "Minimum viable TimeDetectorService\n\nThis is a do-nothing TimeDetectorService that can be\npopulated in following commits. A temporary method has been\nadded so the service has one method.\n\nUnit tests can be run with:\n\natest FrameworksServicesTests:TimeDetectorServiceTest\n\nTest: build / boot\nTest: See above\nMerged-In: I9e4eac70b944441f34491315cd1ce7fa2b9ae150\nChange-Id: I9e4eac70b944441f34491315cd1ce7fa2b9ae150\n(cherry picked from commit feeee682a23f25760c4a1aa07c00945901911ba3)\n"
    },
    {
      "commit": "4d660114dc7c37d486fdbe4d7be308c23158fa97",
      "tree": "eb2d80ad85dc12d35008f68f87b13252e99ab051",
      "parents": [
        "20e243d627586ec727384aacf2cf5aa94e38b779"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Jun 04 16:52:49 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Jun 11 18:48:37 2018 +0900"
      },
      "message": "Cleanup of ConnectivityManager.\n\nThis is not exhaustive, but still an undeniable improvement.\n\nTest: runtest frameworks-net\nChange-Id: Id79096faf20eec80de7c17b261ef338b895af1e0\n"
    },
    {
      "commit": "a190a41b51fe868dd3b379109211b5e2d4fac385",
      "tree": "f7f2bcae72b42200ec67a1cf6a10145beb6b57c3",
      "parents": [
        "33b5abb6f80869f78eac9fa42cf0186f3c435ed4",
        "4133a12431c16e108a80f3787e83527b0d160534"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 11 04:57:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 04:57:31 2018 +0000"
      },
      "message": "Merge \"No-op cleanup of ConnectivityService.\""
    },
    {
      "commit": "33b5abb6f80869f78eac9fa42cf0186f3c435ed4",
      "tree": "201a442c1a06e6565d4e2acb479dd5c9e16d288d",
      "parents": [
        "2d5156733c4b35e3ba21ddf932c2595ee690aaeb",
        "cafa7c939d8bede4b16e142fa31f8ae6625442c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 11 03:26:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 11 03:26:26 2018 +0000"
      },
      "message": "Merge \"Copy clat modified linkProperties into new one.\""
    },
    {
      "commit": "b2749539c05cfb296a5729fcba887057b9c94307",
      "tree": "36926edb1904c481433d0ea52583efe49dfeb90d",
      "parents": [
        "7db23752abfbb31111969ee335a36b42ceeedc5e",
        "8c69bcbb8f626fee128d8f771568fbc22615a9f5"
      ],
      "author": {
        "name": "nharold",
        "email": "nharold@google.com",
        "time": "Fri Jun 08 17:07:11 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 17:07:11 2018 +0000"
      },
      "message": "Merge changes from topic \"ipsec-sync-with-pi\"\n\n* changes:\n  Disable the AppOp Restriction for IpSec Tunnels\n  Rework Exception Handling for IpSecManager\n  Update IpSecManager to use InetAddress and prefixLen\n  Add AppOps Checks for MANAGE_IPSEC_TUNNELS\n  Add MANAGE_IPSEC_TUNNELS Permission\n"
    },
    {
      "commit": "4133a12431c16e108a80f3787e83527b0d160534",
      "tree": "ad574498e5f0cd0c929509a25ae9d811d43a891c",
      "parents": [
        "1b9de57f3844c8aa784a5163a4581851c2f17baf"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Jun 04 13:33:12 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jun 08 19:10:59 2018 +0900"
      },
      "message": "No-op cleanup of ConnectivityService.\n\nFunny how these things accumulate. Not exhaustive of course, but\nstill an improvement.\n- Remove unused imports.\n- Remove unused variables and members.\n- Replace members with locals where applicable.\n- Remove useless type parameters and explicit unboxings for Java 7.\n- Conversely add the diamond operator for auto-genericity for\n  Java 6.\n- Reduce visibility of members where possible.\n\nTest: runtest frameworks-net\nChange-Id: I13586aee09b4cd1c87c525fafb5eee44dedb5360\n"
    },
    {
      "commit": "cafa7c939d8bede4b16e142fa31f8ae6625442c1",
      "tree": "db6599b0e15626c2caceaf5390e6e77ee4dbccc9",
      "parents": [
        "b62aa315d1d9d27c716964930205ed0681e8997b"
      ],
      "author": {
        "name": "junyulai",
        "email": "junyulai@google.com",
        "time": "Tue Jun 05 16:10:04 2018 +0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri Jun 08 16:28:32 2018 +0900"
      },
      "message": "Copy clat modified linkProperties into new one.\n\nupdateLinkProperties copied the linkProperties in networkAgent,\nbut the clat fix-up function did not copy stacked link into new one.\nThis caused an incorrect clat iface removal, and the IPv4 network\n to be unreachable.\n\nClean cherry-pick of ag/4260470\n\nBug: 80261579\nTest: 1. ping after ipv6 only data call with 2g voice call on/off\n      2. runtest frameworks-net\n      3. run cts -m CtsNetTestCases\nChange-Id: Ide47a3b0680dddfcf3e2e759a59b19aee3605050\n"
    },
    {
      "commit": "8c69bcbb8f626fee128d8f771568fbc22615a9f5",
      "tree": "c47fd972b912fda2029002dd2c43697d9e1ddd2c",
      "parents": [
        "144ce0a2485b061b4ae9090b2b9f558e6e3d0e04"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue May 15 19:18:38 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Jun 07 18:44:34 2018 -0700"
      },
      "message": "Disable the AppOp Restriction for IpSec Tunnels\n\nThis CL temporarily removes the AppOp restriction\nthat disallows creation of IpSec tunnels due to\nthe lack of the appropriate AppOp in AOSP/master.\nWhen the relevant framework merges out to master,\nthis CL should be reverted.\n\nBug: none\nTest: compilation\nChange-Id: Ic06c193f85f6bcdd0ead4238825c1add78703cde\n"
    },
    {
      "commit": "144ce0a2485b061b4ae9090b2b9f558e6e3d0e04",
      "tree": "62f03d461907508f347fe00c56e5dc4abd5afa2c",
      "parents": [
        "fdda5697d7ccc61b5692a8b2e5116afcb4921c09"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Tue Apr 03 16:13:19 2018 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Thu Jun 07 18:42:52 2018 -0700"
      },
      "message": "Rework Exception Handling for IpSecManager\n\nIn order to properly support EOPNOTSUPP this CL\napplies a consistent approach to handling Exceptions.\nHereafter, all exceptions that aren\u0027t of a special\nmethod-specific type (such as SpiUnavailableException)\nwill all be returned to the calling process unchanged.\nAt the API call site, the ServiceSpecificException,\nwhich is really an Errno, will be inspected and either\nconverted to an unchecked exception for types we know,\nor it will be converted to an IOException in cases where\nthat method can return a checked exception. In cases\nwhere we do not expect an errno, we will simply throw\na generic RuntimeException. This means all API calls\nwill now properly throw UnsupportedOperationException\nand may be CTS tested accordingly.\n\nBug: 72420898\nTest: runtest frameworks-net\nMerged-In: I4a00e221618896223fcdb4b4279fb14cd14e34d8\nChange-Id: I4a00e221618896223fcdb4b4279fb14cd14e34d8\n(cherry picked from commit ddeb90aa9db108d4a2e5aadc778a726b65e5c921)\n"
    },
    {
      "commit": "21208eeccc0f0b5cffebda5ec972bdc765afe6a8",
      "tree": "27737c9e3731a73e7c0f2ef705769b5415e10f3b",
      "parents": [
        "01b61dbd53e23db6f5a6d52eec39ff2d4c1e5501"
      ],
      "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": "Thu Jun 07 18:42:52 2018 -0700"
      },
      "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\nMerged-In: I17a4a286225b432c3e15ea1587d946189931b4f4\nChange-Id: I17a4a286225b432c3e15ea1587d946189931b4f4\n(cherry picked from commit 592dadbd43fcb7c5d67e737adb34d07923da90c4)\n"
    },
    {
      "commit": "3ee7b6ca848fa4c02e70d54096ad39dc9b421911",
      "tree": "021a0be96c4660cf84d8108121c2d2c0a210c2bc",
      "parents": [
        "5a6df1afa7ed8e9b963edce07223f4060c8adc64"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 21 09:28:46 2018 -0700"
      },
      "committer": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Thu Jun 07 22:32:24 2018 +0000"
      },
      "message": "Add field to set A2DP device volume on connect (1/2)\n\nAdd a field to setBluetoothA2dpDeviceConnectionStateInt() to allow\nBluetooth to set a volume for the new device when it connects.\n\nBug: 79529581\nTest: Switch repeatedly between devices and see that the old volume isn\u0027t\nused on the new device or the new volume isn\u0027t used on the old device.\nChange-Id: Iea13ca8b5c538c999149baba6e9069745ad9466b\nMerged-In: I909fa3f40818c595fc977695fbfa1214f9a4de72\n\n(cherry picked from commit 3e6fb6309033c50081c0789b5905d5cd539b38f6)\n"
    },
    {
      "commit": "6fd62b3f2df5e63503ebe4318a9e1702dfff6209",
      "tree": "468e56e78f85cc83f7c261304c3104c4d8b4f463",
      "parents": [
        "b62aa315d1d9d27c716964930205ed0681e8997b"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Fri Sep 22 21:27:32 2017 +0900"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Jun 07 08:07:38 2018 +0100"
      },
      "message": "Support seamless handover between VPN fds.\n\nThis used to work before SOCK_DESTROY allowed us to close\nconnections when VPNs connected and disconnected. Instead of\ndoing this like the old code did by registering a new\nNetworkAgent, support (limited) seamless handover on the\nsame NetworkAgent and netId.\n\nBug: 64692591\nTest: cts-tradefed run commandAndExit cts-dev -m CtsHostsideNetworkTests -t com.android.cts.net.HostsideVpnTests#testSeamlessHandover\nChange-Id: Idad0ec5946e7eb9e1f4a13c92ea7138de6a46f16\nMerged-In: Idad0ec5946e7eb9e1f4a13c92ea7138de6a46f16\n(cherry picked from commit d9dbfa65c662e9b4f8064191663252925161dbfc)\n"
    },
    {
      "commit": "d2f29d7a6fa988c6752cbb0a3779d9b42a329ace",
      "tree": "dd76bf99b1c6717c30bb55782010cad82bdc68ca",
      "parents": [
        "b044b885cf51ef350745e9178e763c0b4db8a86a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Jun 04 15:35:31 2018 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Jun 06 17:03:55 2018 +0100"
      },
      "message": "Remove CommonClock / CommonTimeManagementService\n\nThe service and associated code is unused.\n\nBug: 80462439\nTest: build / boot\nMerged-In: Ibdfab1b7d2951a0c45e07bd47850af037990841b\nChange-Id: Ibdfab1b7d2951a0c45e07bd47850af037990841b\n"
    },
    {
      "commit": "b044b885cf51ef350745e9178e763c0b4db8a86a",
      "tree": "c7619cd158ef8798e3b4ca6f4c96de0024269ab9",
      "parents": [
        "f907578564f4594a05de4b57689c27d1a3e3936c",
        "b04a511ac41ebef78b7260427968eb7ddba945e5"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:25:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 08:25:45 2018 +0000"
      },
      "message": "Merge changes Ia764b341,I4e4b41bb,I61b262d8,Ie6ace6bd,I21e866c7, ...\n\n* changes:\n  Let tests enumerate all transports/capabilities.\n  Destroy networks as soon as they are disconnected.\n  Fix a ConcurrentModificationException crash.\n  Unify behavior of various cases of \"no underlying networks\"\n  Fix: VPNs update caps upon underlying network disconnect.\n  Add tests for setUnderlyingNetworks.\n  Fix setCapabilities.\n  Fix SSID not being logged by the validation logs\n  Make sure getActiveNetwork is consistent with default callbacks\n  Add tests for getActiveNetwork.\n  Guard the SSID with NETWORK_SETTINGS\n  Add a new ssid field in NetworkCapabilities.\n  Notif manager and captive portal app to read SSID again\n  Remove unwanted capability from the java-doc\n  Actually @hide unwanted capability methods.\n  API council requested tweaks to NetworkRequest.\n  Add OEM_PAID capability to system api\n  add airplane mode shell commands to connectivity\n  Enable cleartext for captive portal apps\n  Expose CONNECTIVITY_ACTION to Instant Apps\n  fix isActiveNetworkMetered with VPNs\n"
    },
    {
      "commit": "49d8108599b2243953a3dd7783059808faf70165",
      "tree": "bbf4ddd07499742064a36a6adeb3a58f0c991d65",
      "parents": [
        "6d89a786c09d01488e4505305d203dd9c0b7001a"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri May 11 20:19:20 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:25:28 2018 +0000"
      },
      "message": "Destroy networks as soon as they are disconnected.\n\n...as opposed to after the async channel finished disconnecting.\n\nClean cherry-pick of ag/4043255\n\nBug: 78308259\nTest: runtest frameworks-net\n      also used a device with this patch over the weekend and\n      tried all I could think of\nMerged-In: Ic4c7520e907de353a01c2a3a8a50d661dee4a994\nMerged-In: I0617f0ff6e46a1d3764335a1e7ad01b34c8cc5a8\n\nChange-Id: I4e4b41bbdf25d7d7bea4124cb58da004d47f1090\n"
    },
    {
      "commit": "6d89a786c09d01488e4505305d203dd9c0b7001a",
      "tree": "85fd70e35a0fb0bc5cf4766673c6756de1d9fa84",
      "parents": [
        "3bd570585717624c0387a13a5f82bff89d41856d"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed May 23 09:07:51 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:25:19 2018 +0000"
      },
      "message": "Fix a ConcurrentModificationException crash.\n\nThis is a pinpoint fix against the bug listed below. While a client\nis synchronously reading the LinkProperties of a network, the\nConnectivityServiceThread is updating its properties. Make sure\nthat update is done atomically.\n\nThis is a stopgap countermeasure against a problem that is\npervasive with usage of LinkProperties, but fixing the problem\nitself will happen later.\n\nClean cherry-pick of ag/4174798\n\nBug: 80077223\nTest: runtest frameworks-net\nChange-Id: I61b262d824c98b4ced36395a597b73de9193a199\nMerged-In: I25007ac26349e451bb47f966af70d590d699c347\nMerged-In: I03526187645b6955eb89ca4d2e4a930ebac236b8\n"
    },
    {
      "commit": "3bd570585717624c0387a13a5f82bff89d41856d",
      "tree": "c0ffd70274bfa823582ab9a01de868fd5862a08e",
      "parents": [
        "8d53829ca05f4fe663f6afce65c0831854a92dee"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon May 21 15:30:56 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:25:10 2018 +0000"
      },
      "message": "Unify behavior of various cases of \"no underlying networks\"\n\nBefore this change, VPNs having no underlying networks would be\nmarked as metered as the safe option, but VPNs having only\ndisconnected underlying networks would be marked as unmetered.\nFix this discrepancy.\n\nClean cherry-pick of ag/4113809\n\nBug: 79748782\nTest: runtest frameworks-net\nChange-Id: Ie6ace6bd95139605ffcfa8cd6c15cf28f8fa28c8\nMerged-In: If19b85325e7d684e645470293b3c8a674084c641\nMerged-in: I22f80a6a39d4a19ff74aa61fcbd66f1a041b1003\n"
    },
    {
      "commit": "8d53829ca05f4fe663f6afce65c0831854a92dee",
      "tree": "92adb7739486b0107b8e0e23ad7a3c1c8d82b7d4",
      "parents": [
        "f666d0a21a5e57f5a21a6e6346f271725a7dd68f"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri May 18 22:02:56 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:25:02 2018 +0000"
      },
      "message": "Fix: VPNs update caps upon underlying network disconnect.\n\nClean cherry-pick of ag/4083954\n\nBug: 79748782\nTest: ConnectivityServiceTests still pass\nChange-Id: I21e866c723099e5c3dee54ff13e830d44427fc7a\nMerged-In: I12c948ebeb2b74290908f8320ff77220dc4a9fb9\n"
    },
    {
      "commit": "f666d0a21a5e57f5a21a6e6346f271725a7dd68f",
      "tree": "70e53e221d5ad7fbd70d6790db5b8c419478f41f",
      "parents": [
        "d1d8b627dd23b0bda8399a04b04320498271a105"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Fri May 18 21:47:45 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:24:51 2018 +0000"
      },
      "message": "Add tests for setUnderlyingNetworks.\n\nFixes come later. This is complex enough as it is.\n\nClean cherry-pick of ag/4083953\n\nBug: 79748782\nTest: new test passes, old tests still pass\nChange-Id: If7276fe1f751be7b9c18f689e97699e566e5bde0\nMerged-In: I12c948ebeb2b74290908f8320ff77220dc4a9fb9\n"
    },
    {
      "commit": "fdd9e2f73a779c54a661d768709c02d699b872ca",
      "tree": "50a7c7188e8beb32a6746ef039207a1a4d955467",
      "parents": [
        "ff8710aec0bdbc93b5f746b1864208e59baa87e7"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Apr 26 16:16:10 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:24:32 2018 +0000"
      },
      "message": "Fix SSID not being logged by the validation logs\n\nAlso add it in the logs of the notification manager.\n\nClean cherry-pick of ag/4022397\n\nBug: 78547904\nTest: manual\nChange-Id: I0afc18c94adf97154c61af2a5bdf933fb5f0e622\nMerged-In: Iad5388a31a1502bc1944346276bb9600ac1386bd\nMerged-In: I8bdd4a020e9d04f46847ef3c7e80ccf5c5cd19ea\n"
    },
    {
      "commit": "ff8710aec0bdbc93b5f746b1864208e59baa87e7",
      "tree": "06029919a4284232f350c3c73f8ae0398a5c0a13",
      "parents": [
        "3e2fb66e74b145e091db92a294c83cfc7d0251c4"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 18 20:18:38 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:24:21 2018 +0000"
      },
      "message": "Make sure getActiveNetwork is consistent with default callbacks\n\nAlmost clean cherry-pick of ag/3889538.\n\nBug: 77737389\nTest: runtest framework-net\n      new test don\u0027t pass without the main code change, but they\n      do with it\nChange-Id: I0cd83a935ab0b349aa47e065b830e5a43ab9a091\nMerged-In: Iaa0285825735d3f16bba6e4946723a437fd9b0b9\nMerged-In: Ia8f985b448251f911484e6bd63fa562bffc1b0e4\n"
    },
    {
      "commit": "3e2fb66e74b145e091db92a294c83cfc7d0251c4",
      "tree": "4a7d35ed24c7c77798fbcacbe630c2ecf6750dde",
      "parents": [
        "7a635d853dc6ea29cff86574cfb9399424034dda"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 18 19:18:58 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:24:12 2018 +0000"
      },
      "message": "Add tests for getActiveNetwork.\n\nClean cherry-pick of ag/3918295\nOne-line adjustment for ag/3638326 which has not been put in AOSP.\n\nBug: 77737389\nTest: runtest frameworks-net\nChange-Id: I03ae2bbb08559f2cd44979e291c1f5d50eb215da\nMerged-In: Iaa0285825735d3f16bba6e4946723a437fd9b0b9\nMerged-In: Ia8f985b448251f911484e6bd63fa562bffc1b0e4\n"
    },
    {
      "commit": "7a635d853dc6ea29cff86574cfb9399424034dda",
      "tree": "05975c8a1fda388d9c905c4fb2c84101515a2347",
      "parents": [
        "6bc18fbb5d4ebe31d7cf1e6677133953710f83f2"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Mon Apr 16 12:25:22 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:24:01 2018 +0000"
      },
      "message": "Guard the SSID with NETWORK_SETTINGS\n\nClean cherry-pick of ag/3904260\n\nBug: 77865258\nTest: manual\nChange-Id: I2a2e236041797df495759dd4e07648545cad6c7c\nMerged-In: Iba59e93875c28b8e30db0c013575bc2f117cb16c\nMerged-In: I6cf364f0815a2eaab60f5de5e1d5ccc4908e9eca\n"
    },
    {
      "commit": "6bc18fbb5d4ebe31d7cf1e6677133953710f83f2",
      "tree": "b765a854b8e4c7efb6da0750de747739b1b1411e",
      "parents": [
        "39620248d785b2219e0aca94ed37db7ca13dff11"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Apr 11 21:09:10 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:23:52 2018 +0000"
      },
      "message": "Add a new ssid field in NetworkCapabilities.\n\nClean cherry-pick of ag/3887737\n\nBug: 77891227\nTest: frameworks-net\nChange-Id: Icefe1657bca52b913a72b56705342a7285769658\nMerged-In: Ia1f4e51b7c2e9118789242cf6d9e7576c4167cda\nMerged-In: I6dd1aba6fde5a502b4a9145cf16393d8ce623c89\n"
    },
    {
      "commit": "39620248d785b2219e0aca94ed37db7ca13dff11",
      "tree": "0d2aec1a0c862b9c92ffacbdc6bf0d085439c7d4",
      "parents": [
        "45762cfe548d0d007a32dfbea3b1c16f986edc41"
      ],
      "author": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Thu Apr 12 11:52:37 2018 +0900"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:23:43 2018 +0000"
      },
      "message": "Notif manager and captive portal app to read SSID again\n\nCherry-picked from ag/3887738 ; almost clean CP, only had\nto add an import.\n\nBug: 77114259\nTest: frameworks-net pass\n      manual test shows the SSID is now displayed again\nChange-Id: I5cb2b4777ad78d972031e8f2ff22e2155f4ab894\nMerged-In: I588fedba49ea5d08e40bd2b3ea8ba2c2383958ec\nMerged-In: I663a59ff2847a9f44ea1395326f6cb00e97237b6\n"
    },
    {
      "commit": "2b24f8cf96e2dafba7c433c854ae556862d79649",
      "tree": "ccf2d82ffdc7e16bdb6b3c12d47bc7e042134441",
      "parents": [
        "c707509274bfb89cbdc9feea0f6acf63ab34b717"
      ],
      "author": {
        "name": "mswest46",
        "email": "westmichael@google.com",
        "time": "Mon Mar 12 10:34:34 2018 -0700"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Wed Jun 06 08:22:31 2018 +0000"
      },
      "message": "add airplane mode shell commands to connectivity\n\nClean cherry-pick of ag/3718273\n\nChange-Id: I302802afc952b9df7a5544b12d9015091997bd67\nFixes: 74410990\nTest: Manually checked that commands enable/disable airplane mode.\nMerged-In: I8787d642594e6852bff5b902e8d0fa380ce7c37f\n"
    },
    {
      "commit": "74ce8b3b58931a67f77e9182a52e9811bbbcad7b",
      "tree": "418d437a1047d9e809bcf6da17a886738c9b9935",
      "parents": [
        "13cb6084e27fbd072186eaa3b6e611cf1c88a119"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 05 09:06:54 2018 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 05 09:37:22 2018 -0700"
      },
      "message": "persist.sys.boot.reason is cleared once read by bootstat\n\nTo ensure a surprise reboot does not take the last boot reason on\nface value especially if coming from more than one boot sessions ago.\nWe shift and clear the value from persist.sys.boot.reason to\nsys.boot.reason.last and establish a correct last reboot reason in\nthe canonical sys.boot.reason property.  As a result, the power\nmanager should read the canonical sys.boot.reason for a definitive\nresult rather than relying on the possibly incorrect values in the\npersistent storage.\n\nThe value in sys.boot.reason is not valid until bootstat has\nsignaled boot complete.\n\nTest: compile\nBug: 86671991\nBug: 63736262\nChange-Id: I80b3602821678f0cececf28b727c06135bf94960\n"
    },
    {
      "commit": "626a33cc6dd89e80899bdcd66b6180224b0c3166",
      "tree": "d7dcae9ffa5737398879d0928afcf9756173364e",
      "parents": [
        "7784d2cdc45eb43cf1b7ef361b13e731700edc3d"
      ],
      "author": {
        "name": "Chad Brubaker",
        "email": "cbrubaker@google.com",
        "time": "Thu Mar 08 10:37:09 2018 -0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 05 17:46:37 2018 +0900"
      },
      "message": "Expose CONNECTIVITY_ACTION to Instant Apps\n\nClean cherry-pick of ag/3710436\n\nTest: Broadcast is visible to Instant Apps\nBug: 69421898\nChange-Id: Ibac92b5aa16bf1538776b90df5dc05362667e785\nMerged-In: I0434f8c7292a85e25df3da2858e4d89cf55fab3d\nMerged-In: I62ed2107d0b0712267a903e465cbeba6a4f0b346\n"
    },
    {
      "commit": "7784d2cdc45eb43cf1b7ef361b13e731700edc3d",
      "tree": "729111d87d61230f418e1819f1172528bbee61a7",
      "parents": [
        "1f392c468ae40589474ea906cffa05658741c3e0"
      ],
      "author": {
        "name": "Eric Enslen",
        "email": "enslen@google.com",
        "time": "Wed Feb 07 18:03:53 2018 -0800"
      },
      "committer": {
        "name": "Chalard Jean",
        "email": "jchalard@google.com",
        "time": "Tue Jun 05 17:46:37 2018 +0900"
      },
      "message": "fix isActiveNetworkMetered with VPNs\n\nClean cherry-pick of ag/3580901\nBug: 72871435\nTest: flashed and verified, also ran runtest framework-net\nMerged-In: I177eff1237dd59514ccf91397a3d307148bc37b1\n\nChange-Id: Ic5919a32f91f7baee5f1370703ad166e6ea52b58\n"
    },
    {
      "commit": "0f27eed8f666e5ee38cea16b7feb2fd8e43c9b9e",
      "tree": "944ada4a11bd712e73db4c4e98186e57db7d36db",
      "parents": [
        "4d3b5c1d3beb7849548ba3d1aba162e6789958ce"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue May 29 19:24:43 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Jun 05 15:56:55 2018 +0900"
      },
      "message": "Randomize the local Wifi IPv4 address\n\nAlso: address a few \"error prone\" warnings, adding @Override where missing\n\nTest: as follows\n    - built, flashed, booted\n    - runtest frameworks-net passes (with --no-hidden-api-checks)\n    - wifi tethering uses a randomized address, in as much as it can work\nBug: 32163131\nBug: 70673901\n\nChange-Id: Icfabc48f2cf97b362ce292747f47021e84b900da\n"
    },
    {
      "commit": "4d3b5c1d3beb7849548ba3d1aba162e6789958ce",
      "tree": "0dcc1bfde56c38ebb2fb258df605a9065665b6a3",
      "parents": [
        "2dd3d8cbefefc5beed04f8f3091a04c47a173b0e",
        "00000fe55a4729f8339afdc7eab5c970b2549813"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 05 04:35:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 05 04:35:55 2018 +0000"
      },
      "message": "Merge \"vpn: allow IPSec traffic through Always-on VPN\""
    },
    {
      "commit": "f8bba5bfc76cd06c0527b00fad3abe0828455f29",
      "tree": "c17faa55f6798c3f595a61dd9667ed77506e1826",
      "parents": [
        "59ccf1041fcb74b495dbbe0b06b8eaf466a4ce29"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Fri May 18 16:09:24 2018 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jun 04 18:31:27 2018 +0900"
      },
      "message": "Clear IPv4 address on tethering teardown.\n\nTest: as follows\n    - built\n    - flashed\n    - booted\n    - runtest frameworks-net passes\n    - wlan0 in STA mode, wlan1 up/down in AP mode\n      no lingering IPv4 mode\n    - USB tethering up/down works\n    - bluetooth tethering yields:\n05-18 17:50:49.726   719   756 D TetherController: untetherInterface(bt-pan)\n05-18 17:50:49.729  1194  1230 E Tethering: [bt-pan] ERROR Failed to clear IPv4 address on interface bt-pan: java.lang.IllegalStateException: command \u0027224 interface setcfg bt-pan 0.0.0.0 0\u0027 failed with \u0027400 224 Failed to clear address (No such device)\u0027\n      which is acceptable (no actual crash, just a log message)\nBug: 79905644\nMerged-In: Ie898adc4efbb7376f0297abacdfe39c8700f0722\nMerged-In: I9eb44eaf4e99fa85fff2909524ee88673bdcf1fd\nMerged-In: Iaf29788a6692d810f3160e3f21d06b7452ecbaa6\n\n(cherry picked from commit 472276a874316b725027098b79e1c9f03c62cad2)\n\nChange-Id: Icb5c4f7971af4715c7662f80194b4c1ce369a135\n"
    },
    {
      "commit": "59ccf1041fcb74b495dbbe0b06b8eaf466a4ce29",
      "tree": "fb255658e5a6d92bd195a1bc407fdd0f8f2e7cf6",
      "parents": [
        "bd83ac0ecc1239643f1df3a002fd1ae580734b07",
        "c8cb0f71d2ad872773cd275e5a8d93190d56ee66"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Jun 04 07:41:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 04 07:41:51 2018 +0000"
      },
      "message": "Merge \"Send empty LinkProperties when entering StoppedState.\""
    },
    {
      "commit": "00000fe55a4729f8339afdc7eab5c970b2549813",
      "tree": "2452a30b4167808522102e192dddd8b9623a4889",
      "parents": [
        "1f392c468ae40589474ea906cffa05658741c3e0"
      ],
      "author": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon May 28 22:04:37 2018 +0900"
      },
      "committer": {
        "name": "Bernie Innocenti",
        "email": "codewiz@google.com",
        "time": "Mon Jun 04 13:59:28 2018 +0900"
      },
      "message": "vpn: allow IPSec traffic through Always-on VPN\n\nThis won\u0027t leak any traffic outside the VPN as long as there are no\nprocesses owned by uid 0 which generate network traffic (which is\ncurrently the case).\n\nBug: 69873852\nTest: compared the output of \u0027adb shell ip rule show\u0027 before and after\nTest: runtest -x frameworks/base/tests/net/java/com/android/server/connectivity/VpnTest.java\nTest: local CTS tests run: android.net.cts.VpnServiceTest\nTest: local CTS tests run: com.android.cts.devicepolicy.MixedDeviceOwnerTest\nChange-Id: I8758e576c9d961d73f62bfcf0559dd7ecee6e8e6\n"
    },
    {
      "commit": "0defa6e72c94d50deb3d852e52ed28e9d11cc5e0",
      "tree": "0a9d04cfd05b85178c4d70a2b05fef473d24bc0c",
      "parents": [
        "ce1979d70769e7bc42a06baaab217b3a2c4d4b6d",
        "bff0fb4ec05ebb26c396a52974813b056fa34d73"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 30 19:54:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 30 19:54:42 2018 +0000"
      },
      "message": "Merge \"Check for bpf support at NetworkStatsService start\""
    },
    {
      "commit": "bff0fb4ec05ebb26c396a52974813b056fa34d73",
      "tree": "e253a57b8f4a3dbc6afd4eecafb91bdc55705606",
      "parents": [
        "6ca9d3d97eeadd6b20da895c3659c5256ef5958f"
      ],
      "author": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Fri May 18 17:10:07 2018 -0700"
      },
      "committer": {
        "name": "Chenbo Feng",
        "email": "fengc@google.com",
        "time": "Wed May 30 18:15:25 2018 +0000"
      },
      "message": "Check for bpf support at NetworkStatsService start\n\nThe current implementation check for bpf map existance whenever a\nNetworkStats request comes in. The check is not efficient and may\nrequire additional permission for threads. So a member variable is added\nto NetworkStatsService to store the bpf configuration status and is\ninitialized when NetworkStatsService start.\n\nTest: -m CtsNetTestCases -t android.net.cts.TrafficStatsTest\n      -m CtsUsageStatsTestCases -t android.app.usage.cts.NetworkUsageStatsTest\nBug: 79994577\n\nChange-Id: I872ae18fb3e9631a4e6c4d773fefbba32e60a03b\nMerged-In: I872ae18fb3e9631a4e6c4d773fefbba32e60a03b\n"
    },
    {
      "commit": "8a984b9f08058531a480acf5b9bda7e40a31fb98",
      "tree": "27bb8b3974e64b34037f2048c6da28e5be3f4096",
      "parents": [
        "1c3681fe7cf119abc1ec7bf00865a5d104f35c34",
        "452da339bd4737b55915f1c34ac1433330faec62"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 28 17:00:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 28 17:00:50 2018 +0000"
      },
      "message": "Merge \"Do not setForceUse when a2dp config without change\""
    },
    {
      "commit": "1c3681fe7cf119abc1ec7bf00865a5d104f35c34",
      "tree": "469ce3540b65289b825157ceb1f94729a02d96fe",
      "parents": [
        "f98f8a4c6c70ed459d04874796c5c0744100c8e8",
        "50016ca463e68f9cd4df821684b62a7018d0870a"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Mon May 28 10:53:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 28 10:53:30 2018 +0000"
      },
      "message": "Merge \"Do not call finishKeyguardDrawn with PWM\u0027s mlock\""
    },
    {
      "commit": "c8cb0f71d2ad872773cd275e5a8d93190d56ee66",
      "tree": "51f525001ed5ac796075dbec6709dbffd71de986",
      "parents": [
        "f98f8a4c6c70ed459d04874796c5c0744100c8e8"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon Dec 11 14:24:08 2017 +0900"
      },
      "committer": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Mon May 28 17:51:24 2018 +0900"
      },
      "message": "Send empty LinkProperties when entering StoppedState.\n\nAdditionally, no longer try to transition from within a State\u0027s\nenter() method (this can encounter Log.wtf()s). Introduce some\nCMD_JUMP_* commands and use deferMessage().\n\nTest: as follows\n    - built, flashed, booted\n    - runtest -x IpClientTest passes\n    - basic DHCP wifi association works\nBug: 69800563\nBug: 70394432\nBug: 80284937\nChange-Id: I7ed6e1a994a3556af345e8a4dfb51c383f6d5478\n(cherry picked from commit ffacb517d40df8ebb52d5906fa844b20c6520cd8)\n"
    },
    {
      "commit": "f98f8a4c6c70ed459d04874796c5c0744100c8e8",
      "tree": "38069c818efb4d5d876ee5224ff8b4c43d1033a9",
      "parents": [
        "4517eacd5d59342c6138eee0f5ad0a6dba52e630",
        "1dc4e43bc0aa55d5eaf98563746efab1ffb1b7ee"
      ],
      "author": {
        "name": "Bryan Henry",
        "email": "bryanhenry@google.com",
        "time": "Fri May 25 20:21:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 25 20:21:23 2018 +0000"
      },
      "message": "Merge \"Allow changing signing cert for system apps that use shared users\""
    },
    {
      "commit": "79b473ed7ba51c2f74e355261fbed1ef13965931",
      "tree": "fbc13ede78b8911e6cec5908d54a480969c9bf31",
      "parents": [
        "1fb2ed3de38ae13a5ed58ae009b1a8945b8f4c1c",
        "fa15a99fe910d0d20ab493e7ab4e39466fdd44ec"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 25 10:04:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 25 10:04:43 2018 +0000"
      },
      "message": "Merge changes from topic \"location_provider\"\n\n* changes:\n  Remove FlpHardwareProvider\n  Create the stubs lib for com.android.location.provider\n"
    },
    {
      "commit": "50016ca463e68f9cd4df821684b62a7018d0870a",
      "tree": "1b23602d75ca837458238ae1f867d2fa18a62c5a",
      "parents": [
        "1fb2ed3de38ae13a5ed58ae009b1a8945b8f4c1c"
      ],
      "author": {
        "name": "eddy-sh.chen",
        "email": "eddy-sh.chen@mstarsemi.com",
        "time": "Fri May 25 16:43:08 2018 +0800"
      },
      "committer": {
        "name": "Eddy-SH Chen",
        "email": "eddy-sh.chen@mstarsemi.com",
        "time": "Fri May 25 08:58:11 2018 +0000"
      },
      "message": "Do not call finishKeyguardDrawn with PWM\u0027s mlock\n\nOtherwise it may cause a deadlock between\nPWM\u0027s mlock and WMS\u0027s mWindowMap.\nJust post the work to the policy handler instead.\n\nBug: 80279029\nChange-Id: Idae333687cf5c88e1893ee216c278b9e6c17dd98\n"
    },
    {
      "commit": "1fb2ed3de38ae13a5ed58ae009b1a8945b8f4c1c",
      "tree": "601b42a0c95c1493f41413b552f4d746a027711e",
      "parents": [
        "b19a838f473d5313b7ae02984d60745de391e745",
        "2ea6c55590d18aeaf8647d464f15b35675e518f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 25 08:26:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 25 08:26:34 2018 +0000"
      },
      "message": "Merge \"Add permission check to setAllowOnlyVpnForUids\""
    },
    {
      "commit": "fa15a99fe910d0d20ab493e7ab4e39466fdd44ec",
      "tree": "34e421208ae17f58161ac998020b44a183046592",
      "parents": [
        "409e5d25a91cacdab6bd2a4c338d2ef1c84fa318"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Mar 08 16:43:07 2018 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri May 25 16:38:52 2018 +0900"
      },
      "message": "Remove FlpHardwareProvider\n\nAfter Treble\u0027s FLP merge into GNSS HAL, the FlpHardwareProvider is just\nan empty shell. Removing FusedLocation and/or Flp + Hardware classes\naltogether.\n\nBug: 35726697\nTest: m -j\nTest: Open Google Map and then walk around. The dot moves as I walk.\n\nMerged-In: I7f413e38b57424e8ebb9d7d14d94f145a48d10f8\nChange-Id: I7f413e38b57424e8ebb9d7d14d94f145a48d10f8\n(cherry picked from commit 4cc3a1c056f69ac4da1dc5055c36b7357e9f673c)\n"
    },
    {
      "commit": "b19a838f473d5313b7ae02984d60745de391e745",
      "tree": "daff107d3ba494c63c2448afb4d45be1e7794244",
      "parents": [
        "96dbac0c5cf4088d1b71ff4ff432bcc61f270087",
        "a6085d17caae6638e8afa2a6839d566a6f32a211"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Fri May 25 03:28:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 25 03:28:05 2018 +0000"
      },
      "message": "Merge \"Use AI_ADDRCONFIG for most DNS requests\""
    },
    {
      "commit": "452da339bd4737b55915f1c34ac1433330faec62",
      "tree": "afc1c940fb42f2e1c7b09ed3ee21e460d24c6aca",
      "parents": [
        "d01890df3ce3ee71b752fbeb15686d6c8740a10d"
      ],
      "author": {
        "name": "zengjing",
        "email": "zengjing@xiaomi.com",
        "time": "Fri May 25 11:15:20 2018 +0800"
      },
      "committer": {
        "name": "zengjing",
        "email": "zengjing@xiaomi.com",
        "time": "Fri May 25 11:15:20 2018 +0800"
      },
      "message": "Do not setForceUse when a2dp config without change\n\nWhen device connected with wired headset and without any bluetooth\nconnection, APP may call MediaRouter to setForceUse to set FOR_MEDIA\nwith FORCE_SPEAKER, then sound be output to SPEAKER. In this case,\nif setBluetoothA2dpOn(false) was called, FOR_MEDIA will be set with\nFORCE_NONE and sound be output to wird headset.\n\nThe issue discussed above occurred on our device. We developed an FM radio APP.\nBeforce work, wired headset must be plugged in to be used as antennas. Then we\nsetForceUse FOR_MEDIA to FORCE_SPEAKER, and audio stream was output to speaker.\nAt this moment, if we play other sound (such as ScreenCapture sound),\nMediaRouterService will detected audio playbacked state changed. Because FM Audio\nwas not monitor by AudioPlaybackMonitor, there was not any audio playback active.\nSo, restoreBluetoothA2dp was called in the function of onAudioPlayerActiveStateChanged,\nwhich call AudioService.setBluetoothA2dpOn(false). As a result sound was switch to headset.\n\nThere are two solutions to fix our issue.\n1) Check a2dp state before setBluetoothA2dpOn in MediaRouterService::restoreBluetoothA2dp,\n   if a2dp state does not change, setBluetoothA2dpOn should not be called\n2) Check a2dp state before setForceUse in AudioService::setBluetoothA2dpOn,\n   if a2dp state does not change, setForceUse should not be called\nConsdering that setBluetoothA2dpOn may be called by other method, we try to fix it\nwith the second one.\n\nTest: NA\n\nChange-Id: I3a2e64e7d73d9aa9539176fea556feb433cb7211\nSigned-off-by: zengjing \u003czengjing@xiaomi.com\u003e\n"
    },
    {
      "commit": "7b0935509d0d894084cda8cd1f516108433ec620",
      "tree": "996dabfd063bdc48aa26abc71c165273a06b3ebc",
      "parents": [
        "a7183b92c41d4c595b20323e5a3e153d7bf9c014",
        "9f85505432aa1e4b17a4bb938cf529bfe38c564e"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu May 24 07:53:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 24 07:53:00 2018 +0000"
      },
      "message": "Merge changes I3b3bcbbd,I18b3f263,I3c416c1a\n\n* changes:\n  Use CaptivePortalProbeSpec method in portal app\n  Add configurable captive portal probes\n  Move CaptivePortalProbeResult to its own file\n"
    },
    {
      "commit": "13e6e21db9f6362041bd0d7f835d2ed247b9158f",
      "tree": "d90dc8458b24066d5672add17720fc081af04152",
      "parents": [
        "d57329d8537add164833a58af436d1d059b08fab"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue May 22 10:01:53 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu May 24 12:08:36 2018 +0900"
      },
      "message": "Add configurable captive portal probes\n\nThe probes allow testing for a configurable status code and location\nheader (regexes). They are disabled by default, so this CL is a\nno-op unless the probe configurations are pushed.\n\nBug: b/79499239\nTest: tests in CL pass, manual: captive portal login works\nMerged-In: Iec7a74bbf2569a91e958c497200d77e8451cbf7b\nMerged-In: Ia958815325d1466345e9626efc8f62fc9d08d774\n(clean cherry-pick of pi-dev I785723aaed06054b9aa8ebff77803f23d7836db9)\n\nChange-Id: I18b3f263fed08fa4fee20d5e88f3ec8647d7f835\n"
    },
    {
      "commit": "d57329d8537add164833a58af436d1d059b08fab",
      "tree": "c763fc2eaedf86621793f202733a2fdc4347a811",
      "parents": [
        "6fa8d06c78d21d455015e19691d5d6f2e6bd258b"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue May 22 09:58:19 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu May 24 12:04:27 2018 +0900"
      },
      "message": "Move CaptivePortalProbeResult to its own file\n\nThis is necessary to resolve visibility issues for the next change.\n\nBug: b/79499239\nTest: runtest frameworks-net\nMerged-In: Ia48b32307a51a66f2672d7112f71166dd6db41b1\nMerged-In: I5df7ee9f16bc6be4f02353d40a843a383dd4cbd9\n(Clean cherry-pick of pi-dev I50bc96afe6ae88c8f58a693f0a4e821f1f9b3299)\n\nChange-Id: I3c416c1a91ebfdf914fd528ff8ab73e3eb490562\n"
    },
    {
      "commit": "a6085d17caae6638e8afa2a6839d566a6f32a211",
      "tree": "f5ecdd00def5843d2378a13813df5033176324e6",
      "parents": [
        "6fa8d06c78d21d455015e19691d5d6f2e6bd258b"
      ],
      "author": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Tue May 22 18:20:51 2018 +0900"
      },
      "committer": {
        "name": "Remi NGUYEN VAN",
        "email": "reminv@google.com",
        "time": "Thu May 24 11:42:05 2018 +0900"
      },
      "message": "Use AI_ADDRCONFIG for most DNS requests\n\nNot using it doubles the number of DNS lookups for single-stack\nnetworks.\nPrivate DNS hostname resolution still does not use this flag so that we\nget all address families in advance, in case of LinkProperties changes.\nBug: b/79811321\nTest: manual: Captive portal, 464xlat, networking in apps working\nMerged-In: I7037342a93dc48b8e0988e719b9a9a2d5055bcf2\nMerged-In: I8ca15fa079cd5ff94e4d9f7e0476504769f9708f\n(Clean cherry-pick of pi-dev Ib46756e5e5f8d8d2698c90c5183c368d2d44be7a)\n\nChange-Id: Iedb7a9c5f9caeb66de4505189fca8db91013d844\n"
    },
    {
      "commit": "1771240c802aeda258583264f4b17a245cb13a99",
      "tree": "cef6d2106d38afff82804a2bba41ff868211499b",
      "parents": [
        "10e3fdd2633fa0ce8174b0a66d1f5be632dd9a85",
        "da5e7a0e3f55684daa2910bf8ab3b4a245b96de4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 22 23:15:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 22 23:15:36 2018 +0000"
      },
      "message": "Merge \"Reset the profile when system application change version.\""
    },
    {
      "commit": "d25198f62f3f72127eceb902624298ae37bb876a",
      "tree": "1f43887a055a059107e5d0ac651abfb6e1f46c69",
      "parents": [
        "923208e8c992cc52b59742faa86717dea1fdde37",
        "d3904f1ca36580ddc4a5b86f018d68286142b3f4"
      ],
      "author": {
        "name": "Jordan Liu",
        "email": "jminjie@google.com",
        "time": "Mon May 21 19:06:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 21 19:06:54 2018 +0000"
      },
      "message": "Merge \"Change directory where apns-conf.xml is stored\""
    },
    {
      "commit": "923208e8c992cc52b59742faa86717dea1fdde37",
      "tree": "1669387ffa714dd44f71408b13be2b9ee1eb73cf",
      "parents": [
        "b5dda0e316a26936a7834373215fbf08fb27a8c3",
        "ae5bcc56ac7312822b2397bc96f3f778e4a89397"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 21 16:59:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 21 16:59:17 2018 +0000"
      },
      "message": "Merge \"ActivityManager: Fix slow-app ANR dumping\""
    },
    {
      "commit": "d3904f1ca36580ddc4a5b86f018d68286142b3f4",
      "tree": "27c6391564c795e55841f467e2a7af70aa609e37",
      "parents": [
        "b1b864cee20ebe34c2ec7638b51da1318f4f5984"
      ],
      "author": {
        "name": "Niklas Lindgren",
        "email": "niklas.lindgren@sony.com",
        "time": "Fri May 18 14:48:43 2018 +0200"
      },
      "committer": {
        "name": "Mattias Nilsson",
        "email": "mattias.nilsson@sony.com",
        "time": "Mon May 21 18:43:44 2018 +0200"
      },
      "message": "Change directory where apns-conf.xml is stored\n\nWhen apns are downloaded OTA they are stored directly under data/misc\nby system server. Files created there gets assigned with file context\nsystem_data_file which TelephonyProvider cannot read.\n\nIn order to make sure that downloaded apns gets a file context TelephonyProvider\ncan read we create an apns sub directory in init where radio_data_file:s are\ncreated. The data path to where apns-conf is stored is here changed from /data/misc/\nto /data/misc/apns/.\n\nThis change is aligned with other files that ConfigUpdateInstallReceiver writes.\n\nTest: Trigger Apn update via intent UPDATE_APN_DB\nGo to settings/apn-list and verify that newly downloaded are present\nBug: 79948106\n\nChange-Id: I5a9ec262bfbac291cca9fee5accf93eb6c06f253\n"
    }
  ],
  "next": "b5dda0e316a26936a7834373215fbf08fb27a8c3"
}
