)]}'
{
  "commit": "6a902c3b207a017cd699ac8bb6659abf32eb0c99",
  "tree": "564ec71c6ac443a828ebbc8dd280a07564453029",
  "parents": [
    "abd788c203624930241f45f32b501c16936bd806"
  ],
  "author": {
    "name": "osy",
    "email": "50960678+osy@users.noreply.github.com",
    "time": "Tue May 11 20:58:59 2021 -0700"
  },
  "committer": {
    "name": "Nathan Hjelm",
    "email": "hjelmn@google.com",
    "time": "Sun May 16 15:15:05 2021 -0600"
  },
  "message": "darwin: add authorization for device capture\n\nTo use USBDeviceReEnumerate with kUSBReEnumerateCaptureDeviceMask your app\neither needs to be running as root OR have the \u0027com.apple.vm.device-access\u0027\nentitlement AND have the user authorization requested via\nIOServiceAuthorize().\n\nWe can use the capture re-enumerate APIs if either 1) the process is running\nas root or 2) the \u0027com.apple.vm.device-access\u0027 entitlement is used AND\nIOServiceAuthorize() is called. We assume that if the entitlement is not\nthere then we are running as root--if this is not true, then\ndarwin_detach_kernel_driver will fail anyways.\n\nThe authorization status is cached in the device\u0027s start() so we have to\nstop() and start() the device by destroying the plugin and recreating it\nagain.\n\nSigned-off-by: Nathan Hjelm \u003chjelmn@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fcda7e2a334e76f6306468b59d2c6bdac087a307",
      "old_mode": 33188,
      "old_path": "Xcode/libusb.xcodeproj/project.pbxproj",
      "new_id": "958e256649858dc2c97e11e539cb903886f0e447",
      "new_mode": 33188,
      "new_path": "Xcode/libusb.xcodeproj/project.pbxproj"
    },
    {
      "type": "modify",
      "old_id": "7c8659852ac1633fe7eaa64c1fa64071951da13c",
      "old_mode": 33188,
      "old_path": "configure.ac",
      "new_id": "5899fc25b3679bc4270d083fd31d74d1eba1fac1",
      "new_mode": 33188,
      "new_path": "configure.ac"
    },
    {
      "type": "modify",
      "old_id": "988ca9ee0840b6160c7032ef2dd4ae86d9a336d4",
      "old_mode": 33188,
      "old_path": "libusb/os/darwin_usb.c",
      "new_id": "2e64038cca40981fbd456be940e9bb8d67d5a6ad",
      "new_mode": 33188,
      "new_path": "libusb/os/darwin_usb.c"
    },
    {
      "type": "modify",
      "old_id": "179341cf3d006334184918769559a2486d0fefda",
      "old_mode": 33188,
      "old_path": "libusb/os/darwin_usb.h",
      "new_id": "201dc3610ac43b923fc7f1d9ce680e42b7d93f98",
      "new_mode": 33188,
      "new_path": "libusb/os/darwin_usb.h"
    },
    {
      "type": "modify",
      "old_id": "fcbf3cd1f6b0cb8bb88ad3e2f8bf2ff759ef8c42",
      "old_mode": 33188,
      "old_path": "libusb/version_nano.h",
      "new_id": "7d8c211a49936b01f50e05663ca2e4992d0c9bf8",
      "new_mode": 33188,
      "new_path": "libusb/version_nano.h"
    }
  ]
}
