¿Qué precauciones y advertencias debemos conocer al usar el nuevo "APK Signature Scheme v2"?

Fondo

Recientemente, cuando estaba a punto de firmar mi APK para ser publicado en Play Store, obtuve esta nueva opción:

Introduzca aquí la descripción de la imagen

Al pulsar el enlace "Ayuda de firma", abrió esta página web: https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2

Buscando más, he encontrado esto:

Http://android-developers.blogspot.co.il/2016/11/understanding-apk-packaging-in-android-studio-2-2.html

Resulta que es una nueva verificación en Android 7.x, que puede ayudar a hacer el APK más seguro, pero también un poco más pequeño en tamaño.

Intenté usar esta nueva característica, y como fue escrito en el blog, hace el APK un poco más pequeño. También, tal y como se escribió, se entiende sólo en Android 7.x y superior (sin embargo, puede firmar utilizando ambos métodos en el mismo APK, lo que le permite instalar la aplicación en versiones anteriores de Android también).

El problema

No entiendo si es seguro utilizar el nuevo mecanismo de firma, y ​​qué es exactamente lo que advierten sobre los documentos.

Hay al menos una advertencia que he leído que no creo que necesite un cuidado especial para la mayoría de develoeprs:

Precaución: Si firma su aplicación utilizando APK Signature Scheme v2 y realiza otros cambios en la aplicación, la firma de la aplicación se invalidará. Por esta razón, utilice herramientas como zipalign antes de firmar su aplicación utilizando APK Signature Scheme v2, no después.

Creo que puedo ignorar esta advertencia, porque sólo dejo que el IDE en sí construir el APK utilizando el comportamiento de construcción predeterminado.

Lo que intenté

He intentado usar todas las 3 formas de firmar la aplicación:

  • V1
  • V2
  • V1 y v2 (juntos en un solo APK)

Parece que v2 por sí solo no se puede instalar en las versiones anteriores a 7.x de Android, pero el resto puede, y también parece que v2 es más pequeño que v1, mientras que v1 y v2 es un poco más grande que v1.

Las preguntas

  1. ¿Es seguro cambiar de la firma antigua a la nueva (habilitando tanto la firma por supuesto)?

  2. ¿Tendrán los usuarios problemas de actualización? ¿Los usuarios actualizarán de v1 a v2 o de v2 (o v1 y v2) a v1 (en caso de que algo salga mal) – ¿tienen algún problema?

  3. ¿Debería saber sobre cualquier advertencia? ¿Tenía razón en que podía ignorar la advertencia que he mencionado?

  4. Aparte de una mejor seguridad, ¿qué proporciona la firma utilizando v1 y v2 (juntos), que no tengo en v1?

  5. Mi conjetura es que sólo de Android 7, podremos utilizar sólo v2, que proporciona una forma de tener APK más pequeños. ¿Es verdad?

  1. ¿Es seguro cambiar de la firma antigua a la nueva (habilitando tanto la firma por supuesto)?

Sí. Siempre y cuando no modifiques el APK después de firmar, eres bueno.

  1. ¿Tendrán los usuarios problemas de actualización? ¿Los usuarios actualizarán de v1 a v2 o de v2 (o v1 y v2) a v1 (en caso de que algo salga mal) – ¿tienen algún problema?

Sin problemas. Una vez que el Administrador de paquetes de Android verifica una firma APK (utilizando el esquema v1 o v2), extrae los cert (s) de firma y luego basa cualquier lógica adicional (por ejemplo, se permite este APK para ser utilizado como una actualización de la antigua) En el (los) certificado (s) de firma. Por lo tanto, siempre y cuando su APK se firma con el mismo cert (s) de firma, debe ser bueno.

  1. ¿Debería saber sobre cualquier advertencia? ¿Tenía razón en que podía ignorar la advertencia que he mencionado?

Puede ignorar esa advertencia en particular si utiliza sólo el complemento de Android para Gradle / Android Studio para crear y firmar sus APK. La advertencia está ahí para los desarrolladores que usan tuberías de construcción personalizadas que pueden modificar APK después de firmar.

No tengo conocimiento de otras advertencias.

  1. Aparte de una mejor seguridad, ¿qué proporciona la firma utilizando v1 y v2 (juntos), que no tengo en v1?

V2 firma verifica mucho más rápido. Esto significa que APKs firmados con v2 instalan / actualizan un poco más rápido en Android Nougat (Android 7.0, API Level 24) y más reciente.

  1. Mi conjetura es que sólo de Android 7, podremos utilizar sólo v2, que proporciona una forma de tener APK más pequeños. ¿Es verdad?

Correcto. Sin embargo, el ahorro de tamaño APK nunca fue un objetivo de APK Signature Scheme v2. El ahorro es sólo una pequeña cifra proporcional al número de archivos en el APK, no a su tamaño. Lo que se ahorra son los resúmenes por archivo en META-INF/MANIFEST.MF y META-INF/*.SF . El META-INF/*.(RSA|DSA|EC) es reemplazado por el Bloque del Esquema de la Firma APK de tamaño similar en otra parte del APK.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.