Устройства чтения СИМ карт (3 варианта)
none
Опубликована: 2004 г.
0
0
Вознаградить Я собрал 0 0
Оценить статью
- Техническая грамотность
Оценить Сбросить
Средний балл статьи: 0 Проголосовало: 0 чел.
Комментарии (3)
| Я собрал ( 0 ) | Подписаться
Для добавления Вашей сборки необходима регистрация
0 

B.A.R.B.O.S.S.A 27.07.2010 02:38 #
А какой программой можно считать симку, используя эти схемы?
0 

Виталий 21.11.2010 13:45 #
Учитывая, что сим-карта построена на PIC (не помню какой именно, по моему 16), вероятно отлично подойдет PonyProg2000, только это мало что даст, т. к. современные сим карты осложняют свое считывание напряжением питания в 1,8В. Записать считанную сим-ку можно в Gold или Silver карту. 16 номеров в голд и 8 в сильвер соответственно. Пытался копировать современную сим карту для штатного телефона в немецком автомобиле (SIM U=3В) ничего не получилось — сложность считывания симки. Следует отметить, что данные считыватели по большей части не для записной книги, а для копирования сим карт.
0 
Андроид не видит сим-карту, что делать?

Есть разные причины, по которым ваше устройство Android не читает SIM-карту. Некоторые возможные причины могут заключаться в том, что вы неправильно вставили SIM-карту или на вашем устройстве Android возникла проблема с программным обеспечением. Какой бы ни была причина, решение нужно найти быстро, когда ваш телефон сообщает: «SIM-карта не обнаружена».
Вот несколько исправлений для тех случаев, когда ваш телефон Android не может обнаружить SIM-карту.
Если перезагрузка не удалась, выключите телефон
Если причиной ошибки вашей SIM-карты является проблема программного обеспечения, иногда для решения проблемы достаточно простой перезагрузки. Нажмите и удерживайте кнопку питания, пока не появится всплывающее окно с опцией «Перезагрузка». Нажмите на него, чтобы перезагрузить телефон.

Это может решить множество проблем, но в последнее время пользователи сетей Sprint и Verizon сообщали, что перезагрузки недостаточно, чтобы исправить ошибку «Нет SIM-карты», и даже перезагрузка может вызвать ошибку «SIM-карта не обнаружена». Решение заключалось в том, чтобы выключить их телефоны (подождать 30 секунд), а затем снова запустить их.
Если это решит вашу проблему, вам следует придерживаться выключения, а затем включения телефона вместо перезагрузки, пока не будет выпущено обновление Android или обновление настроек оператора, чтобы решить проблему.
Включите SIM-карту
Еще одно простое решение ошибки SIM-карты в более поздних версиях Android — проверить, действительно ли ваша SIM-карта включена. Для этого перейдите в «Настройки -> Сеть и Интернет -> SIM-карты», затем коснитесь ползунка рядом с вашей SIM-картой, чтобы он был «Вкл.».
Если у вас установлена две SIM-карты, это также экран, на котором вы можете убедиться, что SIM-карта, которую вы хотите использовать, включена.

Измените сетевой режим на автоматический
Вы также можете попробовать изменить сетевой режим на автоматический. Вы можете сделать это, перейдя в «Настройки -> Мобильные сети -> Сетевой режим» и выбрав первый вариант, которым будет LTE/WCDMA/GSM (автоматическое подключение).

Выберите правильного оператора сети
Если ваш сетевой оператор не тот, который выбран в настройках вашего Android-устройства, вы обязательно получите ошибку SIM-карты. Чтобы убедиться, что у вас есть нужный, перейдите в «Настройки -> Мобильные сети -> Операторы сети -> Поисковые сети». Когда ваше устройство Android завершит поиск и отобразит результаты, нажмите на своего оператора.

Введите настройки APN вашей сети вручную
Если два вышеуказанных метода не работают, возможно, ваша SIM-карта полностью потеряла связь с сетью, к которой она должна подключаться. Если это произошло, вам может потребоваться ввести настройки APN вашего оператора сети вручную.
На современном устройстве Android (начиная с версии 9.0 Pie) для этого перейдите в «Настройки -> Сеть и Интернет -> Мобильная сеть -> Дополнительно -> Имена точек доступа», а затем нажмите значок «+» в правом верхнем углу.

На этом этапе вам нужно либо обратиться к своему сетевому провайдеру, чтобы получить необходимые настройки APN, чтобы ввести здесь, либо проверить в Интернете, опубликованы ли ваши сетевые провайдеры. Также может быть хорошей идеей сделать снимок экрана и сохранить настройки APN, чтобы вы могли быстро обратиться к ним, если снова столкнетесь с проблемой.
Извлеките SIM-карту и аккумулятор.
Еще одно базовое решение, которое вы можете попробовать, — это извлечь аккумулятор (если он съемный) и SIM-карту из лотка для SIM-карты. Прежде чем сделать это, убедитесь, что вы выключили свое устройство Android. После того, как вы все удалили, подождите примерно одну минуту и снова вставьте все заново.
Обычная практика — бросить телефон, но даже если он не пострадал, SIM-карта могла сдвинуться с места. Дешевый и уникальный метод, который пробовали многие, — это добавить немного бумаги или даже ленты, чтобы плотнее прилегать. Обычно это позволяет установить SIM-карту плотно и плотно и решить проблему.
Попробуйте использовать свой телефон в безопасном режиме
К сожалению, не все устанавливаемые вами приложения работают хорошо. Некоторые приложения могут причинить больше вреда, чем пользы, и будут вызывать эту ошибку. Загрузите ваше устройство в безопасном режиме.
Оставайтесь в безопасном режиме на несколько часов и посмотрите, сохраняется ли у вас эта проблема. Если нет, попробуйте вспомнить несколько последних установленных вами приложений и удалите их. Выйдите из безопасного режима и посмотрите, сохраняется ли у вас эта проблема.
Решение для режима полета
Если вы попробовали все вышеперечисленные базовые исправления и уверены, что SIM-карта не виновата, пора попробовать решение для режима полета. Проведите пальцем вниз от верхнего края дисплея (один или два раза в зависимости от того, где вы разместили значок), и включите его.

В зависимости от вашей версии Android вы можете получить или не получить предупреждающее сообщение при включении режима полета. Включите его и оставьте примерно на тридцать секунд. Когда вы его выключите, ваше устройство Android начнет поиск сети, и, надеюсь, ошибка SIM-карты будет исправлена.
Исправьте ошибку SIM-карты, очистив кеш
Очистить кеш вашего Android, чтобы попытаться исправить ошибку отсутствия SIM-карты, чрезвычайно просто. Перейдите в «Настройки -> Хранилище -> Внутреннее хранилище -> Кэшированные данные». Когда вы нажмете на кешированные данные, вы увидите всплывающее окно с сообщением, что это очистит кеш для всех приложений на вашем устройстве. Просто нажмите «Удалить», чтобы продолжить.

Если бы существовал только способ с самого начала узнать, что вызывает ошибку отсутствия SIM-карты, не было бы необходимости тратить время на попытки использовать различные методы. К сожалению, до тех пор, пока на устройстве Android не появится сообщение о причине, метод проб и ошибок — это все, что у вас есть. Эта проблема с сим-картой также может повлиять на ваши сотовые данные.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Как устроены SIM-карты и как их программируют
С бытовой точки зрения сим-карта — это просто карточка со вшитым номером телефона, но для программиста всё гораздо интереснее. Дело в том, что сим-карта — это на самом деле мини-компьютер со своим процессором и памятью, а значит, его можно запрограммировать.
Сим-карта — это компьютер
Внешне сим-карта выглядит просто: кусок пластика с позолоченными контактами, который вставляется в телефон. Но под этими контактами инженеры разместили настоящий компьютер:
- процессор примерно на 10 мегагерц — по мощности это примерно так же, как у процессора Intel 80286, который стоял в системных блоках в 80-х;
- 256 килобайт памяти;
- несколько килобайт оперативной памяти;
- блок с энергонезависимой памятью для хранения настроек;
- криптографические модули.
Вот как это выглядит изнутри:

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

На чём пишут софт для сим-карт
Так как возможности железа сильно ограничены, то программы для сим-карт пишут на языке, который использует все ресурсы по максимуму — это C. Технически можно было бы ещё писать на С++, но поддержка ООП съест часть памяти, а это уже критично. Такой подход позволяет вместить всю операционную систему карты в 15–20 килобайт.
С другой стороны, иногда ОС для карт пишут на ассемблере, но по объёму он почти такой же, как оптимизированный код на С.
На сим-карте, кроме ОС, есть ещё свои приложения, например «Меню сим-карты». Многие думают, что это встроенные возможности телефона, но на самом деле меню обрабатывается на сим-карте. Так как железо в симке гораздо медленнее того, что стоит в телефонах, меню сим-карты отображается медленнее, чем все остальные настройки.
Кроме меню и ОС, на сим-карту можно записать любое приложение, которое может делать что угодно в рамках доступных ресурсов. Например, некоторые сим-карты несут в себе приложения Visa или Mastercard — это позволяет пользоваться симкой как банковской картой.
Как карты регистрируются в сети
За регистрацию в сети отвечают два компонента: уникальный идентификатор карты (IMSI) и ключ шифрования (Ki).
IMSI отвечает за регистрацию карты в сети — по нему оператор связи понимает, какая именно это сим-карта. Дальше оператор смотрит в базу данных и определяет, какой номер к ней привязан.
Ключ Ki — самая важная часть карты с точки зрения безопасности. Именно этим ключом шифруются все данные, которые передаются с карты и обратно, поэтому ключ хранится в области памяти, недоступной для чтения. Даже если подключить контакты симки к другому процессору и попробовать получить все данные напрямую, это не сработает.
Что можно хранить на сим-карте
В сим-карте есть своя файловая система, но в упрощённом варианте. Всё, что хранится на карте — это файлы:
- настройки,
- адресная книга,
- СМС-сообщения,
- данные оператора.
При этом для удобства файлы можно хранить в папках, например сообщения или телефоны друзей. Но даже папка здесь — это тоже файл, просто с другой пометкой внутри файловой системы.
Во многих сим-картах под адресную книгу заранее выделено 199 ячеек памяти — это сделано для того, чтобы сообщения, которые тоже могут храниться на картах, не забили собой всю доступную память.
Электронные сим-карты
В современных телефонах появились электронные сим-карты — e-sim. Вместо пластиковой карточки используется файл с прошивкой — он загружается в специальный чип на телефоне и после этого работает как обычная сим-карта. Такая прошивка приходит от оператора связи по интернету — самому прошить такое не получится.
Так как e-sim — это просто файл на телефоне, то работа с такой симкой происходит гораздо быстрее, чем с обычной. С другой стороны, на такой симке уже не получится сохранить контакты, чтобы потом переставить её в другой телефон.
Можно ли скопировать сим-карту
Технически да, но пользоваться клонированной сим-картой — незаконно. У операторов сотовой связи есть свои алгоритмы выявления и блокировки таких клонов. Самый простой из них — привязка к последней геолокации. Если сим-карта появляется в сети очень далеко от места последней регистрации, оператор может заблокировать такую карту.
Ещё один способ защиты карт — сложный подбор Ki-ключа. Этот ключ нельзя считать напрямую из карты, его можно подобрать только перебором. Но после определённого количества неудачных регистраций операторы навсегда блокируют сим-карту.
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Общаемся с SIM-картой на низком уровне

f: не могу представить, как крусач может работать) Наши курсачи обычно пыляться где-то на полках
m: Вот у меня есть плата. К ней нужно подрубить сим-карту, и эта плата должна прочитать смс оттуда)
m: плата покупная, а вот программируем ее мы)
f: а нельзя смс с телефона прочитать?
— из жизни, орфография сохранена
Ну а если вам все-таки интересно узнать больше о сим-картах, протоколах передачи и их файловой структуре, прошу под кат. Ну и куда же без кода…
1. Введение
Начать стоит с того, что сим-карта является разновидностью смарт-карт, поэтому она полностью подчиняется стандарту ISO-7816. Я не буду говорить, какие выводы она имеет (об этом уже подробно говорили в предыдущей статье).
На процессор некоторых симок (если точнее — смарт-карт) можно подавать синхронизирующий сигнал до 20 МГц. Но ведь при включении симки терминал не знает ее параметров, поэтому общение начинается с, максимум, 4 МГц. Впоследствии, терминал узнает симку получше и может изменить параметры передачи.
К выводу I/O должен быть подключен pull-up резистор номиналом 20 КОм. В те моменты, когда терминалу и симке нечего сказать друг другу (т.е. они оба находятся в Z-состоянии) этот резистор обеспечит на выводе логическую единицу.
2. Активация/деактивация
Активация сим-карты и последующий cold reset

Диаграмма довольно проста, cold reset начинается с момента времени Та. Стоит лишь отметить, что I/O управляется здесь только симкой. Терминал должен игнорировать любой сигнал на нем, пока RST в нуле. После симка обязана дать ответ (Answer to reset).
Деактивация

Определенных рамок времени здесь нет, I/O также управляется симкой.
3. Протоколы передачи
У всех смарт-карт и, соответственно, сим-карт существует два типа протоколов передачи — побайтовый T0 и блочный T1. Я рассмотрю только Т0.
Сразу скажу, что T0 как две капли воды похож на UART (он используется в передаче по COM-порту). Но с небольшими оговорками. Начнем с самого начала.


Момент времени в протоколе T0 носит название элементарной единицы времени (etu), которая равна:
где F (коэффициент преобразования тактовых импульсов) и D (коэффициент регулирования скорости передачи битов) задаются исходя из ATR, а f – частота синхроимпульса для карты. По умолчанию, F = 372, а D = 1.
Передача на выводе I/O начинается с появлением стартового бита — спада с логической единицы. Время, отведенное каждому биту равно etu. Далее идут 8 битов данных, 1 бит четности и, как минимум, 2 стоповых бита. Временной отрезок между двумя стартовыми битами всегда должен быть больше или равен 12 etu и меньше или равен 9600 etu.
4. Answer to reset
Как я уже говорил, симка посылает ATR после cold reset’a. Именно в нем содержится информация с рекомендуемым значением частоты синхронизации, списком поддерживающих протоколов передачи и т.д.
Самый первый байт в ATR — TS. Он показывает, какое кодирование применяется – прямое или инверсное.

Прямое кодирование: если TS равен HHLH HHLL, то высокий уровень напряжения в цепи I/O кодирует логическую единицу, а момент времени 2 на рисунке кодирует наименьший значимый бит. При таком кодировании значение байта TS равно 0x3B.
Обратное кодирование: если TS равен HHLL LLLL, то низкий уровень напряжения в цепи I/O кодирует логическую единицу, а H – логический ноль. Момент времени 2 на рисунке кодирует наибольший значимый бит. При таком кодировании значение байта TS равно 0x3F.
Остальные байты содержат служебную информацию, например, рекомендуемые значения F и D, влияющие на значение etu.
5. Структура команд
Команды делятся на два типа: Command Transport Data Unit (C-TPDU) и Response Transport Data Unit (R-TPDU), т.е. команда и ответ на нее. Команды всегда составляют пару: на любую команду, переданную на карту, карта ответит R-TPDU. R-TPDU всегда заканчивается статусным байтом, характеризующим успешность команды.
| Код | Длина | Описание | |
| CLA | 1 | Класс инструкции | Заголовок |
| INS | 1 | Код инструкции | |
| P1 | 1 | Параметр инструкции 1 | |
| P2 | 1 | Параметр инструкции 2 | |
| Lc | 0 или 1 | Количество байтов в поле Data | |
| Data | Lc | Данные команды | Тело |
| Le | 0 или 1 | Максимальное количество байтов, ожидаемых в ответ |
Не все карты могут сразу принять заголовок и тело команды, в таком случае нужно послать сначала заголовок, дождаться ответного статусного байта, а затем слать тело команды.
Стоит отметить, что если мы ошиблись в каком-либо параметре команды, симка сообщит об этом в статусном байте, но она имеет право проигнорировать команду, если та была абсолютно некорректна (например, состояла из одного байта).
| Код | Длина | Описание |
| Data | Lr | Данные ответа |
| SW1 | 1 | Статусный байт 1 |
| SW2 | 1 | Статусный байт 2 |
6. Файловая структура
1. Master file (MF) — корень.
2. Dedicated files (DF) — обыкновенные папки.
3. Elementary files (EF) делятся на:
— Transparent EF — состоят из последовательности байтов,
— Linear fixed EF — состоят из последовательности записей одинакового размера,
— Cyclic EF — тоже самое, но при достижении конца файла, следующая запись начинается с нулевой записи, по кругу.
7. Примеры команд

Попробуем прочитать и записать смс-сообщение, находящееся в файле EFSMS в папке DFTELECOM.
1) SELECT
До совершения операции над файлом необходимо сначала его выбрать. Вначале нужно выбрать папку DFTELECOM.
Отправка заголовка команды SELECT:
Ответ — статусный байт:
A4 (повторяет байт инструкции)
Отправка тела команды:
7F 10 (ID данной папки)
Схожим образом выбираем EFSMS.
2) READ RECORD
После того, как мы выбрали файл, содержащий все смс, можно попробовать прочитать одну из них.
Отправка заголовка команды READ RECORD:
A0 B2 01 04 B0 (01 — порядковый номер смс)
B2 07 07 91 97 62 92 90 90 F0 11 FF 04 81 21 43 00 08 FF 08 04 45 04 30 04 31 04 40 FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF 90 00
Все, кроме первых и последних двух байтов (B2, 07, 90, 00) является записью сообщения. Разберем его.
| 07 | Длина номера смс-центра в байтах. |
| 91 | Тип номера смс-центра (в данном случае, он представлен в международном формате). |
| 97 62 92 90 90 F0 | Номер смс-центра — +7-926-290-90-90 (читать с конца байта). Символ F нужен для выравнивания. |
| 11 | Длина номера смс-центра. |
| 04 | Длина номера отправителя. |
| 81 | Тип номера отправителя. |
| 21 43 | Номер отправителя — 1234 (опять читать с конца байта). |
| 00 | Идентификатор протокола. |
| 08 | Кодировка (00 — только латиница, 08 — с кириллицей). |
| 08 | Длина сообщения в байтах. |
| 04 45 04 30 04 31 04 40 | Сообщение — «хабр». Кодируется в UTF-16. |
Важно отметить, что когда в сообщении содержатся только латинские символы, используется особая 7-битная GSM кодировка.
Возьмем слово «hi».
| h | i | |
| 68 | 69 | Смотрим в UTF-8. |
| 0110 1000 | 0110 1001 | Преобразуем в двоичный код. |
| 1110 1000 | 0011 0100 | Дополняем старший байт младшими битами следующего байта. |
| E8 | 34 | Именно так будет выглядеть «hi» в 7-битной кодировке. |
3) UPDATE RECORD
Отправка заголовка команды UPDATE RECORD:
A0 DC 02 04 B0 (02 — порядковый номер смс)
Ответ — статусный байт:
DC (повторяет байт инструкции)
Далее отправляется тело команды в соответствии с табл.3.
8. Программно-аппаратная реализация
В качестве аппаратной реализации была выбрана ПЛИС Altera DE1, т.к. курсач сдавать надо это замечательная плата для небольших проектов. Весь проект писали я и Breaknus, на VHDL и C. Среды разработок — Quartus II и Eclipse.
Разъем сим-карты припаян к пяти проводам IDE-шины. Плата имеет внутренние pull-up резисторы.
Краткая схема работы проекта:
Для ввода/вывода данных был собран NIOS II процессор. После ввода команды в консоли NIOS’а, она преобразуется в шестнадцатеричный код и передается побайтово в vhdl-блок. В этом блоке команда передается согласно протоколу T0 на I/O симки. После приема ответа блок передает его в NIOS, и ответ выводится в NIOS консоль. Активация/деактивация карты выбирается переключателем на плате. Нужные временные рамки для активации/деактивации, а также частота синхронизации карты обеспечиваются vhdl-блоком.
Благодарности
Хочу выразить благодарность Сухинину Борису Михайловичу. Именно он познакомил нас с миром ПЛИС на замечательных лабораторных и находил время отвечать на наши вопросы.
Полезная информация
1. ISO-7816 (Википедия)
2. ETSI TS 100 977 — Mobile Equipment (SIM-ME) Interface
3. ETSI TS 102 221 — UICC-Terminal interface