Подписываем программы для S60 3rd Edition

Опубликовано 2009-05-20, автор: Herurg.
Рубрики: FAQ, Программы.

Поясню пару моментов тем, кто только недавно начал пользоваться смартфонами под управлением платформы S60. «Странные» ограничения на устанавливаемый софт в мире этих смартфонов был не всегда – до появления третьей версии платформы S60, все было просто и любой желающий мог установить любую программу на свой смартфон. Обратной стороной таких возможностей стал первый расцвет вирусов для смартфонов и потенциальной возможность «умирания» смартфона после установки некорректно работающей программы (из-за отсутствия ограничения по доступу к системным ресурсам). Ответом на такой разгул проблем и явилось введение жестких рамок на доступ к различного рода интерфейсам и возможностям смартфонов из программ для платформы S60 3rd Edition. Доступ этот регулируется наличием сертификата с теми или иными правами, выдаваемого консорциумом Symbian. И все бы, конечно, было хорошо, если бы не оказалось, что процесс получения, подписывания и других манипуляций с сертификатами для разработчиков оказался довольно муторным. А доступ к части возможностей смартфона – еще и платным. Мало того – доступ к некоторым возможностям аппаратов вообще никому, кроме Nokia предоставлен не был! Разработчики реже стали выпускать релизы программ, а пользователи лишились части возможностей в бесплатных программах.

«А с чего это такие сложности-то? Ну подписал бы разработчик своим многострадально добытым сертификатом программу и раздал бы пользователям – делов-то…«, спросите вы и будете правы. Дело в том, что часть програм так и идет – подписанные «свободным сертификатом». Но это лишь небольшая часть всего ПО для S60 и, что более печально, эти программы не могут получить доступ к большинству «вкусностей» этой платформы – например, манипуляция с данными пользователя (работа с файлами, к примеру), выход в интернет и многое другое не может обеспечить «бесплатный сертификат». Для выпуска полноценной, интересной и полезной пользователю программы, разработчик часто должен покупать соотв. сертификат, что приводило к переводу статуса с бесплатного на платный. Как всегда, палка оказалась о двух концах.

Поэтому, как только появились такие ограничения, всемирное сообщество пользователей таких замечательных аппаратов как смартфоны на платформе S60 с первого же дня начало поиск обходных решений, который не прекращается и поныне. И надо отметить, за последний год наметился явный прогресс в этой области. Была найдена лазейка, позволяющаяя использовать так называемый «сертификат разработчика», который с одной стороны разрешал практически все (это плюс), но при этом жестко привязывался к IMEI конкретного аппарата (это минус).

В этой статье я расскажу про ситуацию, доступную простым пользователям на момент написания статьи. Иными словами, если вы не особо хотите вникать в подробности сертификации, но желаете устанавливать на свой аппарат любое ПО, то эта статья именно для вас.

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

Начну с пояснения простых вещей. Вы наверняка сталкивались на просторах интернета с ситуацией, когда находили нужную вам программу, в описании к ней было написано слово «Unsigned» (по русски чаще всего пишут «не подписан» или «надо подписать») и при попытке установить программу на свое устройство вы сталкивались с предложением обратиться к поставщику, т.к. установка невозможна. Обращаться ни к кому не надо – достаточно «подписать» для своего смартфона файл дистрибутива программы и установить его на свой смартфон.

Для того, чтобы стала возможной такого рода «подпись» нужно сделать две вещи – получить персональный (личный) сертификат и воспользоваться одним из способов замены сертификата в дистрибутиве интересующей вас программы.

Получить личный сертификат можно либо на сайте DimonVideo по адресу http://dimonvideo.ru/index.php?do=sert, где нужно будет указать IMEI своего смартфона и подождать одни сутки. Через сутки на той же странице появится архив с датой вашего заказа, его нужно будет скачать и свериться, что в списке (файл «список IMEI.txt») IMEI находится и ваш. Кроме списка IMEI, в архиве будет еще два файла – собственно файл сертификата (расширение «.cer») со сроком годности 3 года и файл ключа («.key»). Именно эти файлы и понадобятся нам в дальнейшем.

Получив сертификат, можно переходить ко второй части процедуры – подписыванию этим сертификатом нужных вам программ. Я крайне рекомендую выполнять все действия над копией дистрибутива, чтобы в случае чего, все можно было начать с начала. А теперь по порядку:

  1. Для начала качаем и устанавливаем на свой ПК программу «SISContents«, доступную по адресу http://symbiandev.cdtools.net/. Благодаря своим замечательным возможностям эта программа позволяет выполнять практически любые действия над дистрибутивами ПО для платформы S60. В рамках этой статьи я не буду описывать все ее возможности, а сосредоточусь только на возможностях манипулирования сертификатами.
  2. После того, как мы скачали необходимый нам дистрибутив программы для смартфона, запускаем SISContents и видим примерно следующее:


  3. Открываем нужный нам неподписанный дистрибутив для платформы S60 (как правило, это файл с расширением «.sis» или «.sisx»):

  4. Далее, нужно указать программе, каким собственно сертификатом будем подписывать. Для этого нажимаем на меню «Tools» и выбираем там «Sign package»:

  5. В открывшемся окне идем на закладку «Key pairs» (пары ключей):

  6. На этой закладке (в правой части) указываем в поле «Certificate» наш файл сертификата («.cer»), а в поле «Private key» – файл ключа («.key»). Поле «Private key passphrase» оставляем пустым. А в поле «Profile mane» пишем (лучше латиницей) какое-то осмысленное и понятное нам название, соответствующее используемому сертификату – я, например, назвал его так, чтобы было понятно, что сертификат относится к моей Nokia N95:

  7. После того, как все необходимые поля заполнены, можно нажать кнопку «Add profile» и убедиться, что новый профиль появился в левом разделе окна:

  8. К слову, вы всегда можете изменить (например, обновить) профили, выбрав слева нужный и проведя операции п.6 в правой части окна. Изменения профиля подтверждаются кнопкой «Apply», отмена изменений – «Undo». Чтобы добавить новый профиль, достаточно щелкнуть в пустое место списка профилей (левая часть окна):

  9. После того, как профиль с нужным сертификатом добавлен и сохранен, можно вернуться на закладку «Package». Тут выбираем из списка «Signing profiles» нужный нам профиль (например тот, который мы завели в п.п.6-7) и внимательно смотрим на список «Component» слева-сверху. Тут ситуация может иметь несколько вариантов. Расскажу более подробнее о каждом из них:

    • 9.1. программа, которую вы собираетесь подписать, состоит из одного компонента:

      В этом случае можно смело выбирать этот единственный компонент (в левом верхнем списке) и удалять все присутствующие в нем сертификаты (их может быть несколько) – в левом нижнем списке по очереди нажимаем на каждую запись и нажимаем кнопку «Delete signature» и отвечая «да» на вопрос:

      После того, как все будет очищено, список слева снизу окажется пустым, а счетчик напротив компоненты покажет 0. Теперь можно нажимать кнопку «Add signature» и убедиться, что дистрибутив теперь подписан вашим сертификатом:

    • 9.2. другой вариант может вам встретится, когда дистрибутив состоит из нескольких пакетов:

      Пугаться не стоит, главное разобраться что нужно будет подписать, а что лучше не трогать.
      Для того, чтобы определить, чего трогать не стоит, надо посмотреть кому выдан сертификат для того или иного компонента – для этого закрываем окно «Sign package» (ничего там не меняя) и возвращаемся в основное окно программы. В правом верхнем углу из списка выбираем каждый из компонент и смотрим в окошке внизу данные кто выдал сертификат («Issued by»), кому был выдан («Issued to») и на какой срок («Validity»):

      Например, может оказаться, что сертификат выдан производителю устройства:

      или даже производителю платформы S60:

      об этом нам расскажут знакомые названия компаний и ощутимо большие сроки действия сертификатов (5 или 10 лет).
      Еще одним критерием того, что не надо трогать может являться наличие «спец.возможностей» у сертификата – проверить это тоже несложно. После выбора в списке (справа-сверху) нужного компонента, переключаем в режим просмотра содержимого пакета, после чего просматриваем данные по каждому исполняемому файлу (выделено синеньким):

      В случае, если файл требует большое количество системных прав

      (в частности, Capabilities: CommDD, DiskAdmin, NetworkContol, MultimediaDD, DRM, AllFiles, TCB), то своим сертификатом вы ему все равно не поможете – трогать такой компонент не нужно.
      Критерием того, что можно смело заменять на свой сертификат, может служить просроченная дата окончания действия, либо короткий срок действия, либо т.н. чужой «self-signed» сертификат (поля «Issued by» и «Issued to» у него идентичны).
      После того, как мы определили что трогать не нужно, с остальными компонентами поступаем точно так же, как и с единственным в п.9.1. Надо иметь ввиду только одно правило – подписывать нужно сначала самые вложенные компоненты – т.е. такие, которые в списке окна «Sign package» находятся в наибольшем уровне глубины относительно других компонент. На рисунке

      я пронумеровал (для примера) с какой последовательностью надо было бы подписывать, если бы мы решили подписать все компоненты в дистрибутиве – то, что помечено цифрой «1″ надо было бы подписать в самом начале, потом бы мы подписали то, что помечено «2″ и, в заключении» то, что на самом верхнем уровне – «3″.
  10. После того, как все компоненты подписаны, сохраняем обновленный дистрибутив через меню «File» – «Save as…». Если вы забудете это сделать, программа предложит это сама при попытке ее закрытия. В любом случае, для установки на свой смартфон используйте только что созданный файл, а не оригинал. Если что-то пойдет не так при установке, проверьте все ли пункты вы выполнили правильно (особенно п.9).

Желаю удачи! Всегда ваш, Herurg

Дата написания: 04-05.04.2009
Написано для журнала «Мобильные Новости», N 4(104), май 2009

Метки:FAQ, Nokia, S60, Symbian, Журнал Мобильные Новости, Обзоры, Программы

Связанные записи

3 комментария

Herurg

Комментарий on 2009-05-20.

Уже после написания статьи в журнал, обнаружил еще один способ получения персонального серитифката:

1. Идем на сайт http://cer.s603rd.cn/
(не пугайтесь, что он китайский)

2. В первое поле набираем IMEI своего смартфона
(внимательно! без ошибок)

3. Во второе поле – код подтверждения с картинки

4. Нажимаем кнопку правее обеих полей
(китайский аналог ОК)

5. Ждем сутки
(24 часа, не меньше)

6. Возвращаемся на сайт http://cer.s603rd.cn/
повторяем п.2-п.4

7. Качаем по полученной ссылке ваш персональный файл сертификата

;)

drLe

Комментарий on 2009-07-05.

Увы! В настоящее время сайты dimonvideo и упомянутый выше китайский сайт сертификаты не выдают… опоздал я…

Herurg

Комментарий on 2009-07-05.

drLe – не понимаю о чем вы, только что с сайта http://dimonvideo.ru/index.php?do=sert – последний готовый архив от 1 июля, что довольно свежо для лета

разве что не сутки, а чуть поболе придется подождать – но это не критично, кмк

http://cer.s603rd.cn/ тоже вполне жив.

не очень понял, в чем суть «опоздания»?

Оставить комментарий

Комментарии могут содержать некоторый html-код. Имя и e-mail обязательны к заполнению (e-mail не отображается), ссылка на сайт - по желанию.