)]}'
{
  "commit": "0ba499896a6f1c86f48f2a0b2e596df6ecbb2b2e",
  "tree": "7a2283a6a128751c1bca32ff32a40acdeced22ae",
  "parents": [
    "d911c669ae6fb1bbb52e6197d18cfdd5d184cfcb"
  ],
  "author": {
    "name": "Bram Bonné",
    "email": "brambonne@google.com",
    "time": "Thu Dec 03 19:03:55 2020 +0100"
  },
  "committer": {
    "name": "Bram Bonné",
    "email": "brambonne@google.com",
    "time": "Thu Dec 10 11:55:45 2020 +0100"
  },
  "message": "Soft-enable MAC address restrictions with allowlist.\n\nSoft-limits apps from calling bind() on NETLINK_ROUTE sockets, and\ngetting link info through getifaddrs(), while still allowing apps on the\nallowlist to temporarily perform these actions.\n\nThis is different from existing behavior, where apps targeting an API\nlevel \u003c 30 were exempted from this restriction.\n\nActual enforcement will happen through SELinux (as is currently the\ncase for apps targeting API \u003e\u003d 30). This temporary change will then be\nreverted.\n\nIf you arrived at this change due to an app showing unexpected behavior,\nplease file a bug at go/netlink-bug.\n\nBug: 170188668\nBug: 170214442\nTest: Call bind() on NETLINK_ROUTE for an app on the allowlist.\nTest: Call bind() on NETLINK_ROUTE for an app not on the allowlist.\nTest: Call getifaddrs() for an app on the allowlist.\nTest: Call getifaddrs() for an app not on the allowlist.\nChange-Id: I0488932deea2a7211e55a24bc33bfa3cfb16fba2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4d63751f6c8c57fe4e4e4a19204600a9797e04a3",
      "old_mode": 33188,
      "old_path": "libc/Android.bp",
      "new_id": "c7d1a696ff876d2eb4876fbe851e80fc8250bc10",
      "new_mode": 33188,
      "new_path": "libc/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "6142bafb02d69abf3595974a21b7467c8f870958",
      "old_mode": 33188,
      "old_path": "libc/SYSCALLS.TXT",
      "new_id": "7cf7a2dea57469d75a5e2649c300244836462704",
      "new_mode": 33188,
      "new_path": "libc/SYSCALLS.TXT"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "314b0a11f235b7ea409df4da9f8ea03f0ffe1156",
      "new_mode": 33188,
      "new_path": "libc/bionic/bind.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4cb4c84b04d73b3964845b6cd98de96cd9de93eb",
      "new_mode": 33188,
      "new_path": "libc/bionic/bionic_appcompat.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1976e0b707f3a24dee46ca03522983134586317f",
      "new_mode": 33188,
      "new_path": "libc/bionic/bionic_appcompat.h"
    },
    {
      "type": "modify",
      "old_id": "1536333537e8b553ec6378bb139843789809c5c4",
      "old_mode": 33188,
      "old_path": "libc/bionic/ifaddrs.cpp",
      "new_id": "22ecdb4363582262bdecdaf5fd2c3218a000af14",
      "new_mode": 33188,
      "new_path": "libc/bionic/ifaddrs.cpp"
    }
  ]
}
