Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Hệ thống tệp tăng dần

Hệ thống tệp tăng dần (IncFS) là một mô-đun hạt nhân cho phép Hệ điều hành Android nhận các APK truyền trực tuyến qua Cầu gỡ lỗi Android (ADB). Mô-đun hạt nhân độc lập tạo ra một hệ thống tệp ảo mới nằm trên hệ thống Tệp Android hiện có và bổ sung các thay đổi trong khung và SDK Android 11 để cho phép các nhà phát triển ứng dụng và trò chơi triển khai các APK lớn thông qua ADB cho thiết bị Android 11.

Thay đổi hạt nhân cho phép định dạng APK Signature Scheme v4 mới , hỗ trợ các thay đổi khung Android trong Trình quản lý gói Android, các dịch vụ hệ thống mới và các thay đổi đối với Cầu gỡ lỗi Android.

Thực hiện

Các nhà sản xuất OEM và SoC cần thêm trình điều khiển nhân mới vào các bản dựng thiết bị Android của họ. Nếu trình điều khiển hạt nhân được xây dựng dưới dạng mô-đun, nó sẽ được tải theo yêu cầu. Nếu không có ứng dụng nào được cài đặt thông qua cài đặt gia tăng ADB, thiết bị sẽ không tải trình điều khiển hạt nhân. Khi xây dựng như một phần của ảnh hạt nhân, trình điều khiển luôn được tải.

Trình điều khiển hạt nhân là một phần của hệ thống lớn hơn để cho phép cài đặt APK trực tuyến. Đối tác không cần phải sử dụng mã IncFS chính xác được cung cấp trong các triển khai mẫu. Tuy nhiên, để đảm bảo trải nghiệm nhất quán trên các thiết bị, các đối tác phải đảm bảo việc triển khai API có hệ thống tệp có chức năng đọc tệp và chức năng đọc / ghi thư mục như được định nghĩa tại đây .

Ngoài ra, các triển khai của đối tác phải có các tùy chọn gắn kếtcác tệp đặc biệt phù hợp với chức năng triển khai mẫu IncFS.

Sau đây mô tả những thay đổi cần thiết để triển khai:

  • Thiết lập máy phát triển để xây dựng nhân.
  • Nhắm mục tiêu hạt nhân chung từ nhánh common-android-mainline .
    • $ repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
    • $ repo sync
  • Xác thực các thay đổi sau đây cần thiết cho IncFS trong kiểm tra chi nhánh:
  • Nối CONFIG_INCREMENTAL_FS=y hoặc CONFIG_INCREMENTAL_FS=m dòng vào cuối tệp defconfig . Các ví dụ có thể được tìm thấy tại các liên kết sau:
  • Xây dựng nhân
  • Nhúng hạt nhân vào bản dựng hình ảnh thiết bị Android .
  • Đối với thiết bị Android mục tiêu của bạn, hãy thêm một trong các dòng thuộc tính hệ thống cụ thể của nhà cung cấp sau vào tệp device.mk của bạn:
    • Trong trường hợp khi bạn đang sử dụng CONFIG_INCREMENTAL_FS=y
    • PRODUCT_PROPERTY_OVERRIDES += \
    • ro.incremental.enable=yes
    • Trong trường hợp khi bạn đang sử dụng CONFIG_INCREMENTAL_FS=m
    • PRODUCT_PROPERTY_OVERRIDES += \
    • ro.incremental.enable=module:/vendor/lib/modules/incrementalfs.ko
    • Có các tệp device.mk mẫu cho trình giả lập Android vàPixel 4 .
  • Chỉ khi sử dụng CONFIG_INCREMENTAL_FS=m , Thêm quy tắc SE Linux .
    • Tạo và thêm tệp vold.te vào thư mục thiết bị /system/sepolicy/vendor với nội dung sau:
      • vold.te
      • Cho phép tải trình điều khiển hệ thống tệp tăng dần
      • allow vold self:capability sys_module;
      • allow vold vendor_incremental_module:file r_file_perms;
      • allow vold vendor_incremental_module:system module_load;
    • Nối các quy tắc SE Linux sau vào tệp file.te hiện có trong thư mục /system/sepolicy/vendor :
      • Ví dụ file.te tập tin
      • Trình điều khiển hệ thống tệp tăng dần
      • type vendor_incremental_module, vendor_file_type, file_type;
    • Nối các quy tắc SE Linux sau vào tệp file_contents hiện có trong thư mục /system/sepolicy/vendor :
      • Tệp file_contents ví dụ
      • # Incremental file system driver
  • /vendor/lib/modules/incrementalfs\.ko
  • u:object_r:vendor_incremental_module:s0

Triển khai tham chiếu

Có hai cách để tiếp cận việc triển khai này, dưới dạng mô-đun có thể tải được hoặc là một phần của hình ảnh hạt nhân.

Xác nhận và thử nghiệm

Xác thực việc triển khai bằng Kiểm tra Đơn vị Tính năng, CTS và GTS.

CTS

GTS

  • atest GtsIncrementalInstallTestCases
    • /gts-tests/tests/packageinstaller/incremental/src/com/google/android/packageinstaller/incremental/gts/IncrementalInstallerTest.java

Kiểm tra IncFs (Hệ thống FIle gia tăng)

  • Thiết lập môi trường phát triển.
  • Hoàn thành các nhiệm vụ thực hiện được nêu trong phần thực hiện.
  • Chạy các bài kiểm tra thủ công sau:
    • $ mmma system/incremental_delivery/incfs/tests
    • $ atest libincfs-test
    • $ atest IncrementalServiceTest
    • $ atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest

Thử nghiệm IncFS với Android SDK (ADB và apksigner)

  • Thiết lập môi trường phát triển.
  • Hoàn thành các nhiệm vụ thực hiện được nêu trong phần thực hiện.
  • Flash bản dựng trên thiết bị vật lý mục tiêu hoặc trình mô phỏng.
  • Tạo hoặc tải apk hiện có.
  • Tạo khóa ký gỡ lỗi .
  • apk với định dạng chữ ký v4 từ thư mục build-tools .
    • $ ./apksigner sign --ks debug.keystore game.apk
  • Cài đặt apk trên thiết bị từ thư mục platform-tools .
    • $ ./adb install game.apk
Ví dụ về cài đặt
Hình 1 : Ví dụ về cài đặt

Có thể tìm thấy những bài kiểm tra này ở đâu?