From a5f7ca840d3397d91330148dfd17048421b05aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=A2=D1=80=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Wed, 23 Sep 2026 08:34:27 +0300 Subject: [PATCH] ui: start the SELECT picker session in MF for both RFM builders The file picker's implicit current DF now defaults to MF for SIM RFM and USIM RFM alike (the real context follows the TAR the packet is sent to, TS 102 226 7.2/7.3, so the default is neutral and the per-row "starts in" selector covers ADF sessions - ADF.USIM files appear once it is switched). Tests set the ADF session explicitly where they exercise ADF-relative fills plus a new default assertion; help 2.1 EN/RU, READMEs and AGENTS updated. sw cache -> simple-v244; version stays 3.4.0. --- README.md | 2 +- README_RUS.md | 2 +- frontend/help-ru.html | 2 +- frontend/help.html | 2 +- frontend/index.html | 5 ++++- frontend/sw.js | 2 +- frontend/tests/uicc_files.test.js | 12 ++++++++++-- 7 files changed, 19 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 46d60f1..3a50bf8 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ CLA = `A0` (GSM 11.11 / ISO 7816-4). Every SELECT row offers a file picker: a filter box, an **all files** toggle, the session start root with the current DF, and the file list grouped by root (`MF`, `ADF.USIM`, ...). Picking a file fills the fields for the current method; when the method cannot express the selection the picker switches to one that can - preferring **path** (one SELECT), then **chain** - and says so, e.g. `7F106F40` (path from MF) or `7F20,6F46` (relative FID chain). - **List source**: with a card equipped the loaded file-manager tree wins (card names, probed presence; probed-absent files are hidden). Without a card, or for branches the tree has not loaded, the shipped standard list is used: `uicc_files.json`, generated from pySim's profiles/application classes by `pysim_simple_server/uicc_files.py` and drift-guarded by `tests/test_uicc_files.py`. It is specs-default until **Probe all files** runs in the file manager. Custom files are always merged. -- **Session start**: the implicit current DF follows the TAR the secured packet is sent to (UICC Shared File System RFM -> MF, TS 102 226 §7.2; ADF RFM -> its ADF, §7.3). Defaults: MF here, ADF.USIM for USIM RFM; changeable per row. +- **Session start**: the implicit current DF follows the TAR the secured packet is sent to (UICC Shared File System RFM -> MF, TS 102 226 §7.2; ADF RFM -> its ADF, §7.3). Defaults: MF for both builders; changeable per row (pick the ADF to work in an ADF session). - **Path** is the FID sequence from MF without the MF identifier (ISO 7816-4); the USIM "from current DF" variant uses the relative tail. **Chain** stays relative to the current DF and follows the TS 102 221 §11.1.1.2 FID search order (children, parent, siblings). - ADF roots are not pickable - an application is selected by AID, which the **By AID** method keeps manual (TS 102 226 §7.1 forbids P1=`04` for RFM). diff --git a/README_RUS.md b/README_RUS.md index 63aed67..9fb03e0 100644 --- a/README_RUS.md +++ b/README_RUS.md @@ -82,7 +82,7 @@ CLA = `A0` (GSM 11.11 / ISO 7816-4). У каждой строки SELECT есть выбор файла: поле фильтра, переключатель **all files**, корень начала сессии с текущим DF и список файлов по корням (`MF`, `ADF.USIM`, ...). Выбор файла заполняет поля текущего метода; если метод не может выразить выбор, помощник переключается на подходящий - предпочитая **path** (один SELECT), затем **chain** - и сообщает об этом, например `7F106F40` (путь от MF) или `7F20,6F46` (относительная цепочка FID). - **Источник списка**: при подключённой карте приоритет у загруженного дерева файлового менеджера (имена карты, проверенное наличие; отсутствующие скрываются). Без карты и для незагруженных ветвей используется поставляемый стандартный список: `uicc_files.json`, собранный из профилей/классов приложений pySim скриптом `pysim_simple_server/uicc_files.py` и проверяемый `tests/test_uicc_files.py`. До запуска **«Проверить все файлы»** список соответствует спецификациям. Пользовательские файлы добавляются всегда. -- **Начало сессии**: неявный текущий DF зависит от TAR, на который отправляется защищённый пакет (UICC Shared File System RFM -> MF, TS 102 226 §7.2; ADF RFM -> свой ADF, §7.3). По умолчанию: MF здесь и ADF.USIM для USIM RFM; меняется для каждой строки. +- **Начало сессии**: неявный текущий DF зависит от TAR, на который отправляется защищённый пакет (UICC Shared File System RFM -> MF, TS 102 226 §7.2; ADF RFM -> свой ADF, §7.3). По умолчанию: MF для обоих конструкторов; меняется для каждой строки (выберите ADF для работы в сессии ADF). - **Path** - последовательность FID от MF без идентификатора MF (ISO 7816-4); вариант USIM «from current DF» использует относительный хвост. **Chain** остаётся относительным к текущему DF и следует порядку поиска FID из TS 102 221 §11.1.1.2 (дети, родитель, соседи). - Корни ADF не выбираются - приложение выбирается по AID, и метод **By AID** остаётся ручным (TS 102 226 §7.1 запрещает P1=`04` для RFM). diff --git a/frontend/help-ru.html b/frontend/help-ru.html index 5dbe109..19488c3 100644 --- a/frontend/help-ru.html +++ b/frontend/help-ru.html @@ -98,7 +98,7 @@
У каждой строки SELECT под полями метода есть выбор файла: поле фильтра, переключатель all files, корень начала сессии с текущим DF и список файлов, сгруппированный по корню (MF, ADF.USIM, …). Выбор файла заполняет поля текущего метода; если метод не может выразить выбор, помощник переключается на подходящий — предпочитая path (один SELECT), затем chain — и пишет об этом в строке примечания, например файл из другого DF становится 7F106F40 (путь от MF) или 7F20,6F46 (относительная цепочка FID).
uicc_files.json, собранный из профилей/классов приложений pySim скриптом pysim_simple_server/uicc_files.py и проверяемый тестом. До запуска «Проверить все файлы» в файловом менеджере список соответствует спецификациям. Пользовательские файлы добавляются всегда.04 для RFM).Every SELECT row has a file picker below the method fields: a filter box, an all files toggle, the session start root with the current DF, and the file list grouped by root (MF, ADF.USIM, …). Picking a file fills the fields for the current method; when the method cannot express the selection the picker switches to one that can — preferring path (one SELECT), else chain — and says so in the note line, e.g. a file under another DF becomes 7F106F40 (path from MF) or 7F20,6F46 (relative FID chain).
uicc_files.json, generated from pySim's profiles/application classes by pysim_simple_server/uicc_files.py and kept in sync by a test. The list is specs-default until you run Probe all files in the file manager. Custom files are always merged.04 for RFM).