)]}'
{
  "log": [
    {
      "commit": "658bf2fa6d3bb1121c3c96abb62ca01d3abe95db",
      "tree": "d7731d3d67f19b6a78565cdedaa4cc72bd5a3e0b",
      "parents": [
        "d3ecb3e6f04a0f76c886238af6bef1d10b987a42"
      ],
      "author": {
        "name": "Miao Chou",
        "email": "mcchou@google.com",
        "time": "Fri Jun 26 17:14:35 2015 -0700"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Wed Jul 01 19:09:44 2015 +0000"
      },
      "message": "Add BluetoothService to reduce resuming time after reboot\n\nAs a subclass of SystemService, BluetoothService wraps around\nBluetoothManagerService to unlock Auto-enabling Bluetooth earlier by overriding\nonBootPhase() and removes the need to wait for BOOT_COMPLETED message.\n\nBug:21705209\nChange-Id: I2acc41370a750d8416e11e662e06392326741d2c\n"
    },
    {
      "commit": "15d48a16f645509cb0c6a1f3abf52ddd233cd8b5",
      "tree": "0c9a53fda50dcca7549cd29eb3ac9c0151fb0830",
      "parents": [
        "9a08fe2aca44f190162b198a726bc406ed19c1c7"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jun 18 15:15:16 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu Jun 18 15:15:16 2015 -0700"
      },
      "message": "DO NOT MERGE: Remove DayNight theme\n\nDo not go gentle into that good night,\nOld age should burn and rave at close of day;\nRage, rage against the dying of the light.\n\nThough wise men at their end know dark is right,\nBecause their words had forked no lightning they\nDo not go gentle into that good night.\n\nBug: 21854466\nChange-Id: I0b7cd116c23f7df88e94f31b3aee7dd22a102804\n"
    },
    {
      "commit": "2c9655b3d4c1fb0687baa14730c6d97ab5a56789",
      "tree": "5cedbe4d7e5ec6454ecd617f0bf4d15508b4586d",
      "parents": [
        "3aa16d761efb970f16aa913dcda9a3cc458cc227"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 12 13:06:45 2015 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 12 13:06:45 2015 -0700"
      },
      "message": "If we\u0027re out of space, retry background dexopting later\n\nGive it 4 hours to give the user time to do stuff, then retry;\nrepeat until we have space to work in.\n\nBug 20468442\n\nChange-Id: Id4b11abcc38a9e2a50a062f0067a13ce0ae831ad\n"
    },
    {
      "commit": "e54d245b993e1347cb32c23a6bdc907a45fab324",
      "tree": "be087de6d12733ca9800724ac77103a0b2173964",
      "parents": [
        "424681e43e454bfcbceb863ddccb875ea57ec26f"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed May 06 10:41:43 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed May 06 10:41:43 2015 -0700"
      },
      "message": "Improve keying for theme caches, rebase system theme on config change\n\nThemes now use an array of applied styles rather than a String to store\ntheir history. They are keyed based on a hash code computed from the\nhistory of applied styles. The themed drawable cache has been abstracted\nout into its own class.\n\nAlso updates system context to use DayNight as the default and ensures\nthat GlobalActions uses the correct context, which exercises the change.\n\nCTS tests have been added in another CL.\n\nBug: 20421157\nChange-Id: I9eb4b7dffd198ad24d02f656eaf0839570b59caa\n"
    },
    {
      "commit": "d1808401ca3bfd6b6b9a975c1e739b194d18f849",
      "tree": "50c16a5c966772fd3b3ac4f7d2e79c97252935c7",
      "parents": [
        "44b60be189183138437a3faf9a73388af0efcf44",
        "059ded5a7b7389b7eefc2502bd712228931ed107"
      ],
      "author": {
        "name": "Prerepa Viswanadham",
        "email": "dham@google.com",
        "time": "Tue May 05 01:05:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 01:06:38 2015 +0000"
      },
      "message": "Merge changes from topic \u0027mwd-merge-050415\u0027 into mnc-dev\n\n* changes:\n  Merge commit \u0027b6f59f4\u0027 into master_merge\n  Merge commit \u0027f6db0ce\u0027 into master_merge\n  Merge commit \u002717455a3\u0027 into master_merge\n  Merge commit \u0027b4d5b32\u0027 into master_merge\n  Merge commit \u0027a1a2fa7\u0027 into master_merge\n  Merge commit \u00278dfdb98\u0027 into master_merge\n  Merge commit \u0027eba66c3\u0027 into master_merge\n"
    },
    {
      "commit": "b9d71a6f89b1183f6389b1774652445a420c6cbf",
      "tree": "b6f17102b2f86b40630e4a7cd681721797a8f324",
      "parents": [
        "9fc943d1a69f2ab0f6d8285b09aef7e344a1fd1a"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 30 10:38:13 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 01 13:56:04 2015 -0700"
      },
      "message": "Add body sensors app op - framework base\n\nChange-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9\n"
    },
    {
      "commit": "df7f02b6e098dbcda6a6d52252c31ee2e02d8e00",
      "tree": "7c2b68e5cbade523fbffc9164415c8f65c9ec0ca",
      "parents": [
        "5a63f6c222874109ddbf4d9732d911532e0fea0c",
        "ad61b8336aa9627a6ae19580bbdc370dc8bd6810"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 30 12:47:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 30 12:47:20 2015 +0000"
      },
      "message": "am ad61b833: Merge \"Fix no vibration during shutdown.\"\n\n* commit \u0027ad61b8336aa9627a6ae19580bbdc370dc8bd6810\u0027:\n  Fix no vibration during shutdown.\n"
    },
    {
      "commit": "0b4daca9ba54b7252ea8c159218391380eb00c8a",
      "tree": "f613c1a320934f01ec040427c84ee00371cb13fe",
      "parents": [
        "5686780404a41901d226cc7ba506c1c0ba284713"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 27 09:47:32 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 29 12:38:09 2015 -0700"
      },
      "message": "Implement user-settable power save whitelist.\n\nThe whitelist is now maintained by DeviceIdleController,\nwhich is moving out into its own independent system service.\nNetwork stats now queries it for the whitelist, instead of\ncollecting that itself.\n\nAlso did a few improvements in alarm manager -- made the\ncode for moving alarms out of the pending list more robust,\nand fixed the debug output to always print the contents of\nthe pending list even if we aren\u0027t in a pending state.  (That\nwould have helped me identify the problem much earlier.)\n\nChange-Id: I0f7119d4c553c3af4d77b2f71246fa6e2c13c561\n"
    },
    {
      "commit": "5d6443bf7c087167e47ea39b13e6af09cb43ad97",
      "tree": "0415e23f50ea376a96c4b28df732a238bc435f07",
      "parents": [
        "834a91dda7724974fbd93bc65b9dd7178edddcdd"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 10 20:15:01 2015 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Apr 13 01:51:22 2015 -0700"
      },
      "message": "Set initial screen brightness earlier in the boot process.\n\nPreviously we had to wait for systemReady before setting the brightness\ndue to the order in which the display power controller was initialized.\nUnfortunately it could take us a rather long time to reach that stage,\nparticularly after an OTA where the screen would remain at maximum\nbrightness for minutes while \"Optimizing Apps\".\n\nThis change moves the brightness backlight setting code deeper\ninto the display manager which has a couple of nice side-benefits\nin that it now becomes much easier to coordinate display power mode\nchanges with display backlight changes.  So this change also resolves\nsome issued with changing the backlight while in DOZE_SUSPEND and\nensuring that backlight changes generally end up being performed\nbefore executing a power mode change except in the case where the\ndisplay needs to come out of suspend first.  (So now the backlight\nwill be set before entering DOZE from the ON state.)\n\nDeleted some dead code in LightService which was in the way.\n\nBug: 19029490\nChange-Id: I494b5223e676248daf2ff8be3ec338845977f73c\n"
    },
    {
      "commit": "9d21ee5d7755755cc5695a9d7cea00a05a4b92aa",
      "tree": "6209cce943f5000f6ce4b4d03ac2ad075d813b4d",
      "parents": [
        "75e4f353835d62c8625fb145e3aba1d442f93a90"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Mar 20 22:18:55 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue Mar 31 12:01:22 2015 -0700"
      },
      "message": "Add CameraService to system server.\n\n- Adds a camera service to system server that forwards events to the\n  mediaserver camera service.\n- Notify the camera service when the device user changes.\n\nBug: 19186859\nChange-Id: I172a2ce46c8e8a131ae7e8dd99d60c5f4f0d6668\n"
    },
    {
      "commit": "c74e289a6537227ab80fa59da9d5d6f88dc9fe33",
      "tree": "ea311fc88c57608572ad1d51b57b454a8cdba729",
      "parents": [
        "6199bffef2eca134c44f0f56f8ddf9f0b8f41319",
        "edc524c90506d80e0fc5fb67e8de7b8f3ef53439"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 30 19:39:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 19:39:27 2015 +0000"
      },
      "message": "Merge \"Add GraphicsStatsService\""
    },
    {
      "commit": "5781cd5b218dc3e5a19d8f69e6fb9f310bed4df6",
      "tree": "7c74f6c49adbe1da5d4b580bbdd69561116f76b9",
      "parents": [
        "1e650e26a7bb2f02635530a46ecd715f9911d40e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Mar 27 13:23:41 2015 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Fri Mar 27 13:23:41 2015 -0700"
      },
      "message": "Make the MIDI Manager optional, enabled by \"android.software.midi\" feature\n\nChange-Id: I76d442ea28beea4b9e2876bfef501d8f61403702\n"
    },
    {
      "commit": "edc524c90506d80e0fc5fb67e8de7b8f3ef53439",
      "tree": "098c18daa80655fe0fa3faab7c39332685c163ef",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 18 15:24:33 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 27 11:50:56 2015 -0700"
      },
      "message": "Add GraphicsStatsService\n\nMore S\u0027s for More Speed\n\nSplit JankTracker\u0027s backing data from the\nclass to allow for data relocation to/from ashmem regions\n\nPack the jank tracking data to fit in 256 bytes\n\nChange-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b\n"
    },
    {
      "commit": "221d2cbf2f418be8de22f5cf3d79a25be1b8d1be",
      "tree": "fb2139c98caa4c739e633b4c45402add6747d63c",
      "parents": [
        "e4df25eded03c110e5feca6ba811ae10dd03735c",
        "b4f01b966bd2ebf89623f9c65462b8b8b7034461"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Mar 24 22:30:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 22:30:14 2015 +0000"
      },
      "message": "Merge \"Remove the ability to disable audio service.\""
    },
    {
      "commit": "b4f01b966bd2ebf89623f9c65462b8b8b7034461",
      "tree": "ca779ab99ad750e0f90748d282ecfbc504622e2c",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Mar 24 12:40:15 2015 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Mar 24 17:22:13 2015 -0400"
      },
      "message": "Remove the ability to disable audio service.\n\nRunning in a configuration without audio service is not fully tested.\nRemove the configuration option for now. Also remove unused delegation\nlayer in SoundPool.\n\nBug: 19891112\nChange-Id: I47be0e32d54b8ef8fa25cf47b85eacf8a4969500\n"
    },
    {
      "commit": "88e98dfa59e68a860d8c3b462ec03bc0b06d6b5c",
      "tree": "10e846a1db4f2307eaa5a32c920e2e9ec0aee79b",
      "parents": [
        "e7f931c4505a6bd62e01bef5193dd724571a672b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 23 13:29:14 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 24 11:03:49 2015 -0700"
      },
      "message": "More work on device idle mode.\n\n- There is now an API for people to find out about\n  its state.\n- Moved DeviceIdleController to be closer to the\n  power manager implementation, since they are\n  closely related.\n- Job scheduler now knows about idle state and doesn\u0027t\n  run jobs while the device is idle.\n- Battery stats now keeps track of \"idling\" vs \"idle mode\".\n  Idling is when we consider the device to be idle,\n  independent of whether we are actually in deep idle mode.\n  This allows us to keep track of longer-term changes\n  independently of cycling in and out of idle mode.\n- Battery stats also now keeps track of package changes in\n  its daily stats.\n- Small optimization to network policy manager service to\n  not touch uids that do not have the NETWORK permission.\n\nChange-Id: I0b3304fb3722c78cdfdd0c1eada7369ece7cbcf9\n"
    },
    {
      "commit": "356176177633a619f4a916248536e4e7a5fb9b2e",
      "tree": "32893c6fc11bae091e7ad4daa0e53c9e9757f726",
      "parents": [
        "2a16460c7c914729e9c256ce39d681524d53b7dc",
        "05199e83a460683e2af06212b0dc7310647e8502"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 23 18:33:08 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 18:33:10 2015 +0000"
      },
      "message": "Merge \"Set the appliance (tv/watch) in the configuration earlier\""
    },
    {
      "commit": "bf2673384cdea54eef2ca1c3e6ee35f5a3ce0e8a",
      "tree": "0439a8402f2e2bd7c33235abb0f62b05f2797a53",
      "parents": [
        "afa10ad39a7effd964d6afc83dab891e98856e1d",
        "56e629322f0739a04c8ff48915226ecf36a13b44"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sun Mar 22 20:03:54 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 22 20:03:55 2015 +0000"
      },
      "message": "Merge \"Bring MountService into the SystemService world.\""
    },
    {
      "commit": "56e629322f0739a04c8ff48915226ecf36a13b44",
      "tree": "b19a76026e7aacd9809487f3a51e22aa1a99b22f",
      "parents": [
        "ed7cfb67e7e697e544ac1220170af741e9e117d6"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Mar 21 20:41:00 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Sat Mar 21 20:41:00 2015 -0700"
      },
      "message": "Bring MountService into the SystemService world.\n\nChange-Id: I7f7db49ff373b199f7b81f184a7c62bee682af67\n"
    },
    {
      "commit": "05199e83a460683e2af06212b0dc7310647e8502",
      "tree": "4848a34dfcd33fdccddaa9595c767b2deeb75adf",
      "parents": [
        "f9eb4b90fe4b00f9f9c8091eb6080d027a6fac9a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 19 14:37:11 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 19 14:40:25 2015 -0700"
      },
      "message": "Set the appliance (tv/watch) in the configuration earlier\n\nSome UI is displayed (boot/optimizing) before the configuration\nhas been completely set. This noteably happens for watches and\nTVs because UIModeManagerService hasn\u0027t started yet.\n\nUIModeManagerService is started earlier, and its dependency\nTwilightService is loaded during the \"all system services ready\"\nboot phase.\n\nb/18388692\n\nChange-Id: Iabdf8ac3eb04ebcb44779d752e19042769cc65c6\n"
    },
    {
      "commit": "8ad2af7e5b28f71e7bdfc1bb097937c6c1d22b18",
      "tree": "9b954b257d7c6e8ea50a4b7fb32e69cad5a0ad99",
      "parents": [
        "27eac1d58fe0b7ca3a2e27f5ed64eff232745f45"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 17 17:00:24 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 19 11:10:55 2015 -0700"
      },
      "message": "First stab at device idle mode.\n\nIntroduce a new device idle controller service that\nmonitor\u0027s the device state and determines when to go\nin to idle mode.  When in idle mode, all we do right\nnow is turn off network access the same as we do for\npower save mode.  Many more things should come in the\nfuture -- stopping the alarm manager from scheduling\n(most) alarms, telling GmsCore for it to stop doing\nstuff, etc.\n\nBattery stats now has state tracking for devie idle\nmode, as well as events for the reasons we can come\nout of idle mode (significant motion or the device\nbecoming active).  Also added new events noting when\npackages are installed.\n\nRenamed the \"low power\" event in battery stats to\n\"power save\" because the former was just way too\nconfusing.\n\nFinally, fix buffer size reading kernel wake locks.\n(Stupidly, just increasing the buffer size.  Ideally\nwe should try to be smarter and grow our buffer to\nfit the data available, but I\u0027ll leave that for\nanother time.)\n\nChange-Id: I0be2062466c83ee9d890c6cf5a228d9cc4090eca\n"
    },
    {
      "commit": "d3b371755df509cabbc5b4451df83309be5439b0",
      "tree": "70d3cd4df91e053459d63cdbc1d1a41c1a25f45b",
      "parents": [
        "28e6aeca3aad075ef4fd7aab08cd1ad1ff9eb555"
      ],
      "author": {
        "name": "riddle_hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Thu Mar 19 01:11:55 2015 +0800"
      },
      "committer": {
        "name": "Riddle Hsu",
        "email": "riddle_hsu@htc.com",
        "time": "Wed Mar 18 19:01:36 2015 +0000"
      },
      "message": "Fix no vibration during shutdown.\n\nIn ShutdownThread:rebootOrShutdown, the vibrator is created\nby \"new SystemVibrator()\" which will use default constructor\nof Vibrator.\n\nAnd because system server is not bound application,\nActivityThread.currentPackageName will be null.\nThen the member mPackageName of Vibrator is null.\n\nWhen doing vibration:\nVibratorService.startVibrationLocked\n -\u003e mAppOpsService.startOperation\n -\u003e getOpsLocked (null package will get null op)\n -\u003e return MODE_ERRORED\n -\u003e no vibration\n\nhttps://code.google.com/p/android/issues/detail?id\u003d160830\n\nPass null context in SystemServer.performPendingShutdown\nbecause vibrator service is not ready, and from the call\nsequence, there is no available context to use.\n\nChange-Id: I3e0175ba6dc2e1a92787873eda4461fba6e89783\n"
    },
    {
      "commit": "0ea7b1b094def6b4db6b9b50df2e7dbf44c5c5ad",
      "tree": "e819b1a3b1daf6d99fba0f07a7b632a99d22b5fd",
      "parents": [
        "1569f98ce18c696d624af56a22a47f772d51b7c8"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Nov 25 21:52:12 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Thu Mar 05 16:06:43 2015 +0900"
      },
      "message": "Enable Ethernet if the device has FEATURE_USB_HOST.\n\nAny device that supports USB OTG is capable of running Ethernet\nvia a USB OTG cable and Ethernet to USB adapter.\n\nCurrently, we only start the Ethernet system service if the\ndevice has FEATURE_ETHERNET, but this requires that every device\nexplicitly declare FEATURE_ETHERNET, which causes bugs like\nhttp://b/18515146 , where the L OTA broke Ethernet on nakasi.\n\nTherefore, start the Ethernet service on all devices that have\nFEATURE_USB_HOST.\n\nBug: 18515146\nChange-Id: I3b4e85d1ad8e1aea9baa046a27f5b4dd68c42028\n"
    },
    {
      "commit": "08c7116ab9cd04ad6dd3c04aa1017237e7f409ac",
      "tree": "6ddb0659a3ecd024e0165ba050940bc40ea257fe",
      "parents": [
        "3062e57072145ba5e71ba8b2cf565d3453db04a7"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Feb 28 13:12:17 2015 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Feb 28 14:47:49 2015 -0500"
      },
      "message": "Remove unused imports in frameworks/base.\n\nChange-Id: I031443de83f93eb57a98863001826671b18f3b17\n"
    },
    {
      "commit": "6156017c2217d0fbbbb03434986250ec6bbd69d8",
      "tree": "2bf29bdfad945edeeb161b9ef9bb6b8108093042",
      "parents": [
        "7d85bc4c435bc37284a814fb8baf53980396ab5b"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Feb 06 19:46:04 2015 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Mon Feb 09 17:13:38 2015 -0500"
      },
      "message": "Move AudioService to services.\n\n...and a few dependencies. Move remaining shared items to AudioSystem.\n\nChange-Id: Ib9623ff867678d34977337856bb0156e8cdaeeb5\n"
    },
    {
      "commit": "10024b3dc12a8552c1547b67810c77b865045cc8",
      "tree": "ad7f453999f8387077c40251355781e0d15cb4d1",
      "parents": [
        "34b064a1406ebb2eb10b5b1f24c845891748c238"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Thu Dec 11 13:44:20 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Jan 14 16:51:54 2015 -0800"
      },
      "message": "MidiManager updates:\n\nMIDI ports are now implemented as file descriptors directly between the sender\nand receiver, so the MidiService is no longer in the message path.\n\nTo facilitate the above, each port has its own file descriptor, rather than multiplexing\nall ports on a device through a single socket.\n\nAdded a new class MidiDeviceServer, which is used by implementors of MIDI devices.\nThis replaces the MidiVirtualDevice class (which only was included in changes that were reviewed but never submitted).\n\nThe USB MIDI implementation has moved from the MIDI service to the USB service.\nThe USB MIDI implementation uses MidiDeviceServer as its interface, so we now have a common\ninterface for all MIDI device implementations.\n\nChange-Id: I8effd1583f344beb6c940c3a24dbf20b477a6436\n"
    },
    {
      "commit": "8c07abe2206bf885d9ecf3eb8659bddd6e2c6633",
      "tree": "a8592ce8d1d20b6a1e9a8927a67643dea1fc7ff8",
      "parents": [
        "dc460d3512d0861404bb7a076109f77f5c78ad82",
        "02775fca2b78af8089e9f50575ca639898f4f21c"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Tue Dec 09 23:20:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 09 23:20:31 2014 +0000"
      },
      "message": "am 02775fca: am 8dd185b0: am 5d2c1e69: (Telecom-system part 3) Adding Telecom Loader Service\n\n* commit \u002702775fca2b78af8089e9f50575ca639898f4f21c\u0027:\n  (Telecom-system part 3) Adding Telecom Loader Service\n"
    },
    {
      "commit": "02775fca2b78af8089e9f50575ca639898f4f21c",
      "tree": "90d0667739942a10de6bec60c4576c283be2f6db",
      "parents": [
        "ea06d6ceb70a0a091cae674bb7296bb470f7e594",
        "8dd185b08fae8d41bec558ab5a63012454cbb78e"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Tue Dec 09 00:18:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 09 00:18:08 2014 +0000"
      },
      "message": "am 8dd185b0: am 5d2c1e69: (Telecom-system part 3) Adding Telecom Loader Service\n\n* commit \u00278dd185b08fae8d41bec558ab5a63012454cbb78e\u0027:\n  (Telecom-system part 3) Adding Telecom Loader Service\n"
    },
    {
      "commit": "5d2c1e69ecb851121177396ac376dee1fb41d421",
      "tree": "a51a21da5660fa306eb1f6da4a88c17edd59981a",
      "parents": [
        "4df65bf1eb454814954421403da9f8b5fcb82180"
      ],
      "author": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Fri Nov 21 15:20:15 2014 -0800"
      },
      "committer": {
        "name": "Santos Cordon",
        "email": "santoscordon@google.com",
        "time": "Mon Dec 08 23:30:10 2014 +0000"
      },
      "message": "(Telecom-system part 3) Adding Telecom Loader Service\n\nBug: 18112269\nChange-Id: I85ab03156bf906fdc72b459c4c68240ab3bf1894\n"
    },
    {
      "commit": "67f8e8bd8927f24147d7a1edd6ec3db1a54233b2",
      "tree": "9f559cd794ceeb33e8b1a92bbdfcfe0937602c2c",
      "parents": [
        "0927c43c38c2ef12e8b15490adf0d5d3796c39b7"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Dec 01 13:54:59 2014 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Dec 08 10:45:37 2014 -0800"
      },
      "message": "MIDI Manager work in progress\n\nStill to do:\n\nAdd MidiInputPort and MidiOutputPort classes\nSchedule sending MIDI events in the future\nSecurity/permissions\nReconsider interface for virtual devices\nLook into performance optimizations\n\nChange-Id: I9b7d63b196996a04be0a830efa913043da1328a8\n"
    },
    {
      "commit": "6ec2cbd8d2b26714d5771e5560bdd2b5b042287b",
      "tree": "ce057746c26239e853d8972cdf9b712612335488",
      "parents": [
        "7dedb1242567061b5651c671a221185b1ba901c8",
        "c25cfc57e0d863b002620f5e7dd14822418c678f"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Mon Dec 01 23:59:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 01 23:59:50 2014 +0000"
      },
      "message": "am c25cfc57: am 24d02652: Merge \"Prevent EntropyMixer from registering with service manager.\"\n\n* commit \u0027c25cfc57e0d863b002620f5e7dd14822418c678f\u0027:\n  Prevent EntropyMixer from registering with service manager.\n"
    },
    {
      "commit": "24d02652bf8df12a41acf500d958109ef3d99b9a",
      "tree": "8c62e9d909acb3816ca572c75ec110333a0fc9b8",
      "parents": [
        "c859b85cb530e608da775bb18744a996483a0311",
        "fe8afa99a7109e7237b5e51271f6a94101dc7e68"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Mon Dec 01 23:49:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 23:49:26 2014 +0000"
      },
      "message": "Merge \"Prevent EntropyMixer from registering with service manager.\""
    },
    {
      "commit": "fe8afa99a7109e7237b5e51271f6a94101dc7e68",
      "tree": "d01faad0eb6e026caaabbc0cf9399a55e0757b9b",
      "parents": [
        "fc54573373ff965aa40cccdc1ab11c1c880c8930"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Tue Nov 25 12:59:12 2014 -0800"
      },
      "committer": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Wed Nov 26 13:50:30 2014 -0800"
      },
      "message": "Prevent EntropyMixer from registering with service manager.\n\nEntropyMixer is designed to be triggered in two ways, as either the\nresult of a self-set timer or of one of three system broadcasts.  It is not\nmeant to be triggered in any other way, so exposing it via servicemanager\nis undesirable.\n\nBug: 18106000\n\nCherry-pick of commit: 9287e0dd272b85b475e33bcbd7d868517a0f98f9\n\nChange-Id: I9aeb35e7ffde75090f4234ea193514fb883b1425\n"
    },
    {
      "commit": "9fd6d9d9952b14bbef7e3f31250ae11a6a7a5b49",
      "tree": "75ecc940d766321c5aed07a5b9347b678f2129d7",
      "parents": [
        "0e0dbf9367371a0315461f9afd5167d56fc9428c",
        "4e3f5d3fe41c0ecf68f5c5f2a4bb89ea79ffab15"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Wed Nov 26 17:22:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 26 17:23:01 2014 +0000"
      },
      "message": "Merge \"Remove if(true) line.\""
    },
    {
      "commit": "0e0dbf9367371a0315461f9afd5167d56fc9428c",
      "tree": "6bff63fb974587bb248e5da45f95b0a12907b3ef",
      "parents": [
        "e2d619b6633616f8a993ff7a9ea889c258b40153",
        "9287e0dd272b85b475e33bcbd7d868517a0f98f9"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Wed Nov 26 17:16:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 26 17:17:00 2014 +0000"
      },
      "message": "Merge \"Prevent EntropyMixer from registering with service manager.\""
    },
    {
      "commit": "4e3f5d3fe41c0ecf68f5c5f2a4bb89ea79ffab15",
      "tree": "aec7d479c91347c00473cc31784918c93f9fc7cc",
      "parents": [
        "3a1c4db53ee41fb34bbb6314886e2e1a8ad9889c"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Tue Nov 25 15:33:26 2014 -0800"
      },
      "committer": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Wed Nov 26 09:06:57 2014 -0800"
      },
      "message": "Remove if(true) line.\n\nCommit: e4d9a01bfc7451afff1ed399a5801c7aa2af2831 introduced an\nif (true) block with the intention of changing it.  Remove it.\n\nChange-Id: Ida637cb69c57b7b676f37a3397d72e0bf010523a\n"
    },
    {
      "commit": "c9269da26cad88cc4d2fd84607e5245b19b29067",
      "tree": "44799e54056a4da76b0184800f78ef877c632416",
      "parents": [
        "ab1a53c509edbc8bacd944233335587dffd95999",
        "edda97c9ffc4fae08744e42fdbf60040e8f97b99"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 26 11:10:48 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 11:10:48 2014 +0000"
      },
      "message": "am edda97c9: am fdbef408: Merge \"Start MountService before performBootDexOpt\"\n\n* commit \u0027edda97c9ffc4fae08744e42fdbf60040e8f97b99\u0027:\n  Start MountService before performBootDexOpt\n"
    },
    {
      "commit": "fdbef4081d715de59525d58d44881b00f616616f",
      "tree": "2d8083a71d5a056092bb5f810c81aa88ad57535c",
      "parents": [
        "af5bd75b3d65fc710784f59d1c22c164312e2691",
        "ada454152e0e2a1771f2d6574057afdb5fe01fe4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 26 10:59:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 26 10:59:29 2014 +0000"
      },
      "message": "Merge \"Start MountService before performBootDexOpt\""
    },
    {
      "commit": "9287e0dd272b85b475e33bcbd7d868517a0f98f9",
      "tree": "316b63d497df27d14ea5109e1d2883b1353acef7",
      "parents": [
        "3a1c4db53ee41fb34bbb6314886e2e1a8ad9889c"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Tue Nov 25 12:59:12 2014 -0800"
      },
      "committer": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Tue Nov 25 12:59:12 2014 -0800"
      },
      "message": "Prevent EntropyMixer from registering with service manager.\n\nEntropyMixer is designed to be triggered in two ways, as either the\nresult of a self-set timer or of one of three system broadcasts.  It is not\nmeant to be triggered in any other way, so exposing it via servicemanager\nis undesirable.\n\nBug: 18106000\nChange-Id: I9aeb35e7ffde75090f4234ea193514fb883b1425\n"
    },
    {
      "commit": "4a84116d112f7467d73ff7ca4102dd26ea92d776",
      "tree": "7ad8cb50bd18833dda4d8303b93df0647846e27a",
      "parents": [
        "59093d925decaf6ddf2e952de25e3cdd1b492d81"
      ],
      "author": {
        "name": "padarshr",
        "email": "padarshr@codeaurora.org",
        "time": "Wed Nov 05 16:54:50 2014 +0530"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 25 10:42:15 2014 -0800"
      },
      "message": "Start MountService before performBootDexOpt\n\nThis change is to start Mountservice before starting\nperformBootDexOpt, as in one case, in performBootDexOpt\nwhen system upgrade happens, StorageManager will be started to\nget the low threshold of DataDir. But, at this point, as\nMountservice is still not up, StorageManager will end up\nhaving a null object of Mountservice.\n\nChange-Id: I6dec474266faa5de67449c1bbe6ef30791e5ecaa\n"
    },
    {
      "commit": "343f478241fab49c909b229d6876ff8405e7b0d5",
      "tree": "b51a935e8cc0dc55b6ee3d0c8d58e810380b1bcc",
      "parents": [
        "d843564331e2db18166d3deb8570502092d532ea"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 10 14:23:41 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 19 14:41:08 2014 +0000"
      },
      "message": "Tell installd when boot completes.\n\ninstalld can then clear the \".booting\" marker from the dalvik-cache\n(owned by root). This marker is used to detect boot loops.\n\nbug: 18280671\n\n(cherry picked from commit 76a748e62f354c799342044f724e1f4b80121837)\n\nChange-Id: I2364c05837ac04d428b5a34ab1802964a11d2df4\n"
    },
    {
      "commit": "ada454152e0e2a1771f2d6574057afdb5fe01fe4",
      "tree": "f47c56ea12c74b34f161c5444bf906b1829f52a0",
      "parents": [
        "a58336f6c8aa44373485e5a6d7ec32677387a935"
      ],
      "author": {
        "name": "padarshr",
        "email": "padarshr@codeaurora.org",
        "time": "Wed Nov 05 16:54:50 2014 +0530"
      },
      "committer": {
        "name": "Maunik Shah",
        "email": "mshah@codeaurora.org",
        "time": "Tue Nov 18 10:53:18 2014 +0000"
      },
      "message": "Start MountService before performBootDexOpt\n\nThis change is to start Mountservice before starting\nperformBootDexOpt, as in one case, in performBootDexOpt\nwhen system upgrade happens, StorageManager will be started to\nget the low threshold of DataDir. But, at this point, as\nMountservice is still not up, StorageManager will end up\nhaving a null object of Mountservice.\n\nChange-Id: I6dec474266faa5de67449c1bbe6ef30791e5ecaa\n"
    },
    {
      "commit": "76a748e62f354c799342044f724e1f4b80121837",
      "tree": "72248a91d6be7824705f5cd508afd522802ed3da",
      "parents": [
        "54a5ca1aad1bdbb154ca731ab9a6c026d58a42d6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 10 14:23:41 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 11 10:50:46 2014 +0000"
      },
      "message": "Tell installd when boot completes.\n\ninstalld can then clear the \".booting\" marker from the dalvik-cache\n(owned by root). This marker is used to detect boot loops.\n\nbug: 18280671\n\nChange-Id: I878f1463c7f523892605c17b980a51ac3b6645e2\n"
    },
    {
      "commit": "7eb599b267d00cbde891c0a87924f2f5086f4497",
      "tree": "01978b12641d7c03ff3edecc8e2f8d672246a5a8",
      "parents": [
        "f6e297398ba23ce7d26cf2e0efaf0d8a2230fe1c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 22 15:57:32 2014 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 23 11:27:42 2014 -0700"
      },
      "message": "Get UsageStats if no PackageUsage is available for boot dexopt filtering.\n\nBug: 17191977\nChange-Id: I33e18459e49afa42b8e8218574a2434e5205a6da\n"
    },
    {
      "commit": "2cab8825b3214b67b9462eaf5a1d777e9888d488",
      "tree": "7d5d85aeca9850a2ed88aea7140d1317eeb72eaf",
      "parents": [
        "fe09db1e0d5af46e7b643c37ba52f62500b7f043"
      ],
      "author": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 13:31:39 2014 -0700"
      },
      "committer": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 13:33:25 2014 -0700"
      },
      "message": "Add system property config.disable_networktime to configure NetworkTimeUpdateService\n\nBug: 17934875\nChange-Id: Ie5acf7266a5766f407db8f23d2c3d26920fa4020\n"
    },
    {
      "commit": "d25e4efdc1974131bfbdaecbec9302a891567a94",
      "tree": "d182dcd57e710c8d4aacc1b42e1ab623af94c2f8",
      "parents": [
        "c597c55ffeb9debcf2dba8a77a80caa9016ea4d1"
      ],
      "author": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 20:22:24 2014 +0000"
      },
      "committer": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 20:22:24 2014 +0000"
      },
      "message": "Revert \"Add system property config.disable_timeupdate to configure NetworkTimeUpdateService\"\n\nThis reverts commit c597c55ffeb9debcf2dba8a77a80caa9016ea4d1.\n\nChange-Id: Idc83e582c10dda2c6245ec19921785f361a07a68\n"
    },
    {
      "commit": "c597c55ffeb9debcf2dba8a77a80caa9016ea4d1",
      "tree": "d34eec7ee34dd27e8c045fff349e8717b5fa6250",
      "parents": [
        "349e3640b784c277f983ec9c849db3131d135ccf"
      ],
      "author": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 10:55:33 2014 -0700"
      },
      "committer": {
        "name": "Chenjie Luo",
        "email": "cjluo@google.com",
        "time": "Thu Oct 16 11:36:31 2014 -0700"
      },
      "message": "Add system property config.disable_timeupdate to configure NetworkTimeUpdateService\n\nBug: 17934875\nChange-Id: Ic1acff13190f38cedb1ecf22783d4dfd3373511d\n"
    },
    {
      "commit": "8d05172112436a81bed6e4a0810f8914509d8a4d",
      "tree": "6436496aef38ce21c06c6d073fd28edcea204ba3",
      "parents": [
        "f178591f26a535ec3cffa3520c3ca387ec44959b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 01 14:59:58 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Oct 01 16:58:56 2014 -0700"
      },
      "message": "More work on issue #17656716: Unhandled exception in Window Manager\n\nFix Slog.wtf to not acquire the activity manager lock in its code\npath, so that it can never deadlock.  This was the original intention\nof it, but part was missed.\n\nNow we can put back in the code to detect when strict mode data is\ngetting large (a little more targeted now to the actual problem),\nand use Slog.wtf to report it.  And as a bonus, when this happens\nwe will now clear all of the collected violations, to avoid getting\nin to the bad case where IPCs start failing.  So this should be\ngood enough for L to fix the problem, with wtf reports for us to\nsee if the underlying issue is still happening.\n\nFinally, switch a butch of stuff in the system process from Log.wtf\nto Slog.wtf, since many of those are deadlocks waiting to happen.\n\nOh and fix a crash in the settings provider I noticed in APR.\n\nChange-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041\n"
    },
    {
      "commit": "996b5af40c1af8f61005b584465d4ec392b2d209",
      "tree": "5f1e85609cfa6529286c06cb3974cdde8d968669",
      "parents": [
        "11cfe2c0369820835def8495303189ed398480ea"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Wed Aug 27 23:50:37 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Wed Aug 27 23:52:01 2014 -0700"
      },
      "message": "Start TvInputManagerService when the device supports FEATURE_LIVE_TV\n\nBug: 17284986\nChange-Id: I5efeffecfcb771cb2e6180ccfd665464611a24fc\n"
    },
    {
      "commit": "0bbd2aaace3c08671e0f039859f241429a2600c6",
      "tree": "c6a3198897c70b7d383e12545bf6fdac74a8feb3",
      "parents": [
        "1698297daf8068bc9e6971d43744d48f1672bab2"
      ],
      "author": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Tue Aug 26 15:43:46 2014 -0700"
      },
      "committer": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Tue Aug 26 15:43:46 2014 -0700"
      },
      "message": "remove call to passpoint service start\n\nChange-Id: Ibc6e537544c2228e8b07f734158182d1e4817d17\n"
    },
    {
      "commit": "6d2a9492e2b19421165f0cd918d9f28595bfb770",
      "tree": "61aec347859424bcaa3a8b8f2e10d97874efef82",
      "parents": [
        "77437731a70c74d24a3a63d5d1cb899ffae34eb1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 07 19:06:49 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Aug 11 17:13:03 2014 -0700"
      },
      "message": "Eliminate power manager latency for boot completed.\n\nThe power manager disables the power button until boot completed\noccurs.  If there are many pending broadcasts in the queue, it\nmay be possible for BOOT_COMPLETED to be delayed for several\nseconds after boot.\n\nTo avoid the delay, introduced a new boot phase which is\nsent to system services immediately when boot completed happens.\n\nBug: 13398280\nChange-Id: I1833d2ffb20305009dd76363b43e534034f1d0a2\n"
    },
    {
      "commit": "a351ab96987381ffe7ea29a7cdec1e7fbd1497d5",
      "tree": "8cec8f73970a6b7fa81e6e279080d76d065e5185",
      "parents": [
        "d78e8114988326d557a1405e669b330f63fbf0d3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 08 17:35:50 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sat Aug 09 13:31:59 2014 -0700"
      },
      "message": "Fix issues 16739817 and 16709247 in voice interaction service.\n\nIssue #16739817 VIS doesn\u0027t start for non-primary user(s)\nIssue #16709247 GSA is not the default voice interaction agent\n\nThese are both fixed by getting rid of the existing code for applying\nthe default voice recognizer, moving it in to the voice interaction\nmanager service, and extending it to also set up the default voice\ninteraction service.\n\nChange-Id: If8d5936c28aebfa7eff77c8d99241c3a2ffdb0a4\n"
    },
    {
      "commit": "4dbeb359b2cfeb63d6ec3ecb702f2bd836db058a",
      "tree": "fdded63f6c0e1c9dff148f70ea5c0f49eee6aa9c",
      "parents": [
        "161536b5970ba5ab43233e7695ef69ba2bb804f4"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Tue Jul 29 19:14:24 2014 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Fri Aug 01 14:24:47 2014 +0100"
      },
      "message": "Cherry pick Make WebViewUpdateService a SystemService. DO NOT MERGE\n\nMigrate WebViewUpdateService to the newer SystemService approach instead\nof ServiceManager.addService.\n\nOriginal Bug: 16403706\nOriginal Change-Id: I21aa67a41c22c3c20ba9e82eb87e5d610fe130e8\n\nBug: 16723226\nChange-Id: Id276b71ee547e683f0756bcee0f4978ce342c2af\n"
    },
    {
      "commit": "810c052d9b117217152c2a609ccec056a2a61d1e",
      "tree": "fbc663c7cf06cba6a8eda4accbe7d718023c646f",
      "parents": [
        "6c778cebc73e7eb76510f6e2183d804b8c07082b"
      ],
      "author": {
        "name": "Primiano Tucci",
        "email": "primiano@google.com",
        "time": "Fri Jul 25 18:03:16 2014 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Fri Aug 01 14:24:09 2014 +0100"
      },
      "message": "Cherry pick Introduce startIsolatedProcess private API in ActivityManager DO NOT MERGE\n\nThe new API spawns a isolated process, using a custom uid, entrypoint and\nabi. Such API is used by the WebViewFactory to spawn its unpriviledged\nbut trusted process (hence the fixed uid) which rewrites the rerlo file\non boot / when an update occurs.\nSince both the ActivityManager service and the WebViewUpdate service\nlive in the SystemServer their calls be dispatched locally and no\nbinder interface needs to be exposed for the new startIsolatedProcess API.\n\nOriginal BUG:16403706\nOriginal Change-Id: I327b59735c12698595e0dbcc4da5d759c9103b0a\n\nBug: 16723226\nChange-Id: Iecb49888e11eec9d302d9712953fd498db5821af\n"
    },
    {
      "commit": "d97e1fdb29db15c5117e2502da2f1f1fb82233b6",
      "tree": "0ba3e9fb285376d2799b35b6d322fd303ccb6b16",
      "parents": [
        "8b5a858ee388729cc6e1c386965d5c31cd2a47aa"
      ],
      "author": {
        "name": "Ye Wen",
        "email": "ywen@google.com",
        "time": "Thu Jul 24 12:56:45 2014 -0700"
      },
      "committer": {
        "name": "Ye Wen",
        "email": "ywen@google.com",
        "time": "Tue Jul 29 16:32:07 2014 -0700"
      },
      "message": "Implement broker pattern for imms (1/3)\n\nb/16324360\n\nChange-Id: I41dc9823820eed60406973f5edb5a71deb4b0130\n"
    },
    {
      "commit": "c4272f32aec68ae2377141a2d6d4e6059fb36714",
      "tree": "46b7339f855ad0b47bacdd2aaecac8cf590dc88f",
      "parents": [
        "d65e8f4b6b37b274fcd5b7701a73eaef7c4ba8b4"
      ],
      "author": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Fri Jul 25 17:46:14 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Mon Jul 28 09:00:10 2014 -0700"
      },
      "message": "Enable RTT End-to-end\n\nThis change includes various fixes to first RTT implementation and\nenables RTT APIs end-to-end. Fixes include proper marshalling of\nobjects across API and service and JNI fixes.\n\nChange-Id: Ie4ba1ffc6c5b42593e931438b3f03e201ff6be71\n"
    },
    {
      "commit": "3c153519ca5f2b66b88901374383f943c9d77df7",
      "tree": "a8af9d9bec018b08cb47e7c6ac622e449c8585d1",
      "parents": [
        "f7496d7e0c475e1b3f16129c42c8540bd810ec85"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 23 17:34:34 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 25 17:18:54 2014 +0000"
      },
      "message": "Add Per-User logging of UsageStats\n\nChange-Id: I4518c5d3c56b3821292accb886f9fb21f3a8b25f\n"
    },
    {
      "commit": "0fdcb74cc39b20e161f08c88414e7672bf9afa23",
      "tree": "9cbc5efd06a748a35f23a6270978effd7336972e",
      "parents": [
        "cdc7448b29b887f6464231c780c23be5e32aef82"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jul 24 16:28:35 2014 +0900"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Thu Jul 24 16:28:35 2014 +0900"
      },
      "message": "Disable TvInputManagerService on non-TV devices.\n\nThe block condition is based on FEATURE_LEANBACK instead of\nFEATURE_TELEVISION which is deprecated in favor of FEATURE_LEANBACK.\n\nBug: 16497355\nChange-Id: I433051362fe94ea453afe9344800fb4f8c7076a9\n"
    },
    {
      "commit": "0debc9aff4c0cbc28e083a948081d91b0f171319",
      "tree": "3ac4d7a9927cdd2741f65393d4e6855508ab3c26",
      "parents": [
        "d3de42cae84fadfa1befd082a2cf1bf72f9ad82a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jul 16 19:09:13 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jul 18 15:24:20 2014 -0700"
      },
      "message": "First iteration of a public UsageStats API\n\nUsageStats API that allows apps to get a list of packages that have been\nrecently used, along with basic stats like how long they have been in\nthe foreground and the most recent time they were running.\n\nBug: 15165667\n\nChange-Id: I2a2d1ff69bd0b5703ac3d9de1780df42ad90d439\n"
    },
    {
      "commit": "c7a845de4a9578e8093b6abcb90c6836d360d5b3",
      "tree": "76e1882bac2721c903ccb310a6e2417cc2cf93b1",
      "parents": [
        "86f8a7425ba88c718a6ab8bba35cfbc9e314e8a0",
        "c39d47a8e7c74bd539104b0efab898ef6fc43ddf"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 17 21:59:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 21:15:46 2014 +0000"
      },
      "message": "Merge \"Add MediaProjection APIs.\" into lmp-dev"
    },
    {
      "commit": "c39d47a8e7c74bd539104b0efab898ef6fc43ddf",
      "tree": "98b0c601c9d3b0249e4bd2324aa66ad138e29ad9",
      "parents": [
        "6ccb5f894e11a0ee59c0632643f265427731536e"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Jul 08 18:07:36 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jul 17 14:30:19 2014 -0700"
      },
      "message": "Add MediaProjection APIs.\n\nThe new MediaProjection infrastructure allows the system to hand out\ntokens granting the ability to capture the screen\u0027s contents, audio,\netc. at a granular level. It\u0027s intended to be used both for screen\ncasting, via the cast APIs, as well as screen sharing via third party\napplications.\n\nThe screen sharing case is implemented, but all of audio capturing\nis still forthcoming.\n\nChange-Id: I4b24669bed7083e11413c10ed8d6b025f5375316\n"
    },
    {
      "commit": "dc00a84af15ff3594a6dfa512be21095bf9fee82",
      "tree": "ce23ac29855ef8fa696285a2fe7ae4a50f67b645",
      "parents": [
        "6ccb5f894e11a0ee59c0632643f265427731536e"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Thu Jul 17 14:55:00 2014 +0100"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Thu Jul 17 21:18:40 2014 +0000"
      },
      "message": "Update WebViewUpdateService to receive PACKAGE_REPLACED broadcast.\n\nThis allows the WebViewUpdateService to receive notifications that\nan update has been installed and we need to trigger recreation of\nthe relro file.\n\nbug: 16329377\nChange-Id: I088e61487416add997995db304beca0cde71390c\n"
    },
    {
      "commit": "08cfaf672604422dd355d6703aec78f3aa5ee74e",
      "tree": "0b295c181e5ba8cf6b69f431e97a17bcb3d0dabd",
      "parents": [
        "b5de924fad4f9dcd4d8137c0e6a17a41c32bc22a"
      ],
      "author": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu May 08 16:07:05 2014 +0100"
      },
      "committer": {
        "name": "Torne (Richard Coles)",
        "email": "torne@google.com",
        "time": "Thu Jul 17 09:18:43 2014 -0700"
      },
      "message": "Use the WebView\u0027s loader library to load the real library.\n\nLoad libwebviewchromiumloader and use it to load the real WebView\nlibrary, to enable sharing of the relro segment between different\napplication processes without requiring that the library be preloaded in\nthe zygote. A system service is added to track whether the relro segment\nfile has been prepared, and block loading of the library until it has\nbeen.\n\nBug: 13005501\nChange-Id: I846b37c7b8e2a4eb8a39e4fd455bccbb2048c173\n"
    },
    {
      "commit": "a0c4a06ba336df1c1775d3918f20ba14b4607052",
      "tree": "1680154499176cf78d0769372607020252cc865e",
      "parents": [
        "a5d98da691c7e7e2de44ecc4f9edf6a664074532"
      ],
      "author": {
        "name": "Yuncheol Heo",
        "email": "ycheo@google.com",
        "time": "Thu Jul 10 20:49:27 2014 +0900"
      },
      "committer": {
        "name": "Yuncheol Heo",
        "email": "ycheo@google.com",
        "time": "Sat Jul 12 11:13:48 2014 +0900"
      },
      "message": "Add the system feature for HDMI-CEC.\n\nChange-Id: I2a985cedf49d50649c89f2ac5fbb80a81300156d\n"
    },
    {
      "commit": "68d4acd205e8c2da524e62734ca42847306cc029",
      "tree": "abe5eda5e7337866ec1dcabd7c9ac8a704177bca",
      "parents": [
        "dbbf07a5c7f514f2168f236e1df3b2ca70d4ab2f"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue Jul 01 19:40:41 2014 -0700"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Wed Jul 09 16:27:17 2014 -0700"
      },
      "message": "Service for reading and writing blocks to PST partition\n\nPermits apps with permission\nandroid.permission.ACCESS_PERSISTENT_PARTITION to obtain\na read and write data blocks to the PST partition.\n\nOnly one block ever exists at one time in PST. When\na client writes another block, the previous one is\noverwritten.\n\nThis permits storing a block of data that will live\nacross factory resets.\n\nChange-Id: I8f23df3531f3c0512118eb4b7530eff8a8e81c83\n"
    },
    {
      "commit": "4bb015d90ae2aa3ce30778f3f584e0b7124f7505",
      "tree": "6dd49d903a2241039a097213fef7ed381d9c41a1",
      "parents": [
        "4ec2023349f19b2fd2461aa3c9b208eb799a662e"
      ],
      "author": {
        "name": "Joe LaPenna",
        "email": "jlapenna@google.com",
        "time": "Fri Jul 04 17:15:54 2014 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 08 22:52:02 2014 +0000"
      },
      "message": "CW on Master: Disable CaptivePortalTracker, EthernetService\n\nBUG: 15143878\n\nChange-Id: I6c534a28c1fcd475982ae70e7f3af69f3a219e24\n"
    },
    {
      "commit": "be7c50e0a14e91330ce13161bc14a33d34ff6aca",
      "tree": "d502e9b3a295f0cbfdd91b9b597c7452eb05b784",
      "parents": [
        "5dfb86bb09a1c5eebd6522426c94b92c02154779"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 30 14:43:28 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 01 09:22:57 2014 -0700"
      },
      "message": "Add network access blocking when in battery save mode.\n\nThe network policy manager now monitors battery save mode and,\nwhen in battery save, uses its facility to block access to metered\nnetworks to block access to all networks.  That is, it tells the\nnetwork management service that all networks have an (infinite)\nquota, and puts various app uids to be restricted under quota\ninterfaces as appropriate.\n\nThis new network blocking needs a new facility to be able to white\nlist apps, such as GmsCore.  To do this, I refactored the package\nmanager\u0027s permission configuration stuff into a separate SystemConfig\nclass that can be used by others, and it now has a new tag to\nspecify package names that should be white-listed for power save\nmode.  These are retrieved by the network policy manager and used\nto build a whitelist of uids.\n\nThe new general config files can now go in system/etc/config,\nthough currently everything still remains in the permissions dir.\n\nStill left to be done is changing the semantics of what uids are\nallowed in this mode, to include all perceptable uids.  (So that we\ncan still do things like background music playback.)  This will be\ndone in a follow-on CL.\n\nChange-Id: I9bb7029f61dae62e6236da5ca60765439f8d76d2\n"
    },
    {
      "commit": "05d38d28b622036a7a1f6dd7e751af023a37e876",
      "tree": "62fa03a0ba3613ceb822520a42ce4b3021a81dca",
      "parents": [
        "2139276ce8b54aba5faa858ca69ed5f01445c269",
        "06e658f324a937bec1c5ddbe9c3100c3d2fec371"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed Jun 18 01:39:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 17 20:55:27 2014 +0000"
      },
      "message": "Merge \"Hide IFingerprintService and IFingerprintServiceReceiver\""
    },
    {
      "commit": "06e658f324a937bec1c5ddbe9c3100c3d2fec371",
      "tree": "d8752a22caf64e1c8fb6db892519d8a2935d54ce",
      "parents": [
        "cd589baba922f6b359ed910c3fbc711242c91531"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jun 17 15:59:40 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jun 17 18:38:14 2014 -0700"
      },
      "message": "Hide IFingerprintService and IFingerprintServiceReceiver\n\nThe @hide was being ignored because they were being used by the\nconstructor.  Fixed by making the FingerprintManager constructor\nhidden.\n\nChange-Id: I3cd409df5055579f5004b08d00d5d951b8e5afd3\n"
    },
    {
      "commit": "2139276ce8b54aba5faa858ca69ed5f01445c269",
      "tree": "b7016d3863d000b731f2ef9b15b4633157ab7d30",
      "parents": [
        "2c43c339de5aaf4fef58aa9b5ac3af48609263a8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 13 19:00:36 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jun 17 18:20:42 2014 -0700"
      },
      "message": "Refactor BatteryService to new pattern.\n\nApply SystemService pattern to BatteryService.\n\nChange-Id: I4971b2da8d2aed4d14440fb65863a8b916bab03c\n"
    },
    {
      "commit": "2c43c339de5aaf4fef58aa9b5ac3af48609263a8",
      "tree": "a6ffedae0013f7c54483fdf9cd60de6fb6e22b46",
      "parents": [
        "12758423770455f75fede0cb47d743ea18640f2f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 12 22:38:59 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jun 17 18:20:42 2014 -0700"
      },
      "message": "Resolve boot time dependencies related to the power manager.\n\nThis change fixes a bug where native daemons may try to communicate\nwith the power manager before it was fully initialized due to a race\nbetween publishing the binder service and completing init().\n\nThe solution was to simplify the dependencies related to the power\nmanager.  It turns out that most services that were passed in\ninit are not actually needed until systemReady.  What remained\nwas a dependency on the activity manager to check permissions for\nincoming calls.  So now we start activity manager first.\nHowever, the activity manager also depends on power manager for\nwakelocks.  To break the cycle, we now defer initializing the activity\nmanager\u0027s wakelocks until after the power manager has been started.\n\nCleaned up a bunch of boot-time service dependencies so that we\ncan have better confidence that they are correctly maintained.\n\nBug: 13884219\nChange-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe\n"
    },
    {
      "commit": "a7596147b43940cad3f76c53ed154ef088b9269b",
      "tree": "20f65f8ce8fe20e045454d69aec904e9271dfc01",
      "parents": [
        "afc00e1c81a2ae00dc01bb980bc617f382441102"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Fri Jun 06 15:00:49 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Jun 17 14:03:37 2014 -0700"
      },
      "message": "First pass at FingerprintService integration with HAL.\nMove FingerprintService to framework services directory\nFix merge conflicts.\n\nTested: scanning, enrolling, removing.\n\nChange-Id: I58b2b902cb671dc82cdaa54a195ba5f1a154622c\n"
    },
    {
      "commit": "5b2034e2cc1cd8cb934160465364cb1eda99c208",
      "tree": "d702ab87317b082a38bc1fde1bc9a9cb4633f20e",
      "parents": [
        "564054146e7286b0d046591c0bd3195b0e4a6cf3",
        "cf1a2f73fc102be2ac7060ac97d4682bb2565ca5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 17 21:40:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 17 20:55:27 2014 +0000"
      },
      "message": "Merge \"Switch everything to scheduled jobs\""
    },
    {
      "commit": "cf1a2f73fc102be2ac7060ac97d4682bb2565ca5",
      "tree": "f00e01d283dbf43199d2d3692d578b7e18e9326c",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 16 15:51:39 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 17 12:14:45 2014 -0700"
      },
      "message": "Switch everything to scheduled jobs\n\nEverything that used the IdleMaintenance APIs/broadcasts gets to use the\nspiffy new JobScheduler instead.  Hooray!\n\nOn top of that, the now-obsolete \"idle maintenance\" APIs are now gone\nentirely.  Double hooray!\n\nBug 14993295\n\nChange-Id: I5fb67c296ca8cd0ba8a2c8760a0f0d9d962d813b\n"
    },
    {
      "commit": "a23f56b95c6c924d1b352859b72cbc77010cfd14",
      "tree": "fbebb84d94e9f80e8e3034628677580bcffba2bb",
      "parents": [
        "9696db1b8b3b6517a1686ffecca11406d480e6a0",
        "5592a725dd89e433191d3dd835ed99f38a3de474"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 11 17:43:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 11 17:43:15 2014 +0000"
      },
      "message": "am 34852095: Merge \"Don\\\u0027t enable Ethernet on the emulator.\" into lmp-preview-dev\n\n* commit \u002734852095d9148945edc39c2df9513c41998eb55b\u0027:\n  Don\u0027t enable Ethernet on the emulator.\n"
    },
    {
      "commit": "0188bee2c526270c178a0b1f918b2a09999de25f",
      "tree": "493dd8356757ef85b8dab61cd0de3329f2d8e38f",
      "parents": [
        "acdee873669860f9e7be77327274d1c60fb6b400",
        "e9ed3707b234c893622aec3ddecbf2f9d41d1454"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 11 17:02:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 11 17:02:18 2014 +0000"
      },
      "message": "am d8f71d34: Merge \"Out with the old; in with the new\" into lmp-preview-dev\n\n* commit \u0027d8f71d34c3c7fb161a1586de8edb52161c32d672\u0027:\n  Out with the old; in with the new\n"
    },
    {
      "commit": "5592a725dd89e433191d3dd835ed99f38a3de474",
      "tree": "2981f28058bd7aec8d49b041a67d18c70feadfd5",
      "parents": [
        "937c4dbb1fdc1afcdc3c4b57d6799d1f49acf9f0",
        "beacf8d64c237346ea431a267c5d413e814234b5"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Jun 11 01:18:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 10 22:31:57 2014 +0000"
      },
      "message": "Merge \"Don\u0027t enable Ethernet on the emulator.\" into lmp-preview-dev"
    },
    {
      "commit": "7060b04f6d92351b67222e636ab378a0273bf3e7",
      "tree": "82fce1e04dd58a5d79895d0869b3b0adeffbb417",
      "parents": [
        "6d7a25f317be60ae8a4d8806e517052be2398753"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 09 19:50:00 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 10 12:51:55 2014 -0700"
      },
      "message": "Out with the old; in with the new\n\nSwitch to the official \"JobScheduler\" etc naming.\n\nBug 14997851\n\nChange-Id: I73a61aaa9af0740c114d08188bd97c52f3ac86b7\n"
    },
    {
      "commit": "beacf8d64c237346ea431a267c5d413e814234b5",
      "tree": "7315da5e757d62807aaa8c4c7acc97dc84d80978",
      "parents": [
        "465c5de4ee3df861dd1ad0b71ca40f3daeb9cbee"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 10 14:51:30 2014 +0900"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Tue Jun 10 14:53:22 2014 +0900"
      },
      "message": "Don\u0027t enable Ethernet on the emulator.\n\nDon\u0027t start the Ethernet service on the emulator because it\ninterferes with qemu\u0027s SLIRP emulation, which uses IPv4 over\neth0.\n\nBug: 15341003\nChange-Id: I4041a17b19a4861cae4fbf47ab5e05b007385e19\n"
    },
    {
      "commit": "5adb67d4ce228a3afa6512e87d61c4d581dfd1e3",
      "tree": "0381aad25651c486879ffe449afa12cbf55588e6",
      "parents": [
        "03f5ff482e58474e9da7a2213fb96d0e0a877a4b",
        "3f48068d782b81dc1c8a0190b91fbb2862007244"
      ],
      "author": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Mon Jun 09 10:41:21 2014 -0700"
      },
      "committer": {
        "name": "Ed Heyl",
        "email": "edheyl@google.com",
        "time": "Mon Jun 09 10:41:21 2014 -0700"
      },
      "message": "merge 4ce22057, regen api/current.txt\n\nChange-Id: I39186b5c4d41753c729c5d1ee7ee96b03a45c514\n"
    },
    {
      "commit": "3f48068d782b81dc1c8a0190b91fbb2862007244",
      "tree": "e70558758a0a36bd19dd231ecffd426624f1120f",
      "parents": [
        "faecafce62ca39a7693669f7c9eabf2d71c633cf"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Fri Jun 06 15:52:07 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Mon Jun 09 07:55:47 2014 +0900"
      },
      "message": "Remove HdmiCecService\n\nThe service is replaced with HdmiControlService. Removing all the related\nclasses and the initialization of the service.\n\nChange-Id: Ic7baaddffb9873613ddd1096e874f226da983939\n"
    },
    {
      "commit": "4c9e57f156d3cbd86b38e9897dfdab81964efe90",
      "tree": "55cb749043c9dd147d3bdacb981f935cc0e2fe62",
      "parents": [
        "5e9a42588e986a7a2ab12de5d70adff5f2db9c5a",
        "3c784d6359f15a5451b670a18384e9ae3c9aa276"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 10:03:46 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Jun 03 17:06:58 2014 +0000"
      },
      "message": "resolved conflicts for merge of ebe661c4 to master\n\nChange-Id: Ic25dc762ee43654b439de3ec237ead007bee3df4"
    },
    {
      "commit": "daa618e3cd827443e7a9958c1742ecc38f87d6c8",
      "tree": "9e85ab554a3dfe2a071c01f0bef424874b51517f",
      "parents": [
        "0dcecc1cab9e0586ccc4725a2dab068e78207387"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Fri May 30 18:54:55 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Mon Jun 02 16:48:37 2014 -0700"
      },
      "message": "WifiService and WifiPasspointService hook up\n\n- add a reference to passpoint service in wifi state machine\n- break dependency loop at boot phase\n\nChange-Id: I34c0ce55efa5235ebaba1fa6772f559d608ee5ba\n"
    },
    {
      "commit": "d5cc4a281e7ce29d1e8687ff3394b57a3a549260",
      "tree": "a54c168980e6a2fc805892d1653236f7da6ebe5c",
      "parents": [
        "e205192c722e4fa1b37ee1b31dced21cf89ffbb4"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Fri May 30 16:57:43 2014 -0700"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Mon Jun 02 11:02:52 2014 -0700"
      },
      "message": "Put TV Input Framework under android.media.tv, including TvContract\n\nBug: 15345342\nChange-Id: I665ca23f0f074ce29cb2e047109b209178532107\n"
    },
    {
      "commit": "df7db074b5e6a19c8a33c2cc6be88f85eb5ee47c",
      "tree": "1652d9e4436b0b54167d4a862a371173c93ffbc2",
      "parents": [
        "82ed45da97b0d6a144386b60847437e8aaef9866"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Jun 01 10:41:13 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sun Jun 01 10:41:13 2014 -0700"
      },
      "message": "Derive LauncherAppsService from SystemService\n\nAnd encapsulate the aidl interface implementation.\n\nChange-Id: Id9a2544b411648e2596de18682079a64e95b0710\n"
    },
    {
      "commit": "f20d640fa2b155a971ddfe0965fc803a73b5e53c",
      "tree": "0b5d315ca1fe3cd40716c24761e857b3f5d185a6",
      "parents": [
        "1d4306991bd6c820313719eb72ec169082b71540"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat May 24 15:34:37 2014 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Sat May 31 16:41:35 2014 -0700"
      },
      "message": "Restrictions Manager\n\nMechanism to register a provider for requesting an\nadministrator to respond to permission requests.\n\nRequest format and response format constants.\n\nDescription of manifest template for static restrictions.\nInt type introduced in RestrictionEntry.\n\nNeeds more javadoc and better description of manifest templates,\nincluding specifying the XML attributes.\n\nChange-Id: I5a654d364e98379fc60f73db2e06bf9a8310263d\n"
    },
    {
      "commit": "094b2136f0804e2804de6bafafc94d33266a5fee",
      "tree": "1cec1037f31dec1307450031b54fbfc4c5a63b38",
      "parents": [
        "30643dfcd117753044067f6b671b8fb1a7576b9f",
        "92ab0b91cdcb83c3cb101386d01f04c7d7dfd404"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 29 18:25:11 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 29 18:25:11 2014 -0700"
      },
      "message": "resolved conflicts for merge of 92ab0b91 to master\n\nChange-Id: I66d6849700759163669faa930f07a7e968df5155\n"
    },
    {
      "commit": "92ab0b91cdcb83c3cb101386d01f04c7d7dfd404",
      "tree": "73344df1b5e4f206a3b0d2ab8b156c7dc265f9a7",
      "parents": [
        "0082933a0d0fc2971ba7cbd493ce8d38bf4ccc4b",
        "aeb4e071abb100d10c39d154b05c2911d399395d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri May 30 01:01:17 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 30 01:01:17 2014 +0000"
      },
      "message": "am aeb4e071: Merge \"Add dumpsys to dock observer.\" into klp-modular-dev\n\n* commit \u0027aeb4e071abb100d10c39d154b05c2911d399395d\u0027:\n  Add dumpsys to dock observer.\n"
    },
    {
      "commit": "010e561a703381e16dd17caa7c942dea6978e6dc",
      "tree": "91a16b707d756d2ff5fde2eede5cafdc5748b571",
      "parents": [
        "339f437dc3f7c474d9cf1f963819bab2596e6ad3"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 29 17:48:33 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu May 29 17:48:33 2014 -0700"
      },
      "message": "Add dumpsys to dock observer.\n\nMinor refactoring of dock observer to allow its state to be\ninspected and modified via dumpsys for debugging purposes.\n\neg. View current state.\nadb shell dumpsys DockObserver\n\neg. Simulate being docked.\nadb shell dumpsys DockObserver set state 1\n\neg. Reset back to normal.\nadb shell dumpsys DockObserver reset\n\nChange-Id: Ie48db775290ebed9aa4d9d9d5ac5a6fcb6122ac9\n"
    },
    {
      "commit": "77b170cedca2828d8c40ca33b820f5911a558326",
      "tree": "a3c525c0bdd9c33756d6ff997730d1b3356dc5e0",
      "parents": [
        "a487fb77dff1a86fbd160694de41e32b74f10cb1",
        "452c592191a147ae1175db775bc3e7e8e0311855"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 16:10:53 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 16:10:53 2014 -0700"
      },
      "message": "resolved conflicts for merge of 452c5921 to klp-modular-dev-plus-aosp\n\nChange-Id: I6044604b431eed0319579a1a3b9213c9a0aaf678\n"
    },
    {
      "commit": "452c592191a147ae1175db775bc3e7e8e0311855",
      "tree": "49d3f9b47135cf0eb108b1539de5a42e6a386761",
      "parents": [
        "df0e9ed5536e2cab860f3ecf9dab0030a471766e",
        "197565e0e800be3c731e679914f40afa1aab98fd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 22:31:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 28 22:31:39 2014 +0000"
      },
      "message": "am 197565e0: Merge \"Move to dalvik.vm.lib.2 to force default to libart\"\n\n* commit \u0027197565e0e800be3c731e679914f40afa1aab98fd\u0027:\n  Move to dalvik.vm.lib.2 to force default to libart\n"
    },
    {
      "commit": "5bc93866b089faa2feddf7b113afe915401d992f",
      "tree": "82451fd3252d04972c98522e1f5f8042193819fd",
      "parents": [
        "862be91276ec9532b3ed00d43fc7a750f1e6adb0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:31:47 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:53:40 2014 -0700"
      },
      "message": "Move to dalvik.vm.lib.2 to force default to libart\n\nBug: 14298175\n\n(cherry-picked from commit 2ef5abb8d534f016582d6023054cbe69d8114b6b)\n\nChange-Id: Icd91982c09076e87092906106cbff4a81589e8de\n"
    },
    {
      "commit": "3c1ff826e0abdffdd76129bf974abb96444dade8",
      "tree": "89fac1cb9092ca7514c4a0ce207fa57341366210",
      "parents": [
        "b9a65de1f79d92326abcccc295c18f24afb83053"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:31:47 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 28 14:31:47 2014 -0700"
      },
      "message": "Move to dalvik.vm.lib.2 to force default to libart\n\nBug: 14298175\nChange-Id: I8afa91bddfb6fec6b61c39286a16594eb947830e\n"
    },
    {
      "commit": "fa380e982e41b0dcbbcf2201803abf26808016b5",
      "tree": "8d418aaa3b36df0b88f98c7c3c6ce1c84b3d2e9e",
      "parents": [
        "cd3a8245489fa36c528b075efe99a147cf4f6785"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 19 13:46:29 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri May 23 16:41:09 2014 -0700"
      },
      "message": "DO NOT MERGE - Run the task manager service at startup\n\nAlso moves most of it into android.app.task rather than android.content.\n\n(Cherrypick from master)\n\nChange-Id: Ic07a664bf54bc3e40aa0b892946edba4bf37262a\n"
    },
    {
      "commit": "2137d6a843b82996e08f0e03376e48860919d8bc",
      "tree": "0d15e1fca1c4f8a84e3064ce58b5cddbb718d310",
      "parents": [
        "d6d7587ab09e4a0eae9252e11ab59ad27af68823",
        "d5ee4144c4beae54219e1b8eb10418b02dd4a63b"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri May 23 02:35:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 02:35:42 2014 +0000"
      },
      "message": "am d5ee4144: Merge \"Increase start timeout for wrapped process\"\n\n* commit \u0027d5ee4144c4beae54219e1b8eb10418b02dd4a63b\u0027:\n  Increase start timeout for wrapped process\n"
    },
    {
      "commit": "c774dcee9dd7c57821710f253bce5bd80bbecb0a",
      "tree": "f7d9e410b85265c801adf8c70230a4b6ca0917a8",
      "parents": [
        "fc1ffe89db4bfe51856dadead2ed9c856a96ca65"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 22 12:40:25 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu May 22 12:40:25 2014 -0700"
      },
      "message": "Increase start timeout for wrapped process\n\n * apparently 300*1000 for valgrind is not enough\n   (hammerhead aosp tot).\n\nChange-Id: Ia3f26cb67d3aa0ebdec68f3c1a764bad5e7f4f95\n"
    },
    {
      "commit": "f9ff2c9ae5595a20d77b10a41386932de1fc2da2",
      "tree": "5c122f3e21dfb7764a4d4fcfd1018f569839a5bd",
      "parents": [
        "4e5aa2cee69f6791f8001aeb1fc12389863fab8f"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:32:11 2014 -0700"
      },
      "committer": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed May 21 16:41:24 2014 -0700"
      },
      "message": "Make the EthernetManager available.\n\nChange-Id: I7a60e977d7a40a5d0367168f2f6633ccae591ac4\n"
    },
    {
      "commit": "ab3d85ab1a0ae58add5df6efc30607624475405b",
      "tree": "1e9ac6428529c77866b9a584298f820395104672",
      "parents": [
        "9ef2117f0e65db60cb3f9708174bcaca4db813b2",
        "838b1e2215cbc27e77530f4c79124c088353e0e7"
      ],
      "author": {
        "name": "narayan",
        "email": "narayan@google.com",
        "time": "Wed May 21 20:17:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 21 20:17:52 2014 +0000"
      },
      "message": "am 838b1e22: Merge \"Fix NPE in PackageManagerService.\"\n\n* commit \u0027838b1e2215cbc27e77530f4c79124c088353e0e7\u0027:\n  Fix NPE in PackageManagerService.\n"
    },
    {
      "commit": "0cfe875ac51b1efd8119eb8d4d66429776ae9764",
      "tree": "af123444a41213fe72a15cf1ddf0f4b31e88f904",
      "parents": [
        "bc06158a78297747605981702c8e41956ea1aa2d"
      ],
      "author": {
        "name": "narayan",
        "email": "narayan@google.com",
        "time": "Wed May 21 20:54:50 2014 +0100"
      },
      "committer": {
        "name": "narayan",
        "email": "narayan@google.com",
        "time": "Wed May 21 21:00:48 2014 +0100"
      },
      "message": "Fix NPE in PackageManagerService.\n\nCheck that each package from the setting has\na parsed pkg before we attempt to perform dex-opt\non it. If it doesn\u0027t have a parsed package, adjust\nthe ABI in the settings, but don\u0027t perform dexopt.\nIt will be dexopted later if it\u0027s still active\nbased on the setting.\n\nbug: 15081286\n\nChange-Id: Ifb6d1d5efdc9c59b251731972afa951ad930d05c\n"
    },
    {
      "commit": "e77a77d081ff9d05100702f5880f356da27fd087",
      "tree": "079c6e8c553ff56758ab340a40613751398fc166",
      "parents": [
        "b0a7f84b6de20edc6337163a4a07e3c524991ddb",
        "ec71fed089965c4d731eaa90344849a1775f937a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 21 06:46:26 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 21 06:46:26 2014 +0000"
      },
      "message": "am ec71fed0: Merge \"Improve ABI handling for shared user ids.\"\n\n* commit \u0027ec71fed089965c4d731eaa90344849a1775f937a\u0027:\n  Improve ABI handling for shared user ids.\n"
    }
  ],
  "next": "8a476edccdd2ae8cd5913bdeaeac319b22567b76"
}
