Leer el permiso APK por comando de shell

16

Quiero leer los permisos solicitados de un archivo .apk en la computadora (Android SDK está instalado) a través de la línea de comandos.

ES DECIR:

$ android read-permissions /path/to/someapp.apk

Sé que esto es posible, simplemente no puedo encontrar el comando adecuado.

whlk
fuente

Respuestas:

25

Si estoy interpretando "en la computadora" correctamente como "Quiero usar la línea de comando en mi computadora para leer los permisos de un archivo .apk", puede hacerlo con aaptun archivo local de la siguiente manera:

C:\>aapt d permissions "MyApp.apk"
package: com.app.myapp
uses-permission: android.permission.ACCESS_NETWORK_STATE
uses-permission: android.permission.INTERNET

Si quiere decir que el .apk está en el dispositivo, entonces no conozco una forma de hacerlo aparte de tirar de él y ejecutarlo aaptcomo se indicó anteriormente. pmtiene un list permissionscomando pero solo enumera todos los permisos disponibles en el dispositivo y no acepta un paquete como parámetro (de todos modos, que yo sepa).

eldarerathis
fuente
1

En el dispositivo, probablemente será más fácil buscar la sección relevante en

/data/system/packages.xml

(que se puede leer, aunque su directorio no se puede examinar o enumerar) ya que este es un archivo de texto, mientras que AndroidManifest.xml en un apk está en formato comprimido.

Hay un código en la red para interpretar los manifiestos comprimidos en el dispositivo, pero eso es un poco más complicado.

Chris Stratton
fuente