)]}'
{
  "log": [
    {
      "commit": "0d3dd12fa0ba38ffedbb18b55886306acf98988e",
      "tree": "49b414539bd72af591896908b154e5e9ec203762",
      "parents": [
        "5b06dbd12bcd28fbc051c88c3ea7f31bcf20d1f8"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Apr 18 10:56:37 2017 -0700"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Apr 18 12:00:11 2017 -0700"
      },
      "message": "Move CompanionDeviceManagerService to a place of its own\n\nFixes: 37473452\nTest: Ensure companion devi9ce functionality still works\nChange-Id: I89624217373b3e77296c71f9429387d99d15e236\n"
    },
    {
      "commit": "e52a1bfede79f87a75c498730860796ba74dea83",
      "tree": "3360a7aa28e4a192d104ab4db7052d3428c3a42e",
      "parents": [
        "3de36a3cc145ed881e53c25d67338d49bfc1d01a",
        "3b8b46f3a46ccf35a6bb6a828af0f2d011cc9abe"
      ],
      "author": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Fri Apr 14 11:31:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 14 11:31:06 2017 +0000"
      },
      "message": "Merge \"Service for OEM lock management.\" into oc-dev"
    },
    {
      "commit": "a402d6dd2f15e179d08cb0d5ffd668916e9a8bfb",
      "tree": "74a98bfa4668bc7b2669484337e5e391e6b9ec2a",
      "parents": [
        "ad6ab44e15a86c1130eef3b638343d47b5ada0e1",
        "43574b03e5604e346f088a1b0da2ab37fb115226"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 12 21:17:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 21:17:33 2017 +0000"
      },
      "message": "Merge \"Add autofill feature API\" into oc-dev"
    },
    {
      "commit": "43574b03e5604e346f088a1b0da2ab37fb115226",
      "tree": "b19b77a261bc53481edb5dbf934f1b15df0a5211",
      "parents": [
        "19ffd1d0a597385075cef7a436364e8b7aa083f4"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 12 09:25:20 2017 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 12 09:53:38 2017 -0700"
      },
      "message": "Add autofill feature API\n\nWe now have a software feature for autofill which can be used\nby partners to disable it on low-end devices or form factors\nfor which autofill doesn\u0027t make sense.\n\nbug:35956220\n\nTest: manual (requires a custom build)\n\nChange-Id: I6c06462ed9ca3ae93331700dce38a8c08dfd0722\n"
    },
    {
      "commit": "307bec857261e0e3ee9de5af9f30ab289e35ff7b",
      "tree": "5f76c353aa75af9435ca898940882296fd20794b",
      "parents": [
        "1654143680f53f857747e3b26bce8c414921b8cd",
        "558acf96dbffc0f13b414b1a5c5de191f6ffe27a"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Wed Apr 12 00:25:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 00:25:37 2017 +0000"
      },
      "message": "Merge \"TIF: add TvInputManager methods to notify apps\" into oc-dev"
    },
    {
      "commit": "558acf96dbffc0f13b414b1a5c5de191f6ffe27a",
      "tree": "a8037ccffa9c39c5cbce265c6d1b4fd93c2c3281",
      "parents": [
        "810e018e2459cf81f80480fdd61e7355e2fd250e"
      ],
      "author": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Wed Apr 05 17:31:01 2017 -0700"
      },
      "committer": {
        "name": "Conrad Chen",
        "email": "conradchen@google.com",
        "time": "Tue Apr 11 12:03:04 2017 -0700"
      },
      "message": "TIF: add TvInputManager methods to notify apps\n\nAdds TvInputManager methods to notify apps with protected broadcasts\nfor:\n1. Disabling browsable state of preview and watch next programs.\n2. Adding preview programs to watch next programs.\n\nTest: build and verify manually to check if notifications are\n      broadcasted.\nBug: 35881266\n\nChange-Id: I20fd5b63f42b2c74277315bbbd251b71c649e5c1\n"
    },
    {
      "commit": "2d314e15c9f0b2efc817b6111d808248a546f48c",
      "tree": "504b3b7c264fff2fcc90bf1710fbf2ccc81be686",
      "parents": [
        "43fed9afe41ee5cf7bc208f37f373d7061b5be19"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Tue Apr 04 16:32:15 2017 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Apr 06 21:19:25 2017 +0000"
      },
      "message": "Set android.display thread to top-app cpusets and schedtune group\n\nandroid.display being in the foreground cpuset group is an issue. As\nseen on M/S, during heavily CPU load it is not given core 3 even though\nit might be free and causes jank. This patch adds the thread to the\ntop-app group to ensure it is placed on all cores during scheduling\ndecisions.\n\nDoing this required a couple of changes:\n- new API to set per-thread cpusets\n- changes to DisplayManagerService to set the thread to top-app group\n- changes to SystemServer to set the policy toward the end, as doing it\n  during start of the DisplayManagerService was in issue (issue being\n  SystemServer calls setSystemProcess.. -\u003e setProcessGroup which overrides\n  the group settings for threads in the system server process, including\n  android.display)\n\nBug: 36631902\nTest: Boot and make sure android.display thread is in the top-app group\n\nChange-Id: Icc394ea0ffcf159d11728ad38de114234a29d20f\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n(cherry picked from commit 474d311cb098e86c078c3f615e1161e2854f1847)\n"
    },
    {
      "commit": "a8a74e25ddb27a350c8f643590639b9131fae2e1",
      "tree": "5a60f06a4974cb508fbf9a3fee3937242d59d9f1",
      "parents": [
        "75ed75c3d7af90f1b3275a126bdce847adcd7b35"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Apr 05 10:15:04 2017 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Apr 05 11:21:25 2017 -0700"
      },
      "message": "Fix Log Traces for IpSecService\n\nBug: 36920223\nTest: boot and see full log\nChange-Id: I1ac53f172094082c53b53a950058c862d257b7e5\n(cherry picked from commit d3e3f1593a523d488c76be2494d94a399e52dc9d)\n"
    },
    {
      "commit": "75ed75c3d7af90f1b3275a126bdce847adcd7b35",
      "tree": "feae487a4c949c67f822aa437e5cc3e7551aec47",
      "parents": [
        "f1dad26972dceac86edfc42bc87753b7ad8ad54f"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Apr 04 22:00:01 2017 -0700"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Apr 05 11:21:25 2017 -0700"
      },
      "message": "SystemServer: fix StartIpSecService trace and log\n\nBug: 36920223\nTest: boot and see log\nChange-Id: I9b88564ac7eef6998af465b977fa66c7d0787cf2\n(cherry picked from commit 90f4c0907e8f746f0f840e76057f84ec20adf46d)\n"
    },
    {
      "commit": "cbb58ecc866f90b2fe829b808a65652376006c24",
      "tree": "ec541f5e7c3b80d33d649e2e655f29acb7a21964",
      "parents": [
        "c01dd791c331815cfa496548cf535147dedfaa8a"
      ],
      "author": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Mar 01 18:55:06 2017 -0800"
      },
      "committer": {
        "name": "Nathan Harold",
        "email": "nharold@google.com",
        "time": "Wed Apr 05 10:23:27 2017 -0700"
      },
      "message": "Add a Skeleton IpSecService\n\n-Add IpSecService with the necessary glue to connect to netd\n-Add code to retrieve IpSecService from System Server\n\nBug: 30984788\nTest: b/34812052, b/34811227\nChange-Id: I4cdcb643421141202f77a0e2f87a37012de0cd92\n(cherry picked from commit 28084d89ec136b56f5012be33a0dea147962f9f6)\n"
    },
    {
      "commit": "2ac969827115c1b8bc86d9017eb1c7c1d5421b10",
      "tree": "bf0fdccaef8e5bd12406c70e8194007a94f32bab",
      "parents": [
        "adc160553092883c07ca34490f3f77eb662af562",
        "ff55115121a7a2753ba2265cb3201a3a14c0874d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 16:49:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 16:49:56 2017 +0000"
      },
      "message": "Merge \"Reorganize font enumeration API.\" into oc-dev"
    },
    {
      "commit": "ff55115121a7a2753ba2265cb3201a3a14c0874d",
      "tree": "151c60917705792e4afa5bfc5b7820228a72cc50",
      "parents": [
        "be436bdefe1947c01eb4b42bf1b864b1e86b7fb9"
      ],
      "author": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Tue Mar 28 16:16:41 2017 -0700"
      },
      "committer": {
        "name": "Seigo Nonaka",
        "email": "nona@google.com",
        "time": "Mon Apr 03 13:55:07 2017 -0700"
      },
      "message": "Reorganize font enumeration API.\n\nThis CL cleans up APIs around font variation settings.\n- Remove FontConfig and FontManager public API.\n- Remove FontManagerService from system service.\n- Extract inner class FontConfig.Axis as top-level class FontVariationAxis.\n  This is used by Typeface.Builder public API to create new Typeface.\n- Introduce and expose FontVariationAxis utility functions from/to string.\n- Throws if the invalid font variation settings is passed.\n\nTest: android.text.cts.FontVariationAxisTest passes\nTest: android.graphics.cts.TypefaceTest passes\nTest: android.graphics.cts.PaintTest passes\nChange-Id: I9ccafe7a53935960566243e2856e166878ca59ae\n"
    },
    {
      "commit": "3b8b46f3a46ccf35a6bb6a828af0f2d011cc9abe",
      "tree": "7b30ae20e755619f16d0d54f1aae4bd0cd9cf2c6",
      "parents": [
        "ef3a28cb92039c198ed8e78a69d00bd9c8322dab"
      ],
      "author": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Mon Feb 13 18:12:15 2017 +0000"
      },
      "committer": {
        "name": "Andrew Scull",
        "email": "ascull@google.com",
        "time": "Mon Apr 03 19:10:59 2017 +0100"
      },
      "message": "Service for OEM lock management.\n\nThe new service separates OEM lock management from the implementation.\nCurrently, a user restriction (DISALLOW_OEM_UNLOCK) and the persistent\ndata block have been used to implement OEM lock management. In future,\nother implemention will be used e.g. a secure element.\n\nThe new API also allows for a signature to be passed when changing\nwhether the device is allowed to be OEM unlocked by the carrier which\ncan be used for cryptographic protection of the flag.\n\nBug: 34766843\nTest: gts-tradefed run gts -m GtsOemLockServiceTestCases -t com.google.android.oemlock.gts.OemLockServiceTest\nTest: cts-tradefed run cts -m CtsPermission2TestCases -t android.permission2.cts.PrivappPermissionsTest\nChange-Id: I01660d7605d297f273d43436ca03d64ff611b6cf\n"
    },
    {
      "commit": "a82b62678a0e1eaba50ec5adce93862683dac065",
      "tree": "c924074e7930977fbd901bbe55e0fa3b03b3c908",
      "parents": [
        "881a623e3522e3e4f0905b606ca5c77cf899b21c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 21 16:56:17 2017 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 28 17:31:00 2017 -0700"
      },
      "message": "Themes: Apply themes to system_server safely\n\nCreates a new UI Context for UI based operations.\nThis UI Context is wired up the same way a normal app\nContext would be, and is subject to change when overlays\nare enabled/disabled.\n\nFor this reason, only UI should be using this new Context.\nAll other operations should be using the original system Context\nso that changing themes don\u0027t impact the regular operations of\nsystem_server.\n\nAlso added some sanity checks at key places where we show UI\n(ShutdownThread, BaseErrorDialog).\n\nBug: 36059431\nTest: $ adb shell am crash com.android.settings\nTest: Observe crash and power off dialogs are blue with PixelTheme\nChange-Id: I87227ee2e0be1e72dcde8f482b37725cb687260b\n"
    },
    {
      "commit": "5e01870015c43998398f3679fe04afc9923c1464",
      "tree": "fe274ff94f20df185a867d02a8a5c8d670ca0666",
      "parents": [
        "81ff6ee47a9373430e4c8f30bbe5129ca48643bd",
        "a38fbf63fd2a29884637a59387643c801ed4f663"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 27 18:43:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 27 18:43:37 2017 +0000"
      },
      "message": "Merge \"Unbind from service on app killed and dedup association requests\""
    },
    {
      "commit": "a38fbf63fd2a29884637a59387643c801ed4f663",
      "tree": "17a41c27bc5b8d2e3dd296bf49df2911f65285a0",
      "parents": [
        "cf0341ec5db251ef3030524c7ca8e51cef45cc40"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Mar 14 10:26:10 2017 -0700"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Fri Mar 24 14:03:17 2017 -0700"
      },
      "message": "Unbind from service on app killed and dedup association requests\n\n1. Listen to calling package binder death stopping the scanning on that.\n2. Don\u0027t restart scanning when a request with the same values was made.\n\nBug: 30932767\nTest: 1.:\n  - Using a test app start scanning and kill the app.\n  - In debug mode ensure that DeviceDiscoveryService#stopScan gets triggered\n2.:\n  - Start scanning and rotate the device while device chooser is visible\n  - Ensure no visible loss of state is happening\nChange-Id: If126a2c963da90172a956fbd88e6b3dcd7ac8b01\n"
    },
    {
      "commit": "b202b5c35c2224ecb24cdef4fc24d1dcb9ae18ac",
      "tree": "1cad009632486c33aafc0e58fb3dc08871cbf3bf",
      "parents": [
        "e219aaae85bc8749b787d27fa9fd741035f7f17f",
        "139354905d30dfd39de299247adbf5b7df341781"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 23 21:36:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 23 21:37:00 2017 +0000"
      },
      "message": "Merge \"Forward package removed broadcast to KeyChainService\""
    },
    {
      "commit": "139354905d30dfd39de299247adbf5b7df341781",
      "tree": "7a59e39b758185419636d0d27c4b202cf8a40337",
      "parents": [
        "229ce701279110080dd9e4241637cc72347eb5d8"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Mar 23 15:28:37 2017 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Thu Mar 23 15:36:16 2017 +0000"
      },
      "message": "Forward package removed broadcast to KeyChainService\n\nTest: Cts Verifier \u003e Security \u003e KeyChain Test\nTest: Manually uninstall and reinstalling Chrome\nBug: 35968281\nChange-Id: I1692f7042f081d1a743e0e64ea24fe1dbe63192d\n"
    },
    {
      "commit": "bc7875144f710b42baed78e27e80b79b1fd3aa72",
      "tree": "9bb7241a95228acd8bad14b9e7d5bc7871c9ec49",
      "parents": [
        "1e81b7f16604068b5695bc6ff90c0e6a9b0ba1c3",
        "0276998354b36c61446ae0aa4fd3045372e4bf18"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Thu Mar 23 14:35:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 23 14:35:30 2017 +0000"
      },
      "message": "Merge \"Default \u0027persist.sys.timezone\u0027 property to GMT if not set on init.\" am: 302b7a7075 am: 2f5a9febf4\nam: 0276998354\n\nChange-Id: I31eb2810b3cbc8a9ce5bf7c23ab821d68c8edbcc\n"
    },
    {
      "commit": "0276998354b36c61446ae0aa4fd3045372e4bf18",
      "tree": "2dba873ac0ed2ba7748b2b20c8f67d904272350f",
      "parents": [
        "88e9c86822ef26a8dcee0a279f2a2b659d34501c",
        "2f5a9febf4f84a268c8e77e45925f650653c46f6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Thu Mar 23 14:29:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 23 14:29:17 2017 +0000"
      },
      "message": "Merge \"Default \u0027persist.sys.timezone\u0027 property to GMT if not set on init.\" am: 302b7a7075\nam: 2f5a9febf4\n\nChange-Id: I43c05ca3f139fce4e08c7c40cc3823821341d176\n"
    },
    {
      "commit": "2f5a9febf4f84a268c8e77e45925f650653c46f6",
      "tree": "f3b0d066a4ee22069c394760d39dbad1e3675964",
      "parents": [
        "cde107da6cc142ff9b2c996b180d010f11814619",
        "302b7a70751fc0ee0f73f1464afb54be435dfa21"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Thu Mar 23 14:23:53 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 23 14:23:53 2017 +0000"
      },
      "message": "Merge \"Default \u0027persist.sys.timezone\u0027 property to GMT if not set on init.\"\nam: 302b7a7075\n\nChange-Id: I3eba21ec64878deda2d3465fcac96384241f27aa\n"
    },
    {
      "commit": "20e020536ebf999c4acb759960ae6e4bfff6ba67",
      "tree": "69acb5f2791728774093cd8a3bc2a9ee9e9a70c7",
      "parents": [
        "9eb959320f67fb53207f549ad9bc6bdf47abb1a2"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Mar 22 15:13:17 2017 +0000"
      },
      "committer": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Mar 22 18:02:30 2017 +0000"
      },
      "message": "Default \u0027persist.sys.timezone\u0027 property to GMT if not set on init.\n\nTest: make, flashall -w and tested persist.sys.timezone value\nBug: 36488101\nChange-Id: I6d0dab1e247dd7c303153bbe0e997581e36a973d\n"
    },
    {
      "commit": "361915c727fc2ad137bfeed7ff74b3eadde96597",
      "tree": "55598c5be642e8c843a9aa006e7f976d3f0aa386",
      "parents": [
        "c0e002b43071752dcaf3bd464dc3f1a09cd81b80"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Tue Mar 21 20:33:59 2017 -0400"
      },
      "committer": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Wed Mar 22 09:41:34 2017 -0400"
      },
      "message": "Move global actions to sysui and add plugin interface\n\n - Move default global actions ui to sysui\n - Add fallback legacy interface in case sysui breaks\n - Switch to fallback if sysui dies or isn\u0027t responding\n\nTest: Long-press power\nChange-Id: I943522611de5dbbee61e66c67cf3a56379091e97\n"
    },
    {
      "commit": "9f29617d589b8daccda1d3b37de97662b9147cb1",
      "tree": "678c776caca6abf98832db5de3bc30dac1af0147",
      "parents": [
        "8c97b51abd1ea867289c8439a98b855dba983929",
        "7c3eef2f3d085bc14f736240896523217a448408"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Mar 21 23:58:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 21 23:58:35 2017 +0000"
      },
      "message": "Merge \"Add system feature for Companion Device Manager\""
    },
    {
      "commit": "9a74e5daf074e77c4085322a8eadef4101b790e1",
      "tree": "4a660c32c4d50027bf0ea7e593d1b6c23700c429",
      "parents": [
        "7ba04df38cb5a797d81a2776ee227d126b7dd157"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Mar 21 13:46:35 2017 -0700"
      },
      "committer": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Mar 21 13:46:35 2017 -0700"
      },
      "message": "resolve merge conflicts of 94a93087c68c to master\n\nChange-Id: Ib2e97ef56b78e4492e1f8392ee294cb293941320\n"
    },
    {
      "commit": "94a93087c68cbc66ff3df966f3b8be284b814032",
      "tree": "1e151067d1d90c5ea4c3796ffaec7794f3e8e4f3",
      "parents": [
        "9034b2717c8890477fb19691a9c7902eee865789",
        "9a80c1799cc38a8444dc9c096ed02bf8356c89d7"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Mar 21 20:28:22 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 21 20:28:22 2017 +0000"
      },
      "message": "Remove the now-empty WearBluetoothService from SystemServer am: 3bcc688bce\nam: 9a80c1799c\n\nChange-Id: I5d6bff145f0f77b75184dd9e794130ff70509b58\n"
    },
    {
      "commit": "9a80c1799cc38a8444dc9c096ed02bf8356c89d7",
      "tree": "a3ba6562540676afe59fc9a456dbe6a8c6d30d71",
      "parents": [
        "a01e2212c849a507e84d5cad3e8f0267773d7295",
        "3bcc688bce7d169cf46a75a5efe47503619806e4"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Mar 21 20:18:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 21 20:18:59 2017 +0000"
      },
      "message": "Remove the now-empty WearBluetoothService from SystemServer\nam: 3bcc688bce\n\nChange-Id: Id95770faa65878282d9b49c01fad258b8eb57c06\n"
    },
    {
      "commit": "604c12c06dc4ffccf26945753916257e2f033f0e",
      "tree": "76ee753583bd57ac44ff8732eb3f01eedb96899a",
      "parents": [
        "9367f750712dee2757f0d9fc2cb9a34456f7fa2a"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Mar 20 10:57:44 2017 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Mar 20 11:30:19 2017 -0700"
      },
      "message": "StartHidlServices wait for StartSensorService.\n\nOtherwise, StartHidlServices waits for more than a second\nwhile holding a lock, delaying window manager.\n\nTest: boots\nTest: SystemServerTiming_StartWindowManagerService does not regress\nLogcat shows:\nSystemServerTimingAsync: StartSensorService took to complete: 55ms\nSystemServerTiming: StartWindowManagerService took to complete: 81ms\nSystemServerTiming: StartHidlServices took to complete: 1ms\n\nTest: lshal shows android.frameworks.sensorservice@1.0::ISensorManager\n\nBug: 36389997\nChange-Id: Iab5cf0ad7059cf9736cc7db0567dff51cc427b58\n"
    },
    {
      "commit": "3bcc688bce7d169cf46a75a5efe47503619806e4",
      "tree": "f3c962a326597e9a7259fa9e7173dfe33d04c97d",
      "parents": [
        "4aff3d53efc552aa30e25bf366bcb6e956d8b0e3"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Fri Mar 17 14:19:29 2017 -0700"
      },
      "committer": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Fri Mar 17 14:19:29 2017 -0700"
      },
      "message": "Remove the now-empty WearBluetoothService from SystemServer\n\nChange-Id: I7ddf213fa90acf84a50a53e7666311132b6b3922\n"
    },
    {
      "commit": "d8f3fe9421a089e4b0a27b0c102d572fc3f8a17b",
      "tree": "5a3c17b497980c3a9a6ae15462150327d9907689",
      "parents": [
        "08153e655afbc5ba010f04077fa282e23abcd5fd",
        "26b421f8e0411f044e13bbdad4b3ab1dab3c17c8"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Mar 17 00:58:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 17 00:58:14 2017 +0000"
      },
      "message": "Merge \"Start android.frameworks.sensorservice@1.0 in system_server\""
    },
    {
      "commit": "26b421f8e0411f044e13bbdad4b3ab1dab3c17c8",
      "tree": "4c07dfcdc2b14a70932d089e5a304dbac3eb0682",
      "parents": [
        "78ccde1c9d91c7833824970ec73c49214f072a7d"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Mar 10 13:41:11 2017 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Mar 16 12:15:05 2017 -0700"
      },
      "message": "Start android.frameworks.sensorservice@1.0 in system_server\n\nBug: 35219747\nTest: marlin boots\nTest: lshal -ipm | grep android.frameworks.sensorservice@1.0\n\nChange-Id: I67dfb217d1b568e140cefce0bdba3f8f4dbe679c\n"
    },
    {
      "commit": "91d40f1baa2eeed2aa68d2492e20650d5e71dab5",
      "tree": "02950220d998f3255b0bcdfecf83367886fb0b55",
      "parents": [
        "65d1c294b10de101ce29f0bbba2789d63e23dda8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 15 18:38:57 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 15 18:55:25 2017 -0700"
      },
      "message": "Set pm.BackgroundDexOptService as the source of true\n\nThe real dexopt maintainance job is\ncom.android.server.pm.BackgroundDexOptService, and not\ncom.android.server.BackgroundDexOptJobService\n\nPartial revert of commit 096d304ae3d85c1bfcda1a1d9cd4eb13d0815500.\n\nTest: manual inspection\nBug: 36140426\nChange-Id: I983ac91117f107282095fa7eefdbce08e0dcfce3\n"
    },
    {
      "commit": "7c3eef2f3d085bc14f736240896523217a448408",
      "tree": "e9b9b5f2cc58d0a8238edaaadeebd85b6d24ecd9",
      "parents": [
        "40cd0544bc8668a6b1037463847d9245f4b599c5"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Fri Mar 10 14:25:58 2017 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Tue Mar 14 19:50:49 2017 -0700"
      },
      "message": "Add system feature for Companion Device Manager\n\nBug: 30932767\nTest: Add just the feature gating first, ensure Context#getSystemSetrvice now\nreturns null.\nAdd feature in the configuration files, ensure companion device feature works again.\nChange-Id: I4ad2d52f7877eae0e951f43ddbb23881d5de8d8b\n"
    },
    {
      "commit": "2f8fb1f62f2840701e3e16497eb8191f38b72e0b",
      "tree": "a61e4c573e1e1e3a171704fdbeb2b979b9dabdb0",
      "parents": [
        "67916b86e9727f5acd27bf956386f270dc4e69da"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Mar 13 00:21:04 2017 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Mar 13 21:57:10 2017 -0700"
      },
      "message": "Fix a few auto fill ussues\n\n1. Ensure clicking on a focused view brings up autofill if needed\n\n2. Notify the autofill manager in a couple of cases we missed\n\n3. Renamed the AutofillManager app facing APIs to better reflect what\n    they do and added a API for the app to cancel the autofill interaction\n\n4. Fix view structure dispatch where the ordering of children for autofill\n    was mixed with ordering of direct view children - the autofill children\n    may be indirect as views can be marked not important for autofill\n\n5. Show scrollbars only if there are more fill options than want is shown\n\n6. Show only three fill options and the rest can be accessed with a scroll\n\n7. Remove the list divider to allow fill items to control all fill window content\n\n8. Renamed the autofill manager internal service classes to xxAutofillxx\n\n9. Fixed a comment that was not addressed in a previous CL\n\n10. Showing max three fill options - rest needs a scroll\n\n11. Make sure fill UI shown when filter with no matches is changed\n      to filter with some matches\n\n12. Make sure the fill window has a shadow\n\nTest: Autofill CTS tests pass and manual\n\nbug:36038929\nbug:36040101\nbug:36149166\nbug:36034681\nbug:36126001\nbug:36035654\n\nChange-Id: Ic8726146fc3c0a19d3e536becdd63fb65622136e\n"
    },
    {
      "commit": "af759c52ce01fe6b5144957e38da956af01a217b",
      "tree": "1964d3bfde2dc051ee569f25f0591f67f2cb5d1a",
      "parents": [
        "9ac082f8bb0c944513af326bda311cea3d153d56"
      ],
      "author": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Feb 15 09:35:38 2017 -0500"
      },
      "committer": {
        "name": "Geoffrey Pitsch",
        "email": "gpitsch@google.com",
        "time": "Wed Mar 01 10:17:15 2017 -0500"
      },
      "message": "Channels for Frameworks notifications\n\nAdapts all notifications used by system services to use channels.\nChannels are initialized by SystemServer after the NotificationService\nhas started.\n\nTest: runtest systemui-notification\nChange-Id: I25c45293b786adb57787aeab4c2613c9d7c89dab\n"
    },
    {
      "commit": "2e0d0f311100d8e0bb40d7d60b8498237f011f0c",
      "tree": "00377afd35d28d384d4ad735b250051481debe31",
      "parents": [
        "8716ef94194ad715ef596de4a38abb5b2a5c8186"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Thu Jun 02 09:35:31 2016 +0200"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 23 14:01:38 2017 -0800"
      },
      "message": "OMS: integrate OverlayManagerService into framework\n\nHand over ownership of overlays to OverlayManagerService.\n\nChanges to a package\u0027s overlays are propagated using the activity life\ncycle. Affected activities will be recreated as needed. This provides a\nwell-defined point to modify an application\u0027s assets while the\napplication is paused.\n\nConsolidate how overlays targeting the system and overlays targeting\nregular applications are handled. Previously, system overlays were\nhandled as a special case. Now, everything is handled identically. As a\nside effect, the call to idmap --scan during Zygote boot has become\nobsolete and is removed.\n\nInformation on what overlays to use is recorded in\nApplicationInfo.resourceDirs. The PackageManagerService is responsible\nfor the creation of ApplicationInfo objects. The OverlayManagerService\nis responsible for informing the PackageManagerService in advance about\nwhat resourceDirs to use.\n\nWhen launching an application, the ApplicationInfo is already populated\nwith up-to-date information about overlays.\n\nWhen enabling or disabling an overlay for a running application, the\nOverlayManagerService first notifies the PackageManagerService about the\nupdated resourceDirs. It then tells the ActivityManagerService to push\nthe new ApplicationInfo object to the application\u0027s ActivityThread.\nFinally the application requests its ResourcesManager to create new\nResourcesImpl objects based on the updated paths.\n\nChange-Id: Ib8afa05ccab4e2db558f89ce4423983c086bb61a\nCo-authored-by: Martin Wallgren \u003cmartin.wallgren@sonymobile.com\u003e\nSigned-off-by: Zoran Jovanovic \u003czoran.jovanovic@sonymobile.com\u003e\nBug: 31052947\nTest: run tests from \u0027OMS: tests for OverlayManagerService\u0027\n"
    },
    {
      "commit": "df0824ad4cd31a3e96653fe82ce969b08cd00be2",
      "tree": "12d8acb544a545a2bf061640de58d4ebfb6f3bad",
      "parents": [
        "6dd3529aa6ba6feaaaedfec3327846cdac0854e8",
        "95459806920dec34abb3214ab6e1a9b9213a2a61"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Feb 23 07:36:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 07:36:16 2017 +0000"
      },
      "message": "Merge \"Revert \"OMS: integrate OverlayManagerService into framework\"\""
    },
    {
      "commit": "95459806920dec34abb3214ab6e1a9b9213a2a61",
      "tree": "1e4d0a136606788c633f5b823daca0caa4334499",
      "parents": [
        "21a3d1ad686dee97b9cf0ed80389ee2ab0d48013"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Feb 23 07:35:39 2017 +0000"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Feb 23 07:35:39 2017 +0000"
      },
      "message": "Revert \"OMS: integrate OverlayManagerService into framework\"\n\nBug: 31052947\nBug: 35697944\n\nThis reverts commit 21a3d1ad686dee97b9cf0ed80389ee2ab0d48013.\n\nChange-Id: I2d86931020301524c26cf8c8e80d557c97fdd6c3\n"
    },
    {
      "commit": "0f09817859b19054aee3feded1dbf9757a5ec131",
      "tree": "c58d8246d55ef36eedcf1be7c75c7fb039c53782",
      "parents": [
        "a49777092042b1b36712d174bbb469f9fb396e26",
        "21a3d1ad686dee97b9cf0ed80389ee2ab0d48013"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 03:58:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 03:59:01 2017 +0000"
      },
      "message": "Merge \"OMS: integrate OverlayManagerService into framework\""
    },
    {
      "commit": "a49777092042b1b36712d174bbb469f9fb396e26",
      "tree": "135af8fd490daf8a6cd7caca9f8aec14363e0e27",
      "parents": [
        "26a449e62a337eb3c94be42e216734d76a2d517e",
        "a91e5368f06d1f1fc8337d8c71959e924e6d8fe6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 03:43:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 03:44:00 2017 +0000"
      },
      "message": "Merge \"resolve merge conflicts of f17c1d488840 to master\""
    },
    {
      "commit": "26a449e62a337eb3c94be42e216734d76a2d517e",
      "tree": "ea066606f277c518c99eec640c39685edaca40c5",
      "parents": [
        "6f2c1ea250f957b35c76bcc301d3513433de911f",
        "cd824ef3895bd581c9d87d9b010385fd15b41d7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 23 03:42:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 23 03:42:24 2017 +0000"
      },
      "message": "Merge \"Reconcile apps in 2 phases\""
    },
    {
      "commit": "cd824ef3895bd581c9d87d9b010385fd15b41d7e",
      "tree": "b941d112c57fdccbcf25feba35b6a51a4774513f",
      "parents": [
        "24dfce2fbe90967b00f6fa20b544537265982eba"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Feb 07 11:25:14 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Feb 22 15:43:50 2017 -0800"
      },
      "message": "Reconcile apps in 2 phases\n\nDuring boot app data folders are reconciled in 2 phases:\n - in the constructor only core apps are reconciled. prepareAppData\n   for remaining apps is deferred and run on a separate thread (phase 2)\n - Phase 2 must finish before third-party apps can start\n\nAlso moved GC to final stages of system server init. GC alone takes ~200 ms.\n\nOverall boot time improvement: ~1 second\n\nBefore:\n02-17 18:33:33 D/BaseBootTest: successive-boot :\n28835.0,29638.0,30205.0,29793.0,29752.0,28228.0,30125.0,28983.0,28487.0,28865.0,\n02-17 18:33:33 D/BaseBootTest: successive-boot_avg : 29291.1\n02-17 18:33:33 D/BaseBootTest:\nSystemServerTiming_StartPackageManagerService :\n3150.0,3615.0,3515.0,3495.0,3814.0,3158.0,3746.0,3274.0,3222.0,3607.0,\n02-17 18:33:33 D/BaseBootTest:\nSystemServerTiming_StartPackageManagerService_avg : 3459.6\n02-17 18:33:33 D/BaseBootTest: SystemServerTiming_StartServices :\n8244.0,8863.0,9035.0,9832.0,8998.0,8096.0,8719.0,8209.0,8279.0,8754.0,\n02-17 18:33:33 D/BaseBootTest: SystemServerTiming_StartServices_avg :\n8702.9\n\nAfter:\n02-17 17:59:51 D/BaseBootTest: successive-boot :\n27711.0,27607.0,28408.0,28968.0,28397.0,28063.0,27885.0,28483.0,27917.0,29317.0,\n02-17 17:59:51 D/BaseBootTest: successive-boot_avg : 28275.6\n02-17 17:59:51 D/BaseBootTest:\nSystemServerTiming_StartPackageManagerService :\n2467.0,2489.0,2369.0,2548.0,2647.0,2523.0,2497.0,2553.0,2482.0,2657.0,\n02-17 17:59:51 D/BaseBootTest:\nSystemServerTiming_StartPackageManagerService_avg : 2523.2\n02-17 17:59:51 D/BaseBootTest: SystemServerTiming_StartServices :\n7686.0,7538.0,7598.0,7869.0,7884.0,7950.0,7971.0,8370.0,7696.0,7885.0,\n02-17 17:59:51 D/BaseBootTest: SystemServerTiming_StartServices_avg :\n7844.7\n\nTest: manual\nBug: 28750609\nChange-Id: I3543ef577af1365394775318e40907584ddbe950\n"
    },
    {
      "commit": "a91e5368f06d1f1fc8337d8c71959e924e6d8fe6",
      "tree": "f0630978aa7e4d62b98969d68b28db47f74d3083",
      "parents": [
        "f764962b0d58008530955b70af1ebf68beb8d4ba",
        "f17c1d488840a00118be7b93be11bdae66f23189"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Wed Feb 22 15:16:42 2017 -0800"
      },
      "committer": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Wed Feb 22 15:36:53 2017 -0800"
      },
      "message": "resolve merge conflicts of f17c1d488840 to master\n\nOCL: http://ag/1932572\n\nTest: refactoring CL, with unit tests\n\nChange-Id: I5da27ee70afb8bf6e5fe9f6f3b545cd26d5c8d20\n"
    },
    {
      "commit": "f17c1d488840a00118be7b93be11bdae66f23189",
      "tree": "8eb8ca759f9f12c99a261c5de30e60b37913d594",
      "parents": [
        "ba6c607728d8e5cfe8ee51da394d67d0d1146d97",
        "abfd5bccb950c838c56667c9d553b2eeec3d2fa6"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Wed Feb 22 22:48:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 22 22:48:23 2017 +0000"
      },
      "message": "Replace WearWifi/Cell services with WearConnectivityService am: 5555bccc70\nam: abfd5bccb9\n\nChange-Id: If051c765d3ea81cce2bedc2dfa02d64744088054\n"
    },
    {
      "commit": "abfd5bccb950c838c56667c9d553b2eeec3d2fa6",
      "tree": "cb18d275d3c27ed59d002e0479ba5846be6b8634",
      "parents": [
        "d54f3a487bba1dc5008e2e1482ef451a59500752",
        "5555bccc70c032206ba1efe6961e3d021239d51b"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Wed Feb 22 22:41:41 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 22 22:41:41 2017 +0000"
      },
      "message": "Replace WearWifi/Cell services with WearConnectivityService\nam: 5555bccc70\n\nChange-Id: I5d8c97b8d5c394aeae99b7ddbe0dfdd5706a4293\n"
    },
    {
      "commit": "ed7f54883276b84b02fdba578e64a90cfc15d37b",
      "tree": "9c51596ac77e94fd134e1638b0f8fd8a62d530eb",
      "parents": [
        "1335669b0e23c12a50ef707c80bef2cd53b1208d"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Tue Feb 21 11:35:10 2017 -0800"
      },
      "committer": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Wed Feb 22 09:41:41 2017 -0800"
      },
      "message": "Rename CameraService to CameraServiceProxy\n\nBug: 32976450\nTest: on marlin, camera app works fine\nChange-Id: I71890c6814f97e461b0161fed6c31c041c9bfe59\n"
    },
    {
      "commit": "5555bccc70c032206ba1efe6961e3d021239d51b",
      "tree": "1cf7db642eb888c046bfa074532e19a317898d0d",
      "parents": [
        "c61cd1a6354bce0a34f3a44989b4412bef71b7bd"
      ],
      "author": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Feb 21 16:41:43 2017 -0800"
      },
      "committer": {
        "name": "Calvin On",
        "email": "con@google.com",
        "time": "Tue Feb 21 16:41:43 2017 -0800"
      },
      "message": "Replace WearWifi/Cell services with WearConnectivityService\n\ngo/wear-connectivity-service\n\nChange-Id: I2a8214e2965ad63a23dc8c174db256a263102a6f\n"
    },
    {
      "commit": "ebc05de919ed4b33f8331b2497f448a43f336c6f",
      "tree": "8deb40bd322e22e8f165eb0656153b8315917403",
      "parents": [
        "50bc658e2085da79637f1dbb6570b8afe2f75766",
        "375ea2ae7111d50744f8d06a1db201cadcb4d075"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 21 23:32:32 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Feb 21 23:32:32 2017 +0000"
      },
      "message": "Merge \"Revert \"Remove outdated emulator check which causes BT to not start\"\"\nam: 375ea2ae71\n\nChange-Id: I3d5abc52abf3f7c01ba4fbee47d7e487e99f5dda\n"
    },
    {
      "commit": "21a3d1ad686dee97b9cf0ed80389ee2ab0d48013",
      "tree": "79a415bcc73f60cda6dbac4ca414b22741c47266",
      "parents": [
        "f9bd2944694539f1dce74d420156cc50bbb4af14"
      ],
      "author": {
        "name": "Mårten Kongstad",
        "email": "marten.kongstad@sonymobile.com",
        "time": "Thu Jun 02 09:35:31 2016 +0200"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 21 14:29:43 2017 -0800"
      },
      "message": "OMS: integrate OverlayManagerService into framework\n\nHand over ownership of overlays to OverlayManagerService.\n\nChanges to a package\u0027s overlays are propagated using the activity life\ncycle. Affected activities will be recreated as needed. This provides a\nwell-defined point to modify an application\u0027s assets while the\napplication is paused.\n\nConsolidate how overlays targeting the system and overlays targeting\nregular applications are handled. Previously, system overlays were\nhandled as a special case. Now, everything is handled identically. As a\nside effect, the call to idmap --scan during Zygote boot has become\nobsolete and is removed.\n\nInformation on what overlays to use is recorded in\nApplicationInfo.resourceDirs. The PackageManagerService is responsible\nfor the creation of ApplicationInfo objects. The OverlayManagerService\nis responsible for informing the PackageManagerService in advance about\nwhat resourceDirs to use.\n\nWhen launching an application, the ApplicationInfo is already populated\nwith up-to-date information about overlays.\n\nWhen enabling or disabling an overlay for a running application, the\nOverlayManagerService first notifies the PackageManagerService about the\nupdated resourceDirs. It then tells the ActivityManagerService to push\nthe new ApplicationInfo object to the application\u0027s ActivityThread.\nFinally the application requests its ResourcesManager to create new\nResourcesImpl objects based on the updated paths.\n\nCo-authored-by: Martin Wallgren \u003cmartin.wallgren@sonymobile.com\u003e\nSigned-off-by: Zoran Jovanovic \u003czoran.jovanovic@sonymobile.com\u003e\nBug: 31052947\nTest: run tests from \u0027OMS: tests for OverlayManagerService\u0027\nChange-Id: Idc96dae6fc075d5373aa055bbf50e919136d7353\n"
    },
    {
      "commit": "a3b2212edaa83b0156791799be60b5fd2715da55",
      "tree": "f0c6d14b733f7fcd4d7d18a5c4c8364a49ff111e",
      "parents": [
        "d98a4e502165d76d05e095608da3c795bd56eafd"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Feb 18 20:05:47 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sun Feb 19 03:28:17 2017 +0000"
      },
      "message": "Revert \"Remove outdated emulator check which causes BT to not start\"\n\nThis reverts commit d98a4e502165d76d05e095608da3c795bd56eafd.\n\nMerged-In: Ibd1596584928f2aa2c799501536abc9b384d1cda\nChange-Id: Ibd1596584928f2aa2c799501536abc9b384d1cda\n"
    },
    {
      "commit": "039deed1fdbb5c8c4bc394b3000fdf8da31bc0c7",
      "tree": "f0dfb09e9411a3bb41c26f7be2d4d7b017a5b2d9",
      "parents": [
        "04215148cf3282f13c32495eb928fa27d898d876"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Feb 18 20:05:47 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Feb 18 13:35:45 2017 -0800"
      },
      "message": "Revert \"Remove outdated emulator check which causes BT to not start\"\n\nThis reverts commit d98a4e502165d76d05e095608da3c795bd56eafd.\n\nChange-Id: Ibd1596584928f2aa2c799501536abc9b384d1cda\n"
    },
    {
      "commit": "705cbc684abb83ba976fe8b43b19ee8acee77dee",
      "tree": "99e86a88b0f0249689a1a693de0137e57f67e7da",
      "parents": [
        "28f99293f74555592af2342095d23be51cbc1b8b",
        "a110feee4cac9d28c213010f325ee95560c8c471"
      ],
      "author": {
        "name": "Pulkit Bhuwalka",
        "email": "pulkitb@google.com",
        "time": "Fri Feb 17 20:12:29 2017 -0800"
      },
      "committer": {
        "name": "Pulkit Bhuwalka",
        "email": "pulkitb@google.com",
        "time": "Fri Feb 17 20:13:31 2017 -0800"
      },
      "message": "resolve merge conflicts of a110feee4cac to master\n\nTest: Resolved merge conflict. Built locally.\n\nChange-Id: If8e439d513ac2242b82f67a4c68bc3adfabe2b9c\n"
    },
    {
      "commit": "806ac5e1dd3e8a5a0041d9c674b994cca44dfd63",
      "tree": "8d32073001b5563df85f35737f7f05e65442b9b0",
      "parents": [
        "3c2c2764d4b141ee835b7c0725022e9af77c83a9",
        "ad7fb62d4f2a3e1de2a3de11b905b1629a5b1f75"
      ],
      "author": {
        "name": "Pulkit Bhuwalka",
        "email": "pulkitb@google.com",
        "time": "Fri Feb 17 23:28:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 23:28:09 2017 +0000"
      },
      "message": "Merge \"Remove outdated emulator check which causes BT to not start\"\nam: ad7fb62d4f\n\nChange-Id: Ia6f9417e6b21ec7911036b8875b9603f8b36152e\n"
    },
    {
      "commit": "d98a4e502165d76d05e095608da3c795bd56eafd",
      "tree": "c050d5cedb8aec6ffcb14695756e69e6d418eb21",
      "parents": [
        "855889b086ab62255b13cb7eb3783ae5e95ee492"
      ],
      "author": {
        "name": "Pulkit Bhuwalka",
        "email": "pulkitb@google.com",
        "time": "Tue Feb 14 16:27:10 2017 -0800"
      },
      "committer": {
        "name": "Pulkit Bhuwalka",
        "email": "pulkitb@google.com",
        "time": "Fri Feb 17 13:44:33 2017 -0800"
      },
      "message": "Remove outdated emulator check which causes BT to not start\n\nro.kernel.qemu based check to determine whether Bluetooth should be\nstarted or not was an old hack used when \"features\" was not available to\ndetermine hardware availability. This was later fixed with the\nhasSystemFeature check. However, the old check was not removed.\n\nThe presence of the old check causes Bluetooth to not start on Android\nThings devices which have ro.kernel.qemu set for graphics usage. It\u0027s\nalso preferable to depend on the system API rather than on build\nconfigs. Related CLs modify the emulator builds to correct the config in\nbuilds.\n\nBug: 35361545\nChange-Id: I219ce5e14709c76dcba43af4693093e985269d43\nTest: Verified by launching bluetooth on local devices after removing\nthe old check. Also verified by booting up the emulator and verifying\nthat Bluetooth Services do not start.\n"
    },
    {
      "commit": "01432b306de44975c898b7c48ae1e6a3981b3c19",
      "tree": "2c5731443d332884768ab11aed8042399f216669",
      "parents": [
        "75ad8a5b21e21a8750e7535bc6eae5dd22fdb1cd",
        "9355bce0c323632b88620ede174bf023b7381c81"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 10:14:15 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 10:47:58 2017 +0900"
      },
      "message": "resolve merge conflicts of 9355bce0c323 to master\n\nTest: none\nChange-Id: Iac65e01d07edf79ec97e7d996f8cfee6f811606b\n"
    },
    {
      "commit": "9355bce0c323632b88620ede174bf023b7381c81",
      "tree": "4c8183db8a19c05388d66a4ca4e14e03e5b52d53",
      "parents": [
        "de021d8162f9c69ce8042da21ce1095a326ef02a",
        "9c2b6afa2fe1429fc5e839ed6349dfffe94057a2"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 00:18:35 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 00:18:35 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\" am: 37e3f22c2e am: c54962a4bd\nam: 9c2b6afa2f\n\nChange-Id: I5f8cd508812d9532778c2f1f019308a4b8d8ee33\n"
    },
    {
      "commit": "9c2b6afa2fe1429fc5e839ed6349dfffe94057a2",
      "tree": "d0be4f48e4578a871b9c6e2bd6a1f4a85b3f7c23",
      "parents": [
        "7bf598cbd9f7f57742f813ca0b576ffd732d5b3a",
        "c54962a4bdfed6f5e9f47ae74adffa4b5faa6c77"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Fri Feb 17 00:09:11 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 17 00:09:11 2017 +0000"
      },
      "message": "Merge \"IP connectivity metrics: delete obsolete logger service\" am: 37e3f22c2e\nam: c54962a4bd\n\nChange-Id: Iccc3ee97bd2ac267b312c6c7d9269ac02a2bd68e\n"
    },
    {
      "commit": "9778046548772c8d94b8aa2dbdf6529b693aad45",
      "tree": "f6548d89a46763dc52654edf8e0e4a822a164a8c",
      "parents": [
        "4211358c7448147388c5e4af3e0e5472def83a3b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 06 20:24:08 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Feb 15 16:28:45 2017 +0000"
      },
      "message": "Zygote: Explicitly preload secondary zygote resources.\n\nWe now turn on lazy preloading (see companion change 73c7df1bda76a0)\nand explicitly preload zygote resources.\n\nTo provide the most benefit :\n- We start the preload in the system_server, which means the system_server\n  starts quicker since it has one less preload to wait for. Morever, the\n  64 bit zygote also starts quicker because it has one less high\n  priority process to contend with for CPU and I/O.\n\n- We start the preload after the core system services start up, since we\n  know no 32 bit zygote processes will be requested before that point.\n\n- We start the preload ~1s before the webview factory preparation, to\n  ensure that it completes before the 32 bit relro process is forked\n  from the zygote. In the event that it takes too long, the webview\n  RELRO process will block, but it will do so without holding any locks.\n  I have not observed this happening in \u003e 200 runs on marlin / sailfish\n  devices.\n\nThis change saves about 500ms in boot times, and sometimes even more.\n\nAFTER:\nsuccessive-online : 16970.0,16668.0,16391.0,16498.0,17601.0,16736.0,16609.0,16820.0,16310.0,17557.0,\nsuccessive-online_avg : 16816.0\nsuccessive-boot : 28750.0,29520.0,29372.0,28424.0,30683.0,28523.0,29766.0,29779.0,29304.0,31607.0,\nsuccessive-boot_avg : 29572.8\n\nBEFORE:\nsuccessive-online : 16678.0,18105.0,17197.0,16744.0,17453.0,16946.0,18068.0,16719.0,17453.0,16942.0,\nsuccessive-online_avg : 17230.5\nsuccessive-boot : 30855.0,32069.0,31223.0,30918.0,30284.0,29750.0,31036.0,30778.0,30310.0,30908.0,\nsuccessive-boot_avg : 30813.1\n\nNote that successive-online is a little faster, as expected since we do\nless work in the 32 bit zygote.\n\nTest: manual, timings from tradefed.\nBug: 34810190\nChange-Id: I90207a2706afda163b8134ff2af31f6917f3841b\n"
    },
    {
      "commit": "d22edc28f5c8417f591a913c0a97e718ae988a6f",
      "tree": "4cba4b7bc425e77a13338635c0bfe50abadfdd5a",
      "parents": [
        "ed6d75d5f31dd69d2c91cd82cddd5ee1db49b2c7"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Sat Feb 11 02:15:04 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Wed Feb 15 17:12:58 2017 +0900"
      },
      "message": "IP connectivity metrics: delete obsolete logger service\n\nTest: - runtest frameworks-net\n      - manually verified $ adb shell dumpsys connmetrics\nBug: 32648597\n\nChange-Id: I69f7dee5871508398d7f7209658a00c768e2d18e\n"
    },
    {
      "commit": "6ed45d8cd33c297e608aba94fc1f61dace7a7cca",
      "tree": "7d62835183a39a490ad2b518b27cdf6c1c232cdf",
      "parents": [
        "556897f7018e1b231d6200e21dd45657f180a63c"
      ],
      "author": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Sun Jan 22 13:52:51 2017 -0800"
      },
      "committer": {
        "name": "Eugene Susla",
        "email": "eugenesusla@google.com",
        "time": "Mon Feb 06 12:50:55 2017 -0800"
      },
      "message": "CompanionDeviceManager\n\nThis introduces an API for apps that support companion devices to provide a\nmore streamlined flow for pairing and setting up the device\n\nBug: 30932767\nTest: Using a toy app, invoke the newly introduced API (CompanionDeviceManager),\n and go through the flow. Ensure filtering works, and device is returned to\n the calling app. Ensure the calling app can pair to the selected device.\nChange-Id: I0aeb653afd65e4adead13ea9c7248ec20971b04a\n"
    },
    {
      "commit": "9b73a5473a36534731cc19501408a6123c8e69a8",
      "tree": "82ef46bb2a61a2bd37d6e2be0f9e56fbc61605fa",
      "parents": [
        "66f66e802e51f5c138a762ca7e3214e3f82d9434"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Feb 01 12:09:58 2017 -0800"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Feb 03 15:36:01 2017 -0800"
      },
      "message": "wait for sensor service before starting WMS\n\n- Starting sensor service in separate thread led into occasional 1 sec\n  blocking of WMS inside PhoneWindowManager to get sensor service.\n- Change startSensorService into blocking call and call it from\n  separate thread using SystemServerInitThreadPool.\n- This does not improve best case boot-up time but fixes occasional 1 sec delay\n  which is happening in 10 to 20% rate. So this is potential 100 to 200ms saving for many runs.\n\nbug: 34846045\nTest: multiple reboots.\nChange-Id: Ia08fa3284aed5e576acaac6fbfd74b9db9f7d63c\n"
    },
    {
      "commit": "d80e894b3b7d237c97de1124401caeafc8763afd",
      "tree": "bc75933c6e5efcacdb0f2b9684c30a970af3d22e",
      "parents": [
        "45250aca6d55988a58fdcb4ba0e8a58d36b1f34b"
      ],
      "author": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Fri Jan 27 11:30:19 2017 -0800"
      },
      "committer": {
        "name": "Keun-young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Jan 31 14:25:50 2017 -0800"
      },
      "message": "run webview preparation in separate thread\n\n- There is no other dependency for webview from system server.\n  Prepare it in separate thread and confirm completion\n  before allowing 3rd party apps.\n\nbug: 33840151\nTest: manual, reboot\nChange-Id: I417b0451c37f663c577295ab07f33474e72fe457\n"
    },
    {
      "commit": "096d304ae3d85c1bfcda1a1d9cd4eb13d0815500",
      "tree": "3ebef505ad00306dc5b9f4385715de5f4721b1ce",
      "parents": [
        "9b07338cb2a1a459312d39e85a38edf92549d072"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 30 16:34:13 2017 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jan 30 17:52:14 2017 -0800"
      },
      "message": "Add instant cookie APIs\n\nThis change adds APIs for instant apps to store cookie data\nthat is presisted across instant installs and across the\nupgrade from an instant to a standard app. Standard apps\ncan use the cookie APIs but when they are uninstalled the\ncookie is also deleted. The cookies are kept longer than\nthe instant apps as they are much smaller - 16KB by default.\nWe can change the cookie size via a system setting i.e.\nafter we ship we can increase size if needed.\n\nWe also add internal APIs to surface information about\ninstalled and uninstalled instant apps which should be\nused for showing them in the UI. For this puporse we store\nthe icon, permissions, and label of uninstalled apps. If\nthe app is re-installed we drop this meta-data but keep\nthe cookie around. If we have cookie data stored and the\nsigning cert of the app changes when it gets re-intalled\nwe wipe the cookie.\n\nTest: CTS tests pass; hiddent APIs tested manually\n\nChange-Id: If145c0440cc61a5303e2cbb70228d235d36037a5\n"
    },
    {
      "commit": "669b1d6bfe2d737cbd69f75d32378f7e6cab0c30",
      "tree": "b2dd10e9dbfba5c67949ed0b182365cde5b55750",
      "parents": [
        "895fc78ada0f4299d9eb7515305664727f714099",
        "b76e0fdf1ef2767e2d4f0ced2886756ff9556b19"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 31 01:19:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 01:19:54 2017 +0000"
      },
      "message": "Merge \"Read SystemConfig on a worker thread\""
    },
    {
      "commit": "b76e0fdf1ef2767e2d4f0ced2886756ff9556b19",
      "tree": "4a557e0b2dd0c2606efea6531fc6c0c0e1ea3add",
      "parents": [
        "6e0be363cbff1f8e794a0aba13fdb0bfa03124a6"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Jan 30 13:28:25 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Jan 30 14:30:55 2017 -0800"
      },
      "message": "Read SystemConfig on a worker thread\n\nAlso added lazy accessor for mBackgroundLaunchBroadcasts to give more\ntime for SystemConfig init to finish.\n\nTest: manual\nBug: 34809967\nChange-Id: Iaba0ac61714d94e72d571f33cd22d8700b89bb31\n"
    },
    {
      "commit": "67024f1b8feac1f59fff6a123f45f18a70e80e4f",
      "tree": "08f14fe708c46cc5c13766b33b7eb497ed119878",
      "parents": [
        "6675bbf093e2d9fdb620ed42602dde2a7902e8ce",
        "c565e1d3cea6f8db4fa0371b3cdb9fe11dbf4483"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Mon Jan 30 19:12:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 19:12:50 2017 +0000"
      },
      "message": "Merge \"Implement TextClassification system service.\""
    },
    {
      "commit": "7ed9a12e330d5c7cd1fa6f5e82837eefdf56505a",
      "tree": "464f7592d37a7b1e829cd7e04f821291506e2819",
      "parents": [
        "b0309b885dfac803b7dbef5d3f5e734aa04f993f",
        "1cd8508ba8d552d027c3d0f6e686ed22d116c5e4"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 24 19:04:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 24 19:04:46 2017 +0000"
      },
      "message": "[DO NOT MERGE] Do not log boot times for secondary users and upgrades\nam: 1cd8508ba8\n\nChange-Id: Ie6ca85107afcc79e905a748827aef3879807fd36\n"
    },
    {
      "commit": "1cd8508ba8d552d027c3d0f6e686ed22d116c5e4",
      "tree": "de6e906658b1b021dc19038b37158cf937b9ffa4",
      "parents": [
        "70f920fa0cf2baf5e997fc93cc326f37043d8801"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Jan 23 17:00:29 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Jan 23 17:00:29 2017 -0800"
      },
      "message": "[DO NOT MERGE] Do not log boot times for secondary users and upgrades\n\nDo not log framework_boot_completed/framework_locked_boot_completed\nfor secondary users, runtime restarts or first boot/upgrade.\n\nFirst boot/upgrade also applies to boot_system_server_ready/\nboot_package_manager_init_ready\n\nCherry-picked from commit 4ba91b9a879290d3d810330d172161ab1f923da8\n\nTest: Manual update with fingerprint change\nTest: runtime restart - not logged\n\nBug: 34516002\nBug: 32807863\nChange-Id: I64b960c96a0e45b4fefaf05547ea5ac5c701c765\n"
    },
    {
      "commit": "4a65687b853a92268f4f0eb52f22e092b16f8ed3",
      "tree": "3d92b5e9ddfb7bd8ce7f899a70c094058b0583fa",
      "parents": [
        "55725f002383fbbcc52b20980e18cfca01e3e9d6",
        "04d72abde1efc963ebb2f145f859552e83b92d13"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 19:57:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 19:57:23 2017 +0000"
      },
      "message": "Merge \"Expose fonts.xml via public API with a service\""
    },
    {
      "commit": "360da34205425657fd8c605388e27a5384e0d453",
      "tree": "fe84b9d982b863aca603785cef34b10045114523",
      "parents": [
        "8c055cbe022c6cdb775f53b20e7e19f24adedd59",
        "4ba91b9a879290d3d810330d172161ab1f923da8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 19:18:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 19:18:48 2017 +0000"
      },
      "message": "Merge \"Do not log boot times for secondary users and upgrades\""
    },
    {
      "commit": "04d72abde1efc963ebb2f145f859552e83b92d13",
      "tree": "62e2d74e3cb0d336d0d02afa4d89c650e83c4e6b",
      "parents": [
        "b334b8f0f26d93e50c07bbb90ade097025d795c1"
      ],
      "author": {
        "name": "Clara Bayarri",
        "email": "clarabayarri@google.com",
        "time": "Tue Jan 10 09:31:51 2017 -0800"
      },
      "committer": {
        "name": "Clara Bayarri",
        "email": "clarabayarri@google.com",
        "time": "Mon Jan 23 15:02:23 2017 +0000"
      },
      "message": "Expose fonts.xml via public API with a service\n\nThis change creates a new FontManagerService, in charge of providing\nfont management data. It exposes a public API to retrieve the\ninformation in fonts.xml without accessing it directly. To do this,\nit also refactors FontListParser\u0027s internal classes into a new public\nFontConfig class holding all the font data.\n\ngetSystemFonts() returns all the available information in fonts.xml\nas well as file descriptors for all the fonts. This allows us to\nshare the memory consumed by these files between all clients.\n\nBug: 34190490\nTest: See attached CTS change in topic\nChange-Id: I0e922f8bcc9a197a1988d04071eb485328d66fb7\n"
    },
    {
      "commit": "4ba91b9a879290d3d810330d172161ab1f923da8",
      "tree": "b2f6f77839d4eafaa2502e89fd567da329995ac7",
      "parents": [
        "ecbc96bb34171c30b979b95d5dc96004fef7afc9"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 20 18:12:35 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 20 18:12:35 2017 -0800"
      },
      "message": "Do not log boot times for secondary users and upgrades\n\nDo not log framework_boot_completed/framework_locked_boot_completed\nfor secondary users, runtime restarts or first boot/upgrade.\n\nFirst boot/upgrade also applies to boot_system_server_ready/\nboot_package_manager_init_ready\n\nTest: Manual update with fingerprint change\nTest: runtime restart - not logged\n\nBug: 34516002\nBug: 32807863\nChange-Id: I2e4237bf49e82101f483df6190111f4541328d19\n"
    },
    {
      "commit": "fe6f85cac9e823fd33a134f7129fdf7310703293",
      "tree": "97518a64d3759b88becf3c326ac017f359cc1a6e",
      "parents": [
        "063c454b07f7d4079731c60cff1ba4bf97d1f7ef"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jan 20 10:42:57 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jan 20 17:36:38 2017 -0700"
      },
      "message": "Introduce RescueParty.\n\nWhen a device gets stuck in a crash loop, it\u0027s pretty much unusable\nand impossible for users to recover from.\n\nTo help rescue devices from this state, this change introduces a new\nfeature that watches for runtime restart loops and persistent app\ncrash loops, and escalates through a series of increasingly\naggressive rescue operations.  Currently these rescue levels walk\nthrough clearing any experiments in SettingsProvider before finally\nrebooting and prompting the user to wipe data.\n\nCrash loops are detected based on a number of events in a specific\nwindow of time.  App stats can be stored in memory, but boot stats\nneed to be stored in system properties to be more robust.\n\nStart up RecoveryService much earlier during the boot so we can\nreboot into recovery when needed.\n\nAdd properties tha push system_server or SystemUI into a crash loops\nfor testing purposes.\n\nTest: builds, boots, forced crashing walks through modes\nBug: 24872457, 30951331\nChange-Id: I6cdd37682973fe18de0f08521e88f70ee7d7728b\n"
    },
    {
      "commit": "844e5436a629a0999a7e2c69452e4c5fca16eb32",
      "tree": "4d4113681fcfc762ccd7d754e9f723a467738b19",
      "parents": [
        "7bb9ccc1e59a87bb6ef33ddb25fe18566af90339",
        "5c00ee28b29a769f6f30ef03bb7aae5f84a653b7"
      ],
      "author": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Fri Jan 20 23:13:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 20 23:13:38 2017 +0000"
      },
      "message": "Merge \"SystemServer: reorder wifi services start\" am: 10c514d9de am: eae39fd1ec\nam: 5c00ee28b2\n\nChange-Id: Id6eb74c4aab2cd25f1d7adff4ddff160f6132fc6\n"
    },
    {
      "commit": "5c00ee28b29a769f6f30ef03bb7aae5f84a653b7",
      "tree": "c5ffff4ba36cada034ff7b8489c7886b2d88ec75",
      "parents": [
        "4a0a4664b9f46c37e490f8704b613fd20198c286",
        "eae39fd1ecf2ada3aeb8d3a6025911f8a72fbd48"
      ],
      "author": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Fri Jan 20 23:07:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 20 23:07:10 2017 +0000"
      },
      "message": "Merge \"SystemServer: reorder wifi services start\" am: 10c514d9de\nam: eae39fd1ec\n\nChange-Id: I723d8b96f5d5406e8f948885a845993e755ab0d8\n"
    },
    {
      "commit": "c565e1d3cea6f8db4fa0371b3cdb9fe11dbf4483",
      "tree": "3dddff584652550eb8eb7a53482cc24a79b210f4",
      "parents": [
        "e19fa20ca5a1e6f5c7fd95ed8990923a01185f92"
      ],
      "author": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Wed Dec 14 15:38:56 2016 +0000"
      },
      "committer": {
        "name": "Abodunrinwa Toki",
        "email": "toki@google.com",
        "time": "Fri Jan 20 20:22:16 2017 +0000"
      },
      "message": "Implement TextClassification system service.\n\n- This service provides the TextClassificationManager access to the\n  classification model file.\n  See: Icb82b707c9c1b4dcb739f44d888bbc43bc3b03bb\n- This service is started at boot time.\n  See: Ie4a597bc5c6c4140afbcf7feaa9dd237a3fd5fef\n\nTest: Manually tested. Also see: Ic2a5eceeaec4cd2943c6c753084df46d30511fee\nBug: 32503402\nChange-Id: Ic428d00f291e268211866b3fc6b7acbc3eb04e1e\n"
    },
    {
      "commit": "155e452f2554571ae6cf5655761bee0ffcf9bdac",
      "tree": "7351d326a4b54fb066fc53fba546a990ab198800",
      "parents": [
        "dc81bd74ae9edb45dd39db533f8906e5d629f3e6",
        "83a218c416ffc0096b99bc33eb007bbf218d9ced"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 20 18:23:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jan 20 18:23:16 2017 +0000"
      },
      "message": "[DO NOT MERGE] Do not report boot timings on first boot or runtime restart\nam: 83a218c416\n\nChange-Id: Ib503ffb8d0d718aa6af4b420cc71e32a033e658b\n"
    },
    {
      "commit": "83a218c416ffc0096b99bc33eb007bbf218d9ced",
      "tree": "5be1ab5e10df9ce821fecab1cda68d70740dfe8b",
      "parents": [
        "18f1a35d466a6afd08014daeb0e3021fb8172071"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Jan 19 12:11:32 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 20 17:32:50 2017 +0000"
      },
      "message": "[DO NOT MERGE] Do not report boot timings on first boot or runtime restart\n\nDuring first boot after OTA, additional dexopting has to be done\nduring PM initialization. Timings for OTA are reported separately,\nso we should ignore first boot to avoid skewing the metrics.\n\nThe following metrics were updated:\n - framework_locked_boot_completed\n - framework_boot_completed\n \nCherry-picked from commit 1d87e40d4214a7f6d20a58d6f27cca174f0d974e\n\nTest: manual\nBug: 32807863\nChange-Id: I9d545cf38118f45f3f13597df2949d0ae4abd26a\n"
    },
    {
      "commit": "d3ff73eba4b7f55a1de4a77e7d905671f7ac6633",
      "tree": "973d75172bb18545514e9b010fe949bf0ca77199",
      "parents": [
        "1a34a412688dbb5489a20c942a6bfa5996bf1e77",
        "392f7d789caebdfb07478d03598bba24410df238"
      ],
      "author": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Thu Jan 19 21:31:06 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 19 21:31:06 2017 +0000"
      },
      "message": "Merge \"SystemServer: cherry-pick p2p service start\" am: 4c937464eb\nam: 392f7d789c\n\nChange-Id: I737b1307f4c42b8c88974418e3b6dab6b117509f\n"
    },
    {
      "commit": "6c4c1119f4419e2d23ee9f12d27e183f5240f7e9",
      "tree": "e2fd706084c314380b9ad37b94d07eb03d3fef7a",
      "parents": [
        "be4568379e6248c2992feb0f6ab23319ecc737f9",
        "24e12dc59de6efcc72e52a22d1430d15e2c3f940"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 19 01:44:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 01:44:15 2017 +0000"
      },
      "message": "Merge \"Log excessive boot times\""
    },
    {
      "commit": "12d1bedfa9a9b0bd19f15190bdf99d5e396848f1",
      "tree": "7d9b9af977ca1929b859d94167d8d0dea924d6e4",
      "parents": [
        "473279bbd9b9c6ece4111f9371d3069876cfe53a",
        "fa3fd615b04aa1e439d2cdedd286d1d93a4c147f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 19 00:53:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 00:53:59 2017 +0000"
      },
      "message": "Merge \"SystemServer: Remove logging boot_android_init.\""
    },
    {
      "commit": "fa3fd615b04aa1e439d2cdedd286d1d93a4c147f",
      "tree": "05665188a38110a19be24d825f94ec508383b5a1",
      "parents": [
        "094119df3ebc49b7158aa448fe3cc24ad4267569"
      ],
      "author": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Wed Jan 18 15:14:29 2017 -0800"
      },
      "committer": {
        "name": "James Hawkins",
        "email": "jhawkins@google.com",
        "time": "Wed Jan 18 15:14:29 2017 -0800"
      },
      "message": "SystemServer: Remove logging boot_android_init.\n\nThis is now logged by the bootstat command.\n\nBug: 34391732\nTest: none\nChange-Id: I8bbc22e3c7b0268876c4819ed48b7e4b31d6fb3e\n"
    },
    {
      "commit": "24e12dc59de6efcc72e52a22d1430d15e2c3f940",
      "tree": "dd7a7be413db195da6ea1fb407b9456e2073a4d6",
      "parents": [
        "673de10bd0999a9b816eff51e7e6d33aa4784d3a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 17 12:20:36 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Jan 18 14:54:59 2017 -0800"
      },
      "message": "Log excessive boot times\n\nThis should help to identify devices that report unusually long\nboot_completed timings.\n\nTest: manual\nBug: 32807863\nChange-Id: Ic6c7103d43b3e395accb38ec418094bc580c7c40\n"
    },
    {
      "commit": "aa9821bf323941a98828329b31d5dd164be6cb56",
      "tree": "0fde435bcd052a68b567e41d09d0111165032f46",
      "parents": [
        "5f506939fafd724fe4cdb8ef478302c8590417ce"
      ],
      "author": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Sat Jan 07 01:59:16 2017 -0800"
      },
      "committer": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Wed Jan 18 11:01:11 2017 -0800"
      },
      "message": "SystemServer: reorder wifi services start\n\nStart WifiService before other wifi-related services.\nThis is now possible since service dependencies were\nremoved from the WifiStateMachine constructor.\n\nBug: 34137732\nTest: frameworks/opt/net/wifi/tests/wifitests/runtests.sh\nTest: frameworks/base/wifi/tests/runtests.sh\nTest: manually tested wifi connection\nTest: manually checked for Wifi Direct peers\nMerged-In: Iad4eb7053e60542d0be72208db53cf0f83004ae2\nChange-Id: I1e57bfac83708644df6f016808c5972d2d6136c6\n"
    },
    {
      "commit": "5f506939fafd724fe4cdb8ef478302c8590417ce",
      "tree": "df9eefb0dcbef25c90871a20f93732516e437e84",
      "parents": [
        "c82d1ddaf46f09252a9360cb1fbd047d53057661"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Mon May 23 15:12:49 2016 -0700"
      },
      "committer": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Wed Jan 18 11:01:10 2017 -0800"
      },
      "message": "SystemServer: cherry-pick p2p service start\n\nCherry-pick change that only starts P2P service if p2p is supported for\nthe device.\n\nDisable WiFi p2p service if it\u0027s not supported.\n\nb/26877020\n\nBug:34193861\nTest: frameworks/base/wifi/tests/runtests.sh\nTest: frameworks/opt/net/wifi/tests/wifitests/runtests.sh\nTest: manually verified wifi connection\nTest: manually checked for p2p peers\n\nChange-Id: I84b822fa57423711de75d2147effe73a1fc40eb4\nMerged-In: I84b822fa57423711de75d2147effe73a1fc40eb4\n"
    },
    {
      "commit": "9e40b804b90c38cb425908259e7747d0a52f2955",
      "tree": "a88bf9ce8174cfb9cd2eec31631702896bb0177e",
      "parents": [
        "7d13f29b128b1cc572025a5f248559bb50c4be3a"
      ],
      "author": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Sat Jan 07 01:59:16 2017 -0800"
      },
      "committer": {
        "name": "Rebecca Silberstein",
        "email": "silberst@google.com",
        "time": "Tue Jan 17 13:32:50 2017 -0800"
      },
      "message": "SystemServer: reorder wifi services start\n\nStart WifiService before other wifi-related services.\nThis is now possible since service dependencies were\nremoved from the WifiStateMachine constructor.\n\nBug: 34137732\nTest: frameworks/opt/net/wifi/tests/wifitests/runtests.sh\nTest: frameworks/base/wifi/tests/runtests.sh\nTest: manually tested wifi connection\nTest: manually checked for Wifi Direct peers\nChange-Id: Iad4eb7053e60542d0be72208db53cf0f83004ae2\n"
    },
    {
      "commit": "b82f3b09f38bd5667bb66b22a5490430418f5f8a",
      "tree": "6cf937eeea3a4c8fb746fc190cc893f7e4cbe50d",
      "parents": [
        "0bf67a29d990892fe2ce1c26b5a0eadd7fe5e930",
        "989b267015b960c8283232a74b0a1cd7b03a9731"
      ],
      "author": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Jan 16 15:15:25 2017 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Mon Jan 16 15:15:25 2017 -0800"
      },
      "message": "resolve merge conflicts of 989b267015b9 to master\n\nChange-Id: I0c967e85eb73664e236c0b7286ed14facdb327fa\n"
    },
    {
      "commit": "989b267015b960c8283232a74b0a1cd7b03a9731",
      "tree": "382231fd15df7a913ca0485a8639b52e67fc14ff",
      "parents": [
        "bdb68feffd76e669ddc574e149aa01fbc1e1136b",
        "6760890c388944cd653988004c92a8916e49fb6b"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Sat Jan 14 03:56:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 14 03:56:52 2017 +0000"
      },
      "message": "Add WearCellularMediatorService to the system server. am: d741f3de81\nam: 6760890c38\n\nChange-Id: I30d792533da4051300d15ee0567e4c09da68e21e\n"
    },
    {
      "commit": "e0d2c77a506842df0525bab433bd1998d1336cef",
      "tree": "5ff0cbc20b79a8ac99a8643310d1b38d03469c75",
      "parents": [
        "24b33094f6c05d7e218359928969489efb9b8fb5",
        "d741f3de8199f526125a461dffd49990fc648541"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Sat Jan 14 03:51:58 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 14 03:51:58 2017 +0000"
      },
      "message": "Add WearCellularMediatorService to the system server.\nam: d741f3de81\n\nChange-Id: I6f3f0e2ea19f995f81816689c80b0bc865cc991e\n"
    },
    {
      "commit": "d741f3de8199f526125a461dffd49990fc648541",
      "tree": "17a97a29d57eae0ff3bebb2f38bf0d86e8545ffe",
      "parents": [
        "331a4bb8d464aebddad5ec04a27526ef1384cbd5"
      ],
      "author": {
        "name": "Wei Liu",
        "email": "luciferleo@google.com",
        "time": "Tue Dec 13 15:44:55 2016 -0800"
      },
      "committer": {
        "name": "Zach Johnson",
        "email": "zachoverflow@google.com",
        "time": "Fri Jan 13 17:51:07 2017 -0800"
      },
      "message": "Add WearCellularMediatorService to the system server.\n\nBug: 33589216\nChange-Id: Icfee08b27c03567ed45e136fc407b51c768515c2\n"
    },
    {
      "commit": "1d87e40d4214a7f6d20a58d6f27cca174f0d974e",
      "tree": "8f6c530acf0007c6284f719801e6e2aef6fd1f6d",
      "parents": [
        "5757f5b260be597ef2e554f633c0d882bdd80697"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 10 18:34:10 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Jan 11 14:21:13 2017 -0800"
      },
      "message": "Do not report boot timings on first boot or runtime restart\n\nDuring first boot after OTA, additional dexopting has to be done\nduring PM initialization. Timings for OTA are reported separately,\nso we should ignore first boot to avoid skewing the metrics.\n\nThe following metrics were updated:\n - boot_system_server_init - check added for consistency with other\n   metrics in SystemServer. The metric is actually unaffected by first boot,\n   because dexopt will start later\n - boot_package_manager_init_ready\n - boot_system_server_init\n - framework_locked_boot_completed\n - framework_boot_completed\n\nTest: manual + UserControllerTest pass\nBug: 32807863\nChange-Id: Iff13697b7d4f9ff8439e1e932d7e276f48cd5c37\n"
    },
    {
      "commit": "29c0a2c93d8bcba6b9a42bfc19d20d3c3502bc3e",
      "tree": "1ac864d31ecf1a4abb998c8a7fcceb5d25d84a6e",
      "parents": [
        "d5db4a22dfbaedc200f0bdeb529046d1bc8304fa",
        "6733e6c6b6f5c49b3c668caae9a8765221c22412"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 09 19:56:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 09 19:56:16 2017 +0000"
      },
      "message": "Merge \"Do not report uptime to tron after runtime restart\""
    },
    {
      "commit": "6733e6c6b6f5c49b3c668caae9a8765221c22412",
      "tree": "18deff47452fef9fa548f6feb1d139dd0546c522",
      "parents": [
        "6fd63e4df682dfbcc2b86393216a31bd2163e484"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jan 06 18:27:05 2017 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Jan 09 10:29:42 2017 -0800"
      },
      "message": "Do not report uptime to tron after runtime restart\n\nRuntime restart doesn\u0027t reset the uptime counter. We shouldn\u0027t report\nboot timings in that case.\n\nBug: 32807863\nTest: manual\nChange-Id: If9510c0d5c633acefe70f241e0823da8f6c248a2\n"
    },
    {
      "commit": "8d729e8c149e68023b5c076bd668ee9eff4a6c6d",
      "tree": "239f44ef2105a71fb70031bf12c93a6ed4aacc2d",
      "parents": [
        "4f302baba3ea2146f4b42d6b1f092898056a4e20",
        "e8cece9f2010388e02d8f4b3150f25168f8b7d76"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Sat Jan 07 16:18:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 07 16:18:38 2017 +0000"
      },
      "message": "Merge \"Initial API shape for storage statistics.\""
    },
    {
      "commit": "e8cece9f2010388e02d8f4b3150f25168f8b7d76",
      "tree": "d71c47bdfd720ca9c7d2bf35a24c82c2c2de9ba0",
      "parents": [
        "c9facc0a1f6f3facb7d67ddae9b8a04af78dad0c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jan 04 11:33:33 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jan 05 15:39:16 2017 -0700"
      },
      "message": "Initial API shape for storage statistics.\n\nThis API is designed to provide both UID-level stats and overall\nsummary data for a given storage device, as identified by UUID.\n\nThe use of UID-level granularity might appear a bit clunky, but it\nmatches other usage statistics (such as network and battery), and it\nallows us to implement it using an extremely fast quota kernel\nfeature.\n\nA future CL will wire up the implementation to installd.\n\nTest: builds, boots\nBug: 32206268\nChange-Id: I7b51877682d0370c2402c19346f57809f0e7ac53\n"
    },
    {
      "commit": "e29a5a11529dc7df82911b48b9f95461383cbcc2",
      "tree": "b5090d36e20516de0dee6e0d689b81125557f628",
      "parents": [
        "c9facc0a1f6f3facb7d67ddae9b8a04af78dad0c"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Dec 16 16:14:17 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Thu Jan 05 13:12:37 2017 -0800"
      },
      "message": "Added SystemServerInitThreadPool\n\nSystem services can use it during the boot to submit tasks that can be run in\nparallel with the main thread.\n\nSwitched PersistentDataBlockService and FingerprintService from FgThread to\nthe new thread pool.\n\nUiModeManagerService: update initial configurations on init thread. They run\nwhile holding the mLock so no extra synchronization barriers are needed at a\nlater stage.\n\nTest: manual - device boots without errors\nTest: ParallelPackageParserTest passes\nChange-Id: I548f34b0a18f61924e09a39afb12e085cde35442\n"
    },
    {
      "commit": "1f556e3ba623f7d6d2841615f4000c478541c37f",
      "tree": "a9df92b8987317ed3a34dd611212005e9588cbb8",
      "parents": [
        "f2acf9df65e208e4ca9eb17fb8c5e0d7ec4ab41e"
      ],
      "author": {
        "name": "Allen Hair",
        "email": "allenhair@google.com",
        "time": "Fri Nov 11 15:42:50 2016 -0800"
      },
      "committer": {
        "name": "Allen Hair",
        "email": "allenhair@google.com",
        "time": "Wed Jan 04 19:44:21 2017 +0000"
      },
      "message": "Provide a mechanism for dumping code coverage for the system server.\n\nThis service will only be enabled if the platform was built with\nEMMA_INSTRUMENT\u003dtrue\n\nTest: Manual\nBug: 31077138\nChange-Id: I4ba98b6568d31ded1b66da996b3c2e5a2ee07c75\n"
    },
    {
      "commit": "6dd2ba286664a67046ec6825acadbc108f9fc273",
      "tree": "1e32aafa8503c5873b07904da265bf049f02013b",
      "parents": [
        "dc143e01ccdf76f780c8331659ca27484733907a"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Dec 07 13:03:17 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Tue Jan 03 17:55:44 2017 -0800"
      },
      "message": "Tracing for unaccounted parts\n\nBug: 33199244\nTest: manual\nChange-Id: Idf71332e8ebd666e5e0defada696414b4550ff23\n"
    },
    {
      "commit": "1754d744a7a34731ffc07af1bc3dbfcb06864ab0",
      "tree": "8596241d2c9ccfb1b1748e3a5a37f2befa155a87",
      "parents": [
        "de5b027d2cbd430ef5007911cd73084c081afaab"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 21 17:51:35 2016 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Dec 15 11:23:05 2016 -0800"
      },
      "message": "First checkin of incident reporting.\n\nThere are a few major pieces here:\n\nincidentd\n---------\nThis daemon (started by init) runs and accepts incoming requests to take\nincident reports.  When prompted, it calls into various system services\nand fills in an IncidentProto data structure, and then writes the report\ninto dropbox.\n\nThe next steps for incidentd:\n    - Security review of SELinux policies. These will be a subset of\n      the dumpstate permissions.  Until this is done, incidentd is\n      not started at boot time.\n\nincident\n--------\nThis shell command calls into incidentd, and can initiate an incident\nreport and either capture the output or leave for dropbox.\n\nincident_report\n---------------\nThis host side tool can call adb shell with the correct parameters\nand also format the incident report as text.  This formatting code\nwas left of the device on purpose.  Right now it\u0027s pretty small, but\nas the number of fields increases, the metadata and code to do the\nformatting will start to grow.\n\nThe incident_report command also contains a workaround to let it\nwork before incidentd is turned on by default.  Right now, it is\nimplemented to call adb shell dumpsys \u003cservice\u003e --proto directly,\nwhereas in the future it will go through the full incidentd flow.\n\nincident_section_gen\n--------------------\nA build-time tool that generates a stripped down set of information\nabout the fields that are available.\n\nlibincident\n-----------\nThis library contains the code to connect to incidentd, and the\nmeta proto definitions that are used by the framework protos.\nThe basics are here now, but they are not fully fleshed out yet.\nThe privacy.proto file contains annotations that can go in the\nproto file that we will later use to filter which fields are\nuploaded, and which are used by local sources.  For example, a\ndevice in a test lab is safe to upload much much more information\nthan a real user.  These will share the same mechanism, but the\nuser\u0027s output will be filtered according to these annotations.\n\nframeworks/core/proto\n---------------------\nThese .proto files contain the definitions of the system\u0027s\noutput.  There is one master android.os.IncidentProto file that\nis the top level of an incident report, but some other services\n(notification, fingerprint, batterystats, etc) will have others\nthat are used directly by the logging mechanism.\n\nOther files which are shared by several of the services also go\nhere, such as ComponentName, Locale, Configuration, etc.  There\nwill be many more.\n\nThere is also a first iplementation of a dump method handling\n--proto in the fingerprint service.\n\nIncidentManager\n---------------\nThe java API to trigger an incident report.\n\nTest: Not written yet\nChange-Id: I59568b115ac7fcf73af70c946c95752bf33ae67f\n"
    },
    {
      "commit": "7890c2af5181f134cc20153978c757ed8a55c43e",
      "tree": "7b2917a4ac05aa89bd5789c89fe94fd4ed1d3aa3",
      "parents": [
        "6997bf20eeae417f1b9e96d1427fda5775e61771"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Dec 12 12:41:16 2016 -0800"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Mon Dec 12 12:41:31 2016 -0800"
      },
      "message": "init.start was renamed to ro.boottime.init\n\nTest: manual\nBug: 32780225\nChange-Id: I07e593d5c1edab62e937a77916ab207ec17e8639\n"
    }
  ],
  "next": "e35aff17e9c58c1c28325e77e53e5e4f71a07580"
}
