)]}'
{
  "log": [
    {
      "commit": "118d1b393067fbc4fbb26af6815a7a4f131f0148",
      "tree": "04485327253ef10ea99e2c31bda23ec21caaa26d",
      "parents": [
        "09117c70f1cc0de77c62d6f7f5bee04e3fc7ef83"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 02 22:30:39 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jul 02 22:30:39 2014 -0700"
      },
      "message": "logd_write: set SOCK_CLOEXEC on socket\n\nSocket file descriptors remain open across exec unless\nSOCK_CLOEXEC is set. Enable this option, to avoid leaking\nfile descriptors.\n\nSee https://android-review.googlesource.com/53736 for a similar\nproblem with the old logging code.\n\nChange-Id: I9e045d2291ae6680044ab86604f3ff2c55b5eaed\n"
    },
    {
      "commit": "2a4d05a4e38b84cf287bb2d2266c07b6f10c9dee",
      "tree": "bb95963902a6a2a6e3c1ae093c3802a17b90f2f8",
      "parents": [
        "5a53ee0502c198fb114bbf7bb34643d9682ba9b8"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jul 01 10:57:16 2014 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Jul 01 12:22:04 2014 -0700"
      },
      "message": "implement LOG_EVENT_STRING\n\nImplement LOG_EVENT_STRING, so that native code can create new\nevent log entries. This is needed to support logging SELinux denials\nto the event log.\n\nChange-Id: I6a269a832bc2f5e5da6c9dbd169ed2f901b49166\n"
    },
    {
      "commit": "59ec765382d800e84662f7b196b5bd053157b71a",
      "tree": "6bcee695e7494794923a40e4a4b3373f47c77311",
      "parents": [
        "e0115dd1302f6156879938dfb8bcc9ac5a43d7a6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 14:32:49 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 05 15:26:22 2014 -0700"
      },
      "message": "Host multilib build of both 32-bit and 64-bit libraries.\n\nChange-Id: I54f91f385b109fc664a1a1f9320affb2a846fef1\n"
    },
    {
      "commit": "90aa3d59a5e4b6d348597f1941bb3ab42b3c1f8e",
      "tree": "325f87d71c80bb6c5c81bb132bea0e087d34499d",
      "parents": [
        "82015d4f127219700992f8800118fd9c388e3c99"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 03 09:29:11 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 03 09:29:11 2014 -0700"
      },
      "message": "liblog: test: Send bionc\u0027s fatal logging to the crash log\n\nBug: 14159417\nChange-Id: Ia2e29ce03d4e2b02919c62be091da37ce4082647\n"
    },
    {
      "commit": "076ba81ce997e408c662be438ac37eb532b72eda",
      "tree": "79f2ddebacf3db77f1d928deb7b57827af11b330",
      "parents": [
        "252b0e2b46e3d5e71a8b5c55928dc9ca62811f0a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu May 29 17:53:41 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jun 02 12:33:57 2014 -0700"
      },
      "message": "liblog: cache getuid() syscall\n\nBUG: 15315766\nChange-Id: I8f889a1c6ede74f2621f1b8ea5fda666c4b9cba2\n"
    },
    {
      "commit": "43232920f398d3673dfc3cd2bd414c361ccb4237",
      "tree": "36d99dab90bacb8de46c4aa3cf5ca9a39c695600",
      "parents": [
        "51e27f955b79846e36097532a725f4b7a3eefef8"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 20 10:38:24 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue May 20 10:51:02 2014 -0700"
      },
      "message": "Address additional warnings found by GCC 4.9.\n\nChange-Id: I8aae6c3e1ccc2294f4db455e1b4f3b4c34a00aaf\n"
    },
    {
      "commit": "a04464adaf5b95ae953f8577632d3cf8aa2c80a3",
      "tree": "c4310ee12b17d98841e3e7cdd819618f8a95c080",
      "parents": [
        "d150618d8d31ca1b56258902c40ad5c38f1c4e31"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 08:50:53 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed May 07 16:56:21 2014 -0700"
      },
      "message": "liblog: set -Werror\n\n- Deal with some -Wunused issues\n- Cleanup UNUSED to __unused transition\n\nChange-Id: Icd33808d4c974625f4fd0a126a90a2b4c90c8314\n"
    },
    {
      "commit": "9f437d71812dd9907571d0cabd061153190ebbb9",
      "tree": "2cd53e02941fb34c4a665643893dc53cc05956f7",
      "parents": [
        "7112e4c7cb9168ddaee418c4ed4b0c54b475f99e"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 07 15:36:05 2014 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed May 07 15:36:05 2014 -0700"
      },
      "message": "Remove unused LOCAL_LDLIBS.\n\nChange-Id: I42aeb7668183e7a06207ee063f6eee4d37d66c6e\n"
    },
    {
      "commit": "26864bf9cbe49892faa3a4ffd7a3cef00fa8850e",
      "tree": "6842be550fea5c84a0bdc37df493077a62021f38",
      "parents": [
        "b52a48affc77232047a599afa3e567c0a8c01b69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 06 20:40:15 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 06 20:40:15 2014 -0700"
      },
      "message": "Switch to the new bionic fatal logging interface.\n\nThis is more general and will work for anyone\u0027s custom logging\ncode, as long as they use ANDROID_LOG_FATAL priority.\n\nChange-Id: Iaf7fc0858fce04f3af407882a58ee5a827d50ddd\n"
    },
    {
      "commit": "5045f575252ce3d25304ba26cec299395c02152c",
      "tree": "bfb7e76cee8253959f9dbaf74edbb83654f33ce3",
      "parents": [
        "c61895ac3a9717dac6b24ce210aab0ccae6747f4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 08:50:53 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 02 14:16:00 2014 -0700"
      },
      "message": "liblog: logcat: Move library print test into gTest\n\nChange-Id: Icd33808d4c974625f4fd0a126a90a2b4c90c8315\n"
    },
    {
      "commit": "d2e3747e70a79406cd74aa3633d52530fb486a99",
      "tree": "735106f7b5a208a370e48d8b8b1951aadf7a06a7",
      "parents": [
        "72031ab8780ddbdfad84ea4a02ba7fe87566ee50"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 25 10:54:53 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 25 10:59:29 2014 -0700"
      },
      "message": "liblog: test bionic libc_logging.cpp\n\nChange-Id: Ia778c43513a28c85ae54e96926ee9ed56717d527\n"
    },
    {
      "commit": "8444eb81b37991ce0fc4ae1d8d79b01688a02426",
      "tree": "c9811ef5483060bee93a90277fa32afa7314c211",
      "parents": [
        "6798914b6fc93d6a9964129b734ec7d7be88d99b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 24 09:43:23 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Apr 24 15:49:57 2014 -0700"
      },
      "message": "logd: liblog: ALOG silently drops excessively long messages\n\nBug: 14280914\nChange-Id: Idddd29784625094e54144953c29f64692a88eee9\n"
    },
    {
      "commit": "6798914b6fc93d6a9964129b734ec7d7be88d99b",
      "tree": "f09651b294f3bea1e8003afca091e699520281bb",
      "parents": [
        "0607e104c2db2a3e115fd9b49ea85cbc03dbcd1f",
        "da6b2e2fd79c9aac12127b2c2f512e9555fdd06d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 24 20:33:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 24 20:33:59 2014 +0000"
      },
      "message": "Merge \"Improve liblog\u0027s fatal logging.\""
    },
    {
      "commit": "da6b2e2fd79c9aac12127b2c2f512e9555fdd06d",
      "tree": "e90e6904a0afcb745a1b58fdcbf2d36541176039",
      "parents": [
        "07fa043341ad057ea79ca973089609965ba6c4f9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 23 14:57:32 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 24 13:28:24 2014 -0700"
      },
      "message": "Improve liblog\u0027s fatal logging.\n\nThis makes LOG_ALWAYS_FATAL and LOG_ALWAYS_FATAL_IF as good as regular\nassert(3).\n\nChange-Id: I0666684d30cae7baf23c64b33d35c1e43f81acf0\n"
    },
    {
      "commit": "696817d3524e2fb8bbbcc2ec3526f4383f789163",
      "tree": "3a27aeefb3bd2c6782c06036e728dbe8ed5c4399",
      "parents": [
        "a67914e4d656b8375cfba17739f9c97e900c8328"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 14:49:28 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 21 17:07:25 2014 -0700"
      },
      "message": "liblog: Statistics truncated to 16384 bytes\n\n- if network read/write broken up, reassemble the pieces.\n- Use a 20ms poll to check if a new fragment has been\n  sent by the other side.\n- fixup logd-unit-tests to take a (simplified) fragment\n  from the liblog changes.\n\nBug: 14164765\nChange-Id: I98ff87888c119e1e8349717646d0f733e8971bc8\n"
    },
    {
      "commit": "99f47a9e7c4374f2bbfc18e4a97aa7848245ea33",
      "tree": "d277c0e181a563c60703ffe8b7121c04e9ed57d2",
      "parents": [
        "26bb9970c463eb1209803d833799f128484864ac"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Apr 07 14:58:08 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 16 15:38:50 2014 -0700"
      },
      "message": "logd: liblog: logcat: debuggerd: Add LOG_ID_CRASH\n\nChange-Id: Iea453764a1a4fc1661f461f10c641c30150e4d20\n"
    },
    {
      "commit": "1bafa52172d430d134c46e0519d0eb53f4a10d5d",
      "tree": "4f409747b7174321d076e30d6923a1c9b5abca7c",
      "parents": [
        "ba419940f75d93ac4aacef695da0570b1591f140"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Fri Apr 11 16:19:30 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Fri Apr 11 16:27:30 2014 -0700"
      },
      "message": "Fix signed vs unsigned comparison.\n\nChange-Id: I4011607858f3a82acc04509c9f795f960496ed69\n"
    },
    {
      "commit": "1c950479393d42d18829d4009dbdb3a7f03acbb7",
      "tree": "1ba86b1f06f7df22e46ed2c022685fd71589d1bc",
      "parents": [
        "223fc42b5e289e882f67c893374ffbef595a6901"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 01 17:19:47 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 02 13:12:04 2014 -0700"
      },
      "message": "logd: liblog: logcat: enable prune features for user\n\n- Enable whitelist, blacklist and logsize tuneables for user\n\nChange-Id: Id0c283844c71c5263a8cfbebf2e550f7ac415858\n"
    },
    {
      "commit": "e644664f1cbc4add3cc56981bab007380859853a",
      "tree": "a0cb45bcf227d85e44726591d1611eaaeb5286d7",
      "parents": [
        "6940bc08e2932ede027a846ee4c2084782be2f4b",
        "8245af1ffd1509d9b7cc391f8ed61b6d19105646"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 26 23:24:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 26 23:24:22 2014 +0000"
      },
      "message": "Merge \"liblog: deal with restart of logd\""
    },
    {
      "commit": "8196be3032674c10571451ef355f6782d41c2329",
      "tree": "c654c083a52e3b32919c9c12fbb5fdcaa638f86f",
      "parents": [
        "c66607a8aa50da898d85a6c94b0bf8b5f172893e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 18 17:10:47 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 26 10:49:46 2014 -0700"
      },
      "message": "liblog: test for LOGGER_ENTRY_MAX_PAYLOAD compliance\n\n- Add max_payload test\n- Add dual_reader test\n- Switch to EXPECT from ASSERT to increase test coverage\n\nBug: 13514601\nChange-Id: I0e1c273e0ec430c0461e424731dbf166f2a3ce1b\n"
    },
    {
      "commit": "8245af1ffd1509d9b7cc391f8ed61b6d19105646",
      "tree": "cdf9c0e29677ca2f30142f0a0fced64f187f69a8",
      "parents": [
        "c66607a8aa50da898d85a6c94b0bf8b5f172893e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Mar 25 13:45:33 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 26 09:20:22 2014 -0700"
      },
      "message": "liblog: deal with restart of logd\n\n- API change, return -errno on failure for log writing\n- ENOTCONN results in a reconnection and a retry of the write\n\nChange-Id: Ib0a90b730edeaa7e3a3c9797e4e1b0c81b6adb0a\n"
    },
    {
      "commit": "b992d0d7d34bed62fd16151a68d60d58cc8003ef",
      "tree": "732d35cc0dd4eff9f99f61261e760595cbb75794",
      "parents": [
        "5ad986ab5690291422f86c03c3fe71a1c50faf40"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 20 16:09:38 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 21 10:37:44 2014 -0700"
      },
      "message": "logd: liblog: Thread IDs missing from logcat -v thread\n\n- stuff caller\u0027s thread id into the packet.\n\nBug: 13568206\nChange-Id: I02d0cdf9b1d9e839ff8969f591db42dfe6e4cc95\n"
    },
    {
      "commit": "8084a53897b424ee751599c36c587f8463759516",
      "tree": "b5541d41ca23d2e987b30f499ed4608480a48d1d",
      "parents": [
        "a0915abd2fb57113bc46e8d8fe5013ca4a9ef6e8"
      ],
      "author": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Mar 17 13:08:31 2014 -0700"
      },
      "committer": {
        "name": "Greg Hackmann",
        "email": "ghackmann@google.com",
        "time": "Mon Mar 17 13:16:27 2014 -0700"
      },
      "message": "liblog: improve errno handling on read failure\n\n1. socket() failures should skip close(), since sock is not an open fd\n2. on other I/O related failures, preserve errno around the close() call\n3. set errno to a meaningful value on check_log_success() failure\n\nChange-Id: I0fb9e726ae5fee2f7b84344aa925e5159d57c360\nSigned-off-by: Greg Hackmann \u003cghackmann@google.com\u003e\n"
    },
    {
      "commit": "5a6b8d15ea7fa8e4facf256f5cdedf2be900ec72",
      "tree": "5306be61c894f9dfba050f8ba6330be5a2abbb66",
      "parents": [
        "8e01210767493ceb8f264c1bef7a635f0aa32222"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 14 14:59:53 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 15 14:16:26 2014 -0700"
      },
      "message": "Fix build some more\n\nMissed one.\n\n(cherry picked from commit f7f080ce62a4a448ef7ac6cc9bddfd55e615710a)\n\nChange-Id: I33bf8bcc651330b9bc434da02c47c29bc0d54369\n"
    },
    {
      "commit": "dc507769b5ee3eeac8d2948ea98f6d53857e9d1a",
      "tree": "d5f2367fe05e5d2e05e41b6cabe6b6a6f800cb8a",
      "parents": [
        "7ad096340fd5170267b12a6bd577e9d30353564f"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 14 14:37:39 2014 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Mar 15 13:57:34 2014 -0700"
      },
      "message": "Fix the build\n\n(cherry-picked from commit 296dc446376e19d2ce995ae7bc886560523eca2d)\n\nChange-Id: I924f4796fbb70a0f45cc23a852e26e634c5b0e0e\n"
    },
    {
      "commit": "c0626fdcaf8e035421939a45c159c0c6a2f2f50a",
      "tree": "2584c96ced86c16b65e691117de31ce65140baa1",
      "parents": [
        "fc204a966f953867367f54bda126a2e7d7d98814"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 14 12:05:57 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 14 12:05:57 2014 -0700"
      },
      "message": "liblog: Build Breakage in sdk(linux)\n\n- Build Breakage in branch: aosp-idea133 @ 1072786\n\nChange-Id: I36da253b69a66977ec568a5f96d38b970c25fe3e\n"
    },
    {
      "commit": "fa3716b2501ccddc8e0cd30f6343692b8deb7639",
      "tree": "cee7ad53c6d2e9d2aa972686ef7ea203c9d75c28",
      "parents": [
        "6ab10a1c17d048e88f929d35293d266b6480f6d6"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 14 16:05:05 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Mar 14 10:23:51 2014 -0700"
      },
      "message": "logd: liblog: logcat: Arbitrary time to tail\n\nChange-Id: I10e8d92c933e31ee11e78d2d1114261a30c4be0e\n"
    },
    {
      "commit": "dfa7a07f5be656cfafdb4e75916bc9dcd9e592e7",
      "tree": "a8e488d706cad455822767ee92ba198acb58f3b7",
      "parents": [
        "64d6fe936253b336049c285369a56cf139bd002f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Feb 11 12:29:31 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 13 14:48:07 2014 -0700"
      },
      "message": "logd: liblog: logcat: Add LogWhiteBlackList\n\n- liblog android_logger_get_log_size and android_logger_get_readable_size\n  adjusted to return long instead of int because of -G flag extending range\n\nNB: ifdef\u0027d only for userdebug and eng builds\n\n- liblog Add android_logger_[sg]et_prune_list and android_logger_set_log_size\n- logcat Add -P, -p and -G flags\n- logd Add LogWhiteBlackList and configurable log size\n\n(cherry picked from commit 18a5432158ad43b8faefe4950b30e760200ce0b4)\n\nChange-Id: I1572338c1b34bd968ad7867857ef708156ec3b6a\n"
    },
    {
      "commit": "34facab86b0fe7ec613de92b46b637f864fb0682",
      "tree": "b2587070fbb968d1e20954dc53d53faad9cca74a",
      "parents": [
        "897d345b1f2672480346e5dc8971a4626f3f1b8b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Feb 06 14:48:50 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Mar 13 14:47:58 2014 -0700"
      },
      "message": "logd: liblog: logcat: Add Statistics\n\n- logd add statistical collection and formatting\n- liblog add android_logger_get_statistics call\n- logcat add -S flag\n- logcat add -b all\n\n(cherry picked from commit 51a29c8dc445e4fb89860561933e54a231e6ffb4)\n\nChange-Id: I521753b1969ecd4590c956aeeb1557d101059d67\n"
    },
    {
      "commit": "99ff9469c5900ca04b259f0edfc0a1f7fd46f3c0",
      "tree": "83c901007736e57584ddea8b414aa39063d5e36e",
      "parents": [
        "5fb1a34af4128bfe7332b02e31b146a82bc2872d"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 12 09:29:06 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 12 13:17:57 2014 -0700"
      },
      "message": "logd: default user space logger\n\nChange-Id: I16825c26f098241376d4014f3a8e93174387dbcf\n"
    },
    {
      "commit": "7e2f83c0bcc3ad8a2840a48be14d302ed79d671c",
      "tree": "e2d2ed4a9a9e218e046cb0796607cca8fc5ed97f",
      "parents": [
        "51ebffd8a5536af09b60950bf7cf6f020c962f8a"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 05 07:41:49 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 05 16:12:28 2014 -0800"
      },
      "message": "logd: liblog: 64-bit issues\n\n- structure packing\n- move towards log_time from struct timespec\n- extend log_time to cover differences between\n  log_time and struct timespec\n\nChange-Id: I106ed0b609917306d170044054b5b32645f2a295\n"
    },
    {
      "commit": "154f4608aac6218af0e25c98b71d0803278c047e",
      "tree": "d324e05b44b362cbc0a95033ad1c06a0438bd523",
      "parents": [
        "1114f1806521b2a6447b7c68934e4f3c29b60cb5"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Feb 20 14:59:07 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Feb 28 13:49:11 2014 -0800"
      },
      "message": "liblog: enable logging to logd.\n\n* Modify liblog to send all messages to the new syslog user\n  space daemon.\n\nOriginal-Change-Id: I0ce439738cd921efb2db4c1d6a289a96bdbc8bc2\nOriginal-Change-Id: If4eb0d09409f7e9be3eb4bb7017073dc7e931ab4\nSigned-off-by: Nick Kralevich \u003cnnk@google.com\u003e\n\n* Add a TARGET_USES_LOGD make flag for BoardConfig.mk to manage\n  whether logd is enabled for use or not.\n* rename syslog to logd to avert confusion with bionic syslog\n* Add fake log support back in\n* prefilter for logging messages from logd\n* Fill in timestamps at logging source\n* update abstract log reader\n* switch from using suffix for id to v3 format\n* log a message when creating devices that a deprecated interface\n  is being utilized.\n\nSigned-off-by: Mark Salyzyn \u003csalyzyn@google.com\u003e\n\n(cherry pick from commit 099e2c1f6f706a8600c1cef74cce9066fc315480)\n\nChange-Id: I47929a5432977a1d7235267a435cec0a7d6bd440\n"
    },
    {
      "commit": "5d9fe779c8ec2705865a23061834ad8cdbee5b82",
      "tree": "92b5a9331b64f97c3201fa0798f57daa10d6fd17",
      "parents": [
        "eaba2bedf529eeb21351c8bf6365107cb6a4e8b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 17:50:35 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 05 18:02:11 2014 -0800"
      },
      "message": "system/core LP64 cleanup.\n\nFixes -Wint-to-pointer and -Wpointer-to-int warnings, plus various -Wformat\nwarnings.\n\nChange-Id: I6c5eea6b4273d82d28b8e5d2925f3e5457511b17\n"
    },
    {
      "commit": "7ddca5adb609c0234485c7eb6957d62dcb06e06a",
      "tree": "ae85bfbc329232ed92c524719c1851aeb39e62e6",
      "parents": [
        "d2acdd82e613b3e1d79a00943ac3bf5fbc14a766"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 13:18:24 2014 -0800"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 13:19:11 2014 -0800"
      },
      "message": "Fix code style, put unused in the end\n\nChange-Id: I7315b35049924d5067203a432584b8f29e5a1391\n"
    },
    {
      "commit": "d2acdd82e613b3e1d79a00943ac3bf5fbc14a766",
      "tree": "d7f0ff36ad86281f3fa4eb36978658711e7c2296",
      "parents": [
        "12db3eb6db3b80011043e404530012612a1d0fbf",
        "44b99c22af84331068935a9bc3e807165a88237c"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 28 21:09:37 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 28 21:09:37 2014 +0000"
      },
      "message": "Merge changes I70ab37d5,I716f89c0,I34c96adf,I77650923,I35b0d1ee, ...\n\n* changes:\n  libsysutils: SocketListener export release\n  libsysutils: Add iovec/runOnEachSocket\n  liblog: support struct logger_event_v2 format\n  liblog: update timestamp on NOTICE file\n  libcutils: resolve warning in iosched_policy.c\n  liblog: Add const pedantics\n  logcat: Add -T flag (-t w/o assumption of -d)\n  logcat: Add logcat test suite\n  liblog: Add cpu utilization test\n  liblog: Add liblog test suite\n  debuggerd: Support newline split in log messages\n  liblog: deprecate export LOGGER ioctl definitions\n  liblog: deprecate export of LOGGER_LOG_* defines\n  liblog: Add README\n  liblog: resolve build warning messages\n  liblog: high CPU usage from logcat\n  liblog: fix build again\n  liblog: drop use of sys/cdefs.h\n  liblog: git_master@964770 build problem\n  logcat: Incorporate liblog reading API\n  debuggerd: Incorporate liblog reading API\n  liblog: Interface to support abstracting log read\n  adb: deprecate legacy log service interface\n  adb: regression from Move list.c to inlines\n  liblog: whitespace cleanup\n  libcutils: bug str_parms.c:str_parms_get_float().\n  libcutils: UNUSED argument warnings\n  libsysutils: Get rid of warnings\n  libcutils: Move list.c to inlines on list.h\n"
    },
    {
      "commit": "b5a9890f900a5e2b53e91e6d63f3ade23240f90d",
      "tree": "080b5581e8ca5343b0bd0a3f7dac575cc5f941fd",
      "parents": [
        "6ddabb7a1cc3080ae773acb045f69b5e6afee87a"
      ],
      "author": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 11:26:56 2014 -0800"
      },
      "committer": {
        "name": "Kristian Monsen",
        "email": "kristianm@google.com",
        "time": "Tue Jan 28 11:28:32 2014 -0800"
      },
      "message": "Fixes some warnings\n\n- Implicit decleared function\n- Unused variable\n\nChange-Id: Ia701e66682cb6788f0716a2ef7556ed07227f78f\n"
    },
    {
      "commit": "40b21558e52e9245929495c5344443276e5d87c1",
      "tree": "cabe4a625f6e09caea68cdc0af31a57e1d55576c",
      "parents": [
        "e7ff525a7e8c2109439260c2ac898fc3cc17e011"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Dec 18 12:59:01 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:21:29 2014 -0800"
      },
      "message": "liblog: support struct logger_event_v2 format\n\n(cherry picked from commit c176e14ce3fd28432e2eaca7bc7a60046dd8be40)\n\nChange-Id: I34c96adffab3478dae8f5a2597a840caad5092cc\n"
    },
    {
      "commit": "e7ff525a7e8c2109439260c2ac898fc3cc17e011",
      "tree": "53cf6eecefde8c64d879463d31648360e3731035",
      "parents": [
        "3bca60611702f21738b1d45892bcf33847c4877e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 14 08:14:12 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:20:59 2014 -0800"
      },
      "message": "liblog: update timestamp on NOTICE file\n\n(cherry picked from commit b69e092dc75b643d95538929b38da6f647e79351)\n\nChange-Id: I776509232aaa50e14fe79e45ab133c0ea3985933\n"
    },
    {
      "commit": "cef098ef5df0d1e98bae269aaae2e3c3fbd1cb1f",
      "tree": "6535382b14524c6a65749a2d79cca36e01548fb9",
      "parents": [
        "819c58a8ca20f94700085b8967f371f5854a5216"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 09 09:02:55 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:18:09 2014 -0800"
      },
      "message": "liblog: Add cpu utilization test\n\n- followup to measure CPU utilization in liblog to\n  ensure this issue gets caught before a regression\n  passes into the labs. Threshold for failure is 1%.\n\n(cherry picked from commit edadb2e7196040dd476e86581dc1c8e26449c00d)\n\nBUG: 12457855\nChange-Id: I40568a72aeef2f554b19ad55f3dd3c02bc023f24\n"
    },
    {
      "commit": "819c58a8ca20f94700085b8967f371f5854a5216",
      "tree": "a223d8452f1137d81427ac617e37249dd62c3cdc",
      "parents": [
        "fca0bd1a38597b83f6511d0c7c971fce75dc8123"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 12:39:43 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:17:39 2014 -0800"
      },
      "message": "liblog: Add liblog test suite\n\n(cherry picked from commit 8d1fdb509305e93eb46d45a6dcd34bedd6dc0742)\n\nChange-Id: Ia457d518b4e7ff37e840336ff0c48583709700d4\n"
    },
    {
      "commit": "1345f38e4419607ea9c5b24109e5bd6df52dcffa",
      "tree": "0a9eeba5bcf463ebb067d554d6ea244075db980a",
      "parents": [
        "e9c4196980208124066fb45fa03bfb85fe1d8581"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 14 08:41:27 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:16:43 2014 -0800"
      },
      "message": "liblog: deprecate export LOGGER ioctl definitions\n\n(cherry picked from commit 2e44a9ea2518024a07f38c2cc6066ec2074d5210)\n\nChange-Id: I150cad9309255bec2b8bc7230c744e9bbb1b9578\n"
    },
    {
      "commit": "e9c4196980208124066fb45fa03bfb85fe1d8581",
      "tree": "a5dd87995ed44361c5be29a38b5ad1f8e7303ed2",
      "parents": [
        "24b5d3cec51e0d7fc0989913a901e6888d948375"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 02 13:52:29 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:16:04 2014 -0800"
      },
      "message": "liblog: deprecate export of LOGGER_LOG_* defines\n\n(cherry picked from commit 73459a5c87dc9e7c2aeee00597b9d3cc8d9a190e)\n\nChange-Id: I263af8e889f8f2ad91b91757caf90a4d17823dab\n"
    },
    {
      "commit": "24b5d3cec51e0d7fc0989913a901e6888d948375",
      "tree": "3fdc71b2aa47c11541ebc09f59b62e6f0ac03667",
      "parents": [
        "168021c2827312e17a13d77b54f7d030a08b257b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Dec 17 12:29:37 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:15:33 2014 -0800"
      },
      "message": "liblog: Add README\n\n(cherry picked from commit 912c88cc5abde3fb7e09a810491c3285b3bd4a64)\n\nChange-Id: I9d789e08e9301ec8afa7be8bede955379694b904\n"
    },
    {
      "commit": "168021c2827312e17a13d77b54f7d030a08b257b",
      "tree": "2ab67d74fb83b56e4cf723ca8a0eb65858d4f8b0",
      "parents": [
        "d0a83fddf18de1a567692a0eeb43228601c83fcf"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 06 08:14:11 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:15:05 2014 -0800"
      },
      "message": "liblog: resolve build warning messages\n\n(cherry picked from commit 153b370624c3da0660281f692fbe3f2da96cfd70)\n\nChange-Id: Icc6f1f2c926a008efc4df71022cfde8d0e285880\n"
    },
    {
      "commit": "d0a83fddf18de1a567692a0eeb43228601c83fcf",
      "tree": "5fac4fc0570231eab9eb17b44e4c9c0e0264a3bd",
      "parents": [
        "11aa6ee98c5cc67e149acb7c634f6c2546678c00"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 09 07:45:30 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:14:18 2014 -0800"
      },
      "message": "liblog: high CPU usage from logcat\n\nBUG: 12457855\n\n- log_read.c poll timeout should be -1 instead of 0 when idling\n\n(cherry picked from commit 080bbfab94ce91e4845860d5253eea6d869bbc18)\n\nChange-Id: I9082a15fae0fbf999c0ed516950a49d65a279298\n"
    },
    {
      "commit": "11aa6ee98c5cc67e149acb7c634f6c2546678c00",
      "tree": "ea22a0700d17979f4ee785e4475af1971ca0564c",
      "parents": [
        "f387fa5df0180831abfd2004e78859d66836bc05"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 03 18:58:16 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:13:49 2014 -0800"
      },
      "message": "liblog: fix build again\n\nlog_read.c has to be in the target sources on all platforms, but\nnever needs to be in the host sources.\n\n(cherry picked from commit 3c37fae4a472835c8e20060e1e6b7495b84f254a)\n\nChange-Id: Ie0829f3f1daf16d151c401653dbef603b1c2f59d\n"
    },
    {
      "commit": "015c8e76ca068bd4c68ad17a762698542d0c037c",
      "tree": "cde10c19c036f86d4560c76af555442e947c5765",
      "parents": [
        "95132e97e57b055c5103619ce2487d07f30e63db"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jan 03 16:00:02 2014 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:12:15 2014 -0800"
      },
      "message": "liblog: git_master@964770 build problem\n\n- darwin does not get log reader\n\n(cherry picked from commit 5feea6890875c9046f40bdadc0dbd4a411e7f3f5)\n\nChange-Id: I64eb69a6099a88d2acf501de725c35741fd7e551\n"
    },
    {
      "commit": "4295841ebe68a2ebf50ed7adf0a603c523d5af52",
      "tree": "96657c48383c49bab251c219577118193df77ade",
      "parents": [
        "7aa39a7b199bb9803d3fd47246ee9530b4a96177"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 10:50:27 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:10:39 2014 -0800"
      },
      "message": "liblog: Interface to support abstracting log read\n\n(cherry picked from commit 6c1b07fbbd0ccce0e4fdf79abd38494cc622d67e)\n\nChange-Id: Iedc55c1316029b4bb72f51cc656b53b0e3f90aee\n"
    },
    {
      "commit": "cf4aa030ce113ab4e18f41ac9e92002471a1a2be",
      "tree": "03d5b2e4e4ee29b659d7f9d53a0871e1569aa33e",
      "parents": [
        "b957baccd21ca43371dfbc02c10aae18497000b8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Nov 22 07:54:30 2013 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Jan 27 15:08:42 2014 -0800"
      },
      "message": "liblog: whitespace cleanup\n\n- change cutils to liblog directory path\n- change tabs to spaces\n\n(cherry picked from commit c1215c0b46576771370ceb4e1b1d8fc5a7034cfd)\n\nChange-Id: I7d9db1e2b817ba0ec9a224340c5c7535a2387fd5\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": "a1703220834ddeffde5d571cd776ca981e8a42f6",
      "tree": "a87f3e5ca1d4f7cc1c3680ef9f1097582b16a0df",
      "parents": [
        "80dac35023bb7860b7382ca995e19710bd894e7e"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 15 09:45:12 2013 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 15 09:48:32 2013 -0700"
      },
      "message": "liblog: fix fd leakage\n\nFile descriptors remain open across an exec unless FD_CLOEXEC is\nset.  Add O_CLOEXEC to the open() call to prevent file descriptor\nleakage.\n\nIn particular, the following program will eventually run out of\nfile descriptors:\n\nint main(int argc, char **argv) {\n  printf(\"\u003d\u003d\u003d\u003d\u003d entering main \u003d\u003d\u003d\u003d\u003d\\n\");\n  ALOGW(\"entering main\");\n  system(\"ls -l /proc/self/fd/\");\n\n  execv(argv[0], argv);\n  printf(\"exec failed\\n\");\n  return -1;\n}\n\nChange-Id: I5be43ab3b9f82a05f242b1f586454c50568af388\n"
    },
    {
      "commit": "3761e963b30cfc0c2dbcbe69906d689c976b9f2e",
      "tree": "ca1a4295dbdbdd617d02ea99bfceb8b3f27d4934",
      "parents": [
        "777991d9399f1268d27c72a03d56c1a36068a57f"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Nov 28 12:20:19 2012 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Dec 06 10:28:34 2012 -0800"
      },
      "message": "Use Rlog instead of Log\n\nChanging __android_log_write so the tag warns users relying on the\ntag to direct log output to the radio buffer to instead use Rlog or RLOG.\n\nChange-Id: I04b7bb5e620c1ab22b9b495382a252b539947e28\n"
    },
    {
      "commit": "84dcf091482b8d0f484e665915d354069a8c879b",
      "tree": "54121b91e34b4d5ecef048466f8a97a15f724537",
      "parents": [
        "9a7b9aab08e5640a08b312807dc57fcd469a77f2"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 13 11:27:30 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 13 11:27:54 2012 -0700"
      },
      "message": "Collapse IMS tags into a prefix check.\n\nBug: 6497974\nChange-Id: I7fba1a07e2552ce16131b81f30d18eb3192de7ef\n"
    },
    {
      "commit": "44e95651dd1e07017ab85d05a542d2372dbb2baa",
      "tree": "fa9a65eda2f9167f22c6c7c9c09f5dc3a722c6fe",
      "parents": [
        "76e227b4d851741150250f75cca41b3955e2d9b9"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 17 11:16:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 17 11:32:21 2012 -0700"
      },
      "message": "Force IMS logging into radio log.\n\nBug: 6497974\nChange-Id: I4691f287b0abdce03ff211bd5b5b0037b8818ec9\n"
    },
    {
      "commit": "f82e74116314c4def32013495337c038f6c6ee6c",
      "tree": "4e380c9651da0fbe16f183aa01b58dab2aadc876",
      "parents": [
        "08c370cc50e4bdae5a59f4ddfd1e3874bb36579d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 13 17:37:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 03 16:04:57 2012 -0700"
      },
      "message": "Make a liblog.so for the host too.\n\nChange-Id: I0317bb3b80c6555bcb1ff9f2238f32be5f7adedb\n\nConflicts:\n\n\tliblog/Android.mk\n"
    },
    {
      "commit": "99e7f7af84b324034af348cbb7a180848cca2ebb",
      "tree": "0fec173faea0a872462d011460cfc0a32d83744f",
      "parents": [
        "977fc4e9153b29e2f5e0b05d20d3c09b81b95e42"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Thu Mar 01 23:58:50 2012 -0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Thu Mar 01 23:58:50 2012 -0800"
      },
      "message": "Added rules to build 64-bit libraries: lib64cutils.a and lib64log.a\n\nBoth libraries are needed to build four shared libraries in 64-bit\nfor 64-bit emulator with \"-gpu on\"\n  lib64OpenglRender.so\n  lib64EGL_translator.so\n  lib64GLES_CM_translator.so\n  lib64GLES_V2_translator.so\n\nChange-Id: If57f72d4661a74f1d5e537568881f39132e0b43d\n"
    },
    {
      "commit": "d2c8f52189f8c2a13b88a107c6495f9d83196d2d",
      "tree": "2175cb5d16e0e2bc9970ae336f8be94a33c8bb09",
      "parents": [
        "c958a7f4988f3dd98135b23619cdf55ec55bd1f6"
      ],
      "author": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Mon Feb 27 16:48:18 2012 -0800"
      },
      "committer": {
        "name": "Andrew Hsieh",
        "email": "andrewhsieh@google.com",
        "time": "Wed Feb 29 17:00:46 2012 -0800"
      },
      "message": "Fixed two 64-bit porting issues; Make pid/tid type consistent\n\n1. In printf, use \"%zu\" for variable of type size_t\n2. Print tid in %5d\n3. Make type of pid/tid in AndroidLogEntry and logger_entry consistent\n\nChange-Id: I3e3d9536ee58823f349a4734ae093d30eabe1bfe\n"
    },
    {
      "commit": "a820a0e587b1f6be7283588b744cd33ba5723bdf",
      "tree": "528d3e17a5cc8a865a74543f34eb6f1f1f0a516c",
      "parents": [
        "08dedcfd5cfeab526bb02382e4292f3150ed986f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 26 18:40:39 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 26 18:59:42 2011 -0700"
      },
      "message": "Gracefully handle truncated log messages.\n\nBug: 5522726\nChange-Id: I8637c7da854ec1ecb321632c45ee9bc2edc94a67\n"
    },
    {
      "commit": "e1ede1530ff21d3b8920c0cbbebb42ccff4fa22d",
      "tree": "bc5fc695fd90c961dc001baddbe91b207009b579",
      "parents": [
        "4423df76f589e9fbd566f368c453758451c82f78"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 18 15:23:33 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Oct 18 15:37:15 2011 -0700"
      },
      "message": "liblog: do better checks of log messages.\n\nTesting:\n\nThe following test cases all passed and generated log entries:\n\n # echo -n \u0027\\03foo\\0bar\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03\\0bar\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03\\0a\\0\u0027 \u003e /dev/log/main\n\nThe following entries were successfully processed by\nlogcat but produced no log entries:\n\n # echo -n \u0027\\03\\0\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03a\\0\\0\u0027 \u003e /dev/log/main\n # echo -n \u0027\\03b\\0\\0\u0027 \u003e /dev/log/main\n\nAlso tested the pathological error condition:\n\n cat /dev/urandom \u003e /dev/log/main\n\nwhich produced many \"+++ LOG: malformed log entry\" errors.\n\nBug: 5478600\nChange-Id: I53bc79507242dcfc14445746c29edf47be0a90b4\n"
    },
    {
      "commit": "63f4a84104c228c74cdf132f5cef4f5184ae04bb",
      "tree": "db80bb6c9037ab3d0c737fbd18445e666c1dc7d1",
      "parents": [
        "76feaf37218b7fec02ade30c143884df8299697c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 17 10:45:03 2011 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Oct 17 10:47:04 2011 -0700"
      },
      "message": "liblog: ensure that the message length is consistent\n\nWhen parsing log entries which may have embedded \\0s, it\u0027s\npossible for entry-\u003emessageLen to not be the actual\nlength of the string in entry-\u003emessage.  Detect this condition.\n\nBug: 5417417\nChange-Id: I712cac7696af7831e24765b5a1b345d6ff5fb407\n"
    },
    {
      "commit": "4bf3c02e026077d14a4512c7c2f71937da3c2d50",
      "tree": "7fd7c515c75cc0f64d9be5351be46f7d767e5794",
      "parents": [
        "e5de9ee4915bafd7f31a96260613d8b93aba8351"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Sep 30 17:10:14 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Oct 03 14:14:41 2011 -0700"
      },
      "message": "Add checking for log entry format\n\nThe log tag may be zero length if corrupted, so check for this\ncondition.\n\nChange-Id: I7616226dabe78a85859b0ab53aca08f734dbdd84\n"
    },
    {
      "commit": "29e1e7393d1742f9dd5663c63026f50981e5bd89",
      "tree": "0baf9441d44fce10821ec9bf1f32655e5695a8aa",
      "parents": [
        "56286d6fdb07d8b1310c27eeb59bdf05500f166e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:32 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I2fcf31af681d92880e5d31a46d5f6777f7ca1977\n"
    },
    {
      "commit": "7b023b293b3252feddab29b0672524a341494b9e",
      "tree": "6901834d6c2970974d762825492ccb9744cfc2f9",
      "parents": [
        "590e364868b6466e169f2647e95462ba2558dd00"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 27 11:14:46 2011 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Jun 27 11:14:46 2011 -0700"
      },
      "message": "Fix SDK build.\n\nRevert \"Fix build warnings\"\n\nThis reverts commit 590e364868b6466e169f2647e95462ba2558dd00.\n"
    },
    {
      "commit": "590e364868b6466e169f2647e95462ba2558dd00",
      "tree": "6c34bce0c2090782bde331a025e2f7dd8b5804d8",
      "parents": [
        "9661a3aecd39cca95bd07253c52b99521409c147"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 24 14:17:38 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 24 15:40:56 2011 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Ie24cf8e729813e4527c698fc7c1502a1efbc63e5\n"
    },
    {
      "commit": "4e246965bbd124bad1c1d98c5936d13b4db0d566",
      "tree": "65a9be838a789cb38a03645c2e0ac9d284bf03e7",
      "parents": [
        "534bc027a2fc5136988e6785c2d647054daf2713",
        "64ba76c1431afe17c1f4553f1dbc595db064316e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 16 13:34:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 16 13:34:53 2010 -0700"
      },
      "message": "am 64ba76c1: merge from open-source master\n\nMerge commit \u002764ba76c1431afe17c1f4553f1dbc595db064316e\u0027\n\n* commit \u002764ba76c1431afe17c1f4553f1dbc595db064316e\u0027:\n  Fixed LOG_ASSERT() compilation errors in native debug builds.\n"
    },
    {
      "commit": "19299904343daf191267564fe32e6cd5c165cd42",
      "tree": "5dcbf51c82ad371c25614f76f03e7caf3caa0aab",
      "parents": [
        "e3f6a6e1d3e52c1d25d55b6556cc1f2c0598b576"
      ],
      "author": {
        "name": "Chris Pearson",
        "email": "christopherx.c.pearson@intel.com",
        "time": "Wed Jun 02 16:25:35 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 16 07:56:03 2010 -0700"
      },
      "message": "Fixed LOG_ASSERT() compilation errors in native debug builds.\n\nInvoking LOG_ASSERT, LOG_ALWAYS_FATAL or LOG_ALWAYS_FATAL_IF variadic macros\nwithout the printf format string arg caused compilation errors because the\nvariable arg list (__VA_ARGS__) was eventually passed to\n__android_log_assert() func in place of a required parameter. This error\nonly occured in debug builds because LOG_ASSERT() is a no-op in release\nbuilds.  This change allows debug builds to succeed.\n\nChange-Id: I7e7b7de3e501133468ce083e0e0d6e699dd59667\nSigned-off-by: Chris Pearson \u003cchristopherx.c.pearson@intel.com\u003e\n"
    },
    {
      "commit": "2a7f2ae7d4b25f89e36be04e47b9e7a3d76e0cfd",
      "tree": "966d71f3e62cc79b841602c44ae1c92720268dca",
      "parents": [
        "a68049a8cc3f1eacda1e27b2040af73f6faa42ab"
      ],
      "author": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Apr 09 18:23:25 2010 -0700"
      },
      "committer": {
        "name": "Carl Shapiro",
        "email": "cshapiro@google.com",
        "time": "Fri Apr 09 18:23:25 2010 -0700"
      },
      "message": "Fix a long standing  bug in the output buffer size computation.\n\nChange-Id: I55aca04fdd3822ac06db183bf2ff0cbd61f778e8\n"
    },
    {
      "commit": "7df6349a63b89d279131ec7dd7e6ef1b065854f5",
      "tree": "030b554cb95806d7da5eb72d17436de70f686b63",
      "parents": [
        "b51cb880c02836a57426620f40a1ba9331b6c52a",
        "fd7ebb367330ea3b999ca9c2a48431c437c05f67"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 08 17:14:43 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 08 17:14:43 2010 -0800"
      },
      "message": "merge from open-source master\n\nChange-Id: I698b3c16bdef8751cc857b00f815cb2f95465431\n"
    },
    {
      "commit": "3b6bd0267ac8fc4ea7eb7dc676cf98d6c731da9c",
      "tree": "41ada285f5e27598bd7a208b686a05694e77dcbd",
      "parents": [
        "661aff600c5cb8e72aa2892a2a75ea6015bf1457"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Mar 03 17:18:28 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Mar 03 17:18:28 2010 -0500"
      },
      "message": "remove stray printfs.\n"
    },
    {
      "commit": "e2bf2ea4d2846031edfc52b942ad53e5467243f6",
      "tree": "76fa7dca61684d78c93755986db60a3a6d3731e4",
      "parents": [
        "b91bf4ba864a392412397913ee09a8c1f2e7cc87"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 09:11:54 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Mar 01 13:03:19 2010 -0800"
      },
      "message": "Make logcat print both the main and system buffers by default.  Make SLOGx macros work.\n"
    },
    {
      "commit": "b45b5c9f227473050ef785d11e518e947c8754fb",
      "tree": "e3e38a26867d940a092bca2e65626906ff814b77",
      "parents": [
        "91a54c11cbfbe3adc1df2f523c75ad76affb0ae9"
      ],
      "author": {
        "name": "Keith Preston",
        "email": "keithpre@gmail.com",
        "time": "Thu Feb 11 15:12:53 2010 -0600"
      },
      "committer": {
        "name": "preston",
        "email": "keithpre@gmail.com",
        "time": "Thu Feb 18 15:33:28 2010 -0600"
      },
      "message": "Fix Heap Corruption from too long of a TAG\n\nsnprintf has a weird return value.   It returns what would have been written given a large enough buffer.\nIn the case that the prefix is longer then our buffer(128), it messes up the calculations below possibly causing heap corruption.\nTo avoid this we double check and set the length at the maximum (size minus null byte\n"
    },
    {
      "commit": "4b29fe640ae852c04d5d87d0f9527bdc32177ad1",
      "tree": "310b38e74c5942a86975af4bcb32d3adab9b6e88",
      "parents": [
        "85b3fcc5de004999756c1e90bcf845480217b3f6"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:46:23 2009 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 12 18:46:23 2009 -0800"
      },
      "message": "eclair snapshot\n"
    },
    {
      "commit": "ed7ccae2968a75e09c22a3da90a9762170f96477",
      "tree": "b06777fc0b8cc328b18810ea7c59e04e1361eee3",
      "parents": [
        "761aeb431e6d1482754a98bba2b683ba8111ef88"
      ],
      "author": {
        "name": "John Michelau",
        "email": "w14107@motorola.com",
        "time": "Wed Aug 19 10:01:55 2009 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Aug 19 10:06:52 2009 -0700"
      },
      "message": "Route all log tags with \"RIL\" prefix to radio buffer.\n"
    },
    {
      "commit": "83eb023a09d2f5782bf9153d761cbdda4ce45b22",
      "tree": "96f9f5a28093340099a59746e0fa249298283382",
      "parents": [
        "455a6dffd4db929f46b9c5a1e1f5b541b9721bfe",
        "89efdc9c7f4005032dad86dd6dd220c23a7ff4d7"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 11:02:19 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 11:02:19 2009 -0700"
      },
      "message": "Merge branch \u0027readonly-p4-master\u0027\n"
    },
    {
      "commit": "89efdc9c7f4005032dad86dd6dd220c23a7ff4d7",
      "tree": "a7944cb06826e8f9338fb35d6bb12299d946ca93",
      "parents": [
        "0b022b894215ce8c14da1a6ce236ed9c694ef78a"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 11:00:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 11:00:57 2009 -0700"
      },
      "message": "AI 144245: Fix merge conflict for megering in the CDMA changes in to master from donutburger.\n\nAutomated import of CL 144245\n"
    },
    {
      "commit": "7bdfb165ad84986b82dce1a3fcfecf51f9f06528",
      "tree": "199ac04998b945aacf0f6d5b50b430779e850dc7",
      "parents": [
        "01161168aa87ea9f1513d2b7b1232521c84e1ea4"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "",
        "time": "Thu Apr 02 01:37:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 02 01:37:03 2009 -0700"
      },
      "message": "AI 144185: Integrate cdma into the main code base.\n\nAutomated import of CL 144185\n"
    },
    {
      "commit": "7be77b5ba8ae21dad91019a02bc2c5d38dba081f",
      "tree": "8acf5c179b4451c89faa1e35e76fa546ca086049",
      "parents": [
        "83b65486beffc7c86f24c428fbb7b50bbbe189f9",
        "8fbedcf73c0bfd2ecdbb4d4c93edd3d39dc28fd4"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:31:14 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 15:31:14 2009 -0700"
      },
      "message": "Merge commit \u0027korg/cupcake\u0027\n"
    },
    {
      "commit": "f441e1e9c42f4692be61927a74f4980d0bc7320d",
      "tree": "c18ecf45e8ae4242aa7cd3b2e72c4c7b083322ef",
      "parents": [
        "f614d64d4b4dfcd20c77ac3ccf2d9c9090a49303"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:36:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:36:55 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140818,140818\n"
    },
    {
      "commit": "161b03c7ecf28b360f76007462d852574692e2dc",
      "tree": "f45910a92fdf16589a24032f114707a7e2675022",
      "parents": [
        "b1487e4c587ce1184e3d0036ac5e6bd90405688d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@140824,140824\n"
    },
    {
      "commit": "3207e480716889c4fdc6937b54a229e87bb2a5f3",
      "tree": "c18ecf45e8ae4242aa7cd3b2e72c4c7b083322ef",
      "parents": [
        "f614d64d4b4dfcd20c77ac3ccf2d9c9090a49303"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:09:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 19 23:09:00 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@141571\n"
    },
    {
      "commit": "83b65486beffc7c86f24c428fbb7b50bbbe189f9",
      "tree": "ab343e30dd96348d35b0957453fbf6b7b0bac56d",
      "parents": [
        "4a4c9f6f98055918f1ebff06b3cc1ed622c058fe",
        "e037fd7e193ecccbb5c0888e49f6d58c224bc11d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Mar 17 17:15:47 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Mar 18 09:29:29 2009 -0700"
      },
      "message": "Merge commit \u0027remotes/korg/cupcake\u0027 into merge\n\nConflicts:\n\tinit/devices.c\n\tlibpixelflinger/Android.mk\n"
    },
    {
      "commit": "dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0",
      "tree": "2ba8d1a0846d69b18f623515e8d9b5d9fe38b590",
      "parents": [
        "e54eebbf1a908d65ee8cf80bab62821c05666d70"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "e54eebbf1a908d65ee8cf80bab62821c05666d70",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a1e1c1b106423de09bc918502e7a51d4ffe5a4ae"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1b8e5a6b14ca850920e19b3dfae41e6494475c1a",
      "tree": "67bdeb039019f8a47d5cd607c18d99a7c8eb3141",
      "parents": [
        "13f797da7f190e9ea52f2f3d235210b8a4963b21"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:54 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:54 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "439f6ca123bbc69c33dfb38e591641886bbabb57",
      "tree": "14932413f4f45ec0d087103a950734e013fd04fe",
      "parents": [
        "038862e152b98d0c0f355c6802beaa1ed59cefbe",
        "2eef60297a0ca1433d0824d6d662efd402709cfd"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@undroid16.corp.google.com",
        "time": "Thu Jan 15 16:22:10 2009 -0800"
      },
      "committer": {
        "name": "android-build SharedAccount",
        "email": "android-build@undroid16.corp.google.com",
        "time": "Thu Jan 15 16:22:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "2eef60297a0ca1433d0824d6d662efd402709cfd",
      "tree": "882019445ab5b3bfcb6a2fdce0fa39084bf9340c",
      "parents": [
        "5ae090ed949cea9d1e7ab1552b455a229f8f9757"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:14 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:14 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "abb9638e3696e393d6dc45439feda91073e52103",
      "tree": "43c29f41effdbd07a94d5a7551b9af4a4841cbd3",
      "parents": [
        "57401dc849db11f38133796c01d982de0391318d"
      ],
      "author": {
        "name": "Alexey Tarasov",
        "email": "tarasov@dodologics.com",
        "time": "Wed Nov 05 07:40:37 2008 +1000"
      },
      "committer": {
        "name": "Alexey Tarasov",
        "email": "tarasov@dodologics.com",
        "time": "Fri Nov 07 11:44:22 2008 +1000"
      },
      "message": "1. added macro definitions to AndroidConfig.h\n2. removed unnecessary include of \u003calloca.h\u003e\n"
    },
    {
      "commit": "4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53",
      "tree": "54fd1b2695a591d2306d41264df67c53077b752c",
      "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"
    }
  ]
}
