Sunday, August 19, 2018
Re Packaging Apple Quicktime 7 72 80 56 and later versions
Re Packaging Apple Quicktime 7 72 80 56 and later versions
Quicktime comes as an EXE file which can be extracted easily with 7Zip. The three MSI I received were AppleApplicationSupport, AppleSoftwareUpdate and Quicktime. The Apple Update MSI can be discarded if you do not want to AutoUpdate your Quicktime.
Apple Application Support MSI can be directly installed with /qb! switch.
iTunes can be packaged separately and I have created a separate post for its customization:
http://msiworld.blogspot.com.au/2012/06/re-packaging-apple-itunes-10617-and.html
Quicktime should be modified through Transform as follows:
1) Change the following properties in your MST:
SCHEDULE_ASUW =0
REGSRCH_DESKTOP_SHORTCUTS =0
REBOOT=ReallySuppress
2) Install Quicktime on a test machine and do all the customizations you want with preferences. Once all customizations are complete, copy the quicktime.qtp file from "%userprofile%AppDataLocalLowApple ComputerQuickTimeQuickTime.qtp"
Add this file to Transform in C:ProgramDataApple ComputerQuickTimeQuickTime.qtp.
Now add these two scripts in your package in Custom Action to run just before Install Finalize and with Condition as NOT REMOVE~="ALL"
a) This script will copy the .qtp file to all the users profile.
----------------------------------------------------------------------
Created by Piyush Nasa
Used to copy the config file to the current userappdatalocal directory.
on error resume next
Set oShell = CreateObject( "WScript.Shell" )
userprofile=oShell.ExpandEnvironmentStrings("%USERPROFILE%")
systemdrive=oShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")
Set fso = CreateObject("Scripting.FileSystemObject")
Set afile = fso.GetFile(systemdrive & "ProgramDataApple ComputerQuickTimeQuickTime.qtp")
strDestination1 =userprofile & "AppDataLocalLowApple ComputerQuickTimeQuickTime.qtp"
fso.CreateFolder(userprofile & "Application DataLocalLowApple Computer")
fso.CreateFolder(userprofile & "Application DataLocalLowApple ComputerQuickTime")
afile.Copy(strDestination1)
------------------------------------------------------------------------
b) This script will create the registry key for every user.
------------------------------------------------------------------------
Created by Piyush Nasa
Used to create HKCU registry to point to qtp file.
Option Explicit
Dim Temp
HKEY_CURRENT_USER = HKCU
HKEY_LOCAL_MACHINE = HKLM
HKEY_CLASSES_ROOT = HKCR
HKEY_USERS = HKEY_USERS
HKEY_CURRENT_CONFIG = HKEY_CURRENT_CONFIG
Temp = WriteReg("HKCUSoftwareApple Computer, Inc.QuickTimeLocalUserPreferencesFolderPath","%userprofile%AppDataLocalLowApple ComputerQuickTime","REG_SZ")
Function WriteReg(RegPath, Value, RegType)
Regtype should be "REG_SZ" for string, "REG_DWORD" for a integer,�
"REG_BINARY" for a binary or boolean, and "REG_EXPAND_SZ" for an expandable string
Dim objRegistry, Key
Set objRegistry = CreateObject("Wscript.shell")
Key = objRegistry.RegWrite(RegPath, Value, RegType)
WriteReg = Key
End Function
---------------------------------------------------------------------------
3) Add any HKCU registry key in a new component placed at the highest parent Feature. Set this as a keypath. This will ensure that the application is self healed when launched by the user.
4) You will have to remove a Launch condition to check if the existing version is installed already, because I faced a problem and it was not uninstalling properly too with that condition being there. Though this step is optional.
Please note that this package works fine when deployed/installed through any deployment tool in System context as it will trigger the self heal. If you have to manually install this application then you need to add the file the LOCALAPPDATAFOLDER manually in your transform.
Hope this will expidite your packaging of Quicktime application.