Commit Graph

80 Commits

Author SHA1 Message Date
Vadim Yanitskiy c69ba9bd3f Make 'pyshark' an optional dependency 2024-04-16 03:04:02 +07:00
Vadim Yanitskiy 5b18cded95 Add setup.py and pyproject.toml 2024-04-16 02:43:21 +07:00
Vadim Yanitskiy 75453e11b8 contrib: add DebugMux LUA dissector for Wireshark 2024-04-16 02:37:05 +07:00
Vadim Yanitskiy 066bff8fb1 samples: add enquiry dumps for some A2 phones 2024-04-13 00:54:19 +07:00
Vadim Yanitskiy 24559b8b5c samples: add Interactive Debug listings for M600 and EC400 2024-04-13 00:46:55 +07:00
Vadim Yanitskiy aa3637db05 README.md: edit list of known Interactive Debug DPs 2024-04-13 00:46:55 +07:00
Vadim Yanitskiy 12c622ca2e README.md: mention G705 (R1FA035) in the list of unknown DPs 2024-04-13 00:18:18 +07:00
Vadim Yanitskiy 887e1bec33 README.md: add Other DebugMux Software 2024-04-10 03:51:49 +07:00
Vadim Yanitskiy 1588e96c79 README.md: fix 'Usage' showing up in its own section 2024-04-10 03:11:04 +07:00
Vadim Yanitskiy c6052ac360 README.md: more notes for Interactive Debug DPs 2024-04-10 03:10:07 +07:00
Vadim Yanitskiy e39eeea4a1 README.md: document Interactive Debug DPs 2024-04-10 02:28:31 +07:00
Vadim Yanitskiy eb11b94d02 README.md: project description and documentation 2024-04-10 01:50:16 +07:00
Vadim Yanitskiy 8141a67371 sedbgmux-shell.py: allow running Python shell
Allow running Python shell using the 'py' command.
Give the shell access to the DbgMuxClient instance.

https://cmd2.readthedocs.io/en/latest/features/embedded_python_shells.html
2024-04-04 15:31:19 +07:00
Vadim Yanitskiy 9e90916c91 samples: add Interactive Debug listing for K610 (DEV FW) 2024-04-04 15:31:19 +07:00
Vadim Yanitskiy f4065426fc samples: add Interactive Debug listings for T700 (DEV FW) 2024-04-04 15:31:19 +07:00
Vadim Yanitskiy 30fa140a86 samples: add Interactive Debug listings for SE MD400[g] 2023-09-25 19:02:44 +07:00
Vadim Yanitskiy c3c55e8aec samples: add Interactive Debug listings for f3607gw and f5521gw 2023-09-11 18:39:03 +07:00
Vadim Yanitskiy 05ec89f5eb DbgMuxConnHandler: new handler 'DbgMuxConnWalker' 2023-09-11 18:39:03 +07:00
Vadim Yanitskiy 9a45680e18 Rework logging: use module-level loggers 2023-04-29 15:58:15 +07:00
Vadim Yanitskiy 73c644a2f3 sedbgmux-dump.py: add option to show only ConnData messages 2023-01-27 04:14:45 +07:00
Vadim Yanitskiy 8c44290e7c sedbgmux-dump.py: parse: hierarchical output formatting 2023-01-27 04:14:45 +07:00
Vadim Yanitskiy 61302bf5ee DumpIONative: use Default instead of Rebuild in DumpRecord 2023-01-27 04:14:45 +07:00
Vadim Yanitskiy 66580927bf DbgMuxPingPong: make logging messages consistent
[INFO] ping_pong.py:38 Tx Ping with payload 'Knock, knock!'
[INFO] ping_pong.py:51 Rx Pong with payload 'Knock, knock!'
2023-01-27 04:14:45 +07:00
Vadim Yanitskiy e9c6a37b94 DbgMuxFrame: use HexDump decorator in MsgConnData 2023-01-27 04:14:45 +07:00
Vadim Yanitskiy 8d276bd9dc DbgMuxFrame: use Hex decorator for DPRef and ConnRef fields 2023-01-27 04:14:45 +07:00
Vadim Yanitskiy 507ee24424 DbgMuxFrame: use Struct in definition of MsgPingPong
... for consistency with the other message definitions.
2023-01-27 02:13:41 +07:00
Vadim Yanitskiy 02c499e2a1 samples: add a PCAP with Tvp frames (TEMS Investigation)
This is basically a recording of the communication between a Sony
Ericsson K800i (TEMS firmware) and TEMS Investigation, which can
be analyzed using the sedbgmux-dump.py.

TEMS Investigation is a mobile network testing solution, which supports
a variety of mobile equipment, including some [Sony] Ericsson devices.
It does use a special protocol for obtaining the necessary traces,
which is exposed as a DebugMux Data Provider with name 'Tvp'.

The TVP (Test and Verification Platform) is a proprietary Ericsson's
framework for debugging and testing of their products.  There is
nearly no information about this framework on the internet.

Let's see what we can learn about it from this packet capture.
2023-01-26 07:07:56 +07:00
Vadim Yanitskiy 6d88d94ebe sedbgmux-dump.py: support parsing PCAPs with BT RFCOMM packets
One of the approaches for sniffing serial port communication on Windows
is using USBPcap, an open-source USB sniffer.  When using Bluetooth as
the transport for DebugMux, the resulting PCAP contains RFCOMM frames,
which can later be analyzed using Wireshark.

This patch adds a new read-only DumpIO interface for sedbgmux-dump.py,
which allows one to parse and convert PCAPs containing DebugMux frames
encapsulated into BT RFCOMM packets.

PCAP parsing is easy thanks to pyshark [1] (new dependency).

[1] https://github.com/KimiNewt/pyshark
2023-01-26 06:40:46 +07:00
Vadim Yanitskiy 877015cf57 sedbgmux-dump.py: allow limiting number of records to parse/convert 2023-01-26 05:37:25 +07:00
Vadim Yanitskiy 168ace9da5 sedbgmux-dump.py: calculate FCS, abort parsing on mismatch 2023-01-26 05:37:04 +07:00
Vadim Yanitskiy de939b373a SEDbgMuxApp: tab-completion for DPRef and ConnRef values 2023-01-22 23:53:17 +06:00
Vadim Yanitskiy 97f3de3564 DbgMuxClient: client role implementation 2023-01-22 23:20:02 +06:00
Vadim Yanitskiy afed084c77 DbgMuxConnHandler: proper handling of the FlowControl message
A FlowControl message basically indicates how many data blocks the
remote side is able to receive from us.  Whenever the block limit is
reached, we should queue outgoing data blocks until the remote side
has given us a new quote by sending another FlowControl message.
2023-01-22 22:36:36 +06:00
Vadim Yanitskiy fa71a8a40d DbgMuxConnHandler: implement DbgMuxConnFileLogger 2023-01-22 22:36:34 +06:00
Vadim Yanitskiy 27f6cf8f31 DbgMuxConnHandler: implement DbgMuxConnTerminal 2023-01-22 22:36:20 +06:00
Vadim Yanitskiy 23dec6fac7 DbgMuxConnHandler: implement DbgMuxConnUdpProxy 2023-01-22 22:36:08 +06:00
Vadim Yanitskiy 23b560197f DbgMuxConnHandler: new abstract class for connection handlers 2023-01-22 22:34:42 +06:00
Vadim Yanitskiy 2b0342d29b DbgMuxPeer: spawn two threads for handling Rx/Tx messages 2023-01-18 01:44:38 +06:00
Vadim Yanitskiy cf22e4a697 sedbgmux-shell.py: print all logging messages with CR
Let the logging messages overwrite the cmd2 prompt!
2023-01-18 01:44:35 +06:00
Vadim Yanitskiy 55665460b8 sedbgmux-shell.py: enable cmd2.debug if -v is passed 2023-01-17 03:15:28 +06:00
Vadim Yanitskiy 1269ebc098 sedbgmux-shell.py: do not employ ArgumentDefaultsHelpFormatter 2023-01-17 02:53:23 +06:00
Vadim Yanitskiy efaaaa1a7d sedbgmux-shell.py: cosmetic: use lowercase in help strings 2023-01-17 02:29:53 +06:00
Vadim Yanitskiy 2557e130f6 sedbgmux-shell.py: remove unneeded import of enum 2023-01-17 02:22:11 +06:00
Vadim Yanitskiy b8b4f4838d DbgMuxPeer: fix recv(): Ack shall not increment Nr counter
I was aware that sending an Ack shall not increment the Ns counter,
but somehow didn't take into account that the Nr counter shall not
be incremented on receipt of an Ack either.
2023-01-16 22:12:03 +06:00
Vadim Yanitskiy 7eb8444912 sedbgmux-shell.py: add -v/--verbose for debug logging 2023-01-16 22:10:34 +06:00
Vadim Yanitskiy d0ba77eb00 Add dump samples for F3607gw, F5521gw, and SE K800i 2023-01-16 13:53:53 +06:00
Vadim Yanitskiy e0538ea1c3 sedbgmux-dump.py: automatic dump format detection 2023-01-16 13:53:53 +06:00
Vadim Yanitskiy a378018178 sedbgmux-dump.py: add support for parsing socat hexdumps 2023-01-16 13:53:53 +06:00
Vadim Yanitskiy 4c8c1a1734 sedbgmux-dump.py: new tool for managing DebugMux dumps 2023-01-16 13:53:53 +06:00
Vadim Yanitskiy 56b0ad8e6e Implement optional dumping of DebugMux frames to file 2023-01-16 13:53:25 +06:00