)]}'
{
  "log": [
    {
      "commit": "0e1f78da65eb57f249e00a6af4d6ad9298cca803",
      "tree": "e18e55f15f1784500a3e2ea7bdc3f8bb5afb89e1",
      "parents": [
        "21f25acb1011e2b00282b8eb1173529b8391364b",
        "705442fa7dcbf1bf92595fdaca6cc888810931d8"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Fri Sep 23 22:00:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 22:00:42 2016 +0000"
      },
      "message": "Added Emergency affordance feature\nam: 705442fa7d\n\nChange-Id: I03ebb84119f9cb310882ba9ea90ee1e1d7118d03\n"
    },
    {
      "commit": "fa10c2869b08723ee1a8cb10b27f121579ed75a6",
      "tree": "fd40999f791a6079dfd21b0655f0eecad9c6aef9",
      "parents": [
        "c1b1be6bd9c654728aa1d60a2e8a9df3cd8e8163",
        "8adaec07f0a3caeb26d60dab8e29ee588a1bce68"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Fri Sep 23 11:04:06 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 23 11:04:09 2016 +0000"
      },
      "message": "Merge \"Add property to disable camera service proxy.\" into cw-f-dev"
    },
    {
      "commit": "3a353a2044c1636fd337b2b199a757e066f8a6f9",
      "tree": "1b777ac439aa8322291a81e7a011ab68a47fb421",
      "parents": [
        "2b6f25134b376cf5b2ccddb64ab20853d80e03d9",
        "eab511b582cc00364dee7835534bb511719f9231"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Sep 23 03:49:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 03:49:04 2016 +0000"
      },
      "message": "New IpConnectivityMetrics service\nam: eab511b582\n\nChange-Id: Iad65f10f079be13570e1f687dacb30f4f657a163\n"
    },
    {
      "commit": "705442fa7dcbf1bf92595fdaca6cc888810931d8",
      "tree": "17757b609cc1cf6611add817dbb352f387116564",
      "parents": [
        "8a71ad032f208d5ba1f8553612b355c7633ee3e2"
      ],
      "author": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Tue Sep 13 16:02:33 2016 -0700"
      },
      "committer": {
        "name": "Selim Cinek",
        "email": "cinek@google.com",
        "time": "Thu Sep 22 12:25:57 2016 -0700"
      },
      "message": "Added Emergency affordance feature\n\nAdded a service that listens whether emergency affordances\nare necessary.\n\nIf the they are needed, it adds an option to the\nglobal actions dialog that directly launches the\nemergency call and also adds a long-press listener\nto the keyguard emergency button.\n\nTest: adb shell settings put global force_emergency_affordance 1 \u0026\u0026 adb shell settings put global emergency_affordance_number 111112\nFixes: 30404490\nChange-Id: Ib96a15da2ef4b568a8d77140ebca6aa6f20f5ddb\n"
    },
    {
      "commit": "eab511b582cc00364dee7835534bb511719f9231",
      "tree": "e5ba8226191b15e2b6a44011c4ef52a0f68e712f",
      "parents": [
        "50a84c6210f4f165b489dd1bf1c535d86dda2fba"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Sep 09 09:23:47 2016 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Thu Sep 22 22:25:27 2016 +0900"
      },
      "message": "New IpConnectivityMetrics service\n\nThis patch defines a new metrics service for IpConnectivity events\ndefined in android.net.metrics, separate from currently existing\nMetricsLoggerService.\n\nSimilarly to MetricsLoggerService, the new service has an event buffer.\nIt also implements a dumpsys interface that can be used to flush events\nand output a serialized proto.\n\nBug: 31254800\nChange-Id: I0c3faeb4008b283f85d9ba9460371fa68956ea3b\n"
    },
    {
      "commit": "8adaec07f0a3caeb26d60dab8e29ee588a1bce68",
      "tree": "e3b0e06a4b901639f68540e91b22ed5c67736a97",
      "parents": [
        "a7de0e1f58cadc4c8e6c550db69239c244e8da79"
      ],
      "author": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Wed Sep 14 18:14:31 2016 +0100"
      },
      "committer": {
        "name": "Ivan Podogov",
        "email": "ginkage@google.com",
        "time": "Thu Sep 22 09:59:05 2016 +0100"
      },
      "message": "Add property to disable camera service proxy.\n\nThis service proxy (together with the native server) are not needed on\nAndroid Wear, as we don\u0027t have any watches with cameras.\n\nBug: 28560707\nChange-Id: Ie4a830a3ba48c90d3e968fc5cdf57ccafcc1f5d8\n"
    },
    {
      "commit": "ef89d21a1bf9a8b11befd9b55130816ccf9fb4fb",
      "tree": "b14ca2b2056273c6658b2693a9a188b267be1d37",
      "parents": [
        "5c90c8d620b33a150cb88d941de713e1eb32145a"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Mon Sep 19 15:10:33 2016 -0700"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Mon Sep 19 15:18:53 2016 -0700"
      },
      "message": "Make VrManager service optional.\n\nb/31244699\n\nChange-Id: I7d276e6945f19b575f880df16f140b84b03052a9\n"
    },
    {
      "commit": "09de41950c2982fd12b8b5cac40786d5dd04ca3e",
      "tree": "658fc05baf84ae1ce37978ffb926c2477700c837",
      "parents": [
        "7e33ce731d2111977a2b358442a5477f98429040"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Wed Sep 07 13:33:49 2016 -0700"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Wed Sep 07 13:33:49 2016 -0700"
      },
      "message": "Make consumer_ir an optional service.\n\nb/31244699\n\nChange-Id: Id851b0139d476a829097399374bb196cbfe96cf0\n"
    },
    {
      "commit": "f8dd7b4e8d548274c680644a2225951b97e94a4f",
      "tree": "3efe4f1f61e6a93619c7f89baf7e9df8c5ea55b7",
      "parents": [
        "e24a4590bf5c302687a3efba684de275d13ee300"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Aug 10 13:00:32 2016 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Thu Aug 18 09:57:11 2016 -0700"
      },
      "message": "Removed screen on/off callbacks from NPMS.\n\nNetworkPolicyManagerService (NPMS) used to depend on screen on/off\nchanges to determine if a foreground activity should have network\nrestrictions, but such check is now redundant since ActivityManager\nalready changes the proper UID state (like going from TOP to\nTOP_SLEEPING) when the screen status is changed.\n\nRemoving such code decreases the NPMS lock contention when the screen is\nturned on in about 3-5ms.\n\nChange-Id: I2853443efedbf14961ae9a5b2e72689d4d1a646c\nBUG: 30785671\n(cherry picked from commit 88f40ad9a721ee30708be82f66fb58c64f1d36b5)\n"
    },
    {
      "commit": "0171a6ef8b45e83eabb3843a544a59f6fa581db9",
      "tree": "4b0ec78d54bd5286ec1dd92fa46940eb72fb9b9c",
      "parents": [
        "3746d2224de6c52e97711c64f4b7e7f5f5065239",
        "f3d8b81d4b7ea8d0979480f9be966a08d5ad0b6d"
      ],
      "author": {
        "name": "Nancy Zheng",
        "email": "nzheng@google.com",
        "time": "Mon Jul 11 18:14:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 18:14:27 2016 +0000"
      },
      "message": "Merge \"Add WearWifiMediatorService to SystemServer.\" into nyc-mr1-dev"
    },
    {
      "commit": "f3d8b81d4b7ea8d0979480f9be966a08d5ad0b6d",
      "tree": "559c032555f5ae7c6ce40de6a1bda8bb006f2a97",
      "parents": [
        "8ee0a67ba713f4476b5517b1555b3a8b2be4baa6"
      ],
      "author": {
        "name": "Nancy Zheng",
        "email": "nzheng@google.com",
        "time": "Fri Jul 08 12:55:48 2016 -0700"
      },
      "committer": {
        "name": "Nancy Zheng",
        "email": "nzheng@google.com",
        "time": "Fri Jul 08 12:55:48 2016 -0700"
      },
      "message": "Add WearWifiMediatorService to SystemServer.\n\nBug: 28347905\nChange-Id: I4218f908f83eb3a9fe3f75e5d6eaf312c652ba67\n"
    },
    {
      "commit": "911e88939cbe5a8607c230e061ba1da5f187cf69",
      "tree": "6b1358cabe349ac181c3e158641b63596ca0838e",
      "parents": [
        "e81fa8578284e0eb04009ceade6d0d9d3ef3e7cc"
      ],
      "author": {
        "name": "Justin Klaassen",
        "email": "justinklaassen@google.com",
        "time": "Tue Jun 21 18:24:24 2016 -0700"
      },
      "committer": {
        "name": "Justin Klaassen",
        "email": "justinklaassen@google.com",
        "time": "Fri Jul 08 11:47:50 2016 -0700"
      },
      "message": "Add Night display feature\n\nBug: 28615069\n\nTints the display at night automatically according to your schedule or\nusing the sunrise/sunset corresponding to your current location.\n\nChange-Id: Ie56b4eed88cc2fcbae88002492b1edad5820b6b1\n"
    },
    {
      "commit": "56177bf81b316f38695457add3a9a822bf6f1104",
      "tree": "55e052a2598fa90ba15ad139d6f7455e8aee8989",
      "parents": [
        "e1fdcc49fd4e5cebd649f8e951e9815814c6ae6a",
        "d281b4204a38d8cb542f2272b2d21203eafaff7b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 08 18:09:52 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 08 18:09:54 2016 +0000"
      },
      "message": "Merge \"Revert \"Frameworks/base: Refactor UserHandle and Environment a bit\"\" into nyc-mr1-dev"
    },
    {
      "commit": "d281b4204a38d8cb542f2272b2d21203eafaff7b",
      "tree": "480a596f413f7d34df2a3b017c181fae783f5add",
      "parents": [
        "6e16714c688ed9c52763696f5a5e7b90802a471b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 08 03:50:27 2016 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 08 03:50:27 2016 +0000"
      },
      "message": "Revert \"Frameworks/base: Refactor UserHandle and Environment a bit\"\n\nBreaks monkey in root mode.\n\nThis reverts commit 6e16714c688ed9c52763696f5a5e7b90802a471b.\n\nBug: 29338430\nChange-Id: I238f89dad77d7dcae6d02eccbda52eb9c6c6466c\n"
    },
    {
      "commit": "bb2d9ab98e679e4a2e231657d467e23d02d5ec30",
      "tree": "7b66332461a9a8c124fe230a8dfbc2705f807a29",
      "parents": [
        "f0df804e0ab7a17c0638fd7ba572c4f6fdb03cdf",
        "7380c321ad23b6cbf0af239fbd2e037f67b08545"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 07 19:37:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 07 19:37:24 2016 +0000"
      },
      "message": "Merge \"Remove \"starting apps\" boot message.\" into nyc-mr1-dev"
    },
    {
      "commit": "7380c321ad23b6cbf0af239fbd2e037f67b08545",
      "tree": "32367e0f9a4fd2be8ce287b04c2e035e16bd6694",
      "parents": [
        "400960a40e84f7f0968b3019ac3c01fcf4954575"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jun 27 17:08:23 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jul 07 12:13:57 2016 -0600"
      },
      "message": "Remove \"starting apps\" boot message.\n\nThe \"starting apps\" message is only shown for a short period of time\nbefore we show the lock screen.  Recent boot animations now have a\nspin down phase which is just long enough to result in us flashing\nthis message for a very short period of time, which looks janky.\n\nTo avoid the janky behavior, remove this message altogether.  Other\nboot messages for dexopt\u0027ing after an OTA remain intact.\n\nAlso fix security bug that would allow any app to show a message.\n\nBug: 29367890\nChange-Id: I77bb65acbe0e5afb4033dc6b83e533e665dce690\n"
    },
    {
      "commit": "6e16714c688ed9c52763696f5a5e7b90802a471b",
      "tree": "ab9b5481cbe045b8e8ef188e8757b77ecbec57cd",
      "parents": [
        "3c32cf8a8c7e5ea4744bad17d8944da36ae0cff0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 14 17:13:37 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 06 18:07:44 2016 +0000"
      },
      "message": "Frameworks/base: Refactor UserHandle and Environment a bit\n\nRefactor slightly to forbid using myUserId in the zygote (uid \u003d\u003d 0).\nAlso factor Environment to put user data (vs shared data) into its\nown class, which should keep the page the shared data is on actually\nshared between processes.\n\nBug: 29338430\nChange-Id: I05d1306b57658a83299e38076171f56cb364ea80\n"
    },
    {
      "commit": "6472501f2e7ba018d8aa43c61e55874d756cecb8",
      "tree": "f6f04ee39366d9d32f2bc0f62be668f23ea9c72e",
      "parents": [
        "33657640ec420968dd97e68bbe84556fbdb86d87"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Wed Jun 15 13:19:28 2016 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Thu Jun 23 17:36:19 2016 -0700"
      },
      "message": "Resetting some settings on starting a new demo session\n\nMuting ringer and media volume and turning off the flashlight\nbefore starting a new session. Also, resetting the configuration of any\nnew demo user to the configuration of user 0 on the device. Moved\nRetailDemoModeService and RetailDemoModeServiceInternal to more\nappropriate new packages\n\nBug: 29519612\nChange-Id: Ib65f89ce61afab2d2f1b2dd0c761f5d35a466181\n"
    },
    {
      "commit": "c5ffdb9ee48905bacab0d5986d3eff2b399acd5e",
      "tree": "9b6c1462165857eea893ec30dc75c05447b8b667",
      "parents": [
        "337c7143644fd6980ef234191e01274804e0e7bb",
        "4f2b1b455e0f256ef9cb345d844ac89b6c3fd20c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Jun 16 00:24:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 16 00:24:14 2016 +0000"
      },
      "message": "Merge \\\"More thorough cleansing of expired users\\\" into nyc-dev\nam: 4f2b1b455e\n\nChange-Id: I5714f73a9b90c0cb8fee653abf799374acfc6232\n"
    },
    {
      "commit": "d04aaa323c3a788d26f18fc66e0a59b47e525b38",
      "tree": "e514dff2a79b0c0ed41022bc2c006040ecb0f79d",
      "parents": [
        "d5f7bf8032da639ee0286a6d121503fa2dfc4a4c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jun 13 12:09:36 2016 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 15 11:32:16 2016 -0700"
      },
      "message": "More thorough cleansing of expired users\n\nIf any /data/system_[c|d]e folders were not erased\nwhen the user was removed (maybe due to a reboot),\nmake sure they\u0027re cleaned up on restart as well\nas when the userId is recycled later.\n\nMark the users\u0027 system folders with the correct\nserial number for later verification.\n\nAccountManager shouldn\u0027t be querying accounts of\npartially created/destroyed users.\n\nChange-Id: I4313756b7464f34cd5ce4fb296d61daa50b41fcb\nFixes: 29285673\n"
    },
    {
      "commit": "9c7274c796df70906a38fcfb299b6113fb8e6cc9",
      "tree": "4f12c30706a4c0c5189c2dfab381b3b03c6777d4",
      "parents": [
        "a9b59e9cf25218e25583d01fb1161964e1a50a48"
      ],
      "author": {
        "name": "Michael Kwan",
        "email": "mkwan@google.com",
        "time": "Mon Jun 13 12:48:55 2016 -0700"
      },
      "committer": {
        "name": "Michael Kwan",
        "email": "mkwan@google.com",
        "time": "Mon Jun 13 13:23:28 2016 -0700"
      },
      "message": "Added customizable default system theme.\n\nBug: 29266591\nChange-Id: If0945abbda9e3560af5a6cdef394296b23c6de0c\n"
    },
    {
      "commit": "a5e81480b16e8cbf5a3c4f015b667893defb1456",
      "tree": "8256952f011a695bbb687d20cdf046de9dfa8352",
      "parents": [
        "0e6207ef406d1fad389a9831e6c8816b274ad2b5",
        "c4f1bc40326c10fde55f07230e3fe3067d70fbfa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 02 16:41:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 02 16:41:12 2016 +0000"
      },
      "message": "Merge \"Do not update packages in encrypted state\" into nyc-dev\nam: c4f1bc4032\n\n* commit \u0027c4f1bc40326c10fde55f07230e3fe3067d70fbfa\u0027:\n  Do not update packages in encrypted state\n\nChange-Id: I84c2c77fb8ff2cc12095f5217c6960a156f2faf3\n"
    },
    {
      "commit": "89c80bb631d51e2d9947e9e1ccbe328b971d2476",
      "tree": "a5269e793752734874c4eb11472ddad75df141bc",
      "parents": [
        "88be465ce572f84649e01744a7ec96b6346b3686"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 02 15:31:30 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 02 15:45:03 2016 +0100"
      },
      "message": "Do not update packages in encrypted state\n\nSystemServer used to run PMS.updatePackagesIfNeeded even when the\ndevice is booting in encrypted state only with core packages\navailable. This is redundant because the packages are prebuilts\n(OAT files always up to date) and the data partition is not mounted\nyet, so we are only wasting time opening the OAT files and testing\nchecksums. Additionally, the attempt to update these packages gets\nreported to TRON stats as time spent in the Optimizing Apps dialog\nand skews the results.\n\nThis patch does not call updatePackagesIfNeeded when in the device\nis in encrypted state.\n\nBug: 28833829\nChange-Id: I8641d07a8840948ffe261dfb8f99f70de7341972\n"
    },
    {
      "commit": "1abdeafbd9630b6cce031c7b89af45c28198a3f3",
      "tree": "68bcb9aa7d9dd183ed6b96dd4d5492f06c8fc50d",
      "parents": [
        "276f168f101f1653ba1a5519913f2bd151a25f01",
        "10ed7de7ae1ef1ac10b596c688182642acaca674"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed May 25 14:27:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 25 14:27:54 2016 +0000"
      },
      "message": "Merge \"Default system theme should be DeviceDefault\" into nyc-dev\nam: 10ed7de7ae\n\n* commit \u002710ed7de7ae1ef1ac10b596c688182642acaca674\u0027:\n  Default system theme should be DeviceDefault\n\nChange-Id: I0cdadd02499b071168ddcd26c5c1b93d4067fe9d\n"
    },
    {
      "commit": "a09c9e0fc48816096349aac8960a3b49101d90a3",
      "tree": "179a2d5a5a002c7e0e86f73eb666298cc6132d2e",
      "parents": [
        "74ebf3ec67ddbbf7752da120a57c4624d4e1655f",
        "cc30b0e7901f753fabbfa08f10d0b3f9b5a54144"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 24 02:24:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 24 02:24:50 2016 +0000"
      },
      "message": "Merge \"Adding RetailModeService to handle retail mode\" into nyc-mr1-dev"
    },
    {
      "commit": "cc30b0e7901f753fabbfa08f10d0b3f9b5a54144",
      "tree": "745dfcde2aa19a2ce8d7aff54e9114df0dce27d6",
      "parents": [
        "b0eab2351632558be4c7612d491964f3edc019ad"
      ],
      "author": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Fri May 20 14:41:22 2016 -0700"
      },
      "committer": {
        "name": "Suprabh Shukla",
        "email": "suprabh@google.com",
        "time": "Mon May 23 17:47:51 2016 -0700"
      },
      "message": "Adding RetailModeService to handle retail mode\n\nThe service listens for the global setting DEVICE_DEMO_MODE and switches\ndevice to demo mode when it is changed to 1. Also, acquires the wakelock\nto\nkeep the screen on and puts up a notification to wipe and reset the demo\nsession when in demo mode.\n\nBug: 27280140\nChange-Id: If1843016889ec2c50818c67432d60f33063e0986\n"
    },
    {
      "commit": "aab22cf455854ae2ab48e1b86752994eced93e94",
      "tree": "602f88f2c0c63c7be7e4eb03eebe1101766f7c29",
      "parents": [
        "5ee420c0d562e9ff55fe9bf03c746bc76fd40d5e"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon May 23 14:41:58 2016 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Mon May 23 14:41:58 2016 -0400"
      },
      "message": "Default system theme should be DeviceDefault\n\nBug: 28796004\nChange-Id: I33f9c064dd30d7fd96f06a8872765ddccf8a16a4\n"
    },
    {
      "commit": "2d92eeb4969b8ceed95074c6fdd10bd0228cd578",
      "tree": "796cf7c291304191fc856259fd99eb8bb2981ab8",
      "parents": [
        "085933cc8fa0b06d28161ddc001c20282012f263"
      ],
      "author": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Thu Apr 07 14:01:03 2016 -0700"
      },
      "committer": {
        "name": "Damien Bargiacchi",
        "email": "drb@google.com",
        "time": "Thu May 12 17:03:07 2016 -0700"
      },
      "message": "Start the Wear Time System Service with SystemServer\n\nBug: 27802041\nChange-Id: I7071536934e2285e8978e9c0d0a53d5d3c1c3017\n"
    },
    {
      "commit": "7bd0fdd639640f9ddffbffa6a117644134d8be30",
      "tree": "0e42eff63411ffbc1bed3c1df874f8764a3b604b",
      "parents": [
        "ccb85eb411f5df1c50e504d4acfc973e8cbb6835"
      ],
      "author": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Thu Apr 28 15:26:49 2016 -0700"
      },
      "committer": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Thu May 12 13:12:20 2016 -0700"
      },
      "message": "Pinner service for pinning files into memory\n\nPin key files into memory to prevent having to fetch from flash\nafter boot.  Improves system performance by preventing page cache\nthrash.  Retrieves files from a device-specific overlay to allow\nspecialization.\n\nbug 28251566\n\nChange-Id: I8532f52bd70271794dd7576976d13a524849ce7b\n"
    },
    {
      "commit": "b5b86c11008422ac4bf5af5fed736f04ebbaa858",
      "tree": "c7c0164182fb0672f82d83dbd4d64f70da2015e5",
      "parents": [
        "cffe389a22cf3f3d63ec37a591b0d6226e1db99e"
      ],
      "author": {
        "name": "Sujith Ramakrishnan",
        "email": "sujithrk@google.com",
        "time": "Thu Jan 28 16:53:16 2016 -0800"
      },
      "committer": {
        "name": "Sujith Ramakrishnan",
        "email": "sujithrk@google.com",
        "time": "Fri Apr 22 12:21:34 2016 -0700"
      },
      "message": "Unbundle RemoteService on TV - part 3\n\n- New service TVRemoteService triggered by SystemServer\n- Provider service proxy and watcher for maintaining connections to unbundled\n  services which have the BIND_TV_REMOTE_SERVICE permission.\n- Shared library to facilitate connections between unbundled service and\n  TVRemoteService.\n- Unbundled service needs TV_VIRTUAL_REMOTE_CONTROLLER\n  permission to be fully functional.\n\nb/23792608\n\nChange-Id: Ief5c6995883d1f7268a73bdd0c920c4c3f42cddb\n"
    },
    {
      "commit": "eef4a3d53cadaab782944923577d6aca7b7ba5c8",
      "tree": "ad50f776e472b1f0aa048d80d0c6dd16dda3504f",
      "parents": [
        "0529197e9df8837ac63b011937391ff29426e6b5"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 19 14:14:20 2016 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Tue Apr 19 14:14:20 2016 -0700"
      },
      "message": "Increase the max binder thread pool size for system_server.\n\nbug 28201939\n\nChange-Id: Iaade417a26247970b96f0aaacb3844d72de6399c\n"
    },
    {
      "commit": "aceda5b93a01a93c88fc37334ca03b2bb74c71e9",
      "tree": "714f0be87b949b5898aac69ed075b564cef4badb",
      "parents": [
        "a74888ddf6657b41aed28dff0b0b1d47a80f107f",
        "1cab76af8537a275d1af38d25f5692a68e48eed6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 13 04:40:17 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 13 04:40:18 2016 +0000"
      },
      "message": "Merge \"Make wallpapers direct-boot aware.\" into nyc-dev"
    },
    {
      "commit": "1cab76af8537a275d1af38d25f5692a68e48eed6",
      "tree": "4e82d43967c1a7014926bea98fa8399e59a7cd08",
      "parents": [
        "959586b9a9ca96a70c2232af0f99696a369d1b1d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 12 18:23:31 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Apr 12 21:15:50 2016 -0600"
      },
      "message": "Make wallpapers direct-boot aware.\n\nIf the user\u0027s wallpaper isn\u0027t direct-boot aware, wait around for\nthe user to be unlocked, instead of clearing the wallpaper.\n\nAlso switch a few classes to using SystemService lifecycle, since\nevents are dispatched faster than through broadcasts.  Fix bug where\nContentService.systemReady() was never called, and make sure\nEntropyMixer doesn\u0027t risk being GC\u0027ed.\n\nBug: 26280055\nChange-Id: I9fff468a439b868baa68cf11bb6ee9f7d52b7b5a\n"
    },
    {
      "commit": "d0989c986e7be4660e8fd91ce4bf066f2e168657",
      "tree": "835ccf3f844f35237b3a93bedc0df2f2d5e1760e",
      "parents": [
        "333c7d36008c43a45be9bde672b45218cb6dc707"
      ],
      "author": {
        "name": "Mitchell Wills",
        "email": "mwills@google.com",
        "time": "Sat Feb 20 00:09:12 2016 -0800"
      },
      "committer": {
        "name": "Mitchell Wills",
        "email": "mwills@google.com",
        "time": "Mon Apr 11 15:06:54 2016 -0700"
      },
      "message": "Update WifiScanningService class name to new location\n\nChange-Id: I48515b872341ea482c9e6c37e87ebaafea571d61\n"
    },
    {
      "commit": "b770ed132813356c2b1548b0a98c1edb565c7340",
      "tree": "483ee69ef7dd97de5b361fa1490034317177e27e",
      "parents": [
        "c05a7a04c22c836c49ea0e605247c0f35799a3dc",
        "dd251ef4952b6c7abbfe8cea49285d8cfe62f96e"
      ],
      "author": {
        "name": "Jeremy Joslin",
        "email": "jjoslin@google.com",
        "time": "Tue Apr 05 22:27:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 05 22:27:11 2016 +0000"
      },
      "message": "Merge \"Have the NetworkScoreService bind to the scorer.\" into nyc-dev"
    },
    {
      "commit": "dd251ef4952b6c7abbfe8cea49285d8cfe62f96e",
      "tree": "5f66221696a2b2712c1979db5b5eb637e49f50e6",
      "parents": [
        "a68fe1e4d3a34667e5948912c53290298388427b"
      ],
      "author": {
        "name": "Jeremy Joslin",
        "email": "jjoslin@google.com",
        "time": "Mon Mar 14 11:17:41 2016 -0700"
      },
      "committer": {
        "name": "Jeremy Joslin",
        "email": "jjoslin@google.com",
        "time": "Mon Apr 04 18:13:29 2016 -0700"
      },
      "message": "Have the NetworkScoreService bind to the scorer.\n\nIf the current active scorer provides a service that can handle the\nandroid.net.scoring.SCORE_NETWORKS action then the NetworkScoreService\nwill bind to that service to keep the scorer alive. If no service is\ndiscovered then no attempt to bind will be made.\n\nBUG: 27612145\nChange-Id: I3f6ed0cbd83e658f1533c3e37b0cac2692c01761\n"
    },
    {
      "commit": "a3ebfec731c2f1fcc67ecf58d4634e957b044cba",
      "tree": "2dc163770cc5042eb5cbdb2e29223104f21baa0e",
      "parents": [
        "7d718bb252fe2bdee0c9c728a1e6e4892deb8ac7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 04 08:58:04 2016 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 04 16:46:01 2016 -0600"
      },
      "message": "Invalidate caches when locale changes.\n\nWhen loading roots for the first time, we\u0027re okay using any cached\ndata from the system, but if the locale changes we need to\nforce-refresh everything.\n\nNow that we\u0027re always using the system cache, we have a nice strong\nsignal for \"empty\" versus \"not cached\" results, so we don\u0027t need to\nwait around for the first loading pass to finish.\n\nAdd logic to invalidate system cache when locale changes, and fix\nlocking bug.\n\nBug: 27977906\nChange-Id: Ic50083eff360bea887799583f6c9f02c129eec91\n"
    },
    {
      "commit": "b4e7b545a284fce4e863b7c6ed2018a265ec3bb2",
      "tree": "1ed7ec75ef62e31789f58516e980c2d64b7e3fd7",
      "parents": [
        "f0f919f19a6b442648048837c2ff3517f89853da",
        "ae4908f41c6e96c973a65effe1dfbb3d0fbbeba2"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Mar 31 21:04:09 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 21:04:10 2016 +0000"
      },
      "message": "Merge \"Remove DayNight theme\" into nyc-dev"
    },
    {
      "commit": "ae4908f41c6e96c973a65effe1dfbb3d0fbbeba2",
      "tree": "88c23502916958a0fd08dc0c61989a8f050a749c",
      "parents": [
        "ba25767b1b25bb7dac9c6753959bf3b4bcd877d3"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Mar 31 16:18:27 2016 -0400"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Mar 31 16:18:27 2016 -0400"
      },
      "message": "Remove DayNight theme\n\nBug: 21854466\nChange-Id: I739872112d0ae457d0d4620f9222206072d54b4b\n"
    },
    {
      "commit": "204902906894184487585dfef39da39939ba43c6",
      "tree": "ca9cb7956fe9424b66a3cf0c26c3c35981dba3dc",
      "parents": [
        "8f647b5cdb1f776dbc5d2127fe72a6cf40f95813",
        "48d3b63b60c1c0733ff80f30a6ca2bd2aebdef4d"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Thu Mar 31 16:47:50 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 16:47:52 2016 +0000"
      },
      "message": "Merge \"Start the Wear bluetooth service in SystemServer.\" into nyc-dev"
    },
    {
      "commit": "48d3b63b60c1c0733ff80f30a6ca2bd2aebdef4d",
      "tree": "79f57f7f3ce422482f1f2ffbd8ec9ac49b41606e",
      "parents": [
        "0b880795c12954f1b7818c78d6416d47f1df08dc"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Tue Mar 29 15:26:48 2016 -0700"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Thu Mar 31 09:44:41 2016 -0700"
      },
      "message": "Start the Wear bluetooth service in SystemServer.\n\nChange-Id: I4ca420d7adbb0edd6539fe4bf6ada05650164866\n"
    },
    {
      "commit": "840172ac1ecc514098d0cad41e009dab95542620",
      "tree": "0aa05bf4996311268e3020d307978c0235012525",
      "parents": [
        "92e1ea2383014390532c61afbc81773b8934ae48",
        "d8b81b344405c6a0c2dfccc229c892fb3d8e0d56"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 30 19:03:42 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 19:03:44 2016 +0000"
      },
      "message": "Merge \"Start MediaResourceMonitorService only when needed.\" into nyc-dev"
    },
    {
      "commit": "f5c444ffd4fdce4fab939fcd88f163288dc804c5",
      "tree": "0cb85f79cc62bbb85046dec6ca0b26213d3320f0",
      "parents": [
        "6b69b122025631290380f4350f7bd0074bad10dd"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 30 11:45:52 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 30 13:39:14 2016 +0100"
      },
      "message": "Move OTA package update before fstrim, hide \"Optimizing apps\" dialog\n\nThis patch moves the updating of packages before performing fstrim,\nwhich runs asynchronously anyway, and stops showing the UI dialog.\n\nBug: 27350503\nChange-Id: I6fceda10d7696f9badb97978fb9dc7927d698a4b\n"
    },
    {
      "commit": "a8213eebddb05ea714d0af90a7a7f42e3799a2c1",
      "tree": "8947357f19e57306a6ebf55e361bf99f86abbc28",
      "parents": [
        "80a67f363f6ae941c28572ea8420c14c2ce6ef79",
        "0a3e17325c9be835da66ea5548406a356f03dd5c"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Tue Mar 29 21:46:27 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 29 21:46:28 2016 +0000"
      },
      "message": "Merge \"Allowing AppWidgetService to start without FEATURE_APP_WIDGETS\" into nyc-dev"
    },
    {
      "commit": "d8b81b344405c6a0c2dfccc229c892fb3d8e0d56",
      "tree": "7f8312175a16dae5a3ab3606c5732fed02a48bfd",
      "parents": [
        "197823da52a44422890667e21c17c28ab76e64b7"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Mar 23 18:04:19 2016 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Mar 28 11:18:57 2016 -0700"
      },
      "message": "Start MediaResourceMonitorService only when needed.\n\nBug:26564748\nChange-Id: I5951008f403a11588dd84fb8dfc705c47bdca169\n"
    },
    {
      "commit": "d699cf80f9362534a08d03658f281eb2b5a47a59",
      "tree": "89a5c5887995583d92646a555d4167c08f26bcb3",
      "parents": [
        "03ebf5086a82ad0b29e02fbe3785ce255af92b14"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Fri Mar 25 16:32:10 2016 -0700"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Fri Mar 25 18:30:52 2016 -0700"
      },
      "message": "Move ThermalObserver to frameworks/opt/wear\n\nChange-Id: Ic681025a3210055b35d2af4af44418b7872fe743\n"
    },
    {
      "commit": "0a3e17325c9be835da66ea5548406a356f03dd5c",
      "tree": "86e269f65ed32e38d628a0acc1a4b1fed41fae09",
      "parents": [
        "61ad7ad7fd8932854c498884770810d2424ee7af"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Mar 25 17:24:57 2016 -0700"
      },
      "committer": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Mar 25 17:24:57 2016 -0700"
      },
      "message": "Allowing AppWidgetService to start without FEATURE_APP_WIDGETS\n\nBug: 26110877\nChange-Id: Ide402274af4067c530793f0d674821f1294c4195\n"
    },
    {
      "commit": "d136e51a99df5275eaafdde407e89e78c02b829b",
      "tree": "6f8489a5c9ac0280e04037c259e12a266fd16443",
      "parents": [
        "08e5936485a830ee80c4bf42a8402e1d13a783f9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 09 22:30:56 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Mar 16 14:45:26 2016 -0600"
      },
      "message": "Defuse Bundles parsed by the system process.\n\nIt\u0027s easy for apps to throw custom Parcelables into Bundles, but\nif the system tries peeking inside one of these Bundles, it triggers\na BadParcelableException.  If that Bundle was passed away from the\nBinder thread that delivered it into the system, we end up with a\nnasty runtime restart.\n\nThis change mitigates this trouble by \"defusing\" any Bundles parsed by\nthe system server.  That is, if it encounters BadParcelableException\nwhile unpacking a Bundle, it logs and delivers an empty Bundle as\nthe result.\n\nSimultaneously, to help catch the system process sticking its\nfingers into Bundles that are destined for other processes, a Bundle\nnow tracks if it\u0027s \"defusable.\"  For example, any Intents delivered\nthrough ActivityThread are marked as being defusable, since they\u0027ve\narrived at their final destination.  Any other Bundles are considered\nto be \"in transit\" and we log if the system tries unparceling them.\n\nMerges several Parcel boolean fields into a flags int.  Add better\ndocs to several classes.\n\nBug: 27581063\nChange-Id: I28cf3e7439503b5dc9a429bafae5eb48f21f0d93\n"
    },
    {
      "commit": "ac329d3e34e99e10243906d32cc4e36c626ac8ee",
      "tree": "b8e7282b2a200cade3752f87e1653bd6335f4c0b",
      "parents": [
        "bc2849449b3478d71cae34a069f07c70b747bbb8",
        "9ff7d2235427b211344fa58b608424805a21aa24"
      ],
      "author": {
        "name": "Ashutosh Joshi",
        "email": "ashutoshj@google.com",
        "time": "Wed Mar 16 17:21:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 16 17:21:33 2016 +0000"
      },
      "message": "Merge \"Exposing Context Hub service.\" into nyc-dev"
    },
    {
      "commit": "9ff7d2235427b211344fa58b608424805a21aa24",
      "tree": "8ece654606829d3128bd0698ef9e8db053975ef9",
      "parents": [
        "48653d225b964f4e62e5e94d98966826875dd99c"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Thu Feb 11 13:02:05 2016 -0800"
      },
      "committer": {
        "name": "Ashutosh Joshi",
        "email": "ashutoshj@google.com",
        "time": "Tue Mar 15 15:18:56 2016 -0700"
      },
      "message": "Exposing Context Hub service.\n\nAdding the Context hub service. This is the service that exposes\nthe context hub HAL to the system. The API exposed is a System API.\n\nChange-Id: I854141714ecd21f6386e6b15b7bc9a997483ccf6\n"
    },
    {
      "commit": "6aaabaef5634067c539a8e8f18d4662fc5b8723a",
      "tree": "cc30b0e2aa6ef9c7ae74a6f5b825d21e09971242",
      "parents": [
        "e2578e2d9ea968cf900814cc3d2e62e4cf476f3e"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Fri Mar 04 14:50:16 2016 -0800"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Tue Mar 15 13:24:12 2016 -0700"
      },
      "message": "The startup of the system services should be conditional.\n\nThe system services not used by Wear is tracked in go/ncwss\nb/26877020\n\nChange-Id: I45f77aecbdf4d4a54fef592d543e928b6a8cd6b9\n"
    },
    {
      "commit": "5504622fb01ab9774b5e73d05f86ee03a8b68ab7",
      "tree": "40883d6391f6c12e92169ed522ef0d256e96dc27",
      "parents": [
        "76cb56bb210a2ffeeda6294b8cde2dd971c495a7"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Mar 08 10:49:47 2016 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Mar 08 18:37:32 2016 -0800"
      },
      "message": "ShortcutManager: add remaining APIs.\n\n- Icons are now persisted. (under /data/system_ce, as PNGs)\n- the \"load icon\" APIs in LauncherApps are supported.\n- Implement updateShortcuts()\n\n- Addressed all the comments on the previous CL\n- @hide the newly added constructor for PersistableBundle\n\n- Enhance incoming shortcut validation\n- A lot of internal clean-up.\n\nBug 27548047\n\nChange-Id: I8e3c1ccd3e0a997a6d271c84d81170f0c022b60e\n"
    },
    {
      "commit": "ed58f5f0aa580dd4a6dc0fd5dc957862309db8d9",
      "tree": "1a7b303ecceee9078e036843f95846d86420ccd4",
      "parents": [
        "316b9ecdcf5a9cebe8e46cb0ae46dc81c35d4cb8",
        "6f7362d92573e4ae693bc513dca586d6a4eb087b"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Mar 08 18:01:03 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 08 18:01:05 2016 +0000"
      },
      "message": "Merge \"Introducing ShortcutManager\" into nyc-dev"
    },
    {
      "commit": "a6a152e7de2b6db73474620c1eccda1ebe2eee9b",
      "tree": "65e1ea38635e804ebd8548494f97d0126626bb54",
      "parents": [
        "77dd59fc2a0db94f0c58e17097fd6f07c1b5db8c"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Mon Mar 07 13:41:15 2016 -0800"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Mon Mar 07 13:41:15 2016 -0800"
      },
      "message": "Switch to SystemService lifecycle in TSMS.\n\nLike we did this for InputMethodManagerService [1],\nTextServicesManagerService (TSMS) needs to be recognized by\nSystemServiceManager with SystemService lifecycle mechanism so that we\ncan receive SystemService#onUnlockUser() event, which is necessary to\nmake TSMS encryption-aware.\n\nAs a preparation, with this CL we only does mechcanical migration to\nSystemService lifecycle mechanism in TSMS.  Hence no user-visible\nbehavior change should occur.\n\n  [1]: Ic17667df60b30e5355b61a3601ad27a000cab3a3\n       1e33dc8fdf3f722ecd32cc586b2a9515de24a242\n\nBug: 27456430\nChange-Id: Ib3cc799d384f259b4fa3f5295f2da198df015eb8\n"
    },
    {
      "commit": "6f7362d92573e4ae693bc513dca586d6a4eb087b",
      "tree": "447b82040ff02bfb73f2e4524051873de5ca1adb",
      "parents": [
        "b74926232ee601851e08cd5d0f0386afcb0bef3e"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Mar 04 13:39:41 2016 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Mar 04 15:24:49 2016 -0800"
      },
      "message": "Introducing ShortcutManager\n\nWhat\u0027s supported:\n- Most APIs are implemented, except for SM.updateShortcuts(),\nthe icon APIs in LA, and LA.startShortcut().\n- Persisting information, except for icons\n- Throttling\n\nIn addition, now PersistableBundle has a public copy\nconstructor from a Bundle. (Do we want to @hide it?)\n\nTODOs:\n- Add icon support\n- Implement missing APIs\n- Listen to PACKAGE_* broadcasts and do clean-up\n- Support multi-launcher apps (pinned shortcuts per launcher)\n- Dev option to reset throttling\n- Load throttling config from Settings\n- Backup \u0026 restore\n- Figure out LauncherApps permissions (BIND_APPWIDGETS??)\n- Other minor TODOs in the code\n- Better javadoc\n\nNote: This requires Idf2f9ae816e1f3d822a6286a4cf738c14e29a45e\n\nBug 27325877\n\nChange-Id: Ia5aa555a4759df5f79a859338f1dc5e624cd0e35\n"
    },
    {
      "commit": "abcbe2f62e6278d8aeb0b8c302d23aeae59899d4",
      "tree": "558200ea2ea3d5155ebc21d0a0a6fb161a4e8158",
      "parents": [
        "7854d58392738338a71506ceb81dad2b5a4656e7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 26 11:25:36 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 03 13:15:59 2016 -0800"
      },
      "message": "Frameworks/base: OtaDexopt needs to move artifacts on boot\n\nMake OtaDexoptService a bootstrap service. It needs to start\nimmediately after the PackageManagerService so that it can move\nA/B artifacts into their new place.\n\nAdd a method to Installer for the move.\n\nBug: 25612095\nChange-Id: Idcf759b3c947088b416d54d2fa269ef27daf93ab\n"
    },
    {
      "commit": "e3f400de602d257a921ceb5e36c915a6ac3e79bf",
      "tree": "4a87a0181b90d07e11ea442cc83f875a07063101",
      "parents": [
        "e83cd6147be45afd57722e414239d2dd15e257c0",
        "32af07acec86d6aa12fe00b4c92c124bb7b490d3"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Mar 02 18:18:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 02 18:18:37 2016 +0000"
      },
      "message": "Merge \"Added dump method to NetworkTimeUpdateService\" into nyc-dev"
    },
    {
      "commit": "32af07acec86d6aa12fe00b4c92c124bb7b490d3",
      "tree": "fead5af3cc309ad1758419cd8f9c75c8c42167c6",
      "parents": [
        "0601a1c6701aafca16c0e1c65962fe00d256e624"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Feb 26 16:54:25 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Feb 26 16:54:25 2016 -0800"
      },
      "message": "Added dump method to NetworkTimeUpdateService\n\nBug: 23983739\nChange-Id: I98f175f438793f6478d5995d88ae127a5a6c1bda\n"
    },
    {
      "commit": "c7db48b0ca7915a8473ea33cfa7a2eea726d64a6",
      "tree": "53e16790df425d456053e5782fbebfacde204ae5",
      "parents": [
        "f72ecded696ff3145a9ee710e3ff4aeebb8aa1c5"
      ],
      "author": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Thu Feb 25 13:42:45 2016 +0000"
      },
      "committer": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Thu Feb 25 13:49:26 2016 +0000"
      },
      "message": "Don\u0027t run WebView-preparation during an encryption boot phase.\n\nWhen a device is booting up in an encrypted state WebView won\u0027t find the\npackages needed for loading WebView and might thus try to use incorrect\nwebview packages. This in itself might cause us to incorrectly change\nthe webview provider setting but also causes us to crash the system\nserver if we try to enabled/disable a package that cannot be seen by the\npackage manager.\n\nBug: 27353062\nChange-Id: I9349778506e8bec1c56b9b786fe4ed15c7c3260d\n"
    },
    {
      "commit": "1142b2654ae36b54a61bfe759f2f43a01532ae93",
      "tree": "c6bbf2390084f2417b22e576ddc31cfc9bf82de3",
      "parents": [
        "6831e8ea7601c506b1e8c61021fecfffa9cb183e",
        "51e4acb29d87fafc0d790fadfd31d0c1410521f5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 24 15:06:39 2016 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Feb 24 15:19:15 2016 +0900"
      },
      "message": "resolve merge conflicts of 51e4acb29d to nyc-dev\n\nAlso add the appropriate changes to api/test-current.txt, which\nis not present on mm-wireless-dev from which this change came.\n\nChange-Id: Ic4df6d0f89add73b7e5252ef662de07a4e8fce31\n"
    },
    {
      "commit": "02b3e6bfc5bbd5f1a8ce1ce68976e59142073b6f",
      "tree": "e9bf6c3b4950f505dbe982778da99c2c3cf20cb3",
      "parents": [
        "efa4209fe022d007f48edc3c4feaef00a9865cb5"
      ],
      "author": {
        "name": "Pavel Zhamaitsiak",
        "email": "pavelz@google.com",
        "time": "Wed Feb 03 10:39:44 2016 -0800"
      },
      "committer": {
        "name": "Pierre Imai",
        "email": "imaipi@google.com",
        "time": "Tue Feb 23 17:32:53 2016 +0900"
      },
      "message": "Add Connectivity Metrics Logger service\n\nThis service can be used to pass events to metrics collection service\n\nChange-Id: I213874300693cd121f2c8676f70893315de4c4c0\n"
    },
    {
      "commit": "9de7952aa945eb06148f82b9f30d7d11a2de5d74",
      "tree": "508cb88196232ec0cf6cd0855f47452f1b0b350f",
      "parents": [
        "ffd4c73a293ebac22efa644db99ba907f9776604",
        "e8a403d57c8ea540f8287cdaee8b90f0cf9626a3"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Mon Feb 22 19:24:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 19:24:25 2016 +0000"
      },
      "message": "Merge \"Add support for update-on-boot feature.\" into nyc-dev"
    },
    {
      "commit": "280c5b2155feae857ad514dff81adbfe73e398e9",
      "tree": "0c55aab42d223c1e08bf0a2b476889c56ee5df85",
      "parents": [
        "adc49e8fd59005a10df294d46c022563257eb942",
        "f8754ac2127f8adf40bd4731f39b16340acdb2f7"
      ],
      "author": {
        "name": "Polina Bondarenko",
        "email": "pbond@google.com",
        "time": "Mon Feb 22 09:27:20 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 09:27:21 2016 +0000"
      },
      "message": "Merge \"Added hardwareproperties SystemService\" into nyc-dev"
    },
    {
      "commit": "e8a403d57c8ea540f8287cdaee8b90f0cf9626a3",
      "tree": "13d471ba15c34ba265de9393e09b376a4b61a11f",
      "parents": [
        "ea168d229d316c84652e88ad0f19adbaa884d731"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Dec 31 07:44:55 2015 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Fri Feb 19 11:31:45 2016 -0800"
      },
      "message": "Add support for update-on-boot feature.\n\nAdd a separate system service RecoverySystemService to handle recovery\nrelated requests (calling uncrypt to de-encrypt the OTA package on the\n/data partition, setting up bootloader control block (aka BCB) and etc).\n\nWe used to trigger uncrypt in ShutdownThread before rebooting into\nrecovery. Now we expose new SystemApi (RecoverySystem.processPackage())\nto allow the caller (e.g. GmsCore) to call that upfront before\ninitiating a reboot. This will reduce the reboot time and get rid of the\nprogress bar (\"processing update package\"). However, we need to reserve\nthe functionality in ShutdownThread to optionally call uncrypt if\nfinding that\u0027s still needed.\n\nIn order to support the update-on-boot feature, we also add new\nSystemApis scheduleUpdateOnBoot() and cancelScheduledUpdate() into\nandroid.os.RecoverySystem. They allow the caller (e.g. GmsCore) to\nschedule / cancel an update by setting up the BCB, which will be read by\nthe bootloader and the recovery image. With the new SystemApis, an\nupdate package can be processed (uncrypt\u0027d) in the background and\nscheduled to be installed at the next boot.\n\nBug: 26830925\nChange-Id: Ic606fcf5b31c54ce54f0ab12c1768fef0fa64560\n"
    },
    {
      "commit": "f8754ac2127f8adf40bd4731f39b16340acdb2f7",
      "tree": "efc225657092e25fc0d9ac50e5e5ac78d8eaa61d",
      "parents": [
        "5393a6605f0ffd7f5e1e7e080c414096d6b0db2a"
      ],
      "author": {
        "name": "Polina Bondarenko",
        "email": "pbond@google.com",
        "time": "Fri Feb 12 20:38:23 2016 +0100"
      },
      "committer": {
        "name": "Polina Bondarenko",
        "email": "pbond@google.com",
        "time": "Fri Feb 19 18:24:29 2016 +0100"
      },
      "message": "Added hardwareproperties SystemService\n\nAdd HardwarePropertiesManagerService which call native methods to\nget CPU, GPU, battery temperatures, CPU usage info, fan speeds.\nRestrict hardware properties retrieval only for device and profile\nowners.\n\nBug: 26945055\nChange-Id: I4d6b30b78e575532d5e9cfa59ef6cd81355439d4\n"
    },
    {
      "commit": "cd42acd9515bdce89d4f1401ee2888d684bf1918",
      "tree": "6c94609f6bbf2c6808409ab07c3490fe10881b6d",
      "parents": [
        "c86f234c51ebcb78164d850177eb2143112f9f65"
      ],
      "author": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Wed Feb 17 13:03:38 2016 -0800"
      },
      "committer": {
        "name": "Antonio Cansado",
        "email": "acansado@google.com",
        "time": "Wed Feb 17 18:43:53 2016 -0800"
      },
      "message": "Implementation of data usage callbacks.\n\nNetworkStatsService will register data usage requests\nand keep data usage stats scoped to the request.\n\nThere are different types of data usage requests\n- scoped to a set of NetworkTemplate; these are restrictred to\ndevice owners and carrier apps and allow the caller to monitor\nall activity on the specified interfaces.\n- scoped to all uids visible to the user, if the user has\nandroid.Manifest.permission#PACKAGE_USAGE_STATS permission.\nThe set of uids may change over time, so we keep track of that.\n- scoped to a set of uids given by the caller, granted that\nthe caller has access to those uids.\n- scoped to the caller\u0027s own data usage. This doesn\u0027t require\nPACKAGE_USAGE_STATS.\n\nBug: 25812785\nChange-Id: Ie11f35fc1f29d0dbe82f7fc924b169bb55c76708\n"
    },
    {
      "commit": "f0a9d699feb9699979e8e64ef0dd909567890aa5",
      "tree": "cdc261e3399d002e17ca2526a8cfdc141234fd2b",
      "parents": [
        "342d93a90772cff55f1c444828aa01303796e9c1",
        "eac5a80775b683eb4da5b45cfcb053f662d9678f"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Thu Feb 04 23:42:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 23:42:49 2016 +0000"
      },
      "message": "Merge \"DO NOT MERGE ANYWHERE Start the FingnerprintService only if it has FEATURE_FINGERPRINT.\""
    },
    {
      "commit": "9086b10d6b2c018495ccbcabc049e1e6648a7de9",
      "tree": "9ce4e3516162ef16157efab14d2ef60c9e1eee8d",
      "parents": [
        "5650c523d664de84363441470cbf2aef7ecb139f"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Wed Feb 03 16:57:31 2016 -0800"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Thu Feb 04 18:24:34 2016 +0000"
      },
      "message": "DO NOT MERGE ANYWHERE Put the start of RttService behind a flag.\n\nWe can set config.disable_rtt in the init script to disable the\nRttService.\n\nb/26877020\n\nChange-Id: Ifb7fedc4764329dc09cae41f06bf6d5fc7426e5f\n(cherry picked from commit c47749f9908b5d98397379fb3bf80d330f9c8283)\n"
    },
    {
      "commit": "eac5a80775b683eb4da5b45cfcb053f662d9678f",
      "tree": "d7a19a42c0617fcd17bf883c2ae0d246b21a918d",
      "parents": [
        "37c80bc984790721777d0fd770060ee8262b6b55"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Wed Feb 03 14:31:37 2016 -0800"
      },
      "committer": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Thu Feb 04 18:06:38 2016 +0000"
      },
      "message": "DO NOT MERGE ANYWHERE Start the FingnerprintService only if it has FEATURE_FINGERPRINT.\n\nb/26877020\n\nChange-Id: Idfef31edb7e67ae60c1b2205df326ed1c5657618\n(cherry picked from commit aae35640cd4e08186c01875e8d14962258e3d365)\n"
    },
    {
      "commit": "a89087542f774c585b6a6ec535fc294721710521",
      "tree": "ab18bd82a959dfd0afd2a8d1faba998435c56b2c",
      "parents": [
        "e909d94e03e2bd3eba0bb47b6295ae0bf6538c31"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 10 08:58:14 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 01 15:38:21 2016 -0800"
      },
      "message": "Frameworks/base: Add A/B OTA preopting\n\nAdd an OTA Dexopt service. Refactor package manager service and\npackage dex optimizer to reuse some code. Add knowledge about\nOTA flag to installer.\n\nBug: 25612095\nChange-Id: I7dd6bb468fea44b9d3acf0ac7d7404fb02d0f30a\n"
    },
    {
      "commit": "4f93c58b393bad5d0bcc4237fa66f14fb9c9ee28",
      "tree": "85ae8fa0f8d2896f0d4efdef184a3bca2623c067",
      "parents": [
        "8af734b80a44c8ec8775e1adbd2955b38a184564"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 27 19:05:43 2016 -0800"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jan 27 20:27:42 2016 -0800"
      },
      "message": "Add account locked notification when users are encrypted\n\nFixes bug 26407543\n\nChange-Id: Ic66669cd5f75b5fa41449e33133439752cef112b\n"
    },
    {
      "commit": "a35b5539a95342799a18e95616c5e5751a198e4c",
      "tree": "fd49973b9fada0decd7c1743e8b39c54d3b47588",
      "parents": [
        "df6c8d0bc0073ebf1aa98ea26e1da93008b7c467"
      ],
      "author": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Wed Jan 20 00:05:45 2016 -0800"
      },
      "committer": {
        "name": "Peng Xu",
        "email": "pengxu@google.com",
        "time": "Wed Jan 27 16:37:22 2016 -0800"
      },
      "message": "Dynamic Sensor Discovery Implementation\n\nDefined the dynamic sensor meta data type and UUID of sensor, as well\nas the broadcast intent that is related to dynamic sensor status\nchange.\n\nModify SensorManager, SystemSensorManager and the JNI layer to support\ndynamic sensor discovery.\n\nAdded SensorNotificationService to notify apps that sensor connected\nor disconnected via broadcast.\n\nChange-Id: I28adfb005357d7e3983d65117d6865830c75027d\n"
    },
    {
      "commit": "a772e5fc062c8de48cb9c1d61755110f6b2e189b",
      "tree": "3ee387dd521a8d8d6c3bbc8841542ca07a5078aa",
      "parents": [
        "5c461fc36d79d13b037ef928beb38fdb64e94057"
      ],
      "author": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Mon Jan 25 10:33:11 2016 -0800"
      },
      "committer": {
        "name": "Arunesh Mishra",
        "email": "arunesh@google.com",
        "time": "Wed Jan 27 12:49:20 2016 -0800"
      },
      "message": "SoundTrigger API improvements.\n\nThis CL implements the SoundTrigger API improvements as given in b/22860713. Only the java-level\nparts are implemented in this CL.\n\nKey changes include:\n\n* Addition of a SoundTriggerManager/SoundTriggerDetector system API to manage\n  the sound-trigger based sound models.\n* Addition of a SoundTriggerService service that manages all sound models\n  including voice (keyphrase) and sound-trigger based models.\n* Includes logic to write sound-trigger based models to the database.\n* VoiceInteractionManager service now uses SoundTriggerService instead of\n  SoundTriggerHelper.\n\nBug: 22860713\nChange-Id: I7b5c0ed80702527c4460372efeb5e542d3693a69\n"
    },
    {
      "commit": "aae84105d1b8cfe6144afbb82bc70481cb39f8c8",
      "tree": "b88cc7a9260362da18b514a027c6de18c5347463",
      "parents": [
        "2e98a11055015ecacd12d71b0ed553c13c7b00ef",
        "1e33dc8fdf3f722ecd32cc586b2a9515de24a242"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 22 18:21:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 18:21:15 2016 +0000"
      },
      "message": "Merge \"Use SystemService lifecycle API in input method service\""
    },
    {
      "commit": "1e33dc8fdf3f722ecd32cc586b2a9515de24a242",
      "tree": "996646e6c060ecfeeeb65d0d44cceb1f28ed3ef8",
      "parents": [
        "bcd2b7179afb2028eb7402467de42c4a9a2b13cb"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Jan 21 12:02:58 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Jan 21 12:06:11 2016 -0800"
      },
      "message": "Use SystemService lifecycle API in input method service\n\nChange-Id: Ic17667df60b30e5355b61a3601ad27a000cab3a3\n"
    },
    {
      "commit": "a0e10434c49c6fe075e853da2046fd281318c4c4",
      "tree": "01f77c748877214426e95cfabc74bc01c8fd63e4",
      "parents": [
        "88f04309806ec9964235e02543c7e2dbd18d6b8a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 20 14:04:40 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 21 09:36:12 2016 +0000"
      },
      "message": "Extract APKs on install or OTA\n\nART will unzip APKs in memory during launch if an OAT file is not\npresent. To save the time and memory, this patch will invoke dex2oat\nwith \u0027--compiler-filter\u003dverify-at-runtime\u0027 to unzip the APK during\ninstall or after an OTA.\n\nChange-Id: I16583f9450ad60356123a29f7a6a649b2ab9999f\n"
    },
    {
      "commit": "370f0fedf59ef3ad15ad76a3e424aa0a0e6130f7",
      "tree": "23e36fa7022d206e02486b57beee965f3065e4fa",
      "parents": [
        "0b23389fc7ae47597bb56563f4ce909c80818d67",
        "4fd6c26410cd210a7948f94407d9b2f551badbdc"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Thu Jan 21 00:27:39 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 21 00:27:39 2016 +0000"
      },
      "message": "Merge \"Stop rebooting into recovery if uncrypt fails.\""
    },
    {
      "commit": "4fd6c26410cd210a7948f94407d9b2f551badbdc",
      "tree": "15550bde8bb7300b69511a168710182a5dc8441c",
      "parents": [
        "a0b16caf88f06189daaf4ded007c46db0dae5fe5"
      ],
      "author": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Jan 19 14:22:24 2016 -0800"
      },
      "committer": {
        "name": "Tao Bao",
        "email": "tbao@google.com",
        "time": "Tue Jan 19 14:33:40 2016 -0800"
      },
      "message": "Stop rebooting into recovery if uncrypt fails.\n\nuncrypt needs to be called when an OTA package sits on /data. If uncrypt\nfails or gets skipped (likely due to unexpected runtime restart during\nthe reboot), we should abort the rebooting. Because otherwise a) it\nwould fail for sure when reboots into recovery; b) useful logs would be\ngone once it reboots.\n\nBug: 26444951\nChange-Id: Ic3bc682b03f003f197e277ed6b6886e85f364754\n"
    },
    {
      "commit": "7bdf3cff92d26f9a4a8b88f816f5313fe02d6a33",
      "tree": "4e4ae802c00c08f0804563ac72dc9c8fa727a800",
      "parents": [
        "4752ab714dc721c2f17a8104cc327e1c711a2640",
        "db4a79a5d7d348e9d2286d95d4e5a59dd484456f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 19:51:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 19:51:51 2016 +0000"
      },
      "message": "Merge \"Enable profile guided compilation on the framework side\""
    },
    {
      "commit": "db4a79a5d7d348e9d2286d95d4e5a59dd484456f",
      "tree": "6a13c648ce3054f50022131d740e9b91b93bc5a7",
      "parents": [
        "e53e428a7efd624459961da3f932b408f896453b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 23 18:55:08 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 11:44:27 2016 -0800"
      },
      "message": "Enable profile guided compilation on the framework side\n\nThe background compilation service will trigger a profile based\ncompilation instead of a full one. If no profile information is\navailable the compilation is skipped (see installd).\n\nNote that the end decision whether or not to compile a package is taken\nby dext2oat. We can\u0027t make the decision here because this service runs\nunder system server which cannot read app\u0027s profile data.\n\nBug: 26080105\nChange-Id: I457ea8dea0557839c1f7cdc241770055732b0a4a\n"
    },
    {
      "commit": "3da7357951a1981ecf40391e19ad8e53b45cb046",
      "tree": "cfc394e8b0a0137a3a7203827c7248c718a7cb3c",
      "parents": [
        "f1fc5a0fe802f8cbf477b1ef54b25127818e091d",
        "e540b64aaf58460f7930a5e4937cee660215c948"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Fri Jan 15 01:29:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 15 01:29:48 2016 +0000"
      },
      "message": "Merge \"NAN: baseline NAN manager for discovery.\" into mm-wireless-dev\nam: e540b64aaf\n\n* commit \u0027e540b64aaf58460f7930a5e4937cee660215c948\u0027:\n  NAN: baseline NAN manager for discovery.\n"
    },
    {
      "commit": "20d329b08df7d1a94e6caee781f09e812a79c913",
      "tree": "d20d232df7945b7cfbfa5f8950317017e45bd625",
      "parents": [
        "4a4345b681f430bc76bed964eb3d4d569539130e"
      ],
      "author": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Tue Sep 29 13:49:02 2015 -0700"
      },
      "committer": {
        "name": "Etan Cohen",
        "email": "etancohen@google.com",
        "time": "Thu Jan 14 11:34:07 2016 -0800"
      },
      "message": "NAN: baseline NAN manager for discovery.\n\nInitial framework for user API (all @hide for now). Supports:\n- NAN configuration\n- Publish/Subscribe \u003d Discovery\n- Message passing\n- Notifications\n\nBug: 26216681\nChange-Id: I72e467756a02f7b80c52fae916b9a47c8174af42\n"
    },
    {
      "commit": "57c54f25d8bbe976b7ed80a5a8ec5ba8584587f5",
      "tree": "701398eae3ea03aee61cff5502ba03d2f6f94924",
      "parents": [
        "768464c6c356f4d1ba1a7eaa74c13c937be863be"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 14 10:10:22 2016 -0800"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jan 14 10:11:43 2016 -0800"
      },
      "message": "MediaResourceMonitorService: Lift the condition for launching\n\nBug:26548364\nChange-Id: If10a8b1c4b2dcdcdab16c9dcc899d37af1224505\n"
    },
    {
      "commit": "ab064b3b3687424e14dccfd60ff9a8f93ec22c23",
      "tree": "51d153de4606a90f3beac1ea6a419304d2ae6fc9",
      "parents": [
        "4fce66668e45429bbba49b9fb35d3b8d095a466c",
        "2034a4c4c5edd1516d03b73a8c8d8600eb3d4cbc"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed Jan 13 18:21:00 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 13 18:21:00 2016 +0000"
      },
      "message": "Merge \"Add a way for SystemUI to receive media resource (e.g. A/V codec) usage\""
    },
    {
      "commit": "2034a4c4c5edd1516d03b73a8c8d8600eb3d4cbc",
      "tree": "592461a4450513754af35173ab23bbd378e7dc0a",
      "parents": [
        "d68cc200ec2f420df0c9c0e67628e7bf2e47e2d6"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Mon Dec 14 21:57:34 2015 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Jan 12 10:54:34 2016 -0800"
      },
      "message": "Add a way for SystemUI to receive media resource (e.g. A/V codec) usage\n\nBug: 26175834\nChange-Id: If506a533c5c7b567e770217a9430bf68b539677a\n"
    },
    {
      "commit": "4175be2f4e1e27490f38c387525d0c0cba88b47b",
      "tree": "e6fa152fab6bc0a4314d1489c97cbda7bf006239",
      "parents": [
        "5aa86938b8b50a20830bc3d608321fc4c0afb0e8"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Jan 09 14:57:45 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Jan 09 14:57:47 2016 -0700"
      },
      "message": "Triage SearchManagerService for missing apps.\n\nSearchables aren\u0027t available until after the user is unlocked.  We\ncould scan for them while locked, but we\u0027re aiming for a minimalist\nenvironment, and scanning them while locked would require us to send\na changed broadcast on every boot.\n\nSwitch to using new SystemService lifecycle for faster event\ndelivery.  Restore broken global search observer.  Verified that\napps on external storage are handled correctly.\n\nBug: 26471205\nChange-Id: Id99ffe2ea6db37a394454cc7dfa4eab10280ff35\n"
    },
    {
      "commit": "2f3e35376ada0327b34a71d7c45ac6e6d955d7dc",
      "tree": "fc5fa5133632d5c20750c869108cffe05d03704d",
      "parents": [
        "154a01ec81e595c178a4a56eb019c3af2b43a3f2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Dec 21 14:16:43 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jan 04 13:19:02 2016 -0700"
      },
      "message": "More work towards triaging missing app behavior.\n\nMany places across the platform query package details without\ngracefully handling packages or components that go missing for\nvarious reasons.  This can cause annoying user data loss, such as\nresetting back to built-in apps or dropping of accounts, etc.\n\nThis change verifies that system callers have thought about these\nedge cases by logging if they use default matching behaviors without\nexplicitly marking themselves as being \"triaged.\"  (The logging is\ncurrently disabled by default.)\n\nAlso creates explicit definitions of supported flags for various\nincoming PackageManager calls, and defines a clear distinction\nbetween flag types:\n\n-- GET-style flags are used to request additional data that may have\nbeen elided to save wire space.\n\n-- MATCH-style flags are used to include components or packages that\nwould have otherwise been omitted from a result set by current system\nstate.\n\nThere are a handful of existing GET flags that better fit under the\nMATCH definition, so this change clones them to new constants and\nmarks the old ones as deprecated.\n\nFixes bug in JobSchedulerService to consider jobs from apps on\nexternal storage.  Revert some dialer behavior back to being\nuntriaged.\n\nChange-Id: I9b6ab0968241e3479bddbd78de0c51e3b9917318\n"
    },
    {
      "commit": "2a9e3f8e6813716ab88ca54fd04ae047dc9aaaeb",
      "tree": "2c320da3107bcf005afd2f501b0225ecc42b5aa7",
      "parents": [
        "5b0e5207e1b2de9fd533fa444b8d9a0acadd1513"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Dec 18 10:57:58 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Dec 19 15:00:09 2015 -0700"
      },
      "message": "Better named encryption flags, start triaging.\n\nCreate distinct flags for encryption aware, unaware, and both, and\nname them like the other MATCH_ flags.\n\nStart adding logic to help triage all system internal callers to\nverify that they\u0027ve done their homework and thought about how to\nhandle apps while locked.  Call sites in the system should either\nask for explicit matching behavior, or explicitly use the DEFAULT\nmatch flag to indicate that they\u0027ve been triaged to use the\ndefault state-based matching.\n\nBug: 26250295\nChange-Id: I86214e5c4f71a6dc72f06930800388713aecd107\n"
    },
    {
      "commit": "dd18a0b69537954d1cc34929a1386deb54f12b14",
      "tree": "aa6d314a928ca9d179e6c284afe986d080c4ef7e",
      "parents": [
        "bf0bbc8742b54c2dfd842b730e8e2ec0ba7daa84"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Dec 04 16:16:31 2015 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Dec 17 10:09:17 2015 -0800"
      },
      "message": "Add a framework service tracking VR mode state.\n\n- Implement a \"VR mode\" that may be enabled by a focused Activity.\n- Add a system service that tracks the current VR mode state and notifies\n  other core framework services of mode changes.\n- Extend NotificationListenerService to allow the bind/unbind lifecycle\n  of specified listeners to be triggered by system events.\n\nBug: 22855417\nBug: 25479708\n\nChange-Id: I1ac8692bbb5521bb6c7cfb9d2b56b98b720f8568\n"
    },
    {
      "commit": "ba398eaafefbc6d496686077e88da9d695b13bbc",
      "tree": "8d891d256cd5c0735c1ac49d05f648fe6b0885b2",
      "parents": [
        "eb2094ce24a329dee438870782a8940fbbdba4c4"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Dec 16 15:28:23 2015 -0500"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Dec 16 15:28:23 2015 -0500"
      },
      "message": "Remove DayNight themes from public API (again)\n\nBug: 22628106\nChange-Id: Id55c9e626813c70671a93aedf8b1e0cdaed45ec1\n"
    },
    {
      "commit": "6258dcd7ea5450726bc7bcb1fbd50e99f62f38fb",
      "tree": "308b291a3efe64c45e9d8eae804fe79e5977540a",
      "parents": [
        "752b070e327f3a7a1538c702566a251636dc806d"
      ],
      "author": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Fri Oct 30 19:25:37 2015 +0000"
      },
      "committer": {
        "name": "Gustav Sennton",
        "email": "gsennton@google.com",
        "time": "Fri Dec 11 14:29:44 2015 +0000"
      },
      "message": "Add functionality for changing WebView provider.\n\nMake it possible to change WebView provider (through a Developer\nsetting) and kill all apps using the old provider.\nThis includes checking the signatures of the WebView providers to make\nsure they are valid.\n\nNow that we can change WebView provider through a setting it is possible\nto change provider while some provider is being updated. Because of this\nwe now keep track of which provider should be in use in\nWebViewUpdateService to make sure we use the correct provider at all\ntimes.\n\nWe now also read WebView package meta data (name, package name, and\nsignature) from a separate xml file.\n\nMain bug: crbug.com/546185\n\nBug: 25338573\n\nChange-Id: I660fd1a40a5388f6569a06a7f0d029e8ff65945a\n"
    },
    {
      "commit": "6714030083b1d8ec5b2df6dfef08034d0d30c2fe",
      "tree": "91d98898b3c707d8327a0f67814b917b8ebd8060",
      "parents": [
        "8366fdd6a82b7887bb8227e7d209175c8a9dcb0c"
      ],
      "author": {
        "name": "Jack Yu",
        "email": "jackyu@google.com",
        "time": "Thu Dec 10 12:27:58 2015 -0800"
      },
      "committer": {
        "name": "Jack Yu",
        "email": "jackyu@google.com",
        "time": "Thu Dec 10 12:27:58 2015 -0800"
      },
      "message": "merge from master\n\nChange-Id: Ic03669db3f4595336a7dbc13ffc77d055d11acf9\n"
    },
    {
      "commit": "27c073796978106746e4a51f2100b29068ab37f6",
      "tree": "5626bb389b178d3a1806a28919a949c05e34ce57",
      "parents": [
        "a22d77e24737b785a33987647758cd3c1db85527"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 16:54:09 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 11 12:19:08 2015 +0000"
      },
      "message": "Remove performBootDexOpt and am\u0027s ensurePackageDexOpt.\n\nExcept common shared libraries and boot image, all compilations\nare now done through BackgroundDexOptService.\n\nChange-Id: Ib736e253c38b0c8085bc94e45f4e61a048f66e26\n"
    },
    {
      "commit": "e1aef85ff100c1beba215add2ff3238a4032c6ba",
      "tree": "6f3b9bbb82682230a2b2cbe71e7b3ae4991e5848",
      "parents": [
        "446433da24b7cfb7e7625675bb9dc4e17b05f3ba"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Oct 15 17:28:35 2015 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Oct 15 17:28:35 2015 -0700"
      },
      "message": "Use the SystemService lifecycle mechanism for AudioService\n\nThis will be needed to refactor user restriction handling.\n\nChange-Id: I4b77a020d631714e7f94bce5559190e3b78ec72c\n"
    },
    {
      "commit": "535570a7ce8fac764a45a603856d664227dba8c1",
      "tree": "a5ba080d1d2b5c1774f430840454103704a24195",
      "parents": [
        "0066b7b8d0b08514a405d70ff1dcf26d46a8874d",
        "979a22eaf9c62637c02ebd6f92ef6ea2888aa5be"
      ],
      "author": {
        "name": "Bryce Lee",
        "email": "brycelee@google.com",
        "time": "Sun Sep 27 15:11:22 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 27 15:11:22 2015 +0000"
      },
      "message": "am 979a22ea: am 6ad696c3: am f0740e0a: Merge \"Add ThermalObserver system service to capture thermal state uevents.\" into cw-e-dev\n\n* commit \u0027979a22eaf9c62637c02ebd6f92ef6ea2888aa5be\u0027:\n  Add ThermalObserver system service to capture thermal state uevents.\n"
    },
    {
      "commit": "979a22eaf9c62637c02ebd6f92ef6ea2888aa5be",
      "tree": "2ee06d6dae9d34f648335092f77c179a9572c1b1",
      "parents": [
        "7e9f6fbf0fce5de5bb6506d3e5a2342d5e942ded",
        "6ad696c35b80f70f19de304b53bdbfc6f5a265d8"
      ],
      "author": {
        "name": "Bryce Lee",
        "email": "brycelee@google.com",
        "time": "Sat Sep 26 06:55:22 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Sep 26 06:55:22 2015 +0000"
      },
      "message": "am 6ad696c3: am f0740e0a: Merge \"Add ThermalObserver system service to capture thermal state uevents.\" into cw-e-dev\n\n* commit \u00276ad696c35b80f70f19de304b53bdbfc6f5a265d8\u0027:\n  Add ThermalObserver system service to capture thermal state uevents.\n"
    },
    {
      "commit": "bc58f59da6226c6f1d240c95d566186f679fc310",
      "tree": "778b861c7bf3544cdca8b07baec17bd3f46f5d7a",
      "parents": [
        "184440cea399d2332b5dc138a9e8a47e9cde3398"
      ],
      "author": {
        "name": "Bryce Lee",
        "email": "brycelee@google.com",
        "time": "Fri Sep 25 16:43:01 2015 -0700"
      },
      "committer": {
        "name": "Bryce Lee",
        "email": "brycelee@google.com",
        "time": "Fri Sep 25 16:43:01 2015 -0700"
      },
      "message": "Add ThermalObserver system service to capture thermal state uevents.\n\nBug: 21445745\nChange-Id: I980d60b66ca51942a1fd62502d6cf1f09208fc3a\n"
    },
    {
      "commit": "03f46af3e194d58e2db61fe59e32d42bec8b8312",
      "tree": "ea09cc117264b397922126c3a044d14984acba75",
      "parents": [
        "96d9953f74ab16a9a63ebfe4119d5340ec734e87",
        "d04c6d19a589a2a0f60650675438c59ac6900f45"
      ],
      "author": {
        "name": "Alex Hills",
        "email": "ahills@google.com",
        "time": "Mon Sep 14 21:24:53 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 14 21:24:53 2015 +0000"
      },
      "message": "am d04c6d19: resolved conflicts for 693e11e5 to mnc-dr-dev-plus-aosp\n\n* commit \u0027d04c6d19a589a2a0f60650675438c59ac6900f45\u0027:\n  Cherry-pick system theme rebase to fix square UI on round watches\n"
    },
    {
      "commit": "d04c6d19a589a2a0f60650675438c59ac6900f45",
      "tree": "d95bcb8f52894ff373694bee7a40f1846fd5da51",
      "parents": [
        "e8c98b77854d39606960b0b6f5b5332c61e9a3d9",
        "693e11e56f5fc945d7af5d5213c6d844c7b88a5d"
      ],
      "author": {
        "name": "Alex Hills",
        "email": "ahills@google.com",
        "time": "Mon Sep 14 16:37:12 2015 -0400"
      },
      "committer": {
        "name": "Alex Hills",
        "email": "ahills@google.com",
        "time": "Mon Sep 14 17:03:58 2015 -0400"
      },
      "message": "resolved conflicts for 693e11e5 to mnc-dr-dev-plus-aosp\n\nChange-Id: I701841759a80f434a09b086492e817ca23a6a2e6\n"
    },
    {
      "commit": "3d2337eeb5c8b28bace281d049c5ca8cd13c8b70",
      "tree": "3b81a0833a501bff2a45d168853872f06a7bc632",
      "parents": [
        "5a45dc960b42eae66661665ff9a6bcb7e4a02c16"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue Aug 11 17:27:04 2015 -0400"
      },
      "committer": {
        "name": "Alex Hills",
        "email": "ahills@google.com",
        "time": "Mon Sep 14 10:56:02 2015 -0400"
      },
      "message": "Cherry-pick system theme rebase to fix square UI on round watches\n\nOur system themes were based on configurations that were added post-\ninit of the system theme.\n\nI96e695441543379e4d5fdf3cc6f18d9e6cf953b4 broke this, because there\nwas a race condition in the code for rebasing themes\n\nIf8fecde76d62738a8e55eddf898eafc468afdba2 (the cherry-picked commit)\nfixes the race condition and adds the rebasing back in.\n\nThis change cherry picks If8fecde76d62738a8e55eddf898eafc468afdba2.\n\nBug:23387146\nChange-Id: I0725028e48599fc6cd9731ae16c71474dd5827e5\n"
    }
  ],
  "next": "6d444185e55315a0111162609b1f619ee268bf3a"
}
