)]}'
{
  "log": [
    {
      "commit": "04d7eaf138678ef591076ff02b896f93394bcfaf",
      "tree": "1a8637e26a219c08bedd939a8fb306a709eee055",
      "parents": [
        "a39d01a79a2a435b45a49f5d9a02b55fec66a586",
        "4f0dfaa7c338870eb58d96fe40234505734db728"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 15:33:30 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 15:33:30 2012 -0700"
      },
      "message": "am 4f0dfaa7: am 9be7caf3: Merge \"Include stack traces for certain native processes in bugreport.\" into jb-dev\n\n* commit \u00274f0dfaa7c338870eb58d96fe40234505734db728\u0027:\n  Include stack traces for certain native processes in bugreport.\n"
    },
    {
      "commit": "bf7f49238d0af497d4300f7e611cf831854d6434",
      "tree": "b4b264b9b3d78c1b8f1b6c6114d582471c7b989c",
      "parents": [
        "be502a02c8e0ea232e7339ed60b1754c929ecec1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jun 07 16:40:01 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 08 11:45:00 2012 -0700"
      },
      "message": "Include stack traces for certain native processes in bugreport.\n\nBug: 6615693\nChange-Id: I64c3b3ce0bba62d9c332a795f7d979fb753dc27b\n"
    },
    {
      "commit": "1e339878c128ef47271278779c2685a8dfa49cd1",
      "tree": "66a6b9e50cb2ee46d8e9a4d566b2817becdc325b",
      "parents": [
        "a9a05d73f5a3633835b7e5f83a181d989204f090"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Apr 25 13:38:45 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Jun 06 16:43:16 2012 -0700"
      },
      "message": "dumpstate: handle old style \"adb bugreport\"\n\nWhen \"adb bugreport\" was run on previous adb releases, it\ncalled \"adb shell dumpstate\". In later versions of Android,\nthis was changed to \"adb shell bugreport\", which starts\nthe dumpstate service.\n\nModify the dumpstate command so that it calls bugreport\nwhen it\u0027s not running as root. This allows both\n\"adb shell dumpstate\" and \"adb shell bugreport\" to have\nthe exact same output.\n\nBug: 6391938\nChange-Id: Ia32bb9ebc579db3bee7caa0fe66dc3f124d60a12\n"
    },
    {
      "commit": "29e27a84c144fe3b941648094cad2a3f1e61e8b3",
      "tree": "5cafda6ba2ca955540c39f4e68541dcac9f42567",
      "parents": [
        "474937a5edbae6490c2b36c0d906bcbd06e6e64f"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue May 22 17:54:59 2012 -0700"
      },
      "committer": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue May 22 18:26:47 2012 -0700"
      },
      "message": "dumpstate: Add kernel wakeup sources info\n\nChange-Id: I0f95afd6815c1403d8400a18ef3cd19d936d4601\n"
    },
    {
      "commit": "13461c2ffe1c77a0c11a922ba41b0922791a7874",
      "tree": "d44b847f6e7191912f509820901e5d96a05b9aae",
      "parents": [
        "515f19da246a11c417c1771d4293e753f09e79b6"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 17 12:40:11 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu May 17 13:03:34 2012 -0700"
      },
      "message": "Dump packages.xml as root.\n\nBug: 6501151\nChange-Id: Ied638bdbe9ed6fbf749a44de8ac1f9d4167829c1\n"
    },
    {
      "commit": "012c2ea5651a56218a4359c78db26dd700d9930b",
      "tree": "8d556125b405d7f5b2075dfdbc6274554f7e306e",
      "parents": [
        "e804aa4819a764e1f3929f4c578e9a44593a1467"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed May 16 20:49:29 2012 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed May 16 20:49:29 2012 -0700"
      },
      "message": "dumpstate: collect xtables based iface stats, update iptables info.\n\nThe newer kernels now have /proc/net/xt_qtaguid/iface_stat_fmt.\nAdd the extra iptables output and remove ip6tables for nat which doesn\u0027t\nexist.\n\nChange-Id: I819c707b337a707ca0acd87d9ab38cd68ca0f36c\n"
    },
    {
      "commit": "3e03d3fb6a4cb93f5f978f9d2eed7b7cc62a06a6",
      "tree": "a8dca382de53cd551e3271fd8a2d8ef2f6bde77a",
      "parents": [
        "f30fd01497a53cbff8692721026c3f7b6830158e"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri May 11 14:14:09 2012 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri May 11 14:14:09 2012 -0700"
      },
      "message": "Ignore SIGPIPE is some of the tools used via bugreport\n\n adb bugreport \u003e b \u0026 sleep 5; kill $?\nwill show that a bunch of tools will SIGPIPE when trying to output data\nwhich is normal.\nWe don\u0027t have a way on linux (bsd yes), to set NOSIGPIPE on the file desc\npassed down via fork/exec.\n\nBug: 6447319\nChange-Id: I25b30a823addcff89d252f162d0a07035d4fdd3f\n"
    },
    {
      "commit": "64a1e08b86d72cb375f9dfdf4eb6307f71817350",
      "tree": "ed3cdc1483a0e66d139d29335be06cd8b3e828f0",
      "parents": [
        "4a8111bc8c7e659164f75dcfe9efcd33582f3669"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 19 17:31:53 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 19 17:32:03 2012 -0700"
      },
      "message": "SF doesn\u0027t need more than a few binder threads\n\nChange-Id: Ic4659fb81f9990cc7caf84a496a8ae659a1d16a9\n"
    },
    {
      "commit": "4287cb4595d72066bc2d3cd1e2ac59cde254c707",
      "tree": "00ceda0ac9b89c669cd9df3e4db3ec75c8abda57",
      "parents": [
        "258385978c517a47626161b1e644c48bcee28de1"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 12:25:47 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Apr 11 12:27:48 2012 -0700"
      },
      "message": "Add sdcard_r group to dumpstate.\n\nBug: 6321962\nChange-Id: I318cd88493396f3d8adb5d4d0fc7a12ee40ba737\n"
    },
    {
      "commit": "d51820e8dea4f5bd9d06ff22335bead7409864b2",
      "tree": "d8e138ceb652ff6a4439512e9ef1cf7d09a89504",
      "parents": [
        "c7f1fe26804ab986b90f3ba007db94f71e94932a"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 06 09:53:45 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 06 09:53:45 2012 -0700"
      },
      "message": "dumpstate: don\u0027t follow symlinks when creating /data/anr/traces.txt\n\nMake Android more robust against symlink attacks when /data/anr\nis world-writable.\n\nBug: 5614000\nChange-Id: I9a7e4c4ec9aa4300ac30a968db0dcd276f364ab6\n"
    },
    {
      "commit": "c7f1fe26804ab986b90f3ba007db94f71e94932a",
      "tree": "5e8a8fb0af0b5cdf878c9fd861f5173617ce518a",
      "parents": [
        "3eb38cb33e41ce40dd1094bdec850f0fca9f8a53"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 06 09:31:28 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 06 09:46:10 2012 -0700"
      },
      "message": "Ensure that /data/anr/traces.txt is world-writable\n\nThe umask changed for init. We have to force /data/anr to be world\nreadble and /data/anr/traces.txt to be world writable so dalvik\nprocesses can write to it.\n\nHopefully this is a short term change while we investigate tightening\nup these permissions.\n\nBug: 6300296\nChange-Id: Iacb4c9f1bc69d2ac679697f9cf9a52694f888489\n"
    },
    {
      "commit": "f45fa6b2853cc32385375a0b63ee39ad6a968869",
      "tree": "33431fa079d31895b73cc18f8d9ce833105d5c44",
      "parents": [
        "0b94dcd03d8764eab7f1fb00f0f1f37904732aa1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 12:38:26 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 12:39:26 2012 -0700"
      },
      "message": "move dumpstate and dumpsys from frameworks/base to frameworks/native\n\nChange-Id: I8a5318022ce5cd3e7c8055f21fe5da74639aa6c0\n"
    },
    {
      "commit": "a87de87dcd36d9c7696587365aa3d1545e33c01b",
      "tree": "ff01477a7761363ff70eee6506138284a0546950",
      "parents": [
        "5b1b57f0f540e8efe5bebdc219738d40ebfce5b9"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:04:01 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:55:21 2012 -0800"
      },
      "message": "Move keystore to system/security repo\n\nMove keystore to system/security at revision\na91203b08350b2fc7efda5b1eab39e7541476b3a\n\nChange-Id: I7dbd625b864e9c63489b08e9fd28dfb22da81072\n"
    },
    {
      "commit": "4a9730ff86e2cf52c33220467e3eebc30b254616",
      "tree": "67e7e7a75569740717ce43f5fa479e9bc3d66a44",
      "parents": [
        "eb9e3dd787338c652dc13f0cb575084a6dfb4fdd",
        "6c7609549631b816c53b452ddbc76770483a8976"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 13 16:43:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 16:43:43 2012 -0800"
      },
      "message": "Merge \"Fix build warnings\""
    },
    {
      "commit": "a94f129a7bbaa8ea45c50e49ba3e6127ca2a15ec",
      "tree": "cc601c2c420c5235b4e1526d29509c568f4eb13e",
      "parents": [
        "2bf030602f54cd4594a64f19fe84661660d18952"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 16:12:18 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 18:06:01 2012 -0800"
      },
      "message": "Some hardening of isolated processes by restricting access to services.\n\nServices now must explicitly opt in to being accessed by isolated\nprocesses.  Currently only the activity manager and surface flinger\nallow this.  Activity manager is needed so that we can actually\nbring up the process; SurfaceFlinger is needed to be able to get the\ndisplay information for creating the Configuration.  The SurfaceFlinger\nshould be safe because the app doesn\u0027t have access to the window\nmanager so can\u0027t actually get a surface to do anything with.\n\nThe activity manager now protects most of its entry points against\nisolated processes.\n\nChange-Id: I0dad8cb2c873575c4c7659c3c2a7eda8e98f46b0\n"
    },
    {
      "commit": "6c7609549631b816c53b452ddbc76770483a8976",
      "tree": "4ffb9e8907f0ee9ebbed71b69b5a9d3c625b24bb",
      "parents": [
        "5873400ac829960958af264406cd9e7c83e98acd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 10 17:54:27 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 07:41:08 2012 -0800"
      },
      "message": "Fix build warnings\n\nChange-Id: Ia5b8da2cfed7ae02c9e8e03e8bae22b2a68684a0\n"
    },
    {
      "commit": "e6f43ddce78d6846af12550ff9193c5c6fe5844b",
      "tree": "34a2badff01e4bc942327a56268c62909aa7ccbb",
      "parents": [
        "50d76ddfb00f9d461da895f5d65e8331ae331524"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "32397c1cd3327905173b36baa6fd1c579bc328ff",
      "tree": "6eec8d541334d19af13d46239d603d86f52eefd7",
      "parents": [
        "5f56dfec5aa6d9ff63c08112fb5d60efd813b549"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "a19954ab377b46dbcb9cbe8a6ab6d458f2e32bca",
      "tree": "70d7654789e2e2e0daddabda4c1caabbd15ece78",
      "parents": [
        "3b115238cf237a1d804c87da59f49c085daeeb9e"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "baa44b89ec159fd65230cbb8ebab62d63a513b0b",
      "tree": "644c9bc6ebe2b1a545a2934ce268640d8673cb0f",
      "parents": [
        "919b1a8495fb413a7e25f08bca59533146829ee4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "a816cc4e68cbbe70d0fb1178abef7ace4e517731",
      "tree": "38a26635b1265bae7b96077bc91078c3de63a9c5",
      "parents": [
        "e16986cae281f118ecd563c384b7f6e5a4b937b5"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 13:04:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 13:33:22 2011 -0700"
      },
      "message": "Remove more simulator support code.\nBug: 5010576\n\nChange-Id: Ie6c8665306bf4e822693b76f25c3a0f05c12d42d\n"
    },
    {
      "commit": "e16986cae281f118ecd563c384b7f6e5a4b937b5",
      "tree": "524b97b001c397f8f23ef47b6451368b8f166540",
      "parents": [
        "67ef7c507f33676c9a4a3b22dff6ac7dc353f98f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 18:52:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 19:54:07 2011 -0700"
      },
      "message": "Eliminate single-process mode.\nBug: 5010576\n\nChange-Id: Id450dc83efed4897d1e4ff451530fed14457aace\n"
    },
    {
      "commit": "e0cd5dc3dcf7d73a7dcb54c3ae4d3ab4dc4cf680",
      "tree": "0c82c76d0fb1d7435b538abea1939a8a50d640d8",
      "parents": [
        "e0b3a8bb3857603680337a0dd10466d8dd757949"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 30 22:58:29 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 30 22:59:13 2011 -0700"
      },
      "message": "Revert \"Add keychain user with special keystore access permissions\"\n\nThis reverts commit 8c2a1a90a81f04573bfa578eab32f5fd4a30eafb.\n\nConflicts:\n\n\tcmds/keystore/keystore.c\n\nBug:4970237\nChange-Id: I626023d695becfada47e5f319b18e0889b766563\n"
    },
    {
      "commit": "6904f14b89377d0671ca80a6c577f39f45863299",
      "tree": "17b2e79c726686563ae61376c7e53818ffc638ee",
      "parents": [
        "91a465b73a5bfa55df7ce0e56e35b1b1e018a7ca"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 21:39:25 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Jun 27 10:38:10 2011 -0700"
      },
      "message": "KeyStore: fix test-keystore\n\nChange-Id: I1dcbd5c3cc7569c397d2480cda76288a9e28cd5c\n"
    },
    {
      "commit": "91a465b73a5bfa55df7ce0e56e35b1b1e018a7ca",
      "tree": "97769c73ff765fb2af5ee4c6a72da0f99165f0ba",
      "parents": [
        "e709d94a2939c3374097299fbf300c398772b443"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 18:24:19 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 18:24:19 2011 -0700"
      },
      "message": "KeyStore: allow system user to get secrets from keystore.\n\nChange-Id: I9cb41344c17fb33e6614a45d46368a9c43e3dce7\n"
    },
    {
      "commit": "ce4b51d3bdaff4f52c4c93c13d8d9dfb6c7bc781",
      "tree": "4b7ff964b91b9326f9432e198f45ab5f6d0c4cc7",
      "parents": [
        "50f31b8381a9180c59f2410911542e41f87d7dbe"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 23 00:58:19 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 23 02:10:23 2011 -0700"
      },
      "message": "Reinitialize KeyStore::mMasterKey after unlock (and add test-keystore)\n\nBug: 4599735\n\nChange-Id: Iee38a2e2929c45b6405214c9012819da09b273af\n"
    },
    {
      "commit": "804f499fda954080f69c0ae93512f129bb0cfaab",
      "tree": "1e0d1bb289853294e4b3fe09d98b069ee8830af5",
      "parents": [
        "4173e4e251bafe10de318317394219af30a019df"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 02 16:21:55 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 02 16:24:45 2011 -0700"
      },
      "message": "KeyStore.reset changes\n\nrestore keystore reset behavior of removing master key.\notherwise after reboot keystore has is LOCKED and not UNINITIALIZED\n\tcmds/keystore/keystore.cpp\n\nwhen removing password, reset the keystore, so it doesn\u0027t remain\nlocked with a now bogus password.\n\n\tcore/java/com/android/internal/widget/LockPatternUtils.java\n\nChange-Id: If5e0bb50b42599e9ca27a8b91d6cec12528419a1\n"
    },
    {
      "commit": "01373772896c42301db9596a91ce9518a046ef9f",
      "tree": "16daadef0581fb33478b80124a00ce59fcc7ff93",
      "parents": [
        "11d8ad4c5587c5cf912455a22b1fded9d545dde5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 31 01:00:15 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 01 14:29:59 2011 -0700"
      },
      "message": "Integrating keystore with keyguard (Part 1 of 4)\n\nSummary:\n\nframeworks/base\n  keystore rewrite\n  keyguard integration with keystore on keyguard entry or keyguard change\n  KeyStore API simplification\n\npackages/apps/Settings\n  Removed com.android.credentials.SET_PASSWORD intent support\n  Added keyguard requirement for keystore use\n\npackages/apps/CertInstaller\n  Tracking KeyStore API changes\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\npackages/apps/KeyChain\n  Tracking KeyStore API changes\n\nDetails:\n\nframeworks/base\n\n   Move keystore from C to C++ while rewriting password\n   implementation. Removed global variables. Added many comments.\n\n\tcmds/keystore/Android.mk\n\tcmds/keystore/keystore.h\n\tcmds/keystore/keystore.c \u003d\u003e cmds/keystore/keystore.cpp\n\tcmds/keystore/keystore_cli.c \u003d\u003e cmds/keystore/keystore_cli.cpp\n\n   Changed saveLockPattern and saveLockPassword to notify the keystore\n   on changes so that the keystore master key can be reencrypted when\n   the keyguard changes.\n\n\tcore/java/com/android/internal/widget/LockPatternUtils.java\n\n   Changed unlock screens to pass values for keystore unlock or initialization\n\n\tpolicy/src/com/android/internal/policy/impl/PasswordUnlockScreen.java\n\tpolicy/src/com/android/internal/policy/impl/PatternUnlockScreen.java\n\n   KeyStore API changes\n   - renamed test() to state(), which now return a State enum\n   - made APIs with byte[] key arguments private\n   - added new KeyStore.isEmpty used to determine if a keyguard is required\n\n\tkeystore/java/android/security/KeyStore.java\n\n   In addition to tracking KeyStore API changes, added new testIsEmpty\n   and improved some existing tests to validate expect values.\n\n\tkeystore/tests/src/android/security/KeyStoreTest.java\n\npackages/apps/Settings\n\n    Removing com.android.credentials.SET_PASSWORD intent with the\n    removal of the ability to set an explicit keystore password now\n    that the keyguard value is used. Changed to ensure keyguard is\n    enabled for keystore install or unlock. Cleaned up interwoven\n    dialog handing into discrete dialog helper classes.\n\n\tAndroidManifest.xml\n\tsrc/com/android/settings/CredentialStorage.java\n\n    Remove layout for entering new password\n\n\tres/layout/credentials_dialog.xml\n\n    Remove enable credentials checkbox\n\n\tres/xml/security_settings_misc.xml\n\tsrc/com/android/settings/SecuritySettings.java\n\n    Added ability to specify minimum quality key to ChooseLockGeneric\n    Activity. Used by CredentialStorage, but could also be used by\n    CryptKeeperSettings. Changed ChooseLockGeneric to understand\n    minimum quality for keystore in addition to DPM and device\n    encryption.\n\n\tsrc/com/android/settings/ChooseLockGeneric.java\n\n    Changed to use getActivePasswordQuality from\n    getKeyguardStoredPasswordQuality based on experience in\n    CredentialStorage. Removed bogus class javadoc.\n\n\tsrc/com/android/settings/CryptKeeperSettings.java\n\n    Tracking KeyStore API changes\n\n\tsrc/com/android/settings/vpn/VpnSettings.java\n\tsrc/com/android/settings/wifi/WifiSettings.java\n\n   Removing now unused string resources\n\n\tres/values-af/strings.xml\n\tres/values-am/strings.xml\n\tres/values-ar/strings.xml\n\tres/values-bg/strings.xml\n\tres/values-ca/strings.xml\n\tres/values-cs/strings.xml\n\tres/values-da/strings.xml\n\tres/values-de/strings.xml\n\tres/values-el/strings.xml\n\tres/values-en-rGB/strings.xml\n\tres/values-es-rUS/strings.xml\n\tres/values-es/strings.xml\n\tres/values-fa/strings.xml\n\tres/values-fi/strings.xml\n\tres/values-fr/strings.xml\n\tres/values-hr/strings.xml\n\tres/values-hu/strings.xml\n\tres/values-in/strings.xml\n\tres/values-it/strings.xml\n\tres/values-iw/strings.xml\n\tres/values-ja/strings.xml\n\tres/values-ko/strings.xml\n\tres/values-lt/strings.xml\n\tres/values-lv/strings.xml\n\tres/values-ms/strings.xml\n\tres/values-nb/strings.xml\n\tres/values-nl/strings.xml\n\tres/values-pl/strings.xml\n\tres/values-pt-rPT/strings.xml\n\tres/values-pt/strings.xml\n\tres/values-rm/strings.xml\n\tres/values-ro/strings.xml\n\tres/values-ru/strings.xml\n\tres/values-sk/strings.xml\n\tres/values-sl/strings.xml\n\tres/values-sr/strings.xml\n\tres/values-sv/strings.xml\n\tres/values-sw/strings.xml\n\tres/values-th/strings.xml\n\tres/values-tl/strings.xml\n\tres/values-tr/strings.xml\n\tres/values-uk/strings.xml\n\tres/values-vi/strings.xml\n\tres/values-zh-rCN/strings.xml\n\tres/values-zh-rTW/strings.xml\n\tres/values-zu/strings.xml\n\tres/values/strings.xml\n\npackages/apps/CertInstaller\n\n  Tracking KeyStore API changes\n\tsrc/com/android/certinstaller/CertInstaller.java\n\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\tsrc/com/android/certinstaller/CredentialHelper.java\n\npackages/apps/KeyChain\n\n  Tracking KeyStore API changes\n\tsrc/com/android/keychain/KeyChainActivity.java\n\tsrc/com/android/keychain/KeyChainService.java\n\tsupport/src/com/android/keychain/tests/support/IKeyChainServiceTestSupport.aidl\n\tsupport/src/com/android/keychain/tests/support/KeyChainServiceTestSupport.java\n\ttests/src/com/android/keychain/tests/KeyChainServiceTest.java\n\nChange-Id: Ic141fb5d4b43d12fe62cb1e29c7cbd891b4be35d\n"
    },
    {
      "commit": "95e24e04e002c1e3d1aea0161df1cee2b33bc47c",
      "tree": "a9b7417471d2085deb4f046585c0c4cad5c65732",
      "parents": [
        "ec3b06335dd39e2799c191a507782b06ec71a141"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 16 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 24 12:01:25 2011 -0700"
      },
      "message": "Support wrapping app processes to inject debug instrumentation.\nBug: 4437846\n\nChange-Id: I4552501c693716b14714afb5c5248edaca9547ab\n"
    },
    {
      "commit": "ca1feb405e1342efd3de2e573f7abd4931dcc56e",
      "tree": "4f5c5b2b486816c04b55a84854b83edc6b5598f6",
      "parents": [
        "4a6f0f242701470ce0bc128492ed98b4a2285c45"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 15:39:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 13 16:43:15 2011 -0700"
      },
      "message": "Replace a custom AndroidRuntime::findClass with a more targeted fix.\n\nThis seems simpler and more contained, and I think the comment explaining\nwhy hoop-jumping is necessary is a bit clearer now.\n\nChange-Id: Ief4afd7cbb42188ed835fce23e497520bdb753a8\n"
    },
    {
      "commit": "4d51522f5f16580a95691cc604a663a07786127d",
      "tree": "e5cbd17b0cddb02ba9057b05f4d828ba3bbeb559",
      "parents": [
        "4a0fd7cd3b899a48f8b087e8efb84134801205e1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 08 13:44:08 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Apr 08 14:06:39 2011 -0700"
      },
      "message": "Add keychain user with special keystore access permissions\n\nChange-Id: I02fe5171add62c5cd9f57b01bc137f3bc1cb3a69\n"
    },
    {
      "commit": "ae17a37d2d99f1ddc383893be33be38e1fa0b53e",
      "tree": "230d39e529e633878cba46b6788dd663e1070486",
      "parents": [
        "670a23f493d70ac3eb3e5c37467d83ab016176b2"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 01:27:34 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 01:42:55 2010 +0800"
      },
      "message": "KeyStore: Update the parameters of generating master keys.\n\nTo improve the security, the parameters to generate the master key has\nbeen changed. Special cares has been taken to prevent from permanent\ndamages of the existing data during the transition process.\n\nChange-Id: I0c93f3de28a9fcd314932675ccfb65a7f11fa3ff\n"
    },
    {
      "commit": "857edec1a25fb112938ff1b012dbe78844db0320",
      "tree": "0071724735e6f69f4aaa824d4deb82060d88fdc0",
      "parents": [
        "18fc21daf5cad44d8dcae677cc1802a9fd166eeb"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 17:28:01 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 17:28:01 2010 +0800"
      },
      "message": "KeyStore: Initialize IV correctly.\n\nChange-Id: Idbf207dfcc11b92e606cbf4fd3732ed7a8aa3416\n"
    },
    {
      "commit": "1c2eccfac3c10a0ec8f3ffc5e22b9294da0a9b67",
      "tree": "8b4447b587daff0b237d965ed349675d0aeae8c5",
      "parents": [
        "e88b133a3bcc1129ad1bd2e097788848d97d6b71"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 15:17:58 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 15:17:58 2010 +0800"
      },
      "message": "KeyStore: Fix the return value when send() or recv() has an error.\n\nChange-Id: I20a63c76bd29b1a9f8959a6c4fe5a5b8a9a971b4\n"
    },
    {
      "commit": "a1e6bc864fb821c1b470b7aad9b75c441f54eeb4",
      "tree": "2f88b2cf7e3b5005942093c6139e6e427e1abfda",
      "parents": [
        "ada17246d300f7ab9f57a7adfec4f750f209226c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:41:18 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:43:19 2010 -0700"
      },
      "message": "added BinderService\u003c\u003e template to help creating native binder services\n\nChange-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe\n"
    },
    {
      "commit": "81bac09fa6b01dd1495644d9c825c3666762fced",
      "tree": "346e826932eef1b4402dfa98796075e63d3c90e8",
      "parents": [
        "e1ea0811de760256cee3b1ffca227251e1cf52c5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    },
    {
      "commit": "6efed6c20ea6028c972acc3936d421fef646f815",
      "tree": "0d121d311a94000b66f0c0d9281af2bd0a557b5f",
      "parents": [
        "ab02873e8f4e235b0db800521dd0c969ed38c0b9"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "message": "keystore: rephrase the comment to make the usage more clear.\n\nChange-Id: I529ca7ed443060089c95fe96dd230288be4b6c96\n"
    },
    {
      "commit": "5bf4691382de5bdb2a212fefda9d6c99086bb5ec",
      "tree": "ac4066fd4b8a7e45d6effbdf6b52de108dbea584",
      "parents": [
        "ca2dc3c8048eb9af2abfa5ee94e9eb370e1db17b",
        "e3bc02347197a49aa061084073bde9fbea90cb80"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "message": "Merge \"keystore: add AID_ROOT into the user table.\""
    },
    {
      "commit": "e3bc02347197a49aa061084073bde9fbea90cb80",
      "tree": "cf33c9b0c85e98c1688ee40f78c9387298f1f119",
      "parents": [
        "eb8e5e45f83519277aecb49556a39e4970cc469a"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:41:32 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:44:07 2010 +0800"
      },
      "message": "keystore: add AID_ROOT into the user table.\n\nChange-Id: I4b9cf24d75ca79583d7913bbb2c33745a2316cde\n"
    },
    {
      "commit": "0755483539d97cbf4b78e3a756302994d81f09a9",
      "tree": "996e417f3e082f3a63d6c103ad2aac4dacd5cc26",
      "parents": [
        "eb8e5e45f83519277aecb49556a39e4970cc469a"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "message": "keystore: allow \u0027\\0\u0027s in keys and add guards for cplusplus.\n\nChange-Id: I0af6ed7c5d51ce4ca39cb837e475942800cf6e2d\n"
    },
    {
      "commit": "4cb8ae291ea00f0f0143818fe225be47444b8950",
      "tree": "176e45fea1b54c1dcfb8bda536bad1aea285cf28",
      "parents": [
        "6d3fa2751871fbcee06b6316016f9b07b89c49a0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "message": "Fix simulator build.\n"
    },
    {
      "commit": "b78679e18db941fa0c104d728db128cf9ee21dc7",
      "tree": "8ddb03e837ac7663992df244c637007e69c3269e",
      "parents": [
        "872db948a0366cc4d47cd4cd343f625a206b2eed"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Dec 30 10:38:39 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Dec 30 10:38:39 2009 +0800"
      },
      "message": "keystore: compute the padding in an intuitive way.\n"
    },
    {
      "commit": "ced66258e11cf87277aa2ceaa02903d1c1f132c9",
      "tree": "8f4826f017d53bf9aa84d38c539f77b1ac8a49ee",
      "parents": [
        "cbc7399f773664fee7246fd5113885fa970960b6"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Dec 22 17:02:45 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Dec 22 17:26:42 2009 +0800"
      },
      "message": "keystore: Add paddings before checksumming.\n\nAlso fix a file descriptor leak when file system is nearly full.\n\nBug: 2339184\n"
    },
    {
      "commit": "4424dd7dd5d3a0aea9b1a3375db5d65bc8675bb8",
      "tree": "eef7da401bf461b8cd366bf78c9cb252cabb0f3c",
      "parents": [
        "7b7c3c15154f95e693981f863f563fba41a7b993"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:35:26 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:35:26 2009 +0800"
      },
      "message": "keystore: remove old implementation and test.\n\nThe new tests will be implemented in java.\n"
    },
    {
      "commit": "1cdc2a4b810605ea20306102d99ebb5c9cabc6fb",
      "tree": "712b50aac497a9e7ace77d635742d39fa9fe7c5d",
      "parents": [
        "4654d3143224ee8858f6ef37a8165047dfb17bff"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 02:57:52 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 02:57:52 2009 +0800"
      },
      "message": "keystore: rename scan() to saw().\n"
    },
    {
      "commit": "c5dbc5e98ab8342d04f85c051c545c0980f5d98b",
      "tree": "fd7de16d7a728837eb2bb931f755f7c2e71381c7",
      "parents": [
        "15b047cfb2146e37c76df303b4a5720009ec0aed"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 00:43:13 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 00:43:13 2009 +0800"
      },
      "message": "keystore: exclude builds for simulator.\n"
    },
    {
      "commit": "dd2a71eebcc55de9fc6e21e2f1335c1c2fb68257",
      "tree": "2c61f98e5d883ed298cd2152088e2bcf35d96d16",
      "parents": [
        "2f3b2a5aa698c82313551d59f9237a6a7849c300"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Sep 20 10:15:46 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Sep 21 11:36:33 2009 +0800"
      },
      "message": "keystore: enable delete(), scan(), exist() when keystore is locked.\n\nAlso check end-of-file explicitly.\n"
    },
    {
      "commit": "2f3b2a5aa698c82313551d59f9237a6a7849c300",
      "tree": "22d114da68d5066b766ea736e09acbf53edc5442",
      "parents": [
        "b3f93c06cff31f9b1b83ba2c4fc5ae7916754e59"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 17:23:53 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 17:23:53 2009 +0800"
      },
      "message": "keystore: switch to multi-user version.\n"
    },
    {
      "commit": "4cff21f21b583c9994b250154702370c84ea9c60",
      "tree": "32cf290ce7b5f0e1137d19bff8dd2c7e0e451080",
      "parents": [
        "817cfefe109db824804d2e9701c9c553edf5103b"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 10:15:37 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 11:49:55 2009 +0800"
      },
      "message": "keystore: add multi-user support.\n\nChange-Id: I60268261110934a1d60efa341ff530f94415724f\n"
    },
    {
      "commit": "408c5f2c9846780f05c2a3b3c837fecd5f5c74a6",
      "tree": "a29ed8e8f6665a11b07da127aa25c527f2dd5cd5",
      "parents": [
        "5ec064cfce1abbf51dcf1eb8256a66af5aa442f7"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 16 15:43:15 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 17 12:17:29 2009 +0800"
      },
      "message": "Fix a minor bug in is_alnum_string()...\n\nand remove some verbose logging\n"
    },
    {
      "commit": "b2de5bd4dafa0c8a494a654210298d2be8bb04f8",
      "tree": "bee0f90ddf3b16babca025dd93676509b93aeff6",
      "parents": [
        "63a85fc420537d6bf2b8717d35c578806056b9e7"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Sep 11 18:34:28 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Sep 11 19:30:13 2009 +0800"
      },
      "message": "Add tests and misc fixes on keystore.\n\n* Refactor netkeystore.c to make client and server code testable.\n* Add a client test for setting new passwd and changing passwd.\n* Exclude \".\" and \"..\" from reset_keystore().\n* Change ServerCommand.executeCommand() to accept variable length of\n  arguments and add convert() to marshalling the args to bytes.\n* Keystore.java is revised accordingly.\n"
    },
    {
      "commit": "2a58b6dbf07677e9875ba2306bc118c3eb9aebc6",
      "tree": "ac106bb4e54837089fe1632a8041f96ace90317c",
      "parents": [
        "20ef5001d7e92100e636ecab71799cfd1a07f7b0"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 08 03:52:45 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 09 15:00:43 2009 +0800"
      },
      "message": "Replace the delimiter whitespace with \u0027\\0\u0027.\n\n+ Use \u0027\\0\u0027 as the delimiter.\n+ Allow whitespace character for keystore password.\n\nIn previous implementation, we use space as the delimiter. That\nwill stop user from using passphrase with whitespace character.\n"
    },
    {
      "commit": "74c332f18412bcc9516f85591900677c40b45475",
      "tree": "5c65acc721b611604684f8370c05c8d00312b1ee",
      "parents": [
        "c1f2b9cd6f5be1096d60724b21417c9379ac19ff"
      ],
      "author": {
        "name": "repo sync",
        "email": "cywang@google.com",
        "time": "Wed Aug 05 18:06:27 2009 +0800"
      },
      "committer": {
        "name": "repo sync",
        "email": "cywang@google.com",
        "time": "Mon Aug 10 16:13:00 2009 +0800"
      },
      "message": "Fix network order for marshalling in keystore interface.\n\nThis will fix the endian issue for heterogeneous architectures in keystore marshalling interface.\n"
    },
    {
      "commit": "5e2ae8dca59cc5cad4c35b67bdf4d8bbfd240a53",
      "tree": "92f2180e44054e5d19f7be7b934fb7e38fb49515",
      "parents": [
        "aef6a231f7fe4ab4afefb2a973743953c6ccd9ca",
        "23c95b3b3277260d7ada14637d9da309695c6c40"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 31 20:18:23 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 31 20:18:23 2009 -0700"
      },
      "message": "am b86bad94: Merge change 9438 into donut\n\nMerge commit \u0027b86bad9493a331a09dd765bc6e725c0aec969ff6\u0027\n\n* commit \u0027b86bad9493a331a09dd765bc6e725c0aec969ff6\u0027:\n  Change some log.i to log.d.\n"
    },
    {
      "commit": "23c95b3b3277260d7ada14637d9da309695c6c40",
      "tree": "e773ce8f5805b1a8b90bb3ef17679f12241d8398",
      "parents": [
        "f8c8a652cda98094f8beb6ffbc7852b2ded25a86",
        "6cdee5801063c9c332193a186d973a4993c1dd31"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 31 20:15:15 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 31 20:15:15 2009 -0700"
      },
      "message": "Merge change 9438 into donut\n\n* changes:\n  Change some log.i to log.d.\n"
    },
    {
      "commit": "6cdee5801063c9c332193a186d973a4993c1dd31",
      "tree": "e36a446ca5e1fcd70b4dfb44ef0c095b4f8abe30",
      "parents": [
        "907a880fa24500aa4e3476f99cfabf4343236435"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Aug 01 10:11:46 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Aug 01 10:11:46 2009 +0800"
      },
      "message": "Change some log.i to log.d.\n"
    },
    {
      "commit": "c7ceaf245e570fd2a16dc31452543d443638e7ca",
      "tree": "261936207895430ad731cb988029caa3785a2f2a",
      "parents": [
        "e2d245c287816a24830c2cee5a77e15bb3f992f5",
        "ccf407f7acf7c12a59c9f053bcac0840371c9848"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 30 16:05:39 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 16:05:39 2009 -0700"
      },
      "message": "am f4692640: Add unit tests for netkeystore.\n\nMerge commit \u0027f4692640a8c40b8bbba1f00841c2f8fbe7b28d7a\u0027\n\n* commit \u0027f4692640a8c40b8bbba1f00841c2f8fbe7b28d7a\u0027:\n  Add unit tests for netkeystore.\n"
    },
    {
      "commit": "ccf407f7acf7c12a59c9f053bcac0840371c9848",
      "tree": "490d8a65f6aea654ddf38c589350759ed422cfcf",
      "parents": [
        "e84bee9bbfdf394f20efcb383a431ae44100c6d4"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 30 12:31:08 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 30 16:37:48 2009 +0800"
      },
      "message": "Add unit tests for netkeystore.\n\n+ some boundary checks.\n"
    },
    {
      "commit": "9b29df2bc751700639079e1a0b53d825de1195d6",
      "tree": "4259ca62683f453616d39ba4b65bfa2d32ea1868",
      "parents": [
        "85fda3c81d822b0e3e61884cfeea2214b35c21a8",
        "11e9f3dd260935cac33a9a6fa45aafa9d87d495a"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 24 12:52:33 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 24 12:52:33 2009 -0700"
      },
      "message": "am 75b68163: Add memcpy and strcpy boundary check.\n\nMerge commit \u002775b681639d3945d22d4ab90856a65a05405d2538\u0027\n\n* commit \u002775b681639d3945d22d4ab90856a65a05405d2538\u0027:\n  Add memcpy and strcpy boundary check.\n"
    },
    {
      "commit": "11e9f3dd260935cac33a9a6fa45aafa9d87d495a",
      "tree": "79cbba6b7e1d5b9cbb435e246b05fa6a64c75429",
      "parents": [
        "174d638c96aef9eeaf0ee7ae334c8ff9a6b415bf"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 23 07:23:24 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 24 11:24:31 2009 +0800"
      },
      "message": "Add memcpy and strcpy boundary check.\n"
    },
    {
      "commit": "795e8f42c96a654a96ecb9eab3e9036b08676249",
      "tree": "cd32cfe3780d42f77a06ad1d5725dee53f911e02",
      "parents": [
        "da1bafd604a6df0d4d5d6d613ddd106d774ede38",
        "274bd902102291350f55ffb3eff08339929b2384"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 16 17:53:40 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 17:53:40 2009 -0700"
      },
      "message": "am 0d039ba3: Merge change 7508 into donut\n\nMerge commit \u00270d039ba328a59fc81280fbecf68aad2d2cba7234\u0027\n\n* commit \u00270d039ba328a59fc81280fbecf68aad2d2cba7234\u0027:\n  keystore: Fix a compile warning.\n"
    },
    {
      "commit": "23c7adc5e9e27185ca0a69974a8268ec9e86b9b9",
      "tree": "8a37d6dd1a4d4611fc7e26d86cdf4a7d540e3986",
      "parents": [
        "675e4d3db972e621b1785aa7a4b8aeecee7dbbe4"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jul 16 14:45:11 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jul 16 14:45:11 2009 +0800"
      },
      "message": "keystore: Fix a compile warning.\n"
    },
    {
      "commit": "29f5a900dbb7b973d25d4fa97cce032e709384bb",
      "tree": "575d824d21f2944f05b1b59ec614a4afcd2c3f6f",
      "parents": [
        "e439029f8a99217d030f859039e597468381af7f",
        "dea9f552741c86897ca5cd2ee23f48da8c49f4b1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:22:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:22:25 2009 -0700"
      },
      "message": "am 3383df38: Merge change 6198 into donut\n\nMerge commit \u00273383df385e208807b1dc5f2956f82a7f75f65fd8\u0027\n\n* commit \u00273383df385e208807b1dc5f2956f82a7f75f65fd8\u0027:\n  keystore: Provide a generic getter for native components.\n"
    },
    {
      "commit": "e439029f8a99217d030f859039e597468381af7f",
      "tree": "92b76e91b37213cfddd391bb98b950ce858fc765",
      "parents": [
        "e68a938829a6a07c94a60993c57081a5c274f94f",
        "6ac03019e68e6cd8732c5c1670eb71f4840010e2"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Jul 06 11:22:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:22:18 2009 -0700"
      },
      "message": "am 699ca3f2: Add password field for WiFi configuration.\n\nMerge commit \u0027699ca3f2518360ea3250ff5a0e5d39e122c64a91\u0027\n\n* commit \u0027699ca3f2518360ea3250ff5a0e5d39e122c64a91\u0027:\n  Add password field for WiFi configuration.\n"
    },
    {
      "commit": "2659e77bd2add71883bcf6909487d4cceebc8f9a",
      "tree": "79130abe159f4edd70def9f7f246ae20590c0b2c",
      "parents": [
        "a244e8cdc984fdbd2a030f73990e541ae3981d27",
        "57643ce5c6662754898f47ee70c655c74c394ead"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:21:59 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:21:59 2009 -0700"
      },
      "message": "am 24ad29c6: Merge change 6177 into donut\n\nMerge commit \u002724ad29c6dbbf62096bcb41ddb2fa3975720ee625\u0027\n\n* commit \u002724ad29c6dbbf62096bcb41ddb2fa3975720ee625\u0027:\n  Two small checks in keymgmt.\n"
    },
    {
      "commit": "dea9f552741c86897ca5cd2ee23f48da8c49f4b1",
      "tree": "070d966b5d9d70b483c99ea344deafb9c47c76b5",
      "parents": [
        "6ac03019e68e6cd8732c5c1670eb71f4840010e2",
        "5d0ca76229bffd0d3d2e2234033a78cb57e7739c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 00:04:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 00:04:54 2009 -0700"
      },
      "message": "Merge change 6198 into donut\n\n* changes:\n  keystore: Provide a generic getter for native components.\n"
    },
    {
      "commit": "5d0ca76229bffd0d3d2e2234033a78cb57e7739c",
      "tree": "aa4c772b13920667c0b055ca5ada07ec7b9480fb",
      "parents": [
        "928f5052b5f7dfffa2921af769045d85eb483c79"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Jul 06 11:13:25 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Jul 06 14:33:09 2009 +0800"
      },
      "message": "keystore: Provide a generic getter for native components.\n"
    },
    {
      "commit": "6ac03019e68e6cd8732c5c1670eb71f4840010e2",
      "tree": "b35e00833f4fa339ad7160860f09f23cfc8cc9f9",
      "parents": [
        "928f5052b5f7dfffa2921af769045d85eb483c79"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat Jul 04 22:19:51 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sun Jul 05 11:06:01 2009 +0800"
      },
      "message": "Add password field for WiFi configuration.\n\n1. the certtool.h is modified for avoiding the side effect,\n   for saving the configuration with wpa_supplicant.\n2. put the loadLibrary back in CertTool.java\n3. Fix incorrect JNI declarations.\n"
    },
    {
      "commit": "4c6ee740ad3046bb67f3f24a728e48dff86b85b8",
      "tree": "b8b21b45ed35b187e38eb14f8189ce6de9bb66ff",
      "parents": [
        "d9245ddab90be271537f2dc1129beb33766d8e68",
        "0919ff5f14ee21d3cb9d28da3537d0032225fded"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 03 09:08:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 09:08:36 2009 -0700"
      },
      "message": "am 7de4bd9b: Merge change 6045 into donut\n\nMerge commit \u00277de4bd9b40d80fd68fc746efd645e3df7442acea\u0027\n\n* commit \u00277de4bd9b40d80fd68fc746efd645e3df7442acea\u0027:\n  Remove the null-termination for Java string compatibility.\n"
    },
    {
      "commit": "b35262e025997f80f5a34e52a248e1aa9f450521",
      "tree": "ee134c65592e6126f155887f4c779c995df878ca",
      "parents": [
        "0c37fb885e9d2c2accb4ecfcfabf151fce25f103",
        "dca4e5332cd1f3ce13a3c8b1938eee6689f7f410"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 03 08:58:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 03 08:58:31 2009 -0700"
      },
      "message": "am d45dcbec: Merge change 5615 into donut\n\nMerge commit \u0027d45dcbec856710f9478ffc5689e7cdf95d757ab8\u0027\n\n* commit \u0027d45dcbec856710f9478ffc5689e7cdf95d757ab8\u0027:\n  Implement the generic mini-keystore for security.\n"
    },
    {
      "commit": "37b49519cc2bd8c3b907f7bf3f8f5c21f5692103",
      "tree": "e4041395086d5c0aa2d9bd24ad8ee6c2d136f495",
      "parents": [
        "3fca571773ac0ba2f5ee7816f81c9948e04f89db"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 03 12:09:52 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 03 12:14:36 2009 +0800"
      },
      "message": "Two small checks in keymgmt.\n\n1. Enforce the state check in listkey().\n2. Enforce the password length check.\n"
    },
    {
      "commit": "7bd460b1208dcd41969e5928ad3c3680962bedce",
      "tree": "e91284bf414680579b10d8ef95546920cf4ec16a",
      "parents": [
        "dca4e5332cd1f3ce13a3c8b1938eee6689f7f410"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 19:11:11 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 23:08:39 2009 +0800"
      },
      "message": "Remove the null-termination for Java string compatibility.\n\n1. Also change the keyname delimiter in CertTool.java.\n2. Return NOTFOUND if the result.len\u003d\u003d0 in the listKeys().\n3. Define the keystore states in the class Keystore.\n"
    },
    {
      "commit": "c186c66a297ec036b3c3dc2ba43553096a753f3f",
      "tree": "67fb6a498d1adde5cc7ca6be1059cb65ac1a410b",
      "parents": [
        "ce6d17210750258ac990cbd13bfeaf9252cf2bb5"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Jun 29 03:12:56 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 14:08:20 2009 +0800"
      },
      "message": "Implement the generic mini-keystore for security.\n\n1. We will progressively migrate to this implementation.\n2. For richc to have a quick review on the keymgmt part.\n3. Add remove_key and make sure all functions are working.\n4. Add permission check for get operation.\n5. Return the retry count if unlock failed.\n6. Add the reset operation for keystore reset.\n7. Add the putfile shell command for putting the key value from file.\n8. Fix the boundary issue during parsing command.\n9. Use the \u0027 \u0027 as delimiter and reset the reply structure for each request.\n10. Add change password retry count check.\n11. Extract the read_marshal/write_marshal for certtool.h.\n12. Remove the old implementation.\n"
    },
    {
      "commit": "b08e0936d730430e1ff016b79226d9d5c3b84752",
      "tree": "24cd4ec0e04649484b17917e24985d9d24e69741",
      "parents": [
        "f51e6664016f688e90f46830afdbd1c8b700dd80",
        "cc7d4d68e029f5fba977d852076df174db702848"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:38:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 15:38:33 2009 -0700"
      },
      "message": "am 9fbeb7da: Merge change 4337 into donut\n\nMerge commit \u00279fbeb7da1318bf5b65588a759332d74540306c06\u0027\n\n* commit \u00279fbeb7da1318bf5b65588a759332d74540306c06\u0027:\n  Change the keystore APIs.\n"
    },
    {
      "commit": "4c40420cd231b42a38b84577d6731ce8b0fa1269",
      "tree": "1d24eeef47ec6fc3eaa8b44a5c0323c3c44b7634",
      "parents": [
        "b6d1e5b8ece3e79b606d8441edf89419acf38390"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 17 01:29:21 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 17 14:32:05 2009 +0800"
      },
      "message": "Change the keystore APIs.\n\n1. simplify the keypair selection in UI.\n2. add the user certificate and key into the keystore for keygen feature.\n"
    },
    {
      "commit": "1c6ad980173bc2d061cb0c5f15ac814f4ca4c4b5",
      "tree": "6ede54481643208997ae81ddc0a6059b4440f7af",
      "parents": [
        "326737eaa7708fc1a068bdc50a5c94d6b463bfdd",
        "9371ede119ae77a235bcc1daf75f8fe1bff224de"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 11 07:57:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 11 07:57:37 2009 -0700"
      },
      "message": "am db8a6ae6: Merge change 3709 into donut\n\nMerge commit \u0027db8a6ae6bbd8cbb17fb79085ffb9d3fc539fe5c2\u0027\n\n* commit \u0027db8a6ae6bbd8cbb17fb79085ffb9d3fc539fe5c2\u0027:\n  Provide the Keystore feature in the framework.\n"
    },
    {
      "commit": "8fcbada742d8ada3ec14e1625e8e345128e38c20",
      "tree": "8ce85ed2526da348f635d2ae0931d9f3465a6561",
      "parents": [
        "cd2281eea54ae1f99ac1822ef579c62449c7efa9"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 10 18:45:14 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jun 11 17:28:40 2009 +0800"
      },
      "message": "Provide the Keystore feature in the framework.\n\n-- added the keystore library for Java application.\n-- changed the marshalling of the keystore function return.\n"
    },
    {
      "commit": "a0cfd25b4328eb2dbb43561dfca4a166a90e6a04",
      "tree": "510ac3b87aaaf17f006e48dfdb5d713082c3d17d",
      "parents": [
        "cb87ed14a7c380c5485e8a057e5b94124d8ac112",
        "0f1a8ddd82ac67635013d9ae44a9516d1f8ea278"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 09 19:12:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 09 19:12:37 2009 -0700"
      },
      "message": "am 54d63246: Merge change 3427 into donut\n\nMerge commit \u002754d632468c0cd53087d17420d9d383bc29553d36\u0027\n\n* commit \u002754d632468c0cd53087d17420d9d383bc29553d36\u0027:\n  First version of the keystore service.\n"
    },
    {
      "commit": "a92d5dc0f6d3aadbc64a029ecfacca2f19a661e7",
      "tree": "12af6c9bb70c3f732500ea2be64543c69a4fbcc3",
      "parents": [
        "383bce90737871de0b80082eb3a7925528aae754"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Jun 08 16:34:54 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Jun 08 16:34:54 2009 +0800"
      },
      "message": "First version of the keystore service.\n\nThe keystore service is protected by the user \u0027keystore\u0027. Only keystore\nuser/group can access the key content. All users are able to do the\nfollowing commands from shell as well:\n  listcerts\n  listuserkeys\n  installcert\n  removecert\n  installuserkey\n  removeuserkey\n"
    },
    {
      "commit": "e0c322049ab2be291c1fc40f79702543d4e77934",
      "tree": "e3e672f4f4fdd72b465cc0f39fb95c7711814122",
      "parents": [
        "d07f2a523f43051a681683657f7c0da2c49f46a4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "message": "get rid of utils.h\n"
    },
    {
      "commit": "19deced119360320779375aaa8046dcbcbea3c02",
      "tree": "870408c5595613427812fde29784083fcc760e79",
      "parents": [
        "bd22ffd8566c815821c307921963fa98975b4da3"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue May 26 12:05:54 2009 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue May 26 12:06:31 2009 -0700"
      },
      "message": "Fix sim-eng build.\n"
    },
    {
      "commit": "3a253bd4e4f9989c43e840b391a2597fba6cce3d",
      "tree": "714796797a846d57e3885183654a4ea668448161",
      "parents": [
        "5752912e4bbf5696f514438e17fcc4c2610e5c59",
        "454a6255884c0899b1402a0d5f67547e47528739"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 11:26:04 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 22 11:26:04 2009 -0700"
      },
      "message": "am 9681a5e0: Merge change 2230 into donut\n\nMerge commit \u00279681a5e06badbd817342e8f6be4ffbe9102c1e98\u0027\n\n* commit \u00279681a5e06badbd817342e8f6be4ffbe9102c1e98\u0027:\n  runtime: Add CAP_SYS_NICE to the system server capabilities list so it\n"
    },
    {
      "commit": "a00a0851c31e0ab3ea63fb34cf0f532eb511a1e2",
      "tree": "dd9d0ec18c73fe4055fbdfeb64bbb3cec36fbd33",
      "parents": [
        "1c4b60c2f25189681474b6adf0286c69247e0f21"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 21 15:34:56 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu May 21 15:34:56 2009 -0700"
      },
      "message": "runtime: Add CAP_SYS_NICE to the system server capabilities list so it\ncan (eventually) move arbitrary threads into different cgroups\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "c5b2c0bf8007562536b822eb060fc54a01f8e08b",
      "tree": "da6084f542177972cf72a985b5d2c10330f87de3",
      "parents": [
        "208059f67ed2dd9fa025e07fcb6954d3cb61c79e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "208059f67ed2dd9fa025e07fcb6954d3cb61c79e",
      "tree": "b2fde632a7c9abf4137751ffe779318c0a89bd96",
      "parents": [
        "501c6179e158b2d5bfc67cb8b7180c02ac301f97"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 18 15:08:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:02 2009 -0700"
      },
      "message": "checkpoint: split libutils into libutils + libbinder\n"
    },
    {
      "commit": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "8a7a67538a9977c892389bfcde76a8372aa0b56c",
      "tree": "0782f82f223ddeafa9b08bd2121ded38212f67f7",
      "parents": [
        "276293246ea9cbc0a578a7697cc48930376ec0e9"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
