Việc triển khai tệp chính sách uỷ quyền xác định vị trí lưu trữ được chỉ định cho tệp chính sách dành riêng cho từng dịch vụ xe được xác định bằng phần mềm (SDV). Cơ chế triển khai khác nhau giữa nền tảng SDV cốt lõi và SDV IVI.
Nền tảng SDV cốt lõi
Nền tảng SDV cốt lõi sử dụng tệp APEX để đóng gói các gói dịch vụ và cấu hình gói dịch vụ. Thành phần đăng ký gói dịch vụ truy xuất chính sách uỷ quyền cho các gói dịch vụ SDV được lưu trữ trong APEX.
APEX là một gói đã ký có tên riêng biệt là tên gói. Mỗi APEX có thể chứa nhiều gói dịch vụ. Mỗi gói dịch vụ có siêu dữ liệu được khai báo trong tệp kê khai trong APEX.
Siêu dữ liệu gói dịch vụ có đường dẫn đến tệp chính sách uỷ quyền. Tệp này phải nằm trong cùng một APEX.
Triển khai chính sách uỷ quyền cho dịch vụ SDV có danh tính {sdv-vm-name}:{package.name}.{ServiceBundle}.{instance-name} trên SDV như sau:
- Đặt tệp chính sách uỷ quyền vào APEX
package.name. - Cập nhật mục
ServiceBundletrong tệp kê khai gói dịch vụ trong APEXpackage.namebằng cách thêm đường dẫn chính sách uỷ quyền tương ứng vào trườngauthorization_policy_path. - Triển khai APEX
package.namevào VMsdv-vm-name.
Ví dụ
(apex_root) sdv_service_bundles_manifest.textproto
sdv_service_bundle_metadata {
name: "SampleRpcServer"
version_number: 0
version_name: "0.1 Alpha"
native_library_path: "lib64/libsdv_sample_rpc.so"
# Path to the authorization policy file.
# Warning: Must be a relative path to the APEX root directory.
authorization_policy_path: "etc/authz/sample_rpc/permissions.textproto"
}
Đặt tệp chính sách uỷ quyền vào etc/authz/sample_rpc/permissions.textproto trong cùng một APEX nơi sdv_service_bundles_manifest.textproto được đặt.
Nền tảng SDV IVI
Có một số điểm khác biệt giữa nền tảng SDV IVI và các cách triển khai SDV cốt lõi. Trong nền tảng SDV IVI:
- Không có sổ đăng ký gói dịch vụ.
- Ứng dụng dựa trên Java và được phân phối trong APK.
- Các tác nhân không có trong APEX.
Do các yếu tố này, việc triển khai trên nền tảng SDV sẽ khác.
Triển khai chính sách uỷ quyền cho dịch vụ SDV có danh tính {ivi-vm-name}:{package.name}.{ServiceBundle}/{instance-name} trên SDV IVI như sau:
- Xác định đường dẫn chính sách uỷ quyền theo mẫu
{policy-dir}/{package.name}/{ServiceBundle}.textproto.- Trong đó
policy-dirlà một trong những đường dẫn sau:/product/etc/sdv_authz_policies/system/etc/sdv_authz_policies/system_ext/etc/sdv_authz_policies/vendor/etc/sdv_authz_policies
- Ví dụ:
/vendor/etc/sdv_authz_policies/com.sdv.pkg/WindowManager.textprotolà một đường dẫn chính sách uỷ quyền hợp lệ.
- Trong đó
- Đặt chính sách uỷ quyền vào đường dẫn chính sách uỷ quyền trên VM
ivi-vm-name.
Nhân viên hỗ trợ và hỗ trợ kiểm thử
Các nhân viên hỗ trợ SDV có cùng chính sách uỷ quyền triển khai trên cả SDV cốt lõi và SDV IVI. Nếu một nhân viên hỗ trợ không có APEX, thì chính sách uỷ quyền tương ứng của nhân viên đó phải nằm trong một APEX chỉ có cấu hình đồng hành.
Ví dụ
(apex_root) sdv_service_bundles_manifest.textproto
sdv_service_bundle_metadata {
# Should match the bundle name in the FQIN registered by the SOME/IP broker agent
name: "SomeIpBroker"
# Version number of the config APEX
version_number: 1
# Version name of the config APEX
version_name: "1"
# Reference the manifest itself to mark the metadata as a config-only
# declaration.
native_library_path: "etc/sdv_service_bundles_manifest.textproto"
# Path to the authorization policy file for SOME/IP broker.
authorization_policy_path: "etc/config/access_control/someip_authz_policy.textproto"
}
Chính sách uỷ quyền ở cấp VM
Đặt các chính sách ở cấp VM vào APEX có tên gói com.oem.sdv.authz. Sử dụng một
tệp riêng biệt có tên <vm_name>.textproto tương ứng.
Nếu <vm_name>.textproto tương ứng không tồn tại, khung uỷ quyền
cũng sẽ tìm tệp .default.textproto trong cùng một APEX.
Lý do
.default.textproto được giới thiệu vì 2 lý do:
- Thiết lập đơn giản: Đối với một số OEM, có thể chỉ cần đặt
default.textprotocho tất cả các VM SDV và chỉ cung cấp một<vm-name>.textprotođặc biệt cho VM IVI. - Khả năng cập nhật: Nếu một VM mới xuất hiện sau khi cập nhật xe, thì
default.textprotohợp lý có thể đủ để tránh cập nhật tất cả các VM.
Logic phân giải
Khi kiểm tra quyền cho một đối tượng từ một VM có tên là <vm-name>, khung uỷ quyền sẽ tìm các chính sách theo thứ tự sau:
<vm-name>.textproto: Nếu tệp này tồn tại, hãy thực hiện kiểm tra dựa trên tệp đó. Nếu tệp này không tồn tại, hãy quay lại tệp mặc định..default.textproto: Nếu tệp này tồn tại, hãy thực hiện kiểm tra dựa trên tệp đó. Nếu tệp này không tồn tại, hãy từ chối quyền truy cập.
Xác định mô-đun Soong có quyền ở cấp VM
Mô-đun này phải là một APEX có tên gói com.oem.sdv.authz.
Thêm giá trị vào tệp .mk:
SDV_VM_LEVEL_PERMISSIONS_MODULE := {soong.module.name}