Các thiết bị Android có một số phân vùng hoặc các phần cụ thể của không gian lưu trữ được dùng để chứa các phần cụ thể của phần mềm trên thiết bị. Mỗi phân vùng chứa một hình ảnh phân vùng (tệp IMG) hoặc ảnh chụp nhanh của tất cả phần mềm cho phân vùng đó. Hình 1 cho thấy bố cục của các phân vùng chính trên một thiết bị:
Hình 1. Bố cục của các phân vùng chính.
Phân vùng được phân loại thành 3 danh mục:
Phân vùng hệ thống là những phân vùng được cập nhật khi bạn cập nhật hệ điều hành và các tính năng khác.
system
,boot
vàinit_boot
là các phân vùng hệ thống cốt lõi.Phân vùng của nhà cung cấp chứa mã dành riêng cho thiết bị và phần cứng có thể không bao giờ được cập nhật sau lần phát hành ban đầu. Các phân vùng
vendor
,vendor_boot
vàodm
là các phân vùng chính.Phân vùng không thể cập nhật là những phân vùng có nội dung không được cập nhật hoặc được cập nhật bằng dữ liệu người dùng.
Mã trong các phân vùng hệ thống và nhà cung cấp có thể tương tác bằng một giao diện ổn định có tên là giao diện nhà cung cấp (VINTF).
Phân vùng hệ thống
Sau đây là danh sách tất cả các phân vùng hệ thống và mục đích sử dụng của chúng:
phân vùng
boot
. Phân vùng này chứa một Hình ảnh hạt nhân chung (GKI). Phân vùng này cũng chứa ramdisk chung trong các thiết bị ra mắt trên Android 12 trở xuống. Để biết thêm thông tin về ổ đĩa ngẫu nhiên chung, hãy xem phần Nội dung hình ảnh ổ đĩa ngẫu nhiên chung.Phân vùng
init_boot
(Android 13 trở lên). Phân vùng này chứa một ramdisk chung. Trong Android 11 và 12, ramdisk chung nằm trong phân vùngboot
.phân vùng
system
. Phân vùng này chứa hình ảnh hệ thống được dùng cho các sản phẩm của nhà sản xuất thiết bị gốc (OEM).phân vùng
system_ext
. Phân vùng này chứa các tài nguyên hệ thống và các mô-đun hệ thống độc quyền giúp mở rộng hình ảnh hệ thống chung trong phân vùngsystem
.phân vùng
system_dlkm
. Phân vùng này chứa các mô-đun GKI. Để biết thêm thông tin về phân vùng này, hãy xem bài viết Triển khai một phân vùng mô-đun GKI.phân vùng
product
. Phân vùng này có thể chứa các mô-đun dành riêng cho sản phẩm không được đi kèm với bất kỳ phân vùng nào khác.phân vùng
pvmfw
. Phân vùng này lưu trữ Protected Virtual Machine Firmware (pvmfw) (Phần mềm của máy ảo được bảo vệ), đây là mã đầu tiên chạy trong các VM được bảo vệ. Để biết thêm thông tin, hãy xem phần Firmware máy ảo được bảo vệ.phân vùng
generic_bootloader
. Phân vùng này chứa trình tải khởi động chung.
Phân vùng nhà cung cấp
Sau đây là danh sách tất cả các phân vùng của nhà cung cấp và mục đích sử dụng của chúng:
phân vùng
vendor_boot
. Phân vùng này chứa mã khởi động dành riêng cho nhà cung cấp. Để biết thêm thông tin, hãy xem bài viết Phân vùng khởi động của nhà cung cấp.phân vùng
recovery
. Phân vùng này lưu trữ hình ảnh khôi phục, được khởi động trong quá trình cập nhật qua mạng không dây (OTA). Các thiết bị hỗ trợ tính năng cập nhật liền mạch có thể lưu trữ hình ảnh khôi phục dưới dạng ramdisk có trong hình ảnhboot
hoặcinit_boot
. Để biết thêm thông tin về bản cập nhật liền mạch, hãy xem phần Bản cập nhật A/B (liền mạch).phân vùng
vbmeta
. Phân vùng này chứa thông tin về quy trình Khởi động đã xác minh cho tất cả các phân vùng. Thông tin này xác minh rằng các hình ảnh được cài đặt trong mỗi phân vùng đều đáng tin cậy. Để biết thêm thông tin về tính năng Xác minh quy trình khởi động, hãy xem phần Xác minh quy trình khởi động.phân vùng
vendor
. Phân vùng này chứa mọi tệp nhị phân dành riêng cho nhà cung cấp và không đủ chung chung để phân phối cho AOSP.phân vùng
vendor_dlkm
. Phân vùng này chứa các mô-đun kernel của nhà cung cấp. Bằng cách lưu trữ các mô-đun hạt nhân của nhà cung cấp trong phân vùng này thay vì phân vùngvendor
, bạn có thể cập nhật các mô-đun hạt nhân mà không cần cập nhật phân vùngvendor
. Để biết thêm thông tin, hãy xem bài viết Phân vùng DKLM của nhà cung cấp và nhà sản xuất thiết bị gốc (ODM).phân vùng
odm
. Phân vùng này chứa các chế độ tuỳ chỉnh của nhà sản xuất thiết kế ban đầu (ODM) đối với các gói hỗ trợ bảng (BSP) của nhà cung cấp hệ thống trên một chip (SoC). Những hoạt động tuỳ chỉnh như vậy cho phép ODM thay thế hoặc tuỳ chỉnh các thành phần SoC, đồng thời triển khai các mô-đun nhân cho các thành phần, trình nền dành riêng cho bảng và các tính năng dành riêng cho ODM trên các lớp trừu tượng phần cứng (HAL). Phân vùng này là không bắt buộc. Thông thường, phân vùng này được dùng để chứa các chế độ tuỳ chỉnh để thiết bị có thể dùng một hình ảnh nhà cung cấp cho nhiều SKU phần cứng. Để biết thêm thông tin, hãy xem bài viết phân vùng ODM.phân vùng
odm_dlkm
. Phân vùng này dành riêng cho việc lưu trữ các mô-đun nhân ODM. Bằng cách lưu trữ các mô-đun hạt nhân ODM trong phân vùng này thay vì phân vùngodm
, bạn có thể cập nhật các mô-đun hạt nhân ODM mà không cần cập nhật phân vùngodm
. Để biết thêm thông tin, hãy xem bài viết Phân vùng DKLM của nhà cung cấp và nhà sản xuất thiết bị gốc (ODM).phân vùng
radio
. Phân vùng này chứa hình ảnh vô tuyến và chỉ cần thiết cho những thiết bị có đài phát thanh với phần mềm dành riêng cho đài phát thanh trong một phân vùng chuyên dụng.
Phân vùng không thể cập nhật
Sau đây là danh sách tất cả các phân vùng không thể cập nhật và mục đích sử dụng của chúng:
phân vùng
cache
. Phân vùng này chứa dữ liệu tạm thời và là không bắt buộc nếu thiết bị của bạn sử dụng tính năng cập nhật liền mạch. Phân vùng này không cần có thể ghi từ trình tải khởi động, nhưng cần có thể xoá. Kích thước phân vùng tuỳ thuộc vào loại thiết bị và dung lượng trống trênuserdata
; thông thường, 50 đến 100 MB là đủ.phân vùng
userdata
. Phân vùng này chứa các ứng dụng và dữ liệu do người dùng cài đặt, bao gồm cả dữ liệu tuỳ chỉnh.phân vùng
metadata
. Nếu thiết bị của bạn dùng tính năng mã hoá siêu dữ liệu, thì phân vùng này sẽ chứa khoá mã hoá siêu dữ liệu. Kích thước của phân vùng này là 16 MB trở lên, không được mã hoá và dữ liệu của phân vùng này không được chụp nhanh. Phân vùng này sẽ bị xoá khi thiết bị được đặt lại về trạng thái ban đầu.
Các quy tắc và đề xuất cập nhật phân vùng
Bạn nên cập nhật tất cả các phân vùng hệ thống thành một khối và tất cả các phân vùng nhà cung cấp thành một khối khác. Bằng cách cập nhật toàn bộ nhóm phân vùng, bạn có thể kiểm thử để xác minh rằng các giao diện giữa hình ảnh trong mỗi phân vùng vẫn ổn định.
Bất kể bạn cập nhật các phân vùng như thế nào, bạn vẫn phải cập nhật các phân vùng sau do các phần phụ thuộc được liên kết chặt chẽ và thiếu API ổn định:
- Phân vùng
boot
vàsystem_dlkm
- các phân vùng
init_boot
,system
,system_ext
vàproduct
Phân vùng động
Các thiết bị chạy Android 11 trở lên có thể hỗ trợ các phân vùng động. Đây là một hệ thống phân vùng không gian người dùng cho Android, cho phép bạn tạo, đổi kích thước hoặc huỷ các phân vùng trong quá trình cập nhật qua mạng (OTA). Để biết thêm thông tin, hãy xem bài viết Phân vùng động.
phân vùng
misc
. Phân vùng này được phân vùng khôi phục sử dụng và có kích thước từ 4 KB trở lên.phân vùng
tos
. Phân vùng này chứa hình ảnh nhị phân của Trusty OS và chỉ được dùng nếu thiết bị có Trusty. Để biết thêm thông tin, hãy xem bài viết Các phân vùng của Trusty OS (TOS).
Biến thể sản phẩm Soong
Hệ thống xây dựng Soong sử dụng các biến thể hình ảnh để phân chia các phần phụ thuộc bản dựng. Các mô-đun gốc (/build/soong/cc
) có thể thay đổi các mô-đun quy trình hệ thống thành biến thể cốt lõi và các mô-đun quy trình của nhà cung cấp thành biến thể của nhà cung cấp; một mô-đun trong một biến thể hình ảnh không thể liên kết với các mô-đun khác trong một biến thể hình ảnh khác.
Trong Android 12 trở lên, một mô-đun hệ thống có vendor_available: true
sẽ tạo một biến thể của nhà cung cấp ngoài biến thể cốt lõi. Để tạo một biến thể sản phẩm, bạn phải xác định product_available: true
. Một số thư viện VNDK không có product_available: true
không có sẵn cho các mô-đun sản phẩm.