)]}'
{
  "log": [
    {
      "commit": "68e0df70cdd57dbe32f11b5de50dd83c6492d075",
      "tree": "487ed1ea1849844493c436ccde9d432724fd652f",
      "parents": [
        "63dc6cf50582fa13702c59f43155f6c18312178b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 18 17:55:35 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 02 17:31:42 2019 -0700"
      },
      "message": "Use package name, pid, uid to check permission of capturing hotword.\n\nPackage name will be cached in ModuleClient when attaching a client. It\nwill be used when querying permission of capturing hotword.\n\nTest: test with logging.\nBug: 74078996\nBug: 122721589\nChange-Id: Icd2911f5d331d243c9eb5d58003ce5525c70c81e\n"
    },
    {
      "commit": "6e189b19bbcdb21692924b90d6b33181e490b3fa",
      "tree": "19c789d8d68b7a3f87d54525ff50173fa14fedd3",
      "parents": [
        "fd1c998237da395af546e0e3143a4133f966559b"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Nov 07 15:44:37 2018 +0100"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Fri Nov 09 20:05:44 2018 +0100"
      },
      "message": "Converting sound trigger v2.2 getModelState to be asynchronous\n\nTest: built android with checkbuild flag\n\nChange-Id: Ic12dbfe46aae08666ab02a1a8ee0dbb5c2d9381f\nBug-Id: 70206501\n"
    },
    {
      "commit": "67e3d41769f202522970ab45a50892a0bb6518cd",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "6dd21efefed9d570d5ce07f602686d01321795eb"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "message": "Revert \"Revert \"Adding getModelState API to sound trigger\"\"\n\nThis reverts commit 6dd21efefed9d570d5ce07f602686d01321795eb.\n\nReason for revert: rolling forward with fix\n\nChange-Id: I07d6c471681abffeb596817dfb00de40c853560c\n"
    },
    {
      "commit": "6dd21efefed9d570d5ce07f602686d01321795eb",
      "tree": "14ed5d5d11af36880f87a3d856b8f55b9cbb671a",
      "parents": [
        "19a2dc31ab87bcc992a9725a0a6a3698d5855025"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "message": "Revert \"Adding getModelState API to sound trigger\"\n\nThis reverts commit 19a2dc31ab87bcc992a9725a0a6a3698d5855025.\n\nReason for revert: fix build breakage\n\nChange-Id: I9f58d4c7cfbd871259b4d3186b81de2af6c5021f\n"
    },
    {
      "commit": "19a2dc31ab87bcc992a9725a0a6a3698d5855025",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "f8219e1b52a2aa634176e9dcf7822f526a82b852"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Aug 22 14:57:53 2018 +0200"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Thu Sep 13 21:42:00 2018 +0200"
      },
      "message": "Adding getModelState API to sound trigger\n\nTest: built android\nBug-Id: 70206501\nChange-Id: Ib0c7dfa74bbab196516330a222ae9dcb78a6a9e3\n"
    },
    {
      "commit": "07405ee8c22bf9184de5a4ea15e683f45b20bd89",
      "tree": "e651d7d77526e7f15c94fc4d0d2b2d694621a806",
      "parents": [
        "7db8b99d00f2399faba9de2f8b2c13b05d10aec5"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:45:27 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:47:51 2017 -0800"
      },
      "message": "ServiceStateEvents don\u0027t need to called with the mServiceState lock anymore.\n\nTest: On taimen with sound trigger test app.\nChange-Id: I2520ba9fa7d3736ea04df1abe6229ad973932768\n"
    },
    {
      "commit": "79c5661ca806673cc33f8d5b35742305c4ad20b6",
      "tree": "f22bba4019c53aa169c156ebc5d7dea6496d9eab",
      "parents": [
        "068ba821bca6f2d7a2a8335e85fcdb059ea85274"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Oct 25 14:47:44 2017 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Thu Oct 26 11:40:22 2017 -0700"
      },
      "message": "Avoid deadlock between recognition events and SoundTriggerHwService.\n\nIf an event is generated from the HAL on a separate thread, it is\npossible to enter a deadlocked state. This is due to the HAL typically\nholding a lock when it starts the callback, which then needed to grab\nthe SoundTriggerHwService\u0027s main lock. However, if there was another\ncall coming down from somewhere else in the framework, it typically\ntries to grab the service\u0027s main lock, then enter the HAL (which also\nwill likely try to grab a lock).\n\nBy removing the need to grab the mServiceLock on any of the paths that\nrespond to events generated by the HAL, this deadlock can be avoided.\n\nTest: Manually on device.\nChange-Id: Iac5f96ea67f618ce70e7f75300165f3588613947\n"
    },
    {
      "commit": "338e8ba374432cc4ee853f4fcefcf7bd7bae3bb9",
      "tree": "0f22e5975405924e3935701ae973ab3201f7524e",
      "parents": [
        "7b7f4e0f8bdf7542561ece15c4ffc2542fb7750d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 10:58:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 11:56:38 2017 -0700"
      },
      "message": "Soundtrigger service: fix cross deadlock with audio policy service\n\nDo not hold Module mutex when calling into audio policy manager to\navoid cross deadlock with audio poicy service mutex: Audio policy manager\ncan call into sound trigger service with its mutex held in methods like\nstopInput().\n\nRegression introduced by fix for b/64340921 commit f759b8c4\n\nBug: 64340921\nBug: 67310830\nTest: repro steps in b/67310830\nChange-Id: Ie50b2e7c55fe9828a3fd8de6b31eb4a492791583\n"
    },
    {
      "commit": "e52c500c096fce010c99e92c4fc3ef51832e67c6",
      "tree": "e4a08578d00ba723205a6263bf223d98e3d81f7f",
      "parents": [
        "26a8ba63104f3c7d4e0a750b58d56ad76dbce373"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Oct 12 17:27:18 2016 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Dec 05 17:12:48 2016 -0800"
      },
      "message": "Support multiple clients attaching to a module\n\nCurrently service allows only a single client to be attached to a Module.\nThis limits only a single client can use sound trigger at a time.\n\nAdd changes to attach multiple clients to a given Module through ModuleClient\ninterface so that multiple clients can paralelly use sound trigger on a given\nModule. ModuleClient class is introduced as a client interface to a Module.\nService provides a unique instance of ModuleClient to each client being attached\nand adds this client to the module clients list.\n\nTest: Manual with modified version of SoundTriggerTestApp that talks to\nthe module directly\n\nBug:32030191\nChange-Id: I66912e862b8c4232a49d92c0464a9a8b876bdb26\n"
    },
    {
      "commit": "7a544b44b7872b300f50e16fef480f76e9145fbb",
      "tree": "0b9c81b6183c8c0aa6deaf808b1d8b704f00d677",
      "parents": [
        "2103044be5c8fefbd97da410bbca47239fd3348d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 05 19:01:13 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 21 09:16:53 2016 -0700"
      },
      "message": "Add support for treble sound trigger HAL\n\nFirst implementation of Treble HAL in sound trigger hardware service.\n\nIf ENABLE_TREBLE build option is true, the treble HAL and HW\nsevice is used. Otherwise the legacy HW module is loaded.\n\nBug: 30222631\n\nChange-Id: Ibe5be680b7b7a3b261dd62913869e0bb412f438b\n"
    },
    {
      "commit": "85f8a73d29ae4aa4ed7a6445a88ded802077a58b",
      "tree": "59568728fe6c44a198c05a96c819d63f089cdc60",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:10:03 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:11:09 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in soundtrigger.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I28b251c99c78286a2da1e039df470a3f0bd8abe2\n"
    },
    {
      "commit": "02eb47cf18793effe9fc7ab34e1b0fe9ea6635bc",
      "tree": "2e133219ce8c75a56dc19ba73795f7e6dab69370",
      "parents": [
        "ec9459c63d1c2969505ffdc4a100646fd07223bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 10:10:20 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 14:27:00 2014 -0800"
      },
      "message": "SoundTrigger: allow sound model reloading\n\nAllow reloading a sound model without unloading it before.\n\nBug: 18308781.\nChange-Id: I31c83b81a03ee1c1e80f4339ca62e6d06fb1a33b\n"
    },
    {
      "commit": "df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871",
      "tree": "e54724362f700e3e72fc72604a3b5f568d8cee7b",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:39:40 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 12:10:27 2014 -0700"
      },
      "message": "Add sound trigger control by audio policy\n\nAudio policy:\n- Added active capture indication to sound trigger service:\nrecognition stops if concurrent capture is not supported.\n- Added generation of reserved I/O handle and session ID for\nutterance capture.\n\nSound trigger service\n- Added sound model update callback handling.\n- Added service state callback\n- Simplified callback shared memory allocation.\n\nBug: 12378680.\n\nChange-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1\n"
    },
    {
      "commit": "b7a11d83f749ad0200778c4815e907d011d4b5d3",
      "tree": "28c744c0e8fe9c1f198ddd0999b4c5d95de9610a",
      "parents": [
        "24c01a8417fe195e5ba2187dbbdf9bd1e3a6553f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 18 17:40:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 15:34:20 2014 -0700"
      },
      "message": "add sound trigger native service\n\nChange-Id: I0cd954c1c7d28a334e786d0004431d4f6a1227ec\n"
    }
  ]
}
