GithubHelp home page GithubHelp logo

first-boot-package-install-with-automated-apple-software-update's Introduction

First Boot Package Install With Automated Apple Software Update is a fork of First Boot Package Install (https://github.com/rtrouton/First-Boot-Package-Install). It is an installer package that installs all available Apple software updates and enables other packages to be installed at first boot. It's designed for use with createOSXinstallPkg with the goal of allowing installer packages that can't run in the OS X Install environment to be incorporated into a createOSXinstallPkg-using deployment workflow.

Usage
------

1. Download the First-Boot-Package-Install-With-Automated-Apple-Software-Update.zip file from the "installer" directory.

2. Once downloaded and unzipped, right-click on the package and choose "Show Package Contents".

3. Go to Contents: Resources: fb_installers

4. Add one installer package to each numbered directory. The number of the directory indicates the install order, with 00 being the first. As needed, more numbered directories may be added. For numbers 9 or less, make sure to label the directory with a leading zero (For example, 06).

NOTE: createOSXinstallPkg has an upper limit of 350 MBs of available space for added packages. This is sufficient space for basic configuration, payload-free or bootstrapping packages, but it's not a good idea to add Microsoft Office or similar large installers to this installer.

5. Once finished adding installers to the numbered directories, First Boot Package Install With Automated Apple Software Update.pkg is ready to be added to a deployment workflow.


Operation
---------

When First Boot Package Install With Automated Apple Software Update.pkg is installed via createOSXinstallPkg, it does the following:

1. Copies First Boot Package Install With Automated Apple Software Update.pkg/Contents/Resources/fb_installers to /Users/Shared/fb_installers

2. The following files are installed:

/Library/LaunchDaemons/com.company.firstbootpackageinstall.plist
/Library/LaunchAgents/com.company.LoginLog.plist
/Library/PrivilegedHelperTools/LoginLog.app
/var/firstbootpackageinstall.sh

After OS X is installed by createOSXinstallPkg and reboots, the following process occurs:

1. com.company.firstbootpackageinstall LaunchDaemon triggers /var/firstbootpackageinstall.sh to run. 
2. /var/firstbootpackageinstall.sh stops the login window from loading and checks for the existence of /Users/Shared/fb_installers.


If /Users/Shared/fb_installers is not found, the following actions take place:

A. The login window is allowed to load

B. The following files are deleted by /var/firstbootpackageinstall.sh:

/Library/LaunchDaemons/com.company.firstbootpackageinstall.plist
/Library/LaunchAgents/com.company.LoginLog.plist
/Library/PrivilegedHelperTools/LoginLog.app

C. /var/firstbootpackageinstall.sh checks for an existing /var/log/firstbootpackageinstall.log logfile and renames the existing logfile to include the current date and time.

D. /var/firstbootpackageinstall.sh deletes itself.

 

If /Users/Shared/fb_installers is found, the following actions take place:

A. If /Users/Shared/fb_installers exists, the login window is allowed to load

B. A log is created to record the actions taken by /var/firstbootpackageinstall.sh. By default, this logfile named firstbootpackageinstall.log and is stored in /var/log.

C. /Library/LaunchAgents/com.company.LoginLog.plist loads and launches /Library/PrivilegedHelperTools/LoginLog.app

D. /Library/PrivilegedHelperTools/LoginLog.app opens a window over the Mac's login window and displays the logfile

E. A network check is run, to ensure that the Mac has a network address other than 127.0.0.1 or 0.0.0.0 (which are otherwise known as loopback addresses.) This network check will check every five seconds for the next 60 minutes for a working network connection. 

Network check fails - If only loopback addresses are detected within 60 minutes, the script will take the following actions:

• Log a failure message to the log
• Delete /Users/Shared/fb_installers
• Restart.
• On restart, the "if /Users/Shared/fb_installers is not found" actions occur.

Network check succeeds - If a non-loopback address is detected, the script will take the following actions:

• Log a success message to the log and proceed with the rest of the script.

F. Available Apple software updates are downloaded and installed. The script will install updates and reboot the Mac until all available updates have been installed.

G. The packages are installed, using the numbered subdirectories to set the order of installation

H. Once installation has finished, /Users/Shared/fb_installers is deleted

I. The Mac is restarted

J. On restart, the "if /Users/Shared/fb_installers is not found" actions occur.






End Result
-----------

The installer package is designed to update a Mac with all available Apple software updates, install packages in the desired order, then remove all traces. All actions occur while access to the OS X login window is blocked.



Components
-----------

If you want to modify the installer package for your own users, the components are included in the following directories:

Iceberg project files - Available in Iceberg_project_files as First-Boot-Package-Install-With-Automated-Apple-Software-Update.zip

LaunchDaemon - Available in launchd_items/LaunchDaemons as com.company.firstbootpackageinstall.plist

LaunchAgent - Available in launchd_items/LaunchAgents as com.company.LoginLog.plist

LoginLog application - Available in loginlog_application as LoginLog-1.1.dmg

Scripts - Both the installer postflight and firstbootpackageinstall.sh are available in the following directories:

• Installer Postflight - Available in scripts/installer_postflight as postflight

• firstbootpackageinstall.sh - Available in scripts as firstbootpackageinstall.sh


Special Thanks
---------------

Thanks to Per Olofsson (MagerValp) for creating LoginLog:

https://github.com/MagerValp/LoginLog

first-boot-package-install-with-automated-apple-software-update's People

Contributors

rtrouton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

first-boot-package-install-with-automated-apple-software-update's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.