fx - Fuchsia 开发命令

fx 是一组子命令的入口点,可简化许多与 Fuchsia 开发相关的任务。

它包含大量子命令。运行 fx help 可查看所有可用的子命令。 如果您使用 bash 或 zsh 作为 shell,请执行 scripts/fx-env.sh
以获取一些自动补全功能。

另请参阅影响所有子命令的全局选项和标志

fx 子命令

主要子命令

属于 fx 工作流的子命令。

命令 类别 说明
add-update-source 软件交付 将软件包服务器注册为设备的更新源
args build 手动编辑当前 build 目录的 args.gn
atomic-commit 其他 创建将以原子方式提交的一对更改。它会修改
bazel build 针对 Fuchsia 平台树运行实验性 Bazel build
bazel-tool build 在 Fuchsia Bazel 工作区中运行 bazel-tool 脚本。
bootfs-size-report 运行、检查和调试 根据 ZBI 生成未压缩大小报告
build build 运行 Ninja 以构建 Fuchsia
build-and-upload build 构建并上传到 GCS。
build-metrics 其他 管理 build 指标配置
build-profile 其他 管理 build 配置文件配置
cipd 源代码树 运行 cipd 命令行工具
clean build 清理当前的 Fuchsia build 工件
clean-build build 清理 build 目录,然后执行完整 build
cleandead build 删除 build 输出目录中过时的生成文件。
cleandead-build build 删除过时的生成文件,然后执行完整构建。
cleanrepo build 移除 amber-files/. 中的已发布代码库。
cleanrepo-build build 移除 amber-files/ 中的已发布代码库,然后执行完整 build。
cmc build 组件清单编译器
cog-clean 来源 清理过时的 CartFS 目录。
cp 设备管理 将文件复制到目标设备/从目标设备复制文件
create-pb-zip 其他 根据 product_bundles.json 文件创建适合刷写的 pb.zip。
create 源代码树 搭建新项目
doc-checker 代码提交和审核 使用各种检查来检查 Markdown 文档。
emu 运行、检查和调试 模拟设备并与之互动(转发到 ffx emu)。
exec 其他 读取当前 build 配置,然后执行
fargo build Fargo 是一个围绕 Cargo 的原型 Fuchsia 特定封装容器
fetch-build-artifacts build TODO(https://fxbug.dev/42139110):正在施工。
flash 设备管理 刷写已连接的设备
flash-remote 其他 远程构建、提取和刷写 Fuchsia 映像到设备上,请参阅 https://fuchsia.dev/fuchsia-src/development/sdk/ffx/flash-a-device
格式代码 源代码树 对修改后的文件运行源代码格式化程序
gen build 针对 Fuchsia build 目录运行 gn gen
get-build-artifacts 内部 API 已弃用!已重命名为 list-build-artifacts
get-build-dir build 打印当前的 Fuchsia build 目录
get-device 设备发现 打印当前所选设备的名称
get-device-addr 设备发现 打印当前所选设备的 Fuchsia 地址
get-flash-source 内部 API 构建并返回所需的一组 build 制品的列表
get-src-dir build 打印 Fuchsia 源代码目录(检出根目录,也称为“//”)
get-workspace-dir build 打印 Bazel 工作区目录
git 来源 在 Fuchsia 树中运行 git 命令。
gn build 为 Ninja 生成 build 文件的元 build 系统
go build 管理 Go 源代码
helpdoc 文档 为 fx 子命令创建 Markdown 文档
host-tool 运行、检查和调试 运行 build 生成的主机工具
is-package-server-running 软件交付 检查软件包服务器是否正在运行
jiri 源代码树 用于多代码库开发的多用途工具。
jq 其他 jq 是一种用于在命令行中处理 JSON 的实用程序。
jq5 build 将 jq 的功能扩展到 json5 对象。
klog 运行、检查和调试 监听内核日志
list-boards build 列出可用于构建的板
list-build-artifacts 内部 API 构建并返回所需的一组 build 制品的列表
list-devices 设备发现 列出附近的所有设备(不包括 zedboot 上的设备)
list-products build 列出可用于构建的产品
list-usb-disks 其他 列出已连接的 USB 磁盘
local-publish-platform 其他 将发布平台制品发布到本地 CIPD 实例。
日志 运行、检查和调试 显示来自目标设备的日志。
mdlint 代码提交和审核 Markdown linter
merge-package-config 其他
metrics 其他 管理 FX 工具中的指标收集
mkzedboot 软件交付 制作 zedboot USB 密钥
mkzedboot-remote 软件交付 制作 zedboot USB 密钥
multi 其他 在多个 build 目录中运行 fx 命令。
netaddr 设备发现 获取正在运行的 Fuchsia 系统的地址
netls 设备发现 列出本地网络上正在运行的 Fuchsia 系统
ninja build 直接运行构建系统。请勿用于常规工作流。
ninjatrace2json build 在 chrome://tracing 中收集 Ninja 跟踪信息以供分析
node-names 设备管理 查找同一节点的其他名称
ota 软件交付 在已连接的设备上执行系统 OTA
qemu 运行、检查和调试 在 QEMU 中使用 FVM 磁盘启动 Fuchsia
rbe build 检查远程 build 配置
重新启动 设备管理 重启目标 Fuchsia 系统
repro build 在本地复制基础设施构建和测试的结果
resultstore build 管理 build ResultStore 配置。ResultStore 是一项服务
rfc 源代码树 Scaffold 新的 RFC
run-host-tests 测试 已弃用!在主机上构建和运行测试
run-in-build-dir build 在当前 build 目录的根目录下运行指定命令
run-netboot 运行、检查和调试 通过网络启动在 QEMU 中启动 Fuchsia
run-script 其他 运行自定义的命令组合,能够利用 fx -i(迭代模式)
scp 设备管理 使用 build ssh 配置调用 scp
sdk-deps 其他 已弃用!列出目标的依赖项,以及依赖项是否位于 SDK 中
自建 build 构建运行 fx 主要工作流所需的最小主机依赖项
自测 测试 运行 fx 和子命令的测试
serial 设备管理 附加到串行控制台
serve 软件交付 启动更新服务器并连接到正在运行的 Fuchsia 设备
serve-remote 其他 从远程工作站提供服务
set build 设置 build 目录
set-build-dir build 设置其他 fx 命令使用的默认 build 目录
set-device 设备发现 设置要与之互动的默认设备
set-main-pb build 在多产品环境中设置要构建哪个产品包
setup-firewall 其他 设置 Linux 防火墙规则,以允许 Fuchsia 设备和模拟器流量。
setup-mcp-servers 其他
setup-ufw 其他 设置 Linux 防火墙规则,以允许 Fuchsia 设备和模拟器流量。
sftp 设备管理 使用 build ssh 配置调用 sftp
shell 设备管理 在目标设备中启动远程交互式 shell
ssh 设备管理 使用 SSH 密钥和配置为 Fuchsia 设备调用 SSH。
状态 其他 打印有关开发者设置的相关信息
sync-to 源代码树 将本地 Fuchsia 源代码树同步到给定状态
syslog 运行、检查和调试 已弃用!fx 日志的已弃用别名
test 测试 所有 Fuchsia 测试(主机、目标和端到端)的入口点
testgen 测试 组件集成测试自动生成器
unset-device 设备发现 取消设置要交互的默认设备
更新 软件交付 已弃用!fx OTA 的已弃用别名
update-if-in-base 软件交付 检查软件包是否位于基本映像中,并根据需要更新设备
use build 重新使用由 fx set 设置的先前构建目录
供应商 其他 将命令转发到 vendor/*/scripts/devshell
wait 设备管理 等待 shell 变为可用状态

Contrib 子命令

由具有其他支持级别、所有权或同时具有这两者的项目成员贡献的子命令。contrib 目录中的 OWNERS 文件提供了指向支持每个脚本的成员的指针。

命令 类别 说明
add-host-test build 向 args.gn 添加 GN 标签并重新生成
add-test build 向 args.gn 添加 GN 标签并重新生成
arm-esr 其他 解码 ARM 异常综合征寄存器值
bazel2gn 源代码树 同步了在 BUILD.gn 和 BUILD.bazel 中双重构建的目标。
bindc 运行、检查和调试 运行绑定程序编译器和调试器
binutils 运行、检查和调试 提供预构建的 LLVM binutils 工具的快捷方式
bisect-rustc 其他
blobstats 运行、检查和调试 从 build 中计算一些 blobfs 统计信息
bt-snoop-from-snapshot 运行、检查和调试 从快照中提取侦听日志,以 pcap 格式的数据呈现
build-main-pb build 构建当前默认产品包
build-zbi 内核 发布要刷写到设备以进行开发的 ZBI 产品。
check-deps build 检查区域中的依赖关系图
check-goldens 源代码树 检查 GN build 图中的所有黄金文件比较。
check-licenses 文档 分析给定软件包或目录的许可状态
cl 代码提交和审核 打印 Gerrit 代码审核网址,并尝试在用户的默认浏览器中打开该网址。
clang-tidy 源代码树 对指定文件运行 clang-tidy
clippy 其他 在锁定状态下,在 fx 环境中运行 Rust 辅助脚本
clippy 诊断
compdb build 不推荐
core-tests 测试 运行 Zircon 核心测试
覆盖率 测试 运行测试并导出覆盖率数据。
cpu-stats 运行、检查和调试 根据快照生成 CPU 统计信息报告
crosvm 运行、检查和调试 运行 crosvm
dis build 反汇编 build 中的指定二进制文件。
download-rust-toolchain 工具链 从 toolchain.ci 下载 Rust 工具链到最新的绿色 build
dupefinder 运行、检查和调试 报告堆转储中的重复分配。
exec-host-tests 测试
extract-pprof 运行、检查和调试 从 inspect.json 中提取 pprof 数据
extract-zbi 其他
fastboot 设备管理 通过 fastboot 协议直接与设备的引导加载程序交互
fetch-cl-comments 代码审核 获取当前 HEAD 提交中未解决的代码审核评论。
fetch-cl-comments.py 其他
fetch-cl-diff 代码审核 获取更改列表的 Git 差异。
fetch-cl-diff.py 其他
ffx 其他 执行 ffx - 用于 Fuchsia 设备的开发者工具。
fidlcat 运行、检查和调试 已弃用,请改用“ffx debug fidl”
fidldoc 文档 为 FIDL 生成文档
fidltags 其他 为 .fidl 文件生成代码
find-owner 其他
flash-kola 其他 将 Fuchsia 刷入具有未修改的引导加载程序的 Kola 板。
force-ota-from-devhost 软件交付 强制从 devhost 进行无线下载系统更新(会重新启动!)
模糊 运行、检查和调试 已弃用!在目标设备上运行模糊测试
g-build build 构建 Fuchsia 并尝试使用 Gemini 修复失败。
g-review 代码提交和审核 对当前提交执行 Gemini 审核
gc 软件交付 在目标设备上进行软件包垃圾回收(会重启!)
gce 其他 Google Compute Engine 命令
gdb 运行、检查和调试 运行 GNU 调试程序 (GDB)。
gen-cargo 其他 在 fx 环境中运行 Rust 辅助脚本
gen-cargo 源代码树 为 Rust Cargo.toml 输出文件生成符号链接
gen-watchman-config 开发者工具 生成一个 .watchmanconfig 文件,以供 jj 使用
gerrit-split-cl 代码提交和审核 将 CL 链提交到 Gerrit
gerrit-submit 代码提交和审核 将 CL 链提交到 Gerrit
get-main-pb-path build 获取所提供商品 bundle 的输出路径
gnu 运行、检查和调试 提供指向预构建的 GNU (binutils / GCC) 工具的快捷方式
grep 源代码树 打印 Fuchsia 源代码中与指定模式匹配的行
gum 其他 gum 是一种用于向脚本添加互动性的实用程序
iquery 其他
lint 源代码树 对修改后的文件运行源代码检查工具
list-owners 源代码树 查找与所提供路径对应的最近 OWNERS 文件,或
list-packages build 列出构建的软件包。
llvm 运行、检查和调试 提供指向预构建的 Clang / LLVM 工具的快捷方式
ls-buildid build 在 build 目录、签出和 Google Cloud 中查找二进制文件
make-fuchsia-vol 其他 构建 Fuchsia 永久性磁盘
mkinstaller 软件交付 制作 Fuchsia 安装程序映像
mkinstaller-remote 软件交付 从远程 build 主机创建 Fuchsia 安装程序映像
move-docs 文档 用于批量将文档从一个位置移动到另一个位置的辅助工具
pending-commits 源代码树 查看尚未发布到全局集成的提交
pprof 运行、检查和调试 pprof 封装容器,可用于访问符号索引中的本地文件
publish 软件交付 发布一组软件包
qemu-cipd-ensure 其他 生成 CIPD 文件,以下载当前的 QEMU 软件包。
refresh-bazel-compdb 其他
remove-update-source 软件交付 取消注册代码库软件包服务器作为设备的更新来源
roll-compiler 其他
run-boot-test 运行、检查和调试 运行 ZBI 测试
run-boot-test.py 其他
run-e2e-tests 测试 运行端到端测试
run-in-build 运行、检查和调试 在 build 目录中运行命令
run-recovery 运行、检查和调试 在 qemu 中启动 Fuchsia 系统恢复
run-zbi-test-remote 运行、检查和调试 远程构建 ZBI 测试,并获取和运行该测试
rust-3p-outdated 其他 在锁定状态下,在 fx 环境中运行 Rust 辅助脚本
rust-3p-outdated 诊断
rustdoc-link 其他 在 fx 环境中运行 Rust 辅助脚本
rustdoc-link 文档 为 Rust 代码生成的文档的链接。取代了 fx rustdoc
set-petal 源代码树 配置 Jiri 以管理特定 petal
set-relay 其他 通过向 |tty| 写入单个字节来驱动外部继电器的状态。
setup-go 其他 设置 Go 开发的结账流程。
setup-jj 开发者工具 设置 jj 工具(如果已安装)以用于 Fuchsia。
setup-usb-ethernet 其他 为 USB CDC 以太网设置 udev 规则
show-package 软件交付 列出软件包内容
shush 源代码树 使用允许或编译器建议的修复来禁止 Rust lint
size-check 其他 用于运行商品尺寸检查器的便捷封装容器。
冒烟测试 其他 在 fx 环境中运行 Python 辅助脚本
冒烟测试 测试 查找并运行受当前更改影响的测试。
snapshot 运行、检查和调试 从已连接的目标获取并解析快照。
sniff 运行、检查和调试 Fuchsia 数据包捕获和显示工具
sniff.py 其他
sync-from-stem 源代码树 将同步集成和依赖项调整为与 fuchsia.git 状态匹配的状态
system-status 设备管理 获取系统状态摘要
test-stats 测试 查询并计算测试统计信息。
test-stats.py 测试 查询并计算测试统计信息。
triage 运行、检查和调试 生成包含 Google 特定规则的错误情况报告。
update-3p-owners 源代码树 更新了第三方依赖项的 OWNERS 文件
update-bazel-vendor-dir build 更新 Bazel 供应商目录,以包含所有必需的 Bazel 依赖项。
update-rust-3p-outdated 源代码树 使用 crates.io 中的最新版本更新了外部 Rust 依赖项
update-rustc-third-party 源代码树 更新了 rustc_library 和 rustc_binary 第三方依赖项
zbi_json_to_d3js.py 其他
zedmon 其他 运行 zedmon 客户端
zxdb 运行、检查和调试 已弃用,请改用“ffx debug connect”