Chào mừng bạn đến với TiemDienThoai.com
Kiến thức · Bảo mật & Dữ liệu

Khác biệt giữa xin quyền tại thời điểm cài đặt và xin quyền khi cần dùng tính năng

Install-time permission hỏi toàn bộ quyền một lần khi cài, còn runtime permission hỏi đúng lúc tính năng nhạy cảm được sử dụng, tạo ngữ cảnh quyết định khác nhau.

Mục lục bài viết

So sánh một chiếc điện thoại Android đời cũ chạy hệ điều hành phiên bản thấp với một chiếc iPhone hiện đại, người dùng sẽ thấy hai trải nghiệm xin quyền hoàn toàn khác nhau: một bên hỏi dồn dập ngay khi vừa cài xong, một bên chỉ hỏi đúng lúc tính năng liên quan được chạm tới. Sự khác biệt này bắt nguồn từ hai mô hình cấp quyền riêng biệt mà hệ điều hành áp dụng: install-time permission và runtime permission.

Install-time permission hoạt động như thế nào

Với mô hình xin quyền tại thời điểm cài đặt, toàn bộ danh sách quyền mà ứng dụng khai báo cần dùng được hiển thị một lần duy nhất ngay trước khi cài, và người dùng chỉ có hai lựa chọn: đồng ý cài với toàn bộ quyền đó, hoặc không cài đặt ứng dụng. Đây từng là mô hình mặc định của Android ở các phiên bản trước Android 6.0, và hiện vẫn còn một số quyền mức thấp, ít nhạy cảm được cấp theo kiểu này ngay khi cài, vì hệ thống coi các quyền đó không đủ rủi ro để cần xác nhận riêng từng lần.

Runtime permission hoạt động như thế nào

Với mô hình xin quyền khi cần dùng tính năng, ứng dụng chỉ hiển thị hộp thoại xin quyền đúng vào thời điểm đoạn mã cần gọi tới API nhạy cảm, chẳng hạn ngay khi người dùng bấm nút chụp ảnh thì mới hỏi quyền camera, thay vì hỏi tất cả các quyền cùng lúc lúc cài đặt. Đây là mô hình bắt buộc trên iOS ngay từ đầu và trở thành chuẩn trên Android từ phiên bản 6.0 trở đi cho các quyền nhạy cảm như camera, vị trí, micro, danh bạ. Người dùng có thể từ chối một quyền cụ thể mà ứng dụng vẫn tiếp tục hoạt động ở các phần chức năng không liên quan.

Khác biệt về ngữ cảnh quyết định của người dùng

Điểm khác biệt kỹ thuật quan trọng nhất không phải là thời điểm hỏi, mà là ngữ cảnh khi người dùng ra quyết định. Ở mô hình cài đặt, người dùng đồng ý một danh sách quyền trừu tượng, chưa gắn với hành động cụ thể nào đang diễn ra, nên khó đánh giá quyền đó có thực sự cần thiết hay không. Ở mô hình runtime, quyết định gắn liền với một hành động vừa được thực hiện, ví dụ vừa bấm nút gửi vị trí, nên người dùng có đủ ngữ cảnh để đánh giá yêu cầu có hợp lý với thao tác vừa làm hay không.

Vì sao runtime permission không loại bỏ hoàn toàn rủi ro cấp nhầm quyền

Runtime permission giúp quyết định có ngữ cảnh hơn, nhưng không tự động đảm bảo người dùng hiểu đúng phạm vi quyền đang cấp. Một hộp thoại xin quyền vị trí xuất hiện đúng lúc mở bản đồ vẫn có thể bị hiểu nhầm là chỉ dùng một lần, trong khi lựa chọn thực tế được chọn có thể là quyền truy cập luôn luôn. Mô hình runtime giải quyết vấn đề thời điểm và ngữ cảnh, còn việc đọc kỹ từng lựa chọn trong hộp thoại xin quyền vẫn là bước người dùng cần tự thực hiện.

Hiểu nhầm thường gặp

“Ứng dụng nào cũng xin quyền kiểu runtime, đúng lúc cần mới hỏi” là suy nghĩ không đầy đủ. Một số quyền mức thấp, ít nhạy cảm trên Android vẫn được cấp tự động ngay khi cài đặt theo mô hình install-time, không hiển thị hộp thoại xác nhận riêng và không thể từ chối chọn lọc sau này ngoài việc gỡ ứng dụng. Chỉ nhóm quyền được hệ điều hành xếp vào diện nhạy cảm mới bắt buộc áp dụng mô hình xin quyền theo thời điểm sử dụng.

Xem thêm

Nội dung này thuộc cụm bài Quyền riêng tư & quyền ứng dụng: tổng hợp bài viết. Xem thêm Nhãn dán quyền riêng tư trên App Store, Google Play: đọc hiểu thế nào trước khi cài app.

Hoàng Gia Bảo - kỹ thuật viên trưởng
Tác giả phụ trách chuyên mục

Kỹ thuật viên trưởng — Kỹ thuật viên trưởng tại trung tâm sửa chữa, trực tiếp chẩn đoán và xử lý hàng nghìn ca lỗi điện thoại mỗi năm.

Xem hồ sơ và chuyên môn →
Bình luận bài viết

Để lại bình luận

Thông tin liên hệ chỉ dùng để phản hồi, không hiển thị công khai.