)]}'
{
  "log": [
    {
      "commit": "b680e955f474a2f81ed35383da67209bcbdd7d10",
      "tree": "8fd48d3bca98f5cc5d96415255711817fc209553",
      "parents": [
        "9e1e25dd418773ad5e574441962dcc771d3ec2a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 15:40:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Dec 05 13:00:07 2019 -0800"
      },
      "message": "media utils: dump audio HAL service before restarting audioserver\n\nAdd request to create tombstones of audio HAL servers before restarting\naudioserver process when the watchdog triggers.\n\nAdd audio device factory HAL interface API to retrieve HAL process pids when\npossible (on debug builds).\n\nAdd AudioFlinger service API to set audio HAL process pids from\nJAVA AudioService.\n\nBug: 141528385\nTest: Force watchdog and verify tombstone creation\nChange-Id: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\nMerged-In: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\n"
    },
    {
      "commit": "6fcb941084faecce31909f1c50ee1ba442244f8b",
      "tree": "d8904b383fd5d7e01c3c966c1c57c44266dbad18",
      "parents": [
        "22cd27bcc50b17ebb5104400cece4c34f1729930",
        "c499a089250910118da5a292794d0dc1c9053171"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "message": "DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master\n\nBug: 142003500\nChange-Id: I0de886061b2d75f9c37e8edbd4e7e08225d0186b\n"
    },
    {
      "commit": "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a",
      "tree": "4accc947ac99fa7246f5f7fc54f35b3c960636b1",
      "parents": [
        "35f148bc5a1cb1efffd9aee0223a06720a303329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 21 14:52:30 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 24 21:25:53 2019 +0000"
      },
      "message": "Remove more header symlinks\n\nTest: build\nBug: 143245419\nChange-Id: I9bb03d54c7792625b73602f2d3721e29f8f929be\n"
    },
    {
      "commit": "99a94746c9a2f0fc2bb6f7086aa8b586a58e0a49",
      "tree": "3c364bd4371711ac744c49d6cea8b86f13b15c94",
      "parents": [
        "72da56ed189ec5a6656ad0d4dc4b8621f0604163",
        "804b87d1f80df7b5fbe77e59100c375be1542db7"
      ],
      "author": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Wed Sep 18 11:26:11 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 18 11:26:11 2019 -0700"
      },
      "message": "Merge \"ServiceUtilities: don\u0027t do RECORD_AUDIO check for system server\" into qt-qpr1-dev\nam: 804b87d1f8\n\nChange-Id: I2b0828faf0e54ce58465edd5c97c564ee829168f\n"
    },
    {
      "commit": "62cc92bb3801f1181403c78b4f942874050bb874",
      "tree": "5b026f29b960d0ac13cfe7cc2c0fac38891230ab",
      "parents": [
        "1f1b954261e8821a7bf03c25abfd127dcc1f4844"
      ],
      "author": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Tue Sep 17 11:15:15 2019 -0700"
      },
      "committer": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Wed Sep 18 03:30:30 2019 +0000"
      },
      "message": "ServiceUtilities: don\u0027t do RECORD_AUDIO check for system server\n\nOnly one system server seems to exist across multiple-users; however,\nwhen the primary user is backgrounded, system server loses its\nRECORD_AUDIO permission.  Through a number of steps this prevents the\nsecondary user from starting any services that use the SoundTrigger HAL;\nspecifically, this was found because it prevents Oslo from functioning\nwhen a secondary user is active.\n\nBug: 139839188\nTest: Oslo use cases pass\nChange-Id: Ia0dd5fd3b6992cb18279b81146b35ed040771245\nSigned-off-by: Jeffrey Carlyle \u003cjcarlyle@google.com\u003e\n"
    },
    {
      "commit": "9d2e008603bfe9dd46098dd4e58ad551078b9d8e",
      "tree": "b0b68436882064d04591dd55f7963f2ea00cceab",
      "parents": [
        "47f98f62a9db5b3650df14184963b5b299bb4e3a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 11 19:08:13 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 16 12:34:43 2019 -0700"
      },
      "message": "Use bionic platform headers.\n\nBug: 130763340\n\nTest: Builds.\nChange-Id: I8cabd441431cd357bf2842bb40809db5a3ad171e\nMerged-In: I8cabd441431cd357bf2842bb40809db5a3ad171e\n(cherry picked from commit 7a3180d3c87bc91561e0a61ff5bc662ea6a1e627)\n"
    },
    {
      "commit": "8021f69cc8f235eb36246a21f1118f0557e21f85",
      "tree": "8facbabdc5b9fd923adf8e27fd7430281d60de54",
      "parents": [
        "dc8ee518f7a35d0c9d8f9fadfd887d97d8e527ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 30 08:48:19 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 01 18:18:10 2019 +0000"
      },
      "message": "Remove product_is_iot.\n\nTest: treehugger\nExempt-From-Owner-Approval: cherrypick\nChange-Id: I0a29825c8e9fe082c0dd2bee60cfc04665678fcd\n(cherry picked from commit 917bb01c6bb02060a01f804431dd503f9b256d30)\n"
    },
    {
      "commit": "d8e3af08e643a0923f96ceb3e8b64ce63148aab7",
      "tree": "31afda0efc3ae11919f66aeb6357b334251535c9",
      "parents": [
        "6e89801b62e3df72b91c34ccb96cd75e71e6b054"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 13:28:13 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 15:38:56 2019 -0700"
      },
      "message": "Replace unused dependency on libmemunreachable\n\nlibmediautils was accidentally getting backtrace_string through\nlibmemunreachable.  Remove the dependency, which is causing problems\nfor making libmemunreachable vendor_available, and use\nlibc_malloc_debug_backtrace instead.\n\nBug: 132302484\nTest: m libmediautils\nChange-Id: Ide83ce43027f28d548a76c607a84bab6604213cf\n"
    },
    {
      "commit": "a90adf0a05c7582227493cc90dcaa917a6f1a445",
      "tree": "ef004bc777b3d7d6110229f4a799b50c2057d2e6",
      "parents": [
        "8263e3519b6801f019e471efe4a6045b7046e4d3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 17 13:26:15 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 19 11:16:40 2019 -0700"
      },
      "message": "Move to android_mallopt for malloc debug calls.\n\nBug: 130028357\n\nTest: Enable backtrace for mediaserver, run dumpsys media.player -m\nChange-Id: I75adddfc5048f732ee7ec27c17192efd5857af38\nMerged-In: I75adddfc5048f732ee7ec27c17192efd5857af38\n(cherry picked from commit bd0195ecacaa5381278d8f96b51af36631dc0cd9)\n"
    },
    {
      "commit": "37d73d1502db31e3542f1ce4de5c7cbed8d1e174",
      "tree": "979cc26d7ee3343a662bc742587c1617a8390e68",
      "parents": [
        "a308287ea13cbab40ad6892be20b1253b83c0e36"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 12:49:09 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 15:18:12 2018 -0800"
      },
      "message": "Remove unused libraries from various media libraries\n\nTest: build\nChange-Id: I3bfb70a6ed3fe8f0e1683d456156517f8b992a33\n"
    },
    {
      "commit": "32b4f494fb4c032a8c9e8f3b8c9ed1d7ccd8ef22",
      "tree": "be0513d33052df294b4bf98f466e789c47377494",
      "parents": [
        "6fdd7d07da60c4c846e4a0a5af900982f65ac551"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Nov 14 18:38:21 2018 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Nov 21 12:06:27 2018 -0800"
      },
      "message": "libmediautils: move AImageReader_getHGBPFromHandle from libmediandk.\n\nThis allows us to remove camerserver\u0027s dependency on libmediandk,\nthereby reducing its vss increase (brought about due to many of\nlibmediandk\u0027s dependencies, which cameraserver does not need)\n\nBug: 119582723\n\nTest: mm -j64\nTest: showmap \u003cpid of cameraserver\u003e vss before change: 50628\nTest: showmap \u003cpid of cameraserver\u003e vss after change: 31256\nTest: AImageReaderWindowHandleTest\n\nChange-Id: I8dec6430adda538cb293cdd0d087b9ae1767b900\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "433722eeb72ab11bb945664fa939cf7ef737af6d",
      "tree": "194eab009f7fad2010a5baa3c82b1a497d4543e3",
      "parents": [
        "5c00d01c85430178d19f6266f1bc5c94a29853c1"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Apr 24 14:25:22 2018 -0700"
      },
      "committer": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Thu Aug 02 11:34:36 2018 -0700"
      },
      "message": "Add dynamic stream default effects\n\nAllows runtime modification of what effects should be default\nattached to streams of different types/usages. The core functionality\nwas already in the AudioPolicyEffects system, this allows\nthe dynamic modification of the lists.\n\nBug: 78527120\nTest: Builds, manually tested an app adding a stream effect,\ntested both media on the specified stream and on a different stream.\nAlso tested by Android Things integration tests.\nChange-Id: Ie0426b17ff7daece58b8c85d72fbef620844325b\n"
    },
    {
      "commit": "39b09b52e313e89c3493927b379d2e256bf04bd9",
      "tree": "04e64f327c09b0d3344884d59c35ff520c751e3e",
      "parents": [
        "cd56a1c2a0adcd21aad3a64c761aa3562d915be1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 29 12:24:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 09:02:26 2018 -0700"
      },
      "message": "audioserver: log system event for binder timeouts\n\nAdd event logging in case of audioserver watchdog to help\ncollect statistics.\n\nTest: make. Simulate watchdog and check events in logcat.\n\nChange-Id: I4716852c77d56703ad5f3dfc2500f598a2b80a12\n"
    },
    {
      "commit": "4ef19fa450e8b523741a22fabee8f62691abec37",
      "tree": "5d0eaaf73cebe029d1d8dd935d5c6fddb12ee70f",
      "parents": [
        "ab7ef300b74904bce6c5c810d9e5679abfa582e6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 17 18:11:55 2018 -0700"
      },
      "message": "Update audio permission checking\n\nChange captureAudioOutputAllowed to check client pid.\n\nCheck calling uid with AID_AUDIOSERVER instead of calling pid with\nown pid. This is consistent, and works if AudioFlinger and\nAudioPolicyManager exist as different processes.\n\nRemove getpid_cached since getpid() is very fast. This removes\nany initialization issues.\n\nReplace getuid() with AID_AUDIOSERVER to remove ambiguity of\nmultiple native audio services for multiple users. Only\none exists regardless of users.\n\nDo not use multiuser UID checks for certain native services\nthat do not spawn for multiple users to prevent accidently exposure.\n\nMove permission checks to use ServiceUtilities for control and\nconsistency.\n\nRename isTrustedCallingUid to isAudioServerOrMediaServerUid\nso that permission check is explicitly known to caller.\n\nUpdate MediaLogService to use ServiceUtilities.\n\nTest: Basic sanity\nTest: AudioTrackTest, AudioRecordTest, SoundPool, SoundTrigger\nBug: 79485140\nChange-Id: Ib8ccb36929a9b4806c01626f32fa023a046d6020\n"
    },
    {
      "commit": "ab7ef300b74904bce6c5c810d9e5679abfa582e6",
      "tree": "dadb05ba8da176c046139ca43c3fae48a14191c3",
      "parents": [
        "1f2bfd3ac9d61982acb348d2c78f95c7d4b0bf05"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 16 18:49:09 2018 -0700"
      },
      "message": "Move ServiceUtilities from audioflinger to libmediautils\n\nTest: Play Music, Play Movies, Camera, Photos\nBug: 79485140\nChange-Id: Ib8382547828e386024145c416321d24e4af182db\n"
    },
    {
      "commit": "4049f13fb3d1c588d3e4dc518ede15d45dca4c9e",
      "tree": "3f0566fb3f3f9cb441e3b466f95341c600c9c1ef",
      "parents": [
        "205266aacc675dfb7a7f9f985c4ca973163cb59e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 10:37:31 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 18:48:46 2018 -0800"
      },
      "message": "MediaPlayer2: build static libs for some components\n\nTest: compiles\nBug: 63934228\nChange-Id: I1791b40a67c87ea3146825767699e5022444e433\n"
    },
    {
      "commit": "021c8bc0db0a8934881f99ce4926eb9e0f169f6a",
      "tree": "96beb207bbd52294243a35b2e8933f71f0e7f740",
      "parents": [
        "2ef26a0d04b9cc6cebbda733056e4ac09f738c61"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:38:49 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:40:19 2017 -0800"
      },
      "message": "Remove unnecessary links\n\nTest: build\nChange-Id: I5b7c37648df8043795bad9b0544ecf77a5148b69\n"
    },
    {
      "commit": "22ee46008d6fb8eb4cbe8aa62acf3899e5da3a92",
      "tree": "fe3f2cca2af2e9ce612523b31b379e42cd74ed3e",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 10:44:52 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 16:59:44 2017 -0700"
      },
      "message": "libmediautils: mk -\u003e bp\n\nTest: module built and works with scheduleservice\nBug: 29251823\nChange-Id: I0dc38288b66f03919dbb9ab8abcc76dec19b0b30\n"
    }
  ]
}
