Skip to content
IngvarConsultingPublic

About

KeyBridge: аппаратные лицензии 1С через USB HASP на macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

Repository files navigation

KeyBridge

KeyBridge помогает установленной на Mac программе 1С работать с аппаратной лицензией USB-ключа HASP. Приложение запускает менеджер лицензий в небольшой виртуальной машине Alpine, передаёт ей ключ и управляет включением, остановкой и восстановлением работы.

Исходный код открыт под лицензией MIT. Разработчик — Ingvar Consulting.

Что требуется

  • Mac с Apple Silicon. Текущая сборка рассчитана на macOS 27 и новее; поддержка Intel Mac и более ранних macOS не заявлена.
  • Собственный USB-ключ и установленный клиент 1С для macOS.
  • Полный установщик 1С для Linux x86-64 с менеджером лицензий и пакет драйвера HASP aksusbd для Debian/Ubuntu amd64.

Установщики, лицензии, подготовленные пользовательские диски и SSH-ключи не входят в репозиторий или приложение. Пользователь выбирает свои файлы в KeyBridge. Открытая основа Alpine с glibc поставляется вместе с приложением; рабочей VM выделены 128 МиБ памяти и один виртуальный процессор.

Установка

Скачайте файл KeyBridge-…-macOS-arm64.dmg на странице выпусков. Откройте образ, перетащите KeyBridge в «Программы», извлеките образ и запустите приложение из «Программ».

Первый выпуск предварительный: подпись ad-hoc, без Developer ID и нотариализации Apple. Если macOS заблокирует открытие, разрешите запуск KeyBridge в «Системные настройки» → «Конфиденциальность и безопасность». Этот способ описан в инструкции Apple. На Mac с ограничениями организации может потребоваться помощь администратора. Запуск при входе в систему в этой сборке недоступен.

В приложении выберите свои установщики 1С и HASP; ссылки на сайты производителей есть рядом с выбором файлов. Можно выбрать .run, .deb или скачанный ZIP/tar-архив: KeyBridge сам извлечёт нужный компонент, в том числе из вложенного архива. Сразу после выбора проверяются заявленный менеджер лицензий в установщике 1С и содержимое драйвера HASP. Если в архиве несколько подходящих файлов, приложение предложит выбрать один. Установка становится доступна после проверки обоих компонентов.

Для работы готовой сборки Homebrew, Docker и Python не нужны. При обновлении сначала выберите «Выключить и выйти» в прежней версии. Пользовательские данные хранятся отдельно от приложения.

Состояние проекта

Автоматическая проверка пока не умеет достоверно связать аппаратную выдачу с конкретной запущенной проверкой 1С. Поэтому её положительный подтверждённый исход ещё недоступен. Работа служб сама по себе не доказывает получение лицензии. Возможности и ограничения описаны в архитектуре приложения.

Сборка из исходников

Нужны полный Xcode с выбранными developer tools, Python 3, нативный Homebrew с QEMU и работающий Docker с поддержкой сборки Linux amd64. Homebrew, Python и Docker на компьютере конечного пользователя не требуются.

scripts/build-app.sh --output "$HOME/Library/Caches/KeyBridgeDevelopment/build/KeyBridge.app"

Скрипт собирает программу и открытую основу, переносит необходимые библиотеки, подписывает локальную сборку и проверяет зависимости. Результат и временные данные находятся вне репозитория. Действующая сборка не перезаписывается, пока запущены её процессы. Точный состав внешних компонентов проверяется независимо; обновление зависимости требует проверки её происхождения и допустимости поставки.

Проверка состава готового приложения и экспорт исходников:

python3 scripts/source-archive.py --app "$HOME/Library/Caches/KeyBridgeDevelopment/build/KeyBridge.app"

Только экспорт исходников, без установленного приложения:

python3 scripts/source-archive.py --source-only

Архив и результат проверки сохраняются в ~/Library/Caches/KeyBridgeDevelopment/artifacts/. Для другого внешнего каталога можно задать KEYBRIDGE_BUILD_ROOT.

Подготовка выпуска

Сначала соберите приложение, затем создайте установочный образ. Все пути результатов должны находиться вне репозитория:

python3 scripts/package-release.py --app /path/to/KeyBridge.app --version 0.1.0-beta.2 \
  --output /path/to/new-release-directory

Скрипт упаковки проверяет подпись и зависимости, создаёт DMG, устанавливает из него временную копию и проверяет её. Рабочий диск пользователя не используется. Из метаданных приложения формируется COMPONENT-SOURCES.md со ссылками на исходники нужных версий внешних компонентов. Скачать или приложить их архивы для упаковки не требуется. Наш код и скрипты сборки доступны в репозитории; результат проверки содержит ссылку на точный коммит.

DMG, список ссылок, условия установки, суммы файлов и результат проверки публикуются в GitHub Release с отметкой Pre-release. Нотариализация и проверка первого запуска на отдельном чистом Mac этим скриптом не выполняются.

Проверки

swift test
node --test Tests/Interface/state.test.cjs
python3 -m unittest discover -s Tests/Guest -p 'test_*.py'
python3 -m unittest discover -s Tests/Packaging -p 'test_*.py'

Swift-тесты выполняются на macOS с Xcode; для тестов интерфейса нужен Node.js, для гостевых команд — Python 3 и обычные POSIX-инструменты. CI проверяет исходники без физического ключа, VM и закрытых установщиков. Эти проверки не заменяют испытание реального получения лицензии.

Лицензии компонентов

MIT распространяется на собственный код KeyBridge. QEMU, прошивки, Alpine, glibc и остальные внешние компоненты сохраняют свои лицензии. Ссылки на исходники их версий опубликованы в COMPONENT-SOURCES.md на странице выпуска. Условия и состав поставки описаны в THIRD_PARTY.md.

About

KeyBridge: аппаратные лицензии 1С через USB HASP на macOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages