diff options
Diffstat (limited to 'src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs')
-rw-r--r-- | src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/PkgBuildComponent.plist | 15 | ||||
-rwxr-xr-x | src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/postflight | 73 |
2 files changed, 88 insertions, 0 deletions
diff --git a/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/PkgBuildComponent.plist b/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/PkgBuildComponent.plist new file mode 100644 index 00000000..56d8701b --- /dev/null +++ b/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/PkgBuildComponent.plist @@ -0,0 +1,15 @@ +<?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"> +<array> + <dict> + <key>RootRelativeBundlePath</key> <string>VBoxGuest.kext</string> + <key>BundleIsRelocatable</key> <false/> + <key>BundleIsVersionChecked</key> <false/> + <key>BundleHasStrictIdentifier</key> <false/> + <key>BundleOverwriteAction</key> <string>upgrade</string> + <key>BundlePostInstallScriptPath</key> <string>postflight</string> + </dict> +</array> +</plist> + diff --git a/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/postflight b/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/postflight new file mode 100755 index 00000000..871199fa --- /dev/null +++ b/src/VBox/Additions/darwin/Installer/VBoxGuestAdditionsKEXTs/postflight @@ -0,0 +1,73 @@ +#!/bin/sh +# $Id: postflight $ +## @file +# Post flight installer script for the VirtualBox OS X kernel extensions. +# + +# +# Copyright (C) 2007-2020 Oracle Corporation +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# + +set -e + +# Setup environment. +export PATH="/bin:/usr/bin:/sbin:/usr/sbin:$PATH" + +unload_service() +{ + ITEM_ID=$1 + ITEM_PATH=$2 + FORCED_USER=$3 + + loaded="NO" + test -n "$(sudo -u "$FORCED_USER" launchctl list | grep $ITEM_ID)" && loaded="YES" + if [ "$loaded" = "YES" ] ; then + echo "Unloading previously installed service: $ITEM_ID" + sudo -u "$FORCED_USER" launchctl unload -F "$ITEM_PATH/$ITEM_ID.plist" + fi +} + +load_service() +{ + ITEM_ID=$1 + ITEM_PATH=$2 + FORCED_USER=$3 + + echo "Loading newly installed service: $ITEM_ID" + sudo -u "$FORCED_USER" launchctl load -F "$ITEM_PATH/$ITEM_ID.plist" +} + +unload_service "org.virtualbox.additions.vboxservice" "/Library/LaunchDaemons" "root" +unload_service "org.virtualbox.additions.vboxclient" "/Library/LaunchAgents" "${USER}" + +items="VBoxGuest" +for item in $items; do + kext_item="org.virtualbox.kext.$item" + + loaded="NO" + test -n "$(kextstat | grep $kext_item)" && loaded="YES" + if [ "$loaded" = "YES" ] ; then + echo "Unloading $item kernel extension..." + kextunload -b $kext_item + fi +done + +echo "Updating kernel cache (should trigger loading of new modules)." +touch "/System/Library/Extensions/" +kextcache -update-volume / || true + +load_service "org.virtualbox.additions.vboxservice" "/Library/LaunchDaemons" "root" +load_service "org.virtualbox.additions.vboxclient" "/Library/LaunchAgents" "${USER}" + +echo "Warning: If VBoxService adjusts the time backwards (because of --biossystemtimeoffset), the installer may hang." +echo "Done." + +exit 0; |