To extract the Firefox compressed tarball using Linux or UNIX-based systems, just issue thefollowing commands in a console window, pressing Enter after each line: tar -xzvf firefox-1.0.4
Trang 1The combination of the silent mode and destination directory parameter are nice for ing the basic installation process To use these parameters together, just type the following:
customiz-FirefoxSetup.exe -ms -dd d:\Mozilla\Firefox\
You can substitute d:\Mozilla\Firefox\for the directory you wish to use If the tion path includes spaces, try putting quotes around the path, as follows:
destina-FirefoxSetup.exe -ms -dd “d:\Local Apps\Firefox\”
There is a space between the -dd parameter and the installation path name
When using the -msparameter to run in silent mode, the only dialog that is displayed is thesetup-file extraction progress This makes it difficult to alert the user that the installation is inprogress Status dialogs should be created and can be customized depending on the installation
or scripting system used to automate the installation process Additionally, running the installer
in silent mode creates all the standard icons, desktop, Start menu, and Quick Launch toolbar; apostinstallation process will be needed to remove these if desired
Extracting the Installer
Like many installers, the Firefox installer executable is really just a wrapper to the actualinstaller setup files The main installer file contains the actual setup.exe and supporting installerfiles To begin hacking through the installer, you must first extract the single installer file togain access to the individual files contained within For Windows-based systems, you can usecompression extraction tools such as 7-Zip (http://www.7-zip.org/) or WinRar(http://www.rarlab.com/) to quickly view or extract these files
On Linux-based systems, uncompressing the GZipped installer file gives you access to theinstallation files
To extract the Firefox compressed tarball using Linux or UNIX-based systems, just issue thefollowing commands in a console window, pressing Enter after each line:
tar -xzvf firefox-1.0.4.installer.tar.gz
cd firefox-installer./firefox-installer
Figure 13-2 shows the contents of the installer using 7-Zip, but similar results are achievedusing WinRar on the file
Trang 2F IGURE 13-2: Firefox installer listing using 7-Zip
To extract the installer listing with 7-Zip or WinRar, follow these steps:
1 Open Windows Explorer to the path to which you have downloaded the installer.
2 Select the Extract files, Extract Here, or Extract To option from the right-click context
Command-Line Installer Extraction
To extract the installer file in command-line mode using 7-Zip you can use the following:
7z e -o”setup” “Firefox Setup.exe”
Just substitute the name Firefox Setup.exefor the name of the Firefox installer savedlocally, and substitute setupfor the subdirectory or full path where you want the filesextracted to In our example, a subdirectory will be created called setupin the current path
Trang 3There is no space between the -o and the directory path for extraction.
To have Windows find the 7z executable, the installation path for 7-Zip needs to be added tothe Pathenvironment variable You can also accomplish this on the fly by issuing the follow-ing command in Windows just before running the 7-Zip extraction command:
set Path=%PATH%;C:\Program Files\7-Zip\;
The path of C:\Program Files\7-Zip\ should reflect the local installation path for 7-Zip
The next section covers the options available in the config.ini file to create a customized installprocess
Hacking the Configuration INI File
As illustrated in Figure 13-2, one file that is included with the Firefox installer is the ration INI file config.ini This file contains different sections for the installation process anddefault values associated with each section; this is where customizing the installation processcan truly be achieved With the multitude of options available, I want to focus on some of thecritical options and detail those; they include the following:
configu- Disabling specific dialogs
Running silently
Changing the installation pathINI files have a standard structure that includes a header, or section, and then associated name-value pairs INI files can be edited with any standard text editor Additionally, you can includecomments, which in the config.ini are prefixed with a semicolon, as shown in the following:
[General]
; Run Mode values:
; Normal - Shows all dialogs Requires user input
; Auto - Shows some dialogs, but none requiring user input
In this example, the header, or section, is [General], and the variable name is Run Mode
with a value of Normal This format allows for human-readable parameters that can be fied easily to create a custom installation
Trang 4modi-Disable Specific Dialog Windows
To begin customizing, I can review the headers associated with each dialog that can be enabled
or disabled by setting the Show Dialogparameter to either TRUEor FALSE, as shown:
Dialog Setup Type
Dialog Select Components
Dialog Select Install Path
Dialog Install Successful
To disable the Welcome screen dialog just change the Show Dialogvalue to FALSE,
Running in Silent Mode
Disabling each of the installer dialogs is nice but does not have to be done if you want to runthe installer in silent mode To have the installer run in true silent mode, with absolutely nodialogs, just change the value of the Run Modein the [General]header to Silent, asshown:
[General]
Run Mode=Silent
After you make this change, the setup.exe will run with no dialogs and will use the default tings Choosing a Run Modeof Autodoes show the installation process, but the installationwill not end properly, and the last dialog window will not close Additionally, the command-line option -mayields the same result as Run Mode=Auto
set-For more information on –ma support, visit the following Bugzilla posting: https://
bugzilla.mozilla.org/show_bug.cgi?id=229706
Trang 5Modify the Installation Path
To modify the installation path just update the Pathvalue in the [General]section Thedefault value is shown here:
Path=[PROGRAMFILESDIR]\Mozilla Firefox[PROGRAMFILESDIR]is automatically parsed to reflect your program file’s installation path
The INI file also highlights other system-related destination paths that it will recognize whenplaced in the Pathvalue These include WINDISK, WINDIR, and WINSYSDIR
The Pathvalue can easily also reflect a direct path, as shown:
Path= D:\Mozilla Firefox
The combination of running the installer in true silent mode and customizing the installationpath is a great starting point to automating the installation process
Installation and Profile Customization Options
My initial efforts in creating a customized image included using the zipped file distributionthat was available up until the 1.0.2 release With the zipped version no longer available, thissection focuses on automating some of the supporting elements for using Firefox These tech-niques include creating a profile, installation extensions, and themes globally; deploying pluginsand profile templates; and using other tools
Automated Profile Creation
This code allows you to create a profile, and if no directory is specified, a directory with a dom saltprefix is created This random salt string is used as an attempt to reduce profilename spoofing and tampering, and so on All active profiles are listed in the profiles.ini file,usually located at %UserPath%\Mozilla\Firefox
ran-To automatically create a user profile you can use the -CreateProfilecommand-lineoption that is available For ease of use, follow these steps:
1 Open a command console window.
2 Change into your current Firefox installation path.
3 Type firefox.exe -CreateProfile MyProfile.
In the preceding example,MyProfileis the name you want to call the profile; this name not contain spaces The CreateProfileoption can also accept a directory path, so the com-mand would end up looking something like this:
can-For Windows:
firefox.exe -CreateProfile “MyProfile c:\Profiles\MyProfile”
Trang 6On Windows systems, the default location for profiles is as follows: C:\Documents andSettings\User Name\Application Data\Mozilla\Firefox\Profiles.
For Linux:
firefox.exe -CreateProfile “MyProfile ~/.mozilla/firefox/”
It is important to note that the two parameters, the profile name and the directory paths, need
to be quoted together, as together they are the single value that is used by the CreateProfileinstruction when you specify a custom path for the MyProfile directory
-For more information on other Mozilla Suite command-line options that may work with Firefox,visit http://www.mozilla.org/docs/command-line-args.html
Adding Global Extensions and Themes
One interesting but somewhat limited set of features that is available is global installations
of extensions and themes These options are available as command-line options after Firefoxhas been installed, so they are Firefox options and not install file options The -install-global-extensionand -install-global-themecommand-line options allow exten-sions and themes to be installed to the main directory in which Firefox is installed, much likethe similar option in the Mozilla Suite On the surface, these look to be ideal for deployingextension and themes, but in my experience a global extension installation might not be worththe hassle
Before I dive into how to best use these, I will just cover the issues I have come across in trying
to implement them What I have found on Windows-based systems is that the extensionparameter does not play nice when it comes to the location of the actual extension XPI file.After some testing, the only way to get extensions to install was to have the XPI file reside inthe same directory as the Firefox.exe or the Firefox installation path This makes deploying atad annoying because the files have to be copied over the computer, the installation for eachexecuted, and then cleaned up afterward This, coupled with the fact that the Options dialogfor globally installed extension is disabled, makes it difficult for users to customize extensions.All preference changes for globally installed extensions will have to be entered into the user.js
or prefs.js file in the profile
Installing themes globally, though, was a tad smoother, and I was able to get all my themes toinstall properly
Installing extensions globally works best on brand-new Firefox installations with a new andclean profile Profiles that already contain the same extension that will be installed globally mayencounter issues If the extension is installed in the profile, uninstall it and restart Firefox.Additionally, the directory associated to the GUID in the profile’s extension directory needs
to be deleted, as well as any references in the chrome.rdf file located in the profile’s chromedirectory
Trang 7To install an extension globally, you should make sure of the following:
You have the extension XPI install file saved locally into the Firefox installation path
The user must have read and write access to the Firefox installation path
All instances of Firefox must be closed
Once these have been satisfied, open a command prompt to the Firefox installation path andissue the following command:
firefox -install-global-extension “local_install.xpi”
If the installation fails, try removing the quotes
Though all of this seems straightforward, I have had several issues with getting extensions toregister themselves properly, and I would recommend using the extension installation enhance-ments that are slated for the Firefox 1.1 release
With less of a configuration headache, you can install themes by issuing the following command:
firefox -install-global-theme “D:\Firefox\apollo_fx.jar”
As you can see, having the themes in a different directory works and makes installing themesglobally a more viable option
For each extension and theme, Firefox will run and then exit, so on slower computers it willtake longer to deploy using this method
Deploying Plugins
We covered finding and fixing plugins in Chapter 11; here I show you how to automate theplugin installation and disclose where some of the required files are located
Adding Macromedia Flash and Shockwave Support
To deploy Flash and Shockwave updates that support Firefox, simply run the latestMacromedia installers, and they will automatically add Firefox plugin support Automatingthis is a little trickier, especially for the Shockwave installer
To download the Flash installer, just visit the following Macromedia site using Firefox anddownload the installer:http://www.macromedia.com/go/getflashplayer.The reason I specify “using Firefox” is if you go to download the installer using InternetExplorer, the site delivers and installs the ActiveX version of the plugin When you downloadthe Flash installer with Firefox, the Macromedia site provides support for Firefox, Opera, andInternet Explorer
Trang 8To download Shockwave just visit and download the installer using Firefox:http://sdc.shockwave.com/shockwave/download/download.cgi?.
Both installers have the ability to run in silent mode by specifying a command-line parameter
of /silent, as shown for the Flash Installer:
flashplayer7installer.exe /silent
The only major problem is that the new Shockwave installer now also includes the Yahoo!Toolbar installation, and this will be automatically installed if you run the Shockwave installerwith the command-line /silentparameter Unless you have or want to use the Yahoo!Toolbar, the silent option will not work An alternative approach to silent installation is to sign
up for the Macromedia Distribution Program The distribution program, found at http://www.macromedia.com/support/shockwave/info/licensing/, gives you oneinstaller for both Flash and Shockwave that can also be executed with the /silentparameter.Installation is a breeze; during the installation, an installer tray icon and the Shockwave extrac-tion screen are visible, but the whole process is automated and works well to add Flash andShockwave support to Firefox
After you fill out the registration form for the distribution program, a download link is sent via e-mail Once the installer has been downloaded, it can be run in silent mode with the following:
mm_fl_sw_installer.exe /silent
Adding Apple QuickTime and RealPlayer Support
Both QuickTime and RealPlayer come with components and plugin files that allow Firefox tooffer embedded playback of these media file types The newer QuickTime and RealPlayerinstallers automatically detect and copy the corresponding components and plugins if Firefox isalready installed Unfortunately, if Firefox is installed after these media tools, it will not have,nor will it be able to find, the plugins and components needed to allow them to work properly
So you can either reinstall both media tools after installing Firefox or just copy the contents ofthe components and plugins directories associated with QuickTime and RealPlayer to the cor-responding directories in the main Firefox application directory The default Firefox pathwould be something like this:
C:\Program Files\Mozilla Firefox\plugins
C:\Program Files\Mozilla Firefox\componentsThe default path for RealPlayer browser plugin and component files is C:\Program Files\Real\RealPlayer\Netscape6
The default path for Apple QuickTime is C:\Program Files\Apple\QuickTime\Plugins.Creating a script to automatically copy these over will always ensure that the plugins and com-ponents match the installed versions of QuickTime or RealPlayer
Trang 9Create a Custom Windows Desktop Icon
In a great posting on his site, Henrik Gemal has created Microsoft Windows Scripts to mate the creation of Windows desktop icons for Firefox, Thunderbird, and Sunbird The dif-ference between a desktop icon and a standard shortcut icon is that it implements Microsoft’snamespace functionality to give the desktop icon enhanced right-click functionality, much likeMicrosoft Outlook and Internet Explorer Figure 13-3 shows the key right-click context menuoptions available: Open, Open (Safe Mode), Options, and Profile Manager
auto-For more information on the status of integrating this feature into the official Firefox installer,visit the following Bugzilla posting: https://bugzilla.mozilla.org/show_bug.cgi?id=264889
F IGURE 13-3: Right-click menu for Firefox desktop icon
To use this, just download and execute the Microsoft script file from http://gemal.dk/
misc/desktop-firefox.vbs, and a desktop icon will be created Just remove the oldMozilla Firefox shortcut before running the script
You may have to refresh your desktop by switching focus to the desktop and pressing F5 or bylogging off and then back on
For more information on the desktop links from Henrik’s site, visit http://gemal.dk/
blog/2004/11/05/firefox_thunderbird_and_sunbird_desktop_shortcuts/
This script is also a good reference point to use if you want to extract the necessary registryinformation to create your own script to accomplish the same thing
Hacking the Desktop Icon with Nullsoft Installer Script
Tapping into Henrik’s script, I have converted it to a Nullsoft Installer script that you can pile with the Nullsoft Scriptable Install System (NSIS) installer engine To download the NSISvisit its site at http://nsis.sourceforge.net/
Trang 10com-The script is designed to do the following:
Remove previous registry entries
Add the appropriate registry entries for the desktop icon
Remove the standard Mozilla Firefox shortcut link from the desktop
Refresh the desktop to force the display of the newly created icon
The script will automatically run in silent mode with no dialog windows and is available fordownload at http://www.hackingfirefox.com/desktop-icon.nsi
For easier editing and compiling, I like to use HM NIS Editor, an open-source editing tool forNSIS scripts This editor includes a great Help file and syntax highlighting for all the NSISkeywords, functions, and commands Figure 13-4 displays the desktop-icon.nsi script using the
HM NIS Editor
F IGURE 13-4: HM NIS Editor with desktop-icon.nsi script loaded
Following is a full listing of the desktop-icon.nsi source code:
###############################################################
# Hacking Firefox: Desktop Icon - version 1.0
###############################################################
Trang 11# Define Variables
!define PROD_NAME “Mozilla Firefox”
!define PROD_PREF “chrome://browser/content/pref/pref.xul”
!define TOOL_TIP “${PROD_NAME} - Rediscover the web”
!define PROD_GUID “{EC8030F7-C20A-464F-9B0E-13A3A9E97384}”
!define PROD_CLSID “CLSID\${PROD_GUID}”
var PROD_EXESetCompressor LZMASilentInstall SilentOutFile “desktop-icon.exe”
Section “Create Icons” section01
# Remove old icon settingsDeleteRegKey HKCR “${PROD_CLSID}”
# Get Current Path and ExecutableReadRegStr $0 HKLM “SOFTWARE\Mozilla\${PROD_NAME}”
WriteRegExpandStr HKCR “${PROD_CLSID}” “InfoTip” “${TOOL_TIP}”
WriteRegStr HKCR “${PROD_CLSID}\DefaultIcon” “” “$PROD_EXE,0”
WriteRegStr HKCR “${PROD_CLSID}\Shell\Open” “” “&Open”
Trang 12WriteRegBin HKCR “${PROD_CLSID}\ShellFolder” “Attributes”
32000000WriteRegStr HKCR “${PROD_CLSID}\ShellFolder”
“HideOnDesktopPerUser” “”
# Show IconsWriteRegDWORD HKCU
“SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel” “${PROD_GUID}” “0”
WriteRegDWORD HKCU
“SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu” “${PROD_GUID}” “0”
# Create NameSpace IconWriteRegStr HKLM
“SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\${PROD_GUID}” “” “${PROD_NAME}”
# Remove Old ShortcutDelete “$DESKTOP\Mozilla Firefox.lnk”
SetShellVarContext allDelete “$DESKTOP\Mozilla Firefox.lnk”
# Refresh Desktop to show newly created desktop iconSystem::Call ‘user32.dll::RedrawWindow(i 0, i 0, i 0, i 0x0085)
i r1’
SectionEnd
Other Notable Deploy Tools
Currently, there is only one initiative to create a deployable and customized Firefox installationfor Windows, and that is FFDeploy The tool itself is just a combination of Windows Scriptsand other small executables, but the effort to automate this is not trivial, and kudos go out toBob Templeton for his hard work
To get more information on FFDeploy, just visit http://home.comcast.net/~ifrit/FFDeploy.html
Creating a Custom Installer
One issue I want to discuss without going too deeply into its logistics and semantics is theoptions available with different tools to create a custom Windows installer The system used fordeployment will determine what approach to take Active Directory, ZENworks, and other sys-tems have built-in mechanisms for detecting which versions and packages are installed andcome with different options While an entire book could be written on how to deploy Firefoxwith all these systems, the following sections focus on highlighting tools that you could usewith these systems, including some short sample scripts to help with the automation process
Trang 13Custom Nullsoft Scriptable Install System Installer
The Nullsoft Scriptable Install System is a great scripting tool that I like to use to create fullinstallers, as well as customized scripting executables that run silently It supports all the keyareas with file management, and registry and other great functions Another great feature ofthis tool is that it supports LZMA, ZLIB, and BZIP2 compression of files that are includedwith the installers that it will create; and the NSIS installer itself adds minimal overhead to thesize of the installer created To download the core NSIS installer tool, visit http://nsis.sourceforge.net/
After installing the main NSIS engine tool, files with nsi extensions get two right-click text menu options, Complete NSIS Script and Complete NSIS Script (Choose Compressor)
con-Either can be used to quickly create an installer from an existing NSIS script file All NSISscripts are text-based and can be edited with any standard text editor To gain better controlover editing and to get color syntax highlighting of NSIS keywords and functions (as shown inFigure 13-4), I like to use the HM NIS Edit tool, which can be downloaded from http://
hmne.sourceforge.net/ This free editor is a great companion to the NSIS engine andprovides a nice interface to editing and compiling your source NSIS scripts
Knowing that I could modify the config.ini from the extracted installer, I wanted to write ascript that would automate specific config.ini settings that I wanted to create; this script wouldmake future upgrades easier to deploy The script that follows focuses on providing methods formodifying the run mode; updating the installation path; disabling specific dialogs (if running innormal versus silent mode); and providing a mechanism to create a full installer, versus a stubinstaller, that would run the setup from the extracted directory To download this NSIS scriptexample, visit http://www.hackingfirefox.com/custom-installer.nsi.This script relies on the fact that the Firefox installer is extracted to a directory, as highlightedearlier in this chapter To specify the path that the Firefox installer is extracted to, start by look-ing for the following line of code:
!define SOURCE_PATH “setup”
This current line looks for the config.ini and Firefox setup files in a subdirectory of setup.The setuppath is a relative directory to the current location where the NSIS script is runningfrom To specify a different directory, just change this value, as in the following example:
!define SOURCE_PATH “d:\Firefox Extracted Files”
The value for SOURCE_PATH has to be a directory and does not have to have a trailing slash
All files in this directory will be included with the full installer
Trying to make the script as generic as possible, I have included sections of code that are mented out with semicolons, which can be used to further customize the script To run theinstaller in normal mode and disable specific dialogs, change the Run Modevalue of Silent
com-to Normal, as follows:
Trang 14WriteINIStr “${SOURCE_PATH}\config.ini” “General” “Run Mode”
Dialog Setup Type
Dialog Select Components
Dialog Select Install Path
Dialog Install SuccessfulAnother option I wanted to add was the ability to create a full installer and a stub installer Thefull installer would repackage the customized config.ini with all the original Firefox installationfiles, and the stub installer would just have the config.ini changes and would execute theinstaller from the directory it was extracted to
The base script is designed to create a full installer To modify it to create a stub installer, justswitch the semicolon comments as follows:
# 1) Use this section to make single installer containing
# the complete installer
;File “${SOURCE_PATH}\*.*”
;ExecWait ‘“$INSTDIR\setup.exe”’
# 2) Use this for a stub installer with setup extracted
# to the SOURCE_PATHExecWait ‘“${SOURCE_PATH}\setup.exe”’
Following is the listing of the custom-installer.nsi source code:
###############################################################
# Hacking Firefox: Custom Installer - version 1.0
# Source: http://www.hackingfirefox.com/custom-installer.nsi
###############################################################
!define PRODUCT_NAME “Hacking Firefox Custom Installer”
!define SOURCE_PATH “setup”
!define CONFIG_INI “${SOURCE_PATH}\config.ini”
# Use ZLIB compression to create installer faster
# Use LZMA compression to create a smaller installerSetCompressor ZLIB
Trang 15Name “${PRODUCT_NAME}”
SilentInstall SilentOutFile “hacking_firefox.exe”
# Create a random install path in Temp directory for single
# installer using the NSIS $PLUGINSDIR variableInstallDir “$PLUGINSDIR”
Section “Options” SEC01
# Run installer in Silent Mode - Default Value = NormalWriteINIStr “${CONFIG_INI}” “General” “Run Mode” “Silent”
# Choose a custom installation path
# ex: “d:\My Custom Apps\Mozilla Firefox”
# Other Destination Path values include:
# PROGRAMFILESDIR, WINDISK, WINDIR, WINSYSDIR
;WriteINIStr “${CONFIG_INI}” “General” “Path”
“[PROGRAMFILESDIR]\Mozilla Firefox”
# Disable the Welcome Dialog: Uncomment if changing
# “Run Mode” to Normal
;WriteINIStr “${CONFIG_INI}” “Dialog Welcome” “Show Dialog”
“FALSE”
# Diable the License Dialog: Uncomment if changing
# “Run Mode” to Normal
;WriteINIStr “${CONFIG_INI}” “Dialog License” “Show Dialog”
“FALSE”
# 1) Use this section to make single installer containing
# the complete installerFile “${SOURCE_PATH}\*.*”
# Initialize the random Plugins Directory for installationInitPluginsDir
FunctionEnd
Trang 16Other Notable NSIS Code
Another good source of NSIS code that I have tapped into in the past was created by SébastienDelahaye This code was written for the original Phoenix and Firebird builds, which were pre-release builds of Firefox The code itself is dated but can be easily modified or updated to fitthe current release builds Some of the functionality that makes this script hold up is that it islocalized into different languages, and it can download from the Mozilla servers For moreinformation or to download this script, visit http://seb.mozdev.org/firebird/
Hacking Microsoft Windows Installers
Using a Microsoft Windows Installer (MSI) is one of the hottest topics when talking aboutdeploying Firefox The ease of integrating an MSI into corporate environments usingWindows Active Directory makes using an MSI version of Firefox very desirable An MSI file
is a specific format chiseled out by Microsoft to create a standard installation package based on
a simple database of parameters and options and bundled with the corresponding installationfiles The benefits of using any MSI are to capitalize on the ability of Windows to allow repair-ing and managing the installation of needed files, as well as provide easy integration withdeploy procedures such as Active Directory deployment
Currently slated for the Firefox 1.1 release is an MSI installer version, shown in Figure 13-5, toaccompany the existing Windows executable and other platform-specific installers On the sur-face, this seems to be the solution to everything, but for corporate environments that want todeploy a version prior to 1.1, there are other options These options include FrontMotion’sMSI installer, shown in Figure 13-6, as well as the ability to create your own using MSIinstaller tools such as MaSaI or Microsoft’s Installer Software Development Kit
F IGURE 13-5: Official Firefox MSI installer
Trang 17To track the progress of the official Firefox MSI installer, visit the following Bugzilla posting:
https://bugzilla.mozilla.org/show_bug.cgi?id=231062
F IGURE 13-6: FrontMotion’s MSI installer
For more information on FrontMotion’s MSI installer, visit http://www.frontmotion.com/Firefox/
Upon inspecting the official Firefox MSI installer, I found that the contents of the file weremerely the extracted setup files, so in reality, the MSI installer from Mozilla is just a wrapper tothe official installer However, the installer available from FrontMotion uses all of the MSIcapabilities in installing Firefox, and both MSI installers use the free MAKEMSI tool to buildtheir installer
Another nice feature of the FrontMotion installer is the inclusion of the integrated desktopicon (as mentioned earlier in this chapter) with right-click context menu options This, coupledwith the ability to use the MSI’s repair functionality, makes it an ideal option for deployment incorporate environments
For the latest technical support and help with FrontMotion’s Firefox MSI installer visit thisMozillaZine posting:http://forums.mozillazine.org/viewtopic.php?t=138033
Trang 18Hacking with MaSaI
One great tool that you can use to create or update MSIs is MaSaI Solutions’ MaSaI Installer.While Microsoft has the Orca MSI editor as part of its Installer SDK, MaSaI offers someinteresting options and an enhanced interface, as shown in Figure 13-7 While the full version
of this tool is not free, if you want to get serious about creating, extracting, or updating MSIs,this is a viable option The MaSaI tools offer the ability to extract MSI contents to a sourcepath for easy updating and rebuilding without having to do this on the system that originallycreated the MSI Additional features include MCE and ICE validation and verification, as well
as a host of other advanced tools
F IGURE 13-7: MaSaI Editor viewing the official Firefox MSI
You can download the MaSaI Installer from http://www.masaieditor.com/
Hacking with Microsoft’s Orca
To download and install Microsoft’s Orca tool from the Windows Software Development KitSDK, just hop over to http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5or to the older link http://www.microsoft.com/msdownload/platformsdk/sdkupdate/, which redirects easily
Trang 19Special attention should be placed on the fact that this site is heavily Internet Explorer-specificand will prompt you to install an ActiveX control to manage the downloading and updates ofthe Installer SDK.
Once you have installed the full Installer SDK, you can dig through the directories to find theOrca.msi installer The default directory that the installer uses is C:\Program Files\MicrosoftSDK\Bin This is where you can find the Orca.msi file
The Orca installer creates an Orca shortcut in your Start ➪ Programs menu and launches asimple interface, as shown in Figure 13-8
F IGURE 13-8: Microsoft’s Orca MSI editor viewing the official Firefox MSI
Other Notable MSI Tools
Two additional tools that you can use for creating and updating are MAKEMSI and AdvancedInstaller Each tool offers different features; MAKEMSI is an XML scripted tool, and
Advanced Installer is a fully visual Windows application, as shown in Figure 13-9
Trang 20F IGURE 13-9: Advanced Installer’s main window
Getting MAKEMSI
One nice feature of MAKEMSI is its ability to create an installer by just pointing it to a directory or registry file To download the MAKEMSI installer tool, visit http://www.labyrinth.net.au/~dbareis/MAKEMSI.htm
To make life easier when using MAKEMSI you can also download the MSIDIFF tool(http://www.labyrinth.net.au/~dbareis/msidiff.htm), which adds right-clickcontext menu options for MSIs to extract MSIs to scripts, as well as to compare differentscripts
Getting Advanced Installer
While Advanced Installer lacks the import functionality needed to update an existing MSI, itdoes have a rather simple interface for creating a new installer Once you have created this newinstaller you can save the setting as an Advanced Installer Project for future updating and redeploying
To get your free copy of Advanced Installer, visit http://www.advancedinstaller.com/
Trang 21This chapter should help you deploy and manage a core Firefox installation across multiplecomputers The chapter started by discussing hacking the installer and extracting the contents,moved on to configuration options, and finished with options and methods for building adeployable Firefox installer
While this chapter is not meant to cover every possible installation or deployment option forFirefox, it does cover many of the more popular options available today