Verificador de declaraciones de permisos en Play Console

Pega tu AndroidManifest.xml o la salida de aapt2 dump permissions de tu APK compilado. Se listan todos los permisos, y primero los que pueden necesitar una declaración en Google Play Console, con lo que espera Google y qué hacer. Funciona en tu navegador: no se sube nada. Las fichas de cada permiso están en inglés.

Se ejecuta en tu navegador. Nada de lo que pegas se sube ni se guarda.

¿Por qué revisar el manifiesto fusionado y no solo el tuyo?

Cada librería que añades trae su propio manifiesto, y la compilación los fusiona con el tuyo. Así es como una app termina pidiendo un permiso que nadie del equipo escribió: un SDK de anuncios puede añadir el ID de publicidad, una librería de actualizaciones o para abrir archivos REQUEST_INSTALL_PACKAGES, y una de notificaciones o de programación, alarmas exactas. Google revisa el resultado fusionado.

Para ver la lista que realmente recibirán tus usuarios:

  • Android Studio: abre AndroidManifest.xml y haz clic en la pestaña Merged Manifest en la parte inferior del editor. También muestra de qué librería viene cada línea.
  • El APK compilado: ejecuta el comando de abajo y pega aquí su salida.
aapt2 dump permissions app-release.apk

¿Cómo quito un permiso que añadió una librería?

Declara el mismo permiso en tu propio manifiesto con tools:node="remove". Así la fusión lo descarta, lo haya pedido la librería que sea. Funciona igual en proyectos nativos, de Flutter y de React Native (en los dos últimos, el archivo es android/app/src/main/AndroidManifest.xml).

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
        tools:node="remove" />
</manifest>

En un proyecto de Expo, añádelo en android.blockedPermissions en la configuración de tu app, que hace lo mismo durante el prebuild:

{
  "expo": {
    "android": {
      "blockedPermissions": ["android.permission.QUERY_ALL_PACKAGES"]
    }
  }
}

Después prueba lo que hace esa librería. Si necesitaba el permiso, la función puede dejar de funcionar, y tendrás que elegir entre la función y la declaración.

¿Qué no puede decirte este verificador?

Si tu uso de un permiso cumple los requisitos. Google restringe la mayoría a ciertos tipos de app, y solo su revisión decide si la tuya es una de ellas. Además, el verificador solo lee lo que pegas, así que no puede ver qué recopilan los SDK de tu app, a qué nivel de API apunta la compilación ni si se quedaron claves dentro.

Preguntas habituales

¿Qué permisos de Android necesitan una declaración en Play Console?
Los sensibles que Google restringe a ciertos tipos de app: ubicación en segundo plano, acceso a todos los archivos, SMS y registro de llamadas, QUERY_ALL_PACKAGES, REQUEST_INSTALL_PACKAGES, alarmas exactas, intents de pantalla completa, acceso a fotos y vídeos, tipos de servicio en primer plano y el ID de publicidad, entre otros. Si el tuyo está permitido depende de lo que hace tu app, y eso solo lo decide la revisión de Google.
¿Por qué mi app tiene un permiso que nunca añadí?
Las librerías traen sus propios manifiestos, y la compilación los fusiona con el tuyo. Revisa el manifiesto fusionado en Android Studio, o ejecuta aapt2 dump permissions sobre el APK compilado, para ver la lista completa.
¿Cómo quito un permiso que añadió una librería?
Decláralo en tu propio manifiesto con tools:node="remove", o en Expo añádelo en android.blockedPermissions. Luego prueba la función que ofrece esa librería, porque puede que necesitara ese permiso.
¿Se sube mi manifiesto a algún sitio?
No. El verificador funciona en tu navegador y el texto que pegas nunca se envía a un servidor.

Fuentes

¿Podemos usar analítica y medición de anuncios? La analítica (Vercel, y Ahrefs en nuestras páginas públicas) cuenta las visitas sin cookies. La medición de anuncios permite que la etiqueta de Google en nuestras páginas públicas vea qué visitas llegaron desde nuestros anuncios de Google, usando una cookie de Google. El sitio funciona igual en ambos casos. Política de cookies · Cómo usa Google los datos ·