Android cung cấp cho người dùng sự minh bạch bằng cách hiển thị chỉ báo quyền riêng tư cho các loại quyền truy cập sau:
Quyền truy cập vào máy ảnh và micrô. Chỉ báo này xuất hiện khi một ứng dụng sử dụng nguồn dữ liệu riêng tư thông qua quyền truy cập vào ứng dụng máy ảnh và micrô. Để biết yêu cầu CDD liên quan, hãy xem phần 2.2.5. Mô hình bảo mật.
Quyền truy cập vào thông tin vị trí. Chỉ báo này xuất hiện khi một ứng dụng truy cập vào thông tin vị trí của thiết bị. Để biết yêu cầu CDD liên quan, hãy xem phần 9.8.8. Vị trí.
Người dùng nhấn vào một chỉ báo để xem những ứng dụng nào đã truy cập vào dữ liệu của họ.
Hoạt động sử dụng đang diễn ra và gần đây
Giao diện người dùng Android phân biệt giữa hoạt động sử dụng đang diễn ra và hoạt động sử dụng gần đây:
Trong Android 17 trở lên, hoạt động sử dụng thông tin vị trí được coi là đang diễn ra nếu hệ thống đánh dấu là đang chạy hoặc đã diễn ra chưa đến 10 giây. Đối với dấu chấm vị trí, quyền truy cập được coi là đang diễn ra nếu ứng dụng không phải của hệ thống đang chạy ở trạng thái nền trước.
Trong Android 12 trở lên, hoạt động sử dụng micrô và máy ảnh được coi là đang diễn ra nếu hệ thống đánh dấu là đang chạy hoặc đã diễn ra chưa đến 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 có quyền truy cập liên tục vào micrô, máy ảnh hoặc thông tin vị trí nhạy cảm của người dùng. Người dùng có thể nhấn vào các biểu tượng này và xem những ứng dụng nào đang truy cập vào micrô, máy ảnh, thông tin vị trí hoặc kết hợp các mục này. Sau đây là ví dụ về các chỉ báo đang được sử dụng:
Hình 1. Các chỉ báo đang được sử dụng cho thấy quyền truy cập đang diễn ra (góc trên cùng bên phải).
Quyền truy cập được coi là đang diễn ra trong thời gian chỉ báo xuất hiện. Biểu tượng sẽ xuất hiện trước, sau đó chuyển thành dấu chấm duy trì cho đến khi ứng dụng bị loại bỏ hoặc đóng. Khi người dùng mở trình đơn Cài đặt nhanh rồi nhấn vào các chỉ báo, một hộp thoại sẽ xuất hiện cho biết ứng dụng có đang sử dụng micrô, máy ảnh, thông tin vị trí hay kết hợp các mục này hay không.
Hình 2 minh hoạ các chỉ báo quyền truy cập đang diễn ra khi dữ liệu đã được truy cập trong khoảng thời gian đang diễn ra bởi một ứng dụng đang chạy.
Hình 2. Các chỉ báo quyền truy cập đang diễn ra và gần đây.
Các chỉ báo quyền 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 đó (hoặc 20 giây đối với dữ liệu vị trí), nhưng ứng dụng đó không hoạt động. Tất cả các ứng dụng đang hoạt động đều xuất hiện trong hộp thoại, nhưng chỉ có 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 khoảng thời gian 15 hoặc 20 giây trước đó. Tất cả các ứng dụng đã truy cập vào dữ liệu vị trí trong khoảng thời gian đang diễn ra hoặc gần đây đều xuất hiện trong hộp thoại. Chế độ xem quyền truy cập vẫn duy trì cho đến khi người dùng loại bỏ 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 sẵ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 công tắc cấu hình thiết bị privacy/mic_camera_indicators_enabled; công tắc này là cần thiết vì có 2 phương thức phân phối riêng biệt: (1) Phân phối, sau đó (2) Bật.
Quy trình xử lý
Chức năng Chỉ báo quyền có 3 phần chính:
- Các ứng dụng
- Các chỉ báo (do Giao diện người dùng hệ thống xử lý)
- Cách xác định những ứng dụng nào đang sử dụng dữ liệu
PermissionController cung cấp cơ chế để xác định những ứng dụng nào đang sử dụng dữ liệu. Giao diện người dùng hệ thống theo dõi các ứng dụng sử dụng dữ liệu riêng tư. Giao diện người dùng hệ thống 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ề hoạt động sử dụng khi người dùng nhấp vào một biểu tượng.
Hình 3. Các thành phần hệ thống và quy trình chuyển đổi (giao diện người dùng).
1 Một ứng dụng yêu cầu dữ liệu riêng tư từ hệ thống.
2 Hệ thống kiểm tra các quyền. Nếu các quyền được cho phép, hệ thống sẽ thông báo cho nhà cung cấp dữ liệu và ghi chú hoạt động sử dụng trong 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ừ
PermissionManagervà trình bày hộp thoại cho người dùng.
Thông tin chi tiết về quy trình
Hoạt động của ứng dụng ghi lại quyền truy cập vào các API được bảo vệ bằng quyền trong thời gian chạy, theo dõi 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 máy ảnh, micrô và các chỉ báo để cho người dùng biết khi nào các ứng dụng đã truy cập vào dữ liệu âm thanh và máy ảnh trên thiết bị của họ.
Các ứng dụng sử dụng micrô, máy ảnh hoặc thông tin vị trí bằng cách gọi
AppOpsManager.startOp,stopOphoặcnoteOp. Thao tác này sẽ tạo các bản ghi hoạt động của ứng dụng trong máy chủ hệ thống. Trong Android 17 trở lên, chỉ báo vị trí cũng sử dụng các bản ghi hoạt động của ứng dụng này.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.OnOpActiveChangedInternalListenervàOnOpNotedListener. Khi một hoạt động sử dụng mới xuất hiện (thông qua lệnh gọi đếnstartOphoặcnoteOp), Giao diện người dùng hệ thống sẽ xác minh rằng hoạt động sử dụng đó là của một ứng dụng hệ thống:Nếu Giao diện người dùng hệ thống xác minh hoạt động sử dụng ứng dụng hệ thống và nếu hoạt động 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.
Nếu Giao diện người dùng hệ thống xác minh hoạt động sử dụng ứng dụng không phải của hệ thống (và đối với hoạt động sử dụng micrô, micrô không bị tắt tiếng; đối với hoạt động sử dụng máy ảnh, máy ảnh được bật), thì hệ thống sẽ hiển thị một biểu tượng phản ánh hoạt động sử dụng đó.
Nếu Giao diện người dùng hệ thống xác minh hoạt động sử dụng ứng dụng không phải của hệ thống, thì hệ thống sẽ hiển thị một biểu tượng phản ánh hoạt động sử dụng đó, miễn là các nút bật/tắt có liên quan đang hoạt động:
- Đối với micrô: Micrô không bị tắt tiếng.
- Đối với máy ảnh: Máy ảnh được bật.
- Đối với thông tin vị trí: Ứng dụng đang chạy ở trạng thái nền trước.
Nếu Giao diện người dùng hệ thống nhận được noteOp (không có thời lượng), thì hệ thống sẽ hiển thị biểu tượng trong ít nhất 5 giây (10 giây đối với thông tin vị trí). Nếu không, biểu tượng sẽ xuất hiện cho đến khi nhận được stopOp hoặc trong thời lượng tối thiểu là 5 hoặc 10 giây, tuỳ vào thời lượng nào dài hơn. Người dùng nhấp vào một biểu tượng sẽ khởi tạo ý định chuyển đến PermissionController để bắt đầu hộp thoại.
PermissionController tải tất cả hoạt động sử dụng gần đây cho micrô, máy ảnh và thông tin vị trí. Hệ thống sẽ kiểm tra xem có hoạt động nào đang chạy hay đã chạy trong khoảng thời gian do Giao diện người dùng hệ thống đặt (15 giây đối với micrô hoặc máy ảnh, 20 giây đối với thông tin vị trí). Nếu tìm thấy kết quả phù hợp, hệ thống sẽ hiển thị tên của ứng dụng và các quyền được sử dụng.
Điện thoại phải triển khai hoạt động sử dụng quyền (để tính đến ngăn xếp micrô riêng được sử dụng trong các cuộc gọi điện thoại), đồng thời hoạt động với ứng dụng Google Tìm kiếm trên Android (AGSA) và GMS.