Necesito ver quién firmó la aplicación que he instalado en mi dispositivo. ¿Esto generalmente es posible hacerlo en el dispositivo o en la PC?¿Cómo ver la identidad de la persona que firmó la aplicación en el dispositivo Android?
Respuesta
(suponiendo que puede obtener acceso al archivo apk en bruto, que generalmente puede, si conoce o adivina su nombre y ubicación, aunque no pueda enumerar el contenido de/data en teléfono -rooted)
Se podía abrir el apk como un archivo zip y filtrar el texto ASCII del contenido binario de META-INF/CERT.RSA
O usando una herramienta real,
jarsigner -verify -certs -verbose some_application.apk
Por supuesto, la única forma de verificar que el firmante es quien dicen ser es obtener otra cosa firmada con la misma clave de esa parte a través de medios directos o verificados y comparar las huellas dactilares de las teclas de firma, así es como el mismo Android verifica que las actualizaciones de la aplicación y el uso compartido de ID de la aplicación provienen de la misma APK existente.
¡Gracias por la pista! ¿Quizás también sepa cómo lograr el mismo objetivo utilizando solo el dispositivo? Mi identidad puede ser importante para los usuarios finales de mi aplicación, pero suelen ser demasiado vagos para realizar manipulaciones en PC .... –
No me sorprendería si jarsigner está implementado en Java, por lo que probablemente podría portarlo a Android. Sin embargo, la primera sugerencia de extraer el texto ascii filtrando los elementos no imprimibles puede ser más simple. Pero si esta es su aplicación, ¿cuál es el punto? Si el usuario confía en su código para extraer la información del firmante, es de suponer que confiarán también en su pantalla. También tenga en cuenta que extraer la información del firmante no prueba que esta entidad realmente lo haya firmado, tendría que probar que el certificado utilizado era realmente suyo. –
Ejecutando jarsigner en un apk lanzado por Google (al parecer) da (muchos de) estos mensajes: 'X.509, CN = Android, OU = Android, O = Google Inc., L = Mountain View, ST = California, C = US [el certificado es válido del 22-08-08 01:13 al 08-01-36 00:13] [CertPath no validado: la ruta no se encadena con ninguno de los anclajes de confianza] '. ¿Cómo puedo obtener el certificado de Google para validar que realmente fueron los firmantes? (Creo que es relevante agregar a esta respuesta, pero avíseme si desea que publique una pregunta por separado). – mgd
De Getting certificate details from an apk, puede utilizar el siguiente comando
openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text
- 1. ¿No se puede determinar la identidad de la aplicación de la persona que llama?
- 2. cómo ejecutar la aplicación de Android en el dispositivo?
- 3. ¿Cómo implementar la aplicación de Android en un dispositivo?
- 4. Elija la carpeta en el dispositivo Android
- 5. Android firmó la falla de la aplicación. Funcionó antes del signo
- 6. ¿Cómo implementar la aplicación Titanium en un dispositivo Android real?
- 7. adjuntándose a la aplicación nativa de Android con gdb cierra la aplicación en el dispositivo
- 8. Android simula la ubicación en el dispositivo?
- 9. Uso de libusb en la aplicación de Android: cómo permitir que la aplicación acceda a USB
- 10. Concesión de la aplicación Android el permiso android.permission.INTERNET durante la depuración en el dispositivo
- 11. Obtener el módulo de la persona que llama en Ruby
- 12. Ejecutando la aplicación Android + Opencv + NDK en un dispositivo real
- 13. Cómo extraer la fecha en la que se firmó un manifiesto de C#
- 14. ¿Cómo separar la identidad de una persona de sus datos personales?
- 15. Cómo leer la frecuencia de CPU en el dispositivo Android
- 16. ¿Cómo obtener la categoría para cada aplicación en el dispositivo en Android?
- 17. No se puede ejecutar la aplicación de Android en el emulador/dispositivo: ¿la actividad no existe?
- 18. ¿Inyectar variables en el alcance de la persona que llama?
- 19. Cómo verificar la aplicación instalada en el dispositivo iPhone
- 20. ¿Cómo depurar la aplicación de Android firmada de Eclipse?
- 21. Notificación de Android después de instalar la aplicación en el dispositivo - ¿Cómo?
- 22. InvalidDeploymentException - La identidad de la aplicación no está configurada
- 23. Android, ¿cómo no destruir la actividad cuando giro el dispositivo?
- 24. Burlándose: ¿cómo hago una excepción en la persona que llama?
- 25. En Android, ¿cómo encuentro la persona que llama de un método de manera eficiente
- 26. Transmisión en vivo usando el dispositivo Android
- 27. Android Test Case: cómo ver la salida?
- 28. ¿Cómo es la identidad del usuario | Conjunto principal durante el ciclo de vida de la aplicación
- 29. SignalR Obtener la dirección IP de la persona que llama
- 30. android: dispositivo no compatible con la aplicación, ¿por qué?
Bueno, no toda aplicación tiene Acerca de la página, a la derecha? Además, como desarrollador de la aplicación, puedo escribir cualquier cosa en la página Acerca de, que puede no coincidir con la información del certificado que usé para firmar la aplicación ... –
En Android, puedes usar PackageManager para enumerar todas las aplicaciones y obtener el X509 certificado de firma, vea [link] http://stackoverflow.com/a/16305427/2225646. También hay una aplicación gratuita en Google Play: firma Indenile. – Yojimbo