2015-09-18 11 views
6

Có cách nào dễ dàng để xác định tất cả các cuộc gọi API một ứng dụng Android có cần phải được điều chỉnh để sử dụng các quyền trong thời gian chạy trong Android M (6, API 23) không?Di chuyển sang quyền thời gian chạy: Làm thế nào để bạn tìm thấy tất cả quyền sử dụng hiện tại?

Dường như bạn chỉ cần tìm ra bằng cách thử nghiệm, dùng thử lỗi & hoặc kiến ​​thức chuyên môn (ví dụ: đổ qua tài liệu API và mã nguồn của bạn). Tôi hy vọng rằng Google sẽ phát hành một công cụ di chuyển, nhưng tôi chưa thấy bất kỳ bằng chứng nào về điều đó. Không phải làm như vậy sẽ khiến ứng dụng của bạn dễ bị treo thời gian nếu bất kỳ ai vô hiệu hóa quyền truy cập vào quyền cài đặt sau, ngay cả khi bạn không sử dụng thẻ quyền trong thời gian chạy trong tệp kê khai của mình.

Thực tiễn tốt nhất để di chuyển sang quyền thời gian chạy là gì?

+1

"? Thực tiễn tốt nhất để di chuyển đến quyền runtime là gì" - về mặt chiến lược, dính vào 'targetSdkVersion' từ 22 trở xuống. Ứng dụng của bạn sẽ hoạt động như bình thường. Nếu người dùng truy cập và vô hiệu hóa các quyền nhất định, bạn sẽ nhận được kết quả hợp lệ từ tất cả các cuộc gọi API bị ảnh hưởng, chỉ cần không có nhiều kết quả (ví dụ: truy vấn 'ContactsContract' sẽ hoạt động như thể người dùng không có liên hệ, trạng thái hoàn toàn hợp lệ bất kể thời gian chạy). – CommonsWare

+0

Nếu bạn xóa tất cả các quyền khỏi tệp kê khai của mình, tôi nghĩ cờ lint tất cả các cuộc gọi cần có quyền ...? –

+0

@krislarson Tôi chưa thể làm được điều đó. Bạn có thể xác nhận rằng linter làm điều đó cho bạn, hoặc chỉ cho chúng tôi một ví dụ? (Không có cảnh báo nào được đưa ra cho Camera.open(), ví dụ, ngay cả khi không có quyền nào được khai báo.) – rcreswick

Trả lời

3

Tôi không thể tìm thấy bất kỳ công cụ hiện có nào, do đó nhóm của chúng tôi tại Galois đã điều chỉnh công cụ phân tích tĩnh mà chúng tôi đã tạo trong ~ 4 năm qua để xác định cuộc gọi phương thức được bảo vệ quyền trong ứng dụng Android nhị phân.

Bạn có thể sử dụng nó tại địa chỉ:

Có thêm chi tiết ở đây:

http://galois.com/blog/2015/10/fuse-analyzer-handling-runtime-permissions-android-6-0/

Các vấn đề liên quan