Android 11 hỗ trợ các cấu phần phần mềm bản dựng ảnh chụp nhanh VNDK
và ảnh chụp nhanh nhà cung cấp. Bạn có thể dùng các cấu phần phần mềm này để tạo vendor.img bất kể phiên bản Android trên cây nguồn. Điều này cho phép sử dụng các phiên bản hình ảnh hỗn hợp, chẳng hạn như nhà cung cấp cũ hơn và hình ảnh hệ thống mới hơn.
Các phiên bản hình ảnh hỗn hợp không được hỗ trợ cho những trường hợp sau.
Android.mk.Vì Soong tạo ảnh chụp nhanh nhà cung cấp, nên các mô-đun được xác định trongAndroid.mkkhông được ghi lại dưới dạng ảnh chụp nhanh nhà cung cấp (các mô-đun độc quyền của SoC trongAndroid.mkcũng không được đảm bảo hoạt động).Trình dọn dẹp. Ảnh chụp nhanh nhà cung cấp và VNDK không hỗ trợ trình dọn dẹp vì các biến thể trình dọn dẹp cần được tạo riêng.
Giới thiệu về ảnh chụp nhanh nhà cung cấp
Ảnh chụp nhanh nhà cung cấp là ảnh chụp nhanh do OEM sở hữu. Đây là một tập hợp các mô-đun C++ được tạo sẵn, được cài đặt trong /vendor nhưng được duy trì trên AOSP. Nếu không ghi lại ảnh chụp nhanh nhà cung cấp của phiên bản Android trước, việc nâng cấp lên phiên bản Android mới có thể làm hỏng phân vùng nhà cung cấp vì các mô-đun ảnh chụp nhanh nhà cung cấp có thể bị xoá hoặc thay đổi mà không cần khả năng tương thích với API hoặc ABI.
Ảnh chụp nhanh nhà cung cấp chứa các mô-đun sau trên AOSP.
- Thư viện tiêu đề, tĩnh và dùng chung có
vendor: truehoặcvendor_available: true - Thư viện tĩnh VNDK có
vendor_available: true - Tệp đối tượng và tệp thực thi có
vendor: truehoặcvendor_available: true
Các mô-đun trong các thư mục sau được coi là mã phần cứng do SoC sở hữu và bị bỏ qua.
device/vendor/hardware/, ngoại trừhardware/interfaceshardware/libhardwarehardware/libhardware_legacy
Mã phần cứng do SoC sở hữu cũng có thể tồn tại trong các thư mục khác. Hiện tại, ảnh chụp nhanh nhà cung cấp không hỗ trợ các cấu hình như vậy.
Tạo ảnh chụp nhanh nhà cung cấp
Tạo ảnh chụp nhanh nhà cung cấp bằng các lệnh sau.
. build/envsetup.shlunch targetm dist vendor-snapshot
Các lệnh này tạo tệp vendor-$(TARGET_DEVICE).zip trong $DIST_DIR. Ví dụ sau đây cho thấy tệp zip ảnh chụp nhanh nhà cung cấp:
vendor-$(TARGET_DEVICE).zip
├── arch-arm64-armv8-a
│ ├── binary -> binary files, *.json files
│ ├── header -> *.json files
│ ├── object -> *.o files, *.json files
│ ├── shared -> *.so files, *.json files
│ └── static -> *.a files, *.json files
├── arch-arm-armv8-a -> (arch-arm64-armv8-a)
├── configs -> *.rc files, *.xml files
├── include -> exported header files (*.h, *.hh, etc.)
└── NOTICE_FILES -> license txt files
- Các tệp JSON chứa các cờ như tên mô-đun, thư mục đã xuất, tệp
init_rcvà tệpvintf_fragments. - Thư mục
configschứa các tệp.rcvà.xmltừ các cờinit_rcvàvintf_fragments.
Cài đặt ảnh chụp nhanh nhà cung cấp
Để cài đặt ảnh chụp nhanh nhà cung cấp, hãy chuyển đến thư mục đích và sử dụng các lệnh sau.
python3 development/vendor_snapshot/update.py --local $DIST_DIR --install-dir \
vendor/vendor name/vendor_snapshot VERLệnh này tạo
/vendor/vendor name/vendor_snapshot/vVER/$(TARGET_ARCH)/Android.bp.
Ví dụ sau đây cho thấy cấu trúc thư mục của ảnh chụp nhanh nhà cung cấp:
vendor/vendor name/vendor_snapshot/
├── v30
│ ├── arm64
│ │ ├── arch-arm64-armv8-a
│ │ │ ├── binary -> (prebuilt libs)
│ │ │ ├── object -> (prebuilt libs)
│ │ │ ├── shared -> (prebuilt libs)
│ │ │ └── static -> (prebuilt libs)
│ │ ├── arch-arm-armv8-a -> (same as above)
│ │ ├── configs -> (config files)
│ │ ├── include -> (exported header files)
│ │ ├── NOTICE_FILES -> (license files)
│ │ └── Android.bp -> (snapshot modules)
│ ├── arm -> (same as above)
│ ├── x86_64 -> (same as above)
│ └── x86 -> (same as above)
└── (other vendor versions) -> (same as above)
Tạo hình ảnh nhà cung cấp
Khi sử dụng cấu phần phần mềm bản dựng ảnh chụp nhanh VNDK
và ảnh chụp nhanh nhà cung cấp, bạn có thể tạo vendor.img bất kể phiên bản Android
trên cây nguồn, nhờ đó có thể tạo các phiên bản hình ảnh hỗn hợp. Sau khi cài đặt cả ảnh chụp nhanh VNDK và ảnh chụp nhanh nhà cung cấp, hãy đặt BOARD_VNDK_VERSION thành phiên bản của nhà cung cấp. Ví dụ:
# BoardConfig.mk
BOARD_VNDK_VERSION := 29
Khi BOARD_VNDK_VERSION được đặt thành một giá trị khác current, hệ thống xây dựng sẽ:
- Bật các mô-đun ảnh chụp nhanh VNDK và mô-đun ảnh chụp nhanh nhà cung cấp của
BOARD_VNDK_VERSION. Mỗi mô-đun ảnh chụp nhanh sẽ ghi đè một mô-đun nguồn C++ có cùng tên. - Đặt
ro.vndk.versionthànhBOARD_VNDK_VERSION. - Cài đặt các mô-đun ảnh chụp nhanh VNDK của
BOARD_VNDK_VERSIONvàosystem_ext.