Soy consciente de que en Windows esto es muy posible. Pero, ¿es posible en Android? [...] ¿Puedes instalar un virus / malware / spyware simplemente haciendo clic en una imagen?
Sí, es posible, aunque difícil. No hay una diferencia fundamental entre Windows y Android en términos de vulnerabilidades del decodificador de imágenes. De hecho, es probable que ambos sistemas estén utilizando la biblioteca same para la decodificación, con vulnerabilidades idénticas. Las mitigaciones precisas (DEP, ASLR, apilar canarios, etc.) aplicadas por los sistemas operativos también son similares.
La única manera de hacer esto es si hay un error de seguridad grave en la biblioteca de imágenes. Un error de seguridad puede ser capaz de secuestrar la biblioteca y desencadenar la ejecución de código arbitrario. En estos casos, la imagen malintencionada no es realmente un ejecutable en sí, sino que contiene un formato ligeramente modificado que no es tan diferente como para causar un error, pero es lo suficientemente similar como para que sea procesado por la biblioteca, lo que desencadena un comportamiento no deseado. Este tipo de errores son bastante raros, y se solucionan rápidamente cuando se descubren. Debe mantener su software actualizado (preferiblemente con actualizaciones automáticas / desatendidas) para evitar tener una biblioteca de imágenes vulnerables por mucho tiempo.
También qué sucede exactamente cuando alguien cambia el nombre de una apk maliciosa a .jpg o .png o .mp4. ¿Se ejecutará el malware / spyware si abres la imagen / video?
Si alguien cambia el nombre de un archivo ejecutable malintencionado para que tenga una extensión de imagen o encuentre una manera de pasarlo al decodificador de medios (por ejemplo, cambiar el tipo MIME), simplemente recibirá un mensaje que indica que no se puede mostrar la imagen. El decodificador no reconocerá automáticamente el archivo y lo ejecutará si no es una imagen. Los decodificadores funcionan al verificar primero los llamados bytes mágicos al principio del archivo que especifican el tipo de archivo. Los bytes para un APK y para un archivo JPEG, por ejemplo, son completamente diferentes. Si no ve los bytes JPEG, simplemente se negará a intentar analizar el archivo.