Tổng quan

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ụng mkbootimg. 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ùng vendor, system hoặc dtb (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ùng odm_dlkm (ngược lại vào phân vùng odm) 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ùng odm.

  • 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 ảnh boot hoặc init_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ên userdata; 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ùng vendor_dlkm (trái ngược với phân vùng vendor) 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ùng vendor.

  • 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.

Bố cục phân vùng Android

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 systemsystem_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 ảnh systemsystem_ext.

  • Phân vùng system_ext. Một phân vùng mới có thể sử dụng tài nguyên system 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ào system 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ặc vendor.

  • 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ùng system, 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ùng system_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ùng system, nhưng không thể liên kết với các thư viện khác trong system phân vùng. Các mô-đun gốc trong phân vùng product có thể liên kết với bất kỳ thư viện nào trong phân vùng system.

  • Trong Android 11 trở lên, productvendor phân vùng có thể liên kết với thư viện VNDK trong phân vùng system, 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ùng system.

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 trong Android.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ện system) 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 định vendor_available: true trong các tệp Android.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.