Xposed Framework for Android Lollipop er her!

Xposed Framework trenger ingen introduksjon til leserne. På spørsmål om de tingene samfunnet vårt hater mest med Lollipop, var den eneste høyest stemte kommentaren i diskusjonen at det brøt opp støtten for Xposed. Faktisk har mange forummedlemmer til og med nektet å oppdatere til Lollipop spesifikt av denne grunn. Men at alle endringer nå, ettersom det etterlengtede Xposed Framework endelig har kommet for Android Lollipop.

Hvis du ikke allerede er kjent med Xposed, ganske enkelt, er det en gave til modding-samfunnet. Xposed krever ingen blinking av noen ROM, men bringer mange tilpasninger og justeringer som brukere kan installere som apper på forankrede enheter. Det er utrolig enkelt å bruke og med begrenset risiko. Og nå kan alle Android-entusiaster på Lollipop glede seg over fordelene med dette fantastiske prosjektet på enhetene sine. Ta tak i nedlastingen og kom til modding!

Last ned Xposed Framwork for Android Lollipop her.

rovo89 var også snill nok til å 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 spør stadig om ART-støtte. Lollipop har langt flere endringer enn det, som enda strengere SELinux-policyer, 64-biters ROM-er og arkitekturendringer som du kan forvente av en større utgave. Og selvfølgelig forbedres ART selv stadig; det er store forskjeller mellom ART for KitKat og ART for Lollipop.

Så en av grunnene 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 der jeg knapt engang har sett på koden i det hele tatt.

Må vi skrive om alle modulene?

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

Fungerer det faktisk?

Ja! I det minste for meg fungerer det fint på min daglige enhet (Nexus 5 på CM12) og også på Nexus 9 (betalt av - takk!). Telefonen er stabil som vanlig, og apper fungerer fint. Og åpenbart fungerer modulene og krokene / erstatningen av ressursene bra også, ellers ville det ikke være noe poeng i å gi ut noe.

Men hvorfor er det en alfa-versjon?

Fordi det har skjedd enorme forandringer siden forrige stabile utgivelse som må testes av folk som vet hvordan de skal bruke en utvinning, kan du rømme fra oppstartsløkker og rapportere feil. Jeg anbefaler på det sterkeste nybegynnere å vente til Xposed er testet av nok erfarne mennesker.

Det er også noen kortsaker som ikke er testet ennå, for eksempel å hekte JNI-metoder (native) metoder og metoder som blir utført på tidspunktet for å hekte 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 kontakter. Det er klart at du må 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 sammensatt, så la oss prøve den "enkle" varianten først.

Foreløpig må installasjonen utføres manuelt i en tilpasset gjenoppretting. Blinkende zip-filen installeres:

  • app_process32_xposed og noen symlinker
  • libexposed_art.so
  • libart.so og noen relaterte binære filer + biblioteker (basert på 5.0.2, forbedret med støtte for tilknytning osv.)
  • XposedBridge.jar (nå lagret i / system / framework)

Sikkerhetskopiering av eksisterende filer opprettes automatisk og kan gjenopprettes senere.

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

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

Hvorfor erstatter du ART-filer på enheten min? Det er mer inngripende enn på Dalvik, vil føre til betydelige ytelsesproblemer og vil være ustabil!

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

Mindre ytelse enn original ART? Antagelig, siden jeg måtte deaktivere noen optimaliseringer for å muliggjøre visse typer kroker. Imidlertid påvirker dette bare en brøkdel av alle metoder, og selv for disse er ytelsestapet absolutt ikke betydelig eller merkbart, om til og med målbart. Det er fortsatt tusenvis av andre optimaliseringer utført av ART, og jeg prøvde å deaktivere så få som mulig mens jeg ga mest mulig fleksibilitet.

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

Vil du endelig gjøre kildekoden offentlig?

Jada, du finner den på GitHub ganske snart etter utgivelsen av alfa-versjonen, i en egen gren for nå.

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

Nei! Den nye koden samles på alle 4.x versjoner av Android, og trenger bare å testes før en enhetlig utgivelse. Men først må jeg være sikker på at det fungerer fint for Lollipop. Det kan hende at ART-støtte kan tilbakeføres til KitKat, men det er mindre prioritert.

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 donasjonsside nå.

Hvor mye trenger jeg å gi for å legge til funksjon X eller en modul som gjør Y?

Det er ikke å gi, det betaler noen i forventning om fremtidig arbeid. Jeg er ikke interessert i frilanserjobber.