Xposed For Lollipop nå offisielt tilgjengelig

click fraud protection

Xposed Framework trenger ingen introduksjon til XDA-lesere. Når du blir spurt om tingene vårt fellesskap hater mest om Lollipop, den enkelt mest stemte kommentaren i diskusjonen var at den brøt støtten til Xposed. Faktisk har mange forummedlemmer til og med nektet å oppdatere til Lollipop spesifikt av denne grunn. Men det hele endres nå, ettersom det etterlengtede Xposed Framework endelig har kommet for Android Lollipop.

Hvis du ikke allerede er kjent med Xposed, enkelt sagt, er det en gave til modding-fellesskapet. Xposed krever ingen blinking av noen ROM-er, men gir tonnevis av tilpasning og justeringer som brukere kan installere som apper på rotfestede enheter. Den er utrolig enkel å bruke og med begrenset risiko. Og nå kan alle Android-entusiaster på Lollipop nyte fordelene med dette fantastiske prosjektet på enhetene sine. Ta tak i nedlastingen din og kom til modding!

rovo89 var også så snill å gi oss spørsmål og svar for det siste prosjektet. Du kan finne svar på alle spørsmålene dine om prosjektet nedenfor.

Hvorfor tok det så lang tid? ART har blitt publisert for mer enn ett år siden!

Først av alt - mange mennesker fortsetter å spørre om ART-støtte. Lollipop har langt flere endringer enn det, for eksempel enda strengere SELinux-policyer, 64-bits ROM og arkitekturendringer som du forventer av en større utgivelse. Og selvfølgelig blir ART i seg selv stadig forbedret; det er store forskjeller mellom ART for KitKat og ART for Lollipop.

Så en grunn er den store kompleksiteten, som krevde mange, mange timers arbeid for forskning, utvikling og testing.

En annen grunn er at det er andre ting i livet mitt enn Xposed, så det har vært uker eller måneder hvor jeg nesten ikke har sett på koden i det hele tatt.

Trenger vi å skrive om alle modulene?

Nei, Xposed API er stort sett uendret. Xposed abstraherer alle detaljene, så moduler trenger ikke å bry seg om de kjører på Dalvik eller ART. Mange moduler vil faktisk fungere uten endringer, spesielt de som endrer oppførselen til brukerapper. Moduler som retter seg mot systematferden må kanskje justeres til den nye Android-rammekoden, som er ikke forårsaket av ART, men ganske enkelt av arkitektur og kodeendringer som skjer mellom to Android-enheter utgivelser. Den viktigste er at koden for systemtjenester er flyttet til en egen fil. For de fleste berørte moduler kan dette løses ved litt refaktorisering (flytte kode til et annet sted).

Fungerer det egentlig?

Ja! I det minste for meg fungerer det fint på min daglige enhet (Nexus 5 på CM12) og også på min Nexus 9 (betalt av XDA – takk!). Telefonen er stabil som vanlig og apper fungerer fint. Og åpenbart fungerer modulene og deres kroker/ressurserstatninger også bra, ellers ville det ikke vært noen vits i å gi ut noe.

Men hvorfor er det da en alfaversjon?

For det har vært store endringer siden den siste stabile utgivelsen som må testes av folk som vet hvordan de skal bruke en gjenoppretting, unnslippe oppstartsløkker og rapportere feil på riktig måte. Jeg anbefaler på det sterkeste nybegynnere å vente til Xposed har blitt testet av nok erfarne folk.

Det er også noen edge-cases som ikke er testet ennå, for eksempel hooking JNI (native) metoder og metoder som blir utført på tidspunktet for hooking av dem.

Jeg vil installere den. Nå! Hva må jeg gjøre?

Forsikre deg om at du har lest ordene mine ovenfor og at du er kjent med telefonens interne elementer. Selvfølgelig må du være på en Lollipop ROM og ha en god sikkerhetskopi av dataene dine. Foreløpig vil jeg bare publisere ARMv7-versjonen. 64-bit er mer komplekst, så la oss prøve den "enkle" varianten først.

Foreløpig må installasjonen utføres manuelt i en tilpasset gjenoppretting. Flashing av zip-filen vil installere:

  • app_process32_xposed og noen symbolkoblinger
  • libexposed_art.so
  • libart.so og noen relaterte binærfiler + biblioteker (basert på 5.0.2, forbedret med støtte for hooking etc.)
  • XposedBridge.jar (nå lagret i /system/framework)

Sikkerhetskopier av eksisterende filer opprettes automatisk og kan gjenopprettes senere.

Det fungerer ikke/jeg liker det ikke! Hvordan kan jeg avinstallere det?

Den enkleste måten er å gjenopprette en sikkerhetskopi eller flashe systempartisjonen. En zip-fil for avinstallering er ennå ikke opprettet.

Hvorfor erstatter du ART-filer på enheten min? Det er mer invasivt enn på Dalvik, vil forårsake betydelige ytelsesproblemer og vil være ustabilt!

Jeg har skrevet ned noen grunner på GitHub. Ja, det er mer invasivt, så jeg har prøvd å unngå det i lang tid, men fra et teknisk og støtteorientert synspunkt tror jeg det er det bedre alternativet.

Mindre ytelse enn original ART? Sannsynligvis fordi jeg måtte deaktivere noen optimaliseringer for å gjøre visse typer kroker mulig. Dette påvirker imidlertid bare en brøkdel av alle metoder, og selv for disse er ytelsestapet absolutt ikke betydelig eller merkbart, om enn målbart. Det er fortsatt tusenvis av andre optimaliseringer utført av ART, og jeg prøvde å deaktivere så få som mulig samtidig som jeg ga så mye fleksibilitet som mulig.

Stabiliteten er fin som nevnt ovenfor. Sammenlignet med tilnærmingen jeg brukte for Dalvik (modifisering av kjøretidens interne datastrukturer fra app_process), er jeg til og med ganske sikker på at det er mye mer pålitelig å erstatte bibliotekene fullstendig vei. Jeg kunne integrere endringene mine i eksisterende kode rent og gjenbruke relaterte funksjoner, mens mange hacks og forutsetninger ville være nødvendig for andre måter.

Vil du endelig gjøre kildekoden offentlig?

Jada, du vil finne den på GitHub ganske kort tid etter utgivelsen av alfaversjonen, i en egen gren foreløpig.

Betyr dette at eldre Android-versjon ikke lenger støttes nå?

Nei! Den nye koden kompilerer på alle 4.x-versjoner av Android, og må bare testes før en enhetlig utgivelse. Men først må jeg være sikker på at det fungerer bra for Lollipop. Muligens kan ART-støtte tilbakeporteres til KitKat, men det er av mindre prioritet.

Hvordan kan jeg takke deg for arbeidet ditt?

Mange har spurt om måter å donere noen få dollar på, så jeg har satt opp en donasjon side nå.

Hvor mye må jeg donere for at du skal legge til funksjon X eller en modul som gjør Y?

Det er ikke å donere, det er å betale noen i forventning om fremtidig arbeid. Jeg er ikke interessert i frilansjobber.