Cách xem quyền của ứng dụng Android trước khi cài đặt APK

A smartphone showing a list of app permissions with a magnifying glass

Khi bạn cài đặt một ứng dụng từ Cửa hàng Google Play, Android sẽ hiển thị bản tóm tắt đơn giản về những gì ứng dụng có thể truy cập. Tải APK từ nguồn không phải của Play và bạn không có mạng lưới an toàn như vậy, trừ khi bạn tự đọc bản kê khai. "Ứng dụng hình nền có thực sự cần quyền truy cập SMS và micrô không?" chính xác là loại câu hỏi mà hướng dẫn này sẽ giúp bạn trả lời.

Phần tiếp theo là quy trình làm việc tương tự mà nhóm của chúng tôi sử dụng khi phân loại một APK lạ: mở nó, đọc các mục uses-permission, giải mã các cấp độ bảo vệ và so sánh những gì ứng dụng nói nó cần với những gì danh mục của nó thường yêu cầu. Công cụ thông tin APK trực tuyến của chúng tôi thực hiện giải mã XML nhị phân cho bạn nên toàn bộ quá trình mất khoảng mười giây.

Thời gian đọc: ~9 phút. Công cụ cần thiết: một trình duyệt; tùy ý apksigner Và aapt2 từ SDK Android nếu bạn muốn thực hiện các bước kiểm tra tương tự từ thiết bị đầu cuối. Những gì bạn sẽ có thể làm khi kết thúc: đọc danh sách cấp phép đầy đủ của bất kỳ APK nào, phát hiện bốn hoặc năm yêu cầu "có tác động lớn" hầu như luôn cho thấy sự cố và quyết định xem có nên cài đặt trước khi cài đặt hay không sau đó.

Tại sao phải bận tâm về quyền kiểm tra?

Các nhà phát triển độc hại lấy các ứng dụng miễn phí phổ biến, thay đổi chúng và phát hành lại chúng trên các trang web của bên thứ ba. Mặc dù ứng dụng có thể trông và hoạt động bình thường nhưng mã ẩn của ứng dụng có thể đang sao chép danh sách liên hệ của bạn hoặc ghi lại âm thanh nền của bạn. Bằng cách xem các quyền cài đặt sẵn, bạn có thể phát hiện ra những dấu hiệu màu đỏ về "sự tăng quyền".

Cách kiểm tra bất kỳ tệp APK nào (Trực tuyến)

Công cụ thông tin APK của chúng tôi đọc toàn bộ tệp kê khai tệp của bạn trong trình duyệt của bạn; tệp không bao giờ được tải lên máy chủ và không có mã nào được thực thi. Đây là cách sử dụng nó:

Quá trình:

  1. Đi đến Trang thông tin APK.
  2. Chọn tệp .apk của bạn.
  3. Đợi quá trình phân tích kết thúc (thường là 5 giây).
  4. Cuộn xuống Phần quyền.
  5. Hãy tìm các cờ có rủi ro cao như: READ_SMS, PROCESS_OUTGOING_CALLS hoặc ACCESS_FINE_LOCATION.

Danh sách cờ đỏ cấp phép

Nếu ứng dụng Máy tính hoặc Đèn pin yêu cầu READ_CONTACTS hoặc RECORD_AUDIO, hãy xóa tệp ngay lập tức. Không có lý do chính đáng nào để các ứng dụng này có dữ liệu đó.

Hiểu cấp độ cấp phép của Android

Không phải tất cả các quyền đều được tạo ra như nhau. Android phân loại chúng thành ba cấp độ:

Phương pháp thủ công (Sử dụng Trình xem ZIP)

Nếu bạn có một số kỹ năng kỹ thuật, bạn có thể tự kiểm tra các quyền:

  1. Đổi tên app.apk thành app.zip và mở nó.
  2. Tìm AndroidManifest.xml. (Lưu ý: Nó ở định dạng nhị phân và sẽ trông giống như vô nghĩa trong trình soạn thảo văn bản).
  3. Sử dụng công cụ như Máy in AXML để chuyển đổi nó thành văn bản có thể đọc được.
  4. Tìm kiếm các thẻ bắt đầu bằng <uses-permission>.

Khuyến nghị: Sử dụng công cụ trực tuyến của chúng tôi sẽ nhanh hơn nhiều để giải mã điều này cho bạn ngay lập tức.

Kiểm tra ứng dụng của bạn ngay bây giờ

Biết chính xác những gì ứng dụng của bạn đang yêu cầu. Không có bí mật, không có rủi ro.

Kiểm tra quyền APK

Những gì thực sự được lưu trữ trong AndroidManifest.xml

Tệp kê khai là nguồn thông tin chính xác cho mọi quyền, thành phần và tính năng mà ứng dụng khai báo. Bên trong APK, tệp ở dạng XML nhị phân, không phải văn bản thuần túy bạn thấy trong mã nguồn, vì vậy không thể đọc được bằng trình soạn thảo văn bản thông thường. Công cụ Thông tin APK của chúng tôi giải mã XML nhị phân và hiển thị các thẻ có liên quan. Những cái quan trọng nhất là:

Cấp độ bảo vệ quyền: Bảng cheat

Android gán cho mọi quyền một "mức độ bảo vệ". Việc biết yêu cầu thuộc cấp độ nào sẽ cho bạn biết hệ điều hành sẽ xử lý yêu cầu đó nghiêm túc đến mức nào.

Mức độ bảo vệ Trải nghiệm người dùng Ví dụ
Bình thường Cấp âm thầm tại thời điểm cài đặt. Không có lời nhắc. INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK
nguy hiểm Lời nhắc thời gian chạy khi tính năng này được sử dụng lần đầu tiên. Có thể thu hồi trong Cài đặt. CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION
chữ ký Chỉ được cấp cho các ứng dụng được ký bằng cùng chứng chỉ với ứng dụng cấp hoặc hệ điều hành. BIND_VPN_SERVICE, INSTALL_PACKAGES (chỉ dành cho hệ thống)
chữ ký|đặc quyền Chỉ khả dụng cho các ứng dụng được cài đặt sẵn trong thư mục priv-app của hình ảnh hệ thống. QUẢN LÝ_USERS, READ_LOGS
ứng dụng / vai trò Yêu cầu một luồng Cài đặt riêng để bật. HỆ THỐNG_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE

Quyền "Ẩn" thực sự có nghĩa là gì

Một quan niệm sai lầm phổ biến là cho rằng một số quyền là bí mật. Không phải vậy: mọi quyền mà ứng dụng có thể sử dụng đều phải được khai báo trong AndroidManifest.xml và HĐH từ chối cấp bất kỳ quyền nào không được liệt kê ở đó. Những gì mọi người thường ám chỉ khi nói từ "ẩn" là một trong hai điều sau:

Dù bằng cách nào, câu trả lời đều giống nhau: đọc bảng kê khai, không tin vào mô tả Cửa hàng Play.

Ví dụ đã hoạt động: Kiểm tra APK thực

Giả sử bạn có example.apk trong thư mục Tải xuống. Đây là quy trình làm việc chính xác:

  1. Mở Công cụ thông tin APK trong trình duyệt của bạn.
  2. Thả APK vào khu vực tải lên. Quá trình xử lý diễn ra cục bộ; tập tin không rời khỏi thiết bị của bạn.
  3. Đọc phần Quyền. Mỗi mục hiển thị tên hằng số (android.permission.READ_CONTACTS và mô tả dễ hiểu về những gì quyền đó cho phép).
  4. So sánh danh sách với danh mục của ứng dụng. Đại khái, mong đợi:
    • CAMERA Ứng dụng máy ảnh:, RECORD_AUDIO (cho video), ghi BỘ LƯU TRỮ/MEDIA
    • Ứng dụng nhắn tin: INTERNET, READ_CONTACTS, SEND_SMS (chỉ khi dựa trên SMS), RECORD_AUDIO (đối với ghi chú thoại), CAMERA (để gửi ảnh)
    • INTERNET Trò chơi:, đôi khi RECORD_AUDIO (để trò chuyện thoại trong trò chơi), các quyền liên quan đến thanh toán; hiếm khi có điều gì khác
    • Ứng dụng tiện ích (máy tính, đèn pin, thời tiết): INTERNET (dành cho quảng cáo), ACCESS_NETWORK_STATE, có thể là LOCATION (chỉ thời tiết). Bất cứ điều gì ngoài đó đều đáng nghi ngờ.
  5. Nếu bất cứ điều gì trong danh sách không phù hợp với danh mục, đừng cài đặt. Không có lý do chính đáng nào để máy tính cần truy cập SMS.

Logic tương tự được áp dụng cho dù tệp là APK, XAPK (nơi chúng tôi đọc APK cơ sở bên trong) hay gói APKS (nơi chúng tôi đọc tệp kê khai của từng phần tách).

Thực hiện nó từ dòng lệnh

Nếu bạn thích tuyến đầu cuối, SDK Android sẽ gửi aapt2, kết xuất một tệp kê khai từ bất kỳ APK nào ở dạng XML thuần túy:

aapt2 dump badging example.apk | grep "uses-permission"

Hoặc sử dụng apksigner để xác minh chứng chỉ ký cùng lúc:

apksigner verify --print-certs example.apk

Công cụ trình duyệt thực hiện điều tương tự đối với những người dùng không muốn cài đặt SDK chỉ để kiểm tra một tệp duy nhất.

Câu hỏi thường gặp (FAQ)

Tôi có thể từ chối quyền sau khi cài đặt APK không?

Đúng. Trên Android 6.0 trở lên, bạn có thể truy cập Cài đặt > Ứng dụng > [Tên ứng dụng] > Quyền để bật hoặc tắt các quyền nguy hiểm riêng lẻ.

Các tệp XAPK có các quyền khác nhau không?

XAPK chứa một hoặc nhiều APK. Mỗi APK bên trong đều có bảng kê khai riêng. Công cụ của chúng tôi sẽ phân tích APK chính trong gói để hiển thị cho bạn các quyền liên quan.

Tại sao mọi ứng dụng đều yêu cầu "Truy cập mạng"?

Hầu hết tất cả các ứng dụng đều cần truy cập Internet để phân tích, báo cáo lỗi hoặc quảng cáo. Mặc dù phổ biến nhưng đó cũng là cách dữ liệu bị đánh cắp được gửi đến máy chủ của hacker.

Kiểm tra quyền của tệp kê khai trước khi bạn nhấn vào cài đặt

Bạn không thể phán xét những gì bạn không thể nhìn thấy. Dành mười giây cho xem quyền của APK trước khi bạn tải, đó là sự khác biệt giữa việc biết ứng dụng có thể tiếp cận những gì và chỉ đơn giản là hy vọng nó hoạt động. Đọc danh sách trước và cài đặt thứ hai.

Được thiết kế và ghi lại bởi Mst Shaefale Nhà phát triển chính và Kiến trúc sư gói Android • Đã xác minh trên Android 12–15

Bà Shaefale duy trì việc hợp nhất XAPK/APKS phía máy khách, trình phân tích cú pháp tệp kê khai nhị phân và các công cụ ký APK v1+v2 tại xapktoapk.com. Phát hiện lệnh đã lỗi thời hoặc thay đổi hệ điều hành? Gửi một ghi chú biên tập.