{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/pawn/pawn.cc",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/pawn/chipset.cc",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/pawn/chipset_intel_9_series.h",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/CMakeLists.txt",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/cmake/PawnDeps.cmake",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/.github/workflows/ubuntu-cmake.yml",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/debian/changelog",
    "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/LICENSE",
    "https://github.com/google/pawn/releases/tag/v0.2"
  ],
  "category": "firmware",
  "description_en": "Linux command-line tool from Google that reads the BIOS/UEFI firmware image out of the SPI flash of Intel-based workstations and laptops. Running as root, it identifies the chipset's LPC bridge over PCI, maps the chipset's root-complex registers through /dev/mem, and reports the flash descriptor regions and the BIOS write- and read-protection settings it finds. It then reads the flash through the SPI controller's hardware sequencing into a single image file, which the README suggests processing further with tools such as UEFITool.",
  "description_zh": "Google 发布的 Linux 命令行工具，可从基于 Intel 平台的工作站和笔记本电脑的 SPI 闪存中读出 BIOS/UEFI 固件镜像。它以 root 权限运行，通过 PCI 识别芯片组的 LPC 桥，借助 /dev/mem 映射芯片组的根复合体寄存器，并报告读到的闪存描述符分区以及 BIOS 写保护和读保护设置。随后它通过 SPI 控制器的硬件时序读取闪存，写入单个镜像文件；README 建议再用 UEFITool 等工具进一步处理。",
  "entry_url": "https://awesomerea.org/resources/google-pawn/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/google-pawn/",
  "evidence_url": "https://github.com/google/pawn/blob/45b7b3865c3d4f2aa6e0defebb477dacb8b8a3b9/README.md",
  "group": "tools",
  "id": "google-pawn",
  "json_url": "https://awesomerea.org/resources/google-pawn/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/google-pawn/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/google-pawn/index.md",
  "name": "Pawn",
  "name_zh": "Pawn Intel 平台 BIOS 固件提取工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Releases v0.1 and v0.2, published 2017-08-30 and 2017-09-09, each ship a Debian amd64 package with its source; the reviewed main commit, from 2026-02-17, updates dependencies and GitHub Actions and still declares version 0.2. The README states that Pawn is not an official Google product. Builds need Linux on x86_64 (FreeBSD might also work, per the README), CMake 3.31+, GCC or Clang 7+ and Ninja or Make; CMake fetches Abseil, and GoogleTest for tests, at pinned commits. CI builds and runs the unit test on Ubuntu 24.04 and keeps the binary only as a workflow artifact.",
    "Runs as root on the machine whose firmware is read, using I/O-port access to PCI configuration space and /dev/mem. On Linux kernels newer than 4.8.4 the README requires CONFIG_IO_DEVMEM=n or booting with iomem=relaxed; the program's own error message names IO_STRICT_DEVMEM. Only Intel ICH8, ICH9 and ICH10 and 6 to 9 Series chipsets are recognized, the newest being the 9 Series whose datasheet the source cites from May 2014; the BIOS must boot from SPI flash in descriptor mode.",
    "It always reads 16 MiB from flash address 0, so flash beyond that size is not dumped, and failed block reads are ignored; the default output name is bios_via_spi_hs.bin. The repository contains only source, build and Debian packaging files, with no firmware images; a dump is the machine vendor's firmware and keeps the vendor's rights.",
    "Apache-2.0."
  ],
  "requirements_zh": [
    "v0.1 和 v0.2 两个版本分别于 2017-08-30 和 2017-09-09 发布，均附带 Debian amd64 软件包及其源码；所审阅的 main 提交日期为 2026-02-17，更新了依赖和 GitHub Actions，版本号仍为 0.2。README 声明 Pawn 不是 Google 的官方产品。构建需要 x86_64 上的 Linux（README 称 FreeBSD 或许也可行）、CMake 3.31+、GCC 或 Clang 7+ 以及 Ninja 或 Make；CMake 会按固定提交拉取 Abseil，测试时另拉取 GoogleTest。CI 在 Ubuntu 24.04 上构建并运行单元测试，生成的二进制文件仅作为工作流产物保留。",
    "需在要读取固件的机器上以 root 权限运行，通过 I/O 端口访问 PCI 配置空间并使用 /dev/mem。对于高于 4.8.4 的 Linux 内核，README 要求设置 CONFIG_IO_DEVMEM=n 或以 iomem=relaxed 启动；程序自身的错误提示写的是 IO_STRICT_DEVMEM。只能识别 Intel ICH8、ICH9、ICH10 以及 6 至 9 系列芯片组，其中最新的是 9 系列，源码引用的其数据手册日期为 2014 年 5 月；BIOS 必须以描述符模式从 SPI 闪存启动。",
    "它总是从闪存地址 0 读取 16 MiB，超出此大小的闪存内容不会被转储，读取失败的数据块也会被忽略；默认输出文件名为 bios_via_spi_hs.bin。仓库只包含源码、构建文件和 Debian 打包文件，不含任何固件镜像；转储得到的是机器厂商的固件，仍受厂商权利约束。",
    "采用 Apache-2.0 许可。"
  ],
  "targets": [
    "firmware"
  ],
  "url": "https://github.com/google/pawn",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
