)]}'
{
  "log": [
    {
      "commit": "fa851800cf97d1a3d30a7a147877005dc48721ff",
      "tree": "1d30cc59aec13e2164bdc5894de20f3a3fca5f92",
      "parents": [
        "b900363e9b482ea404d4b6cea4c60b3c0000b6d1"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Mar 27 17:17:46 2018 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Mar 28 04:15:19 2018 +0000"
      },
      "message": "Add API to query if a UID is active\n\nTest: cts-tradefed run cts-dev -m CtsCameraTestCases\n\nBug: 72863398\n\nChange-Id: I8e5021f2ef4cd77fc89ae3b47cc32ad6913da0d6\n"
    },
    {
      "commit": "4d85b8c0a38c14f854af8ff85391b7a8d1170d5b",
      "tree": "d5b655c0daf01db2ddd5bbb258f04c48c43c18b7",
      "parents": [
        "3a74e1428a75fdc6c519523a0da5ffd86e3001d1"
      ],
      "author": {
        "name": "Ganesh Mahendran",
        "email": "opensource.ganesh@gmail.com",
        "time": "Thu Nov 02 14:43:38 2017 +0000"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Dec 26 06:20:27 2017 +0000"
      },
      "message": "Don\u0027t record audio if UID is idle - native framework\n\nIf a UID is in an idle state we don\u0027t allow recording to protect\nuser\u0027s privacy. If the UID is in an idle state we allow recording\nbut report empty data (all zeros in the byte array) and once\nthe process goes in an active state we report the real mic data.\nThis avoids the race between the app being notified aboout its\nlifecycle and the audio system being notified about the state\nof a UID.\n\nTest: Added - AudioRecordTest#testRecordNoDataForIdleUids\n      Passing - cts-tradefed run cts-dev -m CtsMediaTestCases\n                        -t android.media.cts.AudioRecordTest\n\nbug:63938985\n\nChange-Id: I10db89c09498b487ce483d1868123fca95589b34\n"
    },
    {
      "commit": "ff81a09e19017ae1c26eecda6423e20c5a8333f6",
      "tree": "cd000f3ba17665487515849a35d7d3f7bb67a5cb",
      "parents": [
        "e1a7e7944eb63052b9195cd559e460b5daec6981"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Thu Mar 02 12:27:58 2017 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Fri Mar 03 12:14:40 2017 -0800"
      },
      "message": "Add the missing Parcel.writeInterfaceToken call.\n\nBug: 35950090\nTest: Verified that it fixes the following error.\n      Parcel  : **** enforceInterface() expected \u0027android.app.IActivityManager\u0027 but read \u0027\u0027\nChange-Id: Id70da2d2ba7198e4d5d14aeabe00328c4eb6ef14\n"
    },
    {
      "commit": "ec9ec7d55c63f791ab3ed9221e68d6215f7b928a",
      "tree": "fca8c716c710c682fda737df3982a1cda995a525",
      "parents": [
        "c4c286f30a60ef9ebfc959ea4869d87ceeb831dc"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Dec 17 19:47:27 2016 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Dec 17 19:55:46 2016 -0800"
      },
      "message": "libbinder: replace dup() with fcntl(F_DUPFD_CLOEXEC)\n\nReplace calls to dup() with fcntl(F_DUPFD_CLOEXEC). The only difference\nbetween the two is that O_CLOEXEC is set on the newly duped file\ndescriptor. This helps address file descriptor leaks crossing an exec()\nboundary in multi-threaded processes, and potentially fixes the following\nnon-reproducible SELinux denials which may be occurring because of FD\nleakage from netd to clatd/dnsmasq.\n\navc: denied { use } for comm\u003d\"clatd\" path\u003d\"socket:[860297]\" dev\u003d\"sockfs\"\nino\u003d860297 scontext\u003du:r:clatd:s0 tcontext\u003du:r:untrusted_app:s0:c512,c768\ntclass\u003dfd permissive\u003d0\n\navc: denied { read write } for comm\u003d\"clatd\" path\u003d\"socket:[1414454]\"\ndev\u003d\"sockfs\" ino\u003d1414454 scontext\u003du:r:clatd:s0\ntcontext\u003du:r:system_server:s0 tclass\u003dtcp_socket permissive\u003d0\n\navc: denied { use } for comm\u003d\"clatd\" path\u003d\"socket:[681600]\" dev\u003d\"sockfs\"\nino\u003d681600 scontext\u003du:r:clatd:s0 tcontext\u003du:r:priv_app:s0:c512,c768\ntclass\u003dfd permissive\u003d0\n\nTest: Device boots and no obvious problems\nChange-Id: I9dcd9911a093f329c6f12e39d2c49ef3df651ae5\n"
    },
    {
      "commit": "6ef26f129ce86b50d12ff4e46fae566baf54336d",
      "tree": "ac25c05e3ef0a1c1875c9dd4d0489a9a6bc73b59",
      "parents": [
        "3828399b9d1d8c4004ef26e82784604cab841be4"
      ],
      "author": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Wed Nov 23 15:52:26 2016 -0800"
      },
      "committer": {
        "name": "Sudheer Shanka",
        "email": "sudheersai@google.com",
        "time": "Sat Nov 26 10:06:09 2016 -0800"
      },
      "message": "Add native interface for activity manager service.\n\nFix the un/marshalling code at\nframeworks/av/media/libmediaplayerservice and move it here.\n\nBug: 30977067\nTest: Verified that transaction works fine.\n\nChange-Id: Ice6bd1c8ebc8116147b0ca3f65a293d013edfc4c\n"
    }
  ]
}
