macOS

Resources

purge

Time Machine

Informations

(Using AFP only) These presumably allow the disk image engine to force disk image journal data to write out all the way to the disk. Without such features, a network interruption can result in a corrupted filesystem on the disk image despite journaling. Remember, journaling relies on the journal being written all the way to disk before the changes take place. If you can't guarantee that (e.g., because of network/NAS buffering) then the journal is useless. Time Machine appears to rely heavily on disk journaling to deal with network drop-outs, interrupted backups, and the like. Take this away and your data is at risk.

Time Machine backup reliability:

Similar tools

  • Time Machine for every Unix out there - IMHO .snapshots/daily.0/

    #!/bin/sh
    date=`date "+%Y-%m-%dT%H:%M:%S"`
    HOME=/home/user/
    rsync -aP \
    	--link-dest=$HOME/Backups/current\
    	$HOME $HOME/Backups/back-$date.incomplete
    mv $HOME/Backups/back-$date.incomplete $HOME/Backups/back-$date
    ln -sf back-$date $HOME/Backups/current
    #!/bin/sh
    date=`date "+%Y-%m-%dT%H_%M_%S"`
    HOME=/home/user/
    rsync -azP \
    	--delete \
    	--delete-excluded \
    	--exclude-from=$HOME/.rsync/exclude \
    	--link-dest=../current \
    	$HOME user@backupserver:Backups/incomplete_back-$date \
    && ssh user@backupserver \
    	"mv Backups/incomplete_back-$date Backups/back-$date \
    	&& ln -sf back-$date Backups/current"

See also Easy Automated Snapshot-Style Backups with Rsync

GUI for rsync

Include files and folders

Included by default:

From $IBACKUP_APP/Contents/Resources/System Settings/ iBackup

  • Address Book (Cards, Groups, Plug-Ins)

    ~/Library/Address Book Plug-Ins
    ~/Library/Application Support/AddressBook
    ~/Library/Preferences/AddressBookMe.plist
    ~/Library/Preferences/com.apple.AddressBook.plist
  • Dashboard

    ~/Library/Preferences/com.apple.dashboard.client.plist
    ~/Library/Preferences/com.apple.dashboard.plist
    ~/Library/Widgets
  • Desktop Pictures

    ~/Library/Desktop Pictures
  • Fonts

    ~/Library/Fonts
  • Keychains

    ~/Library/Keychains
    ~/Library/Preferences/com.apple.keychainaccess.plist
  • Mail (Accounts, Mailboxes, Messages)

    ~/Library/Mail
    ~/Library/Preferences/com.apple.mail.plist
    ~/Library/Preferences/com.apple.mail.searchhistory
    ~/Library/Mail Downloads
  • Printers

    ~/Library/Printers
    ~/Library/Preferences/com.apple.print.custompresets.plist
    ~/Library/Preferences/com.apple.print.PrintCenter.plist
  • Safari (Bookmarks, History, Preferences)

    ~/Library/Safari
    ~/Library/Preferences/com.apple.Safari.plist
    ~/Library/Cookies
  • Screen Savers

    ~/Library/Screen Savers
  • System Preferences (Bluetooth, Dock, Services ...)

    ~/Library/Application Support/Apple
    ~/Library/Logs
    ~/Library/PreferencePanes
    ~/Library/Preferences/com.apple.ActivityMonitor.plist
    ~/Library/Preferences/com.apple.airport.adminutility.plist
    ~/Library/Preferences/com.apple.AppleShareClient
    ~/Library/Preferences/com.apple.Aperture.plist
    ~/Library/Preferences/com.apple.BezelServices.plist
    ~/Library/Preferences/com.apple.Bluetooth.plist
    ~/Library/Preferences/com.apple.BluetoothFileExchange.plist
    ~/Library/Preferences/com.apple.BluetoothFirmwareUpdater.plist
    ~/Library/Preferences/com.apple.calculator.plist
    ~/Library/Preferences/com.apple.Console.plist
    ~/Library/Preferences/com.apple.desktop.plist
    ~/Library/Preferences/com.apple.DiskUtility.plist
    ~/Library/Preferences/com.apple.dock.plist
    ~/Library/Preferences/com.apple.DotMacSync.plist
    ~/Library/Preferences/com.apple.driver.AppleHIDMouse.plist
    ~/Library/Preferences/com.apple.finder.plist
    ~/Library/Preferences/com.apple.FolderActions.plist
    ~/Library/Preferences/com.apple.FontBook.plist
    ~/Library/Preferences/com.apple.frontrow.plist
    ~/Library/Preferences/com.apple.help.plist
    ~/Library/Preferences/com.apple.helpviewer.plist
    ~/Library/Preferences/com.apple.HIToolbox.plist
    ~/Library/Preferences/com.apple.InterfaceBuilder.plist
    ~/Library/Preferences/com.apple.InterfaceBuilder3
    ~/Library/Preferences/com.apple.internetconfig.plist
    ~/Library/Preferences/com.apple.internetconfigpriv.plist
    ~/Library/Preferences/com.apple.LaunchServices.plist
    ~/Library/Preferences/com.apple.loginwindow.plist
    ~/Library/Preferences/com.apple.MenuBarClock.plist
    ~/Library/Preferences/com.apple.menuextra.battery.plist
    ~/Library/Preferences/com.apple.menuextra.textinput.plist
    ~/Library/Preferences/com.apple.PhotoBooth.plist
    ~/Library/Preferences/com.apple.NetworkUtility.plist
    ~/Library/Preferences/com.apple.preference.desktopscreeneffect
    ~/Library/Preferences/com.apple.Preview.bookmarks.plist
    ~/Library/Preferences/com.apple.Preview.plist
    ~/Library/Preferences/com.apple.PropertyListEditor.plist
    ~/Library/Preferences/com.apple.recentitems.plist
    ~/Library/Preferences/com.apple.scheduler.plist
    ~/Library/Preferences/com.apple.ScriptEditor2.plist
    ~/Library/Preferences/com.apple.Sherlock.plist
    ~/Library/Preferences/com.apple.sidebarlists.plist
    ~/Library/Preferences/com.apple.spotlight.plist
    ~/Library/Preferences/com.apple.symbolichotkeys.plist
    ~/Library/Preferences/com.apple.systempreferences.plist
    ~/Library/Preferences/com.apple.systemuiserver.plist
    ~/Library/Preferences/com.apple.Terminal.plist
    ~/Library/Preferences/com.apple.TextEdit.plist
    ~/Library/Preferences/com.apple.universalaccess.plist
    ~/Library/Preferences/com.apple.x11.plist
    ~/Library/Preferences/com.apple.Xcode.plist
    ~/Library/Preferences/loginwindow.plist
    ~/Library/Preferences/Sherlock
    ~/Library/Recent Servers
    ~/Library/Services
    ~/Library/Scripts
    ~/Library/Spotlight
    /Library/Preferences/com.apple.sharing.firewall.plist
  • iCal (Alarms, Events, To Do, Calendars)

    ~/Library/Calendars
    ~/Library/Preferences/com.apple.iCal.alarmsCache.plist
    ~/Library/Preferences/com.apple.iCal.AlarmScheduler.plist
    ~/Library/Preferences/com.apple.iCal.plist
    ~/Library/Preferences/com.apple.iCal.sources.plist
    ~/Library/Application Support/iCal
  • iChat (Accounts, Preferences)

    ~/Library/Preferences/com.apple.iChat.AIM.plist
    ~/Library/Preferences/com.apple.iChat.Jabber.plist
    ~/Library/Preferences/com.apple.iChat.plist
    ~/Library/Preferences/com.apple.iChat.SubNet.plist
    ~/Library/Preferences/com.apple.iChatAgent.plist
  • iMovie (Preferences)

    ~/Library/iMovie
    ~/Library/Preferences/com.apple.iMovie7.plist
  • iPhone

    ~/Library/Application Support/MobileSync/Backup
  • iPhoto

    ~/Library/Preferences/com.apple.iPhoto.plist
  • iPod

    ~/Library/Preferences/com.apple.iPod.plist
  • iTunes

    ~/Library/iTunes
    ~/Library/Preferences/com.apple.iTunes.eq.plist
    ~/Library/Preferences/com.apple.iTunes.plist

Exclude drives, folders and files

By default some folder/files are excluded. But some are not to allow a full restoration of a viable system (ex: /private/var/log/ and its folders are kept but not their files).

How to:

  • Fixed path exclusions System Preferences > Time Machine > Options, similar to sudo tmutil addexclusion -p <drive, dir or file> (but it's not the same). See also /Library/Preferences/com.apple.TimeMachine.plist and /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist

  • Sticky exclusions tmutil addexclusion <drive, dir or file> same as xattr -w com.apple.metadata:com_apple_backup_excludeItem com.apple.backupd <filename>. This not work for files inside packages (Spotlight don't index files in packages) find /path/to/projects -type d -path '*node_modules/*' -prune -o -type d -name 'node_modules' -exec xattr -w com.apple.metadata:com_apple_backup_excludeItem com.apple.backupd '{}' \;

  • files ignored by Spotlight still backup by Time Machine

Find sticky excluded files/folders sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"

See also

General

  • ~/Download

  • /Applications/Install OS X Yosemite.app

  • Folder of Dropbox, Box, Google Drive, iCloud (~/Library/Mobile Documents/) etc.

System

  • (not adviced) /private/var/folders/%random%/%random%/0/com.apple.LaunchServices-134$(id -u).csstore Sometime this file is updated too often (< 1h) (after each Time Machine backup?) Maybe a rebuild is necessary: find /System/Library/Frameworks -type f -name "lsregister" -exec {} -kill -seed -r \; or find /System/Library/Frameworks -type f -name "lsregister" -exec {} -kill -r -domain local -domain system -domain user \; Launch Services Database file is per user file 134 on OSX 10.11, an other number on other OSX version) contains software file type/protocol association and maybe Login Items too See com.apple.LaunchServices-014501.csstore keeps r... | Official Apple Support Communities

  • (can break restoration of the system, contains small files) /private/var/db/BootCaches/ and /private/var/db/systemstats

  • ~/.bash_sessions

By exploring Time Machine backups delete backup of content of /private/var/folders/ and files /private/var/log/ (but keep folders tree intact)

Steam

Virtual Machines and simulators

VMware, Parallels, VirtualBox, etc.

  • Virtual Machines.localized VMware Fusion

  • /Library/Developer/CoreSimulator/Profiles/Runtimes iOS simulator

  • /Library/Android/sdk/system-images Android SDK (depends installed location)

If possible, enable option to split vitual machine hard disk into small chunks. (VMWare Player: New Virtual Machine Wizard > Specify Disk Capacity > Split virtual disk into multiple files)

or use sparse bundle to store VMs disks

Adobe Creative Suite

  • ~/Library/Preferences/Adobe/After Effects/11.0/Adobe After Effects Disk Cache - XXXXX.noindex (should be already ignored by Spotlight, but seem not work)

  • Photoshop scratch disk's temp files (where ?)

Lightroom

  • ~/Pictures/Lightroom/Lightroom 5 Catalog Previews.lrdata

  • ~/Pictures/Lightroom/Lightroom 5 Catalog Smart Previews.lrdata

Xcode

  • /Applications/Xcode.app

  • ~/Library/Developer/Shared/Documentation/DocSets

  • ~/Library/Developer/Xcode/DerivedData

Google Chrome (see also Canary)

  • ~/Library/Application Support/Google/Chrome/Default/Application Cache and https://code.google.com/p/chromium/issues/detail?id=25959

  • ~/Library/Application Support/Google/Chrome/Default/GPUCache

  • ~/Library/Application Support/Google/Chrome/ShaderCache

  • ~/Library/Application Support/Google/Chrome/Default/Extension Rules/XXXXXX.log

  • ~/Library/Application Support/Google/Chrome/Default/Extension Rules/LOG

  • ~/Library/Application Support/Google/Chrome/Default/Extension Rules/LOG.old

  • ~/Library/Application Support/Google/Chrome/Default/Extension State/XXXXXX.log

  • ~/Library/Application Support/Google/Chrome/Default/Extension State/LOG

  • ~/Library/Application Support/Google/Chrome/Default/Extension State/LOG.old

  • ~/Library/Application Support/Google/Chrome/Default/Session Storage/XXXXXX.log

  • ~/Library/Application Support/Google/Chrome/Default/Session Storage/LOG

  • ~/Library/Application Support/Google/Chrome/Default/Session Storage/LOG.old

Spotify

  • ~/Library/Application Support/Spotify/PersistentCache (by default) or the path of Spotify Preferences > Advanced > Memory Cache

jDownloader

  • /Applications/jDownloader.app/Contents/java/app/tmp (use fixed path exclusion)

  • /Applications/jDownloader.app/Contents/java/app/logs (use fixed path exclusion)

Firefox

In ~/Library/Application Support/Firefox/Profiles/%ff_profile_id%/ files likes places.sqlite, cookies.sqlite, content-prefs.sqlite and webappsstore.sqlite can be quite big (N * 10MB) and often updated. Clean history and clean cookies or change places.history.expiration.max_pages and or places.history.expiration.interval_seconds. Could be safely deleted (a new file will be created when it is needed). Clean up sqlite DB (reduce size): echo "VACUUM;" | sqlite3 places.sqlite. See https://wiki.mozilla.org/Firefox/Projects/Places_Vacuum

~/Library/Application Support/Firefox/Profiles/%ff_profile_id%/weave/logs could be excluded too

Thunderbird

See Firefox for places.sqlite, cookies.sqlite, content-prefs.sqlite and webappsstore.sqlite

  • use maildir format in Thunderbird (store each email as individual file instead of a big file containing all emails)

  • ~/Library/Thunderbird/Profiles/%tb_profile_id%/global-messages-db.sqlite

  • ~/Library/Thunderbird/Profiles/%tb_profile_id%/global-messages-db.sqlite-journal

  • ~/Library/Thunderbird/Profiles/%tb_profile_id%/panacea.dat (Mail folder cache. It can be safely deleted)

MySQL

Use "InnoDB File-Per-Table Tablespaces":

In my.cnf

[mysqld]
innodb_file_per_table=1

sparsebundle

Explore sparsebundle

Mount *.sparsebundle / *.backupbundle first: hdiutil attach My.sparsebundle

  • tmutil (with compare, uniquesize or calculatedrift): tmutil compare /Volumes/MyBackupVolume/Backups.backupdb/$COMPUTE_NAME%/2016-02-18-090818 /Volumes/MyBackupVolume/Backups.backupdb/$COMPUTE_NAME/2016-02-18-102050. + added file, - removed file, ! changed file

  • diskutil umount force /Volumes/com.apple.TimeMachine.TM_Prime-DA16D91F-3320-4834-91ED-2902CE57E46D

  • BackupLoupe - Explore version (compare changes, size)

  • TimeTracker by CharlesSoft - Not work well with network drives

  • find /path/to/your/latest/backup -type f -links 1 -print (Time Machine use hardlinks for unmodified files). But not realy usefull since some folder use hardlink too (and you can't exlude file in hardlinked folders)

Create or resize sparsebundle

Aka specify a size

Sparsebundle are use on network drives.

Create a sparsebundle of 320GiB or use 320000000000b (= 320GB)

hdiutil create -size 320g -type SPARSEBUNDLE -nospotlight -fs "HFS+J" -volname "MyMacBook Time Machine Backup" MyMacBook.sparsebundle
#
# Mount image
open MyMacBook.sparsebundle
# diskutil list
# sudo diskutil enableOwnership /dev/diskXsX
# Set Time Machine a destination volume
sudo tmutil setdestination "/Volumes/MyMacBook Time Machine Backup"

To create dynamic sparsebundle, create it without partition scheme.

Sparsebundle will increase by it's content

You can shrink sparseimage directly (should not be used). Could require a compact before

hdiutil resize -size 320g -shrinkonly /Volumes/Network_Drive_Name/path/to/timemachine.sparseimage
# -limits will just displays the minimum, current, and maximum sizes (in 512-byte sectors)
#!/bin/bash
# A bash script to create a time machine disk image suitable for
# backups with OS X 10.6 (Snow Leopard)
# This script probably only works for me, so try it at your own peril!
# Use, distribute, and modify as you see fit but leave this header intact.
# (R) sunkid - September 5, 2009

usage ()
{
     echo ${errmsg}"\n"
     echo "makeImage.sh"
     echo "	usage: makeImage.sh size [directory]"
     echo "	Create a disk image with a max storage size of <size> and copy it"
     echo "	to your backup volume (if specified)"
}

# test if we have two arguments on the command line
if [ $# -lt 1 ]
then
    usage
    exit
fi

# see if there are two arguments and we can write to the directory
if [ $# == 2 ]
then
	if [ ! -d $2 ]
	then
 		errmsg=${2}": No such directory"
    	usage
    	exit
	fi
	if [ ! -w $2 ]
	then
		errmsg="Cannot write to "${2}
		usage
    	exit
	fi
fi

SIZE=$1
DIR=$2
NAME=`scutil --get ComputerName`;
UUID=`system_profiler SPHardwareDataType | grep 'Hardware UUID' | awk '{print $3}'`

# get busy
echo -n "Generating disk image ${NAME}.sparsebundle with size ${SIZE}GB ... "
hdiutil create -size ${SIZE}G -fs HFS+J -type SPARSEBUNDLE \
	-volname 'Time Machine Backups' "${NAME}.sparsebundle" >> /dev/null 2>&1

echo "done!"

echo -n "Generating property list file with uuid $UUID ... "

PLIST=$(cat <<EOFPLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>com.apple.backupd.HostUUID</key>
        <string>$UUID</string>
</dict>
</plist>
EOFPLIST
)

echo $PLIST > "${NAME}.sparsebundle"/com.apple.TimeMachine.MachineID.plist
echo "done!"

if [ $# == 2 ]
then
	echo -n "Copying ${NAME}.sparsebundle to $DIR ... "
	cp -pfr "${NAME}.sparsebundle" $DIR/"${NAME}.sparsebundle"
	echo "done"
fi

echo "Finished! Happy backups!"

Change sparsebundle band size

If "Time Machine must recreate a new copy" occure too often, or if after few month of TM use, back is slow, or if the host of the sparsebundle don't support well lot of file in one dir (ex: ext4 <40000)

By default Time Machine use band in sparsebundle with size of 8MiB. It's can be problematic when the size of the backup is > 300GB. 16MiB (32768 blocks) could be a good compromise.

hdiutil convert -format UDSB -imagekey sparse-band-size=32768 -o new.sparsebundle old.sparsebundle
# Will take lot of time ~ hours
cp old.sparsebundle/com.apple.TimeMachine.MachineID* new.sparsebundle/

Note: Increase band size only for unencrypted backups. Large bands could be problematic with encrypted backups (take lot of time): download band, decrypt, update, encrypt then finally upload

The sparse-band-size parameter is the number of 512-byte sectors (chunks), not the number of bytes. Since 512 is 1/2 1,024, then 262,144 B / 2 = 128 KiB.

Where 262144 equals 128MiB bands/byte sectors (128 MiBytes == 128*1024*1024 bytes == 128*1024*1024/512 blocks = 262144 blocks, 262144 / 2 / 1024 = 128MiB)

Read it (for mounted sparsebundle):

hdiutil info -verbose | grep band-size
# Or accessible in Info.plist in the .sparsebundle

Backup into a sparsebundle file

This format is often created to backup on a shared network volume (that is not HFS+)

Mount it (db click in Finder) and

sudo tmutil setdestination /Volumes/name-of-the-mounted-sparsebundle

SparseBundle sould be at the root of the volume. A workaround is to create a symbolic link ln -s /volume1/backups/subfolder/subfolder/BackupImage.sparsebundle BackupImage.sparsebundle, but only supported on OSX (Unix folder symlink are forbidden)

Can be required

sudo diskutil enableOwnership /dev/disk2s2

Control when to backup

More control, by can impact performances (battery, powernap, integrity, etc.)

Change:

  • (before 10.8) sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int 7200 (7200 in seconds eq. 2 hours)

  • (10.8+) update BackupInterval in /System/Library/LaunchDaemons/com.apple.backupd-auto.plist

Or use an app:

Restore from a Time Machine backup

You can't restore this backup because it was created by a different model of Mac

Could restore from a Time Machine Backup with Migration Assistant.

Restore from a Time Machine backup should restore all files, but few things are not:

  • System Preferences > Keyboard > Keyboard Shortcuts (key mapping, "open terminal here", etc.)

  • Few softwares require to re-enter licencies credentials (which depends on hardware finger print?)

  • Some login credentials

  • System Preferences > Security & Privacy

  • scanners and printers drivers and configurations

  • file type/protocol association

  • Character map recent and favs

Also don't erase immediatly all TM snapshots, some are not complete due to concurency with software that also write on disk in same time (or use large files)

Change harddrive

sudo tmutil associatedisk -a mount_point snapshot_volume
sudo tmutil inheritbackup {machine_directory | sparsebundle}

Local snapshots

sudo tmutil enablelocal
sudo tmutil disablelocal
tmutil snapshot

In folder /.MobileBackups

  • http://pondini.org/TM/30.html

  • http://apple.stackexchange.com/questions/80183/any-way-to-change-the-location-of-time-machine-local-backups-mobilebackups-t

  • http://support.apple.com/kb/HT4878

Remove specific file from Time Machine backup

Reduce size

tmutil listbackups
sudo tmutil delete '/Volumes/Time Machine Backups/Backups.backupdb/.../2018-'{01,02,03,04}*
sudo hdiutil compact '/Volumes/....sparsebundle'

Troubleshooting

Catalina have issue with SMB (often disconnected and sometimes can't reconnect). Force to use AFP mounted disk instead. See Time Machine in Catalina 10.15.3 has serious bugs – The Eclectic Light Company and Catalina - no longer access NAS via Finder? Time Machine not working. | Synology Community

Stuck on "Preparing backup..."

It's often related to spotlight indexing (can't backup when spotlight is indexing)

The backup is already in use

Aka "Failed to unmount disk mounted at [...]" on the server

On the server, disconnect the user or restart the AFP service

Time Machine backup is very slow

Disable low priority process throttle: sudo sysctl -w debug.lowpri_throttle_enabled=0. Check before if it's happend with sudo fs_usage -w -f filesys backupd

See also if it use SMB Shares, it could be slow itself (due to protocol version use or signing).

Other Time Machines errors

Time Machine Volume on Network

Via AFP (depreciated) or SMB protocols

Sparsebundle disk images cannot, however, be saved on SMB volumes and a handful of other filesystems due to their lack of support for "F_FULLFSYNC", which is a filesystem command that instructs the disk to write data from cache to media.

If you are using Netatalk version 2.0.5 or better, this has the special new features added to avoid Time Machine disk corruption. If you have a version of Netatalk earlier than 2.0.5 (e.g. Ubuntu 9.10 currently has 2.0.4) [..]

If you have Netatalk 2.0.5 installed, you should add the option “tm” to any share you use for Time Machine, in the AppleVolumes.default config file.

Using Ubuntu for Time Machine in Snow Leopard – Delivering Quality

sudo tmutil setdestination -p smb://user@Server._smb._tcp.local./Mount or sudo tmutil setdestination -p afp://user@Server.local/Mount

macOS Monterey have issues with TimeMachine to mount volume over SMB. Try use AFP instead.

iSCSI initiator

But how to restore, since iSCSI is not supported natively?

Quota

Limit per client:

cat > .com.apple.TimeMachine.quota.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GlobalQuota</key>
<integer>120000000000</integer><!-- size in bytes -->
</dict>
</plist>
EOF
chmod 644 .com.apple.TimeMachine.quota.plist

Large modified files

Since TM it's a file level not block level backup, these files can be corrupted (not include all updates), because rewritten (partially or not) when backup, all changes are not backup. That means this files are backup corrupted.

Ex: Virtual Machine disk

Ex: MySql DB files. Solution: cron mysqldump hourly (or less if large DB) + exlude DB files

OS

  • OpenCore Legacy Patcher - "breathe new life into Macs no longer supported by Apple, allowing for the installation and usage of macOS Big Sur and newer on machines as old as 2007"

Install macOS

Use Option-Command (⌘)-R at startup to reinstall lastest version of the OS: How to reinstall macOS - Apple Support For clean install, erase the drive with Disk Utility (macOS Recovery) first

Create ISO installer:

hdiutil create -o /tmp/Catalina -size 8050m -volname Catalina -layout SPUD -fs HFS+J
hdiutil attach /tmp/Catalina.dmg -noverify -mountpoint /Volumes/Catalina
sudo "/Applications/Install macOS Catalina.app/Contents/Resources/createinstallmedia" --volume /Volumes/Catalina --nointeraction
hdiutil detach "/Volumes/Install macOS Catalina"
hdiutil convert /tmp/Catalina.dmg -format UDTO -o ~/Desktop/Catalina.cdr
mv ~/Desktop/Catalina.cdr ~/Desktop/Catalina.iso

Install on Virtual Machine

cd "C:\Program Files\Oracle\VirtualBox\"
#
# Virtualbox 5.x 00000001 000106e5 00100800 0098e3fd bfebfbff
# Virtualbox 4.x 00000001 000306a9 04100800 7fbae3ff bfebfbff
VBoxManage.exe modifyvm "Virtual Machine Name" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
# use "MacBookPro11,3"
VBoxManage setextradata "Virtual Machine Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "Virtual Machine Name" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
# "Mac-2BD1B31983FE1663"
VBoxManage setextradata "Virtual Machine Name" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "Virtual Machine Name" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "Virtual Machine Name" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

Bootable USB

hdiutil convert -format UDRW -o /path/to/target.img /path/to/ubuntu.iso
diskutil list
# (determine the device node assigned to your flash media (e.g. /dev/disk2))
diskutil unmountDisk /dev/diskN
sudo dd if=/path/to/downloaded.img.dmg of=/dev/rdiskN bs=1M
diskutil eject /dev/diskN

macOS on Bootable USB

On an HFS+ (Journaled) formatted USB drive

sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction
sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ macOS\ Sierra.app --nointeraction

Bootloader

Migration Assistant

Migration Assistant doesn’t overwrite new versions of applications with older ones [...] won’t overwrite an account with the same name by default. Migration Assistant prompts you about whether you want to rename the account from the old computer or overwrite the account on the new computer with the files from the old Mac [...] Files stored outside user accounts won’t be overwritten, but they could be merged, so a folder might contain a collection of old and new files.

  • Applications (/Applications and /Library/Application)

  • User accounts and groups (reset UserShell and NFSHomeDirectory for created users) For macports, see:

    #!/bin/sh
    
    # Fix MacPorts user config
    # Sources here: https://trac.macports.org/browser/trunk/base/portmgr/dmg/postflight.in?rev=154110#L159
    
    # Variable provided by postinstall script, extracted from MacPort installer package (*.pkg)
    PREFIX="/opt/local"
    DSCL=/usr/bin/dscl
    RUNUSR=macports
    
    # List all users:
    # ${DSCL} . list /Users | grep -E -v ^_
    # Read user infos
    # ${DSCL} . read "/Users/${RUNUSR}"
    
    ${DSCL} -q . -delete "/Users/${RUNUSR}" AuthenticationAuthority
    ${DSCL} -q . -delete "/Users/${RUNUSR}" PasswordPolicyOptions
    ${DSCL} -q . -delete "/Users/${RUNUSR}" dsAttrTypeNative:KerberosKeys
    ${DSCL} -q . -delete "/Users/${RUNUSR}" dsAttrTypeNative:ShadowHashData
    ${DSCL} -q . -create "/Users/${RUNUSR}" RealName MacPorts
    ${DSCL} -q . -create "/Users/${RUNUSR}" Password "*"
    ${DSCL} -q . -create "/Users/${RUNUSR}" PrimaryGroupID "$(${DSCL} -q . -read "/Groups/${RUNUSR}" PrimaryGroupID | /usr/bin/awk '{print $2}')"
    ${DSCL} -q . -create "/Users/${RUNUSR}" NFSHomeDirectory "${PREFIX}/var/macports/home"
    ${DSCL} -q . -create "/Users/${RUNUSR}" UserShell /usr/bin/false

    For Wireshark, see:

  • Other files and folders, which covers the Shared folder in the Users folder and folders you created at the top level of a drive

  • Computer & Network Settings

Setup Assistant (from clean install) or via /Applications/Utilities/Migration Assistant.app (could be problematic when migrate already exist accounts).

but doesn't migrate:

Cleanup from previous upgrades

Use the Recovery System (restart and hold CMD+R)

Generate a list of files:

LC_ALL=en_US.UTF-8 sudo find "/Volumes/Macintosh HD" -exec ls -Ald {} \; > tree.txt

Compare 2 version (before and after clean upgrade):

comm -13 <(cat tree-pristine.txt | grep -o '/Volumes/.*' - | sort) <(cat tree-dirty.txt | grep -o '/Volumes/.*' - | sort)

After OS update some config files are replaced, where then previous one are kept and renamed as *~orig or *~previous

Note dirname command is not available in Recovery System

Before remove, backup unwanted files:

mkdir -p "/Volumes/XX" && mv "/Volumes/XX/YY" "/Volumes/XX/ZZ/Volumes/XX/YY"

Files can be removed in 10.13.6:

# Not sure
/Volumes/Macintosh HD/usr/share/current-os.sdk
/Volumes/Macintosh HD/usr/libexec/cups/backend/cups-pdf

find "/Volumes/Macintosh HD/" \( -name "*~orig" -o -name "*~previous" \) -exec rm -rf {} \;

/Volumes/Macintosh HD/usr/local/sbin/mount_fusefs_txantfs
/Volumes/Macintosh HD/usr/local/sbin/newfs_fusefs_txantfs

# For pre SIP with XQuartz and MacFUSE (or remains) installed:
/Volumes/Macintosh HD/usr/X11
/Volumes/Macintosh HD/usr/X11R6
/Volumes/Macintosh HD/usr/bin/X
/Volumes/Macintosh HD/usr/bin/Xephyr
/Volumes/Macintosh HD/usr/bin/Xfake
/Volumes/Macintosh HD/usr/bin/Xnest
/Volumes/Macintosh HD/usr/bin/Xorg
/Volumes/Macintosh HD/usr/bin/Xquartz
/Volumes/Macintosh HD/usr/bin/Xvfb
/Volumes/Macintosh HD/usr/bin/appres
/Volumes/Macintosh HD/usr/bin/atobm
/Volumes/Macintosh HD/usr/bin/bdftopcf
/Volumes/Macintosh HD/usr/bin/bdftruncate
/Volumes/Macintosh HD/usr/bin/bitmap
/Volumes/Macintosh HD/usr/bin/bmtoa
/Volumes/Macintosh HD/usr/bin/cups-calibrate
/Volumes/Macintosh HD/usr/bin/cvt
/Volumes/Macintosh HD/usr/bin/cxpm
/Volumes/Macintosh HD/usr/bin/editres
/Volumes/Macintosh HD/usr/bin/escputil
/Volumes/Macintosh HD/usr/bin/fc-cache
/Volumes/Macintosh HD/usr/bin/fc-cat
/Volumes/Macintosh HD/usr/bin/fc-list
/Volumes/Macintosh HD/usr/bin/fc-match
/Volumes/Macintosh HD/usr/bin/fc-pattern
/Volumes/Macintosh HD/usr/bin/fc-query
/Volumes/Macintosh HD/usr/bin/fc-scan
/Volumes/Macintosh HD/usr/bin/fc-validate
/Volumes/Macintosh HD/usr/bin/font_cache
/Volumes/Macintosh HD/usr/bin/fonttosfnt
/Volumes/Macintosh HD/usr/bin/freetype-config
/Volumes/Macintosh HD/usr/bin/fslsfonts
/Volumes/Macintosh HD/usr/bin/fstobdf
/Volumes/Macintosh HD/usr/bin/gccmakedep
/Volumes/Macintosh HD/usr/bin/glxgears
/Volumes/Macintosh HD/usr/bin/glxinfo
/Volumes/Macintosh HD/usr/bin/gtf
/Volumes/Macintosh HD/usr/bin/iceauth
/Volumes/Macintosh HD/usr/bin/ico
/Volumes/Macintosh HD/usr/bin/koi8rxterm
/Volumes/Macintosh HD/usr/bin/libpng-config
/Volumes/Macintosh HD/usr/bin/libpng16-config
/Volumes/Macintosh HD/usr/bin/listres
/Volumes/Macintosh HD/usr/bin/lndir
/Volumes/Macintosh HD/usr/bin/luit
/Volumes/Macintosh HD/usr/bin/makedepend
/Volumes/Macintosh HD/usr/bin/mkfontdir
/Volumes/Macintosh HD/usr/bin/mkfontscale
/Volumes/Macintosh HD/usr/bin/oclock
/Volumes/Macintosh HD/usr/bin/png-fix-itxt
/Volumes/Macintosh HD/usr/bin/pngfix
/Volumes/Macintosh HD/usr/bin/quartz-wm
/Volumes/Macintosh HD/usr/bin/resize
/Volumes/Macintosh HD/usr/bin/rvictl
/Volumes/Macintosh HD/usr/bin/sessreg
/Volumes/Macintosh HD/usr/bin/setxkbmap
/Volumes/Macintosh HD/usr/bin/showfont
/Volumes/Macintosh HD/usr/bin/showrgb
/Volumes/Macintosh HD/usr/bin/smproxy
/Volumes/Macintosh HD/usr/bin/startx
/Volumes/Macintosh HD/usr/bin/sxpm
/Volumes/Macintosh HD/usr/bin/twm
/Volumes/Macintosh HD/usr/bin/ucs2any
/Volumes/Macintosh HD/usr/bin/uxterm
/Volumes/Macintosh HD/usr/bin/viewres
/Volumes/Macintosh HD/usr/bin/x11perf
/Volumes/Macintosh HD/usr/bin/x11perfcomp
/Volumes/Macintosh HD/usr/bin/xauth
/Volumes/Macintosh HD/usr/bin/xbacklight
/Volumes/Macintosh HD/usr/bin/xcalc
/Volumes/Macintosh HD/usr/bin/xclipboard
/Volumes/Macintosh HD/usr/bin/xclock
/Volumes/Macintosh HD/usr/bin/xcmsdb
/Volumes/Macintosh HD/usr/bin/xcompmgr
/Volumes/Macintosh HD/usr/bin/xconsole
/Volumes/Macintosh HD/usr/bin/xcursorgen
/Volumes/Macintosh HD/usr/bin/xcutsel
/Volumes/Macintosh HD/usr/bin/xditview
/Volumes/Macintosh HD/usr/bin/xdm
/Volumes/Macintosh HD/usr/bin/xdmshell
/Volumes/Macintosh HD/usr/bin/xdpr
/Volumes/Macintosh HD/usr/bin/xdpyinfo
/Volumes/Macintosh HD/usr/bin/xedit
/Volumes/Macintosh HD/usr/bin/xev
/Volumes/Macintosh HD/usr/bin/xeyes
/Volumes/Macintosh HD/usr/bin/xfd
/Volumes/Macintosh HD/usr/bin/xfindproxy
/Volumes/Macintosh HD/usr/bin/xfontsel
/Volumes/Macintosh HD/usr/bin/xfs
/Volumes/Macintosh HD/usr/bin/xfsinfo
/Volumes/Macintosh HD/usr/bin/xgamma
/Volumes/Macintosh HD/usr/bin/xgc
/Volumes/Macintosh HD/usr/bin/xhost
/Volumes/Macintosh HD/usr/bin/xinit
/Volumes/Macintosh HD/usr/bin/xinput
/Volumes/Macintosh HD/usr/bin/xkbbell
/Volumes/Macintosh HD/usr/bin/xkbcomp
/Volumes/Macintosh HD/usr/bin/xkbevd
/Volumes/Macintosh HD/usr/bin/xkbprint
/Volumes/Macintosh HD/usr/bin/xkbvleds
/Volumes/Macintosh HD/usr/bin/xkbwatch
/Volumes/Macintosh HD/usr/bin/xkeystone
/Volumes/Macintosh HD/usr/bin/xkill
/Volumes/Macintosh HD/usr/bin/xload
/Volumes/Macintosh HD/usr/bin/xlogo
/Volumes/Macintosh HD/usr/bin/xlsatoms
/Volumes/Macintosh HD/usr/bin/xlsclients
/Volumes/Macintosh HD/usr/bin/xlsfonts
/Volumes/Macintosh HD/usr/bin/xmag
/Volumes/Macintosh HD/usr/bin/xman
/Volumes/Macintosh HD/usr/bin/xmessage
/Volumes/Macintosh HD/usr/bin/xmh
/Volumes/Macintosh HD/usr/bin/xmodmap
/Volumes/Macintosh HD/usr/bin/xmore
/Volumes/Macintosh HD/usr/bin/xpr
/Volumes/Macintosh HD/usr/bin/xprop
/Volumes/Macintosh HD/usr/bin/xrandr
/Volumes/Macintosh HD/usr/bin/xrdb
/Volumes/Macintosh HD/usr/bin/xrefresh
/Volumes/Macintosh HD/usr/bin/xscope
/Volumes/Macintosh HD/usr/bin/xset
/Volumes/Macintosh HD/usr/bin/xsetmode
/Volumes/Macintosh HD/usr/bin/xsetpointer
/Volumes/Macintosh HD/usr/bin/xsetroot
/Volumes/Macintosh HD/usr/bin/xsm
/Volumes/Macintosh HD/usr/bin/xstdcmap
/Volumes/Macintosh HD/usr/bin/xterm
/Volumes/Macintosh HD/usr/bin/xvinfo
/Volumes/Macintosh HD/usr/bin/xwd
/Volumes/Macintosh HD/usr/bin/xwininfo
/Volumes/Macintosh HD/usr/bin/xwud
/Volumes/Macintosh HD/usr/include
/Volumes/Macintosh HD/usr/lib/X11
/Volumes/Macintosh HD/usr/lib/bundle1.o
/Volumes/Macintosh HD/usr/lib/crt1.10.5.o
/Volumes/Macintosh HD/usr/lib/crt1.10.6.o
/Volumes/Macintosh HD/usr/lib/crt1.o
/Volumes/Macintosh HD/usr/lib/dri
/Volumes/Macintosh HD/usr/lib/dylib1.10.5.o
/Volumes/Macintosh HD/usr/lib/dylib1.o
/Volumes/Macintosh HD/usr/lib/flat_namespace
/Volumes/Macintosh HD/usr/lib/gcrt1.o
/Volumes/Macintosh HD/usr/lib/lazydylib1.o
/Volumes/Macintosh HD/usr/lib/libATCommandStudio.a
/Volumes/Macintosh HD/usr/lib/libAppleWM.7.dylib
/Volumes/Macintosh HD/usr/lib/libAppleWM.dylib
/Volumes/Macintosh HD/usr/lib/libFS.6.dylib
/Volumes/Macintosh HD/usr/lib/libFS.dylib
/Volumes/Macintosh HD/usr/lib/libGL.1.dylib
/Volumes/Macintosh HD/usr/lib/libGL.dylib
/Volumes/Macintosh HD/usr/lib/libGLESv1_CM.1.dylib
/Volumes/Macintosh HD/usr/lib/libGLESv1_CM.dylib
/Volumes/Macintosh HD/usr/lib/libGLESv2.2.dylib
/Volumes/Macintosh HD/usr/lib/libGLESv2.dylib
/Volumes/Macintosh HD/usr/lib/libGLU.1.dylib
/Volumes/Macintosh HD/usr/lib/libGLU.dylib
/Volumes/Macintosh HD/usr/lib/libICE.6.dylib
/Volumes/Macintosh HD/usr/lib/libICE.dylib
/Volumes/Macintosh HD/usr/lib/libOSMesa.8.dylib
/Volumes/Macintosh HD/usr/lib/libOSMesa.dylib
/Volumes/Macintosh HD/usr/lib/libQMIParser.a
/Volumes/Macintosh HD/usr/lib/libSM.6.dylib
/Volumes/Macintosh HD/usr/lib/libSM.dylib
/Volumes/Macintosh HD/usr/lib/libX11-xcb.1.dylib
/Volumes/Macintosh HD/usr/lib/libX11-xcb.dylib
/Volumes/Macintosh HD/usr/lib/libX11.6.dylib
/Volumes/Macintosh HD/usr/lib/libX11.dylib
/Volumes/Macintosh HD/usr/lib/libXRes.1.dylib
/Volumes/Macintosh HD/usr/lib/libXRes.dylib
/Volumes/Macintosh HD/usr/lib/libXTrap.6.dylib
/Volumes/Macintosh HD/usr/lib/libXTrap.dylib
/Volumes/Macintosh HD/usr/lib/libXau.6.dylib
/Volumes/Macintosh HD/usr/lib/libXau.dylib
/Volumes/Macintosh HD/usr/lib/libXaw.6.dylib
/Volumes/Macintosh HD/usr/lib/libXaw.7.dylib
/Volumes/Macintosh HD/usr/lib/libXaw.8.dylib
/Volumes/Macintosh HD/usr/lib/libXaw.dylib
/Volumes/Macintosh HD/usr/lib/libXaw3d.8.dylib
/Volumes/Macintosh HD/usr/lib/libXaw3d.dylib
/Volumes/Macintosh HD/usr/lib/libXaw6.6.dylib
/Volumes/Macintosh HD/usr/lib/libXaw6.dylib
/Volumes/Macintosh HD/usr/lib/libXaw7.7.dylib
/Volumes/Macintosh HD/usr/lib/libXaw7.dylib
/Volumes/Macintosh HD/usr/lib/libXaw8.8.dylib
/Volumes/Macintosh HD/usr/lib/libXaw8.dylib
/Volumes/Macintosh HD/usr/lib/libXcomposite.1.dylib
/Volumes/Macintosh HD/usr/lib/libXcomposite.dylib
/Volumes/Macintosh HD/usr/lib/libXcursor.1.dylib
/Volumes/Macintosh HD/usr/lib/libXcursor.dylib
/Volumes/Macintosh HD/usr/lib/libXdamage.1.dylib
/Volumes/Macintosh HD/usr/lib/libXdamage.dylib
/Volumes/Macintosh HD/usr/lib/libXdmcp.6.dylib
/Volumes/Macintosh HD/usr/lib/libXdmcp.dylib
/Volumes/Macintosh HD/usr/lib/libXevie.1.dylib
/Volumes/Macintosh HD/usr/lib/libXevie.dylib
/Volumes/Macintosh HD/usr/lib/libXext.6.dylib
/Volumes/Macintosh HD/usr/lib/libXext.dylib
/Volumes/Macintosh HD/usr/lib/libXfixes.3.dylib
/Volumes/Macintosh HD/usr/lib/libXfixes.dylib
/Volumes/Macintosh HD/usr/lib/libXfont.1.dylib
/Volumes/Macintosh HD/usr/lib/libXfont.dylib
/Volumes/Macintosh HD/usr/lib/libXfont2.2.dylib
/Volumes/Macintosh HD/usr/lib/libXfont2.dylib
/Volumes/Macintosh HD/usr/lib/libXfontcache.1.dylib
/Volumes/Macintosh HD/usr/lib/libXfontcache.dylib
/Volumes/Macintosh HD/usr/lib/libXft.2.dylib
/Volumes/Macintosh HD/usr/lib/libXft.dylib
/Volumes/Macintosh HD/usr/lib/libXi.6.dylib
/Volumes/Macintosh HD/usr/lib/libXi.dylib
/Volumes/Macintosh HD/usr/lib/libXinerama.1.dylib
/Volumes/Macintosh HD/usr/lib/libXinerama.dylib
/Volumes/Macintosh HD/usr/lib/libXmu.6.dylib
/Volumes/Macintosh HD/usr/lib/libXmu.dylib
/Volumes/Macintosh HD/usr/lib/libXmuu.1.dylib
/Volumes/Macintosh HD/usr/lib/libXmuu.dylib
/Volumes/Macintosh HD/usr/lib/libXp.6.dylib
/Volumes/Macintosh HD/usr/lib/libXp.dylib
/Volumes/Macintosh HD/usr/lib/libXpm.4.dylib
/Volumes/Macintosh HD/usr/lib/libXpm.dylib
/Volumes/Macintosh HD/usr/lib/libXpresent.1.dylib
/Volumes/Macintosh HD/usr/lib/libXpresent.dylib
/Volumes/Macintosh HD/usr/lib/libXrandr.2.dylib
/Volumes/Macintosh HD/usr/lib/libXrandr.dylib
/Volumes/Macintosh HD/usr/lib/libXrender.1.dylib
/Volumes/Macintosh HD/usr/lib/libXrender.dylib
/Volumes/Macintosh HD/usr/lib/libXss.1.dylib
/Volumes/Macintosh HD/usr/lib/libXss.dylib
/Volumes/Macintosh HD/usr/lib/libXt.6.dylib
/Volumes/Macintosh HD/usr/lib/libXt.7.dylib
/Volumes/Macintosh HD/usr/lib/libXt.dylib
/Volumes/Macintosh HD/usr/lib/libXtst.6.dylib
/Volumes/Macintosh HD/usr/lib/libXtst.dylib
/Volumes/Macintosh HD/usr/lib/libXv.1.dylib
/Volumes/Macintosh HD/usr/lib/libXv.dylib
/Volumes/Macintosh HD/usr/lib/libXvMC.1.dylib
/Volumes/Macintosh HD/usr/lib/libXvMC.dylib
/Volumes/Macintosh HD/usr/lib/libXvMCW.1.dylib
/Volumes/Macintosh HD/usr/lib/libXvMCW.dylib
/Volumes/Macintosh HD/usr/lib/libXxf86misc.1.dylib
/Volumes/Macintosh HD/usr/lib/libXxf86misc.dylib
/Volumes/Macintosh HD/usr/lib/libXxf86vm.1.dylib
/Volumes/Macintosh HD/usr/lib/libXxf86vm.dylib
/Volumes/Macintosh HD/usr/lib/libcairo-script-interpreter.2.dylib
/Volumes/Macintosh HD/usr/lib/libcairo-script-interpreter.dylib
/Volumes/Macintosh HD/usr/lib/libcairo.2.dylib
/Volumes/Macintosh HD/usr/lib/libcairo.dylib
/Volumes/Macintosh HD/usr/lib/libdmx.1.dylib
/Volumes/Macintosh HD/usr/lib/libdmx.dylib
/Volumes/Macintosh HD/usr/lib/libfontconfig.1.dylib
/Volumes/Macintosh HD/usr/lib/libfontconfig.dylib
/Volumes/Macintosh HD/usr/lib/libfontenc.1.dylib
/Volumes/Macintosh HD/usr/lib/libfontenc.dylib
/Volumes/Macintosh HD/usr/lib/libfreetype.6.dylib
/Volumes/Macintosh HD/usr/lib/libfreetype.dylib
/Volumes/Macintosh HD/usr/lib/libgcc_s.10.4.dylib
/Volumes/Macintosh HD/usr/lib/libgcc_s.10.5.dylib
/Volumes/Macintosh HD/usr/lib/libglapi.0.dylib
/Volumes/Macintosh HD/usr/lib/libglapi.dylib
/Volumes/Macintosh HD/usr/lib/libglut.3.dylib
/Volumes/Macintosh HD/usr/lib/libglut.dylib
/Volumes/Macintosh HD/usr/lib/libgutenprint.2.dylib
/Volumes/Macintosh HD/usr/lib/libkmod.a
/Volumes/Macintosh HD/usr/lib/libkmodc++.a
/Volumes/Macintosh HD/usr/lib/libl.a
/Volumes/Macintosh HD/usr/lib/libpixman-1.0.dylib
/Volumes/Macintosh HD/usr/lib/libpixman-1.dylib
/Volumes/Macintosh HD/usr/lib/libpkstart.a
/Volumes/Macintosh HD/usr/lib/libpng.3.dylib
/Volumes/Macintosh HD/usr/lib/libpng.dylib
/Volumes/Macintosh HD/usr/lib/libpng12.0.dylib
/Volumes/Macintosh HD/usr/lib/libpng14.14.dylib
/Volumes/Macintosh HD/usr/lib/libpng15.15.dylib
/Volumes/Macintosh HD/usr/lib/libpng16.16.dylib
/Volumes/Macintosh HD/usr/lib/libpng16.dylib
/Volumes/Macintosh HD/usr/lib/libtclstub8.5.a
/Volumes/Macintosh HD/usr/lib/libtkstub8.5.a
/Volumes/Macintosh HD/usr/lib/libxcb-atom.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-aux.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-composite.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-composite.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-cursor.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-cursor.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-damage.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-damage.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dpms.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dpms.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dri2.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dri2.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dri3.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-dri3.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-errors.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-errors.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-event.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-ewmh.2.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-ewmh.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-glx.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-glx.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-icccm.4.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-icccm.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-image.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-image.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-keysyms.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-keysyms.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-present.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-present.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-randr.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-randr.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-record.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-record.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-render-util.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-render-util.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-render.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-render.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-res.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-res.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-screensaver.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-screensaver.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-shape.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-shape.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-shm.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-shm.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-sync.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-sync.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-util.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-util.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-util.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xf86dri.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xf86dri.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xfixes.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xfixes.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xinerama.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xinerama.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xkb.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xkb.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xtest.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xtest.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xv.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xv.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xvmc.0.dylib
/Volumes/Macintosh HD/usr/lib/libxcb-xvmc.dylib
/Volumes/Macintosh HD/usr/lib/libxcb.1.dylib
/Volumes/Macintosh HD/usr/lib/libxcb.dylib
/Volumes/Macintosh HD/usr/lib/libxkbfile.1.dylib
/Volumes/Macintosh HD/usr/lib/libxkbfile.dylib
/Volumes/Macintosh HD/usr/lib/libxkbui.1.dylib
/Volumes/Macintosh HD/usr/lib/libxkbui.dylib
/Volumes/Macintosh HD/usr/lib/libxshmfence.1.dylib
/Volumes/Macintosh HD/usr/lib/libxshmfence.dylib
/Volumes/Macintosh HD/usr/lib/liby.a
/Volumes/Macintosh HD/usr/lib/pkgconfig/applewm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/applewmproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/bigreqsproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-fc.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-ft.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-pdf.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-png.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-ps.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-script.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-svg.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-tee.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xcb-shm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xcb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xlib-xcb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xlib-xrender.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xlib.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo-xml.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/cairo.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/compositeproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/damageproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/dmx.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/dmxproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/dri.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/dri2proto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/dri3proto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/evieproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fixesproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fontcacheproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fontconfig.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fontenc.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fontsproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/fontutil.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/freetype2.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/gl.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/glesv1_cm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/glesv2.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/glproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/glu.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/ice.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/inputproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/kbproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/libfs.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/libpng.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/libpng16.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/osmesa.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/pixman-1.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/presentproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/printproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/pthread-stubs.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/randrproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/recordproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/renderproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/resourceproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/scrnsaverproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/sm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/trapproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/videoproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/x11-xcb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/x11.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xau.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xaw3d.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xaw6.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xaw7.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-atom.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-aux.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-composite.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-cursor.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-damage.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-dpms.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-dri2.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-dri3.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-errors.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-event.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-ewmh.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-glx.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-icccm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-image.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-keysyms.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-present.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-proto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-randr.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-record.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-render.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-renderutil.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-res.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-screensaver.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-shape.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-shm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-sync.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-util.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xf86dri.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xfixes.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xinerama.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xkb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xtest.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xv.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb-xvmc.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcmiscproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcomposite.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xcursor.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xdamage.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xdmcp.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xevie.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xext.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xextproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86bigfontproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86dgaproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86driproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86miscproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86rushproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xf86vidmodeproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xfixes.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xfont.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xfont2.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xfontcache.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xft.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xi.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xinerama.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xineramaproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xkbcomp.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xkbfile.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xkbui.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xmu.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xmuu.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xorg-server.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xp.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xpm.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xpresent.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xproxymngproto.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xpyb.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xrandr.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xrender.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xres.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xscrnsaver.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xshmfence.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xt.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xtrap.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xtst.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xv.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xvmc.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xxf86misc.pc
/Volumes/Macintosh HD/usr/lib/pkgconfig/xxf86vm.pc
/Volumes/Macintosh HD/usr/lib/python2.6
/Volumes/Macintosh HD/usr/lib/xorg
/Volumes/Macintosh HD/usr/libexec/cups/filter/commandtocanon
/Volumes/Macintosh HD/usr/libexec/cups/filter/commandtoepson
/Volumes/Macintosh HD/usr/libexec/cups/filter/rastertogutenprint.5.2
/Volumes/Macintosh HD/usr/libexec/cups/filter/thnucups
/Volumes/Macintosh HD/usr/libexec/launchd_startx
/Volumes/Macintosh HD/usr/libexec/privileged_startx
/Volumes/Macintosh HD/usr/libexec/rpmuxd
/Volumes/Macintosh HD/usr/local/bin
/Volumes/Macintosh HD/usr/local/doc
/Volumes/Macintosh HD/usr/local/etc
/Volumes/Macintosh HD/usr/local/include
/Volumes/Macintosh HD/usr/local/lib
/Volumes/Macintosh HD/usr/local/man
/Volumes/Macintosh HD/usr/local/remotedesktop
/Volumes/Macintosh HD/usr/local/sbin
/Volumes/Macintosh HD/usr/local/share
/Volumes/Macintosh HD/usr/sbin/cups-genppd.5.2
/Volumes/Macintosh HD/usr/sbin/cups-genppdupdate
/Volumes/Macintosh HD/usr/share/aclocal
/Volumes/Macintosh HD/usr/share/doc/dri2proto
/Volumes/Macintosh HD/usr/share/doc/randrproto
/Volumes/Macintosh HD/usr/share/doc/xorg-docs
/Volumes/Macintosh HD/usr/share/gtk-doc
/Volumes/Macintosh HD/usr/share/man/man1/Xephyr.1
/Volumes/Macintosh HD/usr/share/man/man1/Xmark.1
/Volumes/Macintosh HD/usr/share/man/man1/Xnest.1
/Volumes/Macintosh HD/usr/share/man/man1/Xorg.1
/Volumes/Macintosh HD/usr/share/man/man1/Xquartz.1
/Volumes/Macintosh HD/usr/share/man/man1/Xserver.1
/Volumes/Macintosh HD/usr/share/man/man1/Xvfb.1
/Volumes/Macintosh HD/usr/share/man/man1/appres.1
/Volumes/Macintosh HD/usr/share/man/man1/atobm.1
/Volumes/Macintosh HD/usr/share/man/man1/bdftopcf.1
/Volumes/Macintosh HD/usr/share/man/man1/bdftruncate.1
/Volumes/Macintosh HD/usr/share/man/man1/bitmap.1
/Volumes/Macintosh HD/usr/share/man/man1/bmtoa.1
/Volumes/Macintosh HD/usr/share/man/man1/cvt.1
/Volumes/Macintosh HD/usr/share/man/man1/cxpm.1
/Volumes/Macintosh HD/usr/share/man/man1/editres.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-cache.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-cat.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-list.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-match.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-pattern.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-query.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-scan.1
/Volumes/Macintosh HD/usr/share/man/man1/fc-validate.1
/Volumes/Macintosh HD/usr/share/man/man1/fonttosfnt.1
/Volumes/Macintosh HD/usr/share/man/man1/freetype-config.1
/Volumes/Macintosh HD/usr/share/man/man1/fslsfonts.1
/Volumes/Macintosh HD/usr/share/man/man1/fstobdf.1
/Volumes/Macintosh HD/usr/share/man/man1/gccmakedep.1
/Volumes/Macintosh HD/usr/share/man/man1/gtf.1
/Volumes/Macintosh HD/usr/share/man/man1/iceauth.1
/Volumes/Macintosh HD/usr/share/man/man1/ico.1
/Volumes/Macintosh HD/usr/share/man/man1/koi8rxterm.1
/Volumes/Macintosh HD/usr/share/man/man1/listres.1
/Volumes/Macintosh HD/usr/share/man/man1/lndir.1
/Volumes/Macintosh HD/usr/share/man/man1/luit.1
/Volumes/Macintosh HD/usr/share/man/man1/makedepend.1
/Volumes/Macintosh HD/usr/share/man/man1/mkfontdir.1
/Volumes/Macintosh HD/usr/share/man/man1/mkfontscale.1
/Volumes/Macintosh HD/usr/share/man/man1/oclock.1
/Volumes/Macintosh HD/usr/share/man/man1/quartz-wm.1
/Volumes/Macintosh HD/usr/share/man/man1/resize.1
/Volumes/Macintosh HD/usr/share/man/man1/sessreg.1
/Volumes/Macintosh HD/usr/share/man/man1/setxkbmap.1
/Volumes/Macintosh HD/usr/share/man/man1/showfont.1
/Volumes/Macintosh HD/usr/share/man/man1/showrgb.1
/Volumes/Macintosh HD/usr/share/man/man1/smproxy.1
/Volumes/Macintosh HD/usr/share/man/man1/startx.1
/Volumes/Macintosh HD/usr/share/man/man1/sxpm.1
/Volumes/Macintosh HD/usr/share/man/man1/twm.1
/Volumes/Macintosh HD/usr/share/man/man1/ucs2any.1
/Volumes/Macintosh HD/usr/share/man/man1/uxterm.1
/Volumes/Macintosh HD/usr/share/man/man1/viewres.1
/Volumes/Macintosh HD/usr/share/man/man1/x11perf.1
/Volumes/Macintosh HD/usr/share/man/man1/x11perfcomp.1
/Volumes/Macintosh HD/usr/share/man/man1/xauth.1
/Volumes/Macintosh HD/usr/share/man/man1/xbacklight.1
/Volumes/Macintosh HD/usr/share/man/man1/xcalc.1
/Volumes/Macintosh HD/usr/share/man/man1/xclipboard.1
/Volumes/Macintosh HD/usr/share/man/man1/xclock.1
/Volumes/Macintosh HD/usr/share/man/man1/xcmsdb.1
/Volumes/Macintosh HD/usr/share/man/man1/xcompmgr.1
/Volumes/Macintosh HD/usr/share/man/man1/xconsole.1
/Volumes/Macintosh HD/usr/share/man/man1/xcursorgen.1
/Volumes/Macintosh HD/usr/share/man/man1/xcutsel.1
/Volumes/Macintosh HD/usr/share/man/man1/xditview.1
/Volumes/Macintosh HD/usr/share/man/man1/xdm.1
/Volumes/Macintosh HD/usr/share/man/man1/xdpr.1
/Volumes/Macintosh HD/usr/share/man/man1/xdpyinfo.1
/Volumes/Macintosh HD/usr/share/man/man1/xedit.1
/Volumes/Macintosh HD/usr/share/man/man1/xev.1
/Volumes/Macintosh HD/usr/share/man/man1/xeyes.1
/Volumes/Macintosh HD/usr/share/man/man1/xfd.1
/Volumes/Macintosh HD/usr/share/man/man1/xfindproxy.1
/Volumes/Macintosh HD/usr/share/man/man1/xfontsel.1
/Volumes/Macintosh HD/usr/share/man/man1/xfs.1
/Volumes/Macintosh HD/usr/share/man/man1/xfsinfo.1
/Volumes/Macintosh HD/usr/share/man/man1/xgamma.1
/Volumes/Macintosh HD/usr/share/man/man1/xgc.1
/Volumes/Macintosh HD/usr/share/man/man1/xhost.1
/Volumes/Macintosh HD/usr/share/man/man1/xinit.1
/Volumes/Macintosh HD/usr/share/man/man1/xinput.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbbell.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbcomp.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbevd.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbprint.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbvleds.1
/Volumes/Macintosh HD/usr/share/man/man1/xkbwatch.1
/Volumes/Macintosh HD/usr/share/man/man1/xkill.1
/Volumes/Macintosh HD/usr/share/man/man1/xload.1
/Volumes/Macintosh HD/usr/share/man/man1/xlogo.1
/Volumes/Macintosh HD/usr/share/man/man1/xlsatoms.1
/Volumes/Macintosh HD/usr/share/man/man1/xlsclients.1
/Volumes/Macintosh HD/usr/share/man/man1/xlsfonts.1
/Volumes/Macintosh HD/usr/share/man/man1/xmag.1
/Volumes/Macintosh HD/usr/share/man/man1/xman.1
/Volumes/Macintosh HD/usr/share/man/man1/xmessage.1
/Volumes/Macintosh HD/usr/share/man/man1/xmh.1
/Volumes/Macintosh HD/usr/share/man/man1/xmodmap.1
/Volumes/Macintosh HD/usr/share/man/man1/xmore.1
/Volumes/Macintosh HD/usr/share/man/man1/xpr.1
/Volumes/Macintosh HD/usr/share/man/man1/xprop.1
/Volumes/Macintosh HD/usr/share/man/man1/xrandr.1
/Volumes/Macintosh HD/usr/share/man/man1/xrdb.1
/Volumes/Macintosh HD/usr/share/man/man1/xrefresh.1
/Volumes/Macintosh HD/usr/share/man/man1/xscope.1
/Volumes/Macintosh HD/usr/share/man/man1/xset.1
/Volumes/Macintosh HD/usr/share/man/man1/xsetmode.1
/Volumes/Macintosh HD/usr/share/man/man1/xsetpointer.1
/Volumes/Macintosh HD/usr/share/man/man1/xsetroot.1
/Volumes/Macintosh HD/usr/share/man/man1/xsm.1
/Volumes/Macintosh HD/usr/share/man/man1/xstdcmap.1
/Volumes/Macintosh HD/usr/share/man/man1/xterm.1
/Volumes/Macintosh HD/usr/share/man/man1/xvinfo.1
/Volumes/Macintosh HD/usr/share/man/man1/xwd.1
/Volumes/Macintosh HD/usr/share/man/man1/xwininfo.1
/Volumes/Macintosh HD/usr/share/man/man1/xwud.1
/Volumes/Macintosh HD/usr/share/man/man2
/Volumes/Macintosh HD/usr/share/man/man3
/Volumes/Macintosh HD/usr/share/man/man4/exa.4
/Volumes/Macintosh HD/usr/share/man/man4/fbdevhw.4
/Volumes/Macintosh HD/usr/share/man/man4/void.4
/Volumes/Macintosh HD/usr/share/man/man5/Compose.5
/Volumes/Macintosh HD/usr/share/man/man5/XCompose.5
/Volumes/Macintosh HD/usr/share/man/man5/fonts-conf.5
/Volumes/Macintosh HD/usr/share/man/man5/png.5
/Volumes/Macintosh HD/usr/share/man/man5/xorg.conf.5
/Volumes/Macintosh HD/usr/share/man/man5/xorg.conf.d.5
/Volumes/Macintosh HD/usr/share/man/man7/Consortium.7
/Volumes/Macintosh HD/usr/share/man/man7/Standards.7
/Volumes/Macintosh HD/usr/share/man/man7/X.7
/Volumes/Macintosh HD/usr/share/man/man7/XOrgFoundation.7
/Volumes/Macintosh HD/usr/share/man/man7/XProjectTeam.7
/Volumes/Macintosh HD/usr/share/man/man7/Xprint.7
/Volumes/Macintosh HD/usr/share/man/man7/Xsecurity.7
/Volumes/Macintosh HD/usr/share/pixmaps
/Volumes/Macintosh HD/usr/share/pkgconfig
/Volumes/Macintosh HD/usr/share/sgml
/Volumes/Macintosh HD/usr/share/util-macros
/Volumes/Macintosh HD/usr/share/xml

Reset Setup Assistant

Integrate features of Migration Assistant.

Remove /var/db/.AppleSetupDone:

  1. reboot

  2. hold command + s

  3. in Terminal:

     mount -uw /
     rm /var/db/.AppleSetupDone
     shutdown -h now

or:

  1. reboot

  2. hold command + r

  3. in Terminal ("Mackintosh HD" is the default name of the main disk, depends what has been defined when macOS was installed):

     rm "/Volumes/Mackintosh HD/var/db/.AppleSetupDone"
     shutdown -h now

Boot Camp

Windows boot INACCESSIBLE_BOOT_DEVICE error (after Windows Updates):

How to install Windows:

Drivers:

Partitions:

Install on external drive:

Keyboard:

Bluetooth dual boot:

Change ownership

Network

Bandwidth limiter

Use "Network Link Conditioner" (but not work for localhost/127.0.0.1) or use a proxy instead (for HTTP/HTTPS)

Install:

  1. download "Additional Tools for Xcode" from https://developer.apple.com/download/more/?q=Additional%20Tools

  2. from DMG, double click to install Network Link Conditioner.prefPane

VPN

Local TLD

Use *.localhost instead of *.local. It's a reserved, internal TLD too.

Hosts files

Fake DNS records

Require root access to update the content:

sudo vi /etc/hosts
cd /Applications/Utilities/
ln -s /System/Library/CoreServices/Applications/Network\ Utility.app Network\ Utility.app

Moved in CoreServices in 10.9

Flush DNS cache

sudo killall -HUP mDNSResponder

Share network connection

UI

Finder, desktop, menus, etc.

Reveal Libray folder

chflags nohidden ~/Library

Show hidden files

Or use the combination of Shift ⇧ Cmd ⌘ . or Fn Shift ⇧ Cmd ⌘ . (for French NUM? keyboards)

defaults write com.apple.finder AppleShowAllFiles -bool YES && killall Finder
defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

Hide specific file on desktop

If hidden files are not visible:

chflags hidden file
chflags nohidden file

Else :

  1. Copy a transparent image (in preview: select image pixel area then copy)

  2. Past it as icon of targeted file

  3. Move to outside of desktop viewport

Reload "Open With" menu entries

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

Menulets are of small icons located at the upper right corner of the Menu Bar

/System/Library/CoreServices/Menu Extras/*.menu

Services

Aka quick actions

Located at ~/Library/Services/ and /System/Library/Services, packages *.workflow

Preferences > Extensions panel

To test a workflow with files, insert "Get Specified Finder Items" at the beginning

To assign a keyboard shortcut, in 10.6:

  1. open System Preferences > Keyboard > pane Keyboard Shortcuts

  2. select "Services" in the left pane

  3. scroll down to General in the right pane

  4. double-click to the right of the Automator workflow you just created

  5. press the keys you want to use, and switch panes to ensure the new shortcut is saved

For "Create a new file" quick action:

tell application "Finder"
	set selection to make new file at (get insertion location)
end tell

tell application "System Events"
	tell process "Finder"
		keystroke return
	end tell
end tell

Convert :

Shortcuts

An PList file

Finder view preferences System-wide

  1. Close all Finder windows

  2. find ~ -name ".DS_Store" -depth -exec rm -f {} \;

  3. Kill finder: Force Quit → Finder

  4. Open a Finder window, edit Folder View Options show and click on "Use as default"

Localizable resource name

That use short language ISO code (ISO639).

Dans les fichiers .strings les retours à la ligne sont marqué . Voir aussi """, "\". Le commentaires supporté (/* ... */ et // ...). Ces fichiers doivent être enregistré en UTF-16

https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemAdvancedPT/LocalizingtheNameofaDirectory/LocalizingtheNameofaDirectory.html

System (default)

Edit following file (require root's right)

System/Library/CoreServices/SystemFolderLocalizations/fr.lproj/SystemFolderLocalizations.strings
System/Library/CoreServices/SystemFolderLocalizations/zh_CN.lproj/SystemFolderLocalizations.strings

Add or update

"Stuff" = "Choses";

Stuff
	.localized

.localized is an empty file (0 bytes)

Folder

Stuff.localized
	.localized
		de.strings
		en.strings
		fr.strings
		zh-Hans.strings

In fr.strings:

"Stuff" = "Choses";
  • /Applications/VMware Fusion.app/Contents/ResourcesVirtual Machines.localized/.localized/* (VMware Fusion 7.0)

Bundle

Stuff
	Info.plist
	Resources
		de.lproj
		en.lproj
		fr.lproj
			InfoPlist.strings

In Stuff/Info.plist, we found:

<key>CFBundleDisplayName</key>
<string>Stuff</string>

It's not required but I we want localizable bundle, we need it.

We can found also NSHumanReadableCopyright (copyright) and CFBundleName (display app name in menu bar) which are also localizable.

In Stuff/Resources/fr.lproj/InfoPlist.strings, we found:

CFBundleDisplayName = "Choses";

Kiosk mode

Keyboard layout

macOS on a MacBook (without special keys like page up/down keys):

  • Page up : fn + up

  • Page down : fn + down

  • Home : fn + left

  • End : fn + right

  • Del : fn + backspace

  • Enter (num) : fn + return

Apple keyboard layout on Windows

See also Keyboard layout

Useful when you use a remote desktop connection. The host doesn't have the Apple keyboard layout.

DLL files are in %SystemRoot%\System32, copy them from Boot Camp drivers

Windows Registry Editor Version 5.00

; Layouts installed by Boot Camp Support driver package
; Layout files are relative to "%SystemRoot%\System32"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000404]
"Layout Component ID"="7F611C89DF564F01AE5B4A405192D1FB"
"Layout File"="ChinaTA.dll"
"Layout ID"="00e2"
"Layout Text"="Chinese Traditional (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000405]
"Layout Component ID"="0C8DA389245B4792B4960E336F62AC3E"
"Layout File"="CzechA.dll"
"Layout ID"="00d4"
"Layout Text"="Czech (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000406]
"Layout Component ID"="C3996498F423440FB9CE2732A821E7D9"
"Layout File"="DanishA.dll"
"Layout ID"="00cc"
"Layout Text"="Danish (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000407]
"Layout Component ID"="B616E2191BF048D4A554E5C6BE224AB4"
"Layout File"="GermanA.dll"
"Layout ID"="00c3"
"Layout Text"="German (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000409]
"Layout Component ID"="B422390FE3C04f3a917D15AD1ACD710F"
"Layout File"="USA.dll"
"Layout ID"="00d1"
"Layout Text"="United States (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000040a]
"Layout Component ID"="C3364C7C44BC444A88A50459135D35B5"
"Layout File"="SpanishA.dll"
"Layout ID"="00c5"
"Layout Text"="Spanish (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000040b]
"Layout Component ID"="ECE9937799D242F5AE0CAA446EDEDC62"
"Layout File"="FinnishA.dll"
"Layout ID"="00cb"
"Layout Text"="Finnish (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000040c]
"Layout Component ID"="2ECD3C77364749B18E910F9196B420FA"
"Layout File"="FrenchA.dll"
"Layout ID"="00c2"
"Layout Text"="French (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000040e]
"Layout Component ID"="725BE97D2AD14042BA539D96030F93AA"
"Layout File"="HungaryA.dll"
"Layout ID"="00d5"
"Layout Text"="Hungarian (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000410]
"Layout Component ID"="6401AAA6058F431181B445C26BEF22D9"
"Layout File"="ItalianA.dll"
"Layout ID"="00c4"
"Layout Text"="Italian (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000413]
"Layout Component ID"="3844B95343FB43D68E9695D6E88F016E"
"Layout File"="DutchA.dll"
"Layout ID"="00c1"
"Layout Text"="Dutch (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000414]
"Layout Component ID"="74BE397ABD8143E4960D38111394D1A3"
"Layout File"="NorwayA.dll"
"Layout ID"="00c9"
"Layout Text"="Norwegian (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000415]
"Layout Component ID"="D3D2841618E34D09ABBCA0DA34A60FAE"
"Layout File"="PolishA.dll"
"Layout ID"="00cf"
"Layout Text"="Polish (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000416]
"Layout Component ID"="326773935C8C4597B0738FE2084D44AD"
"Layout File"="PortuguA.dll"
"Layout ID"="00ce"
"Layout Text"="Portuguese (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000419]
"Layout Component ID"="B0F62A69BE9446488ED502E800DBC36C"
"Layout File"="RussianA.dll"
"Layout ID"="00c8"
"Layout Text"="Russian (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000041d]
"Layout Component ID"="8CC8067A1BFF4A0FAD38708DE4CD4BF1"
"Layout File"="SwedishA.dll"
"Layout ID"="00c7"
"Layout Text"="Swedish (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000041f]
"Layout Component ID"="2513D09A670B4d9bA8F1BDAAAA32176F"
"Layout File"="TurkeyQA.dll"
"Layout ID"="00d3"
"Layout Text"="Turkish Q (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000804]
"Layout Component ID"="472ECFB106AE4249B0ADCF62F91D8AEE"
"Layout File"="ChinaSA.dll"
"Layout ID"="00e1"
"Layout Text"="Chinese Simplified (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000809]
"Layout Component ID"="1A4D378083AD454BB4FE02F208614EB6"
"Layout File"="BritishA.dll"
"Layout ID"="00c0"
"Layout Text"="United Kingdom (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000813]
"Layout Component ID"="D70C1682E8F24ED4B5B70AAD37B1BA42"
"Layout File"="BelgiumA.dll"
"Layout ID"="00cd"
"Layout Text"="Belgian (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0000c0c]
"Layout Component ID"="517A729DDEC543E3A7F392E3F130C25F"
"Layout File"="CanadaA.dll"
"Layout ID"="00ca"
"Layout Text"="Canadian Multilingual (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a000100c]
"Layout Component ID"="CE4C7E2419DE400B8A553E1A5C3DCD04"
"Layout File"="SwissA.dll"
"Layout ID"="00c6"
"Layout Text"="Swiss (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a0020409]
"Layout Component ID"="241A34D0-06DB-405e-8B4E-8CA2FC34D1C7"
"Layout File"="IntlEngA.dll"
"Layout ID"="00d0"
"Layout Text"="United States-International (Apple)"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\a100041f]
"Layout Component ID"="D1502D2EF02F4e4b8D313D3C0B0457D0"
"Layout File"="TurkeyA.dll"
"Layout ID"="00d2"
"Layout Text"="Turkish F (Apple)"

Pointer

Aka mouse

Mouse acceleration

USB Overdrive works if you change system mouse speed to 0 (or -1)

System mouse speed

defaults read .GlobalPreferences com.apple.mouse.scaling
# same value as System Preferences > Mouse > Speed
#defaults write .GlobalPreferences com.apple.mouse.scaling -1

killmouseaccel:

Doesn't work with High Sierra due to depreciation of IOHID API.

#gcc killmouseaccel.c -o killmouseaccel -framework IOKit -framework Carbon
gcc killmouseaccel/main.c -o killmouseaccel/killmouseaccel -framework IOKit -framework Carbon
#chmod +x killmouseaccel
./killmouseaccel mouse

Restart Dock

Will restart Dock, Mission Control, Spaces, etc.

killall -KILL Dock

For menubar

killall -KILL SystemUIServer

Or Finder

killall -KILL Finder

Spaces in dock

defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'
killall Dock

Media keys start Music.app

Aka media keys start iTunes.app, remote control daemon (RCD), play/pause keys (or bluetooth) auto-starting Music/iTunes, apple remote, connecting bluetooth headset/headphone

Note: looklike the side effects is media keys (of the keyboard or touchbar) stop working

launchctl stop com.apple.rcd
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist

# Revert
launchctl start com.apple.rcd
launchctl load -w /System/Library/LaunchAgents/com.apple.rcd.plist

Continuity with Android

Disk, file system and paths

  • disk path: /dev/diskX where X is a number (start with 1)

  • mounted in /Volumes/XXXX

See FileVault

Extended attribute

Aka quarantine, icons, thumbnail, xattr

  • com.apple.FinderInfo, which sets some general flags for Finder, and can be used to assign a single Finder Tag;

  • com.apple.metadata:_kMDItemUserTags, which contains Finder Tag settings;

  • com.apple.metadata:kMDItemDownloadedDate, which contains the datestamp for when this item was downloaded;

  • com.apple.metadata:kMDItemFinderComment, which contains the text from the Finder Comment but does not actually set it;

  • com.apple.metadata:kMDItemWhereFroms, which contains the URL of the location from which the item was downloaded;

  • com.apple.quarantine, which forms the quarantine flag to determine if Gatekeeper should perform a full check when an app is first run.

Where did that metadata come from? – The Eclectic Light Company

See also Spotlight and Uniform Type Identifier

Extended attribute com.apple.FinderInfo (same/similar binary format as resource fork):

com.apple.FinderInfo (XATTR_FINDERINFO_NAME, ATTR_CMN_FNDRINFO getattrlist(2)) 32 bytes of data for use by the Finder. Equivalent to the concatenation of a FileInfo structure and an ExtendedFileInfo structure (or, for directories, a FolderInfo structure and an ExtendedFolderInfo structure). These structures are defined in <CarbonCore/Finder.h>.

This attribute is not byte swapped by the file system. The value of multibyte fields on disk is always big endian. When running on a little endian system (such as Darwin on x86), you must byte swap any multibyte fields.

# Add a fake name
xattr -w com.apple.metadata:kMDItemDisplayName DifferentFilename.txt ActualFilename.txt

# Hide file to Finder
xattr -px com.apple.FinderInfo /path/to/file
xattr -wx com.apple.FinderInfo "0000000000000000400000000000000000000000000000000000000000000000" /path/to/file
# or (spaces aren't important)
xattr -wx com.apple.FinderInfo "00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" /path/to/file
# Find some hidden files (kMDItemFSInvisible mapped from the extended attribute com.apple.FinderInfo)
mdfind kMDItemFSInvisible=1 -onlyin .

# Add custom colors and tags to a file
# https://eclecticlight.co/2017/12/27/xattr-com-apple-metadata_kmditemusertags-finder-tags/
# Rouge 6, Orange 7, Jaune 5, Vert 2, Bleu 4, Violet 3, Gris 1
xattr -wx com.apple.metadata:_kMDItemUserTags "62706c69 73743030 a3010203 584f7261 6e67650a 37585965 6c6c6f77 0a355949 6d706f72 74616e74 080c151e 00000000 00000101 00000000 00000004 00000000 00000000 00000000 00000028" filename
xattr -wx com.apple.metadata:_kMDItemUserTags "$(echo '["Orange\n7","Yellow\n5","Important"]' | plutil -convert binary1 -o - - | xxd -p | tr -d "\n")" /path/to/file
xattr -w com.apple.metadata:_kMDItemUserTags '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array>...</array></plist>' /path/to/file

# The following command works to (king of valid plist string)
xattr -w com.apple.metadata:_kMDItemUserTags '("Red\n6","Important")' /path/to/file
# After change the metadata, Spotlight doesn't import the file immediatly. The workaround is to add another tag with UI (Finder) to all files, then remove it

# Metadata see by Spotlight backend (metadata server)
#mdimport -i filename
mdls -plist - -name _kMDItemUserTags filename | plutil -convert json -o - -
xattr -px com.apple.metadata:_kMDItemUserTags /path/to/file | xxd -r -p | plutil -convert json -o - -
mdfind "kMDItemUserTags = Important" -onlyin .
# or: mdfind "_kMDItemUserTags = Important" -onlyin .

# Set custom application association
# Even if the type is the default "public.data"
xattr -wx com.apple.LaunchServices.OpenWith "$(echo '{"version":1.0,"path":"\/Applications\/Hex Fiend.app","bundleidentifier":"com.ridiculousfish.HexFiend"}' | plutil -convert binary1 -o - - | xxd -p | tr -d "\n")" filename
# Get custom application association
xattr -px com.apple.LaunchServices.OpenWith /path/to/file | xxd -r -p | plutil -convert json -o - -

# Set the URL from which the file was downloaded
xattr -wx com.apple.metadata:kMDItemWhereFroms "$(echo '["http://example.com"]' | plutil -convert binary1 -o - - | xxd -p)" /path/to/file
xattr -wx com.apple.metadata:kMDItemWhereFroms "$(echo '["http://example.com/origin","http://example.com/referrer"]' | plutil -convert binary1 -o - - | xxd -p)" /path/to/file
xattr -wx com.apple.metadata:kMDItemWhereFroms "$(echo '<plist><array><string>http://example.com</string></array></plist>' | plutil -convert binary1 -o - - | xxd -p | tr -d "\n")" /path/to/file
# Set the date when the file was downloaded
# Note can't convert from JSON because date
xattr -wx com.apple.metadata:kMDItemDownloadedDate "$(echo "<plist><array><date>$(date +%Y-%m-%dT%H:%M:%SZ)</date></array></plist>" | plutil -convert binary1 -o - - | xxd -p | tr -d "\n")" /path/to/file

Other:

Icons and Cursors

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors
/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources

Sounds

/System/Library/Sounds/
/Library/Sounds/
~/Library/Sounds/

AFPS

Does Apple File System support directory hard links?

Directory hard links are not supported by Apple File System. All directory hard links are converted to symbolic links or aliases when you convert from HFS+ to APFS volume formats on macOS. — Frequently Asked Questions

NTFS

Read only

Use NTFS-3G or use exFAT instead (supported natively)

WebDav

Mount unsupported file system

Mount AFP share online

Don't do that! It's not secure (same for NFS, SMB/CIFS, iSCSI, etc.). Use it over a VPN (or a SSH tunnel) or use a secured protocol like SFTP (use https://github.com/osxfuse/osxfuse/wiki/SSHFS)

Can contains Time Machine backups.

Mount afp://ip_address/timemachine_share

Port 548 should be open (and forwarded (TCP) to the target if the server is behind a router). Don't allow guest access

Preference and help links

Open an pref

x-help-script://com.apple.machelp/scpt/OpnPrefsBndID.scpt?com.apple.Localization,InputMenu

Open an app:

x-help-script://com.apple.machelp/scpt/OpnAppBndID.scpt?open,com.apple.ScriptEditor2
help:anchor=%27mh28040%27%20bookID='com.apple.machelp'

Home (help:anchor=%27access%27%20bookID=com.apple.machelp) Index (help:anchor=%27xall%27%20bookID=com.apple.machelp)

System paths

Re-add staff premission

sudo chgrp staff path/to/item
sudo chmod g+r,+X path/to/item

Uniform Type Identifier

Aka UTI

Metadatas: kMDItemContentType and kMDItemContentTypeTree (hierarchical content type); CFBundleDocumentTypes, UTImportedTypeDeclarations and UTExportedTypeDeclarations

Get UTI from metadata server:

mdls -raw -name kMDItemContentType $FILE

For the same extension, mutliple UTI definitions could exist. But the last definition will be used. Exemple: Adobe Flash use .as for ActionScript files (source code), but .as is declared instead as "AppleSingle archive" (UTI: com.apple.applesingle-archive). Installing Adobe Flash should override the default declaration. See uti - Revert Filetype Association - Ask Different

Fragmentation

Aka defragmentation

Disk image

Create a disk image from a disk or connected device

[...]

  • Sparse bundle disk image: Same as a sparse disk image (below), but the directory data for the image is stored differently. Uses the .sparsebundle file extension.

  • Sparse disk image: Creates an expandable file that shrinks and grows as needed. No additional space is used. Uses the .sparseimage file extension.

  • Read/write disk image: Allows you to add files to the disk image after it’s created. Uses the .dmg file extension.

  • DVD/CD master: Changes the size of the image to 177 MB (CD 8 cm). Uses the .cdr file extension.

[...]

Create a disk image from a folder or connected device

[...]

  • Read-only: The disk image can’t be written to, and is quicker to create and open.

  • Compressed: Compresses data, so the disk image is smaller than the original data. The disk image is read-only.

  • Read/write: Allows you to add files to the disk image after it’s created.

  • DVD/CD master: Can be used with third-party apps. It includes a copy of all sectors of the disk image, whether they’re used or not. When you use a master disk image to create other DVDs or CDs, all data is copied exactly.

Create a disk image using Disk Utility on Mac - Apple Support

Split disk image

hdiutil segment -segmentSize 1G -o "disk-1G-parts.dmg" "/path/to/disk.dmg"

Will generate files *.XXX.dmgpart and *.dmg

Folder action

See Automator

Test disk speed

aka test USB thumb speed

# Write 1GB of zero to tsfile
dd if=/dev/zero bs=1024k of=tstfile count=1024
# Will output (if locale is english):
# 1024+0 records in
# 1024+0 records out
# 1073741824 bytes (1.1 GB) copied, 2.27431 s, 472 MB/s

# Read tsfile (1GB)
dd if=tstfile bs=1024k of=/dev/null count=1024
# Remove tsfile
rm tstfile

Clone to disk image

diskutil list

diskutil info disk4

sudo gdd if=/dev/rdisk4 of=sd_backup.dmg status=progress bs=16M
#photorec sd_backup.dmg
#testdisk sd_backup.dmg

Startup and login

Startup chime

Not work with OSX 10.10+

Mute

sudo nvram SystemAudioVolume=%80

Restore

sudo nvram -d SystemAudioVolume
  • http://apple.stackexchange.com/questions/168092/disable-yosemite-startup-sound

  • https://discussions.apple.com/message/28013107#28013107

Lock message

Aka login screen text

If found, please contact XXXX XXXX at YYYYYYYYYYY or at ZZZZZZ@ZZZZZZ.ZZZZ

Control+Command+Q

See also Change the language used at the login screen on your Mac - Apple Support

Reset NVRAM

How to Reset NVRAM on your Mac - Apple Support

Start up item

With crontab -e:

@reboot /path/to/script

With a shell script (as login item only):

In mystartupitem.command (why as *.command?)

#!/bin/bash

echo "Do something"

An add it to login items (System Preferences → Users and Groups → Login items)

With a plist:

Create in /Library/LaunchDaemons (see also What are the differences between LaunchAgents and LaunchDaemons?) a file called like local.mydaemon.plist contains:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>local.mydaemon</string>

		<key>ProgramArguments</key>
		<array>
			<string>/path/to/binary</string>
			<string>arg1</string>
			<string>arg2=value</string>
			<string>arg3</string>
		</array>

		<key>RunAtLoad</key>
		<true/>

		<!-- Use this for a script that runs once -->
		<key>LaunchOnlyOnce</key>
		<true/>

		<!-- Use this user and/or group to launch daemon, remove if not defined -->
		<key>UserName</key>
		<string>SOME_USERNAME</string>
		<key>GroupName</key>
		<string>SOME_GROUP</string>

		<!-- Save standard error to, remove if not needed -->
		<key>StandardErrorPath</key>
		<string>/dev/null</string>

		<!-- Save standard output to, remove if not needed -->
		<key>StandardOutPath</key>
		<string>/dev/null</string>

		<!-- Change start inverval, remove if not needed. See also LaunchOnlyOnce -->
		<key>StartInterval</key>
		<integer>30</integer>
	</dict>
</plist>

Note: Label must reflect filename without plist extension. Note: binary can be an executable (chmod +x /path/to/shellscript) shell script

sudo chown root:wheel /path/to/local.mydaemon.plist
launchctl load /path/to/local.mydaemon.plist
launchctl list

Change/fix login keyboard layout

# Check current user keyboard
/usr/libexec/PlistBuddy -c "Print :AppleCurrentKeyboardLayoutInputSourceID" ~/Library/Preferences/com.apple.HIToolbox.plist
# defaults -currentHost read com.apple.HIToolbox
# Set global/default keyboard
sudo /usr/libexec/PlistBuddy -c "Set :AppleCurrentKeyboardLayoutInputSourceID com.apple.keylayout.French" /Library/Preferences/com.apple.HIToolbox.plist

See you current keyboard layout: ~/Library/Preferences/com.apple.HIToolbox.plist

Security

System Integrity Protection

Aka SIP

  • /System

  • /usr

  • /bin

  • /sbin

  • apps that are pre-installed with OS X

Some specific softwares require to disable it

  1. in Terminal: csrutil status to check status

  2. restart

  3. hold down command-R to boot into the Recovery System

  4. in Utilities > Terminal csrutil disable; reboot or csrutil enable; reboot based on what you want

SIP only applies to the volume you're currently booted from, so [one can] boot from the backup volume to delete [files] CCC updated for El Capitan | Carbon Copy Cloner | Bombich Software

  1. just boot into "Recovery" mode by pressing "CMD+R" while rebooting.

  2. open Terminal

  3. your disk will be mounted in /Volumes/Macintosh HD (based on your drive name)

  4. update files (ex: delete files via rm): you have absolute control in that terminal

Terminal access error

If a command return an error like Operation not permitted, or cat: ~/Library/path/to/file: Operation not permitted, a SIP protected file is read.

Lift the restriction for Terminal: Operation not permitted - Mojave security?

App Sandbox

~/Library/Containers

Downloaded file quarantine

find ~/Downloads/geeklog-1.6.1 -type f -exec xattr -d com.apple.quarantine {} \;

or

xattr -d -r com.apple.quarantine ~/Downloads

Disable

defaults write com.apple.LaunchServices LSQuarantine -bool NO
# Set com.apple.quarantine attribute
# Quarantine state flags (as 4 hexdigits):
# 0. ?
# 1. ?
# 2. ?
# 3. ?
# 4. ?
# 5. App was opened
# 6. "Verified by Gatekeeper"
# 7. ?
# 8. ?
# 15. ?
# See also:
# - https://stackoverflow.com/questions/59974353/checking-if-macos-app-has-ever-been-un-quarantined-and-fully-launched
# - https://eclecticlight.co/2017/08/15/quarantined-more-about-the-quarantine-extended-attribute/
# - https://stackoverflow.com/questions/46198557/understanding-output-of-xattr-p-com-apple-quarantine
flags=$(printf "%04x;" "$((2#0000000000000010))")
uuid=$(uuidgen)
application="Firefox"
# application="Google\x20Chrome"
date=$(printf %x $(date +%s))
attr -w com.apple.quarantine "${flags};${date};${application};${uuid}" filename
# Insert UUID into Database
date=$(($(date +%s) - 978307200))
download_url="http://example.com/file.zip"
# fields of LSQuarantineEvent: LSQuarantineEventIdentifier, LSQuarantineTimeStamp, LSQuarantineAgentBundleIdentifier, LSQuarantineAgentName, LSQuarantineDataURLString, LSQuarantineSenderName, LSQuarantineSenderAddress, LSQuarantineTypeNumber, LSQuarantineOriginTitle, LSQuarantineOriginURLString, LSQuarantineOriginAlias
# see also https://web.archive.org/web/20210506210117/http://www.zoharbabin.com/hey-mac-i-dont-appreciate-you-spying-on-me-hidden-downloads-log-in-os-x
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "INSERT INTO \"LSQuarantineEvent\" VALUES('${uuid}',${date},NULL,'${application}','${download_url}',NULL,NULL,0,NULL,'${url}',NULL);"
# Check if UUID exists in Database
sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 "SELECT * FROM LSQuarantineEvent WHERE LSQuarantineEventIdentifier == '${uuid}'"

Certificats

Delete Known Government-Linked Certificate Authorities: https://github.com/sammcj/delete-unknown-root-ca

FileVault

FileVault display a loginwindow at startup hask the user to decrypt the disk with its password.

FileVault is not allowed for all users

diskutil cs list | grep "Conversion Progress"
diskutil apfs list | grep "FileVault"
Conversion Progress:       Optimizing 39%

FileVault:                 Yes (Unlocked)

FileVault:                 No (Encrypted at rest)

Firmware password

Users

Handled by OpenDirectory

UIDs < 500 are reserved.

  • auto login user defaults read /Library/Preferences/com.apple.loginwindow | grep autoLoginUser | awk '{ print $3 }' | sed 's/;//'

  • dscl . -read /Users/<username>

  • dscl . list /Users | grep -v '_' (prefixed user are daemons, etc.)

  • dscacheutil -q user

  • /var/db/dslocal/nodes/Default/users/*.plist data of OpenDirectory

  • sudo dscl . create /Users/<username> IsHidden 1, hide user on loginwindow and fast user switching: Hide a user account in macOS - Apple Support

  • disable guest user:

    1. ppen System Preferences

    2. go to "Users & Groups" and click the unlock icon

    3. click on “Guest User”

    4. uncheck the box for "Allow guests to log in to this computer"

  • hide a user from login screen: sudo defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add <username>, to remove that config: sudo defaults delete /Library/Preferences/com.apple.loginwindow HiddenUsersList

Non interactive user

loginwindow UI will consider a user as one that can't be logged in if the following occur

the shell is /usr/bin/false

or

the AuthAuthority has ;disableduser; in it.

or

the AuthAuthority doesn't exist or contains ;basic; and the password is missing or is a single asterisk.

or

the record name is missing or blank [RealName?]

or

the uid is missing

loginwindow UI doesn't care about the UIDs number.

But the user still appears in System Preferences > Sharing > File Sharing | Screen Sharing | etc. > Add User dialog.

Applications

Self-signed application

Create a self signed certificate MyCertificateName with Keychain and trust it for all the system

sudo codesign -s MyCertificateName -f /path/to/MyAppName.app --deep

That fix the issue with macOS open the alert popup "Do you want to the application MyAppName.app to accept incoming network connections?"

Define PATH globaly

Set export PATH=/my/path:$PATH in ~/.profile for command line, but not used by launched application (by spotlight, dock, finder, start restored windows)

A security update could break/change something:

it seems SIP strips env variables if an application is launched from another application

Open application (twice and so on)

open -n /Applications/VOTRE_APPLICATION.app

Or add this as Automator script

do shell script "open -n /Applications/VOTRE_APPLICATION.app"

Pass command line arguments to Application

Automator application

Automator > create an Application with Library/Utilities/Run Shell Script

open -a "Google Chrome" --args -pinned-tag-count=4

Replace app icon: Get Info on original App, select icon, Cmd+C -> Get Info on target App, select icon, Cmd+V

Application bundle

See Create new application bundle. Not work anymore

Edit /Applications/Firefox.app/Contents/Info.plist, change for CFBundleExecutable or Executable File the value to firefox-bin-with-args.sh (the original is firefox-bin)

In /Applications/Firefox.app/Contents/MacOS/, create a file firefox-bin-with-args.sh (called like change in Info.plist)

#!/usr/bin/env bash
exec exec $(dirname "$0")/firefox-bin -ProfileManager
chmod +x firefox-bin-with-args.sh
  • http://superuser.com/questions/271678/how-do-i-pass-command-line-arguments-to-dock-items

Create new application bundle

Script app (bash script) can't start anymore with OSX 10.10: "Can’t open the application %s because PowerPC applications are no longer supported."

Allow Apps from Anywhere in Gatekeeper

"Allow apps downloaded from" "Anywhere" (from macOS Sierra)

"%s can’t be opened because it is from an unidentified developer"

sudo spctl --master-disable
# allow apps you trust without turning off code signing entirely
sudo spctl --add --label "It's OK, they're with me" /path/to/My.app
xattr -dr http://com.apple.quarantine /path/to/My.app

Crtl + Click on the App > click on "Open" button to add the app to the approved list Right click > Open

Build-in Apache

Conf: /etc/apache2 Extensions: /usr/libexec/apache2 HTTPD_ROOT httpd -V

Restart Apache:

sudo /usr/sbin/apachectl restart

or

sudo apachectl -k restart

FileMerge

Xcode

"Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo."

Accept for this account:

xcodebuild -license

Accept for all accounts:

sudo xcodebuild -license

Install Xcode Command Line Tools:

xcode-select --install

Macports

Why use Macports instead of Homebrew: El Capitan and Homebrew | Hacker News TLDR: because it place packages in /opt/local and require sudo

Macports install in /opt/local where Homebrew install in /usr/local.

/usr/local, for self, inhouse, compiled and maintained software. /opt is for non-self, external, prepackaged binary/application bundle installation area

  • https://guide.macports.org/chunked/installing.macports.uninstalling.html

  • http://trac.macports.org/wiki/Migration

  • https://www.macports.org/install.php

Macports is installed as root and uses its own account macports for some things.

Update and upgrade ports:

sudo port selfupdate && sudo port upgrade outdated
# later to remove old version
sudo port uninstall inactive

Install ports:

# 1. Install Xcode Command Line Tools: `xcode-select --install`
# 2. Accept Xcode licence: `sudo xcodebuild -license`
# 3. Check installed version (newer version can exist for php, node, python, perl, ruby, JDK, etc.)

sudo port install \
wget rsync \
bash bash-completion \
coreutils diffutils findutils gsed gawk gpatch \
watch \
p5-file-rename \
openssl \
gzip gnutar \
git \
curl \
gettext \
ffmpeg \
ImageMagick +rsvg \
p5-image-exiftool \
cmake \
apache-ant \
httrack \
xorg-server

# Start D-Bus
sudo port install dbus
sudo port load dbus
#sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist
#launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist

# Add `/opt/local/libexec/gnubin` to PATH
if ! grep -q "export PATH=/opt/local/libexec/gnubin:" ~/.profile
then
	echo "" >> ~/.profile
	echo "# Use GNU coreutils by default (installed with macport)" >> ~/.profile
	echo "export PATH=/opt/local/libexec/gnubin:\$PATH" >> ~/.profile
fi

# To use bash_completion, add the following lines at the end of your .bash_profile:
if ! grep -q "/opt/local/etc/profile.d/bash_completion.sh" ~/.bash_profile
then
	echo "" >> ~/.bash_profile
	echo "# Enable bash-completion" >> ~/.bash_profile
	echo "if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then" >> ~/.bash_profile
	echo "        . /opt/local/etc/profile.d/bash_completion.sh" >> ~/.bash_profile
	echo "fi" >> ~/.bash_profile
fi

# NodeJS
# Note: nodejs and npm without version specified are not the lastest available
# sudo port install nodejs npm
sudo port install nodejs15 npm6
# Add to profile node config
if ! grep -q "export NODE_PATH=" ~/.profile
then
	echo "" >> ~/.profile
	echo "# Use global node modules (installed with macport)" >> ~/.profile
	echo "export NODE_PATH=/opt/local/lib/node_modules:\$NODE_PATH" >> ~/.profile
fi
# NPM can be updated with:
# sudo npm install -g npm@latest

# Install globally some tools
# use --python=python2.7 if required
#npm install -g sqlite3

# Note: never install globaly/system-wide npm packages (via `-g`). Install in ./node_module instead
# Clean cache: `sudo npm cache clean`
# If so packages are in /opt/local/lib/node_modules/ and remains even if npm is uninstalled or deactivate via macport
# To see outdated packages, use `npm outdated -g --depth=0`
# To update global packages, use `npm update -g`

# Install PHP and composer (PHP package manager)
sudo port install php
sudo port install php80-intl php80-openssl
#sudo port select --set php php80
# Create PHP config (dev only)
sudo cp /opt/local/etc/php80/php.ini-development /opt/local/etc/php80/php.ini

# [#42344 (new composer port request) – MacPorts](https://trac.macports.org/ticket/42344)
sudo port install php74-iconv php74-mbstring
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/opt/local/bin
sudo ln -s composer.phar /opt/local/bin/composer
# Or use in each project's folder `php -r "readfile('https://getcomposer.org/installer');" | php && php composer.phar install`
# Will install packages in ./vendor

# Install python and pip (Python package manager)
sudo port install python39 py39-pip
#sudo port select --set python python39
#sudo port select --set python3 python39
#sudo port select --set pip pip39
# Or for OSX's default python come with easy_install
#sudo easy_install pip
#pip install --user package
# or
#python -m pip install --user package
# will install package in ~/Library/Python/X.Y/lib/python/site-packages
# could also be in ~/.local/lib/pythonX.Y/site-packages
# See
# - https://pip.pypa.io/en/latest/user_guide/#user-installs
# - https://www.python.org/dev/peps/pep-0370/
# - https://stackoverflow.com/questions/15912804/easy-install-or-pip-as-a-limited-user

# Install Python BeautifulSoup
pip install --user beautifulsoup4
# or with macports (system-wide):
#sudo port install py38-beautifulsoup4
# Then check
#python -c "help('modules')" | grep bs4

# Note: never install python packages system-wide http://scicomp.stackexchange.com/a/2988 (use always `--user`)

# Install ntfs-3g https://trac.macports.org/wiki/howto/Ntfs3gFinder (need to disable SIP)
sudo port install ntfs-3g
# TODO. See link

# TestDisk and photorec
sudo port install testdisk

# Ruby and gems (Ruby package manager)
sudo port install ruby27 rb-rubygems
#sudo port select --set ruby ruby27

# Add to profile user's gems folder
if ! grep -q "export GEM_HOME=" ~/.profile
then
	echo "" >> ~/.profile
	echo "# Use user gems (rb-rubygems installed with macport)" >> ~/.profile
	echo "export PATH=~/.gem/bin:\$PATH" >> ~/.profile
	echo "export GEM_HOME=~/.gem" >> ~/.profile
	echo "export GEM_PATH=~/.gem:\$GEM_PATH" >> ~/.profile
fi

# Java / Open JDK
sudo port install openjdk15

How to fix "Failed to build osxfuse: command execution failed":

App store

Aka MAS (macOS App Store)

Preference pane

~/Library/PreferencePanes/
/Library/PreferencePanes/

Right click to remove prefpane

Quicklook generators

Aka QLGenerator

To view handle types:

qrmanage -m

Precedence :

The order is currently (from the less important to the most important):

  • System generators (in /System/Library/QuickLook - for Apple only)

  • Local (in /Library/QuickLook)

  • Home (in ~/Library/QuickLook)

  • Embedded in apps. (usally ./Contents/Library/QuickLook)

It's impossible to desactivate a QLGenerator for same level or above other than juste rename it folder or update it's Info.plist to reflect only wanted format support How to disable auto preview for *.doc *.docx in finder? - Ask Different http://lists.apple.com/archives/quicklook-dev/2010/Jun/msg00011.html

Spotlight

Aka Metadata Server (mds)

See also Extended attribute

Once the macOS does kick-off the extraction of metadata from a file, it does so through a Spotlight Importer. Spotlight Importers are plug-ins for the Mac OS that a developer provides specifically for helping files created by their applications to be searchable within Spotlight. Spotlight crawls through its list of changed files, handing each one to the appropriate importer. The importers then read the files, compile a list of metadata, and then hand the metadata back to Spotlight. At this point, the changed file is available for searching within Spotlight.

  • /System/Library/Spotlight

  • /Library/Spotlight

  • ~/Library/Spotlight

  • App ./Content/Library/Spotlight

  • /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mdworker

  • /System/Library/LaunchDaemons/com.apple.metadata.com.apple.metadata.mds.scan.plist

  • /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds

  • /System/Library/PrivateFrameworks/SpotlightDaemon.framework/Versions/A/SpotlightDaemon

  • /System/Library/Frameworks/CoreSpotlight.framework/CoreSpotlightService

  • /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/corespotlightd

Turn off:

launchctl stop com.apple.metadata.mds && sudo launchctl start com.apple.metadata.mds
# Rename all node_modules to node_modules.noindex and create a symlink node_modules -> node_modules.noindex
find /path/to/projects -type d \( -path '*/.*' -o -path '*node_modules/*' -o -path '*node_module.noindex/*' \) -prune -o -type d -name 'node_modules' -exec mv '{}' '{}.noindex' \; -exec ls -s '{}.noindex' '{}' \;

Note: extended attribute com.apple.FinderInfo doesn't have any impact, chflags hidden /path/to/file, touch folder-to-exclude/.metadata_never_index too

Reindex drive

# Here the main drive mounted at /
# turn indexing off
sudo mdutil -i off /
# delete Spotlight folder
sudo rm -rf /.Spotlight*
# turn indexing on
sudo mdutil -i on /
# rebuild
sudo mdutil -E /

Reindex (eq. Finder's Search not work properly): find . -name "*.md" -exec mdimport {} \; or sudo mdutil -E / (where / affect the whole volume, or all volumes)

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

List file indexing (where PID is pid of process of mdworker, use ps -e | grep mdworker):

sudo opensnoop -n mdworker
# Use 0.1 or 0,1 depends locale or prepend command with `LANG=C`: (eg. `LANG=C sudo watch -n 0.1 "CMD"`)
sudo watch -n 0 "lsof +p PID"
sudo watch -n 0 "lsof -c mdworker"
strace -p PID -e trace=open,close
sudo fs_usage -w -f filesys mdworker | grep "open" | less +F --follow-name

Erase all Spotlight data (all volumes):

sudo mdutil -avE

Queries:

# Find all files
mdfind "*"
mdfind -onlyin "/" "kMDItemFSSize>0"

# List all metadata for a specific file
mdls /path/to/file

# Find DMG files
mdfind -0 "kMDItemFSName=*.dmg"
# Find Finder excluded files
mdfind "_kMDItemFinderExcluded=*"
mdfind "_kMDItemFinderExcluded=1"

# Find user tags / colors set by user
mdls -plist - -name _kMDItemUserTags

# Find ghost files ("if the Finder is in the middle of a copy and the source disk is suddenly disconnected") that aren't deletable ("Item XYZ is used by Mac OS X and can’t be opened.")
mdfind -onlyin /path/to/files -0 "kMDItemFSTypeCode==brok && kMDItemFSCreatorCode==MACS" | xargs -0 -n1 xattr -d com.apple.FinderInfo

# find all encrypted DMG
mdfind -0 "kMDItemFSName == '*.dmg'" | xargs -0 -IX ksh -c ' if hdiutil isencrypted "X" 2>&1 | grep -q "encrypted: YES" then echo "X -ENCRYPTED" fi'

Metadata importer

Aka Spotlight importers

# List all available metadatas
mdimport -X
# Infos about metadatas (nosearch, noindex, notokenize, multivalued, uniqued)
mdimport -r ~/Library/Spotlight/SomeImporter.mdimporter

Add to /System/Library/Spotlight/RichText.mdimporter/Contents/info.plist (get file format mdimport -n -d1 somefile.ext) to search inside source code:

<string>public.c-header</string>
<string>public.c-plus-plus-header</string>
<string>public.c-source</string>
<string>public.objective-c-source</string>
<string>public.c-plus-plus-source</string>
<string>public.objective-c-plus-plus-source</string>
<string>com.sun.java-source</string>
<string>public.perl-script</string>
<string>public.python-script</string>
<string>public.csh-script</string>
<string>public.shell-script</string>
<string>public.ruby-script</string>
<string>public.php-script</string>
<string>com.netscape.javascript-source</string>

Printer & scanner

Most post 2013 printers implement IPP Everywhere. AirPrint is based on IPP

Will ask username / password for shared printer, use Windows auth credentials or guest for the username and password. If not asked, delete the entry of password in keychain app

Calendar and contact accounts

CardDav, CalDav

SQLite3 with principalInfo binary PropertyList (plutil -convert xml1 -o - - < data.plist) (ZVALUE)

~/Library/Accounts/Accounts3.sqlite

Old (not used to store accounts config):

~/Library/Calendars/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX.caldav
~/Library/Application Support/AddressBook/Sources/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX/Configuration.plist ??

See also the possibility to create configuration profiles:

Clipbload CLI

pbcopy < file.txt
echo "test" | pbcopy
pbpaste
pbpaste > file.txt

Simulate UI clicks from CLI

Corrupted executable script

Create a bash script and execute give:

bad interpreter: Operation not permitted

chmod u+x file.sh
xattr -d com.apple.quarantine file.sh

Scanning

SANE:

Automator

Delete core dump files

In /cores folder

Only deletes core files older than 24 hours.

find /cores -name "core.*" -ctime 1 -delete

Use cron or launchd

Screens and monitors

Custom screen resolution or HiDPI

OSCAR LCD Panel 1024 × 768 (HiDPI) fix

Find screen DisplayVendorID and DisplayProductID

ioreg -l -w0 -d0 -r -c AppleDisplay

Or in IORegistryExplorer (/Developer/Applications/Utilities/IORegistryExplorer.app) or IOJones, something like IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPP/GFX0@0/NVDA,Display-B@1/NVDA/display0/AppleDisplay

IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/P0P2@1/IOPP/GFX0@0/NVDA,Display-A@0/NVDA/display0/AppleBacklightDisplay is for built-in screen on Macbook Pro.

Map to /System/Library/Displays/Overrides/DisplayVendorID-XXXXX/DisplayProductID-YYYYY where XXXXX and YYYYY are 1 to N hexa char

Icon can be change be changed in /System/Library/Displays/Overrides/Icons.plist.

EDID can be override with IODisplayEDID. See [HOW TO] Advanced EDID Injection - Graphics Cards - InsanelyMac Forum

Problems

In log org.freedesktop.dbus-system Service exited with abnormal code: 1

Shutdown

DSLR as a webcam

Aka camera as webcam

For Linux use gphoto2 -> ffmpeg -> v4l2loopback. See How to use your DSLR from 2008 as a webcam in 2022 (NixOS) (see also this post on Hacker News)

Old, use Camtwist and Syphon or an OBS plugin:

Java

  • Java 8 is the only supported version which runs applets

  • /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java is Apple's Java version. Keep it. (/usr/libexec/java_home and /usr/bin/java point to it). See "Do NOT remove any content in the JavaVM.framework"

  • /System/Library/Java/JavaVirtualMachines/ is JDK location where Apple's Java 6 is installed (still the case?)

  • /Library/Java/JavaVirtualMachines/ default location of JDK installs

  • /usr/libexec/java_home -V get list of installed installed JVMs

Install JDK with sudo port install openjdk14 or download it from JDK Builds from Oracle. See also:

Uninstall Oracle Java by deleting the plug-in file (JRE, for applets):

sudo rm -rf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin"
sudo rm -rf "/Library/PreferencePanes/JavaControlPanel.prefpane"
sudo rm -fr "~/Library/Application Support/Oracle/Java"

Uninstall Oracle Java JDK:

sudo rm -rf "/Library/Java/JavaVirtualMachines/jdk-interim.update.patch.jdk"

macOS is Unix

And mostly POSIX-compatible

Screen capture

Aka screen cast, screenshot

Virtualization

See also:

Interoperability

Troubleshooting

ANS2 Recoverable Panic

panic(cpu 0 caller 0xfffffff025234744): ANS2 Recoverable Panic - assert failed: [14083]:low wA f7 i2070711 s3131392 n16 d0 w1.5 tGC6 tL30, d:0x12401, a2:0x42f0000, a3:0x60000000 - power(13)
assert failed: [14083]:low wA f7 i2070711 s3131392 n16 d0 w1.5 tGC6 tL30, d:0x12401, a2:0x42f0000, a3:0x60000000
RTKit: RTKit_iOS-1827.140.2.release - Client: t8012.release-AppleStorageProcessorANS2-1274.100.6~1055~1274.100.6~1055

Last updated