P1sec / pycrate

A Python library to ease the development of encoders and decoders for various protocols and file formats; contains ASN.1 and CSN.1 compilers.
GNU Lesser General Public License v2.1
381 stars 132 forks source link

pycrate_osmo: add Sony Ericsson DebugMux frame definition #169

Closed axilirator closed 2 years ago

axilirator commented 2 years ago

DebugMux is a vendor specific interface exposed by nearly all old Sony Ericsson phones and modems. Similar to the Qualcomm's Diag interface, DebugMux can be used to obtain logging messages from different sub-systems, including the baseband.

Unfortunately, Sony Ericsson never published any documentation describing the protocol. All information was obtained by analyzing serial port traces and reverse-engineering DebugMuxSrv.exe.

p1-bmu commented 2 years ago

Excellent, looks fine. Would you have 2 or 3 protocol traces to add to the testsuite ?

axilirator commented 2 years ago

Excellent, looks fine. Would you have 2 or 3 protocol traces to add to the testsuite ?

Thank you for motivating me to add a testsuite! I found and fixed a bug in self['msg_data'].set_blauto(...).

I added some traces in form of a unit test. Let me know if I missed something. Thanks!

P.S. Note that it's not getting executed by test/test_pycrate.py because of the crcmod dependency.

p1-bmu commented 2 years ago

Perfect, thanks for your contribution. Do you know if this debugmux interface is implemented on 2/3/4G baseband from ST-Ericsson (https://en.wikipedia.org/wiki/NovaThor), which can be found in some smartphones from 2013/2014 ?

axilirator commented 2 years ago

Do you know if this debugmux interface is implemented on 2/3/4G baseband from ST-Ericsson (https://en.wikipedia.org/wiki/NovaThor), which can be found in some smartphones from 2013/2014 ?

No idea, sorry. DebugMux is exposed over the modem's serial port and can be activated by sending AT*EDEBUGMUX. If this command is listed in the output of AT*, then most likely DebugMux is present.