)]}'
{
  "log": [
    {
      "commit": "0e5d5771174a3a8757adb492ff28c3b20d29ebf6",
      "tree": "5effbf6a2268c5e158013f2d197269d516c2126e",
      "parents": [
        "010495e731090b70ce339dfbabd24ba49692031b"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Apr 20 11:16:10 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Apr 20 14:08:47 2018 -0700"
      },
      "message": "Retry when IO operations fail with EINTR, make incidentd more robust.\n\nBug: 77333635\nTest: atest incidentd_test\nChange-Id: I44929654b534aba9fcce7066a61c5c6e43644a50\n"
    },
    {
      "commit": "ea31cbea935a20d9d290453c2ba2f8b8670e45ca",
      "tree": "e70fe10bbef8d710d730d261d9b060b4171b9e40",
      "parents": [
        "56051569abf447f1e0682072df58f4db046c6520"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Apr 02 11:09:57 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Apr 02 11:09:57 2018 -0700"
      },
      "message": "Remove some letters of verbose log\n\nBug: 77333635\nTest: N/A\nChange-Id: I94b288d070dfb372edf345d369d75bb3255f631b\n"
    },
    {
      "commit": "6cacbcbf436be744a34f7ea0d4f838ff97757446",
      "tree": "776d8808c385eff13b39097a1b64585df88959e3",
      "parents": [
        "6a8ea4fe24dc0116de74a19b3d2a5fe89d0d1736"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Mar 30 14:04:52 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Mar 30 17:36:49 2018 -0700"
      },
      "message": "Use modern c++ code style for incidentd.\n\nThis cl does not contain code logic changes.\n\nBug: 77333635\nTest: manual and incidentd_test\nChange-Id: Iea0a402b1051defd45159ca267e6dd705f9ffa49\n"
    },
    {
      "commit": "e3dab2d906ee45954e58826b11cce9219c005cc5",
      "tree": "5498ede2ec95787f958469b6ed1bc8b809caa047",
      "parents": [
        "ab34199e9c1da603788893537107552ef6245712"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Mar 22 16:56:39 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Mar 28 12:44:36 2018 -0700"
      },
      "message": "Use unique_fd with the clear ownership.\n\nFdBuffer won\u0027t take ownership of the `main` fd.\nIt only enforces transfer ownership in readProcessedDataInStream.\n\nBug: 74021345\nTest: atest incidentd_test\nChange-Id: I6182730241c81c34b3be865b827a2d3e8c10c21c\n"
    },
    {
      "commit": "6355d2f3ab5febbd25331a72671eea47ef5f43ac",
      "tree": "bf9535c065fe87adbb4d34c5d796d860608b00d7",
      "parents": [
        "874b0091372a5a74e8a959c15dc93b4e82a2329d"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Mar 14 15:18:02 2018 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Mar 14 16:26:28 2018 -0700"
      },
      "message": "Wrap fd with unique_fd so it won\u0027t leak.\n\nBug: 74021345\nTest: manual and atest incidentd_test\nChange-Id: Ib1000bfe6917c3d5cae7b9edce5b67d50897e10d\n"
    },
    {
      "commit": "eadd123d68850cb27aa6d030ade6190e30991b19",
      "tree": "28ee59bef758929559dde7b34a9dbe962f1196c9",
      "parents": [
        "0efaf2088d8e3ba8ec560aa5eb597ef456b5213e"
      ],
      "author": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Mon Feb 05 16:45:13 2018 -0800"
      },
      "committer": {
        "name": "Kweku Adams",
        "email": "kwekua@google.com",
        "time": "Wed Mar 07 21:50:12 2018 +0000"
      },
      "message": "Dumping stack traces to proto.\n\nBug: 72177715\nTest: flash device and check incident.proto output\nChange-Id: Id2a15e0fc62b66efe875949af97f0eb651c7e322\n(cherry picked from commit 5c804e2b9893c7892900148229cf19fa6268e7dc)\n"
    },
    {
      "commit": "1a11fa10977ee1e2645d400844ff4d472b8f5f02",
      "tree": "f2a56b25e6da627ab148344900be49ee6e8281c7",
      "parents": [
        "acb42c36f5ecfa2ab442fce1b97ab446c73008a8"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Feb 22 16:44:10 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Feb 27 11:36:29 2018 -0800"
      },
      "message": "Implement a new section to attach LAST_KMSG to incident report\nThis section simply gzip a large file and stores result in GZippedFileProto\n\nThis greatly improves the size, before gzip, the last kmsg size ~500KB,\nafter gzip the proto size is ~60KB.\n\nBug: 73354384\nTest: atest incidentd_test and manual on device test\nChange-Id: I9bfc2cf07384487671edbffb5f0bd8495608fea6\n"
    },
    {
      "commit": "4e843106a6f510a7d77fedfbeaec8e95b57905b7",
      "tree": "9cc95d97bc6d6ad2901ee53a5614a0a1de062277",
      "parents": [
        "f759af6f3bced14b13fe0891eec4cd6c423c5a67"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Feb 14 15:36:18 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Feb 20 13:11:22 2018 -0800"
      },
      "message": "Throttler for incidentd based on size putting into dropbox.\n\nThe incidentd will accumulate the total size put into dropbox and once\nit exceeds a threshold (currently 20MB) daily, it will stop further\nrequests. It allows collection again 24 hours later.\n\nBug: 64219725\nTest: atest incidentd_test and manually flashed incidentd and test.\nChange-Id: Iea21fbae40d5d01108797b190231d73e74eff213\n"
    },
    {
      "commit": "b592e3bc3169e39bd6b0bfce9f788631d5d22acd",
      "tree": "e760b9120e2a44654e0f8850e421d5d65116bcb9",
      "parents": [
        "5f8b250f1a2dc69eac726d4011d66322f8f192f7"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Feb 01 15:17:04 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Feb 15 16:53:22 2018 -0800"
      },
      "message": "This cl formats incidentd and makes it easier for debugging.\n\nBug: 72755317\nTest: clang-format -type\u003dfile -i \u003cfiles\u003e\nChange-Id: Ide91227f26c6b1db6d2e5fe8117ca5cc4cf77fd3\n"
    },
    {
      "commit": "4bab3a191a70cbefac07c8fac90ec29081d91f89",
      "tree": "3b56867a79ee254ec102356755d43103bd0a98fd",
      "parents": [
        "f9b7201a6358cd55c7df9149ea46e0f05dbe409d"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Jan 10 16:50:59 2018 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Jan 17 19:16:49 2018 -0800"
      },
      "message": "Fix permissions problems of incidentd.\n\nTest: manual\nChange-Id: I4ee0d1f2349ee1a25a422cabf1b5b87c612710d2\n"
    },
    {
      "commit": "0eb223496c3dee6bd0a33ea4fa664fb92ef557cc",
      "tree": "bfaa7a6ae9751f1ff5acc34253b0cc5d7773d6c3",
      "parents": [
        "a379f499c8e27d2c18b7089feb18c7f0a44e0433"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Nov 06 17:17:27 2017 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Nov 14 13:22:25 2017 -0800"
      },
      "message": "Implement Cpu Freq Section\n\nWhen poll from sysfs, revents return POLLERR by default, handles\nthis edge case in this cl.\n\nBug: 68774444\nTest: unit tested + on device tests\nChange-Id: I23540299c026d3e7676497f56690e9f8646a47bd\n"
    },
    {
      "commit": "c23fad2f9079f678eae15338f5e57e2a6bf7e391",
      "tree": "acc978bb1862682ef8d7832b17aefd2ddc3be14d",
      "parents": [
        "f39df68b7176fac3187e882e61145dcbfb1e96ac"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Sep 15 17:24:59 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Sep 27 12:23:51 2017 -0700"
      },
      "message": "Implement c++ native lib for streaming proto, part 1\n\nExtract protobuf class out and creates EncodedBuffer class\nwhich holds protobuf data.\nNext step is to create a ProtoOutputStream and let incident helper\nadapt the change as well.\nplease see frameworks/base/core/java/android/util/proto\n\nBug: 65641021\nTest: unit tested\nChange-Id: I0dd343b2e62d60f091c8f857fae3452ec8da6b96\n"
    },
    {
      "commit": "0f0471623e91c202fb7381a050cc331572fb439f",
      "tree": "6c5b30199c6eea59c9a65743ad4767bc8f761aa7",
      "parents": [
        "99c248feb2d1f863b864bdfd1e3b37af17f18732"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Sep 05 13:44:22 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Sep 07 10:53:51 2017 -0700"
      },
      "message": "Implement Pii Stripper Part 3\n\nThe incident request args sets privacy spec. Strip action is optimized\nto run once for each type of spec and ready for flush multiple times.\nIncident command is updated to take -p option to specify privacy spec.\n\nBug: 64687253\nTest: unit tests written, manually run incident command to test as well\nChange-Id: I6753df117f76dc1a5f4d2152baa3fbbf56b490e4\n"
    },
    {
      "commit": "99c248feb2d1f863b864bdfd1e3b37af17f18732",
      "tree": "0b40559c26c16821354db6818cef59b15ed472f0",
      "parents": [
        "10c41c2727aa5566ff6aed0c4709657c6517c855"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Aug 25 18:11:58 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Sep 07 10:53:51 2017 -0700"
      },
      "message": "Implement PII Stripper, part 2\n\nImplement EncodedBuffer that strip pii based on given privacy request.\nThe reason to implement another buffer is the length-delimited field\u0027s\nsize could change when its submessage gets stripped. It also intends to\nkeep the orignal data around for other requests to consume it.\n\nIn addition, the section implementation has adapted EncodedBuffer so\nwrite out to each request\u0027s fd could be request-specific. The next step\nis allow requests to set its privacy spec.\n\nNotice the current design set the privacy spec of dropbox to AUTOMATIC,\nthis behavior might change in the future.\n\nBug: 64687253\nTest: unit tests are writtern, see README.md for how to run unit tests.\nChange-Id: I7ac236b8265ba9289dc6e17a8a5bf7f67ffb6bf5\n"
    },
    {
      "commit": "0ed9b68a3fa8f6eab536a93cb18ce75d7d22b757",
      "tree": "a5b79eb50d882798e79ff6dd766b1794383c07d4",
      "parents": [
        "6e250517d60a9ab79bffbc63c669814ae826d8d9"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Aug 18 14:51:20 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Wed Aug 23 18:13:01 2017 -0700"
      },
      "message": "Implement PII stripper in incidentd, part 1\n\n1. automatically parse privacy options and generate lookup table\n2. create FdBuffer iterator API in order to remove dependency on Reporter.h\n\nBug: 64687253\nTest: Unit test for iterator API, and manually tested lookup table\nChange-Id: I1ea376a4481fc4afc7bdf447936f767b63690fd3\n"
    },
    {
      "commit": "0a3406fc4f8e9a8c8a9155fc7886a0496f692496",
      "tree": "653b35c7b28bb0ed441d42b3a0e1e55f333774d1",
      "parents": [
        "785750817b08794a8160cfb5628036dd30b4fbc0"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Thu Jun 22 19:23:11 2017 -0700"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Mon Jul 24 11:50:33 2017 -0700"
      },
      "message": "This cl does the following things:\n\n0) Implements a skeleton of incident_helper\n1) Implements FileSection class which calls incident_helper to parse\n   file content to protobuf\n2) Adds Kernel Wake Sources to incident.proto and makes it parsed by\n   FileSection\n3) Adds basic gtests to test FdBuffer, io_utils, FileSection\nimplementation\n\nBug: 62923266\nBug: 62926061\nTest: manual - push incidentd, incident_helper and incident to my device\n      and verify kernel wakeup sources file is able to be parsed.\nChange-Id: I2aa6b6158d962ce70e6fa6c8a9c42213a45ff41c\n"
    },
    {
      "commit": "1754d744a7a34731ffc07af1bc3dbfcb06864ab0",
      "tree": "8596241d2c9ccfb1b1748e3a5a37f2befa155a87",
      "parents": [
        "de5b027d2cbd430ef5007911cd73084c081afaab"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Nov 21 17:51:35 2016 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Dec 15 11:23:05 2016 -0800"
      },
      "message": "First checkin of incident reporting.\n\nThere are a few major pieces here:\n\nincidentd\n---------\nThis daemon (started by init) runs and accepts incoming requests to take\nincident reports.  When prompted, it calls into various system services\nand fills in an IncidentProto data structure, and then writes the report\ninto dropbox.\n\nThe next steps for incidentd:\n    - Security review of SELinux policies. These will be a subset of\n      the dumpstate permissions.  Until this is done, incidentd is\n      not started at boot time.\n\nincident\n--------\nThis shell command calls into incidentd, and can initiate an incident\nreport and either capture the output or leave for dropbox.\n\nincident_report\n---------------\nThis host side tool can call adb shell with the correct parameters\nand also format the incident report as text.  This formatting code\nwas left of the device on purpose.  Right now it\u0027s pretty small, but\nas the number of fields increases, the metadata and code to do the\nformatting will start to grow.\n\nThe incident_report command also contains a workaround to let it\nwork before incidentd is turned on by default.  Right now, it is\nimplemented to call adb shell dumpsys \u003cservice\u003e --proto directly,\nwhereas in the future it will go through the full incidentd flow.\n\nincident_section_gen\n--------------------\nA build-time tool that generates a stripped down set of information\nabout the fields that are available.\n\nlibincident\n-----------\nThis library contains the code to connect to incidentd, and the\nmeta proto definitions that are used by the framework protos.\nThe basics are here now, but they are not fully fleshed out yet.\nThe privacy.proto file contains annotations that can go in the\nproto file that we will later use to filter which fields are\nuploaded, and which are used by local sources.  For example, a\ndevice in a test lab is safe to upload much much more information\nthan a real user.  These will share the same mechanism, but the\nuser\u0027s output will be filtered according to these annotations.\n\nframeworks/core/proto\n---------------------\nThese .proto files contain the definitions of the system\u0027s\noutput.  There is one master android.os.IncidentProto file that\nis the top level of an incident report, but some other services\n(notification, fingerprint, batterystats, etc) will have others\nthat are used directly by the logging mechanism.\n\nOther files which are shared by several of the services also go\nhere, such as ComponentName, Locale, Configuration, etc.  There\nwill be many more.\n\nThere is also a first iplementation of a dump method handling\n--proto in the fingerprint service.\n\nIncidentManager\n---------------\nThe java API to trigger an incident report.\n\nTest: Not written yet\nChange-Id: I59568b115ac7fcf73af70c946c95752bf33ae67f\n"
    }
  ]
}
