категории | RSS


Инсталляционные пакеты symban os 9.x
====================================
0. Что нужно для всего этого
~~~~~~~~~~~~~~~~~~~~~~~~~
0. Прямые руки
1. Знание таких вещей, как командная строка и bat-файл.
2. Умение пользоваться интернетом

Начните чтение со скачивания архива:
https://server2.dimonvideo.ru/uploads/public/users/jbak/sisx.zip
Там есть всё необходимое, кроме python'а, однако там что-то может
устареть, потому для всех закачек даются подробные ссылки.

1. Распаковка SisX.
~~~~~~~~~~~~~~~
Распаковывать sisx умеет программа SISInfo, доступна для закачки здесь:
https://www.niksula.cs.hut.fi/~jpsukane/sisinfo.html, также есть в архиве.
Требует для работы установленного python'а, который можно скачать
на https://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
Эту библиотеку нужно скачать (https://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,
я положил её в архив:
https://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.х, в которой слилось всё сразу - жадность,
элементарное неуважение к программистам и... Ладно, не буду нытьsmile
Итак, программе, неподписанной сертификатом, доступно примерно 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, ставим и запускаем.
(Также можно скачать:https://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.Подпишем какую-то полезную прогу - например, по адресу https://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



В командах и везде, кроме интернет-ссылок, заменить обратный слэш ("/") на прямой !!!

На всякий случай, статья в виде текстового файла:
https://server2.dimonvideo.ru/uploads/public/users/jbak/sisx.txt

JBAK
2007-01-31T11:09:26Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 7

#7   artoroman    

Хм, а вот так на сайте не написать? - \\


* редактировал(а) artoroman 23:35 30 янв 2009

0 ответить

#7   Lexxalt    

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


0 ответить

#7   yaklit    

ну уж наверное тогда бы люди раньше тя догадались, верно? ;)
А на самом деле индивидуальное подписывание дает самое большое количество permissions в данное время


0 ответить

#7   ashim82    

Вообщем есть предложение кое-что попробовать, у меня получилась такая штука: поставить галочку Enable Phone Manufacturer Caps/unlimited IMEIs с помощью TotalCommander'а. Может это сможет решить проблему индивидуальным подписыванием каждого?
Очень интересно, что Вы об этом думаете.


0 ответить

#7   Herurg    

на будущее - можно использовать обратный слэш / (как в урлах) - его, вроде, не съедает. гимор конечно, но все лучше каши в путях
обновил статью. красным написал что делать. оставил (на всяк случай) ссылку на оригинальный текст.


0 ответить

#7   JBAK    

Herurg
Не, те же траблы. Например, путь rebootprivateE44EFAD5backup_registration.xml должен быть в виде rebootprivateE44EFAD5backup_registration.xml Ммм... Вот так, короче reboot\\\\private\\\\E44EFAD5\\\\backup_registration.xml
Воспроизвести это в форме для статьи не удаётся


0 ответить

#7   Herurg    

2JBAK:
перепостил статью
так лучше?
все правильно сохранилось?


0 ответить

Яндекс.Метрика