release: 3.39.0 — decoded-editing batch

Bump VERSION/pyproject/PWA header to 3.39.0 and the SW cache to
simple-v484 (index.html + help changed).  CHANGELOG [3.39.0] folds the
unreleased 3.38.2 start-script fix and documents the decoded-editing
batch: DF-context resolution, EF.ECC/EF.AD split, path-based selection,
EF.SST tri-state editor, the Services editor + path-exact FS check, and
the UST 147-150 completion.
This commit is contained in:
2026-10-26 00:11:26 +03:00
parent 4835bc8585
commit a2fc9dc3d6
5 changed files with 43 additions and 5 deletions
+39 -1
View File
@@ -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
+1 -1
View File
@@ -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) =====
+1 -1
View File
@@ -1,4 +1,4 @@
const CACHE = 'simple-v483';
const CACHE = 'simple-v484';
const URLS = [
'index.html',
'help.html',
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -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