Xposed For Lollipop nu officielt tilgængelig

Xposed Framework behøver ingen introduktion til XDA-læsere. Når vi bliver spurgt om de ting, vores samfund hader mest ved Lollipop, den enkelte højest stemte kommentar i diskussionen var, at den brød støtten til Xposed. Faktisk har mange forummedlemmer endda nægtet at opdatere til Lollipop specifikt af denne grund. Men det hele ændrer sig nu, da det længe ventede Xposed Framework endelig er ankommet til Android Lollipop.

Hvis du ikke allerede er bekendt med Xposed, er det ganske enkelt en gave til modding-fællesskabet. Xposed kræver ingen flashing af nogen ROM'er, men bringer tonsvis af tilpasning og tweaks, som brugere kan installere som apps på rootede enheder. Det er utroligt nemt at bruge og med begrænset risiko. Og nu kan alle Android-entusiaster på Lollipop nyde fordelene ved dette fantastiske projekt på deres enheder. Grib din download og kom til modding!

rovo89 var også så venlig at give os en Q&A til det seneste projekt. Du kan finde svar på alle dine spørgsmål om projektet nedenfor.

Hvorfor tog det så lang tid? ART er udkommet for mere end et år siden!

Først og fremmest - mange mennesker bliver ved med at bede om ART-støtte. Lollipop har langt flere ændringer end det, såsom endnu strengere SELinux-politikker, 64-bit ROM'er og arkitekturændringer, som du ville forvente fra en større udgivelse. Og selvfølgelig bliver ART selv konstant forbedret; der er store forskelle mellem ART for KitKat og ART for Lollipop.

Så en årsag er den store kompleksitet, som krævede mange, mange timers arbejde til forskning, udvikling og test.

En anden grund er, at der er andre ting i mit liv end Xposed, så der har været uger eller endda måneder, hvor jeg næsten ikke selv har kigget på koden overhovedet.

Skal vi omskrive alle modulerne?

Nej, Xposed API er stort set uændret. Xposed abstraherer alle detaljerne, så moduler behøver ikke at være ligeglade med, om de kører på Dalvik eller ART. Mange moduler vil faktisk fungere uden ændringer, især dem, der ændrer brugerapps adfærd. Moduler rettet mod systemets adfærd skal muligvis justeres til den nye Android-rammekode, som er ikke forårsaget af ART, men blot af arkitektur og kodeændringer, der sker mellem to Android-enheder udgivelser. Den vigtigste er, at koden for systemtjenester er blevet flyttet til en separat fil. For de fleste af de berørte moduler kan dette løses ved en lille refactoring (flytning af kode til et andet sted).

Virker det rent faktisk?

Ja! I det mindste for mig fungerer det fint på min daglige enhed (Nexus 5 på CM12) og også på min Nexus 9 (betalt af XDA – tak!). Telefonen er stabil som normalt, og apps fungerer fint. Og naturligvis fungerer modulerne og deres kroge/ressourceerstatninger også fint, ellers ville der ikke være nogen mening i at frigive noget.

Men hvorfor er det så en alfaversion?

For der har været store ændringer siden den sidste stabile udgivelse, som skal testes af folk, der ved, hvordan man bruger en gendannelse, undslipper boot-loops og rapporterer fejl korrekt. Jeg anbefaler kraftigt nybegyndere at vente, indtil Xposed er blevet testet af nok erfarne mennesker.

Der er også nogle edge-cases, som ikke er blevet testet endnu, såsom hooking JNI (native) metoder og metoder, der udføres på tidspunktet for hooking af dem.

Jeg vil installere det. Nu! Hvad skal jeg gøre?

Sørg for, at du har læst mine ord ovenfor, og at du er fortrolig med telefonens interne funktioner. Det er klart, at du skal være på en Lollipop ROM og have en god backup af dine data. Indtil videre vil jeg kun udgive ARMv7-versionen. 64-bit er mere komplekst, så lad os prøve den "nemme" variant først.

Indtil videre skal installationen udføres manuelt i en brugerdefineret gendannelse. Flashing af zip-filen installerer:

  • app_process32_xposed og nogle symbollinks
  • libexposed_art.so
  • libart.so og nogle relaterede binære filer + biblioteker (baseret på 5.0.2, forbedret med understøttelse af hooking osv.)
  • XposedBridge.jar (nu gemt i /system/framework)

Sikkerhedskopier af eksisterende filer oprettes automatisk og kan gendannes senere.

Det virker ikke/jeg kan ikke lide det! Hvordan kan jeg afinstallere det?

Den nemmeste måde er at gendanne en sikkerhedskopi eller flashe systempartitionen. En zip-fil til afinstallation er endnu ikke oprettet.

Hvorfor erstatter du ART-filer på min enhed? Det er mere invasivt end på Dalvik, vil forårsage betydelige præstationsproblemer og vil være ustabilt!

Jeg har skrevet nogle grunde ned på GitHub. Ja, det er mere invasivt, så jeg har forsøgt at undgå det i lang tid, men fra et teknisk og supportorienteret synspunkt synes jeg, det er den bedre løsning.

Mindre ydeevne end original ART? Sandsynligvis, da jeg var nødt til at deaktivere nogle optimeringer for at gøre visse typer kroge mulige. Dette påvirker dog kun en brøkdel af alle metoder, og selv for dem er ydeevnetabet bestemt ikke væsentligt eller mærkbart, hvis overhovedet målbart. Der er stadig tusindvis af andre optimeringer udført af ART, og jeg forsøgte at deaktivere så få som muligt og samtidig give så meget fleksibilitet som muligt.

Stabiliteten er fin som nævnt ovenfor. Sammenlignet med den tilgang, jeg brugte til Dalvik (modificering af runtimes interne datastrukturer fra app_process), er jeg endda ret sikker på, at det er meget mere pålideligt at erstatte bibliotekerne fuldstændigt vej. Jeg kunne integrere mine ændringer i eksisterende kode rent og genbruge relaterede funktioner, hvorimod mange hacks og antagelser ville være nødvendige for andre måder.

Vil du endelig offentliggøre kildekoden?

Sikker på, du vil finde det på GitHub meget hurtigt efter udgivelsen af ​​alpha-versionen, i en separat gren for nu.

Betyder det, at ældre Android-versioner ikke længere understøttes nu?

Ingen! Den nye kode kompilerer på alle 4.x-versioner af Android og skal blot testes før en samlet udgivelse. Men først skal jeg være sikker på, at det fungerer fint for Lollipop. Muligvis kunne ART-understøttelse backporteres til KitKat, men det er af mindre prioritet.

Hvordan kan jeg takke dig for dit arbejde?

Mange mennesker har spurgt efter måder at donere et par bukke på, så jeg har oprettet en donation side nu.

Hvor meget skal jeg donere, for at du kan tilføje funktion X eller et modul, der gør Y?

Det er ikke at donere, det er at betale nogen i forventning om fremtidigt arbejde. Jeg er ikke interesseret i freelancerjob.