Pull to refresh

Преднастройка продуктов Mozilla для корпоративной среды это просто

Reading time4 min
Views19K

Обычно после установки продуктов Mozilla в корпоративной среде требуется дополнительно установить:
  • стандартный для компании набор плагинов
  • сделать типовые настройки


Почему бы не интегрировать необходимые плагины и типовые настройки в дистрибутив?
Цель данной статьи — показать как можно перепаковать дистрибутив Mozilla, добавив необходимые компоненты.

Сразу оговорюсь: рассматривать установку любого дистрибутива в корпоративной среде не стану — про это написано множество статей и имеется множество готовых либо самодельных инструментов.
Вторая оговорка: распространяя модифицированный дистрибутив Mozilla за пределы своей организации без подписания дополнительного соглашения с Mozilla Вы нарушите лицензионное соглашение.

Но наша цель — подготовить внутренний дистрибутив для своей организации, так что всё в порядке.



Для перепаковки потребуется:
Дистрибутив продукта (в данном примере Firefox) — www.mozilla.org/en-US/firefox/organizations/all
Архиватор 7zip — www.7-zip.org/download.html
SFX модуль для 7zip — svn.smedbergs.us/cck-repack/trunk/resources/7zSD.sfx

Подготовка.

«Однажды поймал Герасим золотую рыбку.
И как не пытался объяснить, что хочет большой дом, крутую машину и красавицу-жену — получил только трёх коров.
Грамотно сформулированное — половина сделанного »

Поэтому перед перепаковкой дистрибутива стоит подготовить:
  1. Список плагинов, которые необходимо интегрировать в дистрибутив, и их дистрибутивы
  2. Список настроек — по-умолчанию со значениями, которые необходимо интегрировать в дистрибутив (Возможно необходимо добавить настройки по-умолчанию для интегрируемых плагинов)


Распаковка.

Нет ничего проще: переходим в папку со скачанным дистрибутивом и распаковываем его 7zip.
У меня получилась такая команда:
"C:\Program Files (x86)\7-Zip\7z.exe" x .\"Firefox Setup 24.4.0esr.exe" -o"Firefox Setup 24.4.0.esr"


Модификация.

В после распаковки получившейся папке нас в первую очередь интересует путь core\browser\extensions. Для Firefox до версии 24esr и для Thunderbird этот путь будет core\extensions (за не ESR версиями я не слежу).
Если подложить в эту папку расширения, то они интегрируются в пересобираемый дистрибутив. Я добавляю расширение Mozilla GPO plugin для того, чтобы в дальнейшем можно было управлять любыми настройками из групповых политик. Можно подложить сразу xpi файл, можно его распаковать и подложить папку расширения. Тут возможна проблема с именованием файла/папки — см. решение проблем в конце статьи.

Также можно задать некоторые настройки по-умолчанию.
Лично я предпочитаю спускать их через GPO, но возможно дистрибутив будет устанавливаться на ПК не в домене, поэтому пренебрегать этими настройками тоже не стоит.
Для этого в папке core\defaults\pref необходимо создать файл с установками по-умолчанию. Файл обязательно должен быть в кодировке UTF-8 и назвать его стоит all-<имя компании>.js. Например all-contoso.js:
pref("extensions.autoDisableScopes", "11");

Без этой настройки Mozilla спросит у пользователя стоит ли устанавливать подложенные плагины. По-умолчанию это значение параметра равно 15. Подробнее можно почитать здесь

Запаковываем.

После модификации переходим в папку с исправленным дистрибутивом (там где папки core, win32 и setup.exe) и запаковываем его в архив. У меня получилась такая команда:
"C:\Program Files (x86)\7-Zip\7z.exe" a -r -t7z app.7z -mx


Создаём в той же папке файл app.tag (в кодировке UFT-8!), который укажет sfx что запускать после распаковки архива, с содержимым:
;!@Install@!UTF-8!
Title="Firefox 24.4.0 ESR customized"
RunProgram="setup.exe"
;!@InstallEnd@!


Копируем в эту же папку 7zSD.sfx.

«Склеиваем» sfx-модуль, app.tag и архив приложения:
copy /B 7zSD.sfx+app.tag+app.7z "Firefox Setup 24.4.0.esr.custom.exe"


Готово.

Теперь после установки из созданного дистрибутива:
  • Автоматически установятся все включенные дополнения
  • Во всех профилях пользователей будут применены ваши настройки по-умолчанию (Если в профиле явно не указано значение настройки)


Возможные проблемы и их решение.

Если не применяются Ваши настройки по-умолчанию:
  1. Проверьте название и расположение файла настроек в дистрибутиве (нежелательны национальные символы, пробелы и спецсимволы в имени файла)
  2. Проверьте кодировку файла настроек по-умолчанию (Должна быть только UTF-8 без BOM)


Если не «подхватились» интегрированные плагины:
  1. Проверьте значение параметра extensions.autoDisableScopes. Если запрещены плагины из папки Firefox, то пользователю будет сообщение, что кто-то пытается установить плагин.
  2. Проверьте, что Вы правильно назвали файл (или папку плагина). Файл плагина должен иметь имя вида id.xpi, где id — идентификатор плагина как в install.rdf в поле em:id внутри плагина. Имя папки плагина должно совпадать с его id.
    Самый верный путь обеспечить выполнение этого условия: установить плагин через интерфейс управления плагинами Mozilla, а потом скопировать папку (или файл) плагина из профиля пользователя в создаваемый корпоративный дистрибутив.


P.S. «Вдохновение» черпал из статьи:
mike.kaply.com/2007/07/27/manually-repackaging-the-firefox-installer-on-windows
Но с пришлось дополнительно разобраться с названием файла для настроек по-умолчанию, а также разобраться почему некоторые плагины не хотели интегрироваться.
Tags:
Hubs:
+17
Comments25

Articles

Change theme settings