)]}'
{
  "log": [
    {
      "commit": "202be73b62e4adc65f7b192c6f374a073c500386",
      "tree": "b0690247f9a45cafb72e8f7b8bb4264b711e316d",
      "parents": [
        "b6391ce26b6e5f7360efc7aba0fac8455cba53b4",
        "f10492d8c0c907fad6f87c871fec6b2fac41a02c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 19 19:23:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 19 19:23:13 2014 +0000"
      },
      "message": "am f10492d8: am 066cde92: am 223e0798: Merge \"Enable building init with -Wall -Werror.\"\n\n* commit \u0027f10492d8c0c907fad6f87c871fec6b2fac41a02c\u0027:\n  Enable building init with -Wall -Werror.\n"
    },
    {
      "commit": "f10492d8c0c907fad6f87c871fec6b2fac41a02c",
      "tree": "71c68cda43f038b64a471a5029220f9b77f783bd",
      "parents": [
        "ee9de136c52555e8775611ad32fc8ee47c75e3d1",
        "066cde92d267986424ff79f35881116da3c672f8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 19 19:19:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 19 19:19:06 2014 +0000"
      },
      "message": "am 066cde92: am 223e0798: Merge \"Enable building init with -Wall -Werror.\"\n\n* commit \u0027066cde92d267986424ff79f35881116da3c672f8\u0027:\n  Enable building init with -Wall -Werror.\n"
    },
    {
      "commit": "066cde92d267986424ff79f35881116da3c672f8",
      "tree": "d60cad56b7091bb23b63bece6adc68dc4b744250",
      "parents": [
        "bb2da79fdab68c9643a30f5156e7dcabb379b139",
        "223e07983718e1515f2a54542b9b0163a8f508ed"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 19 19:13:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 19 19:13:39 2014 +0000"
      },
      "message": "am 223e0798: Merge \"Enable building init with -Wall -Werror.\"\n\n* commit \u0027223e07983718e1515f2a54542b9b0163a8f508ed\u0027:\n  Enable building init with -Wall -Werror.\n"
    },
    {
      "commit": "eb3f421e028608e37e4eb814351f03b99ae55900",
      "tree": "030a4b7c930994a5bee836f0780aadf87dabac25",
      "parents": [
        "27fd413d6d02a53c453cf926717b67e9a8d1eb32"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Feb 12 16:17:00 2014 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Feb 19 09:15:09 2014 -0500"
      },
      "message": "Enable building init with -Wall -Werror.\n\nEliminates various warnings from SELinux-related code.\n\nBug: 12587913\nChange-Id: I28921f0ebd934324436609540d95ccef58552b64\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "b6e3b3cea2c2606fcff0364d680335fc3433247b",
      "tree": "0ca00265b623af1bc09eaf543820602bd62a8b89",
      "parents": [
        "0f18bb1fe04a6d087644957cea9b6dbd2c621203",
        "13d5bb4badf59e22d9d983d104596da3ec4f2753"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Feb 14 15:24:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 14 15:24:41 2014 +0000"
      },
      "message": "Merge \"Mount default encrypted devices at boot\""
    },
    {
      "commit": "3049f239156aebba51c7ac0e8112f96f4edf7b7a",
      "tree": "08fa485ec49c88a0dcf78081436fe0fd6fbd5715",
      "parents": [
        "b49443d1b67bff0d0426261f4f42c23264eff18b",
        "e41420bd8cbaa69f6eaca524b2412cb92a6d18a3"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Feb 13 00:19:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 00:19:47 2014 +0000"
      },
      "message": "am e41420bd: am 488b5eaf: am 2e7347d6: Merge \"Convert all selinux_android_restorecon and _setfilecon calls to new API.\"\n\n* commit \u0027e41420bd8cbaa69f6eaca524b2412cb92a6d18a3\u0027:\n  Convert all selinux_android_restorecon and _setfilecon calls to new API.\n"
    },
    {
      "commit": "e41420bd8cbaa69f6eaca524b2412cb92a6d18a3",
      "tree": "1088310aaf4413a1b2022e7775384f91d8a7e5be",
      "parents": [
        "28613a3c447d6ebdc30375ad5c6272c0c911e795",
        "488b5eafe368781077b367a9afd68db303bc8891"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Feb 13 00:12:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 00:12:52 2014 +0000"
      },
      "message": "am 488b5eaf: am 2e7347d6: Merge \"Convert all selinux_android_restorecon and _setfilecon calls to new API.\"\n\n* commit \u0027488b5eafe368781077b367a9afd68db303bc8891\u0027:\n  Convert all selinux_android_restorecon and _setfilecon calls to new API.\n"
    },
    {
      "commit": "488b5eafe368781077b367a9afd68db303bc8891",
      "tree": "bab7673cde8a4c6f4766543bf589cd53a9cbaee8",
      "parents": [
        "f094fd035f343b3704b3574ce0005fc0e4666db5",
        "2e7347d617b02b13d227bb4cecf6bd69b7b20fa9"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 23:19:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 12 23:19:02 2014 +0000"
      },
      "message": "am 2e7347d6: Merge \"Convert all selinux_android_restorecon and _setfilecon calls to new API.\"\n\n* commit \u00272e7347d617b02b13d227bb4cecf6bd69b7b20fa9\u0027:\n  Convert all selinux_android_restorecon and _setfilecon calls to new API.\n"
    },
    {
      "commit": "13d5bb4badf59e22d9d983d104596da3ec4f2753",
      "tree": "ffc2791315f8a0673ba3e79855cbb1a982126855",
      "parents": [
        "84a95225d66c11ffabe7e55145d220e98a38774f"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Jan 30 10:43:52 2014 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Feb 07 07:23:11 2014 -0800"
      },
      "message": "Mount default encrypted devices at boot\n\nIf userdata is default encrypted, we should mount it at boot\nto avoid bringing the framework up and then down unnecessarily.\n\nNeeds matching vold changes from\n https://googleplex-android-review.googlesource.com/#/c/412649/\n\nBug: 8769627\nChange-Id: I4b8276befd832cd788e15c36edfbf8f0e18d7e6b\n"
    },
    {
      "commit": "27a93650c0df02e4cd3c48bbec8acee8b817a012",
      "tree": "5e44f37904161863c288b4c4734d7dabd3b3b94c",
      "parents": [
        "71de56a08cac3353334c2253748fdf8c37ec4aa1"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Feb 07 09:14:13 2014 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Feb 07 09:38:32 2014 -0500"
      },
      "message": "Convert all selinux_android_restorecon and _setfilecon calls to new API.\n\nlibselinux selinux_android_restorecon API is changing to the more\ngeneral interface with flags and dropping the older variants.\n\nAlso get rid of the old, no longer used selinux_android_setfilecon API\nand rename selinux_android_setfilecon2 to it as it is the only API in use.\n\nChange-Id: I1e71ec398ccdc24cac4ec76f1b858d0f680f4925\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "073e62e4ee546d0a44f2262fbf4ca459e3d4fc66",
      "tree": "65a288d43e36c6ea7b113c87f3400345f12b0953",
      "parents": [
        "cbd0ae37758d6892866484a50e1a019b834da057",
        "cdecfcbb33fc3cc85ac7210ec53f6f1f90a6ffee"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Jan 31 23:07:20 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 31 23:07:20 2014 +0000"
      },
      "message": "am cdecfcbb: Merge \"init: prevent waiting forever when a setprop is incomplete.\" into klp-volantis-dev\n\n* commit \u0027cdecfcbb33fc3cc85ac7210ec53f6f1f90a6ffee\u0027:\n  init: prevent waiting forever when a setprop is incomplete.\n"
    },
    {
      "commit": "4515d81e7e9d4b11dfdb29493f55e3ef548fbbe8",
      "tree": "d3c00c58b9c7c90408d3289d72d3ac452829d821",
      "parents": [
        "480fdd524da3aa24429e46b81f52651f95c1c59a"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Jan 31 14:37:07 2014 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Jan 31 14:53:21 2014 -0800"
      },
      "message": "init: prevent waiting forever when a setprop is incomplete.\n\nAny app can\n  socket_local_client_connect(s, \"property_service\", ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM)\nand just keep it open without sending anything.\nFrom then on, the property_service.c::handle_property_set_fd() will\njust recv() forever.\nThis prevents any other properties (i.e. property_set(\"sys.powerctl\", \"reboot\"))\nfrom being processed.\n\nNow, we just poll() for 2 sec before recv(...,MSG_DONTWAIT).\n\nBug: 12061560\nChange-Id: Iffea4ebb444c7100b59c43ed87aecc5c99f9d3e8\n"
    },
    {
      "commit": "8ca9400c0a7a7ff30094a20d4dd72a17b1fbac3b",
      "tree": "bd56b5f79d7fc9bd7cc4c106544b22d151cb8578",
      "parents": [
        "35f6c3aed998ec5721c83a5c69a6e1d348ff98b3",
        "f286938177390ec058ea39b308c9b9498b011c7c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 28 21:19:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 28 21:19:32 2014 +0000"
      },
      "message": "am f2869381: am 11322efd: am acd96b11: am 12db3eb6: Merge \"Move restorecon and restorecon_recursive code to libselinux.\"\n\n* commit \u0027f286938177390ec058ea39b308c9b9498b011c7c\u0027:\n  Move restorecon and restorecon_recursive code to libselinux.\n"
    },
    {
      "commit": "acd96b11189e0422fa4060bc29139fbfef5b14a8",
      "tree": "3556c5adc99926dd3cd38df8f158e700123985d6",
      "parents": [
        "9aaba5cad1197a16c6af13bca76fbc95eeb25ca7",
        "12db3eb6db3b80011043e404530012612a1d0fbf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 28 21:02:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 28 21:02:57 2014 +0000"
      },
      "message": "am 12db3eb6: Merge \"Move restorecon and restorecon_recursive code to libselinux.\"\n\n* commit \u002712db3eb6db3b80011043e404530012612a1d0fbf\u0027:\n  Move restorecon and restorecon_recursive code to libselinux.\n"
    },
    {
      "commit": "dbd37f2e1da5b27ef1ad6d0cc9580e6893560f5f",
      "tree": "6f0a3d877b6b0c4734b942443504a6e186e56c30",
      "parents": [
        "6ddabb7a1cc3080ae773acb045f69b5e6afee87a"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Jan 28 10:34:09 2014 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Jan 28 10:42:24 2014 -0500"
      },
      "message": "Move restorecon and restorecon_recursive code to libselinux.\n\nThis requires telling libselinux to use the sehandle already\nobtained by init rather than re-acquiring it internally.  init\nretains ownership of the sehandle because it performs the\ninitial load, uses the sehandle for other purposes (e.g. labeling\nof directories created via mkdir and labeling of socket files),\nand handles the policy reload property trigger.\n\nChange-Id: I4a380caab7f8481c33eb64fcdb16b6cabe918ebd\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "ca53f0a0840ef859dbabfb089f2036656d1ca18c",
      "tree": "36866ec0c15eb1d3ec4b5bac4f0a4028edb6fbc3",
      "parents": [
        "719b0198a324582cbf2c01236bb03746475a52e0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 18 15:28:11 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 22 12:17:36 2014 -0800"
      },
      "message": "don\u0027t load property_contexts from /data\n\nBug: 12613118\n\n(cherry picked from commit dc3a42bb11dc2aefee37f799b5a1cce87cf35aaf)\n\nChange-Id: If630478b0e3fdda8c1c14b3f41b717085acf9914\n"
    },
    {
      "commit": "349f894e522830f462fdfff64d2ef8bec5dcf747",
      "tree": "433d7b0f7cb265722d76fdf4cbbb37e53a1b2251",
      "parents": [
        "10c51a38752d8f57f144f114331956c995180ad9",
        "dc3a42bb11dc2aefee37f799b5a1cce87cf35aaf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sun Jan 19 18:29:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 19 18:29:01 2014 +0000"
      },
      "message": "Merge \"don\u0027t load property_contexts from /data\""
    },
    {
      "commit": "dc3a42bb11dc2aefee37f799b5a1cce87cf35aaf",
      "tree": "3db64f9473f69c58bf753e58e18e5c224967d788",
      "parents": [
        "d70009e7ec0a8b04a67d6bd579e36c279410eb21"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 18 15:28:11 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 18 15:28:11 2014 -0800"
      },
      "message": "don\u0027t load property_contexts from /data\n\nBug: 12613118\nChange-Id: I5a84b13d2151075d5136e3682431fbcc9307df13\n"
    },
    {
      "commit": "ab88481dc7f00643bf06f27fd1d0a2e007dc0ea6",
      "tree": "545cff95ee21501da7361fa7519c2672837b3b57",
      "parents": [
        "d0f2c265d8b7457bbb9b809e00b6e8b18bbef7c9",
        "b70375abc2c4da6f868da4eef3d3f059acdf9774"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 22:43:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 16 22:43:20 2014 +0000"
      },
      "message": "Merge \"resolved conflicts for merge of ec9e5891 to master\""
    },
    {
      "commit": "b70375abc2c4da6f868da4eef3d3f059acdf9774",
      "tree": "52e04bc7cf0e003783006d488c7c6d276d500f45",
      "parents": [
        "24239a99ffde4a264be3121bff8b1ee70b78f63c",
        "ec9e5891ac97c50cfb8d3d1c9c2d478637eff62b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 14:42:35 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 14:42:35 2014 -0800"
      },
      "message": "resolved conflicts for merge of ec9e5891 to master\n\nChange-Id: I704e3159d529e436e060cb66c1739ef8e7b612d4\n"
    },
    {
      "commit": "ccecf1425412beb2bc3bb38d470293fdc244d6f1",
      "tree": "9fd922197bc88bed453efa0738f3dfb5d6db4c3c",
      "parents": [
        "e847f429f43ae56aaa406697ca603c8469e2100b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 10:53:11 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 12:54:18 2014 -0800"
      },
      "message": "system/core 64-bit cleanup.\n\nThis cleans up most of the size-related problems in system/core.\nThere are still a few changes needed for a clean 64-bit build,\nbut they look like they might require changes to things like the\nfastboot protocol.\n\nChange-Id: I1560425a289fa158e13e2e3173cc3e71976f92c0\n"
    },
    {
      "commit": "7baebf1345ff9e861ea8ccf9712128a3b7cd9fcc",
      "tree": "c5a4fbdd1661a923de9988951744a2545cf0239a",
      "parents": [
        "475377b68a49197b14d8ff6553842b7f417d8161"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jan 14 12:30:40 2014 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jan 16 08:54:59 2014 -0800"
      },
      "message": "add the pre-recovery service\n\nAdd a service called \"pre-recovery\" which is normally stopped but can\nbe started by the system server when we want to go into recovery.  It\nwill do any preparation needed (currently needed to handle update\npackages that reside on an encrypted /data partition) and then set\nsys.powerctl when it\u0027s ready to actually reboot.\n\nBug: 12188746\nChange-Id: I894a4cb200395a0f6d7fe643ed4c2ac0a45d2052\n"
    },
    {
      "commit": "da1f43f0753ef1d3f01e5eaf01280ef611f4abfb",
      "tree": "14aece86f0a09995099db55d6b162558e6631f58",
      "parents": [
        "ccfa8988bbff5531c6d131ee25ae0881d6e05f2f",
        "5b5b1f9b48f966942be3cda8d4ecfb7d910f12a0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jan 14 00:37:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 14 00:37:28 2014 +0000"
      },
      "message": "am 5b5b1f9b: am d896c195: am 45f3ed05: am 105f6b66: Merge \"restorecon_recursive(\"/sys\") speed boot time\"\n\n* commit \u00275b5b1f9b48f966942be3cda8d4ecfb7d910f12a0\u0027:\n  restorecon_recursive(\"/sys\") speed boot time\n"
    },
    {
      "commit": "a613819a96eeede9f9702d145e0575d459fdfd7a",
      "tree": "c84db64b17ccb5a90e6b9614650aa98f884413cd",
      "parents": [
        "8387fc938e044a2bf2840139203af7f9b3884029"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 10 18:52:25 2014 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jan 10 19:49:14 2014 -0800"
      },
      "message": "restorecon_recursive(\"/sys\") speed boot time\n\nCurrently, the restorecon_recursive(\"/sys\") call in\ninit.c takes approx 2 seconds on hammerhead. This change\nreduces the delay to 1.2 seconds.\n\n1) Avoid double stat call when using nftw (time savings\nof 0.3 seconds)\n2) Avoid the repeated calls to is_selinux_enabled() (time\nsavings of 0.5 seconds)\n\nAvoid calling lsetfilecon if the file is already properly\nlabeled. This doesn\u0027t speed up the restorecon on /sys,\nbut it should help when handling files on /data.\n\nBug: 11640230\nChange-Id: Ie212ce4f4acade208c5676d60c1f03f50e2388a4\n"
    },
    {
      "commit": "dab375bcba96315af1e388dcaa9c9b92c4a81248",
      "tree": "63b18b6ad844c0a76254354c26d2c7304d68d4b0",
      "parents": [
        "3dd470552c6b1c88cd344c3a366666ba464bd994",
        "764daa33c06b5fd699bf0c8162b18dd39b00795a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Dec 30 18:08:59 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 30 18:08:59 2013 +0000"
      },
      "message": "am 764daa33: am 21ff8257: am bb96da43: am 268cc540: Merge \"ueventd: fix a busy loop while reading uevents\"\n\n* commit \u0027764daa33c06b5fd699bf0c8162b18dd39b00795a\u0027:\n  ueventd: fix a busy loop while reading uevents\n"
    },
    {
      "commit": "268cc54089cbdeb0c2ea955448bb16a0858c4538",
      "tree": "782c5c42929926dfa806fa3b410bfbad3c35b3b5",
      "parents": [
        "2dcc275936aefbb5badf3b4822d492260077144d",
        "1d4e86c44589b3a97ca0113493c2e569c3aabcc6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Dec 28 20:09:52 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 28 20:09:53 2013 +0000"
      },
      "message": "Merge \"ueventd: fix a busy loop while reading uevents\""
    },
    {
      "commit": "81fcdd250e7c7ada6d1f5ef62f84e54d289f6fe8",
      "tree": "1e598c7041b931c10ac6b389d74a1f15119bf38e",
      "parents": [
        "11905774ecdf396dd654f985df383f0d404d5fb0",
        "b470d404e58bbe89c5c2822120b220e45ff72b42"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Dec 10 17:56:01 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 10 17:56:01 2013 +0000"
      },
      "message": "am b470d404: am b988e95c: am 6fec3a23: Merge \"Log a warning on services that lack SELinux domains.\"\n\n* commit \u0027b470d404e58bbe89c5c2822120b220e45ff72b42\u0027:\n  Log a warning on services that lack SELinux domains.\n"
    },
    {
      "commit": "af06c6745bdf391c57ef29de4e6133f05c3b6187",
      "tree": "3cc83d1c34314e26c3b853b3ed7f095555267289",
      "parents": [
        "bdf53e2a59654d2b1e8469616f1b0175b275219d"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Dec 09 15:40:24 2013 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon Dec 09 15:40:24 2013 -0500"
      },
      "message": "Log a warning on services that lack SELinux domains.\n\nSample output on flo:\n\u003c3\u003e[    7.270568] init: Warning!  Service irsc_util needs a SELinux domain defined; please fix!\n\u003c3\u003e[    8.290832] init: Warning!  Service bootanim needs a SELinux domain defined; please fix!\n\nChange-Id: If5514b188517917d58ee81c446af563b0443be45\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "bf5e7ed84e51f40da30a1350cdc3124c19a3484c",
      "tree": "4380d8d3725814b9eb31f160cbceed18e98869ec",
      "parents": [
        "dde75d940a0f8c177fea9299c26959eeb6707033",
        "5ebd8e43ba992d12fcdac4aedf7da51b50d6b949"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "message": "am 5ebd8e43: am b2406973: Merge changes I727d9135,I3bd1b59d,I0d05aa28\n\n* commit \u00275ebd8e43ba992d12fcdac4aedf7da51b50d6b949\u0027:\n  rootdir: add ueventd.rc rule for adf subsystem\n  init: add subsystem rules to ueventd.rc\n  init: handle ueventd path truncation better\n"
    },
    {
      "commit": "dde75d940a0f8c177fea9299c26959eeb6707033",
      "tree": "d31ce8846242fc2f5d577dfa3b00d58b8f56db5a",
      "parents": [
        "7b1791e153bb836f72ee122691f80f2012c9fe75",
        "675c996651e0513e9c7b657d356c55f9b05c7c9f"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "message": "am 675c9966: am 0914e01e: Merge \"init: limit visibility of init_parser.c helpers\"\n\n* commit \u0027675c996651e0513e9c7b657d356c55f9b05c7c9f\u0027:\n  init: limit visibility of init_parser.c helpers\n"
    },
    {
      "commit": "7b1791e153bb836f72ee122691f80f2012c9fe75",
      "tree": "321d27c1bc96de007638677c28a06077629db7b3",
      "parents": [
        "7d2db03ef7eb12fdf33562c37d47f803b32c12f1",
        "8bda6ce55700e46760f8d59820406b72964fa171"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 27 17:09:20 2013 +0000"
      },
      "message": "am 8bda6ce5: am 121400a4: Merge \"Make init distinguish between orderly exit and being killed by signals.\"\n\n* commit \u00278bda6ce55700e46760f8d59820406b72964fa171\u0027:\n  Make init distinguish between orderly exit and being killed by signals.\n"
    },
    {
      "commit": "3312aa8379d877044def52f3b3be5c912a5e61a2",
      "tree": "5a6ddb2bcffa458e69c4d789b6683207e0318354",
      "parents": [
        "f6e009ee2650d8812942aa7f5761e86402346739"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Nov 18 15:24:40 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 26 13:18:23 2013 -0800"
      },
      "message": "init: add subsystem rules to ueventd.rc\n\nBy default ueventd creates device nodes under /dev based on the ueventd\nDEVPATH.  Several subsystems have special rules which are hardcoded in\ndevices.c.  Moving forward these special rules should go in ueventd.rc.\n\nSpecial rules have the syntax:\n\n\tsubsystem \u003cs\u003e\n\t\tdevname (uevent_devname|uevent_devpath)\n\t\t[dirname \u003cdir\u003e]\n\nDevices matching SUBSYSTEM\u003d\u003cs\u003e will be populated under \u003cdir\u003e.  dirname\nis optional and defaults to /dev.  If dirname is provided, \u003cdir\u003e must\nstart with \"/\".\n\nIf devname is uevent_devname, ueventd will create the device node as\n\u003cdir\u003e/DEVNAME.  DEVNAME may include intermediate subdirectories, which\nueventd will automatically create.\n\nIf devname is uevent_devpath, ueventd will use the legacy behavior of\ncomputing DEVPATH_BASE\u003dbasepath(DEVPATH), and creating the device node\nas \u003cdir\u003e/DEVPATH_BASE.\n\nThe new parsing code is based on init_parser.c, with small tweaks to\nhandle commands which don\u0027t fall under a section header.\n\nChange-Id: I3bd1b59d7e62dfc9d289cf6ae889e237fb5bd7c5\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "f6e009ee2650d8812942aa7f5761e86402346739",
      "tree": "18d2b248ed226e29eefff618f1d60eab39187d25",
      "parents": [
        "0914e01ed9936602006ed4a6891c5e55a42e881a"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Thu Nov 21 13:26:48 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 26 13:17:35 2013 -0800"
      },
      "message": "init: handle ueventd path truncation better\n\nLog an error before discarding problematic events, and add a missing\ntruncation check to the usb subsystem\u0027s unique codepath\n\nChange-Id: I0d05aa287ffc63b46d1752d2a7409d35dc8caca7\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "0914e01ed9936602006ed4a6891c5e55a42e881a",
      "tree": "f4816a69d9bdaa10851e74bcd8f703c7ff83f701",
      "parents": [
        "121400a40fce22b6e0b74f2492b8b9eff6133bd1",
        "d68db71e756c3fac2dd32fa78bdd2c0bc172663a"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Nov 26 20:58:43 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 26 20:58:43 2013 +0000"
      },
      "message": "Merge \"init: limit visibility of init_parser.c helpers\""
    },
    {
      "commit": "6c5ad5c2ced5e2f1dc31448ef3e0c0fb14f9ada8",
      "tree": "627d548e7467bd72f308116636c7389f671eeaf4",
      "parents": [
        "71f2f2514ee40a6d9b66545049855ab371955bed"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 25 16:33:53 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 25 16:33:53 2013 -0800"
      },
      "message": "Make init distinguish between orderly exit and being killed by signals.\n\nBug: 11826724\nChange-Id: I7c11f602447dbd6862decc51cdfe883003cf7d67\n"
    },
    {
      "commit": "d68db71e756c3fac2dd32fa78bdd2c0bc172663a",
      "tree": "3b188dafec213725c0d26956d0a81f45fd5f286e",
      "parents": [
        "66ed50af6870210ce013a5588a688434a5d48ee9"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Nov 18 09:44:20 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Nov 25 11:24:16 2013 -0800"
      },
      "message": "init: limit visibility of init_parser.c helpers\n\nTo prevent clashing with forthcoming changes to uevent_parser.c\n\nChange-Id: I2ee183261c7f43e0e4104a16a280c7ee73d7df96\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "66ed50af6870210ce013a5588a688434a5d48ee9",
      "tree": "a879f3ea31083496d0efe491bc187b6e0ebada39",
      "parents": [
        "dd2ac3de625e6c0328a0f70530d8ade0d2151bfc",
        "536dea9d61a032e64bbe584a97463c6638ead009"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:28:10 2013 -0800"
      },
      "committer": {
        "name": "Conley Owens",
        "email": "cco3@android.com",
        "time": "Fri Nov 22 13:44:43 2013 -0800"
      },
      "message": "Merge commit \u0027536dea9d61a032e64bbe584a97463c6638ead009\u0027 into HEAD\n\nChange-Id: I5c469a4b738629d99d721cad7ded02d6c35f56d5\n"
    },
    {
      "commit": "1d4e86c44589b3a97ca0113493c2e569c3aabcc6",
      "tree": "ce947021ff8384f56934d88e7ba3e3d65cd3c6f9",
      "parents": [
        "3fa14a53e70cd55df031646fe3735a6fde37deb8"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir@cellrox.com",
        "time": "Sun Nov 10 15:36:58 2013 +0200"
      },
      "committer": {
        "name": "Amir Goldstein",
        "email": "amir@cellrox.com",
        "time": "Sun Nov 17 14:50:00 2013 +0200"
      },
      "message": "ueventd: fix a busy loop while reading uevents\n\nUnder certain conditions, poll() may raise the POLLERR\nflag along with POLLIN, in which case the check for\n(ufd.revents \u003d\u003d POLLIN) results in an endless busy loop.\n\nThe following fix was applied to\nhardware/libhardware_legacy/uevent/uevent.c\nto fix a similar bug:\n\n  commit 3aabb260ceef10377c31c9e45fb239247f5cfeba\n  Author: Mathias Agopian \u003cmathias@google.com\u003e\n  Date:   Mon Oct 1 14:53:18 2012 -0700\n\n    fix a typo in uevent_next_eventi\n\n    Bug: 7114973\n    Change-Id: I15a4c714b59aeb1d02db00517d70b5f0e5ab22c2\n\nApplying the same fix for two more poll loops in init\nand ueventd.\n\nChange-Id: I50693f6d3c904992ac4b8a9a14a83c7106e6b9e0\n"
    },
    {
      "commit": "8ac7c9f6593f1fcdca5d79297e4d8ba550df19c9",
      "tree": "9199099cff9b88eeb57095d08c1038434584d4bf",
      "parents": [
        "8d16ac26f3453ce3c5a9b6fe6c26750123b6ae5d",
        "308f0f9bf2a82d9c1e02982f0e177f6b04545210"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Oct 17 09:50:44 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 17 09:50:44 2013 -0700"
      },
      "message": "am 308f0f9b: am 95e69261: am ac568b8f: Merge \"init: remove obsolete rle logo\"\n\n* commit \u0027308f0f9bf2a82d9c1e02982f0e177f6b04545210\u0027:\n  init: remove obsolete rle logo\n"
    },
    {
      "commit": "308f0f9bf2a82d9c1e02982f0e177f6b04545210",
      "tree": "ffd2cb4339b4360d20597982c54ebd790ab28533",
      "parents": [
        "536dea9d61a032e64bbe584a97463c6638ead009",
        "95e69261b22cd57c795e96e5ac122f120113f819"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Oct 17 09:46:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 17 09:46:10 2013 -0700"
      },
      "message": "am 95e69261: am ac568b8f: Merge \"init: remove obsolete rle logo\"\n\n* commit \u002795e69261b22cd57c795e96e5ac122f120113f819\u0027:\n  init: remove obsolete rle logo\n"
    },
    {
      "commit": "50dc936964e057ad779ce271c6d1c12e4d81f0aa",
      "tree": "2831b7f0452ec0e6bf1c975a01595fab545b8573",
      "parents": [
        "a94d2b392f830e3c0a1e4bd0d2d262314eada8d9"
      ],
      "author": {
        "name": "Marcin Chojnacki",
        "email": "marcinch7@gmail.com",
        "time": "Wed Oct 16 17:39:16 2013 +0200"
      },
      "committer": {
        "name": "Marcin Chojnacki",
        "email": "marcinch7@gmail.com",
        "time": "Wed Oct 16 17:39:16 2013 +0200"
      },
      "message": "init: remove obsolete rle logo\n\nObsolete RLE 565 logo is used nowhere,\nbecause 565 framebuffer isn\u0027t used for years.\n\nIt\u0027s not necessary to keep this thing alive anymore.\n\nChange-Id: Ie61e168790f791230530cd3eb1c68b1f7344c9a7\n"
    },
    {
      "commit": "3a5a7c0e26cf34e7228a1e6a3181ad0d46d60d6d",
      "tree": "2b52420d1afdcbed9a6a0e1cd1c37b58a17a69a7",
      "parents": [
        "df206c8e46699bda2b496ad3f9b24a6eb07f6047",
        "aa4051dc4f90f987ba05269ce396d676571156e0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 10 12:42:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 12:42:49 2013 -0700"
      },
      "message": "am aa4051dc: am 2f924ebe: am a94d2b39: Merge \"Add a restorecon_recursive built-in command to init.\"\n\n* commit \u0027aa4051dc4f90f987ba05269ce396d676571156e0\u0027:\n  Add a restorecon_recursive built-in command to init.\n"
    },
    {
      "commit": "aa4051dc4f90f987ba05269ce396d676571156e0",
      "tree": "29f9730a4b5a1ab3e90460274aee6942ece88173",
      "parents": [
        "33d1e6294f609c4f417905239bd5a086f3ef880f",
        "2f924ebe0b0891dba1996c246839427b23705018"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 10 12:38:44 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 10 12:38:44 2013 -0700"
      },
      "message": "am 2f924ebe: am a94d2b39: Merge \"Add a restorecon_recursive built-in command to init.\"\n\n* commit \u00272f924ebe0b0891dba1996c246839427b23705018\u0027:\n  Add a restorecon_recursive built-in command to init.\n"
    },
    {
      "commit": "726e8f7a8f3603f952055e440e21cc69c7340b36",
      "tree": "1dfc822749574dde837c5eac22922c0800c94846",
      "parents": [
        "7dbe96602cde4822d22f17b85e33027563e8c521"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Oct 09 16:02:09 2013 -0400"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Oct 10 14:09:19 2013 -0400"
      },
      "message": "Add a restorecon_recursive built-in command to init.\n\nFunctionally equivalent to the restorecon -R toolbox command.\nA use case is given by:\nI48eaa2b9901ac8c978192c14493ba1058a089423\n\nAlso, fix error handling and documentation for restorecon command.\n\nChange-Id: Ia7fbcc82645baf52c6bff0490d3492f458881cbb\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "adb88e20e4b71cfd1b73bd9efbf7693a28025af3",
      "tree": "0547d696342a034193b2efbf5aff4de04149a972",
      "parents": [
        "90f143328f8f050b6648c7342dc7a6721725e32f",
        "4820022b5edb0d19e268d836c25aa628b4378aba"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Sep 24 16:18:09 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 16:18:09 2013 -0700"
      },
      "message": "am 4820022b: am 0b7d588d: am f2c4c4ad: Merge \"init: Fix queue_all_property_triggers with nonexistent properties\"\n\n* commit \u00274820022b5edb0d19e268d836c25aa628b4378aba\u0027:\n  init: Fix queue_all_property_triggers with nonexistent properties\n"
    },
    {
      "commit": "4820022b5edb0d19e268d836c25aa628b4378aba",
      "tree": "4042a09a6c6334d163ba0b7d29955ea877bbfdd1",
      "parents": [
        "bcea352d2ce59c98414d15cb38f16d4c1abe2b72",
        "0b7d588d531691904530ba57d772b31fb24ed343"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Sep 24 16:15:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 24 16:15:43 2013 -0700"
      },
      "message": "am 0b7d588d: am f2c4c4ad: Merge \"init: Fix queue_all_property_triggers with nonexistent properties\"\n\n* commit \u00270b7d588d531691904530ba57d772b31fb24ed343\u0027:\n  init: Fix queue_all_property_triggers with nonexistent properties\n"
    },
    {
      "commit": "d679e1b572c8fc2a115b7d126593f92abd746aab",
      "tree": "633f2f9d5df08d4fe6f8c18067cdf219c07f1fcd",
      "parents": [
        "3c8bdef029cbaa8d8fa18e4e55e51b60e938dd6e"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Sep 24 14:42:26 2013 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Sep 24 15:20:34 2013 -0700"
      },
      "message": "init: Fix queue_all_property_triggers with nonexistent properties\n\nDon\u0027t queue actions for \"on property\u003d*\" if the property does not exist.\nThis fixes these errors on boot:\n\n    init: property \u0027sys.powerctl\u0027 doesn\u0027t exist while\n    expanding \u0027${sys.powerctl}\u0027\n    init: powerctl: cannot expand \u0027${sys.powerctl}\n\nChange-Id: I3bd354d73a860f856be5df2c654f940445f9efd9\n"
    },
    {
      "commit": "7a060eddce1fe51553371b1c499f1dbf54388d0c",
      "tree": "d2976f13c48b19476282ab479d2fb44023759fde",
      "parents": [
        "126cdc2c4b135156ffb2a4414ff67af2b22b2283",
        "54aad026616148164ff6ceda7508a4e5a04ec569"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 18 16:09:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 16:09:13 2013 -0700"
      },
      "message": "am 54aad026: am 8dc82eea: am 36b39a97: Merge \"init: Fix get_hardware_name() to cope with long /proc/cpuinfo output\"\n\n* commit \u002754aad026616148164ff6ceda7508a4e5a04ec569\u0027:\n  init: Fix get_hardware_name() to cope with long /proc/cpuinfo output\n"
    },
    {
      "commit": "54aad026616148164ff6ceda7508a4e5a04ec569",
      "tree": "83670e7cdc4f0f1e75b0995f8bf6389073fcac35",
      "parents": [
        "a512c1ca6322b54b6a74be01be53d537f5a81da4",
        "8dc82eea7ebda374830ee7fa1802222a94eefd88"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 18 16:04:22 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 16:04:22 2013 -0700"
      },
      "message": "am 8dc82eea: am 36b39a97: Merge \"init: Fix get_hardware_name() to cope with long /proc/cpuinfo output\"\n\n* commit \u00278dc82eea7ebda374830ee7fa1802222a94eefd88\u0027:\n  init: Fix get_hardware_name() to cope with long /proc/cpuinfo output\n"
    },
    {
      "commit": "36b39a97f3fc5790538e2e69429043b78ba486e4",
      "tree": "c4a6835e6dfb998999cf24a57e0f0775494860e7",
      "parents": [
        "4a280e3dbe002bb5419ec010f89cdc158244e435",
        "229dc35f699f144e5e3ccd8062bba8f6e650cfdc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 18 21:38:33 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 18 21:38:33 2013 +0000"
      },
      "message": "Merge \"init: Fix get_hardware_name() to cope with long /proc/cpuinfo output\""
    },
    {
      "commit": "3dcfb7f107916445cd378d530a6a69175128d0c7",
      "tree": "775a148079381a213c60075ddf597463a4bb5242",
      "parents": [
        "59e51e792a13e017d0f1b85a02fcc56815ea83d6",
        "18c34183d76be2efbf2f498ec0185c1ceffa49f0"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 17 15:07:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 17 15:07:10 2013 -0700"
      },
      "message": "am 18c34183: am 5535b051: write_file: introduce O_NOFOLLOW, use sane mask\n\n* commit \u002718c34183d76be2efbf2f498ec0185c1ceffa49f0\u0027:\n  write_file: introduce O_NOFOLLOW, use sane mask\n"
    },
    {
      "commit": "18c34183d76be2efbf2f498ec0185c1ceffa49f0",
      "tree": "d275a7a4217c05654c5071e5a42cc913a7b0d9ef",
      "parents": [
        "e6e5daace55672b1ec8fb6c5c17a85ee1531f7ad",
        "5535b05120fa3fd3d68a09e01284aba35cc6e058"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 17 15:04:45 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 17 15:04:45 2013 -0700"
      },
      "message": "am 5535b051: write_file: introduce O_NOFOLLOW, use sane mask\n\n* commit \u00275535b05120fa3fd3d68a09e01284aba35cc6e058\u0027:\n  write_file: introduce O_NOFOLLOW, use sane mask\n"
    },
    {
      "commit": "5535b05120fa3fd3d68a09e01284aba35cc6e058",
      "tree": "883ad4da63ed9b809fcb100f7366dd843f281bf0",
      "parents": [
        "3a0d4b34816d65e21951f44e4d98a954c5c855ae"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 17 14:43:12 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 17 14:46:00 2013 -0700"
      },
      "message": "write_file: introduce O_NOFOLLOW, use sane mask\n\nDon\u0027t follow symlinks when writing to a file.\nDon\u0027t create world-writable files.\n\nBug: 10802869\nChange-Id: Ifb55600d574307a535df878acb3347e02028cd30\n"
    },
    {
      "commit": "c2c5a2410a2d7861d3c4f07f039eb8c471741cfa",
      "tree": "4f96d27c7266fdf63ec8dc8a4699a18955fe7620",
      "parents": [
        "db3f6ef829e6c463c6c15746e64525c76b4c10e1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Sep 16 11:30:48 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Sep 16 11:32:37 2013 -0700"
      },
      "message": "property_service: address comments from previous review.\n\nAddress post-submit comments from\n694636142113d91c2b9585ad28e143d4ff001584\n\nBug: 10733330\nChange-Id: I7c652f7ef0379536df48b9478a2362f1bfd252fe\n"
    },
    {
      "commit": "b453a9aa1d6f0b2ac624583938202983ad25673b",
      "tree": "6acd30c909015e9ce255dc3584e1b3bc42671ea2",
      "parents": [
        "5c0e6410d04c60fba043a68ffc9ae58c302a32bd",
        "3a0d4b34816d65e21951f44e4d98a954c5c855ae"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Sep 16 10:31:12 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 16 10:31:12 2013 -0700"
      },
      "message": "am 3a0d4b34: Merge \"property_service: better validate property names\" into klp-dev\n\n* commit \u00273a0d4b34816d65e21951f44e4d98a954c5c855ae\u0027:\n  property_service: better validate property names\n"
    },
    {
      "commit": "694636142113d91c2b9585ad28e143d4ff001584",
      "tree": "386eb400e2df5473c5d9484bd6b1b0e0d7ed5fa2",
      "parents": [
        "53dc297dd685aa7498203fddb3f85e60f2cbc7df"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Sep 13 17:21:28 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Sep 16 09:05:29 2013 -0700"
      },
      "message": "property_service: better validate property names\n\nDon\u0027t allow unexpected characters in property names.\nDon\u0027t allow double dots in property names.\n\nBug: 10733330\nChange-Id: I8d69740d697efb791f2f201f90989576e13bac81\n"
    },
    {
      "commit": "e4e7fef1bc19ce83a6076eca65fa1a2f6eac862e",
      "tree": "80772416900edea3bfe092fefed293cfd9b03ed3",
      "parents": [
        "d9c0642c6e3430c90492a1b0c9be435e9cc7b5a9",
        "5951a3691eb0378ec65ea2e6a2e2fe77d24c5e55"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri Sep 13 09:42:10 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 13 09:42:10 2013 -0700"
      },
      "message": "am 5951a369: am b4819e4a: Merge \"init: support longer command lines\"\n\n* commit \u00275951a3691eb0378ec65ea2e6a2e2fe77d24c5e55\u0027:\n  init: support longer command lines\n"
    },
    {
      "commit": "2e63e71f3116f0330b3bf61dde7deca235dd40ac",
      "tree": "0e35d0e441f9a2ca0e72589e2934b7c06a0d845c",
      "parents": [
        "596e9c6314e4f2869499bcdbb816680ddb10c88f"
      ],
      "author": {
        "name": "Andrew Boie",
        "email": "andrew.p.boie@intel.com",
        "time": "Mon Sep 09 13:08:17 2013 -0700"
      },
      "committer": {
        "name": "Andrew Boie",
        "email": "andrew.p.boie@intel.com",
        "time": "Mon Sep 09 13:11:34 2013 -0700"
      },
      "message": "init: support longer command lines\n\nThe Linux kernel supports command lines up to 2048 bytes on x86,\nsee COMMAND_LINE_SIZE in asm/setup.h.\n\nIf any androidboot.xxxx arguments were past the 1024 byte limit\nhere, they were lost.\n\nChange-Id: I6247c511a7de04109490fffa0125801d274a5501\nSigned-off-by: Andrew Boie \u003candrew.p.boie@intel.com\u003e\n"
    },
    {
      "commit": "d64df296998bcb1528067d7e9adc40cf5e47abd1",
      "tree": "729806e9e36da8362047229d1a96f6f630505459",
      "parents": [
        "a9f6cc54e7330a03e55291bda1d75bc78f3f8f2a",
        "9dd40e9756de23a25aaa9909c8d4055105621a76"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 03 17:13:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 17:13:35 2013 -0700"
      },
      "message": "am 9dd40e97: am d171b656: Merge \"[GNSS] Add AID_GPS to property user white list\"\n\n* commit \u00279dd40e9756de23a25aaa9909c8d4055105621a76\u0027:\n  [GNSS] Add AID_GPS to property user white list\n"
    },
    {
      "commit": "d171b6567023f7f840b3a145ec27b5723750dc18",
      "tree": "d1dceb3c5445d2d9a476ad8de6cee3609a9b1484",
      "parents": [
        "531328400ed6ce513f9bb4d9d772f02affeeaa26",
        "841859f79f23467938f3358c6ade9ebe9912a4e1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Sep 04 00:09:30 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 04 00:09:30 2013 +0000"
      },
      "message": "Merge \"[GNSS] Add AID_GPS to property user white list\""
    },
    {
      "commit": "ae76f6dbcf3dfd6eda223911f91f4a1316433771",
      "tree": "43e8ace85a57967e30c850763ece575f2bf684ee",
      "parents": [
        "935bd3e31574ea83db84797b0dee2a6581a19cdf"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jul 11 15:38:26 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 03 15:55:58 2013 -0700"
      },
      "message": "init: call restorecon on /sys\n\nNot all files on /sys are not getting labeled properly. Fix them.\n\nChange-Id: I9dcff76354e7f50d41f1b6e702836cfbbc149278\n"
    },
    {
      "commit": "935bd3e31574ea83db84797b0dee2a6581a19cdf",
      "tree": "50a90b98a7703f80fe3553ee8fd86e684540bcb9",
      "parents": [
        "56fa0ac6b6e4ca790c0169c21a3106e09cab672c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 26 15:37:26 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 03 15:55:00 2013 -0700"
      },
      "message": "init: allow disabling selinux via a kernel command line\n\nCreate a new \"androidboot.selinux\" option, to control how userspace\nhandles SELinux. This kernel command line can have three options:\n\n* disabled\n* permissive\n* enforcing\n\n\"disabled\" completely disables userspace support for SELinux. No\npolicy is ever loaded, nor is the SELinux filesystem /sys/fs/selinux\never mounted.\n\n\"permissive\" loads the SELinux policy, but puts SELinux into\npermissive mode. SELinux policy violations are logged, but not rejected.\n\n\"enforcing\", the default, loads the SELinux policy, and places\nSELinux into enforcing mode. Policy violations are rejected.\n\nThis change addresses post review comments for change\nb710ed21dec88c0dde8209264df054c842561589 .\n\nChange-Id: I912583db8e6a0e9c63380de32ad8ffc47a8a440f\n"
    },
    {
      "commit": "56fa0ac6b6e4ca790c0169c21a3106e09cab672c",
      "tree": "9d1907f733df4f1a87ba4a84927eb9e57e0d9802",
      "parents": [
        "b35f68a6974589fc3c762d6d2c7bac363794e355"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 24 17:41:40 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Sep 03 15:54:15 2013 -0700"
      },
      "message": "init: move SELinux into enforcing mode.\n\nWhen init starts up, immediately put SELinux into enforcing mode.\n\nThis is currently a no-op. We currently have everything in the\nunconfined domain, so this should not break anything.\n(if it does, I\u0027ll roll it back immediately)\n\nIf the kernel doesn\u0027t have SELinux support compiled in, then\ndon\u0027t try loading a policy and continue without SELinux protections.\n\nChange-Id: Id0279cf82c545ea0f7090137b7566a5bc3ddd641\n"
    },
    {
      "commit": "c3c03f12ad5397588af639178ad200b56787790a",
      "tree": "c0e7df8021750bef2507d3de9807bf9d4f7d1e54",
      "parents": [
        "f7f3955d4d7cf78914395ddb47400d1237bf4bc2",
        "28e52c816d06d78fa823be2d310d9f4c25012c8f"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Aug 28 14:14:59 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 28 14:14:59 2013 -0700"
      },
      "message": "am 28e52c81: am b35f68a6: Merge \"init: load factory properties\"\n\n* commit \u002728e52c816d06d78fa823be2d310d9f4c25012c8f\u0027:\n  init: load factory properties\n"
    },
    {
      "commit": "b35f68a6974589fc3c762d6d2c7bac363794e355",
      "tree": "324e83df16f8316521ea95b3c812066701fd37d2",
      "parents": [
        "a7f6e015a5cf2ac85549fe676d6641caf6af1291",
        "3899f522f181b6c99ad37c09234bdaf7625f12fb"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Aug 28 21:08:42 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 28 21:08:43 2013 +0000"
      },
      "message": "Merge \"init: load factory properties\""
    },
    {
      "commit": "841859f79f23467938f3358c6ade9ebe9912a4e1",
      "tree": "520af7479b21ae95cb493e560e24cfa55eb57b80",
      "parents": [
        "db71324a4f3538fa8716ec4d77b3a512598c0527"
      ],
      "author": {
        "name": "Nicolas SUET",
        "email": "nicolas.suet@intel.com",
        "time": "Fri Jun 21 15:59:20 2013 +0200"
      },
      "committer": {
        "name": "Jian Luo",
        "email": "jian.luo@intel.com",
        "time": "Mon Aug 26 16:20:18 2013 -0400"
      },
      "message": "[GNSS] Add AID_GPS to property user white list\n\nAdd \"gps.\" and \"persist.gps.\" to property_perms white list.\n\nChange-Id: I7177170676d774c87e08d1548f5264ac27cba3ff\nOrig-Change-Id: I7a94caa26be4aefd2fe4f155908e2f8f09858bee\nSigned-off-by: Nicolas SUET \u003cnicolas.suet@intel.com\u003e\nSigned-off-by: jerome Pantaloni \u003cjeromex.pantaloni@intel.com\u003e\nSigned-off-by: Jian Luo \u003cjian.luo@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nAuthor-tracking-BZ: 118091\n"
    },
    {
      "commit": "b69f863455261a656da02343e8b9d55110ecd45f",
      "tree": "2d074ee5930053d8950cb16fdb4cd01fa85a1bbf",
      "parents": [
        "30caffc025aff450ebb354ee693174cc1732732b",
        "0cbaed4211b514dd2aaa4d28f8936ba58e83c6a5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 23 18:40:12 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 23 18:40:12 2013 -0700"
      },
      "message": "am 0cbaed42: am a8ba1f2f: Merge \"Add support for socket security context specification.\"\n\n* commit \u00270cbaed4211b514dd2aaa4d28f8936ba58e83c6a5\u0027:\n  Add support for socket security context specification.\n"
    },
    {
      "commit": "a8ba1f2f0b67063978819cc7d04276060450f364",
      "tree": "82c8bf1774c28e9140c2167f29b51c8edd67b989",
      "parents": [
        "d8d99c45b704399d50ae0a5e4df938d825c70cfa",
        "8348d279c7ce1a2453965ba7f05a7b818d58886c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Aug 24 00:12:03 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 24 00:12:03 2013 +0000"
      },
      "message": "Merge \"Add support for socket security context specification.\""
    },
    {
      "commit": "30caffc025aff450ebb354ee693174cc1732732b",
      "tree": "e08f6673d0d6b722d95735d2bf20367fdc977e1c",
      "parents": [
        "8ca2bf084209cf121f1d4b011ad4db3e35f35c82",
        "a1af5cf6d1c008dbde2e40121940d65faa0816bf"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 23 14:39:39 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 23 14:39:39 2013 -0700"
      },
      "message": "resolved conflicts for merge of a1af5cf6 to klp-dev-plus-aosp\n\nChange-Id: I08e9898940f7cdd466469b76760807cc5d5c67e4\n"
    },
    {
      "commit": "8348d279c7ce1a2453965ba7f05a7b818d58886c",
      "tree": "5bf50a8793a7ad5f6f0bd475c54a72f49c37f7a9",
      "parents": [
        "5d8554323caddfa3ca02f31625ea72634312521f"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Mon May 13 12:37:04 2013 -0400"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Aug 23 08:35:43 2013 -0400"
      },
      "message": "Add support for socket security context specification.\n\nAdd an optional argument to the socket option for specifying\na SELinux security context for the socket.  Normally the socket\nsecurity context is automatically computed from the service security\ncontext or set using the seclabel option, but this facility allows\ndealing with two scenarios that cannot be addressed using the existing\nmechanisms:\n1) Use of logwrapper to wrap a service.\nIn this case, init cannot determine the service security context\nas it does not directly execute it and we do not want logwrapper\nto run in the same domain as the service.\n\n2) Situations where a service has multiple sockets and we want to\nlabel them distinctly.\n\nChange-Id: I7ae9088c326a2140e56a8044bfb21a91505aea11\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "3899f522f181b6c99ad37c09234bdaf7625f12fb",
      "tree": "413706998bd850b9390e4b0e00a43af5b8c728ec",
      "parents": [
        "b3644d8f6b6485769c7712aaf7749d042aacbc09"
      ],
      "author": {
        "name": "Andrew Boie",
        "email": "andrew.p.boie@intel.com",
        "time": "Fri Oct 12 15:23:40 2012 -0700"
      },
      "committer": {
        "name": "Andrew Boie",
        "email": "andrew.p.boie@intel.com",
        "time": "Tue Aug 20 11:47:55 2013 -0700"
      },
      "message": "init: load factory properties\n\nThese properties are typically set at device provisioning time\nor in the factory. They contain unit-specific data that isn\u0027t\ntouched by software updates or factory data reset. Only\nread-only properties can be read by this mechanism.\n\nChange-Id: Ifff9184f039072c3c0ce99f825c3075afb524514\nSigned-off-by: Andrew Boie \u003candrew.p.boie@intel.com\u003e\n"
    },
    {
      "commit": "0d872d8bb4f5371200601b7615ea48993383befb",
      "tree": "e64977ddb66f256039463db2e85feb576ef921e6",
      "parents": [
        "c7a4f74dad2b91bebad608618f3fda434563be74"
      ],
      "author": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Fri Aug 16 13:19:24 2013 -0700"
      },
      "committer": {
        "name": "Alex Klyubin",
        "email": "klyubin@google.com",
        "time": "Mon Aug 19 16:58:28 2013 -0700"
      },
      "message": "Seed Linux RNG from Hardware RNG at boot during init.\n\nThe Linux RNG may have little entropy during boot. As more and more\ndevices have a Hardware RNG, we mix in 512 bytes from Hardware RNG\n(if present) into Linux RNG early during boot (after\nwait_for_coldboot_done and before property_service_init actions in\ninit).\n\nTo avoid having to trust the output of Hardware RNG, we do not mix it\ninto the Linux RNG\u0027s primary pool or increase the Linux RNG\u0027s entropy\nestimates.\n\nBug: 10362513\nChange-Id: I80617f21710400747f5e7533e518d90ea74e2f11\n"
    },
    {
      "commit": "d893e39d4ff19312096849b2d66bbfbb24d061d1",
      "tree": "0d924901ba82bbdb76d59bb8ac17f7a7e3097ea9",
      "parents": [
        "9de3fd115a020868d4d1fb6c6d2de3fed176bf60",
        "3ad3d1c4b5856d4e314febc5671c74e78a76db00"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed Aug 07 18:20:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 18:20:33 2013 +0000"
      },
      "message": "Merge \"Add basic verity support to fs_mgr.\""
    },
    {
      "commit": "3ad3d1c4b5856d4e314febc5671c74e78a76db00",
      "tree": "23b93980c5ef47091721e9a0c969e763998505cf",
      "parents": [
        "0246f8f6f6e4b9ebee7d683a48ce37728ea39340"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Fri Feb 22 18:11:41 2013 -0800"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Tue Aug 06 22:15:58 2013 -0700"
      },
      "message": "Add basic verity support to fs_mgr.\n\nThis change adds a \"verify\" fs_mgr flag specifying that\nthe device in question should be verified.\n\nDevices marked with this flag are expected to have a\nfooter immediately after their data containing all\nthe information needed to set up a verity instance.\n\nChange-Id: I10101f2c3240228ee0932e3767fe35e673d2e720\n"
    },
    {
      "commit": "e2eb69db6d818b41f5c0f2090cc643f7cff31734",
      "tree": "359a344215a31cc534d9830d823c11a36545b76c",
      "parents": [
        "5d8554323caddfa3ca02f31625ea72634312521f"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Apr 16 09:30:30 2013 -0400"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Fri Jul 26 15:39:41 2013 -0400"
      },
      "message": "Handle policy reloads within ueventd rather than restarting it.\n\nRestarting ueventd upon policy reloads has reportedly created\nstability problems for some users and could cause events to be lost.\nStop restarting ueventd and instead handle policy reloads within ueventd.\n\nAlso stops restarting installd upon policy reloads.\n\nChange-Id: Ic7f310d69a7c420e48fbc974000cf4a5b9ab4a3b\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "776751ad79b878e98017039bad87ca27a1c86ad0",
      "tree": "01c26faca2a7943f028e75b71db0f484acff9f4a",
      "parents": [
        "70cdc26dfcb04676d981afb62be038440296bf94",
        "8c4b153911e399f00fdf0ed4e39782d0d49396d6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 22 15:45:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 22 15:45:42 2013 -0700"
      },
      "message": "am 8c4b1539: am f9873987: am 5954ecb8: Merge \"Allow more characters in partition name links\"\n\n* commit \u00278c4b153911e399f00fdf0ed4e39782d0d49396d6\u0027:\n  Allow more characters in partition name links\n"
    },
    {
      "commit": "f987398723b06538821162dadde7d7d2c9e0fb29",
      "tree": "121c0217b10ad91b8de28dcdbb021e02f1518300",
      "parents": [
        "a570312a56938f6ebfcadc3ec9830ab8a2407654",
        "5954ecb87b8c77425d8cc766c0cc798957a07a7d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 22 15:40:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jul 22 15:40:55 2013 -0700"
      },
      "message": "am 5954ecb8: Merge \"Allow more characters in partition name links\"\n\n* commit \u00275954ecb87b8c77425d8cc766c0cc798957a07a7d\u0027:\n  Allow more characters in partition name links\n"
    },
    {
      "commit": "93ca79b44535ee24ece08001e1948070db6ab6ed",
      "tree": "5583577f07d49f85edfeb353111fac411c42fd8d",
      "parents": [
        "596ee9ea8ae37b17fbdff91508f55250d528f1d2"
      ],
      "author": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Wed Apr 18 16:41:19 2012 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Thu Jul 18 10:06:01 2013 +0200"
      },
      "message": "Allow more characters in partition name links\n\nWe have several partitions with underscores in their names\nwhich would not be properly linked in:\n/dev/block/platform/msm_sdcc.1/by-name/\n\nWith this change more characters (_-.) are allowed in\npartition name links. Also, any other character is\nreplaced with \u0027_\u0027 so the resulting link names have the\nsame length as the partition name.\n\nChange-Id: I746566c03db98b10326c755692362d2c10e528ae\n"
    },
    {
      "commit": "f29c533c49ab1c90eae612b1c454f2c6879a6658",
      "tree": "c607a3c0cd51b5a31ae330af8a6f0681ab342ce4",
      "parents": [
        "e1dbdd697894f84e2cb8882160f0e4104f739064"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jul 11 15:38:26 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jul 15 13:10:02 2013 -0700"
      },
      "message": "init: call restorecon on /sys\n\nNot all files on /sys are not getting labeled properly. Fix them.\n\nChange-Id: I9dcff76354e7f50d41f1b6e702836cfbbc149278\n"
    },
    {
      "commit": "a76baaabe56b98e23861e89722bd1425f92dbc2c",
      "tree": "f56362ef3a4b52aabe8810173dd055ddeaaecb81",
      "parents": [
        "5bc31a2632f453e03edac714b865773970bba608"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Jul 09 18:42:09 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Jul 09 18:42:09 2013 -0700"
      },
      "message": "Add swapon_all to init\u0027s builtin commands\n\nFor enabling swap devices found in the fstab file\n\nChange-Id: Iec4fd4d208df3d7a161a90d95f8606e8b516334a\n"
    },
    {
      "commit": "4838aa1b7b0f279ae6194ab1606922e2d1540f90",
      "tree": "206ebed5c12fa1911cb910416173940532b3146a",
      "parents": [
        "eecf40fce8d502a9b35f79d73bba708bc35c9632"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 26 15:37:26 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 28 12:05:07 2013 -0700"
      },
      "message": "init: allow disabling selinux via a kernel command line\n\nCreate a new \"androidboot.selinux\" option, to control how userspace\nhandles SELinux. This kernel command line can have three options:\n\n* disabled\n* permissive\n* enforcing\n\n\"disabled\" completely disables userspace support for SELinux. No\npolicy is ever loaded, nor is the SELinux filesystem /sys/fs/selinux\never mounted.\n\n\"permissive\" loads the SELinux policy, but puts SELinux into\npermissive mode. SELinux policy violations are logged, but not rejected.\n\n\"enforcing\", the default, loads the SELinux policy, and places\nSELinux into enforcing mode. Policy violations are rejected.\n\nThis change addresses post review comments for change\nb710ed21dec88c0dde8209264df054c842561589 .\n\nChange-Id: I912583db8e6a0e9c63380de32ad8ffc47a8a440f\n"
    },
    {
      "commit": "cbc76fcadb9b04007cc693aab39e86b33cb394aa",
      "tree": "11ec5f8f17810a4f08c66d981970691a9e52fb74",
      "parents": [
        "25383a5da2ce4ada76df46e1bc7ae56ac0e41fc4",
        "b710ed21dec88c0dde8209264df054c842561589"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 25 21:08:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 25 21:08:56 2013 +0000"
      },
      "message": "Merge \"init: move SELinux into enforcing mode.\""
    },
    {
      "commit": "b710ed21dec88c0dde8209264df054c842561589",
      "tree": "8cac1258e36aed0f6122dbc4ebff39f8d7b56e0a",
      "parents": [
        "62362e1a64e09c6223ad6598601bb0adca28d296"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 24 17:41:40 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jun 25 11:23:29 2013 -0700"
      },
      "message": "init: move SELinux into enforcing mode.\n\nWhen init starts up, immediately put SELinux into enforcing mode.\n\nThis is currently a no-op. We currently have everything in the\nunconfined domain, so this should not break anything.\n(if it does, I\u0027ll roll it back immediately)\n\nIf the kernel doesn\u0027t have SELinux support compiled in, then\ndon\u0027t try loading a policy and continue without SELinux protections.\n\nChange-Id: Id0279cf82c545ea0f7090137b7566a5bc3ddd641\n"
    },
    {
      "commit": "25383a5da2ce4ada76df46e1bc7ae56ac0e41fc4",
      "tree": "0b2f5c6ab3c46ca1c36202c7381b61a73bc5bbd9",
      "parents": [
        "62362e1a64e09c6223ad6598601bb0adca28d296",
        "372d668a279934ff3b2ec2f07a76fe2f351789d5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 25 05:59:40 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 25 05:59:40 2013 -0700"
      },
      "message": "am 372d668a: am 39021a48: am 83ada447: Merge changes Ib54f39fd,I7e36edd8\n\n* commit \u0027372d668a279934ff3b2ec2f07a76fe2f351789d5\u0027:\n  init: Retain traditional restart behavior for critical and oneshot services.\n  init: Safely restart services to avoid race conditions.\n"
    },
    {
      "commit": "b1e3bb2798bb6002b186081d9b0234bdfa432a14",
      "tree": "56ba9ef61c85eb2f591b634f6b7eef4bb56c736b",
      "parents": [
        "372d668a279934ff3b2ec2f07a76fe2f351789d5",
        "b1a9f8cf4b15a861ab998a4c5f0c69068f22c62a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 17:22:56 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 24 17:22:56 2013 -0700"
      },
      "message": "am b1a9f8cf: resolved conflicts for merge of b6c60285 to stage-aosp-master\n\n* commit \u0027b1a9f8cf4b15a861ab998a4c5f0c69068f22c62a\u0027:\n  init: move initial property area allocation into bionic\n  property_service: make /dev/__properties__ readable\n"
    },
    {
      "commit": "b1a9f8cf4b15a861ab998a4c5f0c69068f22c62a",
      "tree": "747a6b8891d0c685d805a9c254760a46800adccb",
      "parents": [
        "39021a48a0e0687c654423acd5a4c99a1d79440d",
        "b6c602859496e212db78435e2b05ec9418189d6c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 17:19:43 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 17:19:43 2013 -0700"
      },
      "message": "resolved conflicts for merge of b6c60285 to stage-aosp-master\n\nChange-Id: I5afba55b668065499fa28369cf217d4f5eafab4a\n"
    },
    {
      "commit": "b6c602859496e212db78435e2b05ec9418189d6c",
      "tree": "1e2e4f0d068a17cdd0cd8db98f4bf56eedb29052",
      "parents": [
        "83ada447aed69dfcd0a88e952eced8db1e4d6584",
        "2baad525205c944e6ef9005fcb324439f99bcdc8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 25 00:07:54 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 25 00:07:54 2013 +0000"
      },
      "message": "Merge changes Ieb94caab,I762da21e\n\n* changes:\n  init: move initial property area allocation into bionic\n  property_service: make /dev/__properties__ readable\n"
    },
    {
      "commit": "372d668a279934ff3b2ec2f07a76fe2f351789d5",
      "tree": "333e0436a0d6d200e7617694f7451e1c93bb40b8",
      "parents": [
        "9270f12529fdcadaacd9d2bce3ceeeb07d037aa8",
        "39021a48a0e0687c654423acd5a4c99a1d79440d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 15:27:43 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 24 15:27:43 2013 -0700"
      },
      "message": "am 39021a48: am 83ada447: Merge changes Ib54f39fd,I7e36edd8\n\n* commit \u002739021a48a0e0687c654423acd5a4c99a1d79440d\u0027:\n  init: Retain traditional restart behavior for critical and oneshot services.\n  init: Safely restart services to avoid race conditions.\n"
    },
    {
      "commit": "39021a48a0e0687c654423acd5a4c99a1d79440d",
      "tree": "a125c2a2d51ae9c5416a6a516dcbff8cc4085587",
      "parents": [
        "a44c31cc91bce7124e896adb072a10f2740a96b4",
        "83ada447aed69dfcd0a88e952eced8db1e4d6584"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 15:24:57 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 24 15:24:57 2013 -0700"
      },
      "message": "am 83ada447: Merge changes Ib54f39fd,I7e36edd8\n\n* commit \u002783ada447aed69dfcd0a88e952eced8db1e4d6584\u0027:\n  init: Retain traditional restart behavior for critical and oneshot services.\n  init: Safely restart services to avoid race conditions.\n"
    },
    {
      "commit": "83ada447aed69dfcd0a88e952eced8db1e4d6584",
      "tree": "9c377544bbd80f2c3f401fe9966d9a4e4734b4db",
      "parents": [
        "e755dfd43812ebd9a0d0d6a2106316f343ffb5a2",
        "b54f39fdd97c50e0e8dfa439722be0786f5e6f52"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 24 22:23:32 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 24 22:23:32 2013 +0000"
      },
      "message": "Merge changes Ib54f39fd,I7e36edd8\n\n* changes:\n  init: Retain traditional restart behavior for critical and oneshot services.\n  init: Safely restart services to avoid race conditions.\n"
    },
    {
      "commit": "2baad525205c944e6ef9005fcb324439f99bcdc8",
      "tree": "62e52fe791ada1e7075f777d5a39b6271fe4ed2b",
      "parents": [
        "26f2d2f51941dda585009ae5cbd6f2ae1926ab2d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Feb 12 14:39:31 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 19 12:26:31 2013 -0700"
      },
      "message": "init: move initial property area allocation into bionic\n\nbionic\u0027s __system_property_add() now expands the property area as needed\nby mapping in more pages.  Rather than duplicate the mapping code, move\nit inside bionic and have bionic\u0027s __system_property_area_init() set up\nthe first page.\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit f14eef0c3c456bfe39f7e9d57c8f7ae4ec775972)\n\nChange-Id: Ieb94caab1527c71f2155efe3795490b0ea215a29\n"
    },
    {
      "commit": "26f2d2f51941dda585009ae5cbd6f2ae1926ab2d",
      "tree": "0beb2295f4eb8a641abb74df4911bd08af78d2a1",
      "parents": [
        "e755dfd43812ebd9a0d0d6a2106316f343ffb5a2"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 23 09:24:33 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 19 12:26:28 2013 -0700"
      },
      "message": "property_service: make /dev/__properties__ readable\n\nCurrently, system properties are passed via the environment\nvariable ANDROID_PROPERTY_WORKSPACE and a file descriptor passed\nfrom parent to child. This is insecure for setuid executables,\nas the environment variable can be changed by the caller.\n\nMake the /dev/__properties__ file accessible, so an app can\nget properties directly from the file, rather than relying on\nenvironment variables.\n\nPreserve the environment variable for compatibility with pre-existing\napps.\n\nBug: 8045561\n\n(cherry picked from commit 7ece0a862cf97e85bbe69458a32a2bd165456874)\n\nChange-Id: I762da21ef4075f288745efed0ec7d16c2b71303c\n"
    },
    {
      "commit": "f14eef0c3c456bfe39f7e9d57c8f7ae4ec775972",
      "tree": "7a320641b3fb7dcc7bc99338021b7514d904229b",
      "parents": [
        "389e358017ad15485f2bd9120feebfffa489131b"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Feb 12 14:39:31 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Jun 18 16:37:54 2013 -0700"
      },
      "message": "init: move initial property area allocation into bionic\n\nbionic\u0027s __system_property_add() now expands the property area as needed\nby mapping in more pages.  Rather than duplicate the mapping code, move\nit inside bionic and have bionic\u0027s __system_property_area_init() set up\nthe first page.\n\nChange-Id: If9917d5f775c1a82eb89be55b84635395145ca49\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "44d1f3c703015b065f009604907033aac8bedf32",
      "tree": "5d6364d0c3cec229ab99f78e6ef61b22883ad66d",
      "parents": [
        "88411498b3341dbf8f2976991524b1e21dedc6f6",
        "99c1a4168ba792437f298d31cd4631ff01661476"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 18:24:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 17 18:24:39 2013 -0700"
      },
      "message": "am 99c1a416: resolved conflicts for merge of 95a41f6b to stage-aosp-master\n\n* commit \u002799c1a4168ba792437f298d31cd4631ff01661476\u0027:\n  init: fix copying boot properties\n  toolbox: hide property implementation from watchprops\n  init: verify size of property buffers passed to property_get\n  init: move the system property writer implementation\n  init: switch property_get to use __system_property_get\n"
    },
    {
      "commit": "99c1a4168ba792437f298d31cd4631ff01661476",
      "tree": "32946bf44bf4ffc8eb656e1f60ab163923495844",
      "parents": [
        "520f4f060325496741f600692f3582536fa43a8f",
        "95a41f6b20c678c5f475558ac00ab449ffd1f481"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 18:19:28 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 18:19:28 2013 -0700"
      },
      "message": "resolved conflicts for merge of 95a41f6b to stage-aosp-master\n\nChange-Id: Icfae29edf989fb43a7f0b8bda188a9807f76a3b9\n"
    },
    {
      "commit": "5e484e9c439f8c065270209f32bdbfb731729250",
      "tree": "69b7713262ba10a7e7076813ecdf55b2539b5f89",
      "parents": [
        "81963164113f98f5917c7d7990ae2b76f2d4044e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:20:08 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:58:14 2013 -0700"
      },
      "message": "init: fix copying boot properties\n\nThe previous patch \"init: verify size of property buffers passed\nto property_get\" incorrectly modified one of the callers,\nresulting in ro.serialno, ro.bootmode, ro.baseband, and\nro.bootloader always being set to their default values.\n\nBug: 9469860\n\n(cherry picked from commit 67e3663fc93c65b69b5d121db05b0833b98d97f1)\n\nChange-Id: Ia7b337e1fab6e334729f47ee1269e6c736615177\n"
    },
    {
      "commit": "a5a860ef20cc5e65d4fa9b57cd72231f63f6d316",
      "tree": "455fc158ed467838eee33686f7e89a04453bf168",
      "parents": [
        "993b6ceeb05677229dee60f1a68c2102c205a7bd"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jan 29 14:58:57 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:58:02 2013 -0700"
      },
      "message": "init: verify size of property buffers passed to property_get\n\nVerify that the buffer passed as the value parameter to property_get\nis always big enough.\n\n(cherry picked from commit 88ac54a4e8d2a63e4fd9c465e115795ace316776)\n\nChange-Id: Iacc2b42bfe4069e0bfcbb1c48474f30126a93139\n"
    },
    {
      "commit": "993b6ceeb05677229dee60f1a68c2102c205a7bd",
      "tree": "636fcfe5d2d5b73ba7436db27a5994f2eb2d4515",
      "parents": [
        "1a6f4c3bf29a4d474c4582e70fb279d0d28fb7f1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jan 23 23:09:48 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:57:49 2013 -0700"
      },
      "message": "init: move the system property writer implementation\n\nMove the system property writer implementation into bionic to keep\nit next to the reader implementation and allow for better testing.\n\n(cherry picked from commit 9f5af635010a7ba92edf1fca543f7271cc9d75c8)\n\nChange-Id: Idf6100d1d0170751acd5163a22597912bff480f0\n"
    },
    {
      "commit": "1a6f4c3bf29a4d474c4582e70fb279d0d28fb7f1",
      "tree": "0c2045bc0c482afaf73901cffa18fc4276418928",
      "parents": [
        "865bb05dd0db1531f252de5e137605beec171ca2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 28 17:13:35 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:57:32 2013 -0700"
      },
      "message": "init: switch property_get to use __system_property_get\n\n(cherry picked from commit 2deedfe0b1ac86ebd62d19cf7da9e7dcb508ab09)\n\nChange-Id: If3fba2cc1dd5c167b0924ddfe42dbe2e6387208a\n"
    },
    {
      "commit": "67e3663fc93c65b69b5d121db05b0833b98d97f1",
      "tree": "44097a14ab90d4b625e2f1bf9d1b8d36f7d94549",
      "parents": [
        "e80e0319ae9ad8b6c29f83acb725c7ea913a9639"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:20:08 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:20:08 2013 -0700"
      },
      "message": "init: fix copying boot properties\n\nThe previous patch \"init: verify size of property buffers passed\nto property_get\" incorrectly modified one of the callers,\nresulting in ro.serialno, ro.bootmode, ro.baseband, and\nro.bootloader always being set to their default values.\n\nBug: 9469860\nChange-Id: Id45bd8dd657e8d61f4cfaf7e6b2559d2bfd05181\n"
    }
  ],
  "next": "88ac54a4e8d2a63e4fd9c465e115795ace316776"
}
