)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "8a476edccdd2ae8cd5913bdeaeac319b22567b76",
      "tree": "8923061d3c695d1b0ced37875991d03295000e1c",
      "parents": [
        "3fff22173c7010467ce9e134e89b367e311d122b"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue May 20 14:06:49 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue May 20 14:06:49 2014 -0700"
      },
      "message": "Fix a boot failure due to Wifi / Wifi Passpoint\n\nBug: 15060373\nChange-Id: Ie72fd2e4b855c46a8f9ed12deb8b07fd0c29f522\n"
    },
    {
      "commit": "e715e8cc00de841d690bddd1e17741a0e9b05293",
      "tree": "9cfcf38aa77cd8debf7d2fd232404e4df289cbff",
      "parents": [
        "f564c7fe86d2aa9a7622667771d9e4bbf5518ffa"
      ],
      "author": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Tue May 20 11:50:17 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Tue May 20 11:50:17 2014 -0700"
      },
      "message": "Fix a runtime break caused by merge conflict\n\nKwd changed the name of WifiHotspotService to PasspointService; and\nthe reference to the name was moved in master. Merge ended up picking\nup incorrect name WifiPasspointService. This change fixes that.\n\nBug: 15106138\nChange-Id: Ib6d8aee53db39314a9d98abcbd8e0863210de1bb\n"
    },
    {
      "commit": "b851c89d2252cf3d1dc504558ce1553527885316",
      "tree": "4fb6b1fc9f911f423dc4b2291ca2f1b41af92b19",
      "parents": [
        "32912e0a7308d2e0327b3273763f0b13fd0099c0"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue May 20 13:55:09 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue May 20 14:09:12 2014 +0100"
      },
      "message": "Improve ABI handling for shared user ids.\n\nThe key improvement is that we need to keep track of\nthe package that\u0027s currently being scanned (this includes\nnew installs and upgrades of existing packages) and treat\nit specially. If we didn\u0027t do that, In the case of upgrades\nwe would perform the shared UID calculation based on the ABI\nof the old package, and not the current package.\n\nThis change also allows us to perform the CPU ABI calculation\nbefore dexopt, which saves us from having to do it twice and\nfixes a bug where we were using the wrong package path to\ndexopt a package.\n\nThis also has the side effect of fixing 15081286.\n\nbug: 15081286\n\nChange-Id: I20f8ad36941fc3df29007f0e83ce82f38f3585c8\n"
    },
    {
      "commit": "deda5467f44fc4a03c3435f0c6d7bda4ea298b99",
      "tree": "c8976f2d4407adcb128c855c6d68b8bd51a5a454",
      "parents": [
        "3a123fda8a48519601b8782845dfb176de16d871",
        "a4fd1baac68dcd73957e0fca0c02089ecf9a268a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon May 19 13:29:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 19 13:29:57 2014 +0000"
      },
      "message": "am a4fd1baa: Merge \"Fail if we\\\u0027re unable to agree on an ISA for shared UIDs.\"\n\n* commit \u0027a4fd1baac68dcd73957e0fca0c02089ecf9a268a\u0027:\n  Fail if we\u0027re unable to agree on an ISA for shared UIDs.\n"
    },
    {
      "commit": "20ee78ab9551a4b55051343200680c202d06dcf3",
      "tree": "33584776f31756048676b1963d607150512e4a64",
      "parents": [
        "402120a2236b294dff9a51461cb22400a6ef67f6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 15 15:01:46 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon May 19 14:24:46 2014 +0100"
      },
      "message": "Fail if we\u0027re unable to agree on an ISA for shared UIDs.\n\nIt\u0027s not worth the complexity of rescanning the APK and\nextracting a shared library with a different ABI.\n\nAlso gets rid of an unnecessary command line argument and\nchecks for dex-opt failures while adjusting shared ABIs.\n\nbug: 14453227\n\nChange-Id: I6a0695e24cba37e93540c540507088e95b89089b\n"
    },
    {
      "commit": "a4864472313208e4f1de02f45d3eadad237c54af",
      "tree": "f112d0faf7a8e91d6d891f189d7bf8f883ff8104",
      "parents": [
        "1ab9cc8029f723cc6198c013d9df1477fad2d3f9"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Thu Apr 10 11:45:42 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshpande",
        "email": "vinitd@google.com",
        "time": "Sun May 18 09:41:35 2014 -0700"
      },
      "message": "Hotspot 2.0 framework APIs -- initial implementation\n\nCherry-picked from klp-wireless-dev-mirror\nSHA1: e73969fac45aaca72528226dc8c0c5e54fb2cdd4\n\nBug: 5485670\nChange-Id: If3250a2fae181a3774d3158e341220006ad6ebe5\n"
    },
    {
      "commit": "6e2e686889037711170ee145f9dfdb442cee85db",
      "tree": "4cb7d1b07056d176b855b320e24eefff923f7c2f",
      "parents": [
        "eabc93db1020be4b71f0db7d5b5d3a7991f3c264",
        "706b1d7ea0214b6858730e68c95c6a6d6d9a4c30"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 15 12:41:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 15 12:41:47 2014 +0000"
      },
      "message": "am 706b1d7e: Merge \"Remove \"required\" prefix from ABI fields.\"\n\n* commit \u0027706b1d7ea0214b6858730e68c95c6a6d6d9a4c30\u0027:\n  Remove \"required\" prefix from ABI fields.\n"
    },
    {
      "commit": "6e35a2ad05864e7dec5526d11c007efeec252706",
      "tree": "3db99bf30b7989b179da8bebd1844e067dcf096b",
      "parents": [
        "b7d7cbc9c3a9315a5c5ecd85e16f5916c4bc3f3a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 30 14:38:46 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 15 10:57:05 2014 +0100"
      },
      "message": "Remove \"required\" prefix from ABI fields.\n\nAs per a comment on an earlier code review.\n\n(cherry-picked from commit a9d64733421d6765eab5c2730fa912f068e26047)\n\nChange-Id: I064cffc13c323b721f3a16c83e0e95ee348ef9f6\n"
    },
    {
      "commit": "2ce02bba1eea682282408b8521dad8c91837fbab",
      "tree": "2a6daec1fdc98afe3b454615d7190695a686791b",
      "parents": [
        "f521ee6fa9645bb944cf1f452cc40f4d8d580b4e",
        "b7d7cbc9c3a9315a5c5ecd85e16f5916c4bc3f3a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 13 00:34:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 13 00:34:42 2014 +0000"
      },
      "message": "am b7d7cbc9: Merge \"Fix background PackageUsage writing.\"\n\n* commit \u0027b7d7cbc9c3a9315a5c5ecd85e16f5916c4bc3f3a\u0027:\n  Fix background PackageUsage writing.\n"
    },
    {
      "commit": "112a72063846bb3bb18963c861acbe1efd8bd754",
      "tree": "24fa1d5adffb70d55a83a7e2431f7fd229df39ba",
      "parents": [
        "f6c9c4204c2f8f86277d081112c9dd863ddaa778"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 12 16:56:34 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon May 12 16:56:34 2014 -0700"
      },
      "message": "Fix background PackageUsage writing.\n\nChange-Id: Ia358b61e648b427c86cf75ae096cd2a68ace209f\n"
    },
    {
      "commit": "edc31509c2ff8cba86f30c836934d32a3e249dec",
      "tree": "f07eceb34580c71af742af053138bdabbe205fa6",
      "parents": [
        "90abb78b51a35055f86dee35c4e391e74f325125",
        "b98ca5b0dd73f374178022b4a4b37412f01a3c03"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 17:33:04 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 09 17:33:04 2014 +0000"
      },
      "message": "am b98ca5b0: Merge \"If PackageUsage information is missing, treat as first boot and compile everything\"\n\n* commit \u0027b98ca5b0dd73f374178022b4a4b37412f01a3c03\u0027:\n  If PackageUsage information is missing, treat as first boot and compile everything\n"
    },
    {
      "commit": "7c5c864c8a6690243e1cea13c5ff37add16b1744",
      "tree": "1e0616a78c33965c06218a2b12cf3a6dc033bdcd",
      "parents": [
        "678f7edd140f3914655bc600d207d3dcb986f881"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 09:48:33 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 09 09:52:09 2014 -0700"
      },
      "message": "If PackageUsage information is missing, treat as first boot and compile everything\n\nBug: 14663243\nChange-Id: I0ae33882044211f777590f482e17e87596be4463\n"
    },
    {
      "commit": "82af2b9e51aac359b4b251cc622659a1a5537e35",
      "tree": "f7522146baa0fa75248be338fb3154debe2e2cd8",
      "parents": [
        "eea64a928e92e5b2e588274475ca562d1aeeaf5c",
        "4a5eeb9c727d77bb57fef87a70c8c9cc23dbfee3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 08 23:25:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 08 23:25:49 2014 +0000"
      },
      "message": "Merge \"AudioService/WireAccessoryManager: change boot completion detection method\""
    },
    {
      "commit": "011e1b35a64180d6f0234af8a3c2b70777eb9f39",
      "tree": "79c54cad4f30c493f587e4ac0fb1e89bbaecc714",
      "parents": [
        "c4bfcc12e92fe3d8f6f1dad0c12176d6dae3131d"
      ],
      "author": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:09:11 2014 -0700"
      },
      "committer": {
        "name": "Vinit Deshapnde",
        "email": "vinitd@google.com",
        "time": "Wed May 07 21:14:24 2014 -0700"
      },
      "message": "Initial implementation of WifiScanner\n\nThis change implements basic functionality of WifiScanner. Following\nfunctionality is enabled\n\n1. Scanning - specify a list of channels to scan\n2. Significant change detection\n3. AP hotlist\n\nChange-Id: Ieef75b96bdbbd3c7d9b9e698bd16e64d3b465254\n"
    },
    {
      "commit": "7c3606c103e95d3991267cca2592402a68779caf",
      "tree": "d0a7e48c3342e75fa2fe8176fd4a86e1826649af",
      "parents": [
        "15560a84dfd55452f53575cc1aab71b0b8baeb65"
      ],
      "author": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Mon Mar 31 19:12:07 2014 -0700"
      },
      "committer": {
        "name": "vandwalle",
        "email": "vandwalle@google.com",
        "time": "Wed May 07 18:48:48 2014 -0700"
      },
      "message": "initial Best Network Selection implementation\n\n-add dhcpserver, defaultGwMAC address, linked configuration and user choices link lists to WiFiconfiguration\n-add default gateway mac address to RouteInfo\n-add a Date to the ScanResult\n-add BSSID date to the WifiConfiguration\n- make framework auto-join into a config option\n- add Settings option for showing RSSI in Wifi picker view; add auto-join specific status to WifiConfiguration\n\nChange-Id: I5cfc4f2a48c9f3bc9766e8e68e24eff7b57f2821\n\n Changes to be committed:\n\tmodified:   core/java/android/provider/Settings.java\n\tmodified:   wifi/java/android/net/wifi/ScanResult.java\n\tmodified:   wifi/java/android/net/wifi/WifiConfiguration.java\n"
    },
    {
      "commit": "dfad99ad9fd5953b9d726715c40197a3e70e7dd0",
      "tree": "9eb7839fb997db3cfe3e649d5e5c0840dae4b35b",
      "parents": [
        "b5a449e4881de2af5f0a11fbb7a9a996937811d9",
        "0b5598c924fc140db5cfee08c17fd91e630b1c9e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 15:21:14 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 15:24:01 2014 -0700"
      },
      "message": "resolved conflicts for merge of 0b5598c9 to master\n\nChange-Id: Ie911d6b0b5e2b87e2b4669fa2465a82bb5807893\n"
    },
    {
      "commit": "0b5598c924fc140db5cfee08c17fd91e630b1c9e",
      "tree": "2120d37663c17aa37598961089dd77ca9686538b",
      "parents": [
        "3bbef521d4b07f86010ba0729a36ff8b73bcb0ac",
        "691079ddc0055fac9b82dccaf35b4591978b2a55"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 20:28:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 20:28:25 2014 +0000"
      },
      "message": "am 691079dd: am a21ba5be: Merge \"Add BackgroundDexOptService\"\n\n* commit \u0027691079ddc0055fac9b82dccaf35b4591978b2a55\u0027:\n  Add BackgroundDexOptService\n"
    },
    {
      "commit": "691079ddc0055fac9b82dccaf35b4591978b2a55",
      "tree": "3009cb3eb68ff4f7d0b3c34a229c0f509d60cad6",
      "parents": [
        "f2db00fdcd4e3dd97afd071f3af058d307a152f9",
        "a21ba5bec748e2f10d7e6d38181ec1124991cb60"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 03:33:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 03:33:41 2014 +0000"
      },
      "message": "am a21ba5be: Merge \"Add BackgroundDexOptService\"\n\n* commit \u0027a21ba5bec748e2f10d7e6d38181ec1124991cb60\u0027:\n  Add BackgroundDexOptService\n"
    },
    {
      "commit": "f2db00fdcd4e3dd97afd071f3af058d307a152f9",
      "tree": "35f84cacf9e31e014a6ea3dfdff25a3dcc990366",
      "parents": [
        "cc6b9eb23c3a6168d6cb5cb10977c43ebdcbbea4",
        "edb88bcd232176e575f2dbee2cfdb1bfbe33faef"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 07 03:33:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 07 03:33:37 2014 +0000"
      },
      "message": "am edb88bcd: Merge \"Use package usage information to decide what dex files to optimize in PackageManagerService\"\n\n* commit \u0027edb88bcd232176e575f2dbee2cfdb1bfbe33faef\u0027:\n  Use package usage information to decide what dex files to optimize in PackageManagerService\n"
    },
    {
      "commit": "7395a8ab8a7c6b03c32500c934694dde80b9ade1",
      "tree": "c58b373d189ae4fb54d912835ddc7da7da9a0e5e",
      "parents": [
        "ff1ec4d9e7b7eb1b6303d147c796f8767ee6715b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Apr 28 22:11:01 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 15:14:29 2014 -0700"
      },
      "message": "Add BackgroundDexOptService\n\nChange-Id: I0439a04f693ba92df906cbda34f8e53b32f63329\n"
    },
    {
      "commit": "ff1ec4d9e7b7eb1b6303d147c796f8767ee6715b",
      "tree": "2c89c758b994e749f380db7c3156fc04c9e226ca",
      "parents": [
        "f1f28d1d86aea6dd1419e94aadf051e433914680"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 17 15:21:35 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 06 15:06:25 2014 -0700"
      },
      "message": "Use package usage information to decide what dex files to optimize in PackageManagerService\n\nChange-Id: Iac137311e2e9d5139b5aa8651c6f3d296802612a\n"
    },
    {
      "commit": "4a5eeb9c727d77bb57fef87a70c8c9cc23dbfee3",
      "tree": "28a357f9dd84cede672e2f8d6281a130b6d4ce7b",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 06 10:49:04 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 06 10:49:04 2014 -0700"
      },
      "message": "AudioService/WireAccessoryManager: change boot completion detection method\n\nBOOT_COMPLETED intent is not a reliable way for system services\nto detect boot completion. The intent broadcast can be significantly\ndelayed and there is no guaranty that system services\nreceive it before apps.\n\nUse a systemReady() method called by SystemServer instead.\n\nBug: 14323903.\nChange-Id: I781596a3545e7a1e719799982347cbcd9a4c9009\n"
    },
    {
      "commit": "e3cceef7ececdac1c6df65d3f7a1557ac3ce5e3c",
      "tree": "75875a7f0293c18546fc22a23d546d5e58f6ff33",
      "parents": [
        "74ec580873bb56cb5045a25efdb1eb7e2bac384c",
        "0f7c0570e091a284481c2406d8275d87c3786c1d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 01 21:41:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 21:41:58 2014 +0000"
      },
      "message": "am 0f7c0570: Merge \"Minor cleanup of UsageStatsService\"\n\n* commit \u00270f7c0570e091a284481c2406d8275d87c3786c1d\u0027:\n  Minor cleanup of UsageStatsService\n"
    },
    {
      "commit": "393fbe71f85288efaf452cb646ae0cc5c1073c92",
      "tree": "285f8bcb35a51c4c6994846d4d38db8094f5532e",
      "parents": [
        "ab3977d21161815c130bdedf21e2571382d208da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 10 13:39:25 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 01 14:12:14 2014 -0700"
      },
      "message": "Minor cleanup of UsageStatsService\n\nChange-Id: Idea0e29f347d14e48e87aad38a261d0493bd5fd3\n"
    },
    {
      "commit": "67e2196d07dd4dc1f3ce82fdaaa34cdbce89e1ce",
      "tree": "eb4bb9d5fc69356ba7f74f6b65a7b21afb9c9204",
      "parents": [
        "4a26164316b0d9a6d97dfbb85a2ac176384bb985",
        "a278ea7cecb59a73586e5dd74ec05e85caa370c5"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu May 01 17:11:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 17:11:34 2014 +0000"
      },
      "message": "Merge \"Add dump to MediaSessionService\""
    },
    {
      "commit": "5dca099df7100c531e111b50435605c318f1e6d4",
      "tree": "feedbdedffab1231e5664d717702f7e45aaafea8",
      "parents": [
        "c1f81f9086037dde6e082b8a80c84277cb727726",
        "1cec7f8539e6465ff80577169d7d07df3c2574b7"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:52 2014 +0000"
      },
      "message": "am 1cec7f85: Merge \"Don\\\u0027t adjust ABI if PackageSetting#pkg is null.\"\n\n* commit \u00271cec7f8539e6465ff80577169d7d07df3c2574b7\u0027:\n  Don\u0027t adjust ABI if PackageSetting#pkg is null.\n"
    },
    {
      "commit": "c1f81f9086037dde6e082b8a80c84277cb727726",
      "tree": "eebe0332220d92aaf3135b06c046211a44629565",
      "parents": [
        "51f4367cac606580a5ca10ec1cf2dcab3982aebc",
        "27f2bfc406157039c5241f6a4f38f597b2076e2a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:49 2014 +0000"
      },
      "message": "am 27f2bfc4: Merge \"Fix dex file pruning logic.\"\n\n* commit \u002727f2bfc406157039c5241f6a4f38f597b2076e2a\u0027:\n  Fix dex file pruning logic.\n"
    },
    {
      "commit": "51f4367cac606580a5ca10ec1cf2dcab3982aebc",
      "tree": "fce1341050b5ea50edcf98e175d846ac67e93d5c",
      "parents": [
        "69da8a124e640c09d00546761c0502e1bcab79a6",
        "bcc3b312b0662ae2f8b8444eaedd5f35fc75c411"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:46 2014 +0000"
      },
      "message": "am bcc3b312: Merge \"Adjust instruction sets for shared UID apps.\"\n\n* commit \u0027bcc3b312b0662ae2f8b8444eaedd5f35fc75c411\u0027:\n  Adjust instruction sets for shared UID apps.\n"
    },
    {
      "commit": "69da8a124e640c09d00546761c0502e1bcab79a6",
      "tree": "d7fbe00ec4fbe87b35f6bed5cfd469414267a6a5",
      "parents": [
        "d85ded890d86d454a0571c63911ff911633e3a95",
        "2a9a047140b8da8f9cd7147c8bed60eeb61d1b6a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 14:00:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 14:00:43 2014 +0000"
      },
      "message": "am 2a9a0471: Merge \"Package manager changes for dual zygote stack.\"\n\n* commit \u00272a9a047140b8da8f9cd7147c8bed60eeb61d1b6a\u0027:\n  Package manager changes for dual zygote stack.\n"
    },
    {
      "commit": "d85ded890d86d454a0571c63911ff911633e3a95",
      "tree": "39fd13bde8e63742ab70268336cab655fc7bde86",
      "parents": [
        "eb5734989b3ef5455359f8807684a860ad04c134",
        "645a920fd2c478c545c6bb659f2eab36545fe116"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:56:59 2014 +0000"
      },
      "message": "am 645a920f: Merge \"Fix OEM native library path bug.\"\n\n* commit \u0027645a920fd2c478c545c6bb659f2eab36545fe116\u0027:\n  Fix OEM native library path bug.\n"
    },
    {
      "commit": "eb5734989b3ef5455359f8807684a860ad04c134",
      "tree": "31b5c245d8154f09c3ed046ee75f9f399a8ce607",
      "parents": [
        "99253c2da945cbd4725efced6cac2dc40c858d6c",
        "986b901ae280928e91193527f7c883b296fc62fc"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:56:56 2014 +0000"
      },
      "message": "am 986b901a: Merge \"Fix native-lib dir assignment \u0026 updating\"\n\n* commit \u0027986b901ae280928e91193527f7c883b296fc62fc\u0027:\n  Fix native-lib dir assignment \u0026 updating\n"
    },
    {
      "commit": "f465db9f1d6da1c94af66b64e0450aba72ee8824",
      "tree": "375fa50285fc6d2f83d458ff6ca1ec12b5bf65ec",
      "parents": [
        "27f2bfc406157039c5241f6a4f38f597b2076e2a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 30 13:33:38 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:43 2014 +0000"
      },
      "message": "Don\u0027t adjust ABI if PackageSetting#pkg is null.\n\nIf means the package hasn\u0027t been scanned yet, and we\nwill adjust the ABI during the scan of the last package\nin the shared user group.\n\nNOTE: This needs some more cleaning up, which will be\ndone along with the remaining TODO in this function.\n\n(cherry picked from commit 6609990e35b11c38f55f6e632160d4f2ff201ea3)\n\nChange-Id: Ibace7849485865054e062d2b979f320bf89ff0f3\n"
    },
    {
      "commit": "57156572a7284c3b774480f9b0138d5cd110a182",
      "tree": "0b7728d57dbf31a14e7944e80af67f960620cd4d",
      "parents": [
        "bcc3b312b0662ae2f8b8444eaedd5f35fc75c411"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 29 16:49:27 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:56:22 2014 +0000"
      },
      "message": "Fix dex file pruning logic.\n\nWe should now prune all normal files from /data/dalvik-cache\nin addition to looking for dex files in all subdirectories of\n/data/dalvik-cache.\n\n(cherry picked from commit 51a6f9253399588eedf77d75c578d9aa23d11529)\n\nChange-Id: I536dfdc48e94155e7be64eb4efd9f7f2a1d2d00a\n"
    },
    {
      "commit": "1b46093d33a0fa4d316d65288ef3b3ac5b77a4a2",
      "tree": "372976a7b5a12702ca008ec8be6cf18d237e1519",
      "parents": [
        "2a9a047140b8da8f9cd7147c8bed60eeb61d1b6a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Apr 28 14:18:34 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:55:35 2014 +0000"
      },
      "message": "Adjust instruction sets for shared UID apps.\n\nSince shared UID apps are run in the same process,\nwe\u0027ll need to make sure they\u0027re compiled for the same\ninstruction set.\n\nThis change implements the recompilation of apps that\ndon\u0027t have any ABI constraints.\n\nApps that *do* have ABI constraints are harder to deal\nwith, since we\u0027ll need to rescan them to figure out the\nfull list of ABIs they support and then re-extract the\nnative libraries from these apps once we find an ABI we\ncan use throughout.\n\n(cherry picked from commit 85703d58af1dac692d7d83c03220e45ab2a5aded)\n\nChange-Id: I8311a683468488cc7e30381965487a3d391609ae\n"
    },
    {
      "commit": "0349e8c4785ed467d8de2ff383e28be3e41bdc3b",
      "tree": "879534fb65405fa603d5fc16599ca154e673b97c",
      "parents": [
        "645a920fd2c478c545c6bb659f2eab36545fe116"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 11:41:20 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:54:48 2014 +0000"
      },
      "message": "Package manager changes for dual zygote stack.\n\n- Pass down the app\u0027s instruction set to dexopt so that\n  it can compile the dex file for the right architecture.\n\n- Also pass down the app\u0027s instruction set to rmdex, movedex\n  and getSize so that they can construct the cache file\n  location properly.\n\n- Temporarily compile \"system\" jars such as am,wm etc. for\n  both architectures. A follow up change will ensure that\n  they\u0027re compiled only for one architecture (the same\n  arch. as the system server).\n\n- Java \"shared\" libraries are now compiled for the right\n  architecture when an app requires them.\n\n- Improve the app native library ABI detection to account\n  for system apps installed in /system/lib{64}/\u003cpackagename\u003e\n  and also handle sdcard and forward locked apps correctly.\n\n(cherry-picked from commit b4d35dc8e9702f9d0d82d35a105f0eea35672b52)\n"
    },
    {
      "commit": "99253c2da945cbd4725efced6cac2dc40c858d6c",
      "tree": "36d6b85b1c791447c14126bd2d120b633fcd6816",
      "parents": [
        "a7b465efc4eede46b8dfc8932c6c30346e8e79de",
        "fde594288bff0b8f95567e6b27f273f50f0c5f87"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:53:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:53:08 2014 +0000"
      },
      "message": "am fde59428: Merge \"Handle /oem and /vendor as well\"\n\n* commit \u0027fde594288bff0b8f95567e6b27f273f50f0c5f87\u0027:\n  Handle /oem and /vendor as well\n"
    },
    {
      "commit": "a7b465efc4eede46b8dfc8932c6c30346e8e79de",
      "tree": "874b91c7af4815ba52bea03cae1250b6ea9144db",
      "parents": [
        "9f34234f1c0e39ee43c4a86e23d333ba2a30ec0e",
        "d91358b2b977ef7c3551a486f51475c0441aba6e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 13:52:59 2014 +0000"
      },
      "message": "am d91358b2: Merge \"Support per-package lib dirs for bundled apps\"\n\n* commit \u0027d91358b2b977ef7c3551a486f51475c0441aba6e\u0027:\n  Support per-package lib dirs for bundled apps\n"
    },
    {
      "commit": "66309e2bf70607bc0ff2cf5c0769c2a37c4ce76d",
      "tree": "5eadeb9932cefb5fb3b012ae9b1b5265e8aaa89d",
      "parents": [
        "986b901ae280928e91193527f7c883b296fc62fc"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Apr 24 14:11:08 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:33 2014 +0000"
      },
      "message": "Fix OEM native library path bug.\n\nBug: 13340779\n\n(cherry picked from commit 7d3328d14bbbee01a9de1ff5b13b0446c709d835)\n\nChange-Id: I1b4c5d138cafe3651d475ca1e048f495ff6c5f10\n"
    },
    {
      "commit": "c38a807b2f192bd1413989b70cc42ead9299d4b3",
      "tree": "58b0e53fbec9a08244439bb08687ab1b98fc65f2",
      "parents": [
        "fde594288bff0b8f95567e6b27f273f50f0c5f87"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 23 16:55:57 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:52:06 2014 +0000"
      },
      "message": "Fix native-lib dir assignment \u0026 updating\n\nThe per-package /system/lib/* feature introduced bugs in the\nnative library path handling during app upgrade installs.  The\ncrux of the fix is that when recalulating the desired native\nlibrary directory, the basis for the calculation needs to be\nthe scanned APK\u0027s location rather than the extant package\nsettings entry -- because that entry refers to the pre-upgrade\nstate of the application, not the new state.\n\nBug 14233983\n\n(cherry picked from commit 353e39a973dbbadce82fee2f83ad194e04a47449)\n\nChange-Id: I26f17a596ca2cd7f963955c0642548c15138ae26\n"
    },
    {
      "commit": "c84471c2e07c325e81568c4d764716f14fcb19fe",
      "tree": "bf96398642c99dc327ab13ce147cec0566c22277",
      "parents": [
        "d91358b2b977ef7c3551a486f51475c0441aba6e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 18 12:24:57 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:51:33 2014 +0000"
      },
      "message": "Handle /oem and /vendor as well\n\nBug 13170859\n\n(cherry-picked from commit 740888f62eae158d5775be716620f0d56d87f587)\n\nChange-Id: I7b5e206697fcbec146cac6cd83fca5c583a8cbd7\n"
    },
    {
      "commit": "fc0810e565b269bc9d8f072ef0ab7365e035c630",
      "tree": "c2f3d4b57108f1bc089af03e4f1cfac31b0817e1",
      "parents": [
        "b916d8adffd7ea3588bc178e1ee03f68f0a409e5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:35:34 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu May 01 13:50:47 2014 +0000"
      },
      "message": "Support per-package lib dirs for bundled apps\n\nBundled apps can now use /system/lib/apkname or /system/lib64/apkname\nin addition to the (globally shared) /system/lib and /system/lib64\ndirectories.  Note that when an app is updated post hoc the update APK\nwill look to its normal library install directory in\n/data/data/[packagename]/lib, so such updates must include *all*\nneeded libraries -- the private /system/lib/apkname dir will not be in\nthe path following such an update.\n\n\"apkname\" here is the base name of the physical APK that holds the\npackage\u0027s code.  For example, if a 32-bit package is resident on disk\nas /system/priv-app/SettingsProvider.apk then its app-specific lib\ndirectory will be /system/lib/SettingsProvider\n\nBug 13170859\n\n(cherry picked from commit addfbdc09ccf258395db8bfc510989a4c583f7ab)\n\nChange-Id: Id82da78024a6325458b8b134d7d91ad0e5f0785e\n"
    },
    {
      "commit": "293513a59d36cd96a3e474dde5981380d372d8c9",
      "tree": "4268c9994be194a7f4fccdecd089af58516d0953",
      "parents": [
        "1866e5dc8bb04b58a67e54f66cb4ec22e878667d",
        "0b62467b142b61ee1e449ba958ba37dfd961ef56"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Apr 29 16:07:29 2014 -0700"
      },
      "message": "Merge commit \u00270b62467b142b61ee1e449ba958ba37dfd961ef56\u0027 into HEAD\n"
    },
    {
      "commit": "a278ea7cecb59a73586e5dd74ec05e85caa370c5",
      "tree": "0fd4023e67758e0b31ca6671e40db5ec2cb5c2d0",
      "parents": [
        "4e8cf1508f22f88203cd9bf4467aaddd3f4502c6"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 24 14:49:01 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Apr 29 11:08:57 2014 -0700"
      },
      "message": "Add dump to MediaSessionService\n\nAdds a dump implementation for debugging MediaSessionService. Also\nfixes some synchronize calls that weren\u0027t using the same lock object.\n\nChange-Id: I14343f853398749c8ce7ebf91f72729abc9132d9\n"
    },
    {
      "commit": "e929bee9bbb418b52fea877f5fff1449aab247fb",
      "tree": "18defb24caf25e9effd0105a40c8a296eb22e494",
      "parents": [
        "812ad2265ed1386b347c98f48cc8a2b2925541b3",
        "734a78fb867384dfb84f5f42f65b4681562d62b5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 14:15:06 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 14:15:06 2014 -0700"
      },
      "message": "Merge commit \u0027734a78fb\u0027 into manualmerge\n\nConflicts:\n\tcore/java/android/app/WallpaperManager.java\n\nChange-Id: Id103f540329ea484ff2e0829a0fc8158621f3dd3\n"
    },
    {
      "commit": "734a78fb867384dfb84f5f42f65b4681562d62b5",
      "tree": "bdc85d0dc5b0ce4a9aeae848f3a7aa28973a6c45",
      "parents": [
        "d937f2750c6edc2c1a03901605b22dad02b89147",
        "8ea2d4512248ec612356f558ac35534c3e4c6db6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 28 20:33:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 28 20:33:09 2014 +0000"
      },
      "message": "am 8ea2d451: Merge \"Various CTS fixes\" into klp-modular-dev\n\n* commit \u00278ea2d4512248ec612356f558ac35534c3e4c6db6\u0027:\n  Various CTS fixes\n"
    },
    {
      "commit": "685a0a72d445515167a2071330679cdf9b53a62d",
      "tree": "197394bdc5e1b7766ef9ac439594104851e19a33",
      "parents": [
        "18582a827c3f908cd75e1d9c189c554f42415a4a",
        "bbd87eb9193e9730869171324ee4f5fc1abeae55"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 28 18:17:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 28 18:17:06 2014 +0000"
      },
      "message": "am bbd87eb9: Merge \"Track libcore.os\\\u0027 move to android.system.\"\n\n* commit \u0027bbd87eb9193e9730869171324ee4f5fc1abeae55\u0027:\n  Track libcore.os\u0027 move to android.system.\n"
    }
  ],
  "next": "34385d352da19805ae948215e2edbeedd16b7941"
}
