¡Xposed Framework para Android Lollipop ya está aquí!

Xposed Framework no necesita presentación para los lectores. Cuando se le preguntó sobre las cosas que nuestra comunidad más odia de Lollipop, el comentario más votado en la discusión fue que rompió el apoyo a Xposed. De hecho, muchos miembros del foro incluso se han negado a actualizar a Lollipop específicamente por este motivo. Pero todo eso cambia ahora, ya que el esperado Xposed Framework finalmente ha llegado para Android Lollipop.

Si aún no está familiarizado con Xposed, simplemente, es una bendición para la comunidad de modding. Xposed no requiere flashear ninguna ROM, pero trae toneladas de personalización y ajustes que los usuarios pueden instalar como aplicaciones en dispositivos rooteados. Es increíblemente simple de usar y con un riesgo limitado. Y ahora, todos los entusiastas de Android en Lollipop pueden disfrutar de los beneficios de este fantástico proyecto en sus dispositivos. ¡Tome su descarga y comience a modificar!

Descarga Xposed Framwork para Android Lollipop aquí.

rovo89 también tuvo la amabilidad de proporcionarnos un Q&A para el último proyecto. Puede encontrar respuestas a todas sus preguntas sobre el proyecto a continuación.

¿Por qué tardó tanto? ¡ART ha sido publicado hace más de un año!

En primer lugar, muchas personas siguen pidiendo apoyo ART. Lollipop tiene muchos más cambios que eso, como políticas de SELinux aún más estrictas, ROM de 64 bits y cambios de arquitectura que cabría esperar de una versión principal. Y, por supuesto, el ART en sí mismo se mejora constantemente; Existen grandes diferencias entre ART para KitKat y ART para Lollipop.

Entonces, una de las razones es la gran complejidad, que requirió muchas, muchas horas de trabajo para investigación, desarrollo y pruebas.

Otra razón es que hay otras cosas en mi vida además de Xposed, por lo que ha habido semanas o incluso meses en los que apenas he visto el código.

¿Necesitamos reescribir todos los módulos?

No, la API de Xposed no ha cambiado. Xposed resume todos los detalles, por lo que los módulos no necesitan preocuparse si se ejecutan en Dalvik o ART. Muchos módulos realmente funcionarán sin ningún cambio, especialmente aquellos que modifican el comportamiento de las aplicaciones del usuario. Es posible que los módulos destinados al comportamiento del sistema deban ajustarse al nuevo código de marco de Android, que no es causado por ART, sino simplemente por cambios en la arquitectura y el código que ocurren entre dos versiones de Android. El más significativo es que el código para los servicios del sistema se ha movido a un archivo separado. Para la mayoría de los módulos afectados, esto se puede resolver mediante una pequeña refactorización (mover el código a un lugar diferente).

¿Funciona realmente?

¡Si! Al menos para mí, funciona bien en mi dispositivo diario (Nexus 5 en CM12) y también en mi Nexus 9 (pagado por - ¡gracias!). El teléfono es estable como de costumbre y las aplicaciones funcionan bien. Y, obviamente, los módulos y sus reemplazos de ganchos / recursos también funcionan bien, de lo contrario no tendría sentido lanzar algo.

Pero entonces, ¿por qué es una versión alfa?

Debido a que ha habido grandes cambios desde la última versión estable que deben ser probados por personas que saben cómo usar una recuperación, escapar de los bucles de arranque e informar errores correctamente. Recomiendo encarecidamente a los novatos que esperen hasta que Xposed haya sido probado por suficientes personas con experiencia.

También hay algunos casos extremos que aún no se han probado, como conectar métodos JNI (nativos) y métodos que se están ejecutando en el momento de conectarlos.

Quiero instalarlo ¡Ahora! ¿Que tengo que hacer?

Asegúrate de haber leído mis palabras anteriores y de estar familiarizado con las partes internas de tu teléfono. Obviamente, debe estar en una ROM Lollipop y tener una buena copia de seguridad de sus datos. Por ahora, solo publicaré la versión ARMv7. 64 bits es más complejo, así que intentemos primero con la variante "fácil".

Por ahora, la instalación debe realizarse manualmente en una recuperación personalizada. Parpadeando el archivo zip se instalará:

  • app_process32_xposed y algunos enlaces simbólicos
  • libexposed_art.so
  • libart.so y algunos binarios relacionados + bibliotecas (basado en 5.0.2, mejorado con soporte para enganche, etc.)
  • XposedBridge.jar (ahora almacenado en / system / framework)

Las copias de seguridad de los archivos existentes se crearán automáticamente y podrían restaurarse más tarde.

¡No funciona / no me gusta! ¿Cómo puedo desinstalarlo?

La forma más fácil es restaurar una copia de seguridad o actualizar la partición del sistema. Aún no se ha creado un archivo zip para la desinstalación.

¿Por qué reemplazas los archivos ART en mi dispositivo? ¡Eso es más invasivo que en Dalvik, causará problemas de rendimiento significativos y será inestable!

He escrito algunas razones en GitHub. Sí, es más invasivo, por lo que he tratado de evitarlo durante mucho tiempo, pero desde un punto de vista técnico y de soporte, creo que es la mejor opción.

¿Menos rendimiento que el ART original? Probablemente, ya que tuve que desactivar algunas optimizaciones para hacer posibles ciertos tipos de ganchos. Sin embargo, esto afecta solo a una fracción de todos los métodos e incluso para aquellos, la pérdida de rendimiento ciertamente no es significativa o notable, incluso si es medible. Todavía hay miles de otras optimizaciones realizadas por ART, y traté de deshabilitar la menor cantidad posible mientras brindaba la mayor flexibilidad posible.

La estabilidad está bien como se mencionó anteriormente. Comparado con el enfoque que utilicé para Dalvik (modificando las estructuras de datos internos del tiempo de ejecución desde app_process), estoy bastante seguro de que reemplazar las bibliotecas por completo es una forma mucho más confiable. Podría integrar mis cambios en el código existente limpiamente y reutilizar funciones relacionadas, mientras que se necesitarían muchos hacks y suposiciones para otras formas.

¿Finalmente harás público el código fuente?

Claro, lo encontrará en GitHub muy pronto después del lanzamiento de la versión alfa, en una rama separada por ahora.

¿Esto significa que las versiones anteriores de Android ya no son compatibles?

¡No! El nuevo código se compila en todas las versiones 4.x de Android, y solo necesita ser probado antes de una versión unificada. Pero primero, tengo que estar seguro de que está funcionando bien para Lollipop. Posiblemente, el soporte de ART podría ser compatible con KitKat, pero eso es menos prioritario.

¿Cómo puedo agradecerte por tu trabajo?

Muchas personas han pedido formas de donar unos pocos dólares, así que ahora he creado una página de donación.

¿Cuánto necesito donar para que agregue la función X o un módulo que hace Y?

Eso no es donar, es pagarle a alguien con la expectativa de un trabajo futuro. No estoy interesado en trabajos independientes.