)]}'
{
  "log": [
    {
      "commit": "c274c6313bee6044208a46137c40fb05f7f6e485",
      "tree": "0eb48e0d667ffe81af0286a17c55da186c9657df",
      "parents": [
        "b059122a5fde2d6439ce22380fa3e081b309fdc7"
      ],
      "author": {
        "name": "Irvel",
        "email": "irvel@google.com",
        "time": "Mon Jun 13 16:44:08 2016 -0700"
      },
      "committer": {
        "name": "Irvel",
        "email": "irvel@google.com",
        "time": "Tue Jul 19 11:10:10 2016 -0700"
      },
      "message": "Add SurfaceInterceptor initial implementation\n\nSurfaceInterceptor allows capturing streams of surface updates\nthat come into SurfaceFlinger. It captures the creation and\ndeletion of surfaces, changes to a surface like size or position,\nbuffer updates, and hw vsync updates (for a complete list of what\nis captured see\n/frameworks/native/cmds/surfacecapturereplay/proto/src/trace.proto)\nSurfaceInterceptor uses a protocol buffer object to store each\ntrace. This allows for the produced trace to be either played back\ninto SurfaceFlinger or manually inspected.\n\nTo enable the interceptor: service call SurfaceFlinger 1020 i32 1\nTo disable the interceptor: service call SurfaceFlinger 1020 i32 0\n\nEach trace file will be saved to /data/SurfaceTrace.dat\nFor SurfaceInterceptor to work SELinux must be set to permissive.\n\nChange-Id: I5adff9dcd19456d86cfd5b1f51096dff9990e086\n"
    }
  ]
}
