13 October, 2016 update: Adobe just broke this by making the distribution page require an Adobe ID login before you can view it.
Even though Flash is slowly being deprecated, people still use it. And while people still use it, Mac admins keep having to make sure their users’ Adobe Flash Player plugins are up to date so the plugin is the smallest security hole that it can be.
Adobe Flash Player is free to download, but Adobe would like you to apply for a license to distribute Adobe Flash Player. Once you do that, they send you a unique link to download a distributable Flash Player (which is not materially different from the normal one you would download without the license).
One AutoPkg recipe maintainer wrote up a series of recipes to deal with this type of download. Here’s one example.
For some reason, even though that recipe works to download Flash Player, I wasn’t able to get it to work to download Flash Player and then have Munki import the approved download into the Munki repo.
So, as a workaround, I made a hodge-podge recipe combining the general Adobe Flash Player download AutoPkg recipe with the proper one, and then modifying it to include my institution’s unique download link.
If you can get DLA to work with your Munki recipe, ignore the suggested code below (and comment to let me know how you did it). Otherwise, you may want to make an override for the standard Flash download recipe, and then paste in the following, and modify the link to be your institution’s unique download link:
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>Description</key>
<string>Downloads Adobe Flash Player installer.</string>
<key>Identifier</key>
<string>com.github.autopkg.download.FlashPlayer</string>
<key>Input</key>
<dict>
<key>NAME</key>
<string>AdobeFlashPlayer</string>
</dict>
<key>MinimumVersion</key>
<string>0.6.0</string>
<key>Process</key>
<array>
<dict>
<key>Processor</key>
<string>URLTextSearcher</string>
<key>Arguments</key>
<dict>
<key>url</key>
<string>https://YOURORGANIZATIONSUNIQUEURL</string>
<key>re_pattern</key>
<string>Flash Player (?P<version>.*?) \(Win .*?Mac\)<\/span></string>
</dict>
</dict>
<dict>
<key>Processor</key>
<string>URLTextSearcher</string>
<key>Arguments</key>
<dict>
<key>url</key>
<string>https://YOURORGANIZATIONSUNIQUEURL</string>
<key>re_pattern</key>
<string>(?P<downloadurl>https.*?osx_pkg.dmg)</string>
</dict>
</dict>
<dict>
<key>Processor</key>
<string>URLDownloader</string>
<key>Arguments</key>
<dict>
<key>url</key>
<string>%downloadurl%</string>
<key>filename</key>
<string>%NAME%.dmg</string>
</dict>
</dict>
<dict>
<key>Processor</key>
<string>EndOfCheckPhase</string>
</dict>
<dict>
<key>Processor</key>
<string>CodeSignatureVerifier</string>
<key>Arguments</key>
<dict>
<key>input_path</key>
<string>%pathname%/Install Adobe Flash Player.pkg</string>
<key>expected_authority_names</key>
<array>
<string>Developer ID Installer: Adobe Systems, Inc.</string>
<string>Developer ID Certification Authority</string>
<string>Apple Root CA</string>
</array>
</dict>
</dict>
</array>
</dict>
</plist>
I paired that with this Munki recipe override:
<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>Identifier</key>
<string>com.github.autopkg.munki.FlashPlayer</string>
<key>Input</key>
<dict>
<key>MUNKI_REPO_SUBDIR</key>
<string>internet_plugins</string>
<key>NAME</key>
<string>AdobeFlashPlayer</string>
<key>pkginfo</key>
<dict>
<key>catalogs</key>
<array>
<string>testing</string>
</array>
<key>description</key>
<string>Adobe® Flash® Player is a cross-platform browser-based application runtime that delivers uncompromised viewing of expressive applications, content, and videos across screens and browsers.</string>
<key>display_name</key>
<string>Adobe Flash Player</string>
<key>name</key>
<string>%NAME%</string>
<key>unattended_install</key>
<true/>
</dict>
</dict>
<key>ParentRecipe</key>
<string>com.github.autopkg.download.FlashPlayer</string>
<key>Process</key>
<array>
<dict>
<key>Processor</key>
<string>MunkiPkginfoMerger</string>
<key>Arguments</key>
<dict>
<key>additional_pkginfo</key>
<dict>
<key>version</key>
<string>%version%</string>
</dict>
</dict>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>pkg_path</key>
<string>%RECIPE_CACHE_DIR%/downloads/%NAME%.dmg</string>
<key>repo_subdirectory</key>
<string>%MUNKI_REPO_SUBDIR%</string>
</dict>
<key>Processor</key>
<string>MunkiImporter</string>
</dict>
</array>
</dict>
</plist>
Leave a Reply