手机开启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.pswp.cn/news/916339.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VLAN的划分(基于华为eNSP)

VLAN的划分 前言:为什么VLAN是现代网络的“隐形骨架”? 当一台办公室电脑发送文件给隔壁工位的同事时,数据如何精准抵达目标而不“打扰”其他设备?当企业财务部的敏感数据在网络中传输时,如何避免被其他部门的设备“窥…

从压缩到加水印,如何实现一站式图片处理

当你需要对大量图片进行相同或相似的操作时(例如压缩、裁剪、调整尺寸、添加水印等),逐个处理会非常耗时。批量处理工具可以一次性处理数百张图片,大大节省了时间。这是一款极致轻巧的图片处理利器,体积仅有652KB&…

Pythong高级入门Day5

二、面向对象编程面向对象编程(Object-Oriented Programming,简称OOP)是一种通过组织对象来设计程序的编程方法。Python天生就是面向对象的模块化编程。1. 初识类和对象示意图:/-------> BYD E6(京A.88888) 实例,对…

C#其他知识点

接口类---interface什么是接口? 在接口当中一般我们认为接口中的成员都是抽象的。接口一般认为是功能的集合。在接口类当中定义的方法都是抽象象方法。(没有方法体)接口一般我们认为它是一种标准,一种规范,一种约定。给子类或者是派生类制定规范,规定,标准。当子类继承了该接口…

Maven 环境配置全攻略:从入门到实战

一、Maven 简介 Maven 是一个基于项目对象模型 (POM) 的项目管理工具,它可以通过一小段描述信息来管理项目的构建、报告和文档。 除了强大的程序构建能力外,Maven 还提供了高级项目管理功能。其默认构建规则具有很高的可重用性,通常只需两三…

现代 C++ 开发工作流(VSCode / Cursor)

✅ 推荐的现代 C 开发工作流(含 VSCode / Cursor 插件配置)🧰 一、环境要求 C 编译器(如 g 或 clang)CMake(建议 ≥ 3.16)clangd(建议 ≥ 14,最好用系统包管理器安装&…

[SAP ABAP] ALV报表练习4

SO销售订单明细报表业务目的:根据选择屏幕的筛选条件,使用ALV报表显示销售订单详情(Sales Order、Material、现有Qty、已开立数量以及剩余数量等)信息效果展示我们在销售订单栏位输入需要查询的SO单号,这里我们以SO单号0000000221为例&#x…

《设计模式之禅》笔记摘录 - 10.装饰模式

装饰模式的定义装饰模式(Decorator Pattern)是一种比较常见的模式,其定义如下:Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending fu…

[AI8051U入门第十步]W5500-客户端

学习目标: 1、认识W5500模块 2、驱动W5500静态获取ip 3、获取全球唯一码作为mac地址 4、拔出网线重插网线自动获取IP 5、编写W5500作为客户端进行TCP/IP代码一、W5500介绍 W5500 是一款由韩国 WIZnet 公司推出的高性能 硬件 TCP/IP 嵌入式以太网控制器,专为嵌入式系统设计,…

UNETR++: Delving Into Efficient and Accurate 3D Medical Image Segmentation

摘要得益于Transformer模型的成功,近期研究开始探索其在3D医学分割任务中的适用性。在Transformer模型中,自注意力机制是核心构建模块之一,与基于局部卷积的设计相比,它致力于捕捉长距离依赖关系。然而,自注意力操作存…

Kotlin Flow 在 Jetpack Compose 中的正确打开方式:SharedFlow vs StateFlow 与 LaunchedEffect

在 Jetpack Compose 中,Kotlin Flow 是处理异步数据流的核心工具,而 SharedFlow 和 StateFlow 是最常用的两种 Flow 类型。但很多开发者对它们的适用场景、如何与 LaunchedEffect 配合使用存在困惑。本文将深入探讨它们的区别,并给出最佳实践…

嵌入式——C语言:指针①

一、指针特点1.让代码更加简洁高效2.提供直接访问内存的操作3.利用指针可以直接操作硬件二、指针概念(一)地址:为了区分内存中不同字节的编号(0到2^16-1)(二)指针:指针就是地址&…

RabbitMQ—HAProxy负载均衡

上篇文章: RabbitMQ—仲裁队列https://blog.csdn.net/sniper_fandc/article/details/149312579?fromshareblogdetail&sharetypeblogdetail&sharerId149312579&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 HAProxy安装…

QT中启用VIM后粘贴复制快捷键失效

当在QT中启用FakeVim之后,Ctrl C 和 Ctrl V 快捷键就变成 Vim 的快捷键了,我希望它还是原来的复制粘贴功能,打开:编辑 > Preferences…,然后勾选 “Pass control keys”即可,如下:

TCP三次握手与四次挥手全解析

🌊 TCP三次握手与四次挥手全解析(含序列号动态追踪)🔑 TCP 协议核心机制 序列号 (seq):数据字节流的唯一标识(32位循环计数器)确认号 (ack):期望接收的下一个序列号(ack …

7月26号打卡

作业:题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一…

C++/CLI与标准C++的语法差异(一)

🌌 C/CLI与标准C的语法差异(一)🔬 第一章:类型系统革命 - 彻底解构三语言范式 🧪 1.1 类型声明语义差异矩阵 #mermaid-svg-L5kQ3iy05pKo4vIj {font-family:"trebuchet ms",verdana,arial,sans-se…

输电线路微气象在线监测装置:保障电网安全的科技屏障

在电力传输网络中,输电线路微气象在线监测装置通过集成专业传感器与智能分析技术,实现对线路周边环境参数的实时采集与动态分析,为电网运行安全提供数据支撑。该设备针对输电线路特殊工况设计,具备高适应性、高可靠性特点。工作原…

基于springboot的图书借阅系统

用户:借阅信息管理,续借信息管理,还书信息管理,图书信息,系统公告,留言板,我的中心管理员:图书信息管理,图书类型管理,借阅信息管理,续借信息管理…

Xinference vs SGLang:详细对比分析

概述对比特性XinferenceSGLang定位通用AI模型推理平台高性能LLM服务框架专注领域多模态模型统一接口LLM推理性能优化设计理念易用性和兼容性性能和效率核心架构对比 Xinference 架构特点 Xinference 架构: ├── API层(REST/CLI/Python) ├─…