×
Namespaces

Variants
Actions

UID - Часто задаваемые вопросы

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Совместимость
Платформа(ы):
Symbian

Статья
Автор: truf (11 Dec 2007)
Последнее редактирование: hamishwillee (27 Sep 2012)
Внимание ! Данная статья переведена с английского языка, оригинальный текст (находится здесь) принадлежит Symbian Signed.

Contents

Уникальные идентификаторы

UID (Уникальный идентификатор) в Symbian - это 32-х разрядное число, принимающее значение в диапозоне от 0x00000000 до 0xFFFFFFFF. Отдельные значения, входящие в этот диапозон, могут присваиваться некоторым объектам для различных целей. Для однозначной идентификации бинарного файла (EXE или DLL) в системе, а также для разграничения доступа между процессами, используется уникальный идентификатор (UID3) который задается в mmp-файле.


Symbian предоставляет простой и быстрый способ автоматического получения уникального идентификатора. Такой подход позволяет определить владельца подписанного приложения (Symbian 9.x) по его UID'у и предотвратить случайное или преднамеренное использование чужого идентификатора, обеспечить тем самым надежное Data caging (Экранирование данных).


Какие бывают UID'ы и в чем разница между защищенной и незащищенной областью значений ?

Значения UID меньшие или равные 0x7FFFFFFF являются "защищенными" и предназначены только для использования в подписанных (или предустановленных в ROM) приложениях. Инсталлятор не позволит установить неподписанное приложение, если оно включено в пакет имеющий UID из защищенной области значений. Для присвоения программам новых идентификаторов берутся значения начиная с 0x20000000 для защищенной области, и с 0xA0000000 для незащищенной.

UID Класс Диапазон значений Назначение
Защищенная область значений 0 0x00000000 - 0x0FFFFFFF Только для разработки
1 0x10000000 - 0x1FFFFFFF Унаследованные UID
2 0x20000000 - 0x2FFFFFFF Защищенные UID в V9
3 0x30000000 - 0x3FFFFFFF Зарезервировано
4 0x40000000 - 0x4FFFFFFF Зарезервировано
5 0x50000000 - 0x5FFFFFFF Зарезервировано
6 0x60000000 - 0x6FFFFFFF Зарезервировано
7 0x70000000 - 0x7FFFFFFF Идентификаторы производителей
Незащищенная область значений 8 0x80000000 - 0x8FFFFFFF Зарезервировано
9 0x90000000 - 0x9FFFFFFF Зарезервировано
A 0xA0000000 - 0xAFFFFFFF Незащищенные UID в V9
B 0xB0000000 - 0xBFFFFFFF Зарезервировано
C 0xC0000000 - 0xCFFFFFFF Зарезервировано
D 0xD0000000 - 0xDFFFFFFF Зарезервировано
E 0xE0000000 - 0xEFFFFFFF Только для разработки
F 0xF0000000 - 0xFFFFFFFF Совместимость наследованных UID

Примечание: Устройства на платформе S60 третьего издания позволяют устанавливать только подписанные приложения.


Из каких областей я должен брать UID для программ, предназначенных для Symbian 9.x или более старших версий?

Используйте UID из защищенной и незащищенной областей значений, согласно следующей таблице:

Программа До Symbian OS v9 После Symbian OS v9
Подписанная Защищенная область Защищенная область
Неподписанная Защищенная область Незащищенная область

Из-за ограничений на область значений UID до Symbian OS v9, используйте 'защищенные' UID как для подписываемых сертификатом, так и для неподписываемых программ. Это правило включает в себя UID'ы для бинарных файлов и сопутствующих им файлов пакетов .pkg (т.н. SISUID). Если для приложения, предназначенного для Symbian версии старше 9-й, вы использовали незащищенный UID - утилита Makesis.exe сообщит об ошибке, а само приложение может аварийно завершиться после установки.

Приложения для Symbian OS v9 и более поздних версий должны использовать назначенные им защищенные UID. В противном случае, они не пройдут процедуру тестирования при подписывании.

Какие значения UID в Symbian OS V9 я должен использовать для примеров из SDK и тестовых приложений?

Для версий старше Symbian OS v9 используйте UID из тестовой области значений 0x01000000 - 0x0FFFFFFF.

Примеры из SDK в Symbian OS v9 проектируются таким образом, чтобы их можно было использовать без сертификата разработчика. Это позволяет назначать им UID из незащищенной области. У вас есть две возможности:

  1. Официально запросить UID из незащищенной области 0xAxxxxxxx с помощью вашей учетной записи на сайте Symbian Signed.
  2. Использовать UID из тестовой области 0xExxxxxxx выбирая значения случайным образом. Следите чтобы выбранные вами значения не повторялись. Заметьте, что тестовая область для более старших версий Symbian OS V9 0x01000000 - 0x0FFFFFFF в Symbian OS V9 не используется, поэтому, если вы ранее выбрали UID из этого диапазона и создаете программу для Symbian OS V9, то вы должны поменять ей UID.

Для всевозможных примеров и тестовых приложений:

Пункт первый вероятно более всего подойдет проектам (например, браузеру файловой системы или игре), а пункт второй - больше подойдет программам с демонстрационным/обучающим/тестовым уклоном, (например, HelloWorld) которые не будут распространяться в виде SIS файлов.

Заметьте, что какую бы область значений вы не использовали, вы должны побеспокоиться о том, чтобы ISV приложения не копировали UID'ы у проектов примеров, а использовали собственные уникальные UID'ы. Не допускайте использования одного и того же UID в двух программах.

У меня есть номера UID, полученные с uid@symbiandevnet.com. Могу я использовать их?

Для того чтобы подписать вашу программу для Symbian OS v9, необходимо получить UID из другой системы назначений UID. Даже если вы в прошлом получили UID от Symbian, вам все равно придется запросить новые UID на сайте www.symbiansigned.com как только вы захотите подписать вашу программу.

Вы можете продолжать использовать уже назначенный UID в неподписанных приложениях Symbian OS v9. Для этого, просто замените первую шестнадцатиричную цифру 1 на F, все остальные цифры оставьте прежними. Это перенесет ваш UID в область Совместимости наследованных UID. Там он гарантированно не будет конфликтовать с UID'ами других программ. К примеру, если у вашего приложения был UID 0x100F55BE вы можете перевести его в 0xF00F55BE или использовать в неподписанных программах на Symbian OS v9.

Как получить новый UID?

Вам нужно зарегистрироваться на сайте Simbian Signed. Вы можете сделать это нажав кнопку "register" в левой части навигационной панели. Если вы зарегистрировались и выполнили вход, щелкните по ссылке "Request UIDs" в левой части навигационной панели. Если вы разрабатываете приложение, предназначенное для более старших версий Symbian OS чем Symbian OS v9, вы можете выбрать UID как из защищенной, так и из незащищенной областей значений. Если ваша программа должна быть подписана для Symbian OS v9, вам нужно получить UID из защищенной области значений перед отправкой вашего приложения Symbian Signed. Если вы не намерены подписывать вашу программу, используйте UID из незащищенной области значений. Неподписанные программы с UID из защищенной области не будут устанавливаться на телефон в V9.

Почему вы отказались от старой системы?

В старой базе UID данных было не достаточно для определения владельца UID, а этого требует процедура Symbian Signed для приложений на платформе Symbian OS v9. В результате этого, старые данные не были перенесены в новую систему. Symbian Signed требует, чтобы все подписываемые приложения для Symbian OS v9 использовали UID из защищенной области значений, и получали их с помощью новой системы. В дополнение ко всему, новая система полностью автоматизирована и не имеет задержек, связанных с ручной обработкой.

Что такое SID?

SID (Secure ID или ID безопасности) - это UID специального назначения. В Symbian OS v9 каждый исполняемый файл имеет свой SID. SID задается после ключевого слова SECUREID в MMP файле приложения, и по умолчанию имеет то же значение, что и UID3. SID в DLL файле игнорируется, т.к. SID процесса всегда равен SID'у породившего его EXE файла.

На основании SID, сервер подтверждает или отклоняет вызовы к определенным API. SID также определяет имя папки защищенного хранилища приложения.

Что бы избежать противоречий, рекомендуется не указывать SECUREID в MMP файле приложения, и позволить ОС использовать UID3 в качестве SID.

Что такое UID3?

Первые 12 байт любого исполняемого (в оригинале просто - любого) файла Symbian OS используются для хранения трех 32-х битных чисел (UID1, UID2 и UID3), которые определяют тип файла. UID3 это число, которое вы задаете в MMP файле проекта после ключевого слова UID, чтобы однозначно идентифицировать ваше приложение.

Что такое VID?

VID (Vendor ID или ID производителя) - еще один UID специального назначения, используемый в Symbian OS v9. Symbian выделила определенную область значений UID (0x70000000 до 0x7FFFFFFF) для использования в качестве значения этого идентификатора. VID используется для быстрого определения производителя исполняемого файла. VID задается после ключевого слова VENDORID в файле MMP проекта. Если VID не задан, то он принимает значение по-умолчанию - 0x00000000. Значение VID в DLL файле игнорируется - также как и SID, VID процесса всегда равен VID'у EXE файла.

Большинство разработчиков не имеют назначенных им VID и должны использовать значение по-умолчанию - 0. Наиболее полезен VID для сотовых операторов и производителей телефонов - операторы сотовой связи могут использовать VID, чтобы разрешить доступ к некоторым сетевым API только приложениям с определенными значениями VID. Если вы хотите получить VID, пожалуйста свяжитесь с Symbian: symbiansigned@symbian.com.

Сколько номеров UID может получить разработчик?

Изначально все пользователи имеют ограничение на получение до 20 UID в день. Если вы превысили это число, вы увидите следующее сообщение об ошибке: Daily UID Allocation Limit Exceeded! Администраторы Symbian могут изменить профиль пользователя и позволить му получать больше UID в день. Для этого, свяжитесь с ними по адресу symbiansigned@symbian.com.

Проверяет ли Symbian Signed UID разработчика для версий Symbian OS старше v9.x?

Для разработчиков программ под версии Symbian OS старше v9.x никаких изменений в процессе подписывания не произошло. Разработчикам нет необходимости запрашивать UID в новой системе Symbian Signed для того чтобы подписать свои приложения.

Могут ли быть какие-нибудь исключения, позволяющие подписать приложение используя чужой UID или UID из незащищенной области значений?

В случае, если вы подписываете свое приложение с помощью издателя-сертификатора (publisher certifier), то вы можете использовать любой UID, так как ваша программа будет подписана с использованием ID издателя (publisher ID). Сертифицирующий издатель - это организация, которой доверено самостоятельно тестировать приложения третьих лиц, и подписывать их собственным ID публикатора. Некоторые издатели программного обеспечения (например, Handango и Cellmania) пользуются такой моделью.

Как Symbian проверяет принадлежность UID разработчику?

Когда разработчик отсылает свое Symbian OS v9 приложение Symbian для подписывания, Symbian сканирует SIS файл (примечание, Symbian Signed определяет владельца UID только для Symbian OS v9). Система запоминает имя-идентификатор (The Distinguished Name), ID издателя и UID'ы найденные в приложении. Пользователь может просмотреть результаты сканирования SIS файла перейдя по соответствующей ссылке на странице информации о приложении. Система просматривает все найденные в результате сканирования UID'ы и сопоставляет каждому из них его владельца, выбираемого из база назначенных UID. Напротив каждого UID будет отображаться сопоставленное ему имя владельца. После этого тестировщик (test hause) вашего приложения сможет сравнить владельца UID и имя-идентификатор, получаемое из ID издателя.

Замечание: Отображаются только ненулевые VID. Если система не может найти в своей базе UID, обнаруженный в файле, то пользователю будет сообщено об ошибке. Такое приложение не сможет успешно пройти тесты.

Пользователь или тестировщик могут просмотреть детальную информацию о приложении. В следующем примере тестировщик должен отвергнуть попытку подписать программу, так как пользователь не является владельцем одного из значений UID.

UID faq 1.jpg

Как мне узнать, какие UID мне назначены?

После входа с использованием собственной учетной записи на symbiansigned.com, вы сможете воспользоваться ссылкой View UIDs в левой части навигационной панели. Перейдя по этой ссылке, вы попадете на страницу, отображающую все назначенные вам идентификаторы. Записи группируются по областям значений (защищенная\незащищенная) и выводятся вместе с именем-идентификатором и названием организации, которой они принадлежат. Если записей слишком много, то их список разбивается на страницы. Кроме того, можно воспользоваться поиском.

UID faq 2.jpg

Что такое Data caging (Экранирование данных)?

В любой операционной системе существует опасность повреждения (случайного или умышленного) приватных данных одной программы другой программой. Чтобы воспрепятствовать этому в Symbian V9 была реализована концепция экранирования данных. Экранирование данных используется для ограничения доступа к определенным областям файловой системы, в зависимости от наличия или отсутствия у приложения некоторых возможностей (capability). Каждое приложение также получает исключительные права доступа к собственной директории, защищенной системой. Для обеспечения уникальности имени такой директории используется значение идентификатора безопасности (SID). Например, приложение, имеющее SID равный 0x12345678, получит защищенную директорию со следующим именем: \private\12345678\

Во время процесса сертификации приложения проверяется, имеет ли вы право назначить ему тот или иной SID. Для этого вы должны быть владельцем SID, используемого приложением. Так как системный инсталлятор позволяет устанавливать только подписанные программы с SID взятым из защищенной области значений, то несанкционированного доступа одной программы к хранилищу данных другой исключен. Неподписанное приложение может попытаться использовать SID, принадлежащей другой программе, но в этом случае системный инсталлятор откажется установить такое приложение.

Хотя чтение и запись из экранированного хранилища другой программы запрещены, в процессе инсталляции (и только в этот момент) существует возможно добавлять в него файлы . Они дожны помещаться в поддиректорию import. Такой механизм позволяет устанавливать плагины и аддоны к уже установленному приложению. Для приведенного выше примера директория, позволяющая добавить файлы в хранилище, будет находиться здесь: \private\12345678\import\

К кому мне обратиться. если у меня остались вопросы?

Обращайтесь на http://www.developer.nokia.com/Community/Discussion/forumdisplay.php?124-Installation-Certification-and-Security.

Внутренние сслылки

This page was last modified on 27 September 2012, at 04:44.
111 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×