)]}'
{
  "log": [
    {
      "commit": "7ee87cfcbef114ef50e15f3f6770cee0fe61890a",
      "tree": "5b563506a5bd6f8e1e704c9659eedc43856304a0",
      "parents": [
        "91f1886e14e7fc2b349520d8b5b5777ba5de92f6"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Dec 22 10:12:06 2017 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Dec 22 11:17:15 2017 -0800"
      },
      "message": "Remove all references to FDE enable wipe\n\nBug: 64766105\nTest: FBE boots, forceencrypt boots, set pattern, reboots, encryptable\n      boots and can be encrypted\nChange-Id: I8c6dc0acdc37c3a6f1bea28d5607ed8938a4eb0c\n"
    },
    {
      "commit": "2048a2865cfa1f8c794b94eb044854f130943f9c",
      "tree": "e2e1352ee2c8e34eb2d6cbc9bf2a8d5ac5e1329b",
      "parents": [
        "2d64b91823ee820204330d7f9daa4d79c41c436c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jun 15 09:59:43 2017 -0600"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Fri Oct 27 15:14:56 2017 -0700"
      },
      "message": "Test that plaintext can\u0027t be read from disk for encrypted files.\n\nBug: 36029169\nTest: tested by hand on Taimen\nChange-Id: I5717a8630bb2c8d8fe5c343d519c4e59862ecbdf\n"
    },
    {
      "commit": "2d64b91823ee820204330d7f9daa4d79c41c436c",
      "tree": "c01ac64899a391492b288d639cf3cec0ba769971",
      "parents": [
        "26a53888a4efa4a966db189dd0b614f7573b2760"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Fri Oct 27 13:37:24 2017 -0700"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Fri Oct 27 13:37:24 2017 -0700"
      },
      "message": "Improve VDC\u0027s logging on failure.\n\nAlso refactor.\nBug: 36029169\nTest: ensure that a command fails, check logs for failure.\n\nChange-Id: I1dece2982f762f4522e17d45b5f04af104b95861\n"
    },
    {
      "commit": "3c3e3605460c54b7dd5733f60bb210d9c9858cad",
      "tree": "9a07604a43360221b53a36d116ae2e274fa9a6f7",
      "parents": [
        "3188805e357197e171b239565f06b95f6a3ca51c"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Sep 27 16:44:33 2017 +0000"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed Sep 27 11:20:01 2017 -0700"
      },
      "message": "Revert \"Revert \"Be more aggressive about obtaining vold service.\"\"\n\nThis reverts commit 5687066dcc819729338df723ea0dc6ed7915e4a2.\n\nReason for revert: ag/2966951 fixes the underlying problem.\n\nBug: 66739076\nBug: 65737446\nTest: reboot-cycle.sh doesn\u0027t show a problem.\nChange-Id: If4b9c5cc39e9e905d2b1e78f091609be641fc22a\n"
    },
    {
      "commit": "5687066dcc819729338df723ea0dc6ed7915e4a2",
      "tree": "c77161549719ac01820330f3f2415c50b0e01519",
      "parents": [
        "4a53a9edb306d292fe9f1d32801bfd4673801b2f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Mon Sep 25 23:21:24 2017 +0000"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Mon Sep 25 23:21:24 2017 +0000"
      },
      "message": "Revert \"Be more aggressive about obtaining vold service.\"\n\nThis reverts commit 4a53a9edb306d292fe9f1d32801bfd4673801b2f.\n\nChange-Id: Ie4058488226bf53b78063dd3feb011dbd0167d1e\n"
    },
    {
      "commit": "4a53a9edb306d292fe9f1d32801bfd4673801b2f",
      "tree": "72324c4fd37067454fedb96a682bc52ce56cd296",
      "parents": [
        "49672b9351eb7e7f2bc655320aabd2fb6bd4c9d7"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 21 18:20:45 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 21 18:20:59 2017 -0600"
      },
      "message": "Be more aggressive about obtaining vold service.\n\nvdc is typically invoked very early during boot, where it races with\nvold starting up.  The default getService() implementation waits a\nwhole second between retrying, so write a local getServiceAggressive()\nthat only waits 10ms between attempts.\n\nTest: builds, boots\nBug: 65737446\nChange-Id: I581db3afcf7f81dd7cd9cc84dc03194759861669\n"
    },
    {
      "commit": "49672b9351eb7e7f2bc655320aabd2fb6bd4c9d7",
      "tree": "c77161549719ac01820330f3f2415c50b0e01519",
      "parents": [
        "815b42a2a5c6992ef5e88ce1ee8e7c8fcc2fad29",
        "cbe69fc060d021be972af44904dd76ed1aa2a5a2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@google.com",
        "time": "Tue Sep 19 05:11:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 19 05:11:08 2017 +0000"
      },
      "message": "Merge \"Destroy vold socket interface completely.\""
    },
    {
      "commit": "cbe69fc060d021be972af44904dd76ed1aa2a5a2",
      "tree": "ab55d88f6a2f4ad7986fb3250440ec2860e94b47",
      "parents": [
        "5820b51c22249faaeba4a97bebac278153fdb499"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Sep 15 16:50:28 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 18 16:00:14 2017 -0600"
      },
      "message": "Destroy vold socket interface completely.\n\nLong live Binder.\n\nTest: yes\nBug: 13758960\nChange-Id: If6be379b5a873f1b0c66dd1522b87413ad10fc46\n"
    },
    {
      "commit": "57b1874505cadea1aef7480ba05ed81686b9c259",
      "tree": "a76e2fbea9cea5878ffc61c801cdd77b0d9e085e",
      "parents": [
        "5820b51c22249faaeba4a97bebac278153fdb499"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 18 13:49:51 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 18 13:49:53 2017 -0600"
      },
      "message": "Add \"mountdefaultencrypted\" command to vdc.\n\nIt\u0027s being used by the emulator.\n\nTest: vdc --wait cryptfs mountdefaultencrypted\nBug: 65795120\nChange-Id: I8a5d622e4fa1ef93bb8e22f2665c882b1a152b3d\n"
    },
    {
      "commit": "99f92689de18328cade9f31e55a8a6943d9ce15b",
      "tree": "ef043587bb2899519bb8f95bc17e63e6e848e7b5",
      "parents": [
        "83b559ced41c1be0d7a65ba99e179efd79d8d257"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Sep 13 18:43:44 2017 -0600"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Sep 14 13:57:24 2017 -0600"
      },
      "message": "Move vdc commands over to Binder.\n\nUse nice clean AIDL instead of dirty sockets.\n\nTest: vdc cryptfs init_user0\nBug: 13758960\nChange-Id: Ia9dc2e8e1d23e694f1c299fa16d346b07b516718\n"
    },
    {
      "commit": "f71511ac4199f273744b8e0adf266c6e911918aa",
      "tree": "64e70866d9c4bb86c24861e716e8d129cd63858b",
      "parents": [
        "71fa1068de3f3f7b79d262e487ae90f948c415d6"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Mar 29 16:50:28 2017 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Wed Mar 29 17:06:31 2017 -0700"
      },
      "message": "vdc: use libbase logging and log directly to kmsg on boot\n\nInit is no longer calling vdc with logwrapper, so it must take care of\nlogging to kmsg directly.\n\nTest: observe logging in kmsg on boot and stderr on normal usage\nChange-Id: Ie3e59da433bd154f121ce103dea0c59eb0bab069\n"
    },
    {
      "commit": "47695b29af0467dd8e18f5534e3b62e39326d7e1",
      "tree": "56bf54f3260763ce6d463a7c4958cea789a20908",
      "parents": [
        "f10544df96652ebe457c93a91075da0b3bc6b550"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Feb 01 17:02:29 2016 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Fri Feb 05 13:03:52 2016 -0700"
      },
      "message": "Allow callers to prepare CE/DE user storage.\n\nGive callers the option of preparing CE and/or DE storage.  The\nframework will only prepare CE storage after the CE keys have been\nunlocked for that user.\n\nWhen init is calling enablecrypto, kick off the work in a thread so\nthat we can make other calls back into vold without causing\ndeadlock.  Leaves blocking call intact for framework callers.\n\nClean up \u0027vdc\u0027 tool to send useful transaction numbers, and\nactually watch for the matching result to come back.  This fixes\nrace conditions when there are multiple \u0027vdc\u0027 callers.\n\nAlso add other system and misc directories to match spec.\n\nBug: 25796509\nChange-Id: Ie4f853db6e387916b845d2b5fb92925d743b063d\n"
    },
    {
      "commit": "5c18a6757910d0f2689e99f51b2dc283881178b3",
      "tree": "5186d56e45e2d245080fee480a61d32bd752b3b5",
      "parents": [
        "d095d86705a42186c906db58486575b2d9060de6",
        "d0b4295ccc07d0cd715ade415c8c0d7d6945880e"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Jun 04 16:01:47 2015 -0700"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Jun 04 16:01:47 2015 -0700"
      },
      "message": "Merge commit \u0027d0b4295c\u0027 into manualmerge\n\nChange-Id: I6d7178edebf50663fa9622b539c8101627a84385\n"
    },
    {
      "commit": "d095d86705a42186c906db58486575b2d9060de6",
      "tree": "dcaed4350fb37d3b9da832d03394a71da74f05ab",
      "parents": [
        "bb68c6f57647a572808445ca3852a2b80e9ad91f",
        "0628fa25141261e549f06d1c6f9e9f3d29e2b8f0"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Thu Jun 04 19:13:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 04 19:13:24 2015 +0000"
      },
      "message": "am 0628fa25: Improve boot time\n\n* commit \u00270628fa25141261e549f06d1c6f9e9f3d29e2b8f0\u0027:\n  Improve boot time\n"
    },
    {
      "commit": "fde9cd8c82f2557f9c8c9ac34a2a8f666d43cf0d",
      "tree": "3219aae7e2cc594f03ba60269aca56e16a969045",
      "parents": [
        "4571383cbf711df21d99529448277966e7ffb11e"
      ],
      "author": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed May 06 11:27:44 2015 +0100"
      },
      "committer": {
        "name": "Paul Crowley",
        "email": "paulcrowley@google.com",
        "time": "Wed May 06 12:41:10 2015 +0100"
      },
      "message": "Make vdc a C++ file as a base for further improvement.\n\nBug: 19704432\nChange-Id: I784e8a91d3b0f4d6cd0dc668e9e55d0290f768e8\n"
    },
    {
      "commit": "2152266deb82f96ef5a22d3a56a76bf6177e1e04",
      "tree": "c51cb7fca2edce2a44ebdbcff50d49715526937c",
      "parents": [
        "f3b2637e0611ac7953c18ce39a47b7c408a70160"
      ],
      "author": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Fri Feb 06 09:24:14 2015 +0100"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Fri Feb 06 09:24:14 2015 +0100"
      },
      "message": "Change strncpy to strlcpy\n\nChange all function calls to strncpy to strlcpy.\n\nChange-Id: I2bbefb7829d715847c5b26f4b9f0faddbd4c89d0\n"
    },
    {
      "commit": "9c7a5826ec6d1b8d056abe8fb21d95c9b945497a",
      "tree": "591cb28b13f0bbcf9396bffb360eea5c8ae7919a",
      "parents": [
        "a96d9c9b3861506003930d4dbdc669173bf9a50e",
        "ea256025669f4a5dd8c59e4c70ec7154a198be48"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 20:33:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 05 20:33:07 2014 +0000"
      },
      "message": "am ea256025: am 45faade2: Merge \"Replaces uses of index() with strchr().\"\n\n* commit \u0027ea256025669f4a5dd8c59e4c70ec7154a198be48\u0027:\n  Replaces uses of index() with strchr().\n"
    },
    {
      "commit": "dd58c430b38aebae70f3b26707894ee52b792126",
      "tree": "08a26372188278ce8b3d2e9e8680b66af74bf66a",
      "parents": [
        "1881395b696017dfb40a01e718cc8dc2ea7a38e9"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 11:44:40 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Jun 05 11:44:40 2014 -0700"
      },
      "message": "Replaces uses of index() with strchr().\n\nBionic is removing index() because it was removed from POSIX 2008.\n\nChange-Id: I704fb8962ff2c08b8f12245d2db2118d410826b0\n"
    },
    {
      "commit": "5e900ac898bd9d96d6fded95c0b9c080dda54e8f",
      "tree": "1efe771c091ca1be68230598fb95afb24877d5d6",
      "parents": [
        "efec3f2927c45979db2b78e7a6228d08aafb5e42"
      ],
      "author": {
        "name": "Mohamad Ayyash",
        "email": "mkayyash@google.com",
        "time": "Tue Apr 15 18:08:05 2014 -0700"
      },
      "committer": {
        "name": "Mohamad Ayyash",
        "email": "mkayyash@google.com",
        "time": "Tue Apr 15 18:08:05 2014 -0700"
      },
      "message": "vdc: fix segfault\n\nChange-Id: I1a35fe15b311d3f5203c5bc02d3db87e942cf554\n"
    },
    {
      "commit": "13486033575e6e4affccbb3dd201515d79f6f44b",
      "tree": "0faa3e90bf2321149efbf333fbcd89a040964b11",
      "parents": [
        "931f15d050d268619c3c9103b080009435267d69"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Mon Feb 03 13:28:11 2014 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Fri Feb 14 09:34:44 2014 -0800"
      },
      "message": "Enable auto-encrypt drive at startup\n\nModify enablecrypto command to make the password optional. When it is\nnot there, default encrypt the device.\n\nRemove a warning by making at least some parts of this file const-correct.\n\nBug: 11985952\nChange-Id: Ie27da4c4072386d9d6519d97ff46c6dc4ed188dc\n"
    },
    {
      "commit": "f4faa575c9fc20a8a8e133d6098865b5ce3a7ed2",
      "tree": "afa979a864d97dfa4acfcaf092a7467dcc328a16",
      "parents": [
        "3e971277db0d87652af5622c989233e7159ab909"
      ],
      "author": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Wed Jan 29 13:31:03 2014 -0800"
      },
      "committer": {
        "name": "Paul Lawrence",
        "email": "paullawrence@google.com",
        "time": "Wed Feb 12 14:54:40 2014 -0800"
      },
      "message": "Support default, pattern, pin and password encryption types\n\nStore encryption type in crypto footer, and provide functions to\nmanipulate it. Add mount_default_encrypted command to vdc to allow\nmounting of default encrypted volumes at boot time.\n\nBug: 8769627\nChange-Id: Ie41848f258e128b48b579e09789abfa24c95e2b2\n"
    },
    {
      "commit": "7929deb206d8c04801deb4a26232f83a55e6fd32",
      "tree": "e66444b56fbdd1b2fdde1c1663df445d715bf0ba",
      "parents": [
        "b1596afa59c7108cc6ce23bab54a1bc41961806a"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Sun Feb 10 22:57:14 2013 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@android-x86.org",
        "time": "Sun Feb 10 23:34:36 2013 +0800"
      },
      "message": "Fix compiling warnings\n\nThe patch removes the following warnings:\n\nsystem/vold/vdc.c: In function \u0027do_cmd\u0027:\nsystem/vold/vdc.c:71:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]\n[...]\n\nIn file included from system/vold/Fat.cpp:34:0:\nbionic/libc/kernel/common/linux/fs.h:109:0: warning: \"MS_RMT_MASK\" redefined [enabled by default]\nIn file included from system/vold/Fat.cpp:31:0:\nbionic/libc/include/sys/mount.h:64:0: note: this is the location of the previous definition\n[...]\n\nChange-Id: I1e950dcec87f8bae0cec61a1611126b3abc0c90e\n"
    },
    {
      "commit": "d4b3661cae1664ca07025b7f0dacc621de0ed93f",
      "tree": "b47555954ca039db0faf7089cc989f7783f07b26",
      "parents": [
        "e1a458578474954ea38456aacedbaf2ddfd37988"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 09 16:48:48 2012 -0800"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Mar 09 16:48:48 2012 -0800"
      },
      "message": "Fix vdc to add sequence number for NativeConectorDaemon\n\nNativeConnectorDaemon was changed to use an optional sequence number,\nand most services were changed to require it.  Now that vold requires\na sequence number, vdc must provide one.\n\nChange-Id: Ibdff9878faf19eae25525221c80bcb5e5f87cfea\n"
    },
    {
      "commit": "092aa1c585fedd9e169eece41b8a471f1739908a",
      "tree": "079f73d5594e22ecdb3504a261d6baeb60952e28",
      "parents": [
        "b20d54b2309adee8d192942015740735ded975d3"
      ],
      "author": {
        "name": "Peter Bohm",
        "email": "peter.m.bohm@sonyericsson.com",
        "time": "Fri Apr 01 12:35:25 2011 +0200"
      },
      "committer": {
        "name": "Oskar Andero",
        "email": "oskar.andero@sonyericsson.com",
        "time": "Mon Jun 27 10:04:05 2011 +0200"
      },
      "message": "Prevent buffer overflows.\n\nTo eliminate possible buffer overflows some strcpy,\nsprintf and strcat have been changed to strlcpy,\nsnprintf and strlcat.\n\nChange-Id: Ieb9d4b600c894946a6492f8629ff39f2fcc106d3\nSigned-off-by: Oskar Andero \u003coskar.andero@sonyericsson.com\u003e\n"
    },
    {
      "commit": "f1b736bc5605e92e917ab27f5abf3ba839be2270",
      "tree": "6c7eca090ea4e9292ad8d5e7bd157a5c59c17e08",
      "parents": [
        "8f8ba4d0c0a8bcfed22628928843f943638769db"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@android.com",
        "time": "Sat Oct 10 17:22:08 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@android.com",
        "time": "Sat Oct 10 17:57:51 2009 -0700"
      },
      "message": "system: vold2: Initial skeleton for vold2.\n\n  Let there be light.\n\nSigned-off-by: San Mehat \u003csan@android.com\u003e\n"
    }
  ]
}
