README.md

pySim (форк)

Форк проекта osmocom/pysim — набора утилит для чтения, декодирования и программирования SIM, UICC, USIM, ISIM и eUICC.

Форк добавляет к исходному проекту утилиту pySim-translate.py: она читает карту или файл дампа и отвечает на два вопроса — что на карте записано и почему она не работает. Вывод на русском или английском языке.

Что добавлено по сравнению с upstream

Компонент Назначение
pySim-translate.py Утилита командной строки: сводка, диагностика, сравнение карт
Команда summary Та же сводка внутри pySim-shell
pySim/translate/ Модуль разбора дампа, диагностики и вывода
pySim/translate/data/ Таблица MCC/MNC для расшифровки кодов сетей
tests/unittests/test_translate_*.py Юнит-тесты модуля, разложенные по темам
tests/unittests/data/fsdump-example.json Тестовый дамп карты для сквозных проверок
Makefile, requirements-dev.txt Прогон тестов, линтера и проверки типов
.gitlab-ci.yml Автоматическая проверка при каждом push

Дополнения лежат в отдельных файлах, чтобы слияния с основным проектом оставались простыми. В upstream-файлах изменены только списки установки в setup.py и две строки регистрации команды в pySim-shell.py.

Что умеет

Задача Чем решается
Понять, что записано на карте Сводка с расшифровкой всех файлов, имён сетей и служб
Понять, почему карта не работает Диагностика: готовность к 5G и IMS, регистрация, согласованность идентификаторов, обязательные файлы
Принять партию карт Сверка с эталоном, проверка по требованиям, таблица по партии
Разобраться с профилем eSIM Та же сводка и диагностика по файлу профиля — до загрузки на карту
Разобрать карту, которой нет на руках Сводка по записи обмена телефона с картой (SIMtrace2, osmo-qcdiag)
Достать данные абонента Телефонная книга, сообщения (включая удалённые), номер центра сообщений
Подготовить отчёт Markdown или HTML, при необходимости со скрытыми личными данными
Отдать данные другой программе JSON, CSV, заготовка записи абонента для osmo-hlr, Open5GS и pyHSS
Понять, что меняется в работе Наблюдение за картой и замер скорости обмена

Установка

cd pysim_fork
pip3 install -r requirements.txt

Для разработки дополнительно:

pip3 install -r requirements-dev.txt

Быстрый старт

Посмотреть, что на карте

./pySim-translate.py --lang ru --card -p 0          # карта в считывателе
./pySim-translate.py --lang ru dump.json            # ранее снятый дамп
./pySim-translate.py --lang ru профиль.der          # профиль eSIM
./pySim-translate.py --lang ru --trace запись.pcapng   # запись обмена телефона с картой
./pySim-translate.py --lang ru --verbose --card -p 0   # полный разбор каждого файла

Та же сводка доступна из интерпретатора, без снятия дампа:

pySim-shell (MF)> summary --lang ru

Снять и сохранить

./pySim-translate.py --lang ru --card -p 0 --all-files --save-dump card.json
./pySim-translate.py --lang ru --card -p 0 --no-subscriber   # быстрее, без книги и сообщений

Проверить партию

./pySim-translate.py --lang ru --reference образец.json card.json   # сверка с эталоном
./pySim-translate.py --lang ru --policy требования.yaml card.json   # проверка по требованиям
./pySim-translate.py --lang ru --format markdown dumps/*.json       # таблица по партии
./pySim-translate.py --lang ru --compare card_a.json card_b.json    # чем отличаются две карты

Расхождение с эталоном или невыполненное требование дают код возврата 3 — проверку можно встроить в приёмку.

Подготовить отчёт и данные для других программ

./pySim-translate.py --lang ru --format html --card -p 0 > card.html
./pySim-translate.py --lang ru --mask-personal --format markdown card.json > card.md
./pySim-translate.py --export-subscriber osmo-hlr --card -p 0
./pySim-translate.py --json card.json | jq .imsi

Разобраться с неисправностью

./pySim-translate.py --lang ru --fix-script --card -p 0 > fix.script   # что и как исправить
./pySim-translate.py --lang ru --timing --card -p 0                    # скорость обмена
./pySim-translate.py --lang ru --card -p 0 --watch 30                  # что меняется в работе

Лицензия

GNU General Public License v2.0 или новее — как и у основного проекта. Полный текст: COPYING.

Описание
Форк проекта [osmocom/pysim](https://github.com/osmocom/pysim) — набора утилит для чтения, декодирования и программирования SIM, UICC, USIM, ISIM и eUICC.
Конвейеры
0 успешных
0 с ошибкой
Разработчики