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.

PermissionController

Mô-đun PermissionController cho phép các chính sách quyền riêng tư có thể cập nhật và các phần tử giao diện người dùng (ví dụ: các chính sách và giao diện người dùng xung quanh việc cấp và quản lý quyền).

Bắt đầu từ Android 12, khung và các lớp máy chủ hệ thống cho Role được chuyển vào mô-đun để làm cho Role hoàn toàn theo mô-đun.

Giới thiệu về PermissionController

APK com.google.android.permissioncontroller xử lý giao diện người dùng, logic và vai trò liên quan đến quyền để cho phép truy cập vào các ứng dụng cho mục đích cụ thể. Nó kiểm soát những điều sau:

  • Cấp quyền thời gian chạy (bao gồm cả cấp cho các ứng dụng hệ thống)

  • Quản lý quyền thời gian chạy (bao gồm nhóm các quyền)

  • Theo dõi việc sử dụng quyền thời gian chạy

  • Vai trò

Trong Android 9, các quyền đó là một phần của com.google.android.packageinstaller . Trong Android 10, ứng dụng Trình cài đặt gói được chia thành các phần để cho phép cập nhật logic quyền. Là một mô-đun Mainline có thể cập nhật, PermissionController:

  • Chỉ tương tác với khuôn khổ thông qua @SystemApi ổn định (không sử dụng @hide API).

  • Xử lý các ý định liên quan đến quyền với mức độ ưu tiên trên 0.

  • Đưa ra cơ chế cho phép các OEM tùy chỉnh chủ đề.

  • Cung cấp các dịch vụ mà hệ thống và ứng dụng có thể ràng buộc, bao gồm quản lý vai trò, thu hồi quyền và thông tin quyền cơ bản (đối với Cài đặt).

  • Hỗ trợ tự động thu hồi cho các ứng dụng không sử dụng (mới trong Android 11).

Tự động thu hồi đối với các ứng dụng không sử dụng

Trong Android 11, mô-đun PermissionsController có thể tự động thu hồi quyền thời gian chạy đối với các ứng dụng không được sử dụng trong một khoảng thời gian dài. Các ứng dụng nhắm mục tiêu SDK 30 trở lên được bật tự động thu hồi theo mặc định, trong khi các ứng dụng nhắm mục tiêu SDK 29 trở xuống đã tắt tính năng tự động thu hồi theo mặc định. Khi được bật, tính năng tự động thu hồi sẽ ảnh hưởng đến tất cả các quyền trong thời gian chạy nhưng sẽ miễn tất cả các quyền được cấp trước, bao gồm các quyền do chính sách và hệ thống cố định và các quyền được cấp theo mặc định hoặc theo vai trò. Để biết chi tiết, hãy tham khảo Quyền tự động đặt lại từ các ứng dụng không sử dụng .

Định dạng gói

Mô-đun PermissionController được phân phối dưới dạng tệp APK.

Ranh giới mô-đun

Trong Android 12, mã mô-đun Quyền được di chuyển từ packages/apps/PermissionController ( platform/packages/apps/PackageInstaller ) và frameworks/base/apex/permission (đây là thư mục con của frameworks/base ).

Cấu trúc dự án mới cho packages/modules/Permission như sau:

  • Tệp từ frameworks/base/apex/permission
  • Tệp PermissionController từ packages/apps/PermissionController

OEM có thể sử dụng các lệnh mẫu để giúp di chuyển các bản vá của họ từ thư mục dự án ban đầu sang thư mục dự án mới.

Di chuyển một bản vá từ các khung công tác / cơ sở / apex / quyền

root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt

root/packages/modules/Permission$ git am -p2 patch-file.txt

Di chuyển một bản vá từ các gói / ứng dụng / PermissionController

root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt

root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt

Tùy biến

OEM có thể tùy chỉnh chủ đề giao diện người dùng quyền (màu sắc, lề, phông chữ và bảng vẽ) bằng cách sử dụng lớp phủ tài nguyên thời gian chạy (RROS) .