Firstboot Postflight Commands

From AFP548 Wiki
Jump to: navigation, search

Note: Do NOT use all of these commands arbitrarily. Only use the ones that you need.[edit]

#!/bin/sh
 
# Standard settings for images.
# Script is meant to be run as a postflight script in a .pkg file. Also installs startup settings script as a Launchd item which is inside the package /Contents/Resources directory.
 
##### Begin Declare Variables Used by Script #####
 
# Declare 'defaults'and 'PlistBuddy'.
 
defaults="/usr/bin/defaults"
PlistBuddy="/usr/libexec/PlistBuddy"
 
# Declare directory variables.
 
PKG_DIR="$1/Contents/Resources"
SCRIPTS_DIR="$3/Library/Scripts/CompanyName"
LAUNCHD_DIR="$3/Library/LaunchDaemons"
PRIVETC_DIR="$3/private/etc"
PREFS_DIR="$3/Library/Preferences"
USERPREFS_DIR="$3/System/Library/User Template/English.lproj/Library/Preferences"
NONLOC_USERPREFS_DIR="$3/System/Library/User Template/Non_localized/Library/Preferences"
ROOT="$3/"
UPDATE_DYLD="$3/usr/bin/update_dyld_shared_cache" # Set variable to location of update_dyld_shared_cache command on target volume.
 
##### End Declare Variables Used by Script #####
 
##### Begin Preference Setting #####
 
# These settings can be set on the target volume before startup.
 
# Run update_dyld_shared_cache
$UPDATE_DYLD -universal_boot -root $ROOT
 
# Display login window as Name and Password.
$defaults write "${PREFS_DIR}/com.apple.loginwindow" SHOWFULLNAME -bool YES
 
#Starts the Flurry screensaver over the login window when idle for 60 seconds
$defaults write "${PREFS_DIR}/com.apple.screensaver" loginWindowIdleTime -int 60
$defaults write "${PREFS_DIR}/com.apple.screensaver" loginWindowModulePath "/System/Library/Screen Savers/Flurry.saver"
 
# Sets autologout to 60 minutes and enables it
$defaults write "${PREFS_DIR}/.GlobalPreferences" com.apple.autologout.AutoLogOutDelay -int 3600
 
# Use encrypted virtual memory.
$defaults write "${PREFS_DIR}/com.apple.virtualMemory" UseEncryptedSwap -bool Yes
 
# Set Safari Preferences.
$defaults write "${USERPREFS_DIR}/com.apple.Safari" HomePage "http://www.google.com/"
$defaults write "${USERPREFS_DIR}/com.apple.Safari" ShowStatusBar -bool YES
 
# Set Finder Prefereces.
$defaults write "${USERPREFS_DIR}/com.apple.finder" ShowMountedServersOnDesktop -bool YES
 
# Enables Double Click Title bar to Minimize Window
 
$defaults write "${NONLOC_USERPREFS_DIR}/.GlobalPreferences" AppleMiniaturizeOnDoubleClick -bool TRUE
 
# No .ds-store files on Network Shares
$defaults write "${PREFS_DIR}/com.apple.desktopservices" DSDontWriteNetworkStores true
 
# Globally Set Expanded Print Dialouge Box.
$defaults write "${PREFS_DIR}/.GlobalPreferences" PMPrintingExpandedStateForPrint -bool TRUE
 
# Use short-name for logging into Network Shares
$defaults write "${PREFS_DIR}/com.apple.NetworkAuthorization" UseDefaultName -bool NO
$defaults write "${PREFS_DIR}/com.apple.NetworkAuthorization" UseShortName -bool YES
 
# Set Apple Mouse button 1 to Primary click and button 2 to Secondary click.
$defaults write "${USERPREFS_DIR}/com.apple.driver.AppleHIDMouse" Button1 -integer 1
$defaults write "${USERPREFS_DIR}/com.apple.driver.AppleHIDMouse" Button2 -integer 2
 
# Set Apple Magic Mouse button 1 to Primary click and button 2 to Secondary click.
$defaults write "${USERPREFS_DIR}/com.apple.driver.AppleBluetoothMultitouch.mouse" MouseButtonMode -string TwoButton
 
# Set Apple Magic Mouse inertia scroll mode.
$defaults write "${USERPREFS_DIR}/com.apple.driver.AppleBluetoothMultitouch.mouse" MouseMomentumScroll -bool NO
 
# Disable Time Machine Offers.
$defaults write "${PREFS_DIR}/com.apple.TimeMachine" DoNotOfferNewDisksForBackup -bool YES
 
# Disable Time Machine AutoBackup
$defaults write "${PREFS_DIR}/com.apple.TimeMachine" AutoBackup 0
 
# Enables SSH
$PlistBuddy -c "Delete Disabled" $3/System/Library/LaunchDaemons/ssh.plist
 
# Allows any user to set dvd region
$PlistBuddy -c "Set :rights:system.device.dvd.setregion.initial:class allow" "$3"/etc/authorization
 
# Firewall Settings | 0 = Off | 1 = On For Specific Services | 2 = On For Essential Services
$defaults write "${PREFS_DIR}/com.apple.alf" globalstate -int 0
 
# Activate "Require a password to unlock each System Preferences pane"
$PlistBuddy -c "Set :rights:system.preferences:shared false" /private/etc/authorization
 
# Disable iCloud login pop-up message (10.7.2 or higher)
$defaults write "${USERPREFS_DIR}/com.apple.SetupAssistant" DidSeeCloudSetup -bool TRUE
 
# Turn off Java in Safari
$defaults write "${USERPREFS_DIR}/com.apple.Safari" WebKitJavaEnabled -bool FALSE
$defaults write "${USERPREFS_DIR}/com.apple.Safari" com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool FALSE
 
##### End Preferences Setting #####
 
exit 0