Инсталляционные пакеты symban 9.x - создание и распаковка
Инсталляционные пакеты 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 дала например такой вывод:
Немного воображения и чтения документации по 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'ом и рабочий
Ну и наконец, для тех, кто ещё не понял, это нужно для того, чтобы пользоваться бесплатными прогами, требующими расширенных возможностей системы. Никаких других проблем это не решает.
4. Краткое FAQ: ~~~~~~~~~~~ Q: Можно ли как-то запустить app-файл от Symbian 6-7-8 на 9.x? A: Невозможно.
Q: Можно ли выдернуть сертификат из sis-программы? A: Нет
Q: А как... A: Ищи в вебе
======= С уважением, Юрий Бакунин aka JBAK bakunin@bk.ru