Uoffisielt Xposed Framework for Android 7.1 Nougat

En flashbar zip er nå tilgjengelig som bringer Xposed Framework til Android 7.1 Nougat ROM-er. Glidelåsen fungerer på OnePlus 3T så vel som mange andre telefoner!

Etter måneder på måneder med venting, har vi endelig fått Xposed Framework-støtte for Nougat ROM-er (om enn uoffisielt). Takket være noen talentfulle utviklere på våre egne XDA-fora, kan du nå installere Xposed Framework på en Android Nougat ROM gjennom en flashbar zip.

Frem til nå så fremtiden for Xposed på Nougat litt skjelven ut. Rovo89 - utvikleren bak Xposed Framework - ga en oppdatering om støtte for Android Nougat for litt mer enn en uke siden. Rovo89 uttalte i hovedsak at det fortsatt var mye arbeid å gjøre for å få Xposed til å fungere ordentlig på Nougat, og at vi bare måtte være tålmodige.

Heldigvis ser det ut til at vi har fått en midlertidig løsning for de av oss som har ventet spent på et stopptiltak. PurifyOS-teamet tok tak i ART-modulen som utvikleren kraftig hadde jobbet med (og som ble postet om tidligere i dag), og tilpasset den til å kunne installeres på andre tilpassede ROM-er gjennom en flashbar zip (i stedet for å måtte implementeres når ROM-en kompileres).

Det er for øyeblikket tre tilgjengelige versjoner for forskjellige plattformer, inkludert Xposed SDK25 ARM64, Xposed SDK25 VÆPNE, og Xposed SDK25 x86. PurifyOS-teamet har testet denne nye versjonen av Xposed med en OnePlus 3T som kjører OxygenOS basert på Android 7.1, men den skal fungere på andre telefoner som kjører Android Nougat og brukere rapporterer allerede at de har vært i stand til å installere den på forskjellige ROM-er og enheter. For eksempel har noen få brukere på OnePlus 5 rapportert at den fungerer (ingen overraskelse, gitt at den kjører på OnePlus 3T helt fint), men en bruker som kjører en AOSP-basert ROM for Samsung Galaxy S6 rapporterte også at det fungerte for dem.

Det vil være særheter å finne ut av, og ikke alle har klart å få det til å fungere så langt, med noen brukere som opplever tvangslukkinger og andre merkelige ting. Men selv om dette er tilfelle, kan du fortsatt prøve det hvis du har ventet på ankomsten av Xposed på Nougat helt siden den forrige versjonen av Android OS ble utgitt. Ikke alle eksisterende Xposed Framework-moduler vil fungere umiddelbart, men noen veldig populære, som Amplify, er rapportert å fungere.

Sørg for å ta regelmessige sikkerhetskopier og les tråden nøye før du begir deg ut hvis du er usikker på om enheten eller ROM-en din støttes. Til slutt, sørg for å bruke "søk"-funksjonen før du legger igjen et duplikatspørsmål. Android O kan være rett rundt hjørnet, men som det sies, "bedre sent enn aldri." I tillegg kommer mange brukere ikke til å se Android O på enhetene sine på lenge, så Xposed bør være en godbit slik at du ikke føler deg etterlatt.


Oppdatering: Rovo89s svar

Originalen utviklet bak Xposed Framework, XDA Senior Recognized Developer rovo89, har svart på Github med sine tanker om denne siste utviklingen.

Fra min erfaring kan jeg fortelle deg at det faktisk ikke er så vanskelig å få det grunnleggende gjort, men det tar mye tid for detaljene. Det er som 80-20-regelen, bortsett fra at det er mer som 95-5 eller så.

Tilnærmingen jeg har designet for de tidligere utgivelsene er ganske stabil og kan også brukes for nyere utgivelser. Jeg antar at du trengte mesteparten av tiden for å sjekke alle stedene hvor IsProxyMethod() og IsDirect() kalles og bestemmer om de skal vurdere den nye metodemodifikatoren eller ikke (dvs. bruke parameter true eller ikke). Hvis du ikke gjorde det, har du kanskje gått glipp av noen steder hvor de nylig har introdusert slike samtaler. Samme for metoder som InstallStubsForMethod(), som må operere på den originale originalmetoden selv når de blir kalt for en hektet metode. Du må se etter flere steder hvor dette kan være relevant. Det er fortsatt i løpet av dagene, men hvis du går glipp av å gjøre det, kan du se obskure krasj eller feil oppførsel som er svært vanskelig å feilsøke.

I tillegg tok du en tilnærming der kroker bare ville fungere ordentlig for ROM-er som er helt kompilert fra bunnen av. På lager-ROM-er og til og med de fleste tilpassede ROM-er (som ikke inkluderte porten din mens du bygde) så vel som for alle apper enheten kan ha kompilert før. Så du må starte på nytt med en utslettet enhet som kjører en spesiell ROM. Hvis ikke, kan optimaliseringer (f.eks. inlining) forhindre at en metode kalles i det hele tatt, og dermed ville ikke kroker fungere. Det verste med dette er at den nøyaktige oppførselen vil avhenge av ROM-en, eller til og med hvordan brukeren bruker enheten (nå som apper er kompilert basert på profiler). Moduler ville feile tilfeldig, og modulutviklerne ville lure på hva de gjorde galt (svar: ingenting). Hvis ikke alle forutsetningene er oppfylt, er det et ganske upålitelig API. Tenk deg at Google publiserte en oppdatering der OnClickListener av en knapp ble ikke kalt noen ganger, med mindre du kompilerte ROM-en fra bunnen av... For meg personlig er dette en stor begrensning.

Han fortsetter:

Det gir ikke mening i det hele tatt å publisere flashbare ZIP-er med dette, da porten kun er ment for å rekompilere en ROM fra bunnen av.

Og som jeg fryktet, det er ikke en eneste advarsel om at dette er en ufullstendig port som ofte ikke vil oppfylle API-kontrakten. 😠 Det er dårlig for utviklere og brukere, de bør i det minste vite at det er ufullstendig slik at de kan bestemme om de vil støtte/bruke det. Jeg ville aldri våget å gjøre noe sånt uten en stor fet advarsel. Egentlig, siden jeg er ganske perfeksjonist, ville jeg ikke publisert en ufullstendig versjon i det hele tatt, pålitelighet er veldig viktig for meg.

Jeg sjekket nettopp Git-loggen min, og jeg hadde den grunnleggende hookingen (som i denne porten) klar i oktober. Siden den gang har jeg jobbet med å fjerne begrensningene. For å gjøre det mer pålitelig på forhåndskompilerte ROM-er, kunne jeg også ha portert rekompileringsdelen, men det er fortsatt ikke ideelt. Som forklart et sted ovenfor, har vi JIT nå, som lar oss beholde alle optimaliseringene, bare ugyldiggjøre (og muligens rekompilere) metodene som er direkte påvirket av hooking. Dette er ganske utfordrende, siden det er mer enn bare kopiere og lime inn. Og før dette ikke er gjort, vil jeg ikke publisere noe. 9 måneder for det (til nå) er egentlig lenge, jeg vet, men hei, det er fritiden min og f.eks. på grunn av flytting til en ny leilighet, jeg kunne ikke jobbe på Xposed på flere måneder (!) i det hele tatt, og hadde bare veldig begrenset tid ellers.

Vi bør gjøre det klart at denne siste utviklingen ikke er den sanne "Xposed" som dere alle kjenner og elsker, men funksjonelt lar de deg bruke noen Xposed Framework-moduler akkurat nå på Android Nougat. Vi vil ikke klandre deg for ikke å vente på den offisielle, mer stabile og mer kompatible versjonen av Xposed Framework for Android Nougat, men vi ønsker å gjøre det klart at denne iterasjonen bare er et stopptiltak ment for å tilfredsstille behovene til noen brukere. nå. Det er sannsynligvis ikke måten Xposed vil bli håndtert på i fremtiden.


Last ned uoffisielt Xposed Framework for Nougat på XDA-foraene