diff --git a/ext/installfiles/mac-nexus/Nexus.pkgproj b/ext/installfiles/mac-nexus/Nexus.pkgproj
new file mode 100755
index 0000000..1b58eba
--- /dev/null
+++ b/ext/installfiles/mac-nexus/Nexus.pkgproj
@@ -0,0 +1,1119 @@
+
+
+
+
+ PACKAGES
+
+
+ MUST-CLOSE-APPLICATION-ITEMS
+
+ MUST-CLOSE-APPLICATIONS
+
+ PACKAGE_FILES
+
+ DEFAULT_INSTALL_LOCATION
+ /
+ HIERARCHY
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ Utilities
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ BUNDLE_CAN_DOWNGRADE
+
+ BUNDLE_POSTINSTALL_PATH
+
+ PATH_TYPE
+ 0
+
+ BUNDLE_PREINSTALL_PATH
+
+ PATH_TYPE
+ 0
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../../../BackOneUI/Nexus.app
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ GID
+ 80
+ PATH
+ Applications
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 509
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ get-proxy-settings.sh
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ launch.sh
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../../MacEthernetTapAgent
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ uninstall.sh
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ ../../../backone
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ GID
+ 80
+ PATH
+
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 2
+ UID
+ 0
+
+
+ GID
+ 80
+ PATH
+ BackOne
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 2
+ UID
+ 0
+
+
+ GID
+ 80
+ PATH
+ Application Support
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Automator
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Documentation
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Filesystems
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Frameworks
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Input Methods
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Internet Plug-Ins
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ LaunchAgents
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ com.backone.plist
+ PATH_TYPE
+ 1
+ PERMISSIONS
+ 420
+ TYPE
+ 3
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ LaunchDaemons
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ PreferencePanes
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Preferences
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ Printers
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ PrivilegedHelperTools
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 1005
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ QuickLook
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ QuickTime
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Screen Savers
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Scripts
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Services
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Widgets
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Extensions
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ Library
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Extensions
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ Library
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ System
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ CHILDREN
+
+
+ CHILDREN
+
+ GID
+ 0
+ PATH
+ Shared
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 1023
+ TYPE
+ 1
+ UID
+ 0
+
+
+ GID
+ 80
+ PATH
+ Users
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+
+ GID
+ 0
+ PATH
+ /
+ PATH_TYPE
+ 0
+ PERMISSIONS
+ 493
+ TYPE
+ 1
+ UID
+ 0
+
+ PAYLOAD_TYPE
+ 0
+ PRESERVE_EXTENDED_ATTRIBUTES
+
+ SHOW_INVISIBLE
+
+ SPLIT_FORKS
+
+ TREAT_MISSING_FILES_AS_WARNING
+
+ VERSION
+ 5
+
+ PACKAGE_SCRIPTS
+
+ POSTINSTALL_PATH
+
+ PATH
+ postinst.sh
+ PATH_TYPE
+ 1
+
+ PREINSTALL_PATH
+
+ PATH
+ preinst.sh
+ PATH_TYPE
+ 1
+
+ RESOURCES
+
+
+ PACKAGE_SETTINGS
+
+ AUTHENTICATION
+ 1
+ CONCLUSION_ACTION
+ 0
+ FOLLOW_SYMBOLIC_LINKS
+
+ IDENTIFIER
+ com.backone.pkg.Nexus
+ LOCATION
+ 0
+ NAME
+ Nexus
+ OVERWRITE_PERMISSIONS
+
+ PAYLOAD_SIZE
+ -1
+ REFERENCE_PATH
+
+ RELOCATABLE
+
+ USE_HFS+_COMPRESSION
+
+ VERSION
+ 1.14.1
+
+ TYPE
+ 0
+ UUID
+ 1B6AFC3A-9EA5-4401-83D4-37F06CD13CD6
+
+
+ PROJECT
+
+ PROJECT_COMMENTS
+
+ NOTES
+
+ PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
+ IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
+ c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l
+ cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
+ IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250
+ ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
+ dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
+ dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
+ b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjE1MDQuNzYiPgo8c3R5bGUg
+ dHlwZT0idGV4dC9jc3MiPgpwLnAxIHttYXJnaW46IDAuMHB4IDAu
+ MHB4IDAuMHB4IDAuMHB4OyBsaW5lLWhlaWdodDogMTQuMHB4OyBm
+ b250OiAxMi4wcHggSGVsdmV0aWNhOyBjb2xvcjogIzAwMDAwMDsg
+ LXdlYmtpdC10ZXh0LXN0cm9rZTogIzAwMDAwMH0Kc3Bhbi5zMSB7
+ Zm9udC1rZXJuaW5nOiBub25lfQo8L3N0eWxlPgo8L2hlYWQ+Cjxi
+ b2R5Pgo8cCBjbGFzcz0icDEiPjxzcGFuIGNsYXNzPSJzMSI+WmVy
+ b1RpZXIgT25lIC0gTmV0d29yayBWaXJ0dWFsaXphdGlvbiBFdmVy
+ eXdoZXJlPC9zcGFuPjwvcD4KPHAgY2xhc3M9InAxIj48c3BhbiBj
+ bGFzcz0iczEiPihjKTIwMTEtMjAxNyBaZXJvVGllciwgSW5jLjwv
+ c3Bhbj48L3A+CjxwIGNsYXNzPSJwMSI+PHNwYW4gY2xhc3M9InMx
+ Ij5jb250YWN0QHplcm90aWVyLmNvbTwvc3Bhbj48L3A+CjxwIGNs
+ YXNzPSJwMSI+PHNwYW4gY2xhc3M9InMxIj48YnI+Cjwvc3Bhbj48
+ L3A+CjxwIGNsYXNzPSJwMSI+PHNwYW4gY2xhc3M9InMxIj5UbyB1
+ bmluc3RhbGwgbWFudWFsbHksIHR5cGUgdGhlIGZvbGxvd2luZyBp
+ biBhIHRlcm1pbmFsIHdpbmRvdzo8L3NwYW4+PC9wPgo8cCBjbGFz
+ cz0icDEiPjxzcGFuIGNsYXNzPSJzMSI+PGJyPgo8L3NwYW4+PC9w
+ Pgo8cCBjbGFzcz0icDEiPjxzcGFuIGNsYXNzPSJzMSI+c3VkbyAi
+ L0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9aZXJvVGllci9P
+ bmUvdW5pbnN0YWxsLnNoIjwvc3Bhbj48L3A+CjwvYm9keT4KPC9o
+ dG1sPgo=
+
+
+ PROJECT_PRESENTATION
+
+ BACKGROUND
+
+ APPAREANCES
+
+ DARK_AQUA
+
+ LIGHT_AQUA
+
+
+ SHARED_SETTINGS_FOR_ALL_APPAREANCES
+
+
+ INSTALLATION TYPE
+
+ HIERARCHIES
+
+ INSTALLER
+
+ LIST
+
+
+ CHILDREN
+
+ DESCRIPTION
+
+ OPTIONS
+
+ HIDDEN
+
+ STATE
+ 1
+
+ PACKAGE_UUID
+ 1B6AFC3A-9EA5-4401-83D4-37F06CD13CD6
+ TITLE
+
+ TYPE
+ 0
+ UUID
+ 0FC7D07B-9BA9-4711-BB08-A05099C9E2B9
+
+
+ REMOVED
+
+
+
+ MODE
+ 0
+
+ INSTALLATION_STEPS
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewIntroductionController
+ INSTALLER_PLUGIN
+ Introduction
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewReadMeController
+ INSTALLER_PLUGIN
+ ReadMe
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewLicenseController
+ INSTALLER_PLUGIN
+ License
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewDestinationSelectController
+ INSTALLER_PLUGIN
+ TargetSelect
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewInstallationTypeController
+ INSTALLER_PLUGIN
+ PackageSelection
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewInstallationController
+ INSTALLER_PLUGIN
+ Install
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS
+ ICPresentationViewSummaryController
+ INSTALLER_PLUGIN
+ Summary
+ LIST_TITLE_KEY
+ InstallerSectionTitle
+
+
+ INTRODUCTION
+
+ LOCALIZATIONS
+
+
+ LICENSE
+
+ LOCALIZATIONS
+
+ MODE
+ 0
+
+ README
+
+ LOCALIZATIONS
+
+
+ TITLE
+
+ LOCALIZATIONS
+
+
+
+ PROJECT_REQUIREMENTS
+
+ LIST
+
+
+ BEHAVIOR
+ 3
+ DICTIONARY
+
+ IC_REQUIREMENT_OS_DISK_TYPE
+ 0
+ IC_REQUIREMENT_OS_DISTRIBUTION_TYPE
+ 0
+ IC_REQUIREMENT_OS_MINIMUM_VERSION
+ 101300
+
+ IC_REQUIREMENT_CHECK_TYPE
+ 1
+ IDENTIFIER
+ fr.whitebox.Packages.requirement.os
+ MESSAGE
+
+ NAME
+ Operating System
+ STATE
+
+
+
+ RESOURCES
+
+ ROOT_VOLUME_ONLY
+
+
+ PROJECT_SETTINGS
+
+ ADVANCED_OPTIONS
+
+ installer-script.options:hostArchitectures
+
+ x86_64,arm64
+
+
+ BUILD_FORMAT
+ 0
+ BUILD_PATH
+
+ PATH
+ ../../..
+ PATH_TYPE
+ 1
+
+ EXCLUDED_FILES
+
+
+ PATTERNS_ARRAY
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .DS_Store
+ TYPE
+ 0
+
+
+ PROTECTED
+
+ PROXY_NAME
+ Remove .DS_Store files
+ PROXY_TOOLTIP
+ Remove ".DS_Store" files created by the Finder.
+ STATE
+
+
+
+ PATTERNS_ARRAY
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .pbdevelopment
+ TYPE
+ 0
+
+
+ PROTECTED
+
+ PROXY_NAME
+ Remove .pbdevelopment files
+ PROXY_TOOLTIP
+ Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.
+ STATE
+
+
+
+ PATTERNS_ARRAY
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ CVS
+ TYPE
+ 1
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .cvsignore
+ TYPE
+ 0
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .cvspass
+ TYPE
+ 0
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .svn
+ TYPE
+ 1
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .git
+ TYPE
+ 1
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ .gitignore
+ TYPE
+ 0
+
+
+ PROTECTED
+
+ PROXY_NAME
+ Remove SCM metadata
+ PROXY_TOOLTIP
+ Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.
+ STATE
+
+
+
+ PATTERNS_ARRAY
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ classes.nib
+ TYPE
+ 0
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ designable.db
+ TYPE
+ 0
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ info.nib
+ TYPE
+ 0
+
+
+ PROTECTED
+
+ PROXY_NAME
+ Optimize nib files
+ PROXY_TOOLTIP
+ Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.
+ STATE
+
+
+
+ PATTERNS_ARRAY
+
+
+ REGULAR_EXPRESSION
+
+ STRING
+ Resources Disabled
+ TYPE
+ 1
+
+
+ PROTECTED
+
+ PROXY_NAME
+ Remove Resources Disabled folders
+ PROXY_TOOLTIP
+ Remove "Resources Disabled" folders.
+ STATE
+
+
+
+ SEPARATOR
+
+
+
+ NAME
+ Nexus
+ PAYLOAD_ONLY
+
+ TREAT_MISSING_PRESENTATION_DOCUMENTS_AS_WARNING
+
+
+
+ SHARED_GLOBAL_DATA
+
+ IC_REQUIREMENT_JAVASCRIPT_SHARED_SOURCE_CODE
+
+
+ TYPE
+ 0
+ VERSION
+ 2
+
+
diff --git a/ext/installfiles/mac-nexus/com.backone.plist b/ext/installfiles/mac-nexus/com.backone.plist
new file mode 100644
index 0000000..f8f9816
--- /dev/null
+++ b/ext/installfiles/mac-nexus/com.backone.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ Label
+ com.backone
+ UserName
+ root
+ ProgramArguments
+
+ /Library/Application Support/BackOne/launch.sh
+
+ WorkingDirectory
+ /Library/Application Support/BackOne
+ StandardOutPath
+ /dev/null
+ StandardErrorPath
+ /dev/null
+ KeepAlive
+
+
+
diff --git a/ext/installfiles/mac-nexus/get-proxy-settings.sh b/ext/installfiles/mac-nexus/get-proxy-settings.sh
new file mode 100755
index 0000000..16ba0b4
--- /dev/null
+++ b/ext/installfiles/mac-nexus/get-proxy-settings.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Outputs host and port for system HTTP proxy or zeroes if none or not
+# configured.
+
+export PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
+
+enabled=`system_profiler SPNetworkDataType|grep "HTTP Proxy Enabled"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
+port=`system_profiler SPNetworkDataType|grep "HTTP Proxy Port"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
+serv=`system_profiler SPNetworkDataType|grep "HTTP Proxy Server"|awk {'sub(/^.*:[ \t]*/, "", $0); print $0;'} 2>/dev/null`
+
+if [ "$enabled" = "Yes" ]; then
+ if [ "$serv" ]; then
+ if [ ! "$port" ]; then
+ port=80
+ fi
+
+ echo $serv $port
+ else
+ echo 0.0.0.0 0
+ fi
+else
+ echo 0.0.0.0 0
+fi
+
+exit 0
diff --git a/ext/installfiles/mac-nexus/launch.sh b/ext/installfiles/mac-nexus/launch.sh
new file mode 100755
index 0000000..07bbbda
--- /dev/null
+++ b/ext/installfiles/mac-nexus/launch.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+export PATH="/Library/Application Support/BackOne:/bin:/usr/bin:/sbin:/usr/sbin"
+/usr/bin/killall MacEthernetTapAgent >>/dev/null 2>&1
+exec backone
diff --git a/ext/installfiles/mac-nexus/postinst.sh b/ext/installfiles/mac-nexus/postinst.sh
new file mode 100755
index 0000000..33f4776
--- /dev/null
+++ b/ext/installfiles/mac-nexus/postinst.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
+
+cd "/Library/Application Support/BackOne"
+
+if [ ! -f authtoken.secret ]; then
+ head -c 1024 /dev/urandom | md5 | head -c 24 >authtoken.secret
+ chown 0 authtoken.secret
+ chgrp 0 authtoken.secret
+ chmod 0600 authtoken.secret
+fi
+
+if [ -f backone.pid ]; then
+ kill `cat backone.pid`
+ sleep 1
+ killall MacEthernetTapAgent
+ sleep 1
+ killall -9 MacEthernetTapAgent
+ sleep 1
+ if [ -f backone.pid ]; then
+ kill -9 `cat backone.pid`
+ rm -f backone.pid
+ fi
+fi
+launchctl load /Library/LaunchDaemons/com.backone.plist >>/dev/null 2>&1
+sleep 1
+
+rm -f backone-cli backone-idtool
+ln -sf backone backone-cli
+ln -sf backone backone-idtool
+if [ ! -d /usr/local/bin ]; then
+ mkdir -p /usr/local/bin
+fi
+cd /usr/local/bin
+rm -f backone-cli backone-idtool
+ln -sf "/Library/Application Support/BackOne/backone" backone-cli
+ln -sf "/Library/Application Support/BackOne/backone" backone-idtool
+
+if [ -f /tmp/zt1-gui-restart.tmp ]; then
+ for u in `cat /tmp/zt1-gui-restart.tmp`; do
+ if [ -f '/Applications/BackOne.app/Contents/MacOS/BackOne' ]; then
+ su $u -c '/usr/bin/open /Applications/BackOne.app &' >>/dev/null 2>&1 &
+ else
+ su $u -c '/usr/bin/open /Applications/BackOne.app &' >>/dev/null 2>&1 &
+ fi
+ done
+fi
+rm -f /tmp/zt1-gui-restart.tmp
+
+exit 0
diff --git a/ext/installfiles/mac-nexus/preinst.sh b/ext/installfiles/mac-nexus/preinst.sh
new file mode 100755
index 0000000..bf0a0fb
--- /dev/null
+++ b/ext/installfiles/mac-nexus/preinst.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+rm -f /tmp/zt1-gui-restart.tmp
+for i in `ps axuwww | tr -s ' ' ',' | grep -F '/Applications/BackOne.app' | grep -F -v grep | cut -d , -f 1,2 | xargs`; do
+ u=`echo $i | cut -d , -f 1`
+ p=`echo $i | cut -d , -f 2`
+ if [ ! -z "$u" -a "0$p" -gt 0 ]; then
+ kill $p >>/dev/null 2>&1
+ sleep 0.5
+ kill -9 $p >>/dev/null 2>&1
+ echo "$u" >>/tmp/zt1-gui-restart.tmp
+ fi
+done
+for i in `ps axuwww | tr -s ' ' ',' | grep -F '/Applications/BackOne.app' | grep -F -v grep | cut -d , -f 1,2 | xargs`; do
+ u=`echo $i | cut -d , -f 1`
+ p=`echo $i | cut -d , -f 2`
+ if [ ! -z "$u" -a "0$p" -gt 0 ]; then
+ kill $p >>/dev/null 2>&1
+ sleep 0.5
+ kill -9 $p >>/dev/null 2>&1
+ echo "$u" >>/tmp/zt1-gui-restart.tmp
+ fi
+done
+chmod 0600 /tmp/zt1-gui-restart.tmp
+
+cd "/Applications"
+rm -rf "BackOne.app"
+rm -rf "BackOne.app"
+
+if [ -d '/Library/Application Support/BackOne' ]; then
+ cd '/Library/Application Support/BackOne'
+ # ensure that file locking doesn't cause issues with replacing the binary
+ rm -f backone
+ rm -f MacEthernetTapAgent
+fi
+
+exit 0
diff --git a/ext/installfiles/mac-nexus/uninstall.sh b/ext/installfiles/mac-nexus/uninstall.sh
new file mode 100755
index 0000000..90ad8d3
--- /dev/null
+++ b/ext/installfiles/mac-nexus/uninstall.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+if [ "$UID" -ne 0 ]; then
+ echo "Must be run as root; try: sudo $0"
+ exit 1
+fi
+
+if [ ! -f '/Library/LaunchDaemons/com.backone.plist' ]; then
+ echo 'BackOne does not seem to be installed.'
+ exit 1
+fi
+
+cd /
+
+echo 'Stopping any running BackOne service...'
+launchctl unload '/Library/LaunchDaemons/com.backone.plist' >>/dev/null 2>&1
+sleep 1
+killall -TERM zerotier-one >>/dev/null 2>&1
+sleep 1
+killall -KILL zerotier-one >>/dev/null 2>&1
+
+echo "Removing BackOne files..."
+
+rm -rf '/Applications/BackOne.app'
+rm -rf '/Applications/BackOne.app'
+rm -f '/usr/local/bin/backone' '/usr/local/bin/backone-idtool' '/usr/local/bin/backone-cli' '/Library/LaunchDaemons/com.backone.plist'
+
+cd '/Library/Application Support/BackOne'
+if [ "`pwd`" = '/Library/Application Support/BackOne' ]; then
+ rm -rf *.d *.sh *.log *.old *.kext *.conf *.pkg *.dmg *.pid *.port *.save *.bin planet backone-* devicemap
+fi
+
+echo 'Uninstall complete.'
+echo
+echo 'Your identity and secret authentication token have been preserved in:'
+echo ' /Library/Application Support/BackOne'
+echo
+echo 'You can delete this folder and its contents if you do not intend to re-use'
+echo 'them.'
+echo
+
+exit 0