×

Discussion Board

Results 1 to 12 of 12
  1. #1
    Registered User
    Join Date
    Nov 2007
    Posts
    84

    User::LoadLogicalDevice

    Здравствуйте. Решил поиграться с .ldd драйверами. capability обеспечил разблокировкой телефона. Суть в следующем (прошу сильно не бить): берём драйвер, находящийся в z:\sys\bin\, и загружаем его. Всё работает как по маслу, но если же этот драйвер скопировать в c:\sys\bin\, переименовать, и попробывать запустить с диска c:\, получаем KErrCorrupt при попытке открыть драйвер. где-то на форуме утверждается, что запуск драйверов разрешён лишь с ROM памяти (т.е. только с z:\), НО всем известный trk устанавливается на c:\, и кладёт в c:\sys\bin файлик trkdriver.ldd, название которого недвусмысленно намекает на то, что для on-device отладки используется драйвер, загружаемый с диска c:\. Как же запустить драйвер с диска c:\? заранее спасибо.

  2. #2
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: User::LoadLogicalDevice

    Quote Originally Posted by JasFas0la View Post
    Здравствуйте. Решил поиграться с .ldd драйверами. capability обеспечил разблокировкой телефона. Суть в следующем (прошу сильно не бить): берём драйвер, находящийся в z:\sys\bin\, и загружаем его. Всё работает как по маслу, но если же этот драйвер скопировать в c:\sys\bin\, переименовать, и попробывать запустить с диска c:\, получаем KErrCorrupt при попытке открыть драйвер. где-то на форуме утверждается, что запуск драйверов разрешён лишь с ROM памяти (т.е. только с z:\), НО всем известный trk устанавливается на c:\, и кладёт в c:\sys\bin файлик trkdriver.ldd, название которого недвусмысленно намекает на то, что для on-device отладки используется драйвер, загружаемый с диска c:\. Как же запустить драйвер с диска c:\? заранее спасибо.
    Первое что приходит на ум - проверка имени/контрольной суммы залочено в прошивке (косвено об этом говорит закрытие дыр в новых прошивках). Манов на *брык*лабе и иже с ним емнип не было. Скорее всего это дело патчат уже в памяти.

  3. #3
    Nokia Developer Moderator
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355

    Re: User::LoadLogicalDevice

    Первое что приходит на ум - xip

    Устройства под управлением Symbian OS обычно имеют два типа накопите-
    лей: ROM-память (диск Z, содержимое которой записывается при производ-
    стве, и RAM-память (встроенная или внешняя). Файлы EXE и DLL могут вы-
    полняться непосредственно с ROM-накопителя, при этом в ОЗУ загружаются
    только секции изменяемых данных приложения. В этом случае в библиотеках
    в целях экономии места удаляется вся информация, позволяющая выполнять
    настройку адресации (relocation — перемещение). Поэтому нельзя просто ско-
    пировать DLL из ROM-памяти и использовать ее в RAM.
    А *.ldd это сокрее всего переименованный ECOM-плагин, т.е. полиморфная dll.

  4. #4
    Nokia Developer Moderator
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,347

    Re: User::LoadLogicalDevice

    По-сути да, это DLL и то, что драйвер скопированный с z:\ скомпилирован именно в XIP я тоже практически уверен.
    Device driver DLLs are loaded into the kernel process, and run on the kernel side and use the kernel heap. They may be execute-in-place (XIP) or loaded into RAM.
    Насколько мне известно, раньше информация по написанию драйверов была закрыта, кое-что можно было найти в книге "Symbian OS Internals: Real-time Kernel Programming", но все равно скомпилировать драйвер с обычным SDK без закрытого DevKit'а не представлялось возможным. Но время идет, многое меняется и сейчас, благодаря тому, что Symbian OS стала open-source, любой желающий может получить доступ к закрытым ранее вещам. Например, в открытых исходниках теперь запросто можно найти готовые примеры LDD драйверов, да и документация стала открытой, вот - Device Driver Concepts

  5. #5
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: User::LoadLogicalDevice

    Quote Originally Posted by A.A.M. View Post
    но все равно скомпилировать драйвер с обычным SDK без закрытого DevKit'а не представлялось возможным. Но время идет, многое меняется и сейчас, благодаря тому, что Symbian OS стала open-source, любой желающий может получить доступ к закрытым ранее вещам. Например, в открытых исходниках теперь запросто можно найти готовые примеры LDD драйверов, да и документация стала открытой, вот - Device Driver Concepts
    Любой желающий это здорово конечно, но есть два момента:
    1. Примеры к "закрытым ранее вещам" остаются только примерами. На symbian.org написано, что DevKit все-так же распространяется под своей (закрытой/платной) лицензии.
    2. Fep, Device Driver, etc требует TCB, который вряд ли кто-то когда-либо даст не мануфактуреру.

    Если я ошибаюсь, дайте пруфлинк по поводу этих моментов, я не нашел.

  6. #6
    Nokia Developer Moderator
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,347

    Re: User::LoadLogicalDevice

    Quote Originally Posted by privatejoker View Post
    1. Примеры к "закрытым ранее вещам" остаются только примерами. На symbian.org написано, что DevKit все-так же распространяется под своей (закрытой/платной) лицензии.
    Вот как комментирует этот момент Mark Wilcox из Symbian Foundation ( http://developer.symbian.org/forum/s...13&postcount=4 ):
    Unfortunately there are no Dev Kits any more. To access those APIs in current devices you'll have to use Forum Nokia's API partnering process.

    For future devices using Symbian^3 and later you should find that the kernel and hardware services package available on this site as open source code has the necessary file server component and the APIs you need.
    ---

    Quote Originally Posted by privatejoker View Post
    2. Fep, Device Driver, etc требует TCB, который вряд ли кто-то когда-либо даст не мануфактуреру.
    Полностью согласен.

  7. #7
    Registered User
    Join Date
    Nov 2007
    Posts
    84

    Re: User::LoadLogicalDevice

    Quote Originally Posted by privatejoker View Post
    2. Fep, Device Driver, etc требует TCB, который вряд ли кто-то когда-либо даст не мануфактуреру.
    Тоже согласен, но, теоретически, на эти ограничения можно закрыть глаза. В конечном приложении может быть как расширенная функциональность при использовании разблокированных прошивок, так и вообще скрытая функциональность, которую пользователь может активировать, лишь полностью осознав, для чего приложение служит, и соотв. образом разблокировав свой телефон. Т.е. функциональность, завязанная на Manufacturer capability является лишь расширением, но никак не основным функционалом приложения. Но возникает вопрос: а не нарушает ли приложение такой функциональностью какие нибудь пункты договора в процессе SymbianSigned..

  8. #8
    Nokia Developer Moderator
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,347

    Re: User::LoadLogicalDevice

    Как вообще при отправке в SymbianSigned приложения можно будет обосновать тот факт, например, что аудио-плееру вдруг понадобилось DRM, AllFiles или TCB capability? Скрытый (или, скажем, расширенный) функционал? Уверен, что Nokia не одобрит такое приложение. А на использование этих возможностей в своем приложении нужно получить еще и одобрение производителя.

  9. #9
    Nokia Developer Moderator
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355

    Re: User::LoadLogicalDevice

    Quote Originally Posted by JasFas0la View Post
    Тоже согласен, но, теоретически, на эти ограничения можно закрыть глаза. В конечном приложении может быть как расширенная функциональность при использовании разблокированных прошивок, так и вообще скрытая функциональность, которую пользователь может активировать, лишь полностью осознав, для чего приложение служит, и соотв. образом разблокировав свой телефон. Т.е. функциональность, завязанная на Manufacturer capability является лишь расширением, но никак не основным функционалом приложения.
    Capability не могут быть изменены динамически. Т.е. вам придется иметь 2 версии приложения - одну прошедшую SelfSigned и одну с TCB для сломанных прошивок.

    Но на самом деле, я считаю, что проблема с Manufacturer Caabilities сейчас стоит не так остро. Дело в том, что если вы покажете Нокии готовую DLL с TCB, которая действительно делает что-то полезное и не роняет ядро, то разрешение на сертификацию они выдадут. А вот если вы попросите DevCert с TCB под предлогом того, что вы в будущем хотите сделать что-то хорошее с TCB - они будут долго думать над этим, и если вы не сотрудник хорошо зарекомендовавшей компании, то такое вам не предоставят.
    Таким образом основная проблема была не в сертификации ПО, требующего Manufacturer Capabilities, а в его разработке. На эмуляторе драйвера не протестируешь. Сейчас с этим проще. Учитывая открытый Symbian, эмуляцию QUEMU, возможность залить его на Beagleboard, и ломанные прошивки (в конце концов), разработчик имеет достаточно возможностей чтобы написать, допустим, драйвер без разрешений мануфактурера. А потом просто поставить перед фактом: вот программа, она готова и полезна, система не падает, скрытых и вредоносных фич нет, нужен TCB. Еще лучше, если она opensource. Я не думаю, что в этом случае мануфактурер откажет. У них нет повода. Обоснованная необходимость в доступе к Manufacturer Caabilities сама по себе не может быть причиной в отказе сертификации.

  10. #10
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: User::LoadLogicalDevice

    Quote Originally Posted by A.A.M. View Post
    Вот как комментирует этот момент Mark Wilcox из Symbian Foundation ( http://developer.symbian.org/forum/s...13&postcount=4 ):
    Ясно, спасибо за линк.
    BTW, я просматривал некоторые. сорсы (онлайн), те моменты которые меня интересовали ( networksrv, filesrv) представлены только интерфейсом т.е. заголовочниками и документацией. В полном транке видимо есть *.lib-ы (не для текущей редакции ес-но). Пока ощущения что делая благие вещи они (по привычке) держат фигу в кармане.

    Quote Originally Posted by JasFas0la View Post
    Тоже согласен, но, теоретически, на эти ограничения можно закрыть глаза. В конечном приложении может быть как расширенная функциональность при использовании разблокированных прошивок, так и вообще скрытая функциональность, которую пользователь может активировать, лишь полностью осознав, для чего приложение служит, и соотв. образом разблокировав свой телефон. Т.е. функциональность, завязанная на Manufacturer capability является лишь расширением, но никак не основным функционалом приложения. Но возникает вопрос: а не нарушает ли приложение такой функциональностью какие нибудь пункты договора в процессе SymbianSigned..
    Идею понял, как вариант решения: динамически подключаемая либа, если чел-ку надо и он сам в состоянии принять решение нужно оно ему или нет.
    Динамическая линковка любых (спорных) ресурсов решает кучу (возможных) проблем. 4example когда пишу под win, выношу даже стороннюю графику лиц. под Public Domain, идея в том, что приложение работает как с ней так и без нее.

    Quote Originally Posted by A.A.M. View Post
    Как вообще при отправке в SymbianSigned приложения можно будет обосновать тот факт, например, что аудио-плееру вдруг понадобилось DRM, AllFiles или TCB capability? Скрытый (или, скажем, расширенный) функционал? Уверен, что Nokia не одобрит такое приложение. А на использование этих возможностей в своем приложении нужно получить еще и одобрение производителя.
    Динамическая линковка. И на откуп юзеру. Емнип какой-то файловый менеджер (фриварный) был в двух версиях обычный и с AllFiles. Никто автора не съел, где-то на сайте нокии даже описан был и ссылка. А так конечно не дадут, эсэс же.

  11. #11
    Nokia Developer Moderator
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355

    Re: User::LoadLogicalDevice

    Quote Originally Posted by privatejoker View Post
    Ясно, спасибо за линк.
    BTW, я просматривал некоторые. сорсы (онлайн), те моменты которые меня интересовали ( networksrv, filesrv) представлены только интерфейсом т.е. заголовочниками и документацией. В полном транке видимо есть *.lib-ы (не для текущей редакции ес-но). Пока ощущения что делая благие вещи они (по привычке) держат фигу в кармане.
    Еще не все исходники онлайн. Все будет когда зарелизят PDK 3.0.g (текущий - 3.0.f).

    Quote Originally Posted by privatejoker View Post
    Динамическая линковка. И на откуп юзеру. Емнип какой-то файловый менеджер (фриварный) был в двух версиях обычный и с AllFiles. Никто автора не съел, где-то на сайте нокии даже описан был и ссылка. А так конечно не дадут, эсэс же.
    Как бы вы не линковали - dll не получит больше capability чем грузящий ее процесс. Вообще capability в dll игнорируются и нужны только для того, чтобы dll с меньшими capability (и, соответственно, более легкой сертификацией) не могла быть загружена процессом, имеющим доступ к большему набору возможностей.

  12. #12
    Regular Contributor
    Join Date
    Jun 2008
    Posts
    51

    Re: User::LoadLogicalDevice

    Quote Originally Posted by truf View Post
    Как бы вы не линковали - dll не получит больше capability чем грузящий ее процесс. Вообще capability в dll игнорируются и нужны только для того, чтобы dll с меньшими capability (и, соответственно, более легкой сертификацией) не могла быть загружена процессом, имеющим доступ к большему набору возможностей.
    Я в курсе. Динамически дабы не искушать судьбу с наличием "расширенной версии" (хотя на практике с тем же ФМ никто не трогал автора), когда отдельный бинарник (dll) с вынесенным расширенным функционалом, отдельный инсталлятор - imho меньше вопросов. Подписать понятное дело и то и другое надо будет (юзеру).

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •