scmxx(1)
π scmxx π
okay bestie, gather round, because this is the scmxx(1) manual page from the General Commands Manual section and it is lowkey a whole lifestyle. no cap.
β¨ NAME β¨
scmxx β exchange data with your Siemens mobile phone π«Ά
πΈ SYNOPSIS πΈ
scmxx [--device device] [--baud baudrate] [--quiet] [--verbose]
[--reset] {--info | --set-time | --mem-info | --lock-info | --lock lock
{--enable | --disable} | --set-smsc --number {number | name} }
scmxx [--device device] [--baud baudrate] [--quiet] [--verbose]
[--reset] [--out file] [--pipe pipe] {--remove | --send | --get}
[--binary] [--mem memory] [--slot slot] [file...]
scmxx [--device device] [--baud baudrate] [--quiet] [--verbose]
[--reset] [--out file] [--pipe pipe] [--pin PIN] {--remove | --send |
--get} [--pbook] [--mem memory] [--slot slot] [--text text] [ --number
{number | name} ] [file...]
scmxx [--device device] [--baud baudrate] [--quiet] [--verbose]
[--reset] [--out file] [--pipe pipe] {--remove | --send | --get} [--sms]
[--mem memory] [--slot slot] [--text text] [ --number {number | name} ]
[--direct] [--flash] [--srr] [--unicode] [file...]
scmxx [--help] [--version]
π¦ DESCRIPTION π¦
so SCMxx is the moment where you copy files to and from a Siemens mobile phone, and also delete files that are already chillin' in there. iconic behaviour tbh.
files can be read from a given file or through stdin, and stored to a given file or stdout. and get this β SMS can be sent or received directly, without ever storing them in the phone first. no middleman, main character energy.
SCMxx was tested with several mobile phones manufactured by Siemens β only S25 and later, bestie. the old ones said no π
π OPTIONS π
--device(-d) β point it at a different device than the one compiled in. this overwrites theSCMXX_TTYenvironment variable and the compiled-in value. on linux systems this might be, like,/dev/ttyS0for serial connections,/dev/ircomm0for infrared connections and/dev/rfcomm0for bluetooth connections. if native bluetooth support got compiled in, you can also use the formatbt://[xx:xx:xx:xx:xx:xx]:norbluetooth://[xx:xx:xx:xx:xx:xx]:nto specify a bluetooth addressxx:xx:xx:xx:xx:xxand the bluetooth channeln(default is1). the channel is optional β and if you skip it, omit the colon too, bestie.--baud(-b) β set the device's speed. valid values depend on your system but may be9600,19200,38400,57600or115200. default is19200. the S25 and *35i only work at the19200, while all later phones also work at full serial speed. infrared connections may be an exception to these rules (dependent on the infrared donle). this overwrites theSCMXX_BAUDenvironment variable and the compiled-in value.--out(-o) β specify a file to use. when getting binary files with"all", the slot number, a dot and the filetype get appended. when sending or deleting, this parameter has no use but the last parameters that should be valid files.stdoutmust be explicitly selected with the dash ("-") β by default nothing is written tostdout. there is nothing appended to"-"when getting multiple files.--pipe(-p) β specify a pipe to another program. when getting with"all", every file is piped to this programs on its own (only for--binaryand--sms).--quiet(-q) β decreases verbosity by 1 π€«--pinβ use this option if a PIN code is required for access--verbose(-v) β increases verbosity by 1 π£οΈ--resetβ try to reset the phone so it gets accessible again. sometimes the phone just stops answering on the serial interface, especially with a previous user-interrupted file transfer. this simply blindly sends some special characters. yolo π²--help(-h) β print the help message--versionβ print the version number--remove(-r) β removes an entry from the phone. when specified with--smsand--get, this will get'n'delete. when specified with--smsand--send, this will send'n'delete.--get(-g) β get an entry and save it to a file. when specified with--smsand--remove, this will get'n'delete. when specified with--smsand--send, this will get'n'send.--send(-s) β sends a file to the phone. when sending sms, you might want to take a look at the option--direct, too. when specified with--smsand--remove, this will send'n'delete. when specified with--smsand--get, this will get'n'send.--info(-i) β collect information from the phone.--mem-infocan be used as a trigger to display a more complex listing of the available memories.--mem-infoβ display information about available memories and their slots and other information. it uses the same format as--mem=?(see below) and can also be use as a trigger for--infoto replace the short memory listing.--lock-infoβ display status of locks. it can also be use as a trigger for--infoto replace the lock name listing.--lockβ specify a lock that you can enable or disable. for some locks, a password is needed (see--pin)--enableβ enable e.g. a lock--disableβ disable e.g. a lock--dialβ dial a number (requires--number). the program returns either after 10 seconds or when the call reached the other side. π--hangupβ hangup all currently active calls--set-timeβ synchronize time to phone. the use of tools likentpdateis recommended before using this. β°--set-smscβ set the SMSC number (requires--number)--binary(-N) β select binary file transfer mode--pbook(-P) β select phonebook transfer mode--sms(-S) β select short message service mode--memβ select a memory to access. slot numbers may vary depending on the selected memory. see the output of--infofor the supported memory types. not using this option triggers the default behaviour (if a default behaviour was defined). there is a special string"?"that outputs in the same format as--mem-infobut only for the selected mode.--slotβ select a slot to access. see the output of--mem-infoor--mem=?. not using this option triggers the default behaviour (if a default behaviour was defined). the special string"all"defines the whole range of available slots for the selected memory and mode and, except with--sms, cannot be used with--send. for SMS, there are four additional special strings:"read","unread","sent"and"unsent". the latter two can be used with--send. for phonebook access, there is the additional special string"last". when this option is omitted with--send, scmxx tries to find an empty slot (that may or may not take long). finding an empty slot is not supported for phonebooks, yet. when a slot was specified and also multiple files to upload, the specified slot is the starting point to search for empty slots. overwriting multiple, non-empty slots is not supported, yet, except for the special case"all".--text(-t) β specify content text of short message or text of the phonebook entry. for phonebook entries, the length limit may depend on the selected phonebook (see output of--mem-infoor--mem=?).--number(-n) β specify number to send the short message to or the number for the phonebook entry. note that the number may have a leading'+'for international numbers. it is normally limited to 20 digits (without the'+') which is certainly enough. π―--directβ send/get short messages without storing in the phone. this is not default because you will certainly be charged for it when sending. with direct getting, SMS that are not of type DELIVER are still stored on the phone (scmxx cannot decode those messages, yet).--unicodeβ send the short message and use UCS-2 (16bit unicode) as character set. you do not need to specify this parameter to enable unicode sms decoding.--flashβ set the class0 in the data coding scheme field that is normally interpreted as"immediate display". not all receiving entities support this.
β οΈ bestie listen. a second sms of this type normally overwrites a previous one without asking! its use is not recommended. π
--srrβ this sets the StatusReportRequest bit in the pdutype field of the sms pdu. it depends on the SMSC if this is honored. with some providers, this produces additional costs! πΈ--sortβ sort the messages on printing to chosen output. possible sorting methods are"type","slot"and"type,slot"."type"sorts for the type of the short message with an internal order of unsupported types first, then SMS-SUBMIT, SMS-STATUS-REPORT and SMS-DELIVER."slot"sorts for the slot of the short message."type,slot"does sorting like"type"first and sorts each type like"slot". default is to not sort at all (order depends on phone).--pinβ enable pin usage. use this only if there was an error message that asks for a PIN or PUK. for a PIN, this is the corresponding"<PIN>", for a PUK, it is"<PUK>,<new PIN>". the value is only used once. consider using the pin file (see below) instead of this option.--system-charsetβ define the system character set instead of using the return value fromnl_langinfo(CODESET). this is to work around systems that do not support unicode locales like UTF-8 or when data from a different system with a different locale is used as input. usually, you do not need this option.
π EXAMPLES π
send an bitmap file to the phone as bitmap (logo):
scmxx --send --binary --mem="bmp" --slot=0 myfile.bmp
get a Bitmap from the phone and save it into a new file:
scmxx --get --binary --mem="bmp" --slot=0 --out=myfile.bmp
get all unread (default on get) short messages and output to stdout:
scmxx --get --sms --slot=unread --out=-
scmxx -gS -o-
send a short message directly (not stored in the phone):
scmxx --send --sms --direct --number=123 --text="test"
get a phonebook and store it to a file:
scmxx --get --pbook --mem=SM --out=SM.pb
modify a specific slot (33) in phonebook memory SM:
scmxx -sP --mem=SM --slot=33 --number=123 --text="test"
π NOTES π
okay so bestie, the output of text (phonebook and sms) depends on the character set of your current locale, and input works the same way. The upside is localization β¨ the drawback is that all other characters have to be entered as a sequence \XXXX where X is a hex character (e.g. \20ac for EuroSign). That's a 16bit representative of the unicode value, iykyk.
The \XXXX form is only used for output, with the intention of reading it again later. For normal output, characters that can't be displayed in the current locale get replaced by a '?'. Using an UTF-8 based locale will make sure that all characters can be converted π«Ά
The newline character can be entered using the common \n, and \ must be masked with itself. In bash, this might even result in a needed input like "\\\\" π
π CONNECTION PROBLEMS π
There are additional parameters --ignore-serial-bits (default) and --keep-serial-bits. Use them only when you get no response from the phone at all. Which setting is needed depends on the cable and serial port and cannot be determined automatically.
If you experience timeouts on the first command, try the --start-delay=<seconds> parameter.
Another parameter, --device-timeout=<seconds>, is provided for the case that your phone ever needs more than the default value of 10 seconds to answer. Actually, this should be more than enough but one never knows π The minimum value is 1, values higher than 25 mean "forever".
π SECURITY π
The --pin option should be used with care. The option and its argument are visible in the process list. So like, everybody on the system can see your whole business, no cap π
π ENVIRONMENT π
SCMXX_TTYβ see--devicefor descriptionSCMXX_BAUDβ see--baudfor description
π FILES π
~/.scmxx/cache.pbβ this file serves as lookup file during short message output (for recipient/sender address) and for number aliasing for--numberon sending a short message. The format is the same as a phonebook file (slot numbers don't matter but must be present).~/.scmxx/configβ this file can contain long options (without the--), the argument is separated from the option name by an=. Any amount of spaces at beginning of line, before and after the separator are allowed. A#at beginning of line marks this line as comment. Examples:
#choose a device to access
device = /dev/ttyS0
#always send SMS using UCS-2
unicode
~/.scmxx/pinβ This file is used as an alternative to the--pincommand line option. The file MUST NOT be group readable/writeable or world readable/writeable! It also MUST be a regular file, not a symlink. SCMxx refuses to use the file if this is not the case. If a PUK value is requested by the phone, the corresponding PIN must also be defined. The only necessary format elements are{,=,;and}. Spaces and newlines are ignored. The file has the following format:
sim 262031234567890 {
pin = 1234
puk = 12345678;
pin2 = 4321;
puk2 = 87654321;
}
device 350123456789012 {
type SIM {
pin = 0000;
puk = 0000;
}
}
"sim" sections use the IMSI as identifier, "device" sections use the IMEI as identifier (see output of --info). Since the IMSI is needed, you canNOT switch the phone on with this! π
The "type" sub section in the device section has the following identifiers:
SIMβ device code (theft protection)FSIMβ very first inserted SIMNETβ network personalizationNETSUBβ network subset personalizationSPβ service provider personalizationCORPβ corporate personalization
π AUTHOR π
Hendrik Sattler post@hendrik-sattler.de β iconic, legendary, we stan π«Ά
and that's a wrap bestie! This lil page came from SCMxx, dated 2006-01-30, and it's literally the scmxx(1) manual β go forth and slay those serial bits β¨ππ¦
π¦ where this page comes from
- fedora 43: scmxx 0.9.0-35.fc43 Β· GPL-2.0-or-later
- fedora 44: scmxx 0.9.0-36.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms