Monday, August 20, 2012

Suppress iCloud dialog at first login

Greg Neagle writes about it here, using MCX. But for me this didn't work (tried it as a local MCX and a profile).
This is how I do it: The information that the iCloud panel has been shown is stored inside ~/Library/Preferences/com.apple.SetupAssistant.plist and the keys is the same as you find in Greg's article, namely:

 "DidSeeCloudSetup"
and
"LastSeenCloudProductVersion"

"DidSeeCloudSetup" should be set to "true" (boolean) and "LastSeenCloudProductVersion" to 10.8 (string). This is what I put in my firstboot.sh for this to work:


OSVERS=$(sw_vers | awk -F. '/ProductVersion/  {print $2}')
USERTEMPLATES=$(find "/System/Library/User Template" -type d -maxdepth 1)
USERHOMES=$(find "/Users" -type d -maxdepth 1 | grep -v Shared)



if [ "$OSVERS" = "8" ]; then
echo "This is OS X 10.8, running specific tasks for 10.8"
#Suppress iCloud dialog when logging in
echo "Suppressing iCloud dialog at login"
for templates in $USERTEMPLATES; do
defaults write "$templates/Library/Preferences/com.apple.SetupAssistant" DidSeeCloudSetup -bool true
defaults write "$templates/Library/Preferences/com.apple.SetupAssistant" LastSeenCloudProductVersion -string 10.8
done
for userhome in $USERHOMES; do
defaults write "$userhome/Library/Preferences/com.apple.SetupAssistant" DidSeeCloudSetup -bool true
defaults write "$userhome/Library/Preferences/com.apple.SetupAssistant" LastSeenCloudProductVersion -string 10.8
done
fi
The first for loop takes care of the user templates so any new user that is created gets this preference. The second loop writes the preference to any existing home directory. Quite ugly, but it works...

Monday, August 13, 2012

Adobe Provisioning Tool errors

My sincere belief is that Adobe can't do anything correct. To begin with, as they now released CS6 they demand that every user have to register their product with that user's AdobeID. Or else the product will not start after 7 days. As an enterprise customer you can work around this by repackaging all the CS6 products with Adobe's AAMEE tool (Adobe Application Manager Enterprise Edition). Adobe calls this a "minor impact" in their document describing this. Well, I can tell you, repackaging about 10 products in both English and Swedish on two platforms, summing up to a total of 40 products takes a few hours... And not a single word to us customers that this was going to happen! Well, enough about that... When I got to repackage Acrobat Pro X, the errors continues. For Windows there is a tool called Acrobat Customization Wizard, this is not available for Mac. We have to use a tool called Adobe Provisioning Tool. Everything is explained in Adobe's PDF for enterprise deployment. It involves creating a new package that will install a zipped copy of the Adobe Acrobat X package and adobe_provisioning_tool.app to /tmp. Then a postinstall script unzips the installer, running the installer and then runs three adobe_provisioning_tool commands to serialize, accept the EULA and suppress the AdobeID dialog. Ok, not THAT complicated. BUT the postinstall script Adobe thinks we should run contains some errors: The if statement after installation is really not after the installation takes place, no it's after the rm -rf "Installfile.pkg". And since it tests if $? equals 0, it tests the rm command, not the install command. So as long as the deletion went fine, the script reports that the installation went fine... The other is that the PDF says you should input the serial like this: "1118-xxxx-xxxx-xxxx-xxxx-xxxx". But if you run "adobe_provisioning_tool.app/Contents/MacOS/adobe_provisioning_ tool" without statements, the help text says you should pass the serial without dashes! From the help text: "adobe_provisioning_tool -C -a -s This is to validate the serial number against the application.sif file. The caller is expected to pass the clear serial number w/o any dashes ('-')." I hope I have helped someone with this complaint! And a tip: if you plan on using this method, make sure to include any Acrobat updates in the customized package and edit the postinstall script to install the update too.