Thiết bị Android bao gồm một số phân vùng phục vụ các chức năng khác nhau trong quá trình khởi động.
Phân vùng tiêu chuẩn
Phân vùng
boot
. Phân vùng này chứa một hình ảnh hạt nhân và đã được tạo đang sử dụngmkbootimg
. Bạn có thể sử dụng phân vùng ảo để cài đặt ROM hình ảnh trực tiếp mà không cần cài đặt ROM phân vùng khởi động mới. Phân vùng này cũng chứa ramdisk chung trong các thiết bị được phát hành trước đó Android 13.hạt nhân. Phân vùng
kernel
ảo sẽ ghi đè nhân (zImage
,zImage-dtb
,Image.gz-dtb
) bằng cách ghi hình ảnh hạt nhân mới lên hình ảnh hạt nhân cũ hình ảnh hạt nhân. Nếu hạt nhân phát triển được cung cấp không tương thích, bạn có thể cần cập nhật phân vùngvendor
,system
hoặcdtb
(nếu có) bằng mô-đun nhân được liên kết.đĩa RAM. Phân vùng
ramdisk
ảo sẽ ghi đè ổ đĩa ram bằng cách ghi hình ảnh ramdisk mới lên hình ảnh ramdisk cũ.
Thao tác ghi đè sẽ xác định vị trí bắt đầu của hình ảnh hiện tại trong eMMC rồi sao chép hình ảnh mới vào vị trí đó. Hình ảnh mới (hạt nhân hoặc ramdisk) có thể lớn hơn ổ đĩa hiện tại; để tạo không gian, trình tải khởi động có thể di chuyển dữ liệu theo sau hình ảnh hoặc bỏ qua thao tác bằng lỗi.
Phân vùng
init_boot
. Phân vùng này chứa ramdisk chung cho các thiết bị chạy Android 13 trở lên.Phân vùng
system
. Phân vùng này chứa khung Android.Phân vùng
odm
. Phân vùng này chứa nhà sản xuất thiết kế gốc (ODM) các tuỳ chỉnh đối với gói hỗ trợ bảng (BSP) của nhà cung cấp hệ thống trên chip (SoC). Các tuỳ chỉnh đó cho phép ODM thay thế hoặc tuỳ chỉnh các thành phần SoC, và triển khai các mô-đun nhân cho các thành phần dành riêng cho hội đồng quản trị, trình nền và Các tính năng dành riêng cho ODM trên lớp trừu tượng phần cứng (HAL). Phân vùng này là tuỳ chọn; thường, tệp này được dùng để chứa các tuỳ chỉnh để thiết bị có thể sử dụng hình ảnh nhà cung cấp duy nhất cho nhiều SKU phần cứng. Để biết chi tiết, xem ODM Vách ngăn.Phân vùng
odm_dlkm
. Phân vùng này dành riêng để lưu trữ nhân ODM các mô-đun. Lưu trữ các mô-đun hạt nhân ODM trong phân vùngodm_dlkm
(ngược lại vào phân vùngodm
) giúp cập nhật các mô-đun nhân ODM mà không cần cập nhật phân vùngodm
.Phân vùng
recovery
. Phân vùng này lưu trữ hình ảnh khôi phục, khởi động trong quá trình OTA. Thiết bị hỗ trợ liền mạch các bản cập nhật này có thể lưu trữ hình ảnh khôi phục dưới dạng ổ đĩa cứng chứa trong hình ảnhboot
hoặcinit_boot
(thay vì một ổ đĩa riêng biệt hình ảnh).Phân vùng
cache
. Phân vùng này lưu trữ dữ liệu tạm thời và là phân vùng không bắt buộc nếu thiết bị sử dụng bản cập nhật liên tục. Phân vùng bộ nhớ đệm không cần có thể ghi từ trình tải khởi động, nhưng cần xoá được. Phân vùng kích thước phụ thuộc vào loại thiết bị và dung lượng có sẵn trênuserdata
; thường thì 50 MB–100 MB là đủ.Phân vùng
misc
. Phân vùng này được phân vùng khôi phục và 4 KB trở lên.Phân vùng
userdata
. Phân vùng này chứa các ứng dụng do người dùng cài đặt và dữ liệu, bao gồm cả dữ liệu tuỳ chỉnh.Phân vùng
metadata
. Phân vùng này dùng để lưu trữ siêu dữ liệu khoá mã hoá khi thiết bị sử dụng siêu dữ liệu mã hoá. Kích thước là 16 MB trở lên. Dữ liệu trong đó không được mã hoá và sẽ không được chụp nhanh. Dữ liệu này sẽ bị xoá khi thiết bị được đặt lại về trạng thái ban đầu. Cách sử dụng phân vùng này là bị giới hạn nghiêm ngặt.Phân vùng
vendor
. Phân vùng này chứa bất kỳ tệp nhị phân nào không phải có thể phân phối cho AOSP. Nếu thiết bị không chứa thông tin độc quyền, bạn có thể bỏ qua phân vùng này.Phân vùng
vendor_dlkm
. Phân vùng này dành riêng cho việc lưu trữ nhà cung cấp mô-đun nhân. Lưu trữ các mô-đun nhân của nhà cung cấp trong phân vùngvendor_dlkm
(trái ngược với phân vùngvendor
) giúp cập nhật nhân hệ điều hành mô-đun mà không cần cập nhật phân vùngvendor
.Phân vùng
radio
. Phân vùng này chứa hình ảnh radio và cần thiết chỉ dành cho các thiết bị có đài phát thanh có phần mềm dành riêng cho đài phát thanh phân vùng dành riêng.Phân vùng
tos
. Phân vùng này lưu trữ hình ảnh nhị phân của Trusty OS và chỉ được dùng nếu thiết bị có Trusty. Để biết chi tiết, hãy xem TOS Vách ngăn.Phân vùng
pvmfw
. Phân vùng này lưu trữ Máy ảo được bảo vệ Chương trình cơ sở (pvmfw) là mã đầu tiên chạy trong các máy ảo được bảo vệ. Xem Chương trình cơ sở cho máy ảo được bảo vệ để biết thêm chi tiết.
Phân vùng động
Các thiết bị chạy Android 11 trở lên có thể hỗ trợ phân vùng động, là một hệ thống phân vùng không gian người dùng dành cho Android cho phép tạo, đổi kích thước hoặc phá huỷ phân vùng trong mạng không dây (OTA) bản cập nhật. Để biết thông tin chi tiết, hãy xem phần Linh động .
Chỉ định các phân vùng quan trọng
Nếu thiết bị yêu cầu chạy dữ liệu hoặc phân vùng cụ thể, bạn phải chỉ định
những phân vùng hoặc dữ liệu đó được bảo vệ hoàn toàn hoặc có thể cài đặt ROM, nghĩa là
chúng có thể tạo lại, cung cấp hoặc trích xuất được bằng cách sử dụng lệnh fastboot oem
.
Dữ liệu này bao gồm các dữ liệu như số sê-ri, số sê-ri
của từng thiết bị trong phần cài đặt của mỗi thiết bị
dữ liệu hiệu chỉnh và nhiều dữ liệu khác.
Các thay đổi trong Android 11
Android 11 đưa ra nhiều thay đổi về phân vùng, trong đó có cả các quy định hạn chế về việc liên kết đến các thư viện và các biến thể hình ảnh mới trong phiên bản Soong.
Hình 1. Bố cục phân vùng trong Android 11
Hình ảnh hệ thống đơn (SSI). Một hình ảnh khái niệm mới chứa Hình ảnh
system
vàsystem_ext
. Trường hợp các phân vùng này phổ biến cho một tập hợp của thiết bị mục tiêu, những thiết bị đó có thể chia sẻ SSI và bỏ qua việc tạo Hình ảnhsystem
vàsystem_ext
.Phân vùng
system_ext
. Một phân vùng mới có thể sử dụng tài nguyênsystem
và có thể bao gồm các mô-đun hệ thống:Mở rộng các mô-đun hệ thống AOSP (Dự án nguồn mở Android) trong phân vùng
system
. Bạn nên nâng cấp luồng các mô-đun đó lên AOSP để có thể cài đặt chúng vàosystem
phân vùng sau.Gói các mô-đun dành riêng cho OEM hoặc SoC. Bạn nên bỏ nhóm các mô-đun như vậy để chúng có thể được cài đặt vào phân vùng
product
hoặcvendor
.
Phân vùng
system
. Hình ảnh hệ thống phổ biến dùng cho các sản phẩm của OEM. T4 bạn nên di chuyển các mô-đun thuộc quyền sở hữu riêng ra khỏi phân vùngsystem
, bằng cách nâng cấp luồng dữ liệu lên AOSP hoặc bằng cách di chuyển chúng sang phân vùngsystem_ext
.Phân vùng
product
. Phân vùng này hiện có thể sử dụng các giao diện được phép để cài đặt các mô-đun dành riêng cho sản phẩm không đi kèm với bất kỳ mô-đun nào khác phân vùng.
Thay đổi về VNDK
Bộ công cụ phát triển gốc dành cho nhà cung cấp (VNDK)
là một tập hợp các thư viện được cài đặt trong phân vùng system
và được thiết kế
dành riêng cho nhà cung cấp để triển khai HAL của họ.
Trong Android 10 trở xuống, phân vùng
vendor
có thể liên kết với các thư viện VNDK trong phân vùngsystem
, nhưng không thể liên kết với các thư viện khác trongsystem
phân vùng. Các mô-đun gốc trong phân vùngproduct
có thể liên kết với bất kỳ thư viện nào trong phân vùngsystem
.Trong Android 11 trở lên,
product
vàvendor
phân vùng có thể liên kết với thư viện VNDK trong phân vùngsystem
, nhưng không thể liên kết liên kết đến các thư viện khác trong phân vùngsystem
.
Các biến thể sản phẩm sắp phát hành
Hệ thống xây dựng Soong sử dụng các biến thể hình ảnh để tách
tạo các phần phụ thuộc. Mô-đun gốc (/build/soong/cc
) có thể thay đổi hệ thống
xử lý mô-đun cho biến thể chính và mô-đun quy trình của nhà cung cấp
biến thể nhà cung cấp; một mô-đun trong một biến thể hình ảnh không thể liên kết đến các mô-đun khác trong
một biến thể hình ảnh khác.
Trên Android 10 trở xuống, một mô-đun hệ thống sẽ tự động tạo ra các biến thể cốt lõi. Tệp này cũng có thể tạo các biến thể của nhà cung cấp bằng cách xác định
vendor_available: true
trongAndroid.bp
tệp; điều này cho phép các mô-đun của nhà cung cấp liên kết với các mô-đun hệ thống. Thư viện VNDK (là biến thể nhà cung cấp của thư việnsystem
) cũng có thể tạo biến thể nhà cung cấp cho các mô-đun nhà cung cấp bằng cách xác địnhvendor_available: true
trong các tệpAndroid.bp
(xem ví dụ).Trong Android 11, mô-đun hệ thống cũng có thể tạo một biến thể sản phẩm (ngoài các biến thể chính và biến thể nhà cung cấp) bằng cách đang xác định
vendor_available: true
.Trong Android 12 trở lên, một mô-đun hệ thống có
vendor_available: true
tạo một biến thể nhà cung cấp ngoài biến thể chính biến thể. Để tạo một biến thể sản phẩm,product_available: true
phải được xác định. Một số thư viện VNDK không cóproduct_available: true
thì không có sẵn cho mô-đun sản phẩm.