Разработчикам предоставляется несколько способов передачи драйверов конечным пользователям:

Windows

1. Распространение дистрибутива драйверов

Наиболее простым решением является распространение готового дистрибутива драйверов Guardant.
В состав Guardant SDK входят 32- и 64-разрядные версии мультиязычных MSI-пакетов и универсальный EXE-инсталлятор.

Если SDK был установлен в стандартную директорию, то эти файлы будут в папке C:\Program Files (x86)\Guardant\SDK7\Redistribute\Drivers\ 

Также они доступны для загрузки с сайта — https://www.guardant.ru/support/download/drivers/

GrdDrivers.exe

Универсальный инсталлятор — автоматически определяетлокаль и разрядность системы для установки нужной версии драйвера

GrdDrivers-x86.msi

Дистрибутив х86 версии драйвера Guardant — автоматически определяет локаль системы для выбора русского или английского языка интерфейса установщика. Подходит для централизованной установки через групповые политики в домене

GrdDrivers-x64.msi

Дистрибутив х64 версии драйвера Guardant — автоматически определяет локаль системы для выбора русского или английского языка интерфейса установщика. Подходит для централизованной установки через групповые политики в домене

Необходимо просто включить в комплект поставки защищенного приложения нужный вариант драйвера.

2. Интеграция драйверов в дистрибутив защищенного приложения

Если предполагается устанавливать драйверы Guardant через инсталлятор защищенного приложения, то необходимо включить MSI-пакет с драйверами Guardant в свой комплект установки без изменений.
Драйверы Guardant работают с командной строкой через msiexec. Синтаксис команды должен быть следующим:
msiexec /Option <обязательный параметр> [необязательный параметр] 
К примеру, команды для скрытой установки и удаления драйверов должны выглядеть так:

msiexec /i GrdDrivers-x64.msi /quiet

Установить драйвер в «тихом» режиме

msiexec /x GrdDrivers-x64.msi /quiet

Удалить драйвер в «тихом» режиме

Другие опции для Windows Installer можно посмотреть введя в командной строке msiexec без параметров.


Установку через командную строку также поддерживает и EXE-инсталлятор, а команды скрытой установки для него будут выглядеть так:

GrdDrivers.exe /install /quietУстановить драйвер в «тихом» режиме
GrdDrivers.exe /uninstall /quietУдалить драйвер в «тихом» режиме

Другие опции EXE-инсталлятора можно посмотреть введя в командной строке GrdDrivers.exe /? .

Внимание!

Если работает UAC, то даже при скрытой установке через EXE-инсталлятор он может вывести пользователю запрос подтверждения на изменения в системе

3. Использование Windows API

Драйверы Guardant можно устанавливать, конфигурировать и удалять из Windows-приложений (например, из программы установки программного продукта) при помощи стандартного Windows API.

Пример для C++ входит в состав Guardant SDK и после его установки в стандартную директорию будет располагаться в папке C:\Program Files (x86)\Guardant\SDK7\Samples\Windows Driver Installation API\

Linux

Для пользователей Linux систем необходимо включать в поставку с защищенным приложением специальное правило для udev.

Если SDK был установлен в стандартную директорию, то архив (udev-rules.tar.gz) с правилом будет в папке C:\Program Files (x86)\Guardant\SDK7\Redistribute\Linux\ , а также доступен для скачивания по ссылке.

Установка правила производится при помощи скрипта install.sh

Защита Guardant для ОС GNU Linux

Установка ключей Guardant в операционных системах GNU/Linux

Ключи Guardant работают в OC GNU/Linux (в том числе и в HID-режиме) без установки дополнительных драйверов и демонов, требуя лишь обеспечить имя и разрешение доступа к файлу устройства. Для обращения к ключу используются соответственно Linux USB Device Filesystem или Linux USB HID Device Interface (в случае HID-режима).

Для работы с ключами в ОС GNU/Linux необходимо добавить правило для штатного средства обработки HotPlugging. На большинстве современных дистрибутивов, таким средством является udev (https://ru.wikipedia.org/wiki/Udev). В комплект разработчика включен набор правил для udev (архив udev-rules.tar.gz ). Указанные правила предписывает udev установить права на чтение и запись для файла устройства, представляющего электронный ключ Guardant в системе. Это позволяет обращаться к ключу с привилегиями любого пользователя системы.

Внимание!

Для случаев нетипичного конфигурирования устройств, обратитесь к разделу имена и доступ к устройствам

Установка правил для udev

Для ключей как в драйверном, так и в HID-режиме, и в случае использования файлов-устройств USB Device Filesystem.

Скачать архив udev-rules.tar.gz , распаковать и выполнить установку правил:


$ tar -xvf udev-rules.tar.gz
$ ./install.sh

После успешной установки правил нужно отсоединить электронный ключ от USB-порта и подсоединить повторно.

Ключ готов к работе с защищенным Linux-приложением.

Имена и доступ к устройствам

Для ключей, работающих в драйверном режиме

Обращение к ключу происходит через Linux USB Device Filesystem. Подробную информацию см. в файле linux/Documentation/usb/proc_usb_info.txt из документации к Linux. Для успешной работы с ключом в системе нужно разрешить доступ на чтение/запись к файлу устройства.

Для ключей, работающих в HID-режиме

Обращение к ключу происходит через Linux USB HID Device Interface (драйвер usbhid). Подробную информацию см. в файле linux/Documentation/usb/hiddev.txt из документации к Linux. Для успешной работы с ключом в системе нужно изменить имена соответствующих устройств на /dev/grdhidN и разрешить доступ на чтение/запись к файлу устройства.

Переменные окружения

Для настройки Guardant API под GNU/Linux следует пользоваться следующими переменными окружения:

GRD_IPC_NAME

директория, в которой процессы будут создавать/открывать для чтения и записи файлы, используемые для синхронизации доступа к ключу. Если переменная не задана, используется значение по умолчанию (/tmp)

USB_DEVFS_PATH

директория LinuxUSBDeviceFilesystem (точка монтирования или директория, содержащая дерево соответствующих устройств).
Если переменная не задана, будет использоваться /dev/bus/usb (если существует), иначе – /proc/bus/usb


  • No labels