한 곳에서 앱 권한을 쉽게 감사합니까?


28

전화기에 설치된 모든 응용 프로그램과 필요한 모든 권한을 한 페이지에 나열하거나 쉽게 감사 할 수 있도록 목록을 내보내는 방법이 있습니까?

답변:


14

Permission Watchdog 또는 Permissions 와 같은 시장 응용 프로그램을 사용하십시오 . 또한 여러 가지가 있습니다.


불행하게도, 마켓 애플리케이션에는 애플리케이션을 설치할 때 모든 권한이 나열되지 않은 경우 버그 (또는 의도 된 기능?)가 있습니다. 이전 Android 버전 용으로 설계된 소프트웨어와의 호환성 문제 일 수 있습니다 ... code.google.com/p/android/issues/detail?id=9365
Denis Nikolaenko

2
아마도 당신의 답변에 의견을 포함시키는 것이 더 간단 할 것입니다.
bbaja42

@Nikolaenko, 분명히 그것은 목적에 있고 지금 변경되었습니다 : android.stackexchange.com/questions/605/…
BlackShift

@BlackShift, "지금 바뀐"은 무슨 뜻입니까? Android 개발자가 변경했습니다. 팀?
Denis Nikolaenko

@Nikolaenko, 나는 그것이 분명하지 않기 때문에 불분명했다고 생각합니다. cyanogenmod 6, android 2.2를 실행 중이며 거의 모든 앱에서 링크 클레임이 암시 적으로 부여 된 권한을 요청합니다. 그래서 누가 이것을 변경했는지 모르겠습니다 (시아 노젠 또는 안드로이드 팀).
BlackShift

4

내가 권한 대신에 사용했던 또 다른 앱 은 RL Permissions 입니다. 나는 인터페이스를 선호한다. 어느 쪽이 더 잘 작동하는지는 모르겠습니다.



0

Permission Friendly Apps 는 가장 까다로운 권한 요구 사항에서 가장 까다로운 순서로 설치된 앱을 나열합니다. (실제로 행동을 추적하거나 감사하거나 조정하지는 않습니다.)


0

이 질문에 Android 버전이 언급되어 있지 않으므로 Android 버전 4.2.1 이상과 관련된 명령 줄 기반 답변을 제안하고 있습니다. 이것은 OS에 독립적 인 솔루션 인 PC의 OS입니다.

의존성

  • PC에서 를 설정 해야합니다 .
  • 비지 박스 바이너리가 필요합니다 . 기기가 루팅 된 경우 Busybox 앱을 설치 합니다. 그렇지 않으면 공식 소스 에서 busybox 바이너리를 다운로드 하고 바이너리 이름을 busybox로 바꾸고 모든 사람이 해당 바이너리에 대한 Linux 호환 실행 권한 을 설정 하고 다음을 사용하여 장치로 옮깁니다.

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC
    
  • aapt 바이너리가 필요합니다 . CM 또는 파생 ROM을 실행중인 경우이 요구 사항을 무시하십시오. 그렇지 않으면 Android 4.x의 경우 여기 에서 바이너리를 다운로드하고 바이너리 이름을 aapt로 바꾸고 모든 사람이 해당 바이너리에 Linux 호환 실행 권한 을 설정 하고 다음을 사용하여 장치로 옮길 수 있습니다

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

    Android 5.x 사용자의 경우 Google에 도움을 요청하십시오.

다음은 마법을 수행하는 작은 스크립트입니다.

#! / system / bin / sh

# busybox 바이너리가 / data / local / tmp / 또는 / system / xbin에 있는지 확인하십시오. 감지 된 바이너리 경로를 변수 busybox로 설정하거나 파일이 없거나 실행 권한이 설정되지 않은 경우 종료
[[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "busybox 바이너리를 찾을 수 없거나 실행 권한이 설정되지 않았습니다. 종료 \ n"&& exit; }; }
# aapt 바이너리가 / data / local / tmp 또는 / system / bin 또는 / system / xbin에 있는지 확인하십시오. 파일이 없거나 실행 권한이 설정되지 않은 경우 감지 된 이진 경로를 변수 aapt 또는 exit로 설정하십시오.
[[-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 "적응 이진을 찾을 수 없거나 실행 권한이 설정되지 않았습니다. 종료 \ n"&& exit; }; }; }

# 설치된 모든 앱의 패키지 이름을 나열하고 / sdcard 아래의 packages.txt 파일에 저장하십시오.
오후 목록 패키지 | $ busybox sed 's / ^ package : // g'| $ busybox sort -o /sdcard/packages.txt

# 방금 저장 한 출력의 각 패키지 이름에 대해 $ path 및 $ label을 사용하여 앱의 레이블을 가져 와서 행을 인쇄 한 다음 앱에 부여 된 권한을 나열 
줄을 읽는 동안; 해야 할 것
    path = $ (pm 경로 $ line | $ busybox sed 's / ^ package : // g'); 
    label = $ ($ aapt d badging $ path | $ busybox grep 'application : label ='| $ busybox cut -d " '"-f2);  
    $ busybox printf "패키지 이름이 $ line \ n 인 앱 $ label에 대한 권한"; 
    dumpsys 패키지 $ line | $ busybox sed -e '1, / grantedPermissions : / d'-e '/ ^ \ s * $ /, $ d'| $ busybox 정렬;
    $ busybox printf "\ n"; 
완료 </sdcard/packages.txt

데모 출력 :

패키지 이름이 cn.wq.disableservice 인 앱 DisableService에 대한 권한
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE

패키지 이름이 co.vanir.indecentxposure 인 앱 Indecent Xposure에 대한 권한
      android.permission.RECEIVE_BOOT_COMPLETED

패키지 이름이 com.android.apps.tag 인 앱 태그에 대한 권한
      android.permission.CALL_PHONE
      android.permission.NFC
      android.permission.READ_CONTACTS
      android.permission.WAKE_LOCK
      android.permission.WRITE_SECURE_SETTINGS
...
...
org.cyanogenmod.themes.provider 패키지 이름을 가진 앱 테마 제공자에 대한 권한
      android.permission.ACCESS_NOTIFICATIONS
      android.permission.ACCESS_THEME_MANAGER
      android.permission.INTERNET
      android.permission.READ_THEMES
      android.permission.WRITE_SECURE_SETTINGS
      android.permission.WRITE_SETTINGS
      android.permission.WRITE_THEMES

PC의 스크립트를 파일 이름으로 저장하고 다음을 perm_script.sh사용하여 / sdcard로 이동하십시오.

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

그 파일을 실행

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

시스템에 설치된 앱이 많을수록 명령 실행 시간이 길어집니다. 내 장치에서는 약 3 분이 걸렸습니다.

관련 : 전화 기능에 액세스 할 수있는 설치된 모든 앱을 찾는 기본 방법이 있습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.