Kiểm tra quyền ứng dụng dễ dàng ở một nơi?


28

Có cách nào để liệt kê tất cả các ứng dụng được cài đặt trên điện thoại của bạn và các quyền mà chúng yêu cầu tất cả trên một trang hoặc xuất danh sách để có thể dễ dàng kiểm tra không?

Câu trả lời:


14

Sử dụng các ứng dụng thị trường như Quyền giám sát hoặc Quyền . Ngoài ra, có một số người khác.


Thật không may, ứng dụng Market có lỗi (hoặc tính năng dự định?) Khi không phải tất cả các quyền đều được liệt kê khi cài đặt ứng dụng. Đây có thể là sự cố tương thích với phần mềm được thiết kế cho các bản phát hành Android cũ hơn ... code.google.com/p/android/issues/detail?id=9365
Denis Nikolaenko

2
có lẽ bao gồm cả nhận xét vào câu trả lời của bạn sẽ đơn giản hơn.
bbaja42

@Nikolaenko, rõ ràng nó đang có chủ đích và đã thay đổi ngay bây giờ: android.stackexchange.com/questions/605/
mẹo

@BlackShift, ý của bạn là "thay đổi ngay bây giờ" là gì? Thay đổi bởi nhà phát triển Android. đội?
Denis Nikolaenko

@Nikolaenko, tôi nghĩ rằng tôi không rõ ràng vì nó không rõ ràng với tôi. Tôi đang chạy cyanogenmod 6, android 2.2 và hầu hết tất cả các ứng dụng đều yêu cầu các quyền mà yêu cầu liên kết của bạn được cấp hoàn toàn. Vì vậy, tôi không biết ai đã thay đổi điều này (nhóm cyanogen hoặc Android).
BlackShift

4

Một ứng dụng khác mà tôi đã kết thúc sử dụng thay vì QuyềnRL Quyền . Tôi thích giao diện hơn. Theo như một trong những hoạt động tốt hơn, tôi không biết.




0

Vì không có phiên bản Android nào được đề cập trong câu hỏi, tôi đang đề xuất câu trả lời dựa trên dòng lệnh có liên quan đến phiên bản Android 4.2.1 trở lên. Điều này lý tưởng là một giải pháp độc lập với hệ điều hành, đó là hệ điều hành trên PC.

Phụ thuộc

  • Yêu cầu được thiết lập trong PC.
  • Yêu cầu bận rộn nhị phân. Nếu thiết bị đã được root, hãy cài đặt ứng dụng Busybox . Khác, tải xuống tệp nhị phân busybox từ nguồn chính thức , đổi tên nhị phân thành busybox , đặt quyền thực thi tương thích Linux cho nhị phân đó cho mọi người và chuyển nó vào thiết bị bằng cách sử dụng

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC
    
  • Yêu cầu nhị phân aapt . Nếu bạn đang chạy CM hoặc ROM phái sinh của nó thì hãy bỏ qua yêu cầu này. Mặt khác, đối với Android 4.x, bạn có thể xem xét tải xuống tệp nhị phân từ đây , đổi tên nhị phân thành aapt , đặt quyền thực thi tương thích Linux trên tệp nhị phân đó cho mọi người và chuyển nó vào thiết bị bằng cách sử dụng

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC . 
    

    Đối với người dùng Android 5.x, hãy yêu cầu Google hỗ trợ.

Đây là kịch bản nhỏ của tôi làm điều kỳ diệu:

#! / hệ thống / thùng / sh

# Kiểm tra xem nhị phân busybox có tồn tại dưới / data / local / tmp / hoặc / system / xbin không. Đặt đường dẫn nhị phân được phát hiện vào busybox biến hoặc thoát nếu tệp không tồn tại hoặc không cho phép thực thi
[[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "không tìm thấy nhị phân busybox hoặc quyền thực thi. Thoát \ n" && exit; }; }
# Kiểm tra xem nhị phân aapt có tồn tại dưới / data / local / tmp hoặc / system / bin hoặc / system / xbin không. Đặt đường dẫn nhị phân được phát hiện vào biến aapt hoặc exit nếu tệp không tồn tại hoặc không cho phép thực thi
[[-x / data / local / tmp / aapt]] && aapt = / data / local / tmp / aapt | | {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "không tìm thấy quyền nhị phân aapt hoặc quyền thực thi. Thoát \ n" && exit; }; }; }

# Liệt kê tên gói của tất cả các ứng dụng đã cài đặt và lưu chúng trong tệp tests.txt trong / sdcard
danh sách các gói | $ busybox sed 's / ^ gói: // g' | $ busybox sort -o /sdcard/packages.txt

# Đối với mỗi tên gói trong đầu ra chúng tôi vừa lưu, hãy lấy nhãn của ứng dụng bằng cách sử dụng $ path và $ nhãn, in một dòng và cuối cùng liệt kê các quyền được cấp cho ứng dụng 
trong khi đọc dòng; làm
    path = $ (pm đường dẫn $ line | $ busybox sed 's / ^ gói: // g'); 
    nhãn = $ ($ aapt d badging $ path | $ busybox grep 'application: nhãn =' | $ busybox cut -d "'" -f2);  
    $ busybox printf "Quyền cho ứng dụng $ nhãn có tên gói $ line \ n"; 
    gói dumpsys $ line | $ busybox sed -e '1, / cấpPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sắp xếp;
    $ busybox printf "\ n"; 
xong </sdcard/packages.txt

Đầu ra demo:

Quyền cho ứng dụng DisableService có tên gói cn.wq.disableservice
      ERIC.READ_EXTERNAL_STORAGE
      ERIC.WRITE_EXTERNAL_STORAGE

Quyền cho ứng dụng Xecure không đứng đắn có tên gói co.vanir.indecentxposeure
      ERIC.RECEIVE_BOOT_COMPLETED

Quyền cho ứng dụng Thẻ có tên gói com.android.apps.tag
      ERIC.CALL_PHONE
      ERIC.NFC
      ERIC.READ_CONTACTS
      ERIC.WAKE_LOCK
      ERIC.WRITE_SECURE_SettING
...
...
Quyền cho ứng dụng Chủ đề Nhà cung cấp có tên gói org.cyanogenmod.theme.provider
      ERIC.ACCESS_NOTIFICATION
      ERIC.ACCESS_THEME_MANAGER
      ERIC.INTERNET
      ERIC.READ_THEMES
      ERIC.WRITE_SECURE_SettING
      ERIC.WRITE_SettING
      ERIC.WRITE_THEMES

Lưu tập lệnh trong PC vào một tệp có tên perm_script.shvà di chuyển nó vào / sdcard bằng cách sử dụng

adb push LOCAL_FILE /sdcard/   # LOCAL_FILE is the  path where you saved that file into PC

Chạy tập tin đó

adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE   # OUTPUT_FILE is the path where you want to save the final output

Các ứng dụng được cài đặt trong hệ thống càng lớn thì thời gian để lệnh hoàn thành thực thi càng lớn. Trong thiết bị của tôi, mất khoảng ba phút.

Liên quan: Có cách nào để tìm tất cả các ứng dụng đã cài đặt có quyền truy cập vào tính năng điện thoại không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.