terminal profile at runtime + canonical custom-file paths (v2.2.3)
TERMINAL PROFILE:
- GET /api/terminal-profile returns the profile in effect + the CLI default;
POST /api/terminal-profile validates ({profile}, hex, even, 1-255 bytes),
stores it in memory and re-sends it, resetting the STK session like
/api/rescue (the shared _resend_terminal_profile helper; rescue now
delegates to it). __main__ keeps server.cli_terminal_profile.
- Phone tab: a TERMINAL PROFILE block next to STATUS and Polling with the
current hex/byte count, Send (re-send) and Configure. The Configure
dialog has a device-model preset selector, a hex field and a per-bit
form generated from a 264-entry table for TS 102 223 V18.3.0 5.2 bytes
1-33 (pySim's table as scaffold, later bytes/3GPP bits added from the
spec; beyond the table generic RFU labels). Form <-> hex sync both
ways, hex authoritative, bits preserved. Apply posts the new value.
- Presets: Xiaomi Mi A1 (project default), Quectel GSM module example.
In-memory only, no persistence.
Custom files:
- Canonical paths rooted at MF / ADF.USIM / ADF.ISIM; entries are
{path, name, kind}. The editor now uses root + parent-DF selector +
4-hex FID + alias, requires the parent DF to be defined first, rejects
duplicates, rewrites descendants when a DF's path changes and cascades
deletes after a confirmation.
- Legacy forms are normalized on load/import (3F00/... -> MF/..., relative
a153/4954 resolved against the custom DFs); unresolvable entries are
dropped and reported in the list.
- Tree injection matches by exact parent path via the new pysimFsNodePath
(same-FID DFs under different parents no longer collide);
profilerCustomNameForPath uses the same normalization.
SW cache otaman-v167; help EN/RU + docs/api.md + AGENTS updated.
Tests: 236 Python + 371 frontend.
This commit is contained in:
+29
-2
@@ -41,6 +41,8 @@ connect and warns if versions are incompatible.
|
||||
| `/api/proactive-log` | GET | Last 50 proactive commands |
|
||||
| `/api/status-poll` | POST | Manual STATUS poll + FETCH if 91XX |
|
||||
| `/api/rescue` | POST | Re-send TERMINAL PROFILE to recover CAT session |
|
||||
| `/api/terminal-profile` | GET | Current TERMINAL PROFILE (hex) + CLI default |
|
||||
| `/api/terminal-profile` | POST | Set and re-send the TERMINAL PROFILE at runtime (in-memory) |
|
||||
| `/api/poll-status` | GET | Background STATUS polling state |
|
||||
| `/api/poll-toggle` | POST | Enable/disable background polling |
|
||||
| `/api/pli-qualifiers` | GET | List of qualifier codes with descriptions |
|
||||
@@ -423,12 +425,37 @@ proactive chain (FETCH → TERMINAL RESPONSE) until it settles. Returns:
|
||||
### `POST /api/rescue`
|
||||
|
||||
Recovers a stuck CAT session by clearing the pending state and re-sending the
|
||||
TERMINAL PROFILE. Returns whether a menu and event list were captured again:
|
||||
TERMINAL PROFILE. Returns whether a menu and event list were captured again
|
||||
(plus the profile used):
|
||||
|
||||
```json
|
||||
{"menu": true, "events": [4, 5]}
|
||||
{"ok": true, "profile": "FFFF...", "menu": true, "events": [4, 5]}
|
||||
```
|
||||
|
||||
### `GET /api/terminal-profile`
|
||||
|
||||
The TERMINAL PROFILE currently in effect and the CLI default (for reference;
|
||||
runtime changes are in-memory only):
|
||||
|
||||
```json
|
||||
{"profile": "FFFFFFFF7F9F00DFFF03021FE2000000C3FB000704117800710100000038428003",
|
||||
"bytes": 33,
|
||||
"cli_default": "FFFFFFFF7F9F00DFFF03021FE2000000C3FB000704117800710100000038428003"}
|
||||
```
|
||||
|
||||
### `POST /api/terminal-profile`
|
||||
|
||||
Sets the TERMINAL PROFILE at runtime (in-memory) and re-sends it to the card,
|
||||
resetting the STK session state exactly like `/api/rescue`. Body with a new
|
||||
profile, or `{}` to re-send the current one:
|
||||
|
||||
```json
|
||||
{"profile": "FFFFFFFF7F1F007FFF00001F230811060700"}
|
||||
```
|
||||
|
||||
Hex, even number of digits, 1–255 bytes. Response is the same shape as
|
||||
`/api/rescue` (with `ok: true`); invalid hex is a 400, no reader a 503.
|
||||
|
||||
### `GET /api/poll-status`
|
||||
|
||||
Background STATUS polling state.
|
||||
|
||||
Reference in New Issue
Block a user