Inofficiellt Xposed Framework för Android 7.1 Nougat

click fraud protection

En flashbar zip är nu tillgänglig som för Xposed Framework till Android 7.1 Nougat ROM. Blixtlåset fungerar på OnePlus 3T såväl som många andra telefoner!

Efter månader på månader av väntan har vi äntligen fått stöd för Xposed Framework för Nougat ROM (om än inofficiellt). Tack vare några talangfulla utvecklare på våra alldeles egna XDA-forum kan du nu installera Xposed Framework på en Android Nougat ROM genom en flashbar zip.

Fram till nu såg framtiden för Xposed på Nougat lite skakig ut. Rovo89 - utvecklaren bakom Xposed Framework - gav en uppdatering om stöd för Android Nougat för lite mer än en vecka sedan. Rovo89 sa i huvudsak att det fortfarande fanns mycket arbete att göra för att få Xposed att fungera korrekt på Nougat, och att vi bara måste ha tålamod.

Tack och lov ser det ut som att vi har fått en tillfällig lösning för oss som med spänning väntat på en stoppåtgärd. PurifyOS-teamet tog tag i ART-modulen som utvecklaren kraftfull hade arbetat med (och som skrevs om tidigare idag), och anpassade den för att kunna installeras på andra anpassade ROM genom en flashbar zip (istället för att behöva implementeras vid kompilering av ROM).

Det finns för närvarande tre tillgängliga versioner för olika plattformar, inklusive Xposed SDK25 ARM64, Xposed SDK25 ÄRM, och Xposed SDK25 x86. PurifyOS-teamet har testat den här nya versionen av Xposed med en OnePlus 3T som kör OxygenOS baserat på Android 7.1, men den borde fungera på andra telefoner som kör Android Nougat och användare rapporterar redan att de har lyckats installera det på olika ROM och enheter. Till exempel har några användare på OnePlus 5 rapporterat att det fungerar (ingen överraskning, med tanke på att den körs på OnePlus 3T bara bra), men en användare som kör en AOSP-baserad ROM för Samsung Galaxy S6 rapporterade också att det fungerade för dem.

Det kommer att finnas egenheter att ta reda på och inte alla har lyckats få det att fungera hittills, med vissa användare som upplever tvångsstängningar och andra konstigheter. Men även när detta är fallet, kan du fortfarande ge det ett försök om du har väntat på ankomsten av Xposed på Nougat ända sedan den tidigare versionen av Android OS släpptes. Inte alla befintliga Xposed Framework-moduler kommer att fungera direkt, men några riktigt populära sådana som Amplify rapporteras fungera.

Se till att göra regelbundna säkerhetskopior och läs igenom tråden noggrant innan du ger dig ut om du är osäker på om din enhet eller ROM stöds. Slutligen, se till att använda "sök"-funktionen innan du lämnar en dubblettfråga. Android O kan vara precis runt hörnet, men som man säger, "bättre sent än aldrig." Dessutom kommer många användare inte att se Android O på sina enheter på ett tag, så Xposed borde vara en trevlig behandling så att du inte känner dig efterlämnad.


Uppdatering: Rovo89s svar

Originalet utvecklat bakom Xposed Framework, XDA Senior Recognized Developer rovo89, har svarat på Github med sina tankar om den senaste utvecklingen.

Av min erfarenhet kan jag säga att det verkligen inte är så svårt att få grunderna gjorda, men det tar väldigt mycket tid för detaljerna. Det är som 80-20-regeln, förutom att det är mer som 95-5 eller så.

Den hooking-metod som jag har designat för de tidigare utgåvorna är ganska stabil och kan tillämpas för nyare utgåvor också. Jag antar att du behövde det mesta av tiden för att kolla alla ställen där IsProxyMethod() och IsDirect() anropas och bestämmer om de ska överväga den nya metodmodifieraren eller inte (dvs. använd parameter true eller inte). Om du inte gjorde det kanske du har missat några ställen där de nyligen har introducerat sådana samtal. Samma för metoder som InstallStubsForMethod(), som måste fungera på den ursprungliga ursprungliga metoden även när de kallas för en hooked metod. Du måste leta efter fler ställen där detta kan vara relevant. Det är fortfarande inom intervallet av dagar, men om du missar att göra det kan du se obskyra krascher eller felaktigt beteende som är mycket svåra att felsöka.

Förutom det tog du ett tillvägagångssätt där krokar bara skulle fungera korrekt för ROM-skivor som är helt kompilerade från grunden. På lager-ROM och till och med de flesta anpassade ROM-skivor (som inte inkluderade din port när du byggde) såväl som för appar som enheten kan ha kompilerat tidigare. Så du måste börja om från början med en utplånad enhet som kör en speciell ROM. Om inte, kan optimeringar (t.ex. inlining) förhindra att en metod alls anropas, och därför fungerar inte krokar. Det värsta med detta är att det exakta beteendet skulle bero på ROM, eller till och med hur användaren använder enheten (nu när appar kompileras utifrån profiler). Moduler skulle misslyckas slumpmässigt och modulutvecklarna skulle undra vad de gjorde fel (svar: ingenting). Om inte alla förutsättningar är uppfyllda är det ett ganska opålitligt API. Föreställ dig att Google publicerade en uppdatering där OnClickListener av en knapp anropades inte ibland, om du inte kompilerade ditt ROM från början... För mig personligen är detta en stor begränsning.

Han fortsätter:

Det är inte alls meningsfullt att publicera flashbara ZIP-filer med detta, eftersom porten endast är avsedd för att kompilera om en ROM från början.

Och som jag fruktade, det finns inte en enda varning om att detta är en ofullständig port som ofta misslyckas med att uppfylla API-kontraktet. 😠 Det är dåligt för utvecklare och användare, de borde åtminstone veta att det är ofullständigt så att de kan bestämma om de vill stödja/använda det. Jag skulle aldrig våga göra något sådant utan en stor fet varning. Egentligen, eftersom jag är ganska perfektionist, skulle jag inte publicera en ofullständig version alls, tillförlitlighet är mycket viktigt för mig.

Jag kollade precis min Git-logg och jag hade den grundläggande hookingen (som i den här porten) klar i oktober. Sedan dess har jag jobbat med att ta bort begränsningarna. För att göra det mer tillförlitligt på förkompilerade ROM-skivor kunde jag också ha porterat omkompileringsdelen, men det är fortfarande inte idealiskt. Som förklarats någonstans ovan har vi JIT nu, vilket gör att vi kan behålla alla optimeringar, bara ogiltigförklara (och möjligen omkompilera) de metoder som direkt påverkas av hooking. Detta är ganska utmanande, eftersom det är mer än bara kopiera och klistra in. Och tills detta inte är gjort kommer jag inte att publicera något. 9 månader för det (tills nu) är verkligen lång tid, jag vet, men hallå, det är min fritid och t.ex. på grund av flytt till en ny lägenhet, jag kunde inte jobba på Xposed på flera månader (!) alls, och hade bara väldigt begränsad tid annars.

Vi bör göra det klart att den här senaste utvecklingen inte är den sanna "Xposed" som ni alla känner till och kärlek, men funktionellt låter de dig använda några Xposed Framework-moduler just nu på Android Nougat. Vi kommer inte att klandra dig för att du inte väntar på den officiella, stabilare och mer kompatibla versionen av Xposed Framework för Android Nougat, men vi vill göra det klart att denna iteration bara är en stoppåtgärd som är avsedd att tillfredsställa vissa användares behov. nu. Det är sannolikt inte hur Xposed kommer att hanteras i framtiden.


Ladda ner inofficiellt Xposed Framework för Nougat på XDA-forumen