¿Los gapps (p. ej., de goo.im) están firmados de forma que se evite la manipulación? ¿Hay alguna forma de verificar que son los mismos que obtendría de Google?
¿Todas/la mayoría de las ROM verifican esto?
Todas las aplicaciones de Android están firmadas.
Android no ejecutará una aplicación sin firmar. Además, las firmas están vinculadas a los permisos de la aplicación, de modo que si la firma fuera incorrecta, otras aplicaciones no podrían comunicarse con ella y usted no podría recibir actualizaciones de Google Play.
La firma de Android se analiza con más profundidad en Firma de sus aplicaciones en la documentación para desarrolladores de Android, de donde se extrajo la información anterior.
Si está paranoico y desea verificar la firma de una aplicación , puede usar la jarsigner
utilidad incluida con el kit de desarrollo de Java (JDK) . Por ejemplo:
jarsigner -verify -verbose -certs Vending.apk
Si obtuvo sus gapps de goo.im
, puede verificar manualmente si la suma MD5 del archivo .zip que descargó es correcta. Esto le aseguraría que el archivo no ha sido alterado.
Si está flasheando ClockworkMod Recovery, existe esta opción: install zip from sdcard > toggle signature verification
.
Como dice la útil respuesta de Michael Hampton, todas las aplicaciones de Android están firmadas. Esto significa:
Todo esto no significa que una consola de recuperación como TeamWin o ClockworkMod recovery verifique correctamente las firmas de estas claves, ni significa que una rom sea de Google solo porque alguien la firmó correctamente.
¿Las roms comunes verifican las firmas en los archivos zip? Ellos si
Afortunadamente, parece que la recuperación de TeamWin comprueba . Si lo entiendo correctamente, el código fuente (aquí están las partes de instalación y verificación ) de TeamWin recovery verifica que un archivo zip en su totalidad haya sido firmado usando una clave privada que corresponde a una de las claves públicas en /res/keys . Hace esto si se le indica que verifique la firma de un archivo zip firmado, que es diferente de verificar la suma de verificación md5 del archivo. En mi versión (v2.7.0.0) puedo ver una opción de "Verificación de firma de archivo zip" en la pantalla de instalación, que supongo que activa esta funcionalidad.
La recuperación de ClockworkMod también comprueba las firmas de los archivos zip . El código fuente (consulte el código de instalación y el código de verificación ) se comporta de manera muy similar a la de TeamWin: un archivo zip contará como verificado si está firmado con una clave privada cuya "otra mitad" pública vive en/res/keys
¿Podemos estar seguros de que las aplicaciones provienen de Google debido a esta firma? ¡Probablemente no!
/res/keys
para firmar .Si bien se verifican las firmas de los archivos APK, parece que las aplicaciones del sistema (= aplicaciones instaladas en /system/
) tienen controles más relajados. Esto permite la inclusión de archivos adicionales en un archivo APK y aun así pasar las comprobaciones de verificación.
He publicado los detalles en esta página , la esencia es que el código de validación en PackageParser.java (parte de platform_frameworks_base) solo verifica los archivos enumerados en el archivo de manifiesto con el certificado en el archivo APK. Otros archivos omiten la validación.
Las imágenes de fábrica de Nexus incluyen Google Apps sin el archivo especial classes.dex
(en su lugar, tienen un archivo .odex "optimizado" en un subdirectorio junto al archivo .apk). Esto significa que cualquiera podría crear un APK que contenga un classes.dex
archivo que, de hecho, sea malicioso. ¡Tenga cuidado con los archivos de fuentes no confiables!
estocástico
miguel hampton
estocástico