Symbian S60 3rd: сертификация программ во всех подробностях. Capabilities UPD!

С момента написания статьи в процедуре сертификации программ произошли изменения. В середине февраля была приостановлена выдача сертификатов DevCert. Сейчас сертификаты DevCert выдаются лишь владельцам Publisher ID, недоступного физическим лицам. Напомним, что сертификация программ – головная боль владельцев смартфонов на ОС Symbian 9 с программной платформой S60 3rd. Сертификаты DevCert ранее раздавались всем желающим и позволяли использовать программы, созданные энтузиастами. Мы подготовили обновлённый материал о сертификации программ для S60 3rd.

Разработчики Symbian OS 9 совершили, по мнению многих пользователей, сумасбродный шаг. Была изобретена сертификация программ (Symbian sign), которая появилась на платформах S60 3rd и UIQ 3.0.

Во-первых, все старые добрые программы для S60 1st и 2nd перестали работать.

Во-вторых, Nokia заявила, что пользователи смартфонов 1st и 2nd были сильно обеспокоены вирусами, а производители этих программ — пиратскими версиями. Если в последнее охотно верится, то от первого заявления финских маркетологов устойчиво веет фальшью безалкогольного пива. Несмотря на «ахи-страхи», которые регулярно раздаются на сетевых форумах, подавляющее большинство пользователей «умных» мобильных (любых платформ) не страдает от программ-вирусов и, надеемся, ещё долго не будет.

Старания Symbian пропали втуне. Оказалось, что написать вредоносную программу для S60 3rd по-прежнему как два байта переслать и проблема пиратского софта никуда не пропала. Сертификация дала возможность компании Symbian собирать дань с разработчиков. В итоге крупные производители стали вытеснять с рынка одиночек-энтузиастов, чьи программы подчас были значительно выше по качеству.

Как уже можно было догадаться, кроме того, что за сертификаты надо было платить, под них ещё придется подгонять программы.

Сертификация изнутри

Известно, что любое приложение в ходе работы вызывает различные функции операционной системы. В Symbian OS 9, как и в некоторых других платформах, эти самые функции разбиты по разделам. Разделы, к которым доступ ограничен, требуют от программы capability, что можно перевести как право доступа. Мы будем использовать сленговое слово «капс» (к кнопке CAPS LOCK никакого отношения не имеет). Принято говорить: "Эта функция требует капса XXX". Сертификат, грубо говоря, является паспортом, в котором написано, какие функции программе позволено задействовать.

Правило:

Если некоторая функция требует наличия какого-то капса, то  программа должна быть подписана сертификатом, предоставляющим этот самый капс.

Большинство распространённых функций — рисование, обработка нажатий клавиш внутри приложения и многое другое — никаких капсов не требуют. Однако нормальная полезная программа, не использующая ни одной функции из капсов — редкость. Это может быть программа, которая не хранит пользовательских данных, не обращается к системе за информацией, не использует доступ в интернет. Например, калькулятор. Тем не менее, даже такую программу нужно подписать.

Список capabilities:

Название капса Описание LocalServices Доступ к коммуникационным службам телефона – соединение по IrDA (ИК-порт), Bluetooth, COM-порту и др. ReadUserData Доступ к пользовательским данным на чтение: контакты, SMS, заметки и пр. WriteUserData Доступ к пользовательским данным на запись: изменение контактов, SMS, заметок и пр. Очень часто идёт в паре с ReadUserData, т.к. обычно требуется и прочитать, и поменять сразу. UserEnvironment Доступ к использованию камеры и микрофона (буквально — доступ к конфиденциальной информации о жизни пользователя). NetworkServices Доступ к удалённым службам — например, доступ в интернет. Location Доступ к определению местоположения пользователя — например, информации о текущей сети. Как правило, дополнительно требует ReadDeviceData. ReadDeviceData Доступ на чтение к настройкам ПО телефона, получение данных с SIM-карты. Для многих разработчиков важно то, что этот капс нужен для получения серийного номера телефона – IMEI, на котором очень часто строится защита ПО. WriteDeviceData Доступ на запись к настройкам ПО телефона. PowerMgmt Позволяет убивать процессы в системе, выключать/перезагружать телефон. TrustedUI Позволяет использовать функции для проверки сертификации приложения. Трудно что-то сказать по этому поводу, так как эти функции недоступны рядовому программисту. ProtServ Позволяет предоставлять процессам некоторые особые свойства. Например, чтобы при завершении процесса телефон принудительно перезагружался. SwEvent Работа с нажатиями клавиш — глобальный перехват и отправка клавишных событий запущенным приложениям. Также работает с неким загадочным pen pointer — очевидно, понадобится, если в смартфонах S60 будет сенсорный экран. Кстати говоря, Nokia над этим работает. SurroundingsDD Доступ к логическим драйверам устройства. NetworkControl Чтение и модификация сетевых настроек. MultimediaDD Доступ к глобальным настройкам записи видео и аудио. CommDD Доступ к коммуникационным драйверам устройства. DiskAdmin Администрирование дисков. AllFiles Доступ на чтение и запись в папку private. TCB Предоставляет доступ на запись к папкам \sys и \resource. DRM Доступ к на редактирование защищённого DRM контента. Для защищённых аудиофайлов, которые продаются в некоторых интернет-магазинах.

Капсы, помеченные белым цветом, – базовые (Basic Capabilities). Они предоставляются свободно — программист может самостоятельно подписать программу сертификатом SelfSigned, и тогда она будет работать на всех смартфонах S60 3rd. Если программа была подписана самостоятельно, при её установке появляется неприятное предупреждение, которое на русском языке звучит как "Данное приложение ненадёжно и может повредить телефон". Чтобы убрать это предупреждение, необходимо пройти официальную процедуру подписи в Symbian Signed.

Серым цветом помечены системные капсы (System Capabilities). Программа, использующая эти капсы, может быть подписана через процедуру Express Signed. Программистам на время разработки предоставляется особый сертификат DevCert. Программа, подписанная этим сертификатом, работает только на отдельно взятом телефоне. Сертификат предоставляется бесплатно всем желающим.

В результате появился новый для S60 тип ПО - программа, "которую нужно подписать". Что означает - "пользователь самостоятельно получает DevCert , подписывает им программу, и она работает на его телефоне". Так было раньше, частично сохранилось оно и теперь, но со значительными коррективами, о чем будет подробно рассказано в разделе DevCert.

Тёмно-зелёным цветом отмечены ограниченные системные капсы (Restricted System Capabilities). Если программа использует хоть один из этих капсов – она не подлежит подписи через Express Sign, для неё предусмотрена процедура Certified Sign.

И, наконец, синим обозначены особые капсы, доступные только производителям телефонов (Phone Manufacturer Approved capabilies). Я пока ещё не слышал, чтобы кто-то из рядовых программистов получил легально какой-то из этих капсов. Для особо любознательных пользователей есть способ заполучить эти капсы для своего телефона путем модификации файла прошивки с последующей перепрошивкой, но это уже экстремальный спорт.

О том, какие капсы нужны той или иной функции – можно узнать из справки SDK по этой функции. Чтобы получить полный список функций, требующих капсы, – нужно ввести в поиске по справке условие "Functions listed by capability" – как есть, с кавычками.

В эмуляторе доступны все капсы.

Если нужно узнать, какие capability требуются программе, – в настройках эмулятора нужно включить PerformCapabilityCheck (меню Tools->Preferences) и выбрать нужные капсы:






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.