Xposed Framework no necesita presentación para los lectores XDA. Cuando se le preguntó sobre las cosas que nuestra comunidad odia más sobre Lollipop, el comentario más votado en la discusión fue que rompió el soporte para 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 muy esperado Xposed Framework finalmente llegó para Android Lollipop.
Si aún no estás familiarizado con Xposed, en pocas palabras, es una bendición para la comunidad de modding. Xposed no requiere la actualización de ninguna ROM, pero ofrece toneladas de personalización y ajustes que los usuarios pueden instalar como aplicaciones en dispositivos rooteados. Es increíblemente sencillo de utilizar y con riesgos limitados. Y ahora, todos los entusiastas de Android en Lollipop pueden disfrutar de los beneficios de este fantástico proyecto en sus dispositivos. ¡Obtén tu descarga y comienza a modificar!
rovo89 también tuvo la amabilidad de brindarnos una sesión de preguntas y respuestas sobre el último proyecto. Puede encontrar respuestas a todas sus preguntas sobre el proyecto a continuación.
¿Por qué tomó tanto tiempo? ¡ART se publicó 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 SELinux aún más estrictas, ROM de 64 bits y cambios de arquitectura que cabría esperar de una versión importante. Y, por supuesto, el propio ARTE se mejora constantemente; Existen grandes diferencias entre ART para KitKat y ART para Lollipop.
Una razón 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 mirado el código.
¿Necesitamos reescribir todos los módulos?
No, la API Xposed prácticamente no ha cambiado. Xposed abstrae todos los detalles, por lo que a los módulos no es necesario importarles si se ejecutan en Dalvik o ART. Muchos módulos funcionarán sin ningún cambio, especialmente aquellos que modifican el comportamiento de las aplicaciones del usuario. Es posible que los módulos dirigidos al comportamiento del sistema deban ajustarse al nuevo código del marco de trabajo de Android, que no es causado por ART, sino simplemente por cambios de arquitectura y código que ocurren entre dos Android lanzamientos. El más importante es que el código de los servicios del sistema se ha movido a un archivo independiente. Para la mayoría de los módulos afectados, esto se puede solucionar con una pequeña refactorización (moviendo el código a un lugar diferente).
¿Está realmente funcionando?
¡Sí! Al menos para mí, funciona bien en mi dispositivo diario (Nexus 5 en CM12) y también en mi Nexus 9 (pagado por XDA, ¡gracias!). El teléfono está estable como siempre y las aplicaciones funcionan bien. Y, obviamente, los módulos y sus ganchos/reemplazos de recursos también funcionan bien; de lo contrario, no tendría sentido publicar algo.
Pero entonces ¿por qué es una versión alfa?
Porque ha habido grandes cambios desde la última versión estable que deben ser probados por personas que sepan cómo utilizar una recuperación, escapar de los bucles de arranque e informar errores correctamente. Recomiendo encarecidamente a los principiantes 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úrese de haber leído mis palabras anteriores y de estar familiarizado con las partes internas de su teléfono. Obviamente, necesitas tener una ROM Lollipop y tener una buena copia de seguridad de tus datos. Por ahora, sólo publicaré la versión ARMv7. 64 bits es más complejo, así que probemos primero con la variante "fácil".
Por ahora, la instalación debe realizarse manualmente en una recuperación personalizada. Al actualizar el archivo zip se instalará:
- app_process32_xposed y algunos enlaces simbólicos
- libexposed_art.so
- libart.so y algunos binarios + bibliotecas relacionadas (basadas en 5.0.2, mejoradas con soporte para enganches, etc.)
- XposedBridge.jar (ahora almacenado en /system/framework)
Las copias de seguridad de los archivos existentes se crearán automáticamente y podrán restaurarse más tarde.
¡No funciona/no me gusta! ¿Cómo puedo desinstalarlo?
La forma más sencilla 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é reemplazan archivos ART en mi dispositivo? ¡Eso es más invasivo que en Dalvik, causará importantes problemas de rendimiento y será inestable!
He escrito algunas razones sobre GitHub. Sí, es más invasivo, así que he intentado 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 sólo a una fracción de todos los métodos e incluso para ellos, la pérdida de rendimiento ciertamente no es significativa ni perceptible, si es que siquiera se puede medir. Todavía hay miles de otras optimizaciones realizadas por ART, e intenté deshabilitar la menor cantidad posible mientras brindaba la mayor flexibilidad posible.
La estabilidad está bien como se mencionó anteriormente. En comparación con el enfoque que utilicé para Dalvik (modificar las estructuras de datos internas del tiempo de ejecución desde app_process), incluso estoy bastante seguro de que reemplazar las bibliotecas por completo es una solución mucho más confiable. forma. Podría integrar limpiamente mis cambios en el código existente y reutilizar funciones relacionadas, mientras que para otras formas se necesitarían muchos trucos y suposiciones.
¿Harás finalmente público el código fuente?
Claro, lo encontrarás en GitHub muy poco después del lanzamiento de la versión alfa, en una rama separada por ahora.
¿Significa esto 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 sólo necesita ser probado antes de un lanzamiento unificado. Pero primero, necesito estar seguro de que funciona bien para Lollipop. Posiblemente, el soporte ART podría respaldarse en KitKat, pero eso es de menor prioridad.
¿Cómo puedo agradecerte tu trabajo?
Mucha gente me ha pedido formas de donar unos cuantos dólares, así que he creado una donación página ahora.
¿Cuánto necesito donar para que agregues la función X o un módulo que haga Y?
Eso no es donar, es pagarle a alguien esperando un trabajo futuro. No me interesan los trabajos independientes.