Explicación del submódulo Xposed Framework para Nougat y abforce

En este artículo exploramos las diferencias entre la próxima versión Xposed para Nougat de rovo89 y la implementación actual que está disponible para Nougat.

El marco Xposed fue, y sigue siendo, una forma importante de personalizar su dispositivo Android, compatible con prácticamente todos los dispositivos, lo que le permite instalar módulos fácilmente para modificar prácticamente cualquier detalle.

¿Quiere obtener todas las funciones que ofrece una ROM personalizada sin tener que actualizar una?Caja de gravedad oXTouchwiz lo haré. ¿Quiere modificar ciertas configuraciones según la aplicación, como cambiar el DPI de una aplicación específica?Ajustes de Aplicacion te tiene cubierto. Desearía que los desarrolladores de una aplicación pensaran en agregar una característica específica, como que Google te permitapersonalizar Hangouts o Facebook permitiéndotedescargar publicaciones de Instagram que te gusten? Bueno, no es necesario porque Xposed ofrece a los desarrolladores el poder de modificar prácticamente cualquier cosa que deseen. desea, ya sea una característica de todo el sistema que requeriría una ROM personalizada o un ajuste para una función específica. solicitud.

El marco Xposed viene con una gran ventaja para los desarrolladores, que es la facilidad de desarrollo (en comparación con tener que compilar AOSP para ajustes de ROM o tener que editar código Smali). También aporta una gran ventaja para los usuarios: conveniencia, ya que ya no los obliga a buscar y actualizar la ROM que proporciona todas las funciones que buscan (en cambio, pueden mezclar y combinar módulos independientes) además de su equilibrio objetivo de estabilidad y actuación. También hace ajustando aplicaciones mucho más fácil ya que no hay necesidad de tratar con diferentes firmas, lo que como resultado requeriría que los usuarios desinstalen el original versión o pasar por ciertos obstáculos cuando la aplicación verifica su firma (algo con lo que se enfrentan los clientes de YouTube modificados, por ejemplo). instancia).

¿El único problema? Debido a su naturaleza y a la cantidad de tiempo libre, el desarrollador de Xposed (nuestro propio desarrollador senior reconocido,rovo89) tiene, a menudo va por detrás de las versiones de Android.Se necesitaron unos cuatro meses para actualizarse y admitir Lollipop., y está tardando aproximadamente un año en llegar a Nougat. Esto no es tan malo como podría parecer si lo piensas ¿Cuántos usuarios de Android hay realmente en Nougat? (alrededor del 13,5%, aunque tenga en cuenta que es más probable que los entusiastas de Android, el público objetivo de Xposed, también utilicen Nougat). Sin embargo, aún puede resultar bastante molesto no poder utilizar tus módulos Xposed favoritos y tener la última y mejor versión de Android al mismo tiempo.

Con el código fuente del marco Xposed disponible (al menos para versiones lanzadas estables), el desarrolladorabforzar decidió ensuciarse las manos y ver si podía portar algunas de las modificaciones de rovo89 a Nougat. Al optar por un enfoque diferente y más simple, abforce esencialmente adaptó la parte de Xposed que realmente hace la magia una vez instalado, e hizo posible incluirlo al compilar su propia ROM (después de eso, surgieron otras soluciones). Podría decirse que este enfoque es muy diferente ya que ignora una de las principales ventajas de Xposed, que es estar disponible para todos con facilidad. Sin embargo, todo progreso es bienvenido y que varias cabezas aborden una tarea puede resultar ventajosa y ofrecer nuevos conocimientos. El problema principal, tal como lo vemos, es la desinformación que rodea este desarrollo (difundida por algunos otros "desarrolladores" y algunos blogs), así como algunas de las reacciones de la comunidad. Con suerte, este artículo aclarará todo el panorama.


En primer lugar, para comprender el trabajo que se realizó (y aún se realiza) en el marco oficial de Xposed, así como en la versión de abforce, debemos observar cómo funciona el marco. Si bien el marco en sí es solo una parte del proyecto, normalmente nos referimos tanto al marco como al instalador ya que el marco pierde muchas de sus ventajas sin el instalador universal, lo que también requiere mucho trabajo.

El poder de Xposed proviene de un concepto simple: cualquier método puede ser "enganchado" (los métodos son los pequeños partes que componen cualquier programa) para que el código de un módulo Xposed se ejecute antes, después o en lugar de él. Tomemos un ejemplo simple: supongamos que Instagram usa un método llamado "showMenuOptions" cuando haces clic en el botón de menú, y ese método se encarga de mostrarte los botones "Informar" y "Compartir". Al crear un módulo Xposed, puedes modificar ese método para agregar un botón adicional para descargar la imagen en lugar de compartirla, por ejemplo. Las modificaciones pueden variar desde simples ajustes (p. ej. Registro de cambios de Play Store) hasta revisiones importantes (como Caja de gravedad, cuyo objetivo es proporcionar todas las funciones que tendría una ROM personalizada)!

Eso hace que Xposed sea poderoso, pero es solo una parte de la ecuación. Las otras partes son la versatilidad, o la posibilidad de usar Xposed en prácticamente cualquier dispositivo disponible (con una versión de Android compatible) y la facilidad de uso. Todo lo que los usuarios tienen que hacer es tomar el instalador, que hace su magia y parchea su sistema dinámicamente para integrar Xposed. Para aplicar un módulo, sólo necesita instalarlo, habilitarlo y reiniciar. No requiere complicaciones, no es necesario actualizar una ROM personalizada (especialmente cuando las ROM personalizadas no siempre son una opción viable), no es necesario desinstalar un APK para instalar otro firmado con una firma diferente. Todo lo que necesitas es root (puedes tener una ROM personalizada y eso tiene sentido la mayor parte del tiempo; pero si bien Xposed puede proporcionar la mayor parte de la funcionalidad que puede proporcionar una ROM personalizada, también va más allá).

Sin embargo, detrás de esta simplicidad hay mucho trabajo:

  1. Para los desarrolladores de módulos, la API proporcionada debe ser estable y garantizar su funcionamiento. El marco Xposed no puede fallar aleatoriamente con ciertas ROM y/o combinaciones de ganchos (excepto en casos excepcionales). En otras palabras, si un usuario tiene un problema, ese problema debería ser culpa del usuario (por no instalar/habilitar algo correctamente) o culpa del desarrollador del módulo (por tener errores en el módulo). Pero debería estar casi seguro de que el marco en sí funciona según lo previsto y no es la fuente de errores que dejarían a los usuarios frustrados y confundidos a los desarrolladores.
  2. Para los usuarios, el marco debe ser fácil de instalar en su dispositivo y ROM., no importa si tienen un Samsung con la última versión de TouchWiz o un Nexus con LineageOS instalado. El instalador de Xposed maneja todo eso detrás de escena. Se debe trabajar mucho en esto para probar el instalador y el marco en una variedad de dispositivos y combinaciones de ROM. Se encuentran errores, a menudo debido a diferentes implementaciones por parte de los OEM, y deben corregirse para garantizar la confiabilidad para todos los usuarios.
  3. Las revisiones importantes de Android a veces pueden traer cambios importantes, lo que requiere repensar partes de la arquitectura del marco para adaptarse a esos cambios. A veces, también surgen oportunidades adicionales con versiones más nuevas, lo que requiere algo de tiempo adicional para tener un mejor producto. Cuando se introdujo ART por primera vez, por ejemplo, tener Xposed deshabilitó ciertas optimizaciones para que el enganche pudiera funcionar correctamente. En el caso de Nougat, elcompilador justo a tiempo (JIT) trae una oportunidad paramantener esas optimizaciones.

Gran parte del trabajo anterior se centra en detalles menores, donde la mayor parte del marco funciona según lo previsto, pero el Las inconsistencias y los problemas menores harían que su uso fuera una apuesta para los usuarios y una pesadilla de soporte y desarrollo para el módulo. desarrolladores. El producto lanzado, sin embargo, pretende ser utilizable por todos y sin sorpresas. Hay algunas excepciones, por supuesto, ya que los cambios de algunos OEM requieren más esfuerzo para adaptarse, pero esos son menores y la gran mayoría de usuarios (y desarrolladores) disfrutan de un Xposed estable y confiable experiencia. Cualquier excepción encontrada se documenta conclaras exenciones de responsabilidad para que nadie se sorprenda.

Teniendo lo anterior en mente, la visión de rovo89 para Xposed es ser una solución estable que proporcione un contrato confiable y fácil de usar para usuarios y desarrolladores. Su filosofía, aunque no estés de acuerdo con ella, es simple y comprensible: un producto debe ser se libera cuando está listo para usarse según lo previsto, ya que liberarlo antes genera más problemas que beneficios.


Submódulo Xposed ART de abforce para Nougat

Somos reacios a llamar al trabajo de abforce un "port" o un "Xposed no oficial", ya que eso es inexacto y engañoso. Como hemos visto, Xposed tiene dos componentes principales:

  1. El núcleo del marco Xposed en sí, que maneja la magia de los métodos de enlace.
  2. El instalador Xposed, que garantiza que el marco sea fácil de instalar correctamente en todos los dispositivos.

Lo que hizo abforce fue portar el código Marshmallow de rovo89 en la primera parte (solo el marco Xposed) a Nougat, de una manera que requeriría que los cambios se realizaran mientras se compilaba la ROM personalizada. Además de eso, muchas partes menores (pero importantes) del marco no están completamente adaptadas a Nougat. Como tal, el comportamiento puede ser inconsistente y, si bien en su mayoría funciona (aunque noparatodos), no es confiable. Para los desarrolladores y usuarios de módulos, confiar en una implementación incompleta e inconsistente simplemente Proporcionar una mala experiencia a todas las partes involucradas., con algunos módulos no funcionan en absoluto o hacen que el dispositivo no arranque. Si bien muchos usuarios pueden estar de acuerdo con tener algo en lugar de nada, el punto de vista de los desarrolladores sigue siendo perfectamente comprensible (especialmente si se tiene en cuenta que las exenciones de responsabilidad no impiden las preguntas falsas y las quejas de soporte).

(Además de los dos puntos principales anteriores, también esperamos más cambios en el marco oficial final de Xposed para aprovechar los cambios introducidos en Nougat).

Cabe señalar que abforce hizo un excelente trabajo cuando la mayoría se contentaba con simplemente hablar, pero su trabajo está lejos de ser la experiencia Xposed completa y ningún desarrollador o blog afirma lo contrario (y definitivamente no abforce; Nuevamente, no tenemos más que respeto hacia todos los desarrolladores que están poniendo verdadero trabajo y esfuerzo en esto). De hecho, como veremos más adelante, parte de la respuesta de la comunidad (ya sean usuarios o "desarrolladores") es la única parte amarga en esta cadena de desarrollos.


Dejemos de lado la persecución y vayamos directo al grano: cualquier comunidad tiene elementos y aspectos malos. Con una comunidad tan grande como la de los entusiastas de Android, los elementos malos pueden parecer una porción enorme cuando son sólo una pequeña parte (considerable, pero aún menor en términos relativos). Sin embargo, sin endulzarlo, gran parte de la respuesta de la comunidad hacia el desarrollo de Xposed para Nougat ha sido extremadamente infantil, desconsiderada o irresponsable.

El primer gran problema ha sido la actitud condescendiente mostrada por muchos ante la “muerte de Xposed” porque está tardando demasiado en salir a la venta Nougat. Esto es a pesar de que rovo89 actualizacionesygarantías, y a pesar de que ocurrió prácticamente el mismo escenario con Lollipop cuando se introdujo la versión inicial de ART. Está bien dejar de usar Xposed, pero no es para insultar la capacidad de nadie ni atacar a otros por tener una filosofía diferente o no garantizar que sus necesidades de actualización se satisfagan de inmediato. Esto es aún más cierto para un proyecto completamente gratuito, donde el desarrollador ha expresado su metodología de desarrollo y las razones detrás de ella.

Otro problema con la respuesta de la comunidad ha sido la mala comprensión de la naturaleza del trabajo de abforce, y muchos lo aclaman como el nuevo Xposed o lo anuncian como un puerto para Nougat. Un problema importante con esto ha sido que los "desarrolladores" se apresuran a ofrecer versiones flasheables sin comprender (o preocuparse por) los inconvenientes, ya que no se incluyeron exenciones de responsabilidad. ofrecido en algunos hilos, y algunos incluso van tan lejos como para darle crédito a abforce y no a rovo89 (que está detrás de la gran mayoría del trabajo en Xposed) y otros contribuyentes.

Como punto final, creemos que deberíamos volver a mencionar la filosofía de desarrollo de rovo89. Muchos usuarios afirman que sería beneficioso que los últimos cambios fueran de código abierto. Si bien esto suena bien en teoría, esno es tan fácil en la práctica especialmente si consideramos la explicación de rovo89:

[...] Creo que simplemente eliminar el estado actual no ayudaría al proyecto. Quizás veríamos "algunos" lanzamientos muy rápidos por parte de las personas que compilan el código, veríamos que parece ser funcionando bien y publicarlo como "su puerto", a pesar de los problemas y cosas que hacer que no sabrían de. Llámenme egoísta, pero no me gustaría ver un lanzamiento a medio terminar.[Fuente]

Lo que en realidad ha demostrado ser una predicción bastante buena de la situación actual, con varios "desarrolladores" aplicando cambios de abforce y ofrece un ZIP flasheable con advertencias mínimas o nulas, créditos incompletos, todo mientras solicita donaciones.


Esperamos que estas explicaciones hayan aclarado algunas de tus dudas y hayan solucionado posibles conceptos erróneos que hayas podido tener. Xposed ha sido un proyecto increíble que ha llegado a una gran parte de nuestra comunidad entusiasta y adicta al flash, y Xposed para Nougat debería ser otro hito gigantesco lleno de oportunidades. Con módulos como GravityBox El proyecto terminado de rovo89, que ya ofrece soporte para Nougat, volverá a ofrecer una serie de opciones.


¿Estás emocionado por Xposed en tu ROM Nougat? ¡Háganos saber en los comentarios!