)]}'
{
  "log": [
    {
      "commit": "4727c7711ea93dd670b3cd5882ce01ff6debf2a6",
      "tree": "3fe72da3e8c64b122b272c19f283220fd06f9b13",
      "parents": [
        "3b8de6705bb5c77b6f459fd6dd394ef606228a05"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 14 13:43:10 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 14 13:47:16 2014 -0700"
      },
      "message": "toolbox: ls: 64 bit compile warnings\n\nChange-Id: Ia538c7177f8d5cf2c1f0efb5b575da6527c13968\n"
    },
    {
      "commit": "161b55fc5d103159046467a782b3cb8c953ac981",
      "tree": "ad80d8ac3a2b36d93786299d720b640e91bb09f9",
      "parents": [
        "f3dcda5f8573033d2be31343cdd0e3c65269c4a4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 13 16:27:40 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 13 17:14:15 2014 -0700"
      },
      "message": "toolbox: schedtop 64 bit build issue\n\nChange-Id: I77b8ca2c32b9ff33abb6acadae47f0ab47b47907\n"
    },
    {
      "commit": "7c1fc0ed42609c6c44d6738e0d8ef1d4425a6758",
      "tree": "39b0882e5fb7b70c2f65f560839b2d1b4e8455dc",
      "parents": [
        "858d0dd1e529575181abd8de607e46f7b273cc9d"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 04 11:17:57 2014 -0800"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Tue Mar 04 11:17:57 2014 -0800"
      },
      "message": "fix: making lsof show devies and loaded .so file names correctly\n\nChange-Id: I4b6f2e0015f8cfa18400fa4bd08460a07e29a51b\n"
    },
    {
      "commit": "3f6b63e74d78ab259b55513a933bab3c5c1cc165",
      "tree": "28c27eb7618389328f3067f3fff017eba371665b",
      "parents": [
        "fbcdf6f9fe9212154b7b4bf3a4e6f16ad69ca994"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 17:25:17 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 17:27:08 2014 -0800"
      },
      "message": "Declare (and simplify) uid_from_user.\n\nuid_from_user doesn\u0027t need to cope with numeric ids in the BSD code\nlike it did with the old Android code; the caller now handles those.\n\nAlso explain what SUPPORT_DOT is for.\n\nChange-Id: I185c9f02b7039795069aa30545563b8a6ef54cd5\n"
    },
    {
      "commit": "fbcdf6f9fe9212154b7b4bf3a4e6f16ad69ca994",
      "tree": "43f5763d0d9705369ab26b6e9960fbef6a4317c0",
      "parents": [
        "54bb1d3b98075316e0cd1289f218470cb70227ce",
        "0b024677ec64ebbf298de810929292a693436ad6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Mar 01 01:18:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 01 01:18:29 2014 +0000"
      },
      "message": "Merge \"Switch to BSD chown (for -R, primarily).\""
    },
    {
      "commit": "0b024677ec64ebbf298de810929292a693436ad6",
      "tree": "c3381222053daf5cb43d16907e9f3230a6a4189b",
      "parents": [
        "1a1c42fda7ec6087355529337573dd3ec5e85d91"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:48:49 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:48:49 2014 -0800"
      },
      "message": "Switch to BSD chown (for -R, primarily).\n\nChange-Id: I45381b8a04f4cb651123a2d43860418e06df6e65\n"
    },
    {
      "commit": "4014501d79d060f0855b919ee20fa9db5448cfdf",
      "tree": "538d5b49b366cf6124e6aecee2f12585231c6fcc",
      "parents": [
        "1a1c42fda7ec6087355529337573dd3ec5e85d91"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:45:56 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 28 16:45:56 2014 -0800"
      },
      "message": "Fix grep -f.\n\nbionic has getline now.\n\nChange-Id: I5e4ee137768ab3113dbe8a07406fa39f4b6546af\n"
    },
    {
      "commit": "2f77bb6931e1660919d7fb9944c7d3f301cacdf8",
      "tree": "c700a33a6f7c7363018a53e2dfb1102d1b7f85e9",
      "parents": [
        "deb3eecd061e8a3a5f19ef5e10296f248f247881"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:38:44 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 24 15:38:44 2014 -0800"
      },
      "message": "Remove unused #includes of \u003casm/page.h\u003e.\n\n(\u003casm/page.h\u003e is going away.)\n\nChange-Id: Id0d7ad0eb791cd47490c48458f9f8a6468ddf5c9\n"
    },
    {
      "commit": "500308a7e67bfd4b918604a81b8125b8e7c2f37c",
      "tree": "e87ca204595b7fd110e6ecfb1af3f1b142f9b1d9",
      "parents": [
        "27fd413d6d02a53c453cf926717b67e9a8d1eb32"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Feb 18 11:15:52 2014 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue Feb 18 11:15:52 2014 -0500"
      },
      "message": "Add -D option to restorecon for relabeling /data/data.\n\nThis depends on change I137588013ed1750315702c0dbe088ce3e4a29e83.\n\nChange-Id: I5a4fef9affd6cddf98d72dc9d54899be25741779\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "2e7347d617b02b13d227bb4cecf6bd69b7b20fa9",
      "tree": "db646cc74615b92769c20c4a9b0794c95ec5adc3",
      "parents": [
        "dc97eec05232a5d64b6425043b48eafaf63cef7f",
        "27a93650c0df02e4cd3c48bbec8acee8b817a012"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Feb 12 23:09:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 12 23:09:28 2014 +0000"
      },
      "message": "Merge \"Convert all selinux_android_restorecon and _setfilecon calls to new API.\""
    },
    {
      "commit": "2c1d62d622a928d1b18ace84c543fc2ff6e4d960",
      "tree": "4891cf5ba4d90457aa90406515df314fb5b74781",
      "parents": [
        "13274a2661eeb9aa4b2f82db6fd11edc22af1d8a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 17:10:37 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 07 17:10:37 2014 -0800"
      },
      "message": "Remove a pre-uapi hack from nandread.\n\nWe only have uapi headers now.\n\nChange-Id: I2c02e10bb3bba4006579772f3ab2a18c2df7535d\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": "2761b71d3fafbf8f104d591dd4013f2a729e2400",
      "tree": "58894d460bd0fb64718ba0ec25664f62f34e8736",
      "parents": [
        "68835ee88b146f654fe3ce007f07ace71266e876"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Jan 30 10:15:16 2014 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Feb 06 09:42:04 2014 -0500"
      },
      "message": "Unify toolbox restorecon and libselinux restorecon implementations.\n\nExtend the libselinux restorecon implementation to allow reuse\nby the toolbox restorecon command.  This simply requires adding\nsupport for the nochange (-n) and verbose (-v) options to the\nlibselinux functions and rewriting the toolbox restorecon command\nto use the libselinux functions.   Also add a force (-F) option to\nsupport forcing a restorecon_recursive even if the restorecon_last\nattribute matches the current file_contexts hash so that we can\ncontinue to force a restorecon via the toolbox command for testing\nor when we know something else has changed (e.g. for when we support\nrelabeling /data/data and package information has changed).\n\nChange-Id: I92bb3259790a7195ba56a5e9555c3b6c76ceb862\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "2430a064bd956fb2eb4f40762966315a1b12e3a8",
      "tree": "1d43adfa77621367113ff164a851a4bc5de21ac2",
      "parents": [
        "524b3a0c40fcca4b2259f317b2d098434998ce47"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 17:33:52 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jan 17 09:50:56 2014 -0800"
      },
      "message": "Fix \u0027r\u0027 for LP64.\n\nChange-Id: I8332a0a8045a70b3992fe34b0b9e334a721265a9\n"
    },
    {
      "commit": "c1e91b0034b1e951cdd1927f03df63353db139a6",
      "tree": "1704ddb460b6b88d29f6570f77ce700762bea508",
      "parents": [
        "7cd1561410473c71d40cec822fb53a282b5b3279"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 14:50:23 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 14:50:23 2014 -0800"
      },
      "message": "Remove obsolete \u0027setconsole\u0027 command.\n\nChange-Id: I643a48653006b97bb10d7b996ecc003dbafad590\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": "d340734cd76c4d270c24f640c6a65d3f6218e46f",
      "tree": "d61deed280b8469ede462029f83a8d41c6bb1f68",
      "parents": [
        "6e25786914d5f8c50040471c8b1a950d2efb32a1"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Thu Jan 09 18:59:23 2014 -0800"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Thu Jan 09 18:59:23 2014 -0800"
      },
      "message": "toolbox: Fix date tool with /dev/alarm\n\nChange-Id: I6f8ad2149244c89690d5d5caae8ec55429462210\nSigned-off-by: Benoit Goby \u003cbenoit@android.com\u003e\n"
    },
    {
      "commit": "bfa7d0822b2811d667fba1b326fd54a083fd5a95",
      "tree": "aedb3ba8bfa5b60d1a0d7d5e2dfdbba63ef67f58",
      "parents": [
        "e21d03ce3722582980be2c84ffbc6b6ccf55e258"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 18:20:17 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jan 07 18:20:17 2014 -0800"
      },
      "message": "SWAP_FLAG_* constants are now in \u003csys/swap.h\u003e.\n\nBug: 9336527\nChange-Id: I77e2b05cefbfb4eebda39b4079107833f4160563\n"
    },
    {
      "commit": "ded3464a1099cdeba616dfa7a0df3bcf8671207d",
      "tree": "342651a34ed091851d30680c7ebd9c4662891d3e",
      "parents": [
        "dfc48139c9afc8366184a1a7bc2f3762c0c82ea2"
      ],
      "author": {
        "name": "William Roberts",
        "email": "wroberts@tresys.com",
        "time": "Thu Jan 02 14:34:54 2014 -0800"
      },
      "committer": {
        "name": "William Roberts",
        "email": "wroberts@tresys.com",
        "time": "Fri Jan 03 02:52:34 2014 +0000"
      },
      "message": "toolbox-ls: re-introduce clobbered error message\n\ncommit 403b1955 clobbered the error message on lstat()\ncalls.\n\nChange-Id: Idbd24b648e3a85079b8f8541c0798bf944485ca1\n"
    },
    {
      "commit": "4a7bc60071901dce2af85ec56a088604b6c228ce",
      "tree": "bbc9afa27dc2c8e47dffc8f7b6425f4b821bf7fb",
      "parents": [
        "c057503aaf53c25e67d5bf36c33cd15ec9188c5d"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:00:03 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "toolbox: date: use RTC subsystem on devices without /dev/alarm\n\nChange-Id: I48c0fd1f4cffef936afb8d48d6d93babf006004d\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "c057503aaf53c25e67d5bf36c33cd15ec9188c5d",
      "tree": "fa3155f5ce9edc0d8be9eeb7364eec13bab65d40",
      "parents": [
        "fa66f1e49458e7745511416d72ac15c190a13e6f"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 13:59:06 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "toolbox: date: fix parameter type warnings\n\nChange-Id: I810a9abee8bc0061c5007fe08197384f2b85754b\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "fa66f1e49458e7745511416d72ac15c190a13e6f",
      "tree": "ae11a97062f7fbf89182fe107334372a412a3b10",
      "parents": [
        "7f625ed026006fafeaec49e21e34ee18ac28dbc3"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 13:57:28 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "toolbox: uptime: use clock_gettime() on devices without /dev/alarm\n\nChange-Id: Id7287ca179cc0b8390c054803a25a961dd550a34\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "7f625ed026006fafeaec49e21e34ee18ac28dbc3",
      "tree": "1c6495ca442612ca15702391a792a4bc19c07747",
      "parents": [
        "64289760a2df9409d8f4fa5becb4a49f0acb20a5"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 13:55:47 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Dec 17 14:45:39 2013 -0800"
      },
      "message": "toolbox: uptime: fix unused parameter warnings\n\nChange-Id: Id240ce85bf09e1a81f4e2e2a7496ac7952edbf38\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "8dfdf650abf4a9c05dbc7c60b7baee22e43c07b5",
      "tree": "ea5f20ad597e030e46a0361ff5881c406447a4fa",
      "parents": [
        "71e096c894b2b49b0ae63a852c0a8a5a6de0c8a7"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 27 16:12:48 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 27 16:12:48 2013 -0800"
      },
      "message": "Minor cleanups.\n\nUse ssize_t for handling the result of a readlink call.\n\nFix the following compiler warning:\n\n  system/core/toolbox/ls.c: In function \u0027listfile_maclabel\u0027:\n  system/core/toolbox/ls.c:238:68: warning: unused parameter \u0027flags\u0027 [-Wunused-parameter]\n   static int listfile_maclabel(const char *path, struct stat *s, int flags)\n\nChange-Id: Idd65f3349fb9dfb6f7a374c81f72d3169af33505\n"
    },
    {
      "commit": "4ec2910fb670afabc1296bfc57bfd41ca50f00b1",
      "tree": "09d4fee405986390cb28eaad61c68538e607e79a",
      "parents": [
        "1899628a2e1aad79eaf46b091ba60aa7d89add98"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 27 15:09:43 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Nov 27 15:47:16 2013 -0800"
      },
      "message": "Increase buffer size, use bounds checking functions\n\nIncrease the size of the user/group buffer from 16 bytes\nto 32 bytes. Some OEMs are creating usernames longer than\n15 bytes, causing problems.\n\nUse bounds checking functions when handling user/group\ndata, to avoid overflowing buffers.\n\nChange-Id: I4a5824b819b0c37662ba4f33573af0d0e071b444\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": "b05a2e513023133a780f51530246c492ddd95b46",
      "tree": "5c02ebd984b00bd929c357f8268d153585852971",
      "parents": [
        "e627929490dfb92ab51ec6feb259d793a4a9f394"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 16:17:49 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 11 16:17:49 2013 -0800"
      },
      "message": "Fix nandread to build with old or uapi headers.\n\nBug: 11559337\nChange-Id: I9795a16649dafdfe3df150170265157170cd5a79\n"
    },
    {
      "commit": "1e1d29133f12031bd432b6818143c309f18de417",
      "tree": "f0b65f01260dac1e4d10cf4cb0133cf36e967719",
      "parents": [
        "18860c524915bc991a9015bdbab32e918f5298d7"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Aug 19 20:08:04 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Aug 22 16:38:08 2013 -0700"
      },
      "message": "Add standard options to readlink\n\nChange-Id: I4c2624d22ce879a3578d5b17440a9895b19e2f1f\n"
    },
    {
      "commit": "9f50abdee00a9571393ce4a589080b4d6129aaf3",
      "tree": "eca3f575889330cf488dd2517d56779279275fde",
      "parents": [
        "08380deb247865b862f7f284c80eeea4f5ec38f6"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Aug 19 15:56:34 2013 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Aug 19 16:31:35 2013 -0700"
      },
      "message": "Add basic readlink command\n\nChange-Id: I693c1098e6c6d107a9e97285bf826ab153a1c8f0\n"
    },
    {
      "commit": "9227bd385504ace739d4451a6c5dc3d777b5bf21",
      "tree": "355484e01ff5efa0be976905767fc7126a678cb6",
      "parents": [
        "87bc464a9f62f026fd841d3b54cfb1a5d57d83a3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jul 23 16:59:20 2013 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 24 12:32:39 2013 -0700"
      },
      "message": "Move liblog headers to system/core/include/log\n\nMove the liblog headers to log/ instead of cutils/ to complete\nthe separation of libcutils and liblog.  cutils/log.h still\nexists and includes log/log.h in order to support the many existing\nmodules that use cutils/log.h.\n\nChange-Id: I2758c9f4aedcb809ca7ba8383d0f55041dd44345\n"
    },
    {
      "commit": "fb3280886d9366d26e9c2ce41f95d8265c025aa1",
      "tree": "ffabb4141d8341477eef9bd24979fbfb8d0b134b",
      "parents": [
        "622810ceff6d98779171c68391465c7434adeb1d",
        "367297c3d764eaf6e60880964e1739df13f0b703"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jul 02 02:07:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 02 02:07:10 2013 +0000"
      },
      "message": "Merge \"toolbox: swap utils\""
    },
    {
      "commit": "cf0b4d94fae2009daaed135124971625dfece77b",
      "tree": "c7ca97a3e977187c24cfeb4ab23d882aae989673",
      "parents": [
        "3b2b2b51376b1cf9da21155dacd8d9df106bf92d",
        "035482976368dea4ddbda62230a6ec69025a65c3"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Jun 28 02:47:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 28 02:47:01 2013 +0000"
      },
      "message": "Merge \"Do not exit early on errors when -f is specified\""
    },
    {
      "commit": "3b2b2b51376b1cf9da21155dacd8d9df106bf92d",
      "tree": "dc75638492940731b83cb4ffd647b92e9fe93555",
      "parents": [
        "eecf40fce8d502a9b35f79d73bba708bc35c9632",
        "13495a1cbb6c6b7ec617488f272bc02f2107a63c"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Jun 28 02:46:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 28 02:46:09 2013 +0000"
      },
      "message": "Merge \"Update the touch command to take a human readable timestamp\""
    },
    {
      "commit": "035482976368dea4ddbda62230a6ec69025a65c3",
      "tree": "d699f28bfe08336044229e946f94accbbdf8e737",
      "parents": [
        "13495a1cbb6c6b7ec617488f272bc02f2107a63c"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Jun 25 22:29:06 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Jun 26 17:42:38 2013 -0700"
      },
      "message": "Do not exit early on errors when -f is specified\n\nWhen running with the -f option, do not stop recursion or proccessing\ncommand line args if an error occurs.  Continue trying to remove all\nthe items specified on the command line.  However, still return an\nerror status if some files could not be removed.\n\nChange-Id: I83d66babe833da8a68aad68248647ba0601c5d32\n"
    },
    {
      "commit": "13495a1cbb6c6b7ec617488f272bc02f2107a63c",
      "tree": "226502f224c9d9e7ecfebff5c4f1a6a0c0560b0c",
      "parents": [
        "945ff923b7dde38bc308a7732e486fac04dda576"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Tue Jun 25 21:42:23 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Jun 26 17:42:25 2013 -0700"
      },
      "message": "Update the touch command to take a human readable timestamp\n\nNow the -t option to the toolbox touch command takes a timestamp\nin the form of YYYYMMDD.hhmmss\n\nChange-Id: I3812700edaa1a06590a07c15b050721b49e9b7e0\n"
    },
    {
      "commit": "367297c3d764eaf6e60880964e1739df13f0b703",
      "tree": "1b23185e815e4c165c60acc8e3e17a505a4667e1",
      "parents": [
        "25383a5da2ce4ada76df46e1bc7ae56ac0e41fc4"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jun 05 13:25:12 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jun 25 13:21:53 2013 -0700"
      },
      "message": "toolbox: swap utils\n\nAdd swap utilities (mkswap, swapon, swapoff) to the toolbox\n\nChange-Id: If5ed6981670a1cdda6b528b587dbc1be7ccdf832\nSigned-off-by: Rom Lemarchand \u003cromlem@google.com\u003e\n"
    },
    {
      "commit": "a44c31cc91bce7124e896adb072a10f2740a96b4",
      "tree": "52dba7f95c49242933ea5eb88da7a380e704f1c7",
      "parents": [
        "19188955b50ef6cb133780f66384e9fa055acfac",
        "e755dfd43812ebd9a0d0d6a2106316f343ffb5a2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jun 19 10:33:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 19 10:33:42 2013 -0700"
      },
      "message": "am e755dfd4: Merge changes I1db3137b,I0f66144e\n\n* commit \u0027e755dfd43812ebd9a0d0d6a2106316f343ffb5a2\u0027:\n  toolbox: reimplement watchprops using __system_property_foreach()\n  libcutils: reimplement property_list() using __system_property_foreach()\n"
    },
    {
      "commit": "68e9b6bc947eaca4135085615860ba90a8656ca4",
      "tree": "f9ec16b11301b6103847e01211e44c3866bbba9b",
      "parents": [
        "6967935eb30875ca9caf4717684141c92a0b6d4b"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 13 10:49:50 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Jun 18 19:26:28 2013 -0700"
      },
      "message": "toolbox: reimplement watchprops using __system_property_foreach()\n\nInternally, replace the watchlist array with a hashmap since the array\nassumes properties are enumerated in a consistent order and foreach()\nprobably won\u0027t.  (find_nth() never guaranteed this either but it usually\nworked in practice.)\n\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n\n(cherry picked from commit 389e358017ad15485f2bd9120feebfffa489131b)\n\nChange-Id: I1db3137b130474f4bb205f01f0bdcf37cf974764\n"
    },
    {
      "commit": "389e358017ad15485f2bd9120feebfffa489131b",
      "tree": "20dd92620492daf04a7ece33b68523999785b870",
      "parents": [
        "e7bb159d16f9e60850a3c79cc388587959015a65"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Wed Feb 13 10:49:50 2013 -0800"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Tue Jun 18 16:37:54 2013 -0700"
      },
      "message": "toolbox: reimplement watchprops using __system_property_foreach()\n\nInternally, replace the watchlist array with a hashmap since the array\nassumes properties are enumerated in a consistent order and foreach()\nprobably won\u0027t.  (find_nth() never guaranteed this either but it usually\nworked in practice.)\n\nChange-Id: I83843facdd671edd09652edf472e88ec3d1edd3b\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\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": "81963164113f98f5917c7d7990ae2b76f2d4044e",
      "tree": "6b40bfdcd84cc3581a950341d988ca201fdf7494",
      "parents": [
        "a5a860ef20cc5e65d4fa9b57cd72231f63f6d316"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 28 17:14:04 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 16:58:09 2013 -0700"
      },
      "message": "toolbox: hide property implementation from watchprops\n\n(cherry picked from commit 91779634debc79bc75d3df4e0f59d964ad4f5f78)\n\nChange-Id: I7a2d8aa507ac61cedc5f67c563531a7d4ec8e4c2\n"
    },
    {
      "commit": "91779634debc79bc75d3df4e0f59d964ad4f5f78",
      "tree": "31522aa9c03efed94ce1aa34be5e3b5b21c5d0dc",
      "parents": [
        "88ac54a4e8d2a63e4fd9c465e115795ace316776"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 28 17:14:04 2013 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jun 17 13:13:40 2013 -0700"
      },
      "message": "toolbox: hide property implementation from watchprops\n\nChange-Id: Ia6609116d641d3354971ca40a16ffcab38484150\n"
    },
    {
      "commit": "89c2be335dcae504c89b804c6781cdd2bdd3112c",
      "tree": "f1a0282b247796302e4431f3ef2af5ba95f3a0fc",
      "parents": [
        "29393d69b3baed12ebe1530c29f59f4fe18ad029",
        "603746f0e3b645954f33be36f7602cc8205cb71c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 04 11:17:19 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 04 11:17:19 2013 -0700"
      },
      "message": "am 603746f0: am 59fa7e10: Merge \"Fixed reversed output in netstat Recv-Q Send-Q columns\"\n\n* commit \u0027603746f0e3b645954f33be36f7602cc8205cb71c\u0027:\n  Fixed reversed output in netstat Recv-Q Send-Q columns\n"
    },
    {
      "commit": "603746f0e3b645954f33be36f7602cc8205cb71c",
      "tree": "2958a1bca746d580a217a94f9434d5fd382f9579",
      "parents": [
        "54d19aa66c6d446c97172599a9317caa6c456741",
        "59fa7e107d43a4ef521413ec0bb7b0c2a5525071"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 04 10:28:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 04 10:28:55 2013 -0700"
      },
      "message": "am 59fa7e10: Merge \"Fixed reversed output in netstat Recv-Q Send-Q columns\"\n\n* commit \u002759fa7e107d43a4ef521413ec0bb7b0c2a5525071\u0027:\n  Fixed reversed output in netstat Recv-Q Send-Q columns\n"
    },
    {
      "commit": "3c412f6260d88765f06232e7e9799f7bf68d7741",
      "tree": "53eda7c3d63fd74c5ba842978887d24180f83d35",
      "parents": [
        "51a2e4d5d44a6f788da207dff301356e16b4e283"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 29 15:11:20 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 19:24:44 2013 -0700"
      },
      "message": "Fixed reversed output in netstat Recv-Q Send-Q columns\n\nChange-Id: I2bc7ac6c886808910212432497f05e34596f5e85\n"
    },
    {
      "commit": "29393d69b3baed12ebe1530c29f59f4fe18ad029",
      "tree": "9ab6d9b6327c5191c131cde73a7b9bd3d7b4d629",
      "parents": [
        "960ac434a4960b0524993544949ef892c08339ed"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 03 13:38:14 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 03 13:40:11 2013 -0700"
      },
      "message": "fix another misuse of strncat\n\nThis has the potential to overflow \"buffer\" if the command line\nis more than 4K.\n\nChange-Id: Icdfed0d9d21804f290b75787ef3809e0475b14f0\n"
    },
    {
      "commit": "960ac434a4960b0524993544949ef892c08339ed",
      "tree": "b0b4557d0064227b287bdec137836c221c2749ec",
      "parents": [
        "e44c6b7183985a6ac586642e9ffc9c99a9140057"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 03 12:10:30 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 03 12:13:36 2013 -0700"
      },
      "message": "fix strncat misuse\n\nThe third argument of strncat() tells how much data to append from\nsrc, not the total size of the buffer.\n\nChange uses of strncat() to strlcat(), which has the buffer overflow\nprotection behavior intended by the original author.\n\nThis fixes the following compiler warning:\n\nIn function \u0027strncat\u0027,\n    inlined from \u0027print_type\u0027 at system/core/toolbox/lsof.c:76:12:\nbionic/libc/include/string.h:142:5: warning: call to __builtin___strncat_chk might overflow destination buffer [enabled by default]\n\nChange-Id: Id69edc641de3cb87d1867a409cd57b04b12f90a7\n"
    },
    {
      "commit": "44a5fb57045709f7f3feead4c8444baa2bdfc658",
      "tree": "d0b219f789ccc7470adc187d0e5fc4803a0c0c9d",
      "parents": [
        "db50747c933be0d87658385e3fad04ae824a8e5e",
        "e18c0d508a6d8b4376c6f0b8c22600e5aca37f69"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Apr 25 20:22:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 25 20:22:20 2013 +0000"
      },
      "message": "Merge \"fs_mgr: make block devices read-only\""
    },
    {
      "commit": "49edc0acf8c78171751676af0f530d9529987075",
      "tree": "24cb6de81c44dfea68322362b0c174104fc21a30",
      "parents": [
        "af1cbd4c10cfc28235d7a60941290986a77affda",
        "4c1840e6547266ba251d8c34905036d73240ff57"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 24 17:37:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 24 17:37:37 2013 -0700"
      },
      "message": "am 4c1840e6: am 5ea58543: Merge \"mount: fix incorrect string length calculation\"\n\n* commit \u00274c1840e6547266ba251d8c34905036d73240ff57\u0027:\n  mount: fix incorrect string length calculation\n"
    },
    {
      "commit": "4c1840e6547266ba251d8c34905036d73240ff57",
      "tree": "f4c6130439c2ac9a14b61472045ab21d055d0606",
      "parents": [
        "0db6600a60e8d604aaef5e43db9ae52ed7380979",
        "5ea58543154a97c42c0b7fc58c2639a4fea64f5b"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 24 17:36:11 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 24 17:36:11 2013 -0700"
      },
      "message": "am 5ea58543: Merge \"mount: fix incorrect string length calculation\"\n\n* commit \u00275ea58543154a97c42c0b7fc58c2639a4fea64f5b\u0027:\n  mount: fix incorrect string length calculation\n"
    },
    {
      "commit": "29a5298366f0070bcc359e982eb31d49f84a92c1",
      "tree": "99cb0dab6206c792e0e17390c95fc86019323693",
      "parents": [
        "cb6a842c6e2048e6cd3c5a2d478113347c75d7aa"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 24 16:31:02 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 24 16:31:02 2013 -0700"
      },
      "message": "mount: fix incorrect string length calculation\n\nFix bug https://code.google.com/p/android/issues/detail?id\u003d54192\nwhich incorrectly calculated the length of a string.\n\nFix compiler warning:\n\nsystem/core/toolbox/mount.c:59:2: warning: initializer-string for array of chars is too long [enabled by default]\nsystem/core/toolbox/mount.c:59:2: warning: (near initialization for \u0027options[16].str\u0027) [enabled by default]\n\nChange-Id: If8663f8311c6348a730fcf731d402b57fee10cb5\n"
    },
    {
      "commit": "e18c0d508a6d8b4376c6f0b8c22600e5aca37f69",
      "tree": "fcc32d8ac71aa67dba344a8a71114a49ee9430d0",
      "parents": [
        "072ee0143048a6bbd4068002352a4201ac853b6e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Apr 16 16:41:32 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 24 08:53:26 2013 -0700"
      },
      "message": "fs_mgr: make block devices read-only\n\nWhen a filesystem is mounted read-only, make the underlying\nblock device read-only too. This helps prevent an attacker\nwho is able to change permissions on the files in /dev\n(for example, symlink attack) from modifying the block device.\n\nIn particular, this change would have stopped the LG Thrill / Optimus\n3D rooting exploit\n(http://vulnfactory.org/blog/2012/02/26/rooting-the-lg-thrill-optimus-3d/)\nas that exploit modified the raw block device corresponding to /system.\n\nThis change also makes UID\u003d0 less powerful. Block devices cannot\nbe made writable again without CAP_SYS_ADMIN, so an escalation\nto UID\u003d0 by itself doesn\u0027t give full root access.\n\nadb/mount: Prior to mounting something read-write, remove the\nread-only restrictions on the underlying block device. This avoids\nmessing up developer workflows.\n\nChange-Id: I135098a8fe06f327336f045aab0d48ed9de33807\n"
    },
    {
      "commit": "ba4ac0cc3aa69075d6cbcee4eddb314ef753aa8d",
      "tree": "208e5e3fd4c9a1616e6973c6b6abf46bfeb7b891",
      "parents": [
        "82fe6dae6aadf66a8f7adccbbc236bc436d9c31a",
        "03546553205b56fc1ba0318b146971f43f54a155"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 18 15:25:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 18 15:25:54 2013 -0700"
      },
      "message": "am 03546553: am b73a0ef4: Merge \"use lseek64 to resolve offset oveflow\"\n\n* commit \u002703546553205b56fc1ba0318b146971f43f54a155\u0027:\n  use lseek64 to resolve offset oveflow\n"
    },
    {
      "commit": "03546553205b56fc1ba0318b146971f43f54a155",
      "tree": "38ee8c8ae14b5063e5b034dc7efe070f45ccdb78",
      "parents": [
        "7b3298804c6ac57bce9eb4f590f22ac836818a8b",
        "b73a0ef4d05ad594ba07b98e1f4aa7fe66a18c2e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 18 15:20:54 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 18 15:20:54 2013 -0700"
      },
      "message": "am b73a0ef4: Merge \"use lseek64 to resolve offset oveflow\"\n\n* commit \u0027b73a0ef4d05ad594ba07b98e1f4aa7fe66a18c2e\u0027:\n  use lseek64 to resolve offset oveflow\n"
    },
    {
      "commit": "c05aae4ac4d8d43519b35de7be0645080393a259",
      "tree": "b2c55f94dcadc5c52105d0e72cf4005f8fed2b21",
      "parents": [
        "ffc5a4a529338c834954e58de2701572eb0752f0"
      ],
      "author": {
        "name": "Jongrak Kwon",
        "email": "jongrak.kwon@lge.com",
        "time": "Tue Apr 16 23:00:35 2013 -0700"
      },
      "committer": {
        "name": "Jongrak Kwon",
        "email": "jongrak.kwon@lge.com",
        "time": "Wed Apr 17 14:05:55 2013 -0700"
      },
      "message": "use lseek64 to resolve offset oveflow\n\nThe offset variable in lseek is 32 bit and get easily overflow\nwhen accessing with large offset in dd command.\nUse lseek64 to resolve it.\n\nChange-Id: Ib75d9dcb587004a6851365ab5bb8584ce1010b57\n"
    },
    {
      "commit": "39f6dd65f9be1aeb40438dac180ab046e4b8a335",
      "tree": "858bb5c0b699bf3fbc50fee29d5d6f673161350c",
      "parents": [
        "5cad7119761d3074497fbf33f2cd5854ae5c19d6",
        "129b6d907b3c32a0f0a2e4fc585502484d47a1e4"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 23:25:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 09 23:25:24 2013 -0700"
      },
      "message": "am 129b6d90: am 083b5ccb: Add liblog\n\n* commit \u0027129b6d907b3c32a0f0a2e4fc585502484d47a1e4\u0027:\n  Add liblog\n"
    },
    {
      "commit": "129b6d907b3c32a0f0a2e4fc585502484d47a1e4",
      "tree": "0fb80a7596c0a5904193329d0e44822ebde7d916",
      "parents": [
        "2e1be1756081ef7300c42f2e7906c316539d7930",
        "083b5ccba345ed2b4950454f16bd89c5d86b6b27"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:29:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 09 22:29:03 2013 -0700"
      },
      "message": "am 083b5ccb: Add liblog\n\n* commit \u0027083b5ccba345ed2b4950454f16bd89c5d86b6b27\u0027:\n  Add liblog\n"
    },
    {
      "commit": "083b5ccba345ed2b4950454f16bd89c5d86b6b27",
      "tree": "4ee4bf33ff25e4ffbb9c06bacce9507ed6d14997",
      "parents": [
        "7716aef138e8029357a7b3dc6a73b41f4de4b0ad"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 22:03:45 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: Iab3a9b4307f207c14a04a922cc7350c54e60e9ad\n"
    },
    {
      "commit": "58b0642abbe7c540ccb370824948aaf2b409022c",
      "tree": "8df255e897dd12b6ffedc8576284f0ae028c69ca",
      "parents": [
        "3be5c95d5f2b72f0672a3f02ed02684e364c9ca2",
        "d3859e433d5a4e0da3f24851c5f5f6c9c8b97849"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Apr 06 12:56:31 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 06 12:56:31 2013 -0700"
      },
      "message": "am d3859e43: am 6e0b9ecb: Merge \"toolbox/dmesg: do not hardcode KLOG_BUF_LEN\"\n\n* commit \u0027d3859e433d5a4e0da3f24851c5f5f6c9c8b97849\u0027:\n  toolbox/dmesg: do not hardcode KLOG_BUF_LEN\n"
    },
    {
      "commit": "d3859e433d5a4e0da3f24851c5f5f6c9c8b97849",
      "tree": "589babe5f629d2159d77eea937299d4298929055",
      "parents": [
        "a5ca229a4571f6df42c96e760257b7ca95c7fdeb",
        "6e0b9ecb503b5611d815214e0a134ea0b1395089"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Apr 06 12:51:35 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 06 12:51:35 2013 -0700"
      },
      "message": "am 6e0b9ecb: Merge \"toolbox/dmesg: do not hardcode KLOG_BUF_LEN\"\n\n* commit \u00276e0b9ecb503b5611d815214e0a134ea0b1395089\u0027:\n  toolbox/dmesg: do not hardcode KLOG_BUF_LEN\n"
    },
    {
      "commit": "6e0b9ecb503b5611d815214e0a134ea0b1395089",
      "tree": "0b69bbf17384df85180b15c5eef39fe5e7636d01",
      "parents": [
        "1615c09ac1065104f56ddc444f5467aff76c0daa",
        "edee93dc5ba2dd1fd7b1e097a29cb40d1d8fe516"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Apr 06 19:02:01 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 06 19:02:01 2013 +0000"
      },
      "message": "Merge \"toolbox/dmesg: do not hardcode KLOG_BUF_LEN\""
    },
    {
      "commit": "e5920ffdca9974321fd9cb45c5080867dde194d3",
      "tree": "58d950cd4de615fa30e14d110a2d8662493b43bc",
      "parents": [
        "7d960c961875a5d7ad6d577974c0e3e2b17cf51e",
        "a7096004f220dd7578d7b2e26a3513fa5efc0fc1"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Apr 04 23:46:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 04 23:46:55 2013 -0700"
      },
      "message": "am a7096004: am 911ba269: Merge \"Add -i option to toolbox cmd ls\"\n\n* commit \u0027a7096004f220dd7578d7b2e26a3513fa5efc0fc1\u0027:\n  Add -i option to toolbox cmd ls\n"
    },
    {
      "commit": "a7096004f220dd7578d7b2e26a3513fa5efc0fc1",
      "tree": "29edc45b28b4fd775e96ad4e4714f64e3da84a5c",
      "parents": [
        "a7672f42478fae4150b32e5210fc6eb8f1b17bb1",
        "911ba269e369035f9a4a250fa22233b37d724356"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Apr 04 23:42:16 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 04 23:42:16 2013 -0700"
      },
      "message": "am 911ba269: Merge \"Add -i option to toolbox cmd ls\"\n\n* commit \u0027911ba269e369035f9a4a250fa22233b37d724356\u0027:\n  Add -i option to toolbox cmd ls\n"
    },
    {
      "commit": "403b195548e0b8e692ad9871ae1fb2301959d6a7",
      "tree": "35313e4cb05200e34f0c85ffcf249b1adaf71c9b",
      "parents": [
        "02e8d73079e279fac152d1d3caf36afaeab6c5bf"
      ],
      "author": {
        "name": "William Roberts",
        "email": "w.roberts@sta.samsung.com",
        "time": "Wed Apr 03 16:01:30 2013 -0700"
      },
      "committer": {
        "name": "William Roberts",
        "email": "w.roberts@sta.samsung.com",
        "time": "Wed Apr 03 17:39:19 2013 -0700"
      },
      "message": "Add -i option to toolbox cmd ls\n\nChange-Id: I4690fc10dc07bf1883bcf8ec18399235dc97d317\n"
    },
    {
      "commit": "edee93dc5ba2dd1fd7b1e097a29cb40d1d8fe516",
      "tree": "2c1c9a0253bb62de8229d1d89b990139777add1c",
      "parents": [
        "f5562cb66c1c15d65bc372ede4c180430e1ce9d7"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Sun Jun 24 07:07:42 2012 -0500"
      },
      "committer": {
        "name": "Chirayu Desai",
        "email": "cdesai@cyanogenmod.org",
        "time": "Mon Apr 01 21:50:03 2013 +0530"
      },
      "message": "toolbox/dmesg: do not hardcode KLOG_BUF_LEN\n\nChange-Id: Ia99654a53d6adfeba5a5088b7cff45c6e47b6188\n"
    },
    {
      "commit": "c6d7e200eddd620d8ac55259ab3aa5f8bfa2aadb",
      "tree": "3e2e332d9ed70377e13c91e2990c4a914d4f5f8b",
      "parents": [
        "82075a4044efe57ad9bad3d18982e311b4ef53ae"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Fri Mar 22 16:23:48 2013 -0700"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Mar 26 12:24:10 2013 -0700"
      },
      "message": "toolbox: Make reboot a separate command from toolbox\n\nSet the CAP_SYS_BOOT filesystem capability on the new reboot\ncommand and keep CAP_SYS_BOOT in adb bounding set so that the\nshell user can run it.\n\nChange-Id: I1dd6143445ee2a952254f0452ab6e544318431dd\n"
    },
    {
      "commit": "391f365c6d64d3223adc4cbd6b2fb558416ccceb",
      "tree": "19a83f8fee64eee76cfcca444b6a8b003f557e59",
      "parents": [
        "d15715e5a085dc052ab462799950622f844b0059"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Jan 15 18:43:01 2013 -0800"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Mon Mar 25 19:59:21 2013 -0700"
      },
      "message": "toolbox: Fix rm -f with multiple files\n\nOnly check errno if unlink returns -1.\nContinue instead of exiting if one file does not exist.\n\nChange-Id: Iaf01b8523b84e87fcb0d732b89b7be6e24279c0b\n"
    },
    {
      "commit": "4db7df71da5641dfa6c89543b9843dca1999d78e",
      "tree": "549fde808e12abceca8e7bda5f91387b84a59974",
      "parents": [
        "2840647b15fe91069aee02ce0e203943346bf294"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 22 15:41:58 2013 -0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Jan 22 16:59:36 2013 -0800"
      },
      "message": "toolbox: renice: Add -t TYPE parameter and switch to getopt\n\nChange-Id: Idaedabe1505a9c373629ef1fd31aa4b4beb068c2\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "487c4ea01274493b62e13530e955efdc115afc42",
      "tree": "477c1a9b67686a18b4d944785cb87a673fef96d9",
      "parents": [
        "9388033694a9f234954f26e51c93aa648912574f",
        "7ec62dbd9d2bd7369fa074bf002f642b03e6dd39"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Dec 19 09:51:38 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 19 09:51:38 2012 -0800"
      },
      "message": "am 7ec62dbd: am 82ea44f8: Merge \"Change setsebool syntax to be consistent with other init built-ins.\"\n\n* commit \u00277ec62dbd9d2bd7369fa074bf002f642b03e6dd39\u0027:\n  Change setsebool syntax to be consistent with other init built-ins.\n"
    },
    {
      "commit": "82ea44f88fed158fd807ef5b79100295b1163941",
      "tree": "00783aa0ba1f551ab19efcb8245cf2d76c87128c",
      "parents": [
        "516943c0e919d77170622b8b5ed19412b4dbe5ef",
        "0e23fee505fda39de4286d20022a4b2119156e15"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Dec 18 23:42:09 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 18 23:42:09 2012 -0800"
      },
      "message": "Merge \"Change setsebool syntax to be consistent with other init built-ins.\""
    },
    {
      "commit": "0e23fee505fda39de4286d20022a4b2119156e15",
      "tree": "78803cfb8a381bd4f051d38c66ae5952f9717e40",
      "parents": [
        "a649fafbe8a83e9b86ea99f89b6554d93eb1937c"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Wed Nov 28 13:52:12 2012 -0500"
      },
      "committer": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Thu Dec 13 15:41:53 2012 -0500"
      },
      "message": "Change setsebool syntax to be consistent with other init built-ins.\n\nChange setsebool syntax from name\u003dvalue to name value.\nThis is to make it consistent with setprop and similar commands.\nUpdate both the init built-in command and the toolbox command\nfor consistency.\n\nChange-Id: I2c8e016ba26731c4a2ad4a49ae3b89362bf8f8a8\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "229d2ace9de253e01a486a518301168ebb695b96",
      "tree": "f59426e06e363b7bcf4fa393cb40ce07fc9b2991",
      "parents": [
        "376448c03249ff6c9f584b80c886fc616b95339a",
        "b8db1e093d412f57263dc597dbac14c377945781"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 03 08:15:25 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 03 08:15:25 2012 -0800"
      },
      "message": "am b8db1e09: am 777991d9: Merge \"Fixed improper size displaying in \\\u0027df\\\u0027 utility\"\n\n* commit \u0027b8db1e093d412f57263dc597dbac14c377945781\u0027:\n  Fixed improper size displaying in \u0027df\u0027 utility\n"
    },
    {
      "commit": "777991d9399f1268d27c72a03d56c1a36068a57f",
      "tree": "42348cf71a6d8b6bfbc33c4b719b4d652cf7bba6",
      "parents": [
        "2a2f640886c9d356de1407b0888507823a7663b7",
        "1f90dcd0c022182220c37b300690cf73674d03b8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Dec 03 07:33:38 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 07:33:38 2012 -0800"
      },
      "message": "Merge \"Fixed improper size displaying in \u0027df\u0027 utility\""
    },
    {
      "commit": "efb5e3c709214cfc45beec5fcc66c93223ffc744",
      "tree": "b237c6f2209f0cc61a333c3fc2b853ef78bbd200",
      "parents": [
        "55d039efb5d30377e2a66d931a7408b13ac24650",
        "20f5daa8653eb2d81af8c161a2084e3b53ec3914"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 18:00:29 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 18:00:29 2012 -0700"
      },
      "message": "resolved conflicts for merge of 20f5daa8 to master\n\nChange-Id: Ie3e67696d265a56dfa4d089c777506f27783a9a6\n"
    },
    {
      "commit": "20f5daa8653eb2d81af8c161a2084e3b53ec3914",
      "tree": "716474f1851ccb7de43bc9806bc1bcae2e264476",
      "parents": [
        "d94301799518a69f2b2b5a2b20bf9d4403658d7e",
        "44f4f8a4d2bef6e9fc37cd50076295102b38828a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 17:51:14 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 17:51:14 2012 -0700"
      },
      "message": "resolved conflicts for merge of 44f4f8a4 to jb-mr1-dev-plus-aosp\n\nChange-Id: I66988d8e87a8110ca9ab3da19870b80bbaf06eba\n"
    },
    {
      "commit": "b83c09812f30d36285cacdf5cf824c56c267f8e5",
      "tree": "2a32747cd62f4cb1e542bf1b30018b7001ebc530",
      "parents": [
        "51ccef27cab58277775e62518a59666d2a059b62"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 10 11:26:33 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Oct 16 12:34:06 2012 -0700"
      },
      "message": "Remove HAVE_SELINUX guards\n\nChange-Id: Idef0a784a1d237257ff4135bb1df62ff8a67ded3\n"
    },
    {
      "commit": "f638b7e0a0fa8716e8a0844c8c02dcf4bc769fd7",
      "tree": "643274fede34689cec74794c57069a1dfeaa12bc",
      "parents": [
        "3253f42c69629fc45636b7e9a2ea347ad4a80a5c",
        "e47eb98a337081d0d6c740eb7d8b990faf4090d7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 11 00:30:23 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 11 00:30:23 2012 -0700"
      },
      "message": "am e47eb98a: am 674c0445: Merge \"toolbox: silence some compiler warnings\"\n\n* commit \u0027e47eb98a337081d0d6c740eb7d8b990faf4090d7\u0027:\n  toolbox: silence some compiler warnings\n"
    },
    {
      "commit": "e47eb98a337081d0d6c740eb7d8b990faf4090d7",
      "tree": "0f035edb29029d8968b089237b03a976d7fa5606",
      "parents": [
        "41f0e1a725994fe458f6859e8c72df17af84b3fd",
        "674c0445e25cdf9bcd7d32a84103bd3b7e24a4a0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 11 00:29:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 11 00:29:10 2012 -0700"
      },
      "message": "am 674c0445: Merge \"toolbox: silence some compiler warnings\"\n\n* commit \u0027674c0445e25cdf9bcd7d32a84103bd3b7e24a4a0\u0027:\n  toolbox: silence some compiler warnings\n"
    },
    {
      "commit": "ef5d0340e4ff3fe11b7668ebaf2f4f0c4c06134d",
      "tree": "317215eb12445278ad79edacd48eb1e00069bf6c",
      "parents": [
        "33045b3d7bd965f67e2e0b175976cf9934fb924f"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 10 11:26:54 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Oct 10 11:28:27 2012 -0700"
      },
      "message": "toolbox: silence some compiler warnings\n\nComparison of signed and unsigned integers. Use parenthesis around a\ngroup of bitwise OR operations.\n\nChange-Id: Ia404380593ce2c2a291133c07c0fc7a016a3ad3f\n"
    },
    {
      "commit": "1f90dcd0c022182220c37b300690cf73674d03b8",
      "tree": "19cee83dcd34aa80f551d29fd688f87d394195ad",
      "parents": [
        "1c0c52503dcedff1a75775bf8bfffe7ec77b722b"
      ],
      "author": {
        "name": "Michal Frynas",
        "email": "michal.frynas@sonyericsson.com",
        "time": "Thu Jul 14 15:20:05 2011 +0200"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonymobile.com",
        "time": "Tue Oct 02 10:39:19 2012 +0200"
      },
      "message": "Fixed improper size displaying in \u0027df\u0027 utility\n\n\u0027df\u0027 command used to display filesystem usage statistics as integer\nvalues, in most cases rounding the actual value down. Because of\nthat \u0027df\u0027 tended to display faulty size values.\nThis fix to \u0027df\u0027 utility calculates the fractional part of the size,\nthen it rounds it when needed to the nearest one-digit integer value\nand displays after decimal dot.\n\nChange-Id: I9bc52635d45d3e55ce61b3b1c6b80d1267516e75\n"
    },
    {
      "commit": "ad8663e970e218bf2f8c202e425d25dffe95b588",
      "tree": "e0600397fff7bdd5df728f77a120c02693693435",
      "parents": [
        "35aa3642e1d4c6206750d5b51519d7de352a80e2",
        "08f748a2f8e6933fdd96290de049c1aa1f3f8479"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 18:21:03 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 22 18:21:03 2012 -0700"
      },
      "message": "am 08f748a2: am 42a1e6c9: Merge \"Iteration on multi-user external storage.\" into jb-mr1-dev\n\n* commit \u002708f748a2f8e6933fdd96290de049c1aa1f3f8479\u0027:\n  Iteration on multi-user external storage.\n"
    },
    {
      "commit": "bfcd810b792f7ffbb2ec1360c0c2662725fd0362",
      "tree": "7266cdc116a944dc9ff7654547dec15d10ebb899",
      "parents": [
        "6302b420554724c1434e27e2cd46cb43f5fb7bca"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 13:57:25 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Aug 22 14:28:37 2012 -0700"
      },
      "message": "Iteration on multi-user external storage.\n\nDefine /storage as top-level concept, so that we enforce permissions\nuniformly.  Moves external storage paths from headers to per-device\nenvironment variables.  Added missing mount flags, and we no longer\nhave adb-specific external storage.\n\nBug: 6925012\nChange-Id: Ic7ca953be2f552d3f0ec9e69f89fef751daa1b29\n"
    },
    {
      "commit": "1ef97deea5d01b693ff47a45292ae3b65dae8e5e",
      "tree": "9fcb0f7e969d55f096581250f8927098e5931679",
      "parents": [
        "24a5a97b718b66ebdbe37a1b1a510d4005e67138",
        "81eecb1eb8c23e603c78d60a7278a3afd1798962"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 20 14:56:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 14:56:02 2012 -0700"
      },
      "message": "am 81eecb1e: am 2ab69388: am 76080925: am 52d5dfc8: Merge \"vmstat: Fix -n flag\"\n\n* commit \u002781eecb1eb8c23e603c78d60a7278a3afd1798962\u0027:\n  vmstat: Fix -n flag\n"
    },
    {
      "commit": "2ab69388cb4e26855cc7a9f3584935b927a3659e",
      "tree": "4509b363690642c5cf98e60fa16ec13c15f84fb3",
      "parents": [
        "9305892464fc353702345eedcb2180f5e6fb27c0",
        "76080925410db41cfa5c70ffcffaa2b3b4d59aad"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 20 14:51:52 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 14:51:52 2012 -0700"
      },
      "message": "am 76080925: am 52d5dfc8: Merge \"vmstat: Fix -n flag\"\n\n* commit \u002776080925410db41cfa5c70ffcffaa2b3b4d59aad\u0027:\n  vmstat: Fix -n flag\n"
    },
    {
      "commit": "52d5dfc8d30890734ee7122c3139f8637e196a1c",
      "tree": "d97a5a39b606b143124da5ba11304aef9d3704ff",
      "parents": [
        "c57689fc7ccadee4f852ad62ac1010e53382a67c",
        "6caab4ce959478b96c40955236e13e80ef83145d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 20 14:25:12 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 14:25:13 2012 -0700"
      },
      "message": "Merge \"vmstat: Fix -n flag\""
    },
    {
      "commit": "78f7aefae28bae0f88380f04269842e388c7fe1c",
      "tree": "ca1acdae9ffeeb5ff442f7ddb090de3805708cf1",
      "parents": [
        "c01ad6945371b824afc424ba8f889801a3e3ed31",
        "f286dd75f6e715f900a2b2a230c8e8fb68a418a3"
      ],
      "author": {
        "name": "Jon Larimer",
        "email": "jlarimer@google.com",
        "time": "Tue Aug 14 10:38:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 14 10:38:45 2012 -0700"
      },
      "message": "Merge \"Make usage() static in du.c to avoid conflicts\""
    },
    {
      "commit": "3790b9be668e0329563abe06d67c9f31596966ac",
      "tree": "07b3e40dacc8e364875be66afb964b4dfbc6be50",
      "parents": [
        "539b1f5e2f93486f20c5f3d320e3bb3f0033141c",
        "f48a4b4be699f63670acbff94b78e1fdf3b4338c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Mon Aug 13 16:08:20 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 16:08:20 2012 -0700"
      },
      "message": "am f48a4b4b: am ba822edb: am 02e9f8d5: am 53dab583: Merge \"Make setenforce usage function static.\"\n\n* commit \u0027f48a4b4be699f63670acbff94b78e1fdf3b4338c\u0027:\n  Make setenforce usage function static.\n"
    },
    {
      "commit": "ba822edb30d5221934137052d42a81ad993b3ea9",
      "tree": "b6e67d1a5b0162fd7948d4b46071bf1db88bbe6f",
      "parents": [
        "2a1067d144be5437df98ddb0f2d3680f03dafa5f",
        "02e9f8d5aa390d89f79b2b3bb8630af4062b4d2c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Mon Aug 13 16:03:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 16:03:25 2012 -0700"
      },
      "message": "am 02e9f8d5: am 53dab583: Merge \"Make setenforce usage function static.\"\n\n* commit \u002702e9f8d5aa390d89f79b2b3bb8630af4062b4d2c\u0027:\n  Make setenforce usage function static.\n"
    },
    {
      "commit": "f286dd75f6e715f900a2b2a230c8e8fb68a418a3",
      "tree": "0a4c2247364ec057592d5ef455d5c77e674d12a5",
      "parents": [
        "732eb2746fbdf2468a848b4a01482bbd23a39a60"
      ],
      "author": {
        "name": "Jon Larimer",
        "email": "jlarimer@google.com",
        "time": "Mon Aug 13 13:10:41 2012 -0400"
      },
      "committer": {
        "name": "Jon Larimer",
        "email": "jlarimer@google.com",
        "time": "Mon Aug 13 16:02:55 2012 -0400"
      },
      "message": "Make usage() static in du.c to avoid conflicts\n\nChange-Id: Ic6b036d050943fb5f0af8553c081ca75362167e8\n"
    },
    {
      "commit": "492051ed2a06ea902d7b7e8ba1998121ced9b0be",
      "tree": "efb6a7073dfd4521c2bbb1ab4a1d3d91810d8978",
      "parents": [
        "dd56039c881db2efebfa7df6491579e3ae01748f"
      ],
      "author": {
        "name": "Matt Finifter",
        "email": "finifter@google.com",
        "time": "Wed Jul 18 14:06:02 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 12:56:23 2012 -0700"
      },
      "message": "Make setenforce usage function static.\n\nChange-Id: I6de204dc072418805160a35d799b8948ecb39251\n"
    },
    {
      "commit": "28358cf9e75b2fbb4e5f3c70491ca65a21a7d111",
      "tree": "e183d7d1e9ec8fb8477e45ab4b02a6013785026d",
      "parents": [
        "732eb2746fbdf2468a848b4a01482bbd23a39a60",
        "a0347971dec3dc34c6ccebad5170ced255fdf35f"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 10:26:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 13 10:26:19 2012 -0700"
      },
      "message": "am a0347971: am 605103fb: resolved conflicts for merge of 4dcd52ab to jb-mr1-dev\n\n* commit \u0027a0347971dec3dc34c6ccebad5170ced255fdf35f\u0027:\n  Add support for reloading policy from /data/system.\n"
    },
    {
      "commit": "605103fb553a8b872aa8dd0aef76ae8b3bfe47fa",
      "tree": "aa2c23c9e87c1872ef7aacc70b446455da1704bd",
      "parents": [
        "98ebf1975f68ffeaa43d5c53964c3dabe8655562",
        "4dcd52ab11d25fe3d53aab52b6c233e692da4eae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 10:21:35 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 13 10:21:35 2012 -0700"
      },
      "message": "resolved conflicts for merge of 4dcd52ab to jb-mr1-dev\n\nChange-Id: Ibd0c03a7883a2e31adab18543c016776b7b36866\n"
    },
    {
      "commit": "ae6f3d7c05070f7e0e56fe0056c8923c6ee2f473",
      "tree": "0fa2219d6539d7b9311b24ad60ab1601e15fba63",
      "parents": [
        "d25b8502ea2c1294c0afab97bf7f14fbd2087efd"
      ],
      "author": {
        "name": "Stephen Smalley",
        "email": "sds@tycho.nsa.gov",
        "time": "Tue May 01 15:02:53 2012 -0400"
      },
      "committer": {
        "name": "rpcraig",
        "email": "rpcraig@tycho.ncsc.mil",
        "time": "Thu Aug 09 09:59:10 2012 -0400"
      },
      "message": "Add support for reloading policy from /data/system.\n\nTo support runtime policy management, add support for reloading\npolicy from /data/system.  This can be triggered by setting the\nselinux.loadpolicy property to 1, whether from init.rc after\nmounting /data or from the system_server (e.g. upon invocation of\na new device admin API for provisioning policy). ueventd and\ninstalld are restarted upon policy reloads to pick up the new\npolicy configurations relevant to their operation.\n\nChange-Id: I97479aecef8cec23b32f60e09cc778cc5520b691\nSigned-off-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n"
    },
    {
      "commit": "7acf56f8f740d63be3b7492b2d56349dda33b134",
      "tree": "e001644f60c133b004f0f77135ff2ed764f12bce",
      "parents": [
        "cd5d7bff651983d2081184509d5297945de6860a",
        "79737802421d7b32707f1c248b5ecb239965234a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 15:11:22 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 15:11:22 2012 -0700"
      },
      "message": "am 79737802: am 8268a75e: am c5db017c: am 63b2c577: Merge \"Conditionally use SIGSTKFLT\"\n\n* commit \u002779737802421d7b32707f1c248b5ecb239965234a\u0027:\n  Conditionally use SIGSTKFLT\n"
    },
    {
      "commit": "8268a75e86c086c4618c2f8d8e9531eb8d7b30f5",
      "tree": "52bbce7669d1e182f2bb6cd36776cf52e6f0f455",
      "parents": [
        "e0346fa7fa715f785ea60966f38a474f337278ca",
        "c5db017cc3d30b1b15544ca9889e66890710f93c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 08 14:06:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:06:25 2012 -0700"
      },
      "message": "am c5db017c: am 63b2c577: Merge \"Conditionally use SIGSTKFLT\"\n\n* commit \u0027c5db017cc3d30b1b15544ca9889e66890710f93c\u0027:\n  Conditionally use SIGSTKFLT\n"
    },
    {
      "commit": "52abb4b1ef5f0a0939f1485433cf817523caf779",
      "tree": "2c37046cc5917dc8e3e9eeae169f8b4f86ff4cc8",
      "parents": [
        "3b592db88efca95d6ca995a645df963c08dd3ef2"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Sun Jul 15 15:52:50 2012 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Aug 07 21:47:51 2012 -0700"
      },
      "message": "Added clear command to toolbox\n\nChange-Id: Ifb1b7693727997b94614f7da73081f0894ee88ad\n"
    },
    {
      "commit": "7ac420972adc71d0654d10446078751b571aa301",
      "tree": "33e8ee03cfe368ca1958f1ed6ee225ef8ea01587",
      "parents": [
        "23ee469c4b790634959e5ccf83134f44e73fb72b"
      ],
      "author": {
        "name": "Chris Dearman",
        "email": "chris@mips.com",
        "time": "Tue Jul 10 12:15:19 2012 -0700"
      },
      "committer": {
        "name": "Raghu Gandham",
        "email": "raghu@mips.com",
        "time": "Wed Aug 01 15:51:09 2012 -0700"
      },
      "message": "Conditionally use SIGSTKFLT\n\nChange-Id: I555b33b5a93df332c556944a1c00fff417825247\n"
    },
    {
      "commit": "3e8b1581ff0f2daa934eb9d6362dfe4e2b4fa8c9",
      "tree": "dc708603e446878a24453b2bd393764bf1c7cd1f",
      "parents": [
        "57df14c654a968e5b85d508cbd0871632011cb0e"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 13 16:37:13 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 13 16:37:38 2012 -0700"
      },
      "message": "Ported \"grep\" from NetBSD to toolbox.\n\nBug: 6798417\nChange-Id: I581c496a726a4814edaaa3672849c090bac8552c\n"
    },
    {
      "commit": "57df14c654a968e5b85d508cbd0871632011cb0e",
      "tree": "c9b1bdd8643c11ee41c03fb8b7029657ed025cdb",
      "parents": [
        "14c14bfb7e68594cec19c023d807fd7540283c4b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 13 16:25:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Jul 13 16:26:30 2012 -0700"
      },
      "message": "Ported \"cp\" from NetBSD to toolbox.\n\nBug: 6798417\nChange-Id: I716ab459b9edf4c7405bf042adbee0300b6f51c9\n"
    },
    {
      "commit": "6caab4ce959478b96c40955236e13e80ef83145d",
      "tree": "492b27ce87419dc9a61c51330de2d91be7eb83ed",
      "parents": [
        "2177c79bddc66e295599d87007d4cbec549e1cac"
      ],
      "author": {
        "name": "Arun Raghavan",
        "email": "arun.raghavan@collabora.co.uk",
        "time": "Tue Jan 10 19:31:31 2012 +0530"
      },
      "committer": {
        "name": "Arun Raghavan",
        "email": "arun.raghavan@collabora.co.uk",
        "time": "Tue Jul 10 10:43:57 2012 +0530"
      },
      "message": "vmstat: Fix -n flag\n\nThe loop condition for the number of iterations basically caused the\nargument to -n to be ignored. This fixes the condition appropriately.\n"
    }
  ],
  "next": "8103e9148378fb8879e3bc7d8504d267c2d9daa9"
}
