0 votos

Desfragmentar y firmar apk dentro de apks hace que una aplicación no funcione en algunas características

( Es opcional leer )

Digamos que tengo una aplicación llamada X Esta es la versión más antigua de el apk que obtuve de google. Tengo datos importantes en la aplicación, por lo tanto, si la desinstalo, los perderé. Sin embargo, quiero actualizarla, ya que google play store ya no proporciona la aplicación (sólo está disponible en el sitio web oficial de la aplicación), tengo que descargarlo manualmente. Así que, de alguna manera (veo un tutorial de YT) tengo que firmar la última versión de la aplicación. Tonto de mí, he cometido un error que me sin firmar la nueva aplicación y luego firmó la aplicación después sin el conocimiento de que tipo de signo apropiado que necesito aplicar.

El problema:

Así que he unsigned (Eliminación de la verificación de la firma) una aplicación utilizando Gerente de NP (la propiedad dice que la aplicación tiene un estado de firma de V2 , así que maté la verificación de la firma v2) , y luego firmé la aplicación y hacer lo mismo es decir, la firma de la aplicación utilizando el esquema de la firma V2 (NP Manager tiene 3 opciones: v1+v2, v1 y v2 [Android 7.0+]).

Al principio, funcionaba con éxito, es decir, podía instalarla perfectamente, algunas funciones funcionaban y nada parecía estar mal, por desgracia, había una (Idk cómo se llama) barra/menú/sección cuando la abría, la aplicación se detenía inmediatamente (cierre forzado). He tratado de hacer prueba y error investigando lo que está mal y el problema parece venir de la unisigning y firma .

Mi pregunta:

¿Es posible que el hecho de no firmar o firmar la aplicación pueda dañar la propia aplicación, lo que hace que algunas funciones no funcionen aunque la aplicación pueda instalarse correctamente? Si es así, ¿cómo se puede evitar este problema? ¿Se debe a que la firma original y la nueva firma que doy difieren y se bloquean de alguna manera?

P.D. Sólo me interesa saber por qué al desfirmar y firmar da error la aplicación y cómo solucionarlo. Espero que me expliquen el error que ocurre en mi app y por qué la firma es importante.

Gracias de antemano.

1voto

pr0nin Puntos 353

El sistema operativo Android comprueba la firma sólo en el momento de la instalación. La información de verificación se guarda y puede ser recuperada por la aplicación en tiempo de ejecución (pero el número de aplicaciones que lo hacen es muy bajo).

En general, las aplicaciones funcionan sin importar cómo y con qué clave/certificado están firmadas. Sólo unas pocas aplicaciones implementan medidas contra el reempaquetado/resignación de aplicaciones, de modo que comprueban la firma de su aplicación en tiempo de ejecución y, si no coincide, la abandonan o muestran un mensaje de error o algo parecido.

Que una aplicación empiece a funcionar y luego se cuelgue de repente suena más a un error de la aplicación. Lo más probable es que la aplicación se haya desarrollado para una versión de Android más antigua o para un modelo de teléfono diferente (a veces hay pequeñas diferencias entre los distintos modelos).

Además, no hay ninguna diferencia si primero quitas la firma de un APK y luego lo firmas. Por defecto, una nueva firma sustituye totalmente a la antigua.

0 votos

"Por defecto, una nueva firma sustituye totalmente a la antigua". ¿Estás seguro de eso? Así que si uno quiere doble-firma (como se hace con las construcciones reproducibles en F-Droid, que llevan la firma del desarrollador original, así como la de F-Droid, mientras que en la firma de F-Droid la clave privada del desarrollador no está presente), uno debe decirlo explícitamente?

0 votos

@Izzy Cuando ejecuto apksigner sign entonces la nueva firma reemplaza totalmente a la antigua (probado con build-tools v29 y 31 y un APK que tenía una sig sólo v2). Pero no he visto ninguna opción para cambiar el comportamiento de apksigner entre reemplazar y añadir una firma.

1 votos

Ahí está el --next-signer opción. Pero en todos los ejemplos que he visto hasta ahora, sólo va después de la primera clave de firma. Acabo de probarlo, el resultado es el mismo que sin la opción (las firmas parecen ser reemplazadas). Supongo que tendré que preguntar a mis compañeros de F-Droid

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