Инсталляционные пакеты symban os 9.x
====================================
0. Что нужно для всего этого
~~~~~~~~~~~~~~~~~~~~~~~~~
0. Прямые руки
1. Знание таких вещей, как командная строка и bat-файл.
2. Умение пользоваться интернетом
Начните чтение со скачивания архива:
http://server2.dimonvideo.ru/uploads/public/users/jbak/sisx.zip
Там есть всё необходимое, кроме python'а, однако там что-то может устареть, потому для всех закачек даются подробные ссылки.
1. Распаковка SisX.
~~~~~~~~~~~~~~~
Распаковывать sisx умеет программа SISInfo, доступна для закачки здесь:
http://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html, также есть в архиве.
Требует для работы установленного python'а, который можно скачать на http://www.python.org и установить.
SisInfo работает с коммандной строки, командная строка имеет такой синтаксис: sisinfo.py [настройки] Настройки:
-f FILENAME, --file=FILENAME Имя файла SisX
-i, --info Вывод на экран информации о файле SisX
-s, --structure Вывод структуры файла SisX.
-e PATH, --extract=PATH Распаковка SIS файла в путь, указанный в PATH
-c, --certificate Показать информацию о сертификате
Например:
C:/sisinfo.py -f C:/reboot.sis -i -c -e C:/reboot
Выведет в консоль список файлов, информацию о сертификате и распакует содержимое в C:/reboot
Последняя опция - с (инфа о сертификате) требует установленной библиотеки ASN1 Эту библиотеку нужно скачать (http://pyasn1.sourceforge.net/) и установить, запуском с командной строки setup.py install
В архиве прилагается версия 1-0.0.5a
Для использования в Far предлагается в список ассоциаций добавить например такую: edit:Тогда по нажатии Enter - в редакторе откроется файл с инфой, а sisx распакуется в папку рядом с sisx-файлом и будет иметь то же имя, что и сис-файл
Кроме этого, есть ещё Gui-программа unsis, можно например поискать это слово в обменнике на dimonvideo.ru. Управление там просто - кнопки Open и Extract. Как эту штуку заставить показывать инфу о сертификате я не понял, да и не сильно стремился, проще уж к Far'у прицепить.
2. Упаковка SisX.
~~~~~~~~~~~~~~
Создаётся sisx-файл с помощью утилиты makesis, которая есть в SDK v.3.x, я положил её в архив:
http://server2.dimonvideo.ru/uploads/public/users/jbak/tools.zip
Опять же, стартует с коммандной строки
MakeSIS [-h] [-v] [-s] [-d папка] [-p пароль] файл.pkg [файл.sis]
-h Показывает справку о формате pkg-файла
-v При упаковке показывает расширенную информацию
-d Задаёт папку для поиска упаковываемых файлов
-p Задаёт пароль для расшифровки приватного ключа
-s Создаёт файл для деинсталляции программы на смарте.
Первое, что пугает - файл pkg. Действительно, после распаковки такого файла нет.
Единственное, что можно сделать - написать такой файл самому.
Опция -i дала например такой вывод:
!:/sys/bin/Reboot.exe [PowerMgmt SwEvent ReadUserData UserEnvironment]
!:/resource/apps/Reboot.rsc
!:/private/10003a3f/import/apps/Reboot_reg.rsc
!:/resource/apps/Reboot.mif
!:/private/E44EFAD5/backup_registration.xml
Немного воображения и чтения документации по pkg - и получаем в результате что-то такое:
================================================================================================
; Языки программы
&EN
; Имя программы, UID, версия
#{"Reboot"},(0xE44EFAD5),1,0,0
; Производитель
%{"Vendor-EN"}
;Unique Vendor name
:"Vendor"
"reboot/sys/bin/Reboot.exe" - "!:/sys/bin/Reboot.exe"
"reboot/resource/apps/Reboot.rsc" - "!:/resource/apps/Reboot.rsc"
"reboot/private/10003a3f/import/apps/Reboot_reg.rsc" -
"!:/private/10003a3f/import/apps/Reboot_reg.rsc"
"reboot/resource/apps/Reboot.mif" - "!:/resource/apps/Reboot.mif"
"reboot/private/E44EFAD5/backup_registration.xml" -
"!:/private/E44EFAD5/backup_registration.xml"
================================================================================================
Обратите внимание, что пути к исходным файлам начинаются с reboot/ - это означает, что файл pkg
располагается рядом с папкой reboot, в которую был распакован наш sisx.
Также можно задать полный путь к файлам.
Сложновато, не спорю. Это уже не конпочки Open/Extract, как в предыдущем разделе.
После запуска makesis получаем готовый sis-файл.
Кое-какая документация по синтаксису pkg - в архиве (pkg-syntax.html)
В этом примере была строка:
!:/sys/bin/Reboot.exe [PowerMgmt SwEvent ReadUserData UserEnvironment]
это означает, что sisx должен быть подписан сертификатом. А потому читаем раздел 3.
3. Подпись sisx'а сертификатом
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Самая мерзкая тема в Симбиан 9.х, в которой слилось всё сразу - жадность, элементарное неуважение к программистам и... Ладно, не буду ныть
Итак, программе, неподписанной сертификатом, доступно примерно 60% функций ОС, для прочего нужен сертификат. Сертификат для платной программы стоит денег и на руки не выдаётся.
Для программистов, жаждущих заюзать полноценный набор функций и потом распространять свою программу бесплатно было создано подразделение Symbian Freeware, но пока ещё вроде никому не удалось оттуда что-то получить.
Последняя радость программера - devCert. Быстро и относительно без геморроя можно использовать свою программу со всем функционалом Symbian 9.x. В сертификате прописывается IMEI телефона, так что сертификат для каждого смарта свой. К счастью, хоть UID программы там не прописывается, так что можно создать себе сертификат один раз и подписывать им программы. Срок жизни devCert'а - полгода. По рецепту Santehnik'а - программы можно не переподписывать заново, достаточно каждые полгода перевести время на полгода назад и переустановить программу. Геморрой, опять же, и всё же это хоть какой-то выход для программистов, которые хотят использовать SDK на всю катушку.
И как всё это делается?
Шаг 0. Регистрируемся на symbiansigned.com
(https://www.symbiansigned.com/app/page/register)
Шаг 1.Качаем с сайта symbainsigned.com программу DevCertRequest, ставим и запускаем.
(Также можно скачать:http://dimonvideo.ru/files/file_9650.html)
Шаг 2.Вот шаги в этой программе:
1. Вводим имя создаваемого файла .csr, его может не быть на винте
2. ACS Pub ID Available - ставим No (он тоже денег стоит), вводим имя key-файла и пароль.
3. Заполняем информацию о себе
4. Вводим свой IMEI. Дальше кнопкой Add перетягиваем все Capabilities в правый список.
5. Жмём Finish.
Шаг 3.Заходим на symbiansigned.com под своей учётной записью (вкладка My Symbian Signed), Дальше - Developer Certificates - Request, в поле вводим путь к файлу csr. и отправляем. Если всё хорошо - попадаем на страницу, где сертификат доступен для скачивания и просмотра. Качаем, сохраняем с расширением cer.
Шаг 4.Теперь у нас есть сертификат, и им можно подписать любой sisx.
Файл csr больше не нужен, а вот файлы key и cer кладём где-то рядом.
Шаг 5.Подпишем какую-то полезную прогу - например, по адресу http://www.pushl.com/taskspy/ возьмём TaskSpy для 9-ки.
signsis имеет такую командную строку:
signsis.exe -sv <Путь к sisx> <Выходной sisx> <Файл cer> <Файл key> <Пароль> Ну, для удобства можно создать bat-файл devcert.bat такого содержания:
C:/signsis.exe -sv %1 dev%1 C:/mydevcert.cer C:/mydevcert.key МойПароль (разумеется, со своими путями), кинуть его куда-то в system32. Тогда и в Far и в Total достаточно запустить командную строку devcert.bat <имя sisx>, чтобы получить рядом с неподписанным sisx другой, подписанный devCert'ом и рабочий
Ну и наконец, для тех, кто ещё не понял, это нужно для того, чтобы пользоваться бесплатными прогами, требующими расширенных возможностей системы. Никаких других проблем это не решает.