Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Category:
  • Music:

GSM: продолжение рассказа про SIM-карту (SIM-ME interface, SIM-Toolkit API, JavaCard API)

Заказной пост для egorfine: "Сим-карта может содержать какую-то хернюшку программную, которая появляется в меню моего телефона и может выполняться, если я с бодуна в нее ткну. Меню развлечений какое-то или еще какая рвота. :) Так вот вопрос. В каких кодах разработана эта фигнюшка, что она спокойно готова выполняться как на смартфоне нокия под симбианом так и под тупой мабилой от мотороллы на совсем другом процессоре, например?"
... и для avnik: "Я подозреваю что там какой то аналог RPC --- команда с параметами скармливается по шине, и получается результат"

ОК, углубимся в детали того, что бывает в потрохах SIM-карты и как она взаимодействует с телефоном.

Как я уже говорил, SIM-карта представляет собой мелкий компьютер с ограниченой функциональностью и строго специфицированным внешним интерфейсом. Через этот интерфейс SIM-карту "дергает" телефон, который является для SIM-карты единственным окном во внешний мир.

Как правильно угадал avnik, интерфейс между телефоном (ME) и SIM-картой представляет собой что-то вроде RPC с ограниченым набором функций. Если быть точным, то в базовом API SIM-карты GSM Phase 1 их (функций) всего 17 штук (раздел 8 стандарта GSM 11.11). Большая их часть отвечает за навигацию по памяти SIM-карты и модификацию значений EF (elementary files). Кроме этого есть еще функция "RUN GSM ALGORITHM" (выполнение пресловутых алгоритмов A3/A8) и функция "SLEEP", которая не используется в GSM Phase 2 :)

Естественно, что GSM-операторы очень быстро сообразили, что было бы очень неплохо иметь SIM-карты "не такие, как у всех". Это, типа, дает конкурентное преимущество и все такое. Опять же, таким образом можно облегчать глупым пользователям доступ к value-added сервисам. Теперь не прийдется запоминать, что секс по телефону живет по номеру XYZ - в меню телефона будет пункт "секс по телефону", который будет инициировать дозвон "куда надо".

И вот где-то в начале девяностых спецификация на интерфейс между SIM и ME была расширена и туда были добавлены функции, обеспечивающие работу того, что обычно называют термином "SIM Toolkit".

По-просту говоря, SIM Toolkit - это приложение (-ия), работающее на SIM-карте и взаимодействующие с ME по интерфейсу, описанному в GSM 11.14.

Такие приложения могут:
- показывать текст на экране ME
- инициировать посылку SMS/звонок/USSD-посылку на номер телефона, хранящийся на SIM-карте
- пискнуть в динамик
- вести диалог с пользователем ("Are you sure (Y/N)?")
- получать информацию извне с помощью SMS или Cell Broadcast и сохранять ее на SIM-карте
- предоставлять дополнительные меню, отображаемые ME
- модифицировать номера исходящих звонков или запрещать определенные звонки.

Учитывая, что специфицирован и стандартизирован только интерфейс SIM-ME, а сами приложения выполняются внутри SIM-карты, не имеет никакого значения, как именно и на чем они написаны.

Первые SIM-карты с STK содержали "статический" набор приложений, изменить которые можно было только поменяв саму SIM-карту. Понятное дело, что аппетит приходит во время еды, и очень скоро операторы поняли, что возможность менять STK "на ходу" - это наше всё. Но для реализации этой возможности надо было "открыть" процесс написания софта для SIM-карт и дать возможность независимым поставщикам писать приложения для SIM-карт, что явно было не по нраву производителям SIMок.

Решением стало появление SIM-карт, способных выполнять сильно обрезанную JVM (Java Virtual Machine) и создание спецификации JavaCard, позволившее третьим фирмам писать applet-ы для таких SIM-карт. В настоящий момент на рынке уже существует несколько моделей SIM-карт с немерянными объемами свободнй памяти - 32K или 64К, что позволяет разместить на них 2-3-4-5 апплетов.

PS
А для окончательного расширения горизонтов сознания поищите в Google-е слова "How to turn SIM card into Web Server" :)

Литература:
Tags: gsm
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 13 comments