hcidump(1)

✨ hcidump β€” parse HCI data πŸ’™πŸ¦‹

okay bestie, so this is the manual page for hcidump(1) β€” section 1, the Linux System Administration corner of the manual, iykyk. If you've got a Bluetooth device yapping away and you wanna actually see what it's saying, this is your girl. Let's get into it.


🌸 SYNOPSIS 🌸

hcidump -h

hcidump [OPTIONS ...] [FILTERS]

That's it. Two ways in: ask for help, or dive all the way in. Main character energy either way.


πŸ’– DESCRIPTION πŸ’–

So like β€” hcidump(1) reads raw HCI data coming from and going to a Bluetooth device, and prints the commands, events and data to your screen in a form that's actually human-readable. Not me being obsessed with a hex dump, but here we are.

Which device, you ask? Well, you can specify it with the option -i, and if you don't, the default is the first available one. Cute.

And here's the fun part: the dump doesn't have to be parsed right away. You can optionally write the dump to a file instead of parsing it, and then parse that dump file in a subsequent moment. Delayed gratification, periodt. πŸŽ€


✨ OPTIONS ✨

  • -i <hciX> β€” reads data from hciX, which has got to be the name of an installed Bluetooth device, no exceptions. If you don't specify it, and if the -r option isn't set either, the data gets read from the first available Bluetooth device. 🫢
  • -l <len>, --snap-len=<len> β€” sets the max length of processed packets to len. Snip snip. βœ‚οΈ
  • -p <psm>, --psm=<psm> β€” sets the default Protocol Service Multiplexer to psm.
  • -m <compid>, --manufacturer=<compid> β€” sets the default company id for manufacturer to compid. Gotta know who made it. πŸ‘‘
  • -w <file>, --save-dump=<file> β€” the parse output is not printed to the screen; instead, the data read from the device is saved in file. Then you can come back and parse that saved dump file later with option -r. Save it for later bestie πŸ’Ύ
  • -r <file>, --read-dump=<file> β€” the data isn't read from a Bluetooth device at all, it's read from file. And file is created with option -t, --timestamp β€” which prepends a time stamp to every packet. πŸ•°οΈ
  • -a, --ascii β€” for every packet, not only is the packet type displayed, but also all the data in ASCII.
  • -x, --hex β€” for every packet, not only is the packet type displayed, but also all the data in hex.
  • -X, --ext β€” for every packet, not only is the packet type displayed, but also all the data in hex and ASCII. Why choose one when you can have both πŸ’…
  • -R, --raw β€” for every packet, only the raw data is displayed. Minimalism. It's giving clean girl aesthetic.
  • -C <psm>, --cmtp=<psm> β€” sets the PSM value for the CAPI Message Transport Protocol.
  • -H <psm>, --hcrp=<psm> β€” sets the PSM value for the Hardcopy Control Channel.
  • -O <channel>, --obex=<channel> β€” sets the RFCOMM channel value for the Object Exchange Protocol.
  • -P <channel>, --ppp=<channel> β€” sets the RFCOMM channel value for the Point-to-Point Protocol.
  • -D <file>, --pppdump=<file> β€” extracts PPP traffic with pppdump format. πŸ“
  • -A <file>, --audio=<file> β€” extracts SCO audio data. 🎧
  • -Y, --novendor β€” don't display any vendor commands or events, and don't show any pin code or link key in plain text. Privacy girlie 🌈
ngl this one matters β€” the plain-text pin code / link key thing is a real security vibe check, so keep it on when you're sharing dumps with anyone.
  • -h β€” prints usage info and exits. The classic. The icon. πŸ™ˆ

🧚 FILTERS 🧚

a filter is a space-separated list of packet categories. The available categories are:

lmp, hci, sco, l2cap, rfcomm, sdp, bnep, cmtp, hidp, hcrp, avdtp, avctp, obex, capi and ppp.

If you use filters, then only the packets belonging to the specified categories get dumped. And by default? All packets are dumped. Everything, everywhere, all at once. πŸ”₯


πŸ”— RESOURCES πŸ”—

<http://www.bluez.org>


πŸ’€ REPORTING BUGS πŸ’€

<linux-bluetooth@vger.kernel.org>

Found something cursed? Tell the nice people at that address, not me. 😭


πŸ‘‘ AUTHOR πŸ‘‘

Maxim Krasnyansky <maxk@qualcomm.com>, Marcel Holtmann <marcel@holtmann.org>, Fabrizio Gennari <fabrizio.gennari@philips.com>

Legends, fr fr.


Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL).


okay that's the whole page bestie, you're officially fluent in hcidump ✨ slay

this has been the BlueZ hcidump(1) manual page, dated Nov 12, 2002 β€” yes she's vintage, yes she still ate πŸ’…πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from