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 lại âm thanh từ micrô của thiết bị hoặc video từ camera của thiết bị. Trước khi ứng dụng có thể ghi lại, người dùng phải cấp hoặc từ chối quyền thông qua một hộp thoại mà hệ thống trình bày.
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 các quyền thao tác ứng dụng đối với camera và micrô. Bản ghi app-ops truy cập vào các API được bảo vệ bằng quyền khi bắt đầu chạy.
App-op 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 chỉ báo micrô và camera trong Android 12 để 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à camera trên thiết bị của họ. Khi người dùng nhấp vào chỉ báo micrô hoặc camera, họ sẽ thấy những ứng dụng đã 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ả các OEM.
Yêu cầu về chế độ hiển thị chỉ báo
Sau đây là các yêu cầu đối với chỉ báo micrô và camera 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 trên thanh trạng thái và giữ được mức độ ưu tiên cao nhất về mặt hình ảnh (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 luôn nằm ở cùng một vị trí và không được ứng dụng chặn khi ứng dụng 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 người dùng nhấp vào một hoặc cả hai chỉ báo, bạn phải hiển thị một thông báo về khả năng hỗ trợ thuộc tính ứng dụng có các đặc điểm sau:
- Hiển thị tên của ứng dụng đang dùng micrô và (hoặc) camera
- Hiển thị tên của ứng dụng đã sử dụng micrô và (hoặc) camera trong vòng 15 giây qua
- Đưa người dùng đến trang quyền của ứng dụng trong phần Cài đặt
Mức sử dụng và các tính năng
Trong Android 12, giao diện người dùng phân biệt giữa mức sử dụng đang diễn ra và mức sử dụng gần đây. Mức sử dụng được coi là đang hoạt động nếu hệ thống đánh dấu là đang chạy hoặc có thời gian 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 có quyền truy cập liên tục vào micrô hoặc camera chứa 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 và xem những ứng dụng nào đang truy cập vào micrô, camera hoặc cả hai.
Hình 1. Chỉ báo cho biết micrô và camera đang được sử dụng, 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 xuất hiện. Biểu tượng sẽ xuất hiện trước, sau đó chuyển thành một dấu chấm và 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 dùng camera, micrô hay cả hai hay không.
Hình 2. Chỉ báo đang hoạt động và chỉ báo truy cập 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.
Các 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ả 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 khung thời gian 15 giây trước đó. Chế độ xem 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 sẵn thông tin vào hộp thoại. Hộp thoại này 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 một chế độ cài đặt cấu hình thiết bị:
privacy/mic_camera_indicators_enabled
. - Việc chuyển đổi là cần thiết vì có 2 phương tiện giao hàng riêng biệt, theo thứ tự sau:
- Phân phối.
- 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 về quyền có 3 phần chính:
- Các ứ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 cho thấy 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 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.
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)
Các quá trình chuyển đổi được đánh số trong Hình 3 được mô tả dưới đây:
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 phép, hệ thống sẽ thông báo cho trình cung cấp dữ liệu và ghi chú việc sử dụng trong app-ops
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à trình bày hộp thoại cho người dùng.
Thông tin chi tiết về quy trình
- Các ứng dụng sử dụng micrô và camera, gọi điện
AppOpsManager.startOp
,stopOp
và (hoặc)noteOp
. Thao tác này sẽ tạo các bản ghi app-op trong máy chủ hệ thống. - Giao diện người dùng hệ thống theo dõi các thao tác mới trên ứng dụng bằng cách sử dụng trình nghe
AppOpsManager.OnOpActiveChangedInternalListener
vàOnOpNotedListener
. Khi có một lượt sử dụng mới (thông qua lệnh gọi đếnstartOp
hoặcnoteOp
), 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. - 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.
- Nếu Giao diện người dùng hệ thống xác minh việc sử dụng ứng dụng không phải ứng dụng hệ thống (và đối với việc sử dụng micrô, micrô đang ở trạng thái bật tiếng; đối với việc sử dụng camera, camera đang ở trạng thái bật), thì giao diện này sẽ hiện một biểu tượng phản ánh việc 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ì giao diện này sẽ hiển thị biểu tượng trong ít nhất 5 giây. Nếu không, biểu tượng sẽ xuất hiện 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 để bắt đầu một ý định chuyển đến PermissionController
nhằm bắt đầu Hộp thoại.
PermissionController
sẽ tải tất cả hoạt động sử dụng micrô và máy ảnh gần đây. Thao tác này kiểm tra xem có ứng dụng nào đang chạy hay đã 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ả trùng khớp, hệ thống sẽ hiển thị tên của ứng dụng đã sử dụng quyền và những quyền mà ứng dụng đó đã sử 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 được dùng trong cuộc gọi điện thoại), trong khi hoạt động với ứng dụng Tìm kiếm của Google trên Android (AGSA) và Dịch vụ di động của Google (GMS).