Упаковка расширения ядра для распределения и установки

Перед распределением kext для установки необходимо подготовить ее путем создания пакета. Упакованный kext предоставляет пользователям информацию, которую они ожидают, когда они установят программное обеспечение, такое как лицензионные ограничения и расположение стандартной установки. Если Вы еще не создали kext, полное Создание Универсального Расширения ядра с XCode или Создания Драйвера устройства с XCode прежде, чем завершить это учебное руководство.

План действий

Вот существенные шаги, которые Вы выполните:

  1. Полномочия набора для Вашего Kext

  2. Создайте пользовательскую информацию об установщике

  3. Создайте пакет с PackageMaker

  4. Создайте пакет и протестируйте установку

Это учебное руководство предполагает, что Вы зарегистрированы как администратор Вашей машины, которая необходима для использования sudo команда.

Полномочия набора для Вашего Kext

Перед упаковкой kext необходимо удостовериться, что он имеет верные полномочия и что он находится в каталоге с корневыми полномочиями, когда он упаковывается.

  1. Создайте каталог для копии Вашего kext в /tmp каталог как пользователь root.

    % cd /tmp
    % sudo mkdir mykextdir
    Password:
  2. Создайте копию своего kext как пользователь root и поместите его в папку, которую Вы создали.

    % cd /KEXT_PROJECT_PATH/build/Release
    % sudo cp -R MyKext.kext /tmp/mykextdir/

    Не изменяйте полномочия исходного kext в Вашей папке сборки проекта XCode, или иначе Вы встретитесь с ошибками, когда Вы попытаетесь восстановить.

Создайте пользовательскую информацию об установщике

Можно включать информацию о пользовательской установке в пакет для улучшения процесса установки для пользователей. Вы создадите желанный файл сообщений, Чтение Меня файл и файл лицензионного соглашения для Вашего пакета с приложением TextEdit. Эти дополнительные ресурсы не должны быть помещены в каталог, который Вы создали на предыдущем шаге; вместо этого, поместите их в папку проекта XCode своего kext.

Желанное сообщение

Желанное сообщение является первой вещью, которую читают Ваши клиенты, когда они открывают пакет Вашего kext. Это должно быть краткое введение в программное обеспечение, которое устанавливает Ваш клиент.

  1. Создайте новый файл в TextEdit.

  2. Введите текст своего желанного сообщения.

  3. Сохраните свое желанное сообщение как Welcome.rtf в папке Вашего kext проекта.

  4. Закройте файл.

Чтение я

Чтение Меня описывает содержание Вашего пакета, информации о версии и любой дополнительной информации, которую Ваш клиент должен знать перед установкой.

  1. Создайте новый файл в TextEdit.

  2. Введите текст своего Чтения Меня.

  3. Сохраните свое желанное сообщение как ReadMe.rtf в папке Вашего kext проекта.

  4. Закройте файл.

Лицензионное соглашение

Лицензионное соглашение описывает условия использования для Вашего пакета, заявления об отказе от ответственности и любые предрелизные предупреждения программного обеспечения.

  1. Создайте новый файл в TextEdit.

  2. Введите текст своего лицензионного соглашения.

  3. Сохраните свое лицензионное соглашение как License.rtf в Вашей kexts папке проекта.

  4. Закройте файл.

После создания всех трех файлов удостоверьтесь, что добавили их к проекту XCode путем выбора Project> Add to Project; это гарантирует, что они включены в SCM Вашего проекта.

Создайте пакет с PackageMaker

Теперь можно использовать приложение PackageMaker для создания устанавливаемого пакета для kext.

  1. Откройте приложение PackageMaker, расположенное в /Developer/Applications/Utilities.

    Главное окно появляется с листом Свойств Установки.

  2. Войти com.MyCompany в поле Organization, и выбирают OS X v10.5 Leopard как минимальную цель. Нажать «OK».

    ../art/InstallProperties.jpg
  3. Заполните поля вкладки конфигурации главного окна следующим образом:

    Заголовок

    MyKext

    Пользователь видит

    Простая установка только

    Место назначения установки

    Системный том (удостоверяются все другие места назначения установки, неконтролируем),

    Поля Certificate и Description не необходимы для этого учебного руководства, но необходимо указать сертификат для пакета, если Вы хотите, чтобы он был подписан.

  4. Найдите копию своего kext, который Вы создали в Полномочиях Набора для Вашего Kext путем открытия окна Finder. Выберите Go> Go to Folder. Войти /tmp как папка.

  5. Перетащите mykextdir папка из окна Finder и бросает его в область Contents основного окна PackageMaker. Основное представление изменяется для показа информации о mykextdir пакет.

  6. Войти /System/Library/Extensions в поле Destination вкладки Configuration.

    ../art/Mykextdir.jpg

    Теперь, когда пакет имеет все, что он должен для Установщика установить Ваш kext, можно настроить опыт установки для клиентов.

  7. Нажмите кнопку Edit Interface в верхнем правом углу окна и просмотрите открывающееся окно Interface Editor.

    • Первая страница Интерфейсного Редактора позволяет Вам обеспечивать пользовательское фоновое изображение для своей установки. Вы не создали один для этого учебного руководства, поэтому нажмите Continue.

    • Вторая страница позволяет Вам обеспечивать пользовательский желанный текст. Выберите переключатель File на правой стороне редактора и обеспечьте путь для своего желанного файла сообщений путем щелчка по меню имущества рядом с текстовым полем и выбора Choose.

    • Третья страница позволяет Вам обеспечивать Чтение Меня. Повторите тот же процесс, который Вы использовали для желанного сообщения, вместо этого обеспечивая путь для Вашего Чтения Меня.

    • Четвертая страница позволяет Вам обеспечивать лицензионное соглашение. Повторите тот же процесс, который Вы использовали для желанного сообщения, вместо этого обеспечивая путь для Вашего лицензионного соглашения.

    • Пятая страница позволяет Вам обеспечивать пользовательское сообщение заключения. Вы не создали один для этого учебного руководства, поэтому закройте окно Interface Editor.

  8. Сохраните свой прогресс путем выбора File> Save. Укажите расположение по Вашему выбору и войдите MyKextPackage.pmdoc как имя файла.

Добавьте предварительно устанавливают и постустанавливают действия (Необязательно)

Можно далее сконфигурировать установку kext путем указания действий, работающих, прежде и/или после того, как kext установлен. Это учебное руководство не требует никаких подобных действий, поэтому продолжайте к следующему шагу, если Ваш kext не имеет определенный, предварительно устанавливают или постустанавливают требования.

Потребуйте перезапуска

Если Ваши действия установки требуют перезапуска, устанавливают опцию Restart Action на вкладке Configuration для Требования Перезапуска, если Ваш kext должен загрузиться во время ранней начальной загрузки, или. Установщик предложит пользователю перезапуск после выполнения любых действий постустановки.

Добавьте действия

Можно удостовериться, что определенные меры приняты, прежде и после того, как kext установлен. В случае kext эти действия чаще всего включают загрузку или разгрузку другого kexts.

  1. Щелкните по пакету MyKext в верхнем левом выше представления Contents.

  2. Щелкните по вкладке Actions.

  3. Нажмите кнопку Edit или для Предварительно установите Действия или для Действия Постустановки, в зависимости от которых Вы хотите добавить. Лист появляется.

  4. Перетащите действия, которые Вы хотите добавить из списка слева к представлению справа. Заполните любые поля, которых требуют действия.

  5. Упорядочьте действия в представлении путем перетаскивания, такой, что первое действие, которое Вы хотите выполнить, появляется наверху представления.

Сохраните свой прогресс.

Создайте пакет и протестируйте установку

Вы готовы создать и протестировать Ваш пакет.

  1. Выберите Project> Build.

    Укажите расположение по Вашему выбору и войдите MyKext.pkg как имя файла.

  2. Дважды щелкните по своему пакету для запуска приложения Установщика.

    Поскольку Вы продолжаете посредством процесса установки, пользовательские сообщения, которые Вы включали, появляются.

  3. Проверьте, что был должным образом установлен пакет.

    Перейдите к /System/Library/Extensions. Необходимо видеть kext.