Creating an modified .msi package of OpenOffice.org 3.2

This article will describe how to develop a modified msi package of OpenOffice.org version 3.2. The modifications to the original msi consists of the following:
  1. File associations - Possibilty to associate MS file formats to OO.org 3.2
  2. Disable update functionality
  3. Disable the registration wizard

Extracting the files

The first two points are accomplished via editing the supplied msi package or creating a mst file defining the changes from the msi package. The last point is a bit more difficult, but hang in there it is fairly simple, but a bit tedious :-) So starting by downloading the install you want and execute it. The installer will extract the installation files to the desktop, and starts the installation from there. Cancel the installation when extraction has completed.

We are left with a setup.exe and a msi package i will refer to as openoffice.msi. Next we make an administrative install of openoffice.msi to get the essential files, from a console type:
msiexec /A openoffice.msi
We are now left with the essiential files, an openoffice.msi and a few folders.

Editing the msi

Download and install orca or another similar program, open the openoffice.msi file with it. The things we need to modify is located under the “Property” element in the left side, so select that and focus on the properies on the right.

File associations

There are a number of individual association posibilties. If you want all MS associations just set REGISTER_ALL_MSO_TYPES to 1, it overrules the individual settings so leaving them untouched is fine.

Disabling updating

Change ISCHECKFORPRODUCTUPDATES to 0, it is that simple.

Disabling registration

The method I here propose is to cheat OpenOffice.org into thinking that it registration is already done. To accomplish this we register one install and copy the required files back to the administrative files.

We just modify two files: Setup.xcu and Common.xcu

Install the program normally and go through the registration wizard choosing whatever you want for the default options. This will create your setup.xcu in
\Application Data\OpenOffice.org\3\user\registry\data\org\openoffice\setup.xcu
Copy this file to your administrative install overwriting the existing file in this location:
\Basis\share\registry\data\org\openoffice\setup.xcu
And remove the following three lines from the file:
<prop oor:name="ooSetupInstCompleted" oor:type="xs:boolean">
<>True<>
</prop>
Otherwise the users will get an error the first time the program is launched.

The next step is to modify Common.xcu a bit, it is located in:
\Basis\share\registry\data\org\openoffice\Office\Common.xcu
Open the file in a text editor and change:
<node oor:name="Registration">
<prop oor:name="ReminderDate">
<value>Patch</value>
To:
<node oor:name="Registration">
<prop oor:name="ReminderDate">
<value>_default</value>
Changing the value from Patch to _default, and save the file.

Let me know how it works out for you, if you have comments, please input to jesper_at_dkgoofy.dk.