Kể từ Android 10,
Hình ảnh hệ thống chung (GSI) được dùng để chạy
Đã thay đổi thử nghiệm tuân thủ CTS-on-GSI/VTS
từ userdebug sang loại bản dựng người dùng để được ký phát hành. Đây là một
sự cố khi kiểm tra VTS vì VTS yêu cầu
adb root
để chạy, nhưng
adb root
không có trên thiết bị bản dựng người dùng.
Ra mắt ổ đĩa gỡ lỗi (hoặc hình ảnh khởi động gỡ lỗi) để bật adb root
trên một
thiết bị bản dựng của người dùng có trình tải khởi động là
đã mở khóa. Việc này giúp đơn giản hoá quá trình kiểm thử
quy trình bằng cách sử dụng cùng một bản dựng GSI system.img
của người dùng dành cho CTS-on-GSI và
VTS trên GSI. Đối với chế độ thiết lập STS, việc sử dụng một OEM khác dùng gỡ lỗi người dùng system.img
vẫn là
là bắt buộc.
Bảng sau đây trình bày những thay đổi về hình ảnh và loại bản dựng để kiểm thử tính tuân thủ trong Android 10.
Bộ thử nghiệm | Kiểm thử bằng | Tạo | Gỡ lỗi ổ đĩa RAM | adb gốc không? | Android 9 -> 10 thay đổi biến thể bản dựng |
---|---|---|---|---|---|
CTS | Hệ thống của OEM | người dùng | Không | Không | Không có thay đổi |
CTS trên GSI | GSI (Hình ảnh hệ thống chung) | người dùng | Không | Không | gỡ lỗi người dùng -> GSI của người dùng ký bản phát hành |
STS | Hệ thống của OEM | gỡ lỗi người dùng | Không | Có | Mới trong Q |
VTS | GSI (Hình ảnh hệ thống chung) | người dùng | Có | Có | gỡ lỗi người dùng -> GSI của người dùng ký bản phát hành |
Tổng quan
Các tệp hình ảnh bổ sung này được tạo trong thư mục bản dựng
(${ANDROID_PRODUCT_OUT}
):
boot-debug.img
vendor_boot-debug.img
Khi boot-debug.img
được cài đặt ROM vào phân vùng boot
của thiết bị,
phiên bản userdebug của tệp sepolicy hệ thống và một tệp thuộc tính bổ sung,
adb_debug.prop
, đã được tải. Thao tác này cho phép adb root
với bản dựng người dùng
system.img
(của GSI hoặc OEM).
Cho
Hình ảnh hạt nhân chung (GKI)
sử dụng các thiết bị có phân vùng vendor_boot
, boot-debug.img
không được
được cài đặt nhanh, vì phân vùng boot
phải được cài đặt ROM bằng hình ảnh GKI được chứng nhận.
Thay vào đó, vendor_boot-debug.img
sẽ được cài đặt ROM vào vendor_boot
để tạo điều kiện gỡ lỗi ramdisk.
Điều kiện tiên quyết để sử dụng ổ đĩa RAM gỡ lỗi
Ổ đĩa gỡ lỗi do OEM cung cấp đang chạy các bài kiểm tra tính tuân thủ. Nó không được ký phát hành và chỉ có thể sử dụng nếu thiết bị đã được mở khoá.
Ổ đĩa RAM gỡ lỗi sẽ không được tạo hoặc sử dụng để nâng cấp các thiết bị có:
BOARD_BUILD_SYSTEM_ROOT_IMAGE
đúngskip_initramfs
trong dòng lệnh kernel
GSI Android 12
Bạn không cần phải hướng dẫn thêm để sử dụng ổ đĩa RAM gỡ lỗi với GSI Android 12.
Kể từ ngày 29/9/2021, gỡ lỗi ổ đĩa RAM không còn yêu cầu cập nhật bằng
Công cụ repack_bootimg
. GSI Android 12
bản dựng sau SGR1.210929.001 (7777720)
kết hợp các tính năng mới nhất
Tệp userdebug_plat_sepolicy.cil
trong system.img
của nó và bỏ qua
userdebug_plat_sepolicy.cil
khỏi ổ đĩa RAM gỡ lỗi. Xem
CL cho
chi tiết.
GSI Android 11
Khi boot-debug.img
hoặc vendor_boot-debug.img
được sử dụng, hệ thống
sepolicy được tải từ tệp userdebug_plat_sepolicy.cil
trong phần gỡ lỗi
ổ đĩa ram của boot-debug.img
hoặc vendor_boot-debug.img
. Để khởi động GSI
hãy luôn kết hợp các thay đổi mới nhất về chính sách từ
android11-gsi
để tạo lại boot-debug.img
hoặc vendor_boot-debug.img
.
Ngoài ra, bạn có thể sử dụng công cụ repack_bootimg
để tạo lại
boot-debug.img
hoặc vendor_boot-debug.img
có chính sách cấu hình GSI đã cập nhật.
Đóng gói lại một ổ đĩa RAM gỡ lỗi
Thay vì kết hợp các thay đổi sepolicy để xây dựng lại boot-debug.img
, các đối tác
có thể sử dụng repack_bootimg
để cập nhật tệp chính sách GSI của Hệ thống thông tin chung (GSI) vào boot-debug.img
(hoặc vendor_boot-debug.img
nếu thiết bị sử dụng GKI).
Các bước thực hiện như sau:
Tải
otatools.zip
xuống từ https://ci.android.com. Bạn nên tải xuống từ cấu phần phần mềm bản dựng củaaosp_arm64-userdebug
vàoaosp-main
.Thiết lập môi trường thực thi cho
repack_bootimg
:unzip otatools.zip -d otatools
export PATH="${PWD}/otatools/bin:${PATH}"
repack_bootimg --help
Tải
userdebug_plat_sepolicy.cil
xuống hoặcboot-with-debug-ramdisk-${KERNEL_VERSION}.img
trong bản dựng GSI mà bạn đang dùng đang sử dụng. Ví dụ: nếu bạn đang sử dụng GSI arm64 củaRJR1.211020.001 (7840830)
, sau đó tải xuống từ https://ci.android.com/builds/submitted/7840830/aosp_arm64-user/entity.Cập nhật thiết bị
boot-debug.img
hoặcvendor_boot-debug.img
bằnguserdebug_plat_sepolicy.cil
:repack_bootimg --local --dst_bootimg boot-debug.img \ --ramdisk_add userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
# If using GKI
repack_bootimg --local --dst_bootimg vendor_boot-debug.img \ --ramdisk_add userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
Với
boot-with-debug-ramdisk-${KERNEL_VERSION}.img
:repack_bootimg --src_bootimg boot-with-debug-ramdisk-5.4.img \ --dst_bootimg boot-debug.img \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
# If using GKI
repack_bootimg --src_bootimg boot-with-debug-ramdisk-5.4.img \ --dst_bootimg vendor_boot-debug.img \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
Các đối số của
--ramdisk_add
có thể được điều chỉnh theo thiết bị . Xem phần tiếp theo để biết thông tin chi tiết nội dung giải thích.
Đường dẫn của sepolicy userdebug
repack_bootimg
ở trên sao chép tệp userdebug_plat_sepolicy.cil
từ
ổ đĩa RAM --src_bootimg
vào ổ đĩa RAM --dst_bootimg
. Tuy nhiên, đường dẫn
trong ổ đĩa ram gỡ lỗi có thể khác nhau tuỳ theo phiên bản Android. Ngang bằng
Android 10 và 11, đường dẫn là
first_stage_ramdisk/userdebug_plat_sepolicy.cil
cho các thiết bị có
androidboot.force_normal_boot=1
trong dòng lệnh của nhân. Nếu không, giá trị
đường dẫn là userdebug_plat_sepolicy.cil
.
Chạy lệnh sau để kiểm tra xem có androidboot.force_normal_boot
hay không
trong dòng lệnh kernel:
adb root
adb shell cat /proc/cmdline | grep force_normal_boot
Kể từ Android 12, đường dẫn trong một bản gỡ lỗi
ổ đĩa ram luôn là userdebug_plat_sepolicy.cil
, bất kể sự tồn tại của
androidboot.force_normal_boot=1
trong dòng lệnh của nhân. Nội dung sau đây
bảng hiển thị đường dẫn trong một ổ đĩa ram gỡ lỗi ở các phiên bản Android khác nhau.
Hình ảnh gỡ lỗi | Android 10 | Android 11 | Android 12 |
---|---|---|---|
GKI khởi động bằng-gỡ lỗi-ramdisk-${KERNEL_VERSION}.img | Không áp dụng | first_stage_ramdisk/userdebug_plat_sepolicy.cil |
userdebug_plat_sepolicy.cil |
boot-debug.img dành riêng cho thiết bị | Phụ thuộc vào force_normal_boot | Phụ thuộc vào force_normal_boot | userdebug_plat_sepolicy.cil |
Provider_boot-debug.img dành riêng cho thiết bị | Không áp dụng | Phụ thuộc vào force_normal_boot | userdebug_plat_sepolicy.cil |
Bạn có thể chỉ định --ramdisk_add
để sao chép các tệp từ và sang các đường dẫn khác bằng một
danh sách src_path:dst_path
cặp. Ví dụ: các lệnh sau đây sao chép
gửi first_stage_ramdisk/userdebug_plat_sepolicy.cil
từ boot-with-debug-ramdisk-5.4.img
trên Android 11 sang
first_stage_ramdisk/userdebug_plat_sepolicy.cil
trong vendor_boot-debug.img
của Android 11.
repack_bootimg \
--src_bootimg boot-with-debug-ramdisk-5.4.img \
--dst_bootimg vendor_boot-debug.img \
--ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
Nếu không có androidboot.force_normal_boot=1
trong dòng lệnh kernel,
thì lệnh sẽ được điều chỉnh như bên dưới để thay đổi đường dẫn đích thành
userdebug_plat_sepolicy.cil
.
repack_bootimg \
--src_bootimg boot-with-debug-ramdisk-5.4.img \
--dst_bootimg vendor_boot-debug.img \
--ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil
Thêm chân trang AVB
Nếu hình ảnh truyền đến --dst_bootimg
được định cấu hình là một
Theo chuỗi AVB
bạn cần thêm chân trang AVB sau khi chạy repack_bootimg
.
Ví dụ: trước khi chạy repack_bootimg
, hãy chạy lệnh sau để
kiểm tra xem vendor_boot-debug.img
có chân trang AVB theo chuỗi hay không.
avbtool info_image --image vendor_boot-debug.img
Nếu ban đầu có chân trang AVB theo chuỗi thì bạn cần thêm chân trang AVB
sau khi chạy lệnh repack_bootimg
. Sử dụng phím kiểm thử bất kỳ để ký
vendor_boot-debug.img
hoạt động vì ổ đĩa ram gỡ lỗi chỉ có thể được sử dụng khi
thiết bị đã được mở khoá, cho phép hình ảnh đã ký của khoá không phát hành trên boot
hoặc
Phân vùng vendor_boot
.
avbtool add_hash_footer --partition_name vendor_boot \
--partition_size 100663296 \
--algorithm SHA256_RSA4096 \
--key otatools/external/avb/test/data/testkey_rsa4096.pem \
--image vendor_boot-debug.img