当前位置: 首页 > news >正文

手机开启16k Page Size

我买了一个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
http://www.lryc.cn/news/597338.html

相关文章:

  • 大模型【进阶】(四)QWen模型架构的解读
  • SpringBoot07-数据层的解决方案:SQL
  • FireFox一些设置
  • latex中既控制列内容位置又控制列宽,使用>{\centering\arraybackslash}p{0.85cm}
  • OpenLayers 快速入门(二)Layer 对象
  • 深入掌握 Python 面向对象的灵魂——魔法函数(Magic / Dunder Methods)全景指南
  • CAN的终端电阻
  • 设计模式代码总结
  • 用 PyTorch 实现全连接网络识别 MNIST 手写数字
  • Android插件化实现方案深度分析
  • window下c++共享内存,进程互斥锁。
  • macOS配置maven及报错处理:zsh: permission denied: mvn
  • 大厂总结常用分析问题方法之CMMI-IDEAL模型
  • VRRP技术-设备备份技术
  • Modbus TCP转Devicenet:水泥厂PLC与多类仪表的自动化通信实践
  • 学习 Flutter(五):玩安卓项目实战 - 下
  • 2025年7月一区SCI-投影迭代优化算法Projection Iterative Methods-附Matlab免费代码
  • Flutter学习笔记(四)---基础Widget
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘jupyter’问题
  • OSPF路由协议——上
  • 2025.7.15vlan作业
  • vscode怎么安装MINGW
  • Linux下SVN常用指令
  • VRRP虚拟路由器冗余协议
  • 民营医院如何突破技术与模式创新,迎来发展机遇?
  • 14.10 《24小时单卡训练!LoRA微调LLaMA2-7B全攻略,RTX 3090轻松跑》
  • Async/Await
  • translateZ数值大小变化
  • Python 程序设计讲义(7):Python 的基本数据类型——整数类型
  • SpringMVC快速入门之请求与响应