diff --git a/CHANGELOG.md b/CHANGELOG.md index c34f9cf..d44a0b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,43 @@ every change carries a descriptive commit message. ## [Unreleased] -## [3.38.2] — 2026-10-25 +## [3.39.0] — 2026-10-26 + +### Added + +- **EF.SST tri-state editor.** The SIM service table (TS 51.011 10.3.7, two + bits per service — allocated + activated) now edits per service as + *deleted / allocated-off / on*, preserving unmodelled pairs and the file + length; it stops being read-only. +- **Cross-file Services editor** (a new Card-reader pill): SST / UST / EST / + IST shown side by side from a curated 161-row feature cross-reference, a + column rendered only for a file present on the card, per-file Save buttons, + and a **Check filesystem** action (with a throbber) that verifies the + declared services against the card's actual files. +- **Path-exact filesystem check.** Each feature's files are resolved by + (symbolic name, root) → canonical path through `uicc_files.json`, probed at + that exact path, and reported in both directions (declared-but-missing, + present-but-undeclared) plus an "unchecked" bucket for files not yet in the + registry. + +### Changed + +- **EF resolution is DF-context aware.** `efDfFromPath` derives the parent DF + and `efFindDecoder`/`efFindEncoder` resolve DF → name → FID, so same-name/ + same-FID files in different DFs are distinct; EF.ECC gained a USIM + linear-fixed decoder beside the SIM transparent one, and EF.AD is registered + per DF. +- **The file manager selects files by canonical path** (not node name), so two + same-named files under different DFs (EF.ECC/EF.AD, the DF.PHONEBOOK copies) + are distinguishable, and snapshot/profile paths root ADFs by AID are + normalized (`A0000000871002`→USIM, `…1004`→ISIM, `…100B`→USIM-non-IMSI). +- **The USIM service table is complete**: UST 147–150 (5MBS UE pre-configuration, + Operator Controlled Signal Threshold per Access Technology, A2X, IMS Data + Channel Indication) were missing. +- **`uicc_files.json`** gained the 13 optional files pySim does not model + (DF.MExE, DF.SoLSA, DF.BCAST, DF.ACDC, DF.TV, DF.A2X and their children), + emitted with distinct (name, path) so same-FID files in other DFs stay + separate. ### Fixed @@ -21,6 +57,8 @@ every change carries a descriptive commit message. 127.0.0.1. `start.sh` and `start.bat` now parse both flags (space and `=` forms, the last value wins like argparse) and echo the effective address; the defaults are unchanged. +- eCall Data's `EF.FDN` reference was a typo (`6F3A` is EF.ADN); corrected to + EF.SDN 6F49 / EF.FDN 6F3B. ## [3.38.1] — 2026-10-25 diff --git a/frontend/index.html b/frontend/index.html index b0f1832..18ffa68 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1979,7 +1979,7 @@ // ===== Version ===== // Single source of truth for the PWA version: shown in the header and used // by the server version check in pysimConnect(). -const SIMPLE_VERSION = '3.38.2'; +const SIMPLE_VERSION = '3.39.0'; document.getElementById('app-version').textContent = 'v' + SIMPLE_VERSION; // ===== view history (the browser Back/Forward buttons) ===== diff --git a/frontend/sw.js b/frontend/sw.js index 8a31e62..a925618 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'simple-v483'; +const CACHE = 'simple-v484'; const URLS = [ 'index.html', 'help.html', diff --git a/pyproject.toml b/pyproject.toml index a80ed8c..37800f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pysim-simple-server" -version = "3.38.2" +version = "3.39.0" description = "HTTP REST server wrapping pysim for the SIMple PWA" license = { text = "GPL-2.0-or-later" } requires-python = ">=3.9" diff --git a/pysim_simple_server/server.py b/pysim_simple_server/server.py index c2e6681..1e21e4b 100644 --- a/pysim_simple_server/server.py +++ b/pysim_simple_server/server.py @@ -37,7 +37,7 @@ from osmocom.tlv import BER_TLV_IE from osmocom.utils import rpad -VERSION = '3.38.2' +VERSION = '3.39.0' MAX_ENVELOPE_SEGMENTS = 5 # max SMS segments for outgoing C-APDU in ENVELOPE