---
title: 命令行接口
slug: zero/zh/development/cli
description: 了解如何访问 Flipper Zero CLI、查看可用命令、查看日志，以及通过 sub-1 GHz 无线电与其他 Flipper Zero 用户聊天
image: https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/rGSwsRtUveNKrAks0GKAR_command-line-interface-zh.png
docTags: 
createdAt: 2023-11-10T14:38:25.000Z
---

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/v1AJOPzaYq0t4tUWUjK8V_subghz-chat-zh.png)

你可以用电脑通过命令行接口（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：

::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 应用正在运行，请先退出。
:::

:::WorkflowBlockItem
用 USB 线把 Flipper Zero 连接到电脑。
:::

:::WorkflowBlockItem
在电脑上运行 **Google Chrome** 或其他 Chromium 内核浏览器。
:::

:::WorkflowBlockItem
打开 [lab.flipper.net](https://lab.flipper.net/)**&#x20;→ CLI**。
:::
::::

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/jryG6PYYvxxujGlqKIXO2_flipper-lab-main-page.jpg)

## 方法 2：使用网页版串口终端

按以下步骤，用 Google Chrome、Microsoft Edge 或其他支持 Web Serial API 的 Chromium 内核浏览器，通过网页版串口终端访问 CLI：

::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 应用正在运行，请先退出。
:::

:::WorkflowBlockItem
用 USB 线把 Flipper Zero 连接到电脑。
:::

:::WorkflowBlockItem
在电脑上运行 **Google Chrome** 或其他 Chromium 内核浏览器。
:::

:::WorkflowBlockItem
打开[网页版串口终端](https://googlechromelabs.github.io/serial-terminal/)。
:::

:::WorkflowBlockItem
把 **Baud rate** 设置为 **230400**，然后点击 **Connect**。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/FiXIE3gGAsFS0zFs9xNJi_google-lab-cli.jpg)
:::

:::WorkflowBlockItem
在列表中选择你的 Flipper Zero，然后点击 **Connect**。
:::
::::

## 方法 3：使用串口终端

不同操作系统通过串口终端访问 Flipper Zero CLI 的步骤不同。请按下面对应你操作系统的说明操作。

:::::::::Tabs
::::::::Tab{title="%mac%macOS"}
要在 macOS 上通过串口终端访问 Flipper Zero CLI，你需要先按以下步骤找到 Flipper Zero 所连接的串口：

:::::WorkflowBlock
:::WorkflowBlockItem
把 Flipper Zero 连接到电脑。
:::

::::WorkflowBlockItem
在电脑上打开“终端”，运行以下命令：

:::BlockQuote
ls /dev/cu.\*
:::
::::

:::WorkflowBlockItem
找到已连接的 Flipper Zero 的名称。它应该是 `/dev/cu.usbmodemflip_NAME`，其中 `NAME` 是你设备的唯一名称。
:::
:::::



知道已连接 Flipper Zero 的名称后，你可以用 **screen** 终端复用器或 **minicom** 通信程序访问 CLI：

:::::::VerticalSplit{layout="middle"}
::::::VerticalSplitItem
**Screen**

:::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 正在运行，请先退出。
:::

:::WorkflowBlockItem
确认 Flipper Zero 已连接到电脑。
:::

::::WorkflowBlockItem
在“终端”中运行以下命令：

:::BlockQuote
screen /dev/cu.usbmodemflip\_NAME
:::

别忘了把 `NAME` 替换成你先前找到的设备名称。
::::
:::::

要退出 **screen**，请依次按 **control+A**、**K**、**Y**。
::::::

::::::VerticalSplitItem
**Minicom**

如果你的电脑上没有 minicom 程序，可以通过 Homebrew 安装：

:::::WorkflowBlock
::::WorkflowBlockItem
如果你还没有安装 Homebrew，请在“终端”中运行以下命令[安装 Homebrew](https://brew.sh/)：

:::BlockQuote
/bin/bash -c "$(curl -fsSL https\://raw\.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
:::
::::

::::WorkflowBlockItem
安装完成后，运行以下命令来安装 minicom：

:::BlockQuote
brew install minicom
:::
::::
:::::



在电脑上装好 minicom 程序之后，你就可以按以下步骤访问 CLI 了：

:::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 正在运行，请先退出。
:::

:::WorkflowBlockItem
确认 Flipper Zero 已连接到电脑。
:::

::::WorkflowBlockItem
在“终端”中运行以下命令：

:::BlockQuote
minicom -D /dev/cu.usbmodemflip\_NAME
:::

别忘了把 `NAME` 替换成你先前找到的设备名称。
::::
:::::

要退出 **minicom**，请依次按 **esc+Z**、**X**、**Return**。
::::::
:::::::
::::::::

::::::::Tab{title="%linux%Linux"}
要在 Linux 上通过串口终端访问 Flipper Zero CLI，你需要先按以下步骤找到 Flipper Zero 所连接的串口：

:::::WorkflowBlock
:::WorkflowBlockItem
把 Flipper Zero 连接到电脑。
:::

::::WorkflowBlockItem
在电脑上打开终端，运行以下命令：

:::BlockQuote
ls /dev/serial/by-id/
:::
::::

:::WorkflowBlockItem
找到端口名称。它应该是 `/dev/serial/by-id/usb-Flipper_Devices_Inc._Flipper_<NAME>_flip_<NAME>-if00`，其中 `NAME` 是你设备的唯一名称。
:::
:::::



知道端口名称后，你可以用 **screen** 命令或 **minicom** 通信程序访问 CLI：

:::::::VerticalSplit{layout="middle"}
::::::VerticalSplitItem
**Screen**

:::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 正在运行，请先退出。
:::

:::WorkflowBlockItem
确认 Flipper Zero 已连接到电脑。
:::

::::WorkflowBlockItem
在终端中运行以下命令：

:::BlockQuote
screen /dev/serial/by-id/usb-Flipper\_Devices\_Inc.\_Flipper\_\<NAME>\_flip\_\<NAME>-if00
:::

别忘了把 `NAME` 替换成你先前找到的设备名称。
::::
:::::

要退出 **screen**，请依次按 **Ctrl+A**、**K**、**Y**。
::::::

::::::VerticalSplitItem
**Minicom**

如果你的电脑上没有 minicom 程序，请用你所用发行版的包管理器安装。

在电脑上装好 minicom 程序之后，你就可以按以下步骤访问 CLI 了：

:::::WorkflowBlock
:::WorkflowBlockItem
如果 **qFlipper** 正在运行，请先退出。
:::

:::WorkflowBlockItem
确认 Flipper Zero 已连接到电脑。
:::

::::WorkflowBlockItem
在终端中运行以下命令：

:::BlockQuote
minicom -D /dev/serial/by-id/usb-Flipper\_Devices\_Inc.\_Flipper\_\<NAME>\_flip\_\<NAME>-if00
:::

别忘了把 `NAME` 替换成你先前找到的设备名称。
::::
:::::

要退出 **minicom**，请依次按 **Ctrl+A**、**X**、**Return**。
::::::
:::::::

如果上述步骤不起作用，你可以尝试用 `/dev/tty*` 命令查找端口名称。如果 Flipper Zero 是唯一连接到串口的设备，它应该显示为 `/dev/ttyACM0`。不过，如果还连接了其他串行设备，你可以在 qFlipper 应用中设备名称旁边找到 Flipper Zero 的串口名称。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/ldFHDISHFK2-WbpnrAyTA_serial-port-name.jpg "在 qFlipper 中，你可以找到 Flipper Zero 所连接串口的名称")

找到串口名称后，你就可以用 **screen** 命令或 **minicom** 通信程序访问 CLI 了。
::::::::

:::::Tab{title="%windows%Windows"}
要在 Windows 上通过串口终端访问 Flipper Zero CLI，请执行以下操作：

::::WorkflowBlock
:::WorkflowBlockItem
在电脑上[安装 PuTTY 应用](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)。
:::

:::WorkflowBlockItem
如果 **qFlipper** 正在运行，请先退出。
:::

:::WorkflowBlockItem
用 USB 线把 Flipper Zero 连接到电脑。
:::

:::WorkflowBlockItem
转到 **Device Manager → Ports (COM & LPT)**。
:::

:::WorkflowBlockItem
查看已连接的 Flipper Zero 的 COM 端口号。

如果有多个 COM 端口号，可以拔下再插上 Flipper Zero，看看新增的是哪个端口号。
:::

:::WorkflowBlockItem
运行 **PuTTY**。
:::

:::WorkflowBlockItem
在打开的窗口中，把 **Connection type** 选为 **Serial**。
:::

:::WorkflowBlockItem
在 **Serial line** 字段中输入 COM 端口号（例如 COM3）。
:::

:::WorkflowBlockItem
在 **Speed** 字段中输入 **230400**。
:::

:::WorkflowBlockItem
点击 **Open&#x20;**&#x62;utton。
:::
::::

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/GLryHZopzZPYHqWzPkyFT_cli-access-via-a-serial-terminal-windows.jpg)

要退出 **PuTTy**，关闭应用窗口即可。
:::::
:::::::::

***

# 可用命令

要在 CLI 中查看可用命令列表，请运行 `?` 或 `help` 命令。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/0DSz4iMdAWtKvJah1b9dh_image.png "Flipper Zero 命令行接口")

你可以通过以下命令与 Flipper Zero CLI 交互：

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

***

# 通过 CLI 读取 Flipper Zero 日志

你可以按以下步骤通过 CLI 读取 Flipper Zero 的日志：

::::WorkflowBlock
:::WorkflowBlockItem
用 USB-C 线把 Flipper Zero 连接到电脑。
:::

:::WorkflowBlockItem
[访问 Flipper Zero CLI。](https://docs.flipper.net/zero/zh/development/cli#flipper-zero-cli)
:::

:::WorkflowBlockItem
设置你需要的日志级别（默认为 `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 ?` 命令也可以查看这个列表。
:::

:::WorkflowBlockItem
操作 Flipper Zero，即可查看日志。

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/OoX4AHOGthXpUsyZwRDON_monosnap-miro-2023-11-20-14-15-54.jpg "Flipper Zero CLI 中的 NFC 日志")
:::
::::

要停止记录日志，请按 **Ctrl+C**。

***

# 与其他 Flipper Zero 用户聊天

在 CLI 中，你可以通过 sub-1 GHz 无线电与其他 Flipper Zero 用户聊天。要实现这一点，所有设备必须使用相同的频率通信。

所有参与者都需要执行以下操作：

:::::WorkflowBlock
:::WorkflowBlockItem
用 USB-C 线把 Flipper Zero 连接到电脑。
:::

:::WorkflowBlockItem
[访问 Flipper Zero CLI。](https://docs.flipper.net/zero/zh/development/cli#flipper-zero-cli)
:::

::::WorkflowBlockItem
运行以下命令，指定频率和天线类型：

:::BlockQuote
subghz chat \<frequency\_in\_hz> \<device\_0/1>
:::

其中：

- `<frequency_in_hz>` 必须在 299999755-348000000、386999938-464000000、778999847-928000000 Hz 范围内。部分频率在你所在地区可能不可用。[了解更多](https://docs.flipper.net/zero/zh/sub-ghz/frequencies)。
- `<device_0/1>` 用于指定通信时使用内置天线（0）还是外接天线（1，如已连接）。

例如：

:::BlockQuote
subghz chat 868150000 0
:::
::::

:::WorkflowBlockItem
输入你的消息，然后按 **Return**。
:::
:::::

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/hIHZMiH5Z93LzhZYl_c4v_monosnap-flipper-lab-2023-11-20-15-45-18.jpg "通过 CLI 与其他 Flipper Zero 用户聊天")

要退出聊天，请按 **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>` | **不可逆操作！**&#x5411;安全区添加密钥。添加后的密钥无法删除。        |

其中：

- `<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。

要模拟短按某个按键，请依次运行以下命令：

1. `input send <key> press`
2. `input send <key> short`
3. `input send <key> release`

要模拟长按某个按键，请依次运行以下命令：

1. `input send <key> press`
2. `input send <key> long`
3. `input send <key> release`

否则该输入会被丢弃。

***

## ir

| **命令**              | **参数**                                             | **说明**                   |
| ------------------- | -------------------------------------------------- | ------------------------ |
| `ir rx`             |                                                    | 读取并解码红外（IR）遥控器的数据。       |
| `ir rx raw`         |                                                    | 以 RAW 格式读取红外遥控器的数据。      |
| `ir tx`             | `<protocol> <address> <command>`                   | 发送输入的红外命令。               |
| `ir tx raw`         | F: `<frequency>`<br />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 范围内的某个值。部分频率在你所在地区可能不可用。[了解更多](https://docs.flipper.net/zero/sub-ghz/frequencies)。
- `<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 的商标。
