我買了一個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選項
選中重啟一下,這次重啟之后就好了
開啟后的效果:
其他
-
adb reboot bootloader
adb
: Android Debug Bridge,一個強大的命令行工具,用于與連接的 Android 設備進行通信(通常在設備處于 Android 系統或 Recovery 模式下)。reboot
: 告訴設備重新啟動。bootloader
: 指定重啟的目標模式。Bootloader 是設備啟動時運行的第一個程序,負責初始化硬件并加載操作系統(Android)內核。- 合起來的意思: 這條命令通過 ADB 指示當前處于 Android 系統或 Recovery 模式的設備重新啟動并進入 Bootloader 模式。在 Bootloader 模式下,設備才能接受
fastboot
命令。
-
fastboot flashing unlock
fastboot
: 另一個命令行工具,用于在設備處于 Bootloader 模式下與其通信。它主要用于執行底層操作,如刷寫分區、解鎖等。flashing
: 表示操作與刷寫(寫入)設備的分區(如系統、引導、恢復等)有關。unlock
: 具體操作指令,表示解鎖設備的 Bootloader。- 合起來的意思: 這條命令在設備處于 Bootloader 模式下執行,向設備發送解鎖 Bootloader 的指令。
為什么執行這兩條命令(解鎖 Bootloader)是開啟 16k page size 的必要條件?
開啟 16k page size 通常意味著你需要刷入一個使用 16k 作為物理存儲塊大小(page size)編譯的固件。這涉及到對設備關鍵分區(如 boot
、vendor_boot
、super
分區中的 vendor
/odm
等)進行寫入操作。原因如下:
-
Bootloader 鎖定的目的: 設備制造商默認會鎖定 Bootloader。這是一個重要的安全機制,主要目的是:
- 防止未經授權的系統修改: 阻止用戶或惡意軟件隨意刷寫或修改設備的系統分區、引導分區、基帶分區等關鍵區域,保證系統完整性和安全性。
- 保護用戶數據: 防止惡意軟件篡改系統竊取數據。
- 遵守運營商/法規要求: 滿足某些運營商或地區的特定要求。
- 減少售后支持成本: 避免用戶因自行刷機導致設備變磚而尋求保修。
-
鎖定狀態下的限制: 當 Bootloader 被鎖定時:
- 禁止寫入關鍵分區:
fastboot
或其他工具無法向boot
,recovery
,system
,vendor
,odm
等關鍵分區寫入數據。嘗試刷寫會被 Bootloader 拒絕。 - 禁止修改分區表: 無法創建、刪除或調整分區大小(雖然
page size
不是分區表直接定義的,但支持它的固件需要寫入到特定分區)。 - 只能刷入官方簽名固件: Bootloader 通常只允許刷入由設備制造商用特定密鑰簽名過的官方固件包(如 OTA 更新包)。
- 禁止寫入關鍵分區:
-
解鎖 Bootloader 的作用: 執行
fastboot flashing unlock
命令會:- 解除寫入限制: 解鎖后,Bootloader 允許使用
fastboot flash
命令向設備的關鍵分區寫入任何數據(包括非官方的、自定義編譯的固件)。 - 允許刷入自定義固件: 這是刷入第三方 Recovery(如 TWRP)、自定義 ROM(如 LineageOS)、修改后的內核 (
boot.img
) 或vendor
/odm
分區的前提。 - 清除用戶數據: 作為安全措施,解鎖過程通常會強制清除設備上的所有用戶數據(Factory Reset)。這是為了防止加密數據在新系統下無法訪問或產生安全風險。重要提示:解鎖前務必備份所有重要數據!
- 可能影響保修: 解鎖 Bootloader 通常會使設備的官方保修失效(取決于制造商政策)。
- 解除寫入限制: 解鎖后,Bootloader 允許使用
-
與 16k Page Size 的關系:
- 要使用 16k page size,你需要一個專門為你的設備型號編譯的、使用了 16k page size 配置的固件(通常是內核、
vendor_boot
或vendor
/odm
分區中的模塊)。 - 編譯這樣的固件需要訪問設備的特定內核源代碼和配置。
- 將這個編譯好的固件刷入設備,必須寫入到受 Bootloader 保護的分區(如
boot
,vendor_boot
,vendor
,odm
)。 - 因此,只有在 Bootloader 解鎖后,你才能使用
fastboot flash boot ...
,fastboot flash vendor_boot ...
,fastboot flash vendor ...
等命令,將支持 16k page size 的固件組件刷入到相應的分區中。 刷入成功后,設備啟動時加載的就是支持 16k page size 的內核和驅動了。
- 要使用 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 鎖定狀態下是無法完成的。
更多
- 代碼上如何適配:https://blog.csdn.net/yeshennet/article/details/14501504
- 16k page size常見庫升級:https://blog.csdn.net/yeshennet/article/details/149562775