Optional Tweaks - falchion10/macOS-Jailbreak GitHub Wiki

These tweaks are optional, but can be useful.

Mounting / as r/w on boot

By default the root filesystem is not mounted as r/w when starting macOS. This can be an issue if you frequently work within protected folders.

Add the plist file com.nathan.mount.plist to /Library/LaunchDaemons to automatically mount the root filesystem as read/write on boot.

Run these two commands after moving the file, then reboot:

sudo chmod 644 /Library/LaunchDaemons/com.nathan.mount.plist
sudo chown root:wheel /Library/LaunchDaemons/com.nathan.mount.plist
reboot

Removing update notifications

sudo mv /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app.backup

To undo the change:

sudo mv /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app.backup /System/Library/PrivateFrameworks/SoftwareUpdate.framework/Versions/A/Resources/SoftwareUpdateNotificationManager.app

If you aren't on the latest version of macOS and hate seeing the little notification that pops up every day or so telling you to update to the newest version, this patch will fix that.

Installing tccplus

By default, whenever you disable SIP applications can no longer request permissions for things such as the microphone, camera, etc. We can use tccplus to manually grant apps permissions. Compile tccplus from source, or use the given binary and place it in /usr/local/bin. Read the docs on how it works. I have created two shell scripts that allow you to easily grant permissions to apps by just dragging the app's .app file from /Applications to a terminal window. Add these two scripts to your .zshrc.

Run tccadd [SERVICE] /Applications/App.app

tccadd() {
  if [ -z "$1" ](/falchion10/macOS-Jailbreak/wiki/--z-"$1"-); then
    echo "Usage: tccadd [Service] /path/to/AppName.app"
    return 1
  fi

  local service="$1"
  shift
    
  if [ -z "$1" ](/falchion10/macOS-Jailbreak/wiki/--z-"$1"-); then
    echo "Now drag the .app file here and press Enter."
    read app_path   
  else 
    app_path="$1"
  fi
    
  # Clean up possible quotes from drag-and-drop
  app_path="${app_path%\"}"
  app_path="${app_path#\"}"
    
  if [ ! -d "$app_path" ](/falchion10/macOS-Jailbreak/wiki/|-"${app_path##*.}"-!=-"app"-); then
    echo "Error: '$app_path' is not a valid .app bundle"
    return 1
  fi

  local plist="$app_path/Contents/Info.plist"
  if [ ! -f "$plist" ](/falchion10/macOS-Jailbreak/wiki/-!--f-"$plist"-); then
    echo "Error: Info.plist not found in '$app_path'"
    return 1
  fi

  local bundle_id
  bundle_id=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "$plist")
    
  echo "Granting $service access to $bundle_id..."
  tccplus add "$service" "$bundle_id"
}

Run tccrem [SERVICE] /Applications/App.app

tccrem() {
  if [ -z "$1" ](/falchion10/macOS-Jailbreak/wiki/--z-"$1"-); then
    echo "Usage: tccrem [Service] /path/to/AppName.app"
    return 1
  fi
    
  local service="$1"
  shift
    
  if [ -z "$1" ](/falchion10/macOS-Jailbreak/wiki/--z-"$1"-); then
    echo "Now drag the .app file here and press Enter."
    read app_path
  else
    app_path="$1"
  fi
    
  # Clean up possible quotes from drag-and-drop
  app_path="${app_path%\"}"
  app_path="${app_path#\"}"

  if [ ! -d "$app_path" ](/falchion10/macOS-Jailbreak/wiki/|-"${app_path##*.}"-!=-"app"-); then
    echo "Error: '$app_path' is not a valid .app bundle"
    return 1
  fi
 
  local plist="$app_path/Contents/Info.plist"
  if [ ! -f "$plist" ](/falchion10/macOS-Jailbreak/wiki/-!--f-"$plist"-); then
    echo "Error: Info.plist not found in '$app_path'"
    return 1
  fi
    
  local bundle_id
  bundle_id=$(/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" "$plist")

  echo "Removing $service access from $bundle_id..."
  tccplus reset "$service" "$bundle_id"
}