命令行接口

你可以用电脑通过命令行接口(CLI)控制 Flipper Zero。CLI 是一种基于文本的接口,你可以通过运行命令,在 Flipper Zero 上读取和模拟信号、运行程序、管理文件等。此外,CLI 还提供了不少功能,例如查看 Flipper Zero 日志、通过 sub-1 GHz 无线电与其他 Flipper Zero 用户通信等等!
本页将介绍如何访问 Flipper Zero CLI、查看可用命令、查看日志,以及通过 sub-1 GHz 无线电与其他 Flipper Zero 用户聊天。
访问 Flipper Zero CLI
访问 Flipper Zero CLI 有三种方法:
方法 1:使用 Flipper Lab
按以下步骤,用 Google Chrome、Microsoft Edge 或其他支持 Web Serial API 的 Chromium 内核浏览器,通过 Flipper Lab 网站访问 CLI:
如果 qFlipper 应用正在运行,请先退出。
用 USB 线把 Flipper Zero 连接到电脑。
在电脑上运行 Google Chrome 或其他 Chromium 内核浏览器。
打开 lab.flipper.net → CLI。

方法 2:使用网页版串口终端
按以下步骤,用 Google Chrome、Microsoft Edge 或其他支持 Web Serial API 的 Chromium 内核浏览器,通过网页版串口终端访问 CLI:
如果 qFlipper 应用正在运行,请先退出。
用 USB 线把 Flipper Zero 连接到电脑。
在电脑上运行 Google Chrome 或其他 Chromium 内核浏览器。
打开网页版串口终端。
把 Baud rate 设置为 230400,然后点击 Connect。

在列表中选择你的 Flipper Zero,然后点击 Connect。
方法 3:使用串口终端
不同操作系统通过串口终端访问 Flipper Zero CLI 的步骤不同。请按下面对应你操作系统的说明操作。
要在 Windows 上通过串口终端访问 Flipper Zero CLI,请执行以下操作:
在电脑上安装 PuTTY 应用。
如果 qFlipper 正在运行,请先退出。
用 USB 线把 Flipper Zero 连接到电脑。
转到 Device Manager → Ports (COM & LPT)。
查看已连接的 Flipper Zero 的 COM 端口号。
如果有多个 COM 端口号,可以拔下再插上 Flipper Zero,看看新增的是哪个端口号。
运行 PuTTY。
在打开的窗口中,把 Connection type 选为 Serial。
在 Serial line 字段中输入 COM 端口号(例如 COM3)。
在 Speed 字段中输入 230400。
点击 Open button。

要退出 PuTTy,关闭应用窗口即可。
可用命令
要在 CLI 中查看可用命令列表,请运行 ? 或 help 命令。

你可以通过以下命令与 Flipper Zero CLI 交互:
命令 | 说明 |
|---|---|
! | info device 命令的别名。 |
? | help 命令的别名。 |
bt | 射频核心(BLE)测试应用:用于工厂测试,可用来查看 BLE HCI 版本。了解更多。 |
crypto | 加密工具:用于安全区密钥配置以及数据加解密。了解更多。 |
date | 显示/设置当前日期和时间。 |
device_info | info device 命令的别名(已废弃)。 |
factory_reset | 将设备恢复出厂设置。microSD 卡上的数据会保留。 |
free | 显示堆内存分配器的信息,可用于应用内存占用的总体分析。 |
free_blocks | 显示堆内存分配器的空闲块及其大小,可用于评估堆碎片化程度。 |
gpio | 可直接控制 GPIO 引脚:设置模式、读写状态。了解更多。 |
help | 显示可用命令列表。 |
i2c | I2C 总线扫描工具:可用于查找总线上的设备。 |
ikey | 读取、模拟和写入 iButton 钥匙。了解更多。 |
info | 显示设备和电源系统的详细信息。了解更多。 |
input | 输入子系统命令行工具:显示输入事件,也可以注入输入事件。了解更多。 |
ir | 读取和发送红外信号。了解更多。 |
js | 运行 JavaScript 文件,并把控制台输出发送到 CLI。了解更多。 |
led | 通知服务测试应用:可控制 LED 和 LCD 背光。了解更多。 |
loader | 应用/脚本加载器:可列举内置应用,也可打开内部或外部(fap)应用。了解更多。 |
log | 系统日志查看器:可查看设备或应用的日志。了解更多。 |
nfc | 读取和模拟 NFC 卡片的数据。了解更多。 |
onewire | 1-Wire 总线扫描应用。它使用与 iButton 相同的引脚,但只扫描 1-Wire 设备。了解更多。 |
power | 关机和重启设备,也可为 GPIO 引脚开启供电。了解更多。 |
rfid | 读取和模拟低频 RFID 卡片的数据。了解更多。 |
start_rpc_session | 启动远程过程调用(RPC)会话,把 CLI 切换到 protobuf 模式。一般情况下你不需要这样做。 |
storage | 提供与设备文件系统交互的命令。了解更多。 |
subghz | Sub-GHz 测试应用:主要用于工厂测试,也包含各种辅助工具。了解更多。 |
sysctl | 系统控制:配置各种系统设置。了解更多。 |
top | 实时列出正在运行的线程及其信息,类似 Linux 上的 top 命令。按 Ctrl+C 退出。 |
update | 固件更新命令行工具:更新和备份设备,以及恢复内部存储。了解更多。 |
uptime | 显示设备自上次重启以来的运行时间。 |
vibro | 开启和关闭振动马达。了解更多。 |
echo | 原样返回收到的字节,供 cli_perf 做性能测试使用。会话关闭或按 Ctrl+C(0x03)时停止。 |
neofetch | 显示系统信息,类似 Linux/*nix 系统上的 neofetch。 |
reload_ext_cmds | 重新加载可用命令列表,以反映 SD 卡上外部命令的变化(新增、删除或更新)。 |
exit | 退出 CLI shell。在二级 shell 中尤其有用。 |
buzzer | 用压电扬声器播放声音。了解更多。 |
通过 CLI 读取 Flipper Zero 日志
你可以按以下步骤通过 CLI 读取 Flipper Zero 的日志:
用 USB-C 线把 Flipper Zero 连接到电脑。
设置你需要的日志级别(默认为 log info 级别),然后开始记录日志。
为此,请运行以下命令之一:
- log:记录非关键信息,包括 warn logs。
- log error:只记录严重错误和其他重要消息。
- log warn:记录非关键错误和警告,包括 error logs。
- log info:记录非关键信息,包括 warn logs。
- log default:系统默认日志级别(等同于 info logs)。
- log debug:记录调试信息,包括 info logs(会影响系统性能)。
- log trace:记录系统跟踪信息,包括 debug logs(会影响系统性能)。
在 CLI 中运行 log ? 命令也可以查看这个列表。
操作 Flipper Zero,即可查看日志。

要停止记录日志,请按 Ctrl+C。
与其他 Flipper Zero 用户聊天
在 CLI 中,你可以通过 sub-1 GHz 无线电与其他 Flipper Zero 用户聊天。要实现这一点,所有设备必须使用相同的频率通信。
所有参与者都需要执行以下操作:
用 USB-C 线把 Flipper Zero 连接到电脑。
运行以下命令,指定频率和天线类型:
其中:
- <frequency_in_hz> 必须在 299999755-348000000、386999938-464000000、778999847-928000000 Hz 范围内。部分频率在你所在地区可能不可用。了解更多。
- <device_0/1> 用于指定通信时使用内置天线(0)还是外接天线(1,如已连接)。
例如:
输入你的消息,然后按 Return。

要退出聊天,请按 Ctrl+C。
深入了解 CLI 命令
bt
命令 | 说明 |
|---|---|
bt hci_info | 显示蓝牙主机控制器接口(HCI)的信息。 |
crypto
该命令可借助安全区中的加密密钥和初始化向量,对明文进行加密和解密。
命令 | 参数 | 说明 |
|---|---|---|
crypto encrypt | <key_slot_int> <iv_hex> | 使用安全区中的密钥和初始化向量,以 AES256CBC 加密明文并编码为十六进制格式。 |
crypto decrypt | <key_slot_int> <iv_hex> | 使用安全区中的密钥和初始化向量,把 AES256CBC 加密后的十六进制文本解密为明文。 |
crypto has_key | <key_slot_int> | 检查安全区的指定槽位中是否有密钥。槽位范围为 1 到 100。 |
crypto store_key | <key_slot_int> <key_type_str> <key_size_int> <key_data_hex> | 不可逆操作!向安全区添加密钥。添加后的密钥无法删除。 |
其中:
- <key_slot_int>:存放加密密钥的安全区槽位号。默认情况下,槽位 1 到 11 存有用于加密的密钥。
- <iv_hex>:由用户生成的 16 字节初始化向量,十六进制格式。
- <key_type_str>:master、simple 或 encrypted。
- <key_size_int>:128 或 256 位。
- <key_data_hex>:十六进制格式的密钥数据。
gpio
命令 | 参数 | 说明 |
|---|---|---|
gpio mode | <pin_name> <0/1> | 把指定的 GPIO 引脚设置为输入(0)或输出(1)模式。 |
gpio set | <pin_name> <0/1> | 设置 GPIO 引脚的电平值。 |
gpio read | <pin_name> | 读取 GPIO 引脚的电平值。 |
其中:
- <pin_name>:PA7、PA6、PA4、PB3、PB2、PC3、PC1、PC0。
ikey
命令 | 参数 | 说明 |
|---|---|---|
ikey read | | 读取 iButton 钥匙。 |
ikey emulate | <key_type> <key_data> | 模拟输入的数据。 |
ikey write Dallas | <key_data> | 向 Dallas iButton 钥匙写入 8 字节的十六进制数据。 |
其中:
<key_type> | <key_data> 十六进制数据,长度如下 |
|---|---|
Dallas | 8 字节 |
Cyfral | 2 字节 |
Metakom | 4 字节 |
info
命令 | 说明 |
|---|---|
info device | 显示设备信息。 |
info power | 显示电源系统信息。 |
info power_debug | 显示电源系统的详细信息。 |
input
命令 | 参数 | 说明 |
|---|---|---|
input dump | | 显示按下的按键。 |
input send | <key> <type> | 模拟一次按键操作。 |
其中:
- <key>:up、down、left、right、back、ok。
- <type>:press、release、short、long。
要模拟短按某个按键,请依次运行以下命令:
- input send <key> press
- input send <key> short
- input send <key> release
要模拟长按某个按键,请依次运行以下命令:
- input send <key> press
- input send <key> long
- input send <key> release
否则该输入会被丢弃。
ir
命令 | 参数 | 说明 |
|---|---|---|
ir rx | | 读取并解码红外(IR)遥控器的数据。 |
ir rx raw | | 以 RAW 格式读取红外遥控器的数据。 |
ir tx | <protocol> <address> <command> | 发送输入的红外命令。 |
ir tx raw | F: <frequency> DC: <duty_cycle> <samples> | 发送 RAW 红外数据,最多 512 个采样点。 |
ir decode | <input_file> <output_file> | 解码含 RAW 数据的文件。 |
ir universal list | <remote_name> | 显示指定遥控器的命令列表。 |
ir universal | <remote_name> <signal_name> | 发送指定遥控器中的命令。 |
其中:
- <protocol>:NEC、NECext、NEC42、NEC42ext、Samsung32、RC6、RC5、RC5X、SIRC、SIRC15、SIRC20、Kaseikyo、RCA。
- <address> 和 <command> 必须为十六进制格式。
- <frequency>:10000-56000。
- <duty_cycle>:0-100。
- <remote_name>:tv、audio、ac、projector。
js
命令 | 参数 | 说明 |
|---|---|---|
js | <path> | 运行选定的 JavaScript 文件,并把控制台输出发送到 CLI。 |
led
led 命令可以通过调节红、绿、蓝三个颜色分量的亮度(取值 0 到 255)来设置状态 LED 的颜色。例如,要把 LED 设为 100% 红色,你需要依次输入三条命令:led r 255、led g 0,然后是 led b 0。
你也可以用这条命令设置常亮背光的亮度。例如,led bl 128 命令会把背光亮度设为 50%。
命令 | 参数 | 说明 |
|---|---|---|
led r | <0-255> | 设置红色分量的亮度。 |
led g | <0-255> | 设置绿色分量的亮度。 |
led b | <0-255> | 设置蓝色分量的亮度。 |
led bl | <0-255> | 打开屏幕背光并设置其亮度。 |
loader
命令 | 参数 | 说明 |
|---|---|---|
loader list | | 列出可用的应用。 |
loader open | <application_name_string> | 运行指定的应用。 |
loader info | | 显示加载器的状态。 |
loader close | | 关闭正在运行的应用。 |
loader signal | <signal_number> <arg_hex> | 发送信号,可附带一个十六进制参数。 |
log
命令 | 说明 |
|---|---|
log | 以当前日志级别开始记录日志。 |
log error | 只记录严重错误和其他重要消息。 |
log warn | 记录非关键错误和警告,包括 error logs。 |
log info | 记录非关键信息,包括 warn logs。 |
log default | 系统默认日志级别(等同于 info logs)。 |
log debug | 记录调试信息,包括 info logs(会影响系统性能)。 |
log trace | 记录系统跟踪信息,包括 debug logs(会影响系统性能)。 |
要停止记录日志,请按 Ctrl+C。
nfc
nfc 命令会打开一个独立的 shell,所有命令都在该 shell 中运行。要查看全部可用命令,请输入 help 或 ?。要在 CLI 中查看详细说明,请输入 <command> -h。要退出该 shell,请输入 exit。
dump
命令 | 参数 | 说明 |
|---|---|---|
dump | -f <path> | 把实体卡片的数据转储为 .nfc 文件。可选参数:-k <key>、-p <protocol>、-t <timeout>。 |
其中:
- <path>:文件路径。
- <protocol>:指定扫描使用的 NFC 协议,覆盖自动检测。可用参数:
- 14_3a:ISO 14443-3A
- 14_3b:ISO 14443-3B
- 14_4a:ISO 14443-4A
- 14_4b:ISO 14443-4B
- 15:ISO 15693-3
- felica:FeliCa™
- mfu:MIFARE Ultralight®
- mfc:MIFARE Classic®
- mfp:MIFARE Plus®
- des:MIFARE DESFire®
- slix:ICODE® SLIX
- st25:ST25TB
- <key>:十六进制格式的认证密钥。
- <timeout>:轮询超时时间,单位为毫秒。
raw
命令 | 参数 | 说明 |
|---|---|---|
raw | -p <protocol> -d <data> | 使用不同协议发送原始字节。可与必需参数组合使用的可选参数:-t <timeout>、-k、-c、-s。 |
其中:
- <protocol>:指定要使用的 NFC 协议。可用参数:
- 14a 或 iso14a:ISO 14443-3A
- 14b 或 iso14b:ISO 14443-3B
- 15:ISO 15693-3
- felica:FeliCa
- <data>:要发送的原始字节,十六进制格式。
- <timeout>:以载波频率周期数表示的超时时间,即等待响应的时长。
- -k:加上该参数可在收到响应后保持信号场开启。
- -c:加上该参数可在发送前计算 CRC 并附加到待发送数据后。
- -s:加上该参数可在发送原始数据前执行初始激活/防冲突流程。
mfu
命令 | 参数 | 说明 |
|---|---|---|
mfu info | | 输出 MIFARE Ultralight 标签的基本信息。 |
mfu rdbl | -b <block_number> | 从 MIFARE Ultralight 标签读取指定数据块。 |
mfu wrbl | -b <block_number> -d <data> | 向 MIFARE Ultralight 标签的指定数据块写入数据。 |
其中:
- <block_number>:要读取或写入的块号,十进制。
- <data>:要写入的 4 字节十六进制字符串。
Other
命令 | 参数 | 说明 |
|---|---|---|
field | | 开启高频 NFC 场。按 Ctrl+C 可中止命令执行。 |
emulate | -f <path> | 模拟 .nfc 文件的内容。 |
scanner | | 识别标签支持的所有通信协议并列出其名称。可选参数:-t <tree>。按 Ctrl+C 可中止命令执行。 |
apdu | -d <data> | 向 ISO14443-4A、ISO 14443-4B 和 ISO15693-3 标签发送 APDU 数据。可选参数:-p <protocol>。 |
其中:
- <path>:文件路径。
- <tree>:加上该参数可显示每个检测到的协议的层级结构。
- <protocol>:指定协议,否则自动检测。可用参数:
- 4a:ISO 14443-4A
- 4b:ISO 14443-4B
- 15:ISO 15693-3
- <data>:以十六进制字符串表示的 APDU 载荷。支持多个载荷,它们会依次发送:apdu -d <data_1> <data_2>。
onewire
命令 | 说明 |
|---|---|
onewire search | 搜索 1-Wire 设备。 |
power
命令 | 参数 | 说明 |
|---|---|---|
power off | | 关闭设备。 |
power reboot | | 重启设备。 |
power reboot2dfu | | 把设备重启到 DFU 模式。 |
power 5v | <1/0> | 开启(1)或关闭(0)GPIO 引脚 1 的 5 V 供电。 |
power 3v3 | <1/0> | 开启(1)或关闭(0)GPIO 引脚 9 的 3.3 V 供电。仅在 Debug 模式下可用。 |
rfid
命令 | 参数 | 说明 |
|---|---|---|
rfid read | | 以 ASK 和 PSK 模式读取 RFID 卡片的数据。 |
rfid write | <key_type> <key_data> | 写入输入的数据。 |
rfid emulate | <key_type> <key_data> | 模拟输入的数据。 |
rfid raw_read | <ask/psk> <filename> | 以 RAW 格式读取卡片数据并保存到文件。 |
rfid raw_emulate | <filename> | 模拟文件中保存的 RAW 数据,便于调试协议。 |
rfid raw_analyze | <filename> | 把文件中的 RAW 数据输出到 CLI 并尝试解码,便于协议开发。 |
其中:
<key_type> | <key_data> 十六进制格式,长度如下 |
|---|---|
EM4100 | 5 字节 |
EM4100/32 | 5 字节 |
EM4100/16 | 5 字节 |
Electra | 8 字节 |
H10301 | 3 字节 |
Idteck | 8 字节 |
Indala26 | 4 字节 |
IoProxXSF | 4 字节 |
AWID | 9 字节 |
FDX-A | 5 字节 |
FDX-B | 11 字节 |
HIDProx | 6 字节 |
HIDExt | 12 字节 |
Pyramid | 4 字节 |
Viking | 4 字节 |
Jablotron | 5 字节 |
Paradox | 6 字节 |
PAC/Stanley | 4 字节 |
Keri | 4 字节 |
Gallagher | 8 字节 |
Nexwatch | 8 字节 |
Radio Key | 6 字节 |
GProxII | 12 字节 |
Noralsy | 12 字节 |
storage
路径必须以 /int 或 /ext 开头。
命令 | 路径 | 参数 | 说明 |
|---|---|---|---|
storage info | </ext> | | 获取文件系统的总体信息。 |
storage format | </ext> | | 格式化 microSD 卡上的文件系统。 |
storage list | </ext/path_to_directory> | | 列出文件和目录。 |
storage tree | </ext/path_to_directory> | | 列出所有文件和目录。 |
storage remove | </ext/path_to_directory> | | 删除文件或目录。目录必须为空。 |
storage read | </ext/path_to_file> | | 读取文件中的文本,并把文件大小和内容输出到 CLI。 |
storage read_chunks | </ext/path_to_file> | <1-512> | 按块读取文件数据,并把文件大小和内容输出到 CLI,<1-512> 表示每块读取多少字节。 |
storage write | </ext/path_to_file> | <text> | 从 CLI 读取文本并追加到文件中。按 Ctrl+C 停止。 |
storage write_chunk | </ext/path_to_file> | <1-512> | 从 CLI 读取数据并追加到文件中,<1-512> 表示要写入多少字节。输入的数据不会显示在 CLI 中。输入达到设定字节数后命令即结束。 |
storage copy | </ext/path_to_source_file> </ext/path_to_destination_file> | | 把文件复制为一个新文件。 |
storage rename | </ext/path_to_file> </ext/path_to_directory> | | 重命名文件或目录,也可把文件以新名称移动到新目录。 |
storage mkdir | </ext/path_to_directory> | | 创建新目录。 |
storage md5 | </ext/path_to_file> | | 显示文件的 MD5 哈希值。 |
storage stat | </ext/path_to_file> | | 显示文件或目录的信息。 |
storage timestamp | </ext/path_to_file> | | 显示最后修改时间戳。 |
storage extract | </ext/path_to_archive> ``</ext/path_to_directory> | | 把 .tar 归档文件解压到目录中。 |
subghz
命令 | 参数 | 说明 |
|---|---|---|
subghz chat | <frequency_in_hz> <device_0/1> | 开启与其他 Flipper Zero 用户的聊天。 |
subghz tx | <3-byte_key_hex> <frequency_in_hz> <te_in_us> <repeat_count> <device_0/1> | 发送一个密钥。 |
subghz rx | <frequency_in_hz> <device_0/1> | 开启信号接收。 |
subghz rx_raw | <frequency_in_hz> | 以 RAW 格式开启信号接收。 |
subghz decode_raw | </ext/path_to_raw_file> | 解码含 RAW 数据的文件并显示结果。 |
subghz tx_from_file | <path_to_file> <repeat_count> <device_0/1> | 从文件发送数据。 |
以下命令只能在 Debug 模式下使用:
命令 | 参数 | 说明 |
|---|---|---|
subghz tx_carrier | <frequency_in_hz> | 发射载波频率。 |
subghz rx_carrier | <frequency_in_hz> | 接收载波频率。 |
subghz encrypt_keeloq | <path_decrypted_file> <path_encrypted_file> <iv_16_bytes_hex> | 加密 Keeloq 厂商密钥。 |
subghz encrypt_raw | <path_decrypted_file> <path_encrypted_file> <iv_16_bytes_hex> | 加密 RAW 数据。 |
其中:
- <frequency_in_hz>:299999755-348000000、386999938-464000000、778999847-928000000 Hz 范围内的某个值。部分频率在你所在地区可能不可用。了解更多。
- <device_0/1>:0 表示搭载 CC1101 收发器的内置 sub-1 GHz 天线,1 表示搭载 CC1101 收发器的外接 sub-1 GHz 天线。
- <te_in_us>:量化间隔,单位为微秒。
- <iv_16_bytes_hex>:由用户生成的 16 字节初始化向量,十六进制格式。
sysctl
命令 | 参数 | 说明 |
|---|---|---|
sysctl debug | <0/1> | 开启(1)或关闭(0)系统调试。 |
sysctl heap_track | <none/main> | 开启(main)或关闭(none)堆分配跟踪模式。 |
update
命令 | 参数 | 说明 |
|---|---|---|
update install | </ext/path_to_update.fuf> | 校验并安装更新包。 |
update backup | </ext/path_to_backup.tar> | 创建内部存储备份。 |
update restore | </ext/path_to_backup.tar> | 从内部存储备份中恢复。 |
vibro
命令 | 参数 | 说明 |
|---|---|---|
vibro | <1/0> | 开启(1)或关闭(0)振动马达。 |
buzzer
命令 | 参数 | 说明 |
|---|---|---|
buzzer freq | <frequency_in_hz> <duration> | 以设定的频率播放声音。 |
buzzer note | <note> <duration> | 播放设定的音符。 |
其中:
- <frequency_in_hz>:频率,单位为 Hz。
- <note>:音符。字母 s 表示升号(#);例如 c#3 写作 cs3。不支持降号(♭)。
- <duration>:时长,单位可以是毫秒(ms)、秒(s)、分钟(m)或小时(h)。例如:buzzer note cs3 500ms。
MIFARE、MIFARE Ultralight、MIFARE Classic、DESFire 和 ICODE 是 NXP B.V. 的注册商标。
FeliCa 是 Sony Corporation 的商标。
