Offisielt Xposed Framework for Android Nougat er her - Last ned favorittmodulene nå!

Ettersom Android-økosystemet har modnet i løpet av årene, er det færre og færre brukere som finner grunner til at de bør rote enheten. Det er en økende trend at brukere velger å holde seg på aksjefirmware, enten fordi de synes opplevelsen er tilfredsstillende eller ikke ønsker å spille et katt-og-mus-spill med Googles SafetyNet API. Men hvis du spurte en bruker tilbake i begynnelsen av 2016 hvorfor de rotet telefonene sine, var kanskje den viktigste årsaken som ble gitt, slik at de kunne installere Xposed Framework. Det har gått over ett år siden Android 7.0 Nougat først ble utgitt, men den lange ventetiden er endelig over: offisielt Xposed Framework for Android Nougat er endelig tilgjengelig.

Gjennom det siste året har Senior Recognised Developer rovo89, lederutvikleren av Xposed Framework, gitt flere oppdateringer om fremdriften til Xposed Framework for Android Nougat. For noen har ventetiden vært tålelig, hovedsakelig på grunn av det store antallet tilleggsfunksjoner som Xposed Framework tilbyr i Android Marshmallow. Men mange andre har gått videre til et liv uten Xposed på enhetene sine.

Vi så et glimt av fornyet spenning i prosjektet da utvikleren abforce ga ut en ART-undermodule for AOSP 7.1.2, men som vår helt egen GermainZ påpeker at du hadde det bedre å vente på den offisielle Xposed Framework-utgivelsen, da abforces implementering krevde at rammene skulle være integrert i tilpassede ROM-er. Videre var denne uoffisielle implementeringen ufullstendig, noe som førte til inkonsekvent eller avlyttende oppførsel med visse Xposed-moduler.

Mens abforce gjorde en god jobb med å få sitt uoffisielle Xposed-arbeid på Android 7.1 Nougat, gikk implementeringen hans mot rovo89s visjon for Xposed - at det skulle være en stabil løsning som gir en pålitelig og brukervennlig kontrakt for brukere og utviklere. Det vi mener med dette er at ikke bare moduler skal fungere uten problemer for brukere, men måten moduler settes opp på bør være konsistente blant brukere slik at utviklere vil vite om en Xposed Module er skylden for et appkrasj eller ikke.

Vi trenger ikke lenger å bekymre oss for problemer som rovo89 (etter litt hjelp fra anerkjent utvikler wanam) er nå klar til å gi ut en offisiell oppdatering til Xposed Framework og Installer - noe som gir kompatibilitet med Android 7.0 / 7.1 Nougat . Det betyr at du ikke trenger å installere en tilpasset ROM eller trenger å rote med blinkende ustabile versjoner for å glede deg over Xposed - bare rot telefonen din og installere det nyeste Xposed Installer-programmet (lenket nedenfor), og Xposed Installer vil gjøre magien med å installere Xposed for deg .

Xposed installasjonsprogramvare Bla gjennom moduldatabasen

Dette kan virke litt sent i noen sinn, spesielt siden denne utgivelsen kommer over en måned etter at Android 8.0 Oreo ble utgitt. Husk at svært få enheter vil ha tilgang til en stabil versjon av Android Oreo i mange måneder fremover. Android Oreo er bare på 0, 2% av alle Android-enheter (sammenlignet med ~ 18% på Nougat) ifølge den nyeste statistikken fra Google, men mange av brukerne våre er de som liker å installere tilpassede ROM-er for å holde seg på den blødende kanten.

Distribusjon av Android versjon fra oktober 2017. Kilde: Google

Selv om du installerer en uoffisiell port av Android 8.0 tilgjengelig på et utall enheter på forumene våre, er det mange av disse portene som ikke har daglig driverstatus. Så med mindre du er villig til å dele ut hundrevis av dollar for en helt ny Google Pixel 2/2 XL, Sony Xperia XZ1 / XZ1 Compact, eller en kommende enhet som Huawei Mate 10, så vil du sannsynligvis kunne klemme flere måneders bruk av Xposed Framework på Android Nougat.

Hvis det høres ut som deg, kan du gå videre til den offisielle forumtråden for Xposed Installer og ramme glidelåser for å få den i gang på Android Nougat-enheten.

Last ned Xposed Installer v3.1.2 (Vedlegg)

Xposed installasjonsprogram for nedlasting av Nougat 7.0 (SDK24)

Xposed installasjonsprogram for nedlasting av Nougat 7.1 (SDK25)

For de mange nyere brukerne som ikke er så kjent med hva Xposed Framework kan brukes til eller hvordan det fungerer, vil vi kort forklare Xposed Framework nedenfor, hvorfor du burde være spent, og hvorfor utviklingen på dette tok så lang tid som det gjorde .


Hvorfor installere Xposed Framework?

Vil du få tilpassede ROM-funksjoner uten å blinke en tilpasset ROM? Moren til alle Xposed-moduler for finjustering av ROM-en din, kjent som GravityBox, har du dekket. Vil du tilpasse visningsinnstillinger per app-basis? Prøv appinnstillinger. Hva med å tilpasse visse applikasjoner som Hangouts? Eller endre Instagram slik at du kan laste ned hva du vil?

GravityBox varslingskontroll

Appinnstillinger

Xposed gir utviklere muligheten til å modifisere ganske mye hva de vil - mest rettet mot individuelle applikasjoner, men til og med systemomfattende funksjoner kan endres. Eksemplene vi listet er bare toppen av isfjellet. Antall tilleggsfunksjoner du kan legge til eller apper du kan endre er utrolig — bare søk gjennom det offisielle Xposed Module-arkivet for å se selv. Husk at noen moduler kanskje må oppdateres for denne nye utgivelsen og for Nougat-støtte, så husk å sjekke før du installerer dem på Nougat ROM!

Hvordan fungerer Xposed Modules?

Kjernen i det er at Xposed Framework tillater moduler å “koble seg” til Java-metodene i ethvert program - enten det er brukerinstallert eller et systemapplikasjon. Xposed lar moduler utføre sine egne metoder før, under eller i stedet for de originale metodene for målsøknaden.

Tenk deg for eksempel en metode som brukes i Gmail-applikasjonen som legger ut varsler om nye e-poster. Som standard oppretter metoden et nytt varsel med knapper for å arkivere / slette eller svare på e-posten. En Xposed-modul kan lages for å koble til denne metoden og legge til en ny knapp, for eksempel "merke som lest." (Ja, det er allerede en modul for akkurat det.)

Ovennevnte er en forenkling av sluttresultatet av hva Xposed Framework lar modulene sine gjøre. Selve Frameworket er utrolig komplekst, og det er derfor Xposed for Android Nougat har tatt så lang tid å fullføre.

Hvorfor tar Xposed utvikling så lang tid?

Magien bak Xposed - det som lar moduler koble til metoder for andre apper - krever dyp kunnskap om hvordan Zygote og Android Runtime (ART) fungerer. Disse kravene er allerede til hinder for at et stort antall mennesker kan bidra til prosjektet, men problemet forverres av at rovo89 har vært den viktigste bidragsyteren til Xposed de siste 5 årene .

Det er grunnen til at anmodninger om åpen innkjøp av endringene hans som ble gjort til Xposed siden den siste offentliggjøringen av Xposed, ble nektet. Det er hans hjernebarn, og han er flink til å forstå det og endre det, så å legge mer arbeidskraft til prosjektet på et så sent stadium kan ganske enkelt forsinke prosjektet ytterligere.

I tillegg, hvis rovo89 kontinuerlig oppdaterte kilden, var han bekymret for at noen ville ta den uferdige koden for å bygge et semi-fungerende Xposed Framework uten at den universelle Xposed Installer ville følge den. (Denne nøyaktige tingen skjedde uansett med abforce-implementeringen, og det resulterende rotet av forskjellige installasjonsmetoder rettferdiggjorde rovo89s nøling.)

Dermed var det beste vi kunne gjøre å gi rovo89 tid til å jobbe med kjæledyrprosjektet hans. Xposed er ikke hans fulle eller til og med deltidsjobb. Det er ganske enkelt en hobby, en som han har gjort til fordel for samfunnet i 5 år. Et prosjekt så komplekst som Xposed krever tid å jobbe og deretter teste - tid som han ikke ofte hadde på grunn av sine andre forpliktelser. Det ble gjort fremskritt det siste året, akkurat som rovo89 dokumenterte i noen få av hans offentlige oppdateringer om saken, til slutt både Xposed Framework og Xposed Installer er klare til utgivelse.

Hva gjorde rovo89 for å få Xposed til å jobbe i Nougat?

Nye utgivelser av Android gir noen ganger endringer i måten ART fungerer på, noe som kan kreve at deler av Xposed blir omarbeidet. Android 7.0 Nougat introduserte en Just-in-Time-kompilator for ART for å forbedre ytelsesytelsen til applikasjoner, for eksempel. Men det uoffisielle Xposed Framework av abforce deaktiverer ganske enkelt mange ART-optimaliseringer slik at hooking av metoder kan fungere riktig.

ART-optimaliseringer i Android Nougat. Kilde: Google

Derimot holder implementering av rovo89 alle ART-optimaliseringer i Android Nougat ved å rekompilere en metodes innringer som bruker JIT og fremdeles ha metodekrokene på plass. Det betyr at du kan glede deg over fordelene med en Xposed-modul uten å ofre ytelsen ved å deaktivere ART-optimaliseringer med kraft.

For ytterligere detaljer om hva rovo89 gjorde for å endelig oppnå en pålitelig koblingsmetode i Xposed for Android Nougat, anbefaler vi deg å lese uttalelsen nedenfor som han ga oss.

Full uttalelse fra rovo89

Kjernen i Xposed er åpenbart dens evne til å koble Java-metoder, dvs. la moduler utføre kode før, etter eller i stedet for disse metodene. Stort sett alle andre funksjoner er basert på dette, så det er viktig at den alltid fungerer som forventet. Det generelle konseptet har vært det samme siden jeg oppfant Xposed for fem år siden, det krever å endre inngangspunktet for metoden. Dette begynner å mislykkes når inngangspunktet ikke blir sjekket under utførelsen - noe som faktisk er tilfelle med noen av optimaliseringene i ART.

Et eksempel er når inngangspunktet allerede er kjent på kompileringstidspunktet, da kan innringere direkte hoppe til denne adressen uten å slå den opp. Et annet eksempel er inlining. Tenk på dette eksemplet:

ART er smart nok til å legge merke til at metoden to ganger () er veldig enkel og derfor legger inn logikken rett i doSomething () -metoden, slik:

Du kan fremdeles koble to ganger () -metoden, men den vil ikke bli ringt fra doSomething () lenger ved kjøretid, og det vil ikke tilbakeringingen din. KUNST er enda smartere: Den innser at magi alltid er 42 og at betingelsen aldri kan oppfylles. Så hele doSomething () -metoden er faktisk en nei-op:

I tidligere versjoner pleide Xposed å deaktivere disse optimaliseringene fullstendig og tvangskompilering av alt. Det kom med flere ulemper. Først av alt gjør ART-utviklerne en fantastisk jobb med å maksimere ytelsen med optimaliseringene sine, og å deaktivere dem delvis nødvendigvis fører til mindre ytelse (jeg har aldri målt hvor mye selv). Da er ikke rekompilasjonen i seg selv alltid like lett og forårsaket meg mye hodepine, spesielt i begynnelsen. Til slutt tar de omkompilerte filene plass, i tillegg til de forhåndskompilerte filene på / systemet.

De uoffisielle versjonene for Nougat deaktiverer også disse optimaliseringene, men de tvinger ikke rekompilasjonen (fordi porten opprinnelig ble laget for å bli integrert i ROM). Derfor kan det hende at kroker ikke blir henrettet noen ganger.

Med den offisielle versjonen, vil du beholde den optimaliserte koden og fremdeles ha pålitelige kroker. Hvordan fungerer det? Vel, Xposed registrerer alle anropene som blir gjort. Dette skjer mens APK-er blir satt sammen, eller i et eget pass for forhåndsoptimalisert kode. Disse tilleggsdataene tar ikke mye plass, men det gjør at Xposed kan finne ut hvor en bestemt metode kan ha blitt rettet inn. Så når en metode er koblet, vil alle innringere bli avoptimert, dvs. at koden deres ikke blir brukt lenger. Dette sikrer at tilbakeringingen av kroken definitivt blir ringt. Og hvis den som ringer er sterkt brukt, vil den ganske enkelt bli kompilert med JIT, denne gangen med vissheten om at metoden er hektet, og at noen av optimaliseringene ikke gjelder. Dette betyr at virkningene av krokmetoder reduseres til det blotte minimum. Jippi!

Nå kan du prøve og prøve det. Sørg for å bruke Xposed Installer 3.1.2, da konfigurasjonsbanen måtte endres for å støtte filbasert kryptering.

Konklusjon

Vi håper du er like hypet som vi om utgivelsen av Xposed for Android 7.X Nougat. Ventetiden har vært lang, men uunngåelig gitt Xposed 'rene kompleksitet. Hvis du fortsatt er forvirret over hva Xposed er eller hvordan det fungerer, ikke bekymre deg. Svært få mennesker (oss inkludert) forstår faktisk hvordan det fungerer. Utviklere som rovo89 gjør sitt beste for å pakke inn arbeidene sine, slik at du ikke virkelig trenger å forstå hva som foregår under panseret.

Liker du Xposed Framework? Vurder å gi til rovo89 for det fantastiske arbeidet han gjør. Hvis du tror du har det som trengs for å bidra til prosjektet, kan du sjekke ut rovo89s GitHub-side nedenfor.

Doner til rovo89

Bidra til Xposed

Ser du etter Xposed moduler? Ta en titt på underforumet til Xposed Framework Module, eller last ned Labs-applikasjonen og bla gjennom vår samling av Xposed-moduler.

Xposed Modules Forum

Last ned Labs

Android Oreo Progress

I tilfelle du lurer på, her er hvordan det går med å få Xposed til Android Oreo:

Jeg har allerede startet arbeidet med Android 8.0. Det er noen få nye språkfunksjoner som jeg må se på, men det generelle konseptet bør fremdeles fungere. Det inkluderer alt arbeidet med å ugyldiggjøre kompilert kode for alle innringere når en metode er hektet, noe som tok langt mest tid da jeg jobbet på Nougat. Så jeg er virkelig trygg på at jeg skal være mye raskere denne gangen. Android 8.1 skal ikke være mye annerledes, så jeg forventer ikke mye merarbeid for det.