Chỉ báo về quyền riêng tư

Quyền khi bắt đầu chạy trong Android 6 trở lên cho phép người dùng kiểm soát thời điểm họ cho phép ghi âm thanh từ micrô của thiết bị hoặc ghi video từ máy ảnh của thiết bị. Trước khi một ứng dụng có thể ghi lại, người dùng phải cấp hoặc từ chối cấp quyền cho ứng dụng đó thông qua hộp thoại mà hệ thống hiển thị.

Android 12 mang đến cho người dùng sự minh bạch bằng cách hiển thị các chỉ báo khi một ứng dụng sử dụng nguồn dữ liệu riêng tư thông qua quyền hoạt động của ứng dụng đối với máy ảnh và micrô. App-ops ghi lại các quyền truy cập vào các API được bảo vệ bằng quyền khi bắt đầu chạy.

Tính năng Hoạt động trên ứng dụng theo dõi cả trạng thái hoạt động và số lượng lệnh gọi API riêng lẻ, đồng thời tương tác với các chỉ báo micrô và camera trong Android 12 để cho người dùng biết thời điểm các ứng dụng đã truy cập vào dữ liệu âm thanh và dữ liệu camera trên thiết bị của họ. Khi nhấp vào chỉ báo micrô hoặc máy ảnh, người dùng sẽ thấy những ứng dụng nào đã truy cập vào dữ liệu của họ. Tính năng này là bắt buộc đối với tất cả OEM.

Yêu cầu về khả năng hiển thị chỉ báo

Dưới đây là những yêu cầu đối với chỉ báo micrô và máy ảnh trên các thiết bị chạy Android 12 trở lên:

  • Các chỉ báo phải xuất hiện trong thanh trạng thái và giữ nguyên mức độ ưu tiên hình ảnh cao nhất (ví dụ: nằm ở vị trí ngoài cùng bên phải ở góc trên cùng bên phải).
  • Các chỉ báo phải được đặt ở cùng một vị trí một cách nhất quán và không được ứng dụng chặn khi khởi chạy.
  • Cả hai chỉ báo phải có màu xanh lục (hoặc một biến thể của màu xanh lục).
  • Khi nhấp vào một hoặc cả hai chỉ báo, hệ thống phải hiển thị một thông báo về khả năng phân bổ ứng dụng thực hiện những việc sau:
    • Hiện tên của ứng dụng đang dùng micrô và (hoặc) camera
    • Hiện tên của ứng dụng đã dùng micrô và (hoặc) máy ảnh trong vòng 15 giây qua
    • Chuyển người dùng đến trang quyền cho ứng dụng trong phần Cài đặt

Mức sử dụng và tính năng

Trong Android 12, giao diện người dùng phân biệt giữa các lần sử dụng đang chạy và các lần sử dụng gần đây. Các trường hợp sử dụng được coi là đang hoạt động nếu được hệ thống đánh dấu là đang chạy hoặc dưới 5 giây.

  • Biểu tượng trên thanh trạng thái xuất hiện mỗi khi một ứng dụng đang có quyền truy cập vào micrô hoặc máy ảnh liên quan đến thông tin nhạy cảm của người dùng.
  • Người dùng có thể nhấp vào các biểu tượng này để xem những ứng dụng nào đang truy cập vào micrô, máy ảnh hoặc cả hai.

Chỉ báo máy ảnh và micrô đang sử dụng cho biết quyền truy cập đang hoạt động

Hình 1. Các chỉ báo đang sử dụng micrô và máy ảnh cho thấy quyền truy cập đang hoạt động (góc trên cùng bên phải)

Quyền truy cập được coi là đang hoạt động miễn là các chỉ báo hiển thị. Trước tiên, biểu tượng sẽ xuất hiện, sau đó chuyển đổi thành một dấu chấm vẫn tồn tại cho đến khi ứng dụng bị đóng hoặc đóng.

Khi người dùng nhấn vào chỉ báo, một hộp thoại sẽ mở ra, cho biết một ứng dụng đang sử dụng máy ảnh, micrô hoặc cả hai.

Chỉ báo cho cả quyền truy cập đang hoạt động và gần đây, cũng như liệu quyền truy cập đó là từ máy ảnh hay micrô

Hình 2. Chỉ báo truy cập đang hoạt động và gần đây

Hình ảnh trong Hình 2 cho thấy các chỉ báo truy cập đang hoạt động khi một ứng dụng đang chạy truy cập vào dữ liệu trong 5 giây qua.

Chỉ báo truy cập gần đây cho biết một ứng dụng đã truy cập vào dữ liệu trong 15 giây trước đó, nhưng ứng dụng đó không hoạt động. Tất cả ứng dụng đang hoạt động đều xuất hiện trong hộp thoại, nhưng chỉ một ứng dụng xuất hiện dưới dạng nguồn truy cập gần đây, ngay cả khi có nhiều ứng dụng truy cập vào dữ liệu trong khung thời gian 15 giây trước đó. Chế độ xem quyền truy cập vẫn bị treo cho đến khi người dùng đóng hộp thoại thông báo.

Phân phối và bật

Lớp PermissionManager cung cấp một phương thức để điền hộp thoại, nằm trong Giao diện người dùng hệ thống.

  • Giao diện người dùng hệ thống phản ứng với nút chuyển cấu hình thiết bị: privacy/mic_camera_indicators_enabled.
  • Bạn cần phải chuyển đổi vì có hai phương tiện phân phối riêng biệt, theo thứ tự này:
    1. Phân phối.
    2. Bật.
  • Giao diện người dùng hệ thống không được gặp sự cố nếu phương thức trong PermissionManager không thể cung cấp dữ liệu cần thiết.

Quy trình xử lý

Chức năng Chỉ báo quyền có ba phần chính:

  • Ứng dụng
  • Các chỉ báo (do SystemUI xử lý)
  • Cách xác định ứng dụng nào đang sử dụng dữ liệu

PermissionController cung cấp cơ chế để xác định ứng dụng nào đang sử dụng dữ liệu. SystemUI theo dõi các ứng dụng sử dụng dữ liệu riêng tư. SystemUI hiển thị một biểu tượng trong thanh điều hướng trên cùng tương ứng với các quyền được sử dụng. PermissionController hiển thị dữ liệu về mức sử dụng khi người dùng nhấp vào một biểu tượng.

Quy trình xử lý cho các hàm Chỉ báo quyền

Hình 3. Luồng chuyển đổi (UI) và thành phần hệ thống

Các quá trình chuyển đổi được đánh số trong Hình 3 được mô tả dưới đây:

1 – Ứng dụng yêu cầu dữ liệu riêng tư từ hệ thống.

2- Hệ thống kiểm tra quyền. Nếu cho phép các quyền này, hệ thống sẽ thông báo cho nhà cung cấp dữ liệu và ghi lại mức sử dụng trong các hoạt động của ứng dụng

3- Nhà cung cấp dữ liệu cung cấp dữ liệu cho ứng dụng.

4-5 Người dùng nhấp vào các biểu tượng. Giao diện người dùng hệ thống yêu cầu dữ liệu từ PermissionManager và hiển thị hộp thoại cho người dùng.

Thông tin chi tiết về quy trình

  1. Các ứng dụng sử dụng micrô và máy ảnh, gọi AppOpsManager.startOp, stopOp và (hoặc) noteOp. Thao tác này sẽ tạo bản ghi hoạt động ứng dụng trong máy chủ hệ thống.
  2. Giao diện người dùng hệ thống theo dõi các hoạt động mới của ứng dụng bằng cách sử dụng trình nghe AppOpsManager.OnOpActiveChangedInternalListenerOnOpNotedListener. Khi có một lượt sử dụng mới (thông qua lệnh gọi đến startOp hoặc noteOp), Giao diện người dùng hệ thống sẽ xác minh rằng lượt sử dụng đó là của một ứng dụng hệ thống.
  3. Nếu Giao diện người dùng hệ thống xác minh việc sử dụng ứng dụng hệ thống và nếu việc sử dụng đó là cho micrô, thì Giao diện người dùng hệ thống sẽ kiểm tra xem micrô có bị tắt tiếng hay không.
  4. Nếu Giao diện người dùng hệ thống xác minh việc sử dụng ứng dụng ngoài hệ thống (và để sử dụng micrô, micrô được bật tiếng; camera ở trạng thái bật, đối với việc sử dụng máy ảnh), thì biểu tượng sẽ phản ánh cách sử dụng đó.

Nếu Giao diện người dùng hệ thống nhận được một noteOp không có thời lượng, thì biểu tượng sẽ xuất hiện trong ít nhất 5 giây. Nếu không, biểu tượng sẽ hiển thị cho đến khi nhận được stopOp hoặc trong 5 giây, tuỳ theo thời gian nào dài hơn. Người dùng nhấp vào một biểu tượng sẽ bắt đầu một ý định chuyển đến PermissionController để bắt đầu Hộp thoại.

PermissionController tải tất cả các lần sử dụng gần đây cho micrô và máy ảnh. Cửa sổ này kiểm tra xem có thành phần nào trong số đó đang chạy hoặc có đang chạy trong khung thời gian do Giao diện người dùng hệ thống đặt hay không. Nếu tìm thấy kết quả phù hợp, Google sẽ hiển thị tên của ứng dụng đã dùng quyền này và những quyền mà ứng dụng đã dùng.

Do thay đổi này trong Android 12 trở lên, một số ứng dụng phải thay đổi hành vi hoặc triển khai hành vi đặc biệt.

Dịch vụ điện thoại phải triển khai việc sử dụng quyền (để tính đến ngăn xếp micrô riêng biệt dùng trong cuộc gọi điện thoại), trong khi làm việc với ứng dụng Android Google Tìm kiếm (AGSA) và Dịch vụ Google dành cho thiết bị di động (GMS).