大侠阿木博客
大侠阿木博客

FastbootFirmwareFlasher 添加新机型配置教程:从 lpdump 到 devices_sizes.json

以"一加 15"为例,手把手教你给 FFF 的配置文件添加新设备


目录

  1. 为什么要配置新机型?
  2. 准备工作
  3. 运行 lpdump 获取设备信息
  4. 从 lpdump 提取配置字段
  5. 字段对照表
  6. 添加到 devices_sizes.json
  7. 实战:添加一加 15
  8. 验证配置生效

为什么要配置新机型?

FFF 的 SuperBuilder(Super 合成功能)依赖 devices_sizes.json 文件来知道每台设备的:

  • super 分区有多大(SuperSize)
  • 动态分区组叫什么名字、有多大(Property、GroupSize)
  • 组里有哪些逻辑分区(Partitions)

如果你的设备不在这个配置文件里,SuperBuilder 就无法自动生成正确的 lpmake 参数。所以添加新机型 = 往这个 json 里加一条记录。


准备工作

你需要:

  • 一台解了 BL 锁的设备(一加 15 为例)
  • 电脑上装好 ADB / Fastboot 工具
  • 设备已 root 或能执行 adb root(否则 lpdump 会报权限不够)

方法一:从售后 OFP 包提取(推荐,无需设备)

Oplus 官方的售后刷机包(OFP)里已经包含了你需要的所有信息,不用连设备、不用 root。

需要的文件

OFP 包解压后,找到这两个文件:

META/dynamic_partitions_info.txt    ← 最直接,纯文本
META/super_def.00000000.json        ← 更完整,含分区大小明细

从 dynamic_partitions_info.txt 提取

文件内容示例:

super_partition_groups=qti_dynamic_partitions
dynamic_partition_list=system system_ext vendor product my_product odm my_engineering vendor_dlkm system_dlkm system_dlkm_oki my_stock my_heytap my_carrier my_region my_company my_preload my_bigball my_manifest
qti_dynamic_partitions_size=18903728128
qti_dynamic_partitions_partition_list=system system_ext vendor product my_product odm my_engineering vendor_dlkm system_dlkm system_dlkm_oki my_stock my_heytap my_carrier my_region my_company my_preload my_bigball my_manifest
virtual_ab=true

字段对应关系:

配置文件字段 文件内容 说明
Property super_partition_groups=qti_dynamic_partitions = 后面的值
GroupSize qti_dynamic_partitions_size=18903728128 = 后面的数字
Partitions dynamic_partition_list=... = 后面的列表,空格分隔

从 super_def.json 提取

{
  "super_device": {
    "total_size": "18907922432"       ← SuperSize
  },
  "groups": [
    {
      "name": "qti_dynamic_partitions_a",
      "maximum_size": "18903728128"   ← GroupSize
    }
  ],
  "partitions": [
    {
      "name": "system_a",
      "size": "975482880",
      "group_name": "qti_dynamic_partitions_a"
    }
  ]
}

字段对应:

配置文件字段 json 路径
SuperSize super_device.total_size
GroupSize groups[].maximum_size(选最大的那个)
Property groups[].name(选最大的那个 group 名)
Partitions partitions[].name(去 _a/_b 后缀)

两种方法的差异

OFP 包 lpdump
需要设备 不需要 需要
需要 root 不需要 需要
信息完整度 完整(含分区分组归属) 完整
Partitions 含 system_dlkm_oki 通常会有 lpdump 里不一定有(该分区可能不在 super 内)

方法二:从设备 lpdump 获取(备选)

连接设备后执行:

adb root
adb shell lpdump --slot _a

如果报权限不够,可以从 OTA 包中解出 super.img 后在本地运行:

lpdump super.img

以我们的一加 15 为例,输出如下:

Slot 0:
Metadata version: 10.2
Metadata size: 3308 bytes
Metadata max size: 65536 bytes
Metadata slot count: 3
Header flags: virtual_ab_device

Block device table:
------------------------
  Partition name: super
  First sector: 2048
  Size: 18907922432 bytes
  Flags: none

Group table:
------------------------
  Name: default
  Maximum size: 0 bytes
  Flags: none
------------------------
  Name: qti_dynamic_partitions_a
  Maximum size: 18903728128 bytes
  Flags: none
------------------------
  Name: cow
  Maximum size: 0 bytes
  Flags: none

Partition table:
------------------------
  Name: my_bigball_a
  Group: qti_dynamic_partitions_a
  Extents:
    0 .. 655 linear super 2048
------------------------
  Name: my_carrier_a
  Group: qti_dynamic_partitions_a
  Extents:
    0 .. 655 linear super 3072
...

从 lpdump 提取配置字段

1. SuperSize — Block device table 的 Size

Size: 18907922432 bytes     <- 照抄

对应的 json 字段:"SuperSize": 18907922432

2. Property + GroupSize — Group table

找到 Maximum size 最大的那个 group:

Name: qti_dynamic_partitions_a
Maximum size: 18903728128 bytes

对应的 json 字段:

  • "Property": "qti_dynamic_partitions_a"(group 名字)
  • "GroupSize": 18903728128(Maximum size)

不同芯片的 Property 常见值:

芯片 Property
高通 qti_dynamic_partitions
联发科 main

3. Partitions — Partition table 的分区名列表

把所有非 -cow 的分区列出来,去掉 _a / _b 后缀:

lpdump 原始名          配置里的名字
my_bigball_a       →   my_bigball
my_carrier_a       →   my_carrier
my_company_a       →   my_company
my_engineering_a   →   my_engineering
my_heytap_a        →   my_heytap
my_manifest_a      →   my_manifest
my_preload_a       →   my_preload
my_product_a       →   my_product
my_region_a        →   my_region
my_stock_a         →   my_stock
odm_a              →   odm
product_a          →   product
system_a           →   system
system_dlkm_a      →   system_dlkm
system_ext_a       →   system_ext
vendor_a           →   vendor
vendor_dlkm_a      →   vendor_dlkm

(以 -cow 结尾的跳过,不参与合成)

为什么去掉 _a / _b
配置文件存的是基础分区名,不包含槽位后缀。FFF 的 SuperBuilder 在生成 lpmake 命令时会自动加上 _a

4. SystemDlkmOkiUrl

非必需项。如果设备有远程下载的 system_dlkm_oki 镜像,填 URL;没有就填 null


字段对照表

json 字段 lpdump 来源 说明
Name 你自己写 设备显示名,随便起
Property Group table 的 Name dynamic partition group 名
SuperSize Block device table 的 Size super 分区总大小(bytes)
GroupSize Group table 的 Maximum size 选最大的那个
Partitions Partition table 的 Name _a/_b/-cow
SystemDlkmOkiUrl OTA 包中提取 没有就 null

添加到 devices_sizes.json

配置文件位于 FFF 程序根目录下的 devices_sizes.json。打开它,在数组末尾加上新条目:

{
  "Name": "你的设备名",
  "Property": "qti_dynamic_partitions",
  "SuperSize": 18907922432,
  "GroupSize": 18903728128,
  "Partitions": [
    "my_bigball", "my_carrier", "my_company",
    "..."
  ],
  "SystemDlkmOkiUrl": null
}

保存后重启 FFF,SuperBuilder 的机型下拉框里就会出现你新加的设备。


实战:添加一加 15

从 lpdump 提取的数据

Block device Size:          18907922432
Group (最大):               qti_dynamic_partitions_a
Group Maximum size:          18903728128
Partitions (去后缀后):      见下方列表

写入 devices_sizes.json

{
  "Name": "一加 15",
  "Property": "qti_dynamic_partitions",
  "SuperSize": 18907922432,
  "GroupSize": 18903728128,
  "Partitions": [
    "my_bigball", "my_carrier", "my_company",
    "my_engineering", "my_heytap", "my_manifest",
    "my_preload", "my_product", "my_region",
    "my_stock", "odm", "product", "system",
    "system_dlkm", "system_ext", "vendor",
    "vendor_dlkm"
  ],
  "SystemDlkmOkiUrl": null
}

⚠️ 两个注意事项

1. Property 要不要带 _a
一加 15 的 lpdump group 名是 qti_dynamic_partitions_a(带 _a),但 FFF 当前版本只认 qti_dynamic_partitions(不带)。如果填了带 _a 的 group 名,SuperBuilder 生成的 lpmake 命令可能不兼容。建议先填不带 _a 的常规名字测试。

2. default group 的分区
一加 15 的 my_companymy_preload 实际上在 default 组,不在 qti_dynamic_partitions_a 组。但 FFF 的 SuperBuilder 只支持一个 group,所以把它们一并归入 qti_dynamic_partitions 组处理。


验证配置生效

  1. 保存 devices_sizes.json
  2. 重启 FFF,进入 SuperBuilder 页面
  3. 在机型下拉框中找到你添加的设备名
  4. 选择后,SuperSize、GroupSize、Partitions 列表应该自动填充
  5. 选择固件目录,点击 Parse,确认分区信息正确
  6. 点击 Create,开始合成 super.img
没有标签
首页      Android      FastbootFirmwareFlasher 添加新机型配置教程:从 lpdump 到 devices_sizes.json

发表回复

textsms
account_circle
email

大侠阿木博客

FastbootFirmwareFlasher 添加新机型配置教程:从 lpdump 到 devices_sizes.json
以"一加 15"为例,手把手教你给 FFF 的配置文件添加新设备 目录 为什么要配置新机型? 准备工作 运行 lpdump 获取设备信息 从 lpdump 提取配置字段 字段对照表 添加到 devic…
扫描二维码继续阅读
2026-07-01