¿Cómo funciona el método de parche AndFix?
Aprendí recientemente de una librería Android AndFix que permite el método de actualización en vivo. Ahora, por lo que sé, Dalvik no permite la manipulación en tiempo de ejecución de bytecode o dex.
¿Puede alguien dar una buena explicación sobre cómo AndFix vive el parche?
- Android 4.4 KitKat accidente aleatorio
- Programación de procesos Android
- Uso de Proguard con Android sin ofuscación
- En Android, ¿cómo hago extrañas áreas de recorte?
- La conversión al formato de Dalvik falló con el error 1 con un mensaje de miedo en la vista de consola
- ¿Cómo puedo compilar Dalvik para ejecutarlo localmente en Linux?
- Error de enlace no satisfactorio al inicializar el concentrador Myo en Android
- ¿Cómo puedo usar la opción `--multi-dex`?
- Reference vs. Precise Reference en Dalvik Verifier
- ¿Qué optimizaciones puedo esperar de Dalvik y la cadena de herramientas de Android?
- Transformación de Dalvik usando código de invocación incorrecto
- Se ha producido un error en la conversión al formato Dalvik: No se puede ejecutar dex: Se sobrepasó el límite superior de GC
- Casting resultado de la multiplicación de dos enteros positivos a largo es el valor negativo
Mirando las fuentes, puedes ver el mecanismo de parcheo para Dalvik aquí . La función dalvik_replaceMethod()
está modificando el estado interno de Dalvik, cambiando la estructura de Method
para apuntar a un método de reemplazo.
No modifica el DEX en disco o en memoria, sólo las rutas de las llamadas de método a un método de reemplazo. Este enfoque es altamente dependiente de la versión, ya que los cambios en el Method
o la forma en que funcionan los métodos romperán las cosas. Dalvik no ha cambiado mucho desde mediados de 2011, lo que lo hace fácil, pero si nos fijamos en el directorio de "arte" cercano se pueden ver diferentes implementaciones para cada versión principal de Android.
- VoIP RTP Streaming desde / hacia el servidor (en Java) hacia / desde android
- Acceso al código C ++ en Apache Cordova para Android