Skip to content

Helper install fails when /Library/PrivilegedHelperTools contains protected third-party helpers (e.g. Wacom) – fixed by #8 #9

Open

Description

@904benjamin

Summary

Installing the privileged helper from the GUI fails on a Mac that has the Wacom tablet driver installed. The app reports:

The install script finished, but the helper is still unreachable.
Script output:
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app/Contents/MacOS: Operation not permitted
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app/Contents/Resources/com.wacom.DataStoreMgr.plist: Operation not permitted
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app/Contents/Resources: Operation not permitted
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app/Contents/Info.plist: Operation not permitted
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app/Contents: Operation not permitted
chown: /Library/PrivilegedHelperTools/com.wacom.DataStoreMgr.app: Operation not permitted

Clicking "Install" again fails the same way every time.

Cause

gui/Scripts/install-helper.sh, line 71:

chown -R root:wheel "${TOOLS_DIR}"   # TOOLS_DIR=/Library/PrivilegedHelperTools

This recurses over the whole shared directory, including helpers that belong to other vendors. macOS refuses the change on the Wacom app bundles even for root. Because the script runs with set -euo pipefail, it aborts at that point. The helper binary and dylibs have already been copied, but the LaunchDaemon plist is never installed and launchctl bootstrap never runs, so the helper stays unreachable.

The following chmod 755 "${TOOLS_DIR}" would also change the mode of the shared directory (it is drwxr-xr-t on my machine).

PR #8 fixes exactly this by limiting ownership and permission changes to TetherKit's own files. This issue is mainly a real-world confirmation that the bug blocks installation, and a request to merge #8.

Environment

  • TetherKit 0.1.5, installed via brew install XiaoMiku01/tap/tetherkit
  • macOS 26.6.2 (25G83), Apple Silicon
  • Wacom driver installed; /Library/PrivilegedHelperTools contains com.wacom.DataStoreMgr.app, com.wacom.IOManager.app and com.wacom.UpdateHelper.app (owned by root:staff)

Steps to reproduce

  1. Have the Wacom driver (or any other protected helper bundle) in /Library/PrivilegedHelperTools.
  2. Launch TetherKit.app and click the helper install button.
  3. Enter the admin password.

Workaround

Finish the steps the script skipped, touching only TetherKit's files:

SRC="$(brew --prefix)/opt/tetherkit/TetherKit.app/Contents/Library/HelperTools"
DST=/Library/PrivilegedHelperTools

sudo chown -h root:wheel "$DST"/com.tetherkit.helper "$DST"/libtetherkit*.dylib "$DST"/libusb-*.dylib
sudo chmod 544 "$DST"/com.tetherkit.helper
sudo cp "$SRC"/com.tetherkit.helper.plist /Library/LaunchDaemons/
sudo chown root:wheel /Library/LaunchDaemons/com.tetherkit.helper.plist
sudo chmod 644 /Library/LaunchDaemons/com.tetherkit.helper.plist
sudo launchctl bootstrap system /Library/LaunchDaemons/com.tetherkit.helper.plist

After that the app detects the helper without a restart and tethering works.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions