手机开启16k Page Size

发布于:2025-07-27 ⋅ 阅读:(11) ⋅ 点赞:(0)

我买了一个pixel8的手机,系统是Android16,如下操作都是基于这个手机做的。


https://source.android.com/docs/core/architecture/16kb-page-size/16kb-developer-option?hl=zh-cn#use_16kb_toggle

使用 16 KB 切换开关

按照开发者选项文档中的指示启用开发者选项。
如果检测到设备受 OEM 锁定,系统会显示一个对话框,请用户对手机进行 OEM 解锁。按照相应步骤进行 OEM 解锁。
当用户选中“以 16KB 页面大小启动设备”时,/data 和 /metadata 分区必须为 ext4。否则,系统会显示一个对话框,要求用户擦除设备数据。回答“是”会擦除设备数据,并且您必须再次启用开发者选项。
16 KB 切换开关现在会显示一个确认切换到 16 KB 的对话框;用户确认后,系统会应用启动 OTA。然后,您可以在 4 KB 到 16 KB 模式之间来回切换,而无需清空数据分区以测试应用行为。

按照开发者选项文档中的指示启用 16 KB 模式,注意启用过程中会导致 所有用户应用数据被清。
我是基于pixel 8+Android16操作的。

详细步骤如下:

1. unlock bootloader

https://source.android.com/docs/core/architecture/bootloader/locking_unlocking?hl=zh-cn

图文说明

adb reboot bootloader
fastboot flashing unlock

在这里插入图片描述

2. 开发选项,选中16k page size选项

重启后,打开开发选项 -> 选中16k page size选项 -> 点击确认 -> ease all data

3. 开发选项,选中16k page size选项

选中重启一下,这次重启之后就好了


开启后的效果:
在这里插入图片描述

其他

  1. adb reboot bootloader

    • adb: Android Debug Bridge,一个强大的命令行工具,用于与连接的 Android 设备进行通信(通常在设备处于 Android 系统或 Recovery 模式下)。
    • reboot: 告诉设备重新启动。
    • bootloader: 指定重启的目标模式。Bootloader 是设备启动时运行的第一个程序,负责初始化硬件并加载操作系统(Android)内核。
    • 合起来的意思: 这条命令通过 ADB 指示当前处于 Android 系统或 Recovery 模式的设备重新启动并进入 Bootloader 模式。在 Bootloader 模式下,设备才能接受 fastboot 命令。
  2. fastboot flashing unlock

    • fastboot: 另一个命令行工具,用于在设备处于 Bootloader 模式下与其通信。它主要用于执行底层操作,如刷写分区、解锁等。
    • flashing: 表示操作与刷写(写入)设备的分区(如系统、引导、恢复等)有关。
    • unlock: 具体操作指令,表示解锁设备的 Bootloader
    • 合起来的意思: 这条命令在设备处于 Bootloader 模式下执行,向设备发送解锁 Bootloader 的指令

为什么执行这两条命令(解锁 Bootloader)是开启 16k page size 的必要条件?

开启 16k page size 通常意味着你需要刷入一个使用 16k 作为物理存储块大小(page size)编译的固件。这涉及到对设备关键分区(如 bootvendor_bootsuper 分区中的 vendor/odm 等)进行写入操作。原因如下:

  1. Bootloader 锁定的目的: 设备制造商默认会锁定 Bootloader。这是一个重要的安全机制,主要目的是:

    • 防止未经授权的系统修改: 阻止用户或恶意软件随意刷写或修改设备的系统分区、引导分区、基带分区等关键区域,保证系统完整性和安全性。
    • 保护用户数据: 防止恶意软件篡改系统窃取数据。
    • 遵守运营商/法规要求: 满足某些运营商或地区的特定要求。
    • 减少售后支持成本: 避免用户因自行刷机导致设备变砖而寻求保修。
  2. 锁定状态下的限制: 当 Bootloader 被锁定时:

    • 禁止写入关键分区: fastboot 或其他工具无法boot, recovery, system, vendor, odm 等关键分区写入数据。尝试刷写会被 Bootloader 拒绝。
    • 禁止修改分区表: 无法创建、删除或调整分区大小(虽然 page size 不是分区表直接定义的,但支持它的固件需要写入到特定分区)。
    • 只能刷入官方签名固件: Bootloader 通常只允许刷入由设备制造商用特定密钥签名过的官方固件包(如 OTA 更新包)。
  3. 解锁 Bootloader 的作用: 执行 fastboot flashing unlock 命令会:

    • 解除写入限制: 解锁后,Bootloader 允许使用 fastboot flash 命令向设备的关键分区写入任何数据(包括非官方的、自定义编译的固件)。
    • 允许刷入自定义固件: 这是刷入第三方 Recovery(如 TWRP)、自定义 ROM(如 LineageOS)、修改后的内核 (boot.img) 或 vendor/odm 分区的前提。
    • 清除用户数据: 作为安全措施,解锁过程通常会强制清除设备上的所有用户数据(Factory Reset)。这是为了防止加密数据在新系统下无法访问或产生安全风险。重要提示:解锁前务必备份所有重要数据!
    • 可能影响保修: 解锁 Bootloader 通常会使设备的官方保修失效(取决于制造商政策)。
  4. 与 16k Page Size 的关系:

    • 要使用 16k page size,你需要一个专门为你的设备型号编译的、使用了 16k page size 配置的固件(通常是内核、vendor_bootvendor/odm 分区中的模块)。
    • 编译这样的固件需要访问设备的特定内核源代码和配置。
    • 将这个编译好的固件刷入设备,必须写入到受 Bootloader 保护的分区(如 boot, vendor_boot, vendor, odm)。
    • 因此,只有在 Bootloader 解锁后,你才能使用 fastboot flash boot ..., fastboot flash vendor_boot ..., fastboot flash vendor ... 等命令,将支持 16k page size 的固件组件刷入到相应的分区中。 刷入成功后,设备启动时加载的就是支持 16k page size 的内核和驱动了。

总结:

  • adb reboot bootloader:让设备进入可以进行底层操作的 Bootloader 模式。
  • fastboot flashing unlock:解除 Bootloader 对关键分区写入的限制,允许刷入非官方/自定义固件(这是关键一步,会清除数据)。
  • 解锁 Bootloader 本身不开启 16k page size。 它只是移除障碍,让你能够刷入一个预先编译好的、支持 16k page size 的固件(通常是内核和 vendor/odm 相关部分)。刷入这个特定的固件才是真正“开启” 16k page size 的操作,而这个刷入操作在 Bootloader 锁定状态下是无法完成的。

更多

  1. 代码上如何适配:https://blog.csdn.net/yeshennet/article/details/14501504
  2. 16k page size常见库升级:https://blog.csdn.net/yeshennet/article/details/149562775

网站公告

今日签到

点亮在社区的每一天
去签到