6 votos

¿Hace `adb install` la verificación de la firma del APK?

Al utilizar adb install something.apk ¿el gestor de paquetes de Android verifica la firma del APK? adb install Parece que no aparece nada en la pantalla del teléfono, así que me resulta difícil saber si lo hace.

Me gusta la idea de usar sitios web espejo de APK para descargar archivos APK con un teléfono que no tiene Google Play Services, pero como no puedo confiar en ninguno de esos sitios web espejo de APK, quiero asegurarme de que los datos de la aplicación no están en riesgo si se usa adb install al actualizar a una nueva versión del APK.

Un par de preguntas:

  • Si adb install hace la verificación de la firma, ¿qué hace si la firma no coincide? ¿Falla la instalación, aparece una pregunta en la pantalla del teléfono o borra automáticamente los datos existentes de la aplicación?
  • ¿Y si se utiliza el -r opción con adb install ?
  • Si utilizo adb uninstall -k antes de instalar la actualización de la aplicación, ¿se verifica la firma de la instalación anterior antes de que los datos de la aplicación antigua se compartan con la nueva instalación?
  • Bonificación: Tenemos la opción adb install -l , donde -l significa "forward-lock the app". Qué significa este "forward-lock" y si tiene algo que ver con la verificación de la firma y el acceso a los datos de la aplicación?

5voto

pr0nin Puntos 353

Tienes razón adb install verifica la firma de la aplicación.

Si la aplicación no ha sido instalada antes en el dispositivo, el gestor de paquetes sólo puede verificar que la aplicación ha sido firmada; el gestor de paquetes no puede verificar quién ha firmado la aplicación.

Sólo si instalas una actualización para una aplicación que ya ha sido instalada antes, el gestor de paquetes puede comprobar si la firma de la nueva aplicación coincide con la aplicación ya instalada. En caso de que el "update.apk" que se va a instalar tenga una firma diferente, obtendrá un mensaje de error después de ejecutar adb install como

las firmas no coinciden con la versión previamente instalada

No estoy seguro de si esto también sucede en caso de que haya instalado la aplicación antigua antes de usar adb uninstall -k . Yo supondría (pero nunca lo he probado) que también se comprueba y compara la firma y sólo se puede instalar un apk con una firma que coincida. De lo contrario, se podría acceder a cualquier dato privado de la aplicación en el teléfono mediante la sustitución de la aplicación con una aplicación personalizada. Esto sería una grave vulnerabilidad de seguridad.

Si además quieres verificar tus archivos apk descargados puedes utilizar apksigner que se incluye en el SDK de Android. Los pasos necesarios se describen en esta respuesta Ya escribí hace algún tiempo. Especialmente la verificación del editor (comprobar qué otras apps han sido firmadas por la misma entidad) usando androidobservatory.org y apkmirror.com puede ser de tu interés.

forward-lock a mi entender es si quieres anclar una aplicación a la versión actual del firmware del dispositivo, por lo tanto marcar una aplicación como potencialmente no compatible con futuras versiones de Android.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X