Po dolgem čakanju je razvijalec ogrodja Xposed Framework uradno objavil, da projekt zdaj podpira Android Nougat. Namestite module Xposed zdaj!
Ker je ekosistem Android z leti dozorel, vse manj uporabnikov najde razloge, zakaj bi morali rootati svojo napravo. Narašča trend, da se uporabniki odločijo, da bodo ostali na osnovni vdelani programski opremi, bodisi zato, ker se jim zdi izkušnja zadovoljiva ali pa ne želijo igrati igra mačke in miške z Googlovim API-jem SafetyNet. Če pa ste v začetku leta 2016 vprašali uporabnika, zakaj je rootal svoje telefone, je bil morda prvi razlog, da bi lahko namestite Xposed Framework. Bilo je več kot leto dni od Androida 7.0 Nougat je bil prvič izdan, vendar je dolgega čakanja končno konec: uradni Xposed Framework za Android Nougat je končno na voljo.
V zadnjem letu starejši priznani razvijalec XDA rovo89, vodilni razvijalec ogrodja Xposed Framework, je zagotovil večposodobitve o napredku Xposed Framework za Android Nougat. Za nekatere, čakanje je bilo znosno
večinoma zaradi velikega števila dodatnih funkcij, ki jih ponuja Xposed Framework Android Marshmallow. Toda mnogi drugi so se preselili v življenje brez Xposed na svojih napravah.Ko je razvijalec abforce izdal an Podmodul ART za AOSP 7.1.2, a kot poudarja naš GermainZ bolje je bilo počakati na uradni Xposed Framework izdaja, saj je implementacija abforce zahtevala, da je ogrodje vključeno v prilagojene ROM-e. Poleg tega ta neuradna izvedba je bila nepopolna, kar je povzročilo nedosledno ali napačno delovanje z nekaterimi Xposed Moduli.
Medtem ko je abforce opravil odlično delo pri pripravi svojega neuradnega Xposeda na Android 7.1 Nougat, je bila njegova implementacija v nasprotju vizija rovo89 za Xposed – da mora biti stabilna rešitev, ki zagotavlja zanesljivo in preprosto pogodbo za uporabo za uporabnike in razvijalce enako. S tem mislimo ne samo, da morajo moduli delovati brez težav za uporabnike, ampak tudi način, kako so moduli nastavljeni up mora biti dosleden med uporabniki, tako da bodo razvijalci vedeli, ali je za aplikacijo kriv modul Xposed ali ne strmoglavljenje.
Ni nam več treba skrbeti za težave, kot je rovo89 (po nekaj pomoči priznanega razvijalca XDA wanam) je zdaj pripravljen izdati uradno posodobitev ogrodja Xposed in namestitvenega programa združljivost z Android 7.0/7.1 Nougat. To pomeni, da vam za uživajte v Xposed—preprosto rootajte svoj telefon in namestite najnovejšo aplikacijo Xposed Installer (spodnja povezava) in the Xposed Installer bo naredil čarovnijo pri namestitvi Xposed namesto vas.
Namestitveni program Xposed Brskanje po repozitoriju modulov
Nekaterim se to morda zdi nekoliko pozno, še posebej, ker prihaja ta izdaja več kot mesec dni po izidu Androida 8.0 Oreo. Upoštevajte, da bo zelo malo naprav imelo dostop do stabilne različice Androida Oreo še mnogo mesecev. Android Oreo je samo na 0.2% vseh naprav Android (v primerjavi z ~18 % pri Nougatu) glede na najnovejše Googlove statistike, vendar je veliko naših uporabnikov tistih, ki radi nameščajo ROM-e po meri, da ostanejo na robu.
Čeprav tudi če namestite neuradna vrata za Android 8.0 na voljo na neštetih napravah na naših forumih, mnoga od teh vrat niso dnevni status gonilnika. Torej, razen če ste pripravljeni odšteti na stotine dolarjev za popolnoma novega Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, ali prihajajoče naprave, kot je Huawei Mate 10, potem boste verjetno lahko iz ogrodja Xposed Framework v sistemu Android Nougat iztisnili nekaj mesecev uporabe.
Če to zveni podobno vam, potem pojdite na uradno nit foruma za Xposed Installer in okvirne zadrge, da jih nastavite in zaženete v vaši napravi Android Nougat.
Prenesite Xposed Installer v3.1.2 (Priloga)
Namestitveni program Xposed za Nougat 7.0 (SDK24) Prenos
Prenos namestitvenega programa Xposed za Nougat 7.1 (SDK25).
Za številne novejše uporabnike, ki niso tako seznanjeni s tem, za kaj se lahko uporablja Xposed Framework ali kako deluje, bo spodaj na kratko razložil Xposed Framework, zakaj bi morali biti navdušeni in zakaj je razvoj tega trajal tako dolgo, naredil.
Zakaj namestiti Xposed Framework?
Želite pridobiti funkcije ROM-a po meri brez utripanja ROM-a po meri? Mati vseh modulov Xposed za prilagajanje vašega ROM-a, znan kot GravityBox, ste pokrili. Želite prilagoditi nastavitve zaslona za vsako aplikacijo posebej? poskusite Nastavitve aplikacije. Kaj pa prilagajanje nekaterih aplikacij, kot je Klepetalnice »Hangout«? Ali pa spremenite Instagram, da boste lahko prenesite poljubne objave?
Xposed razvijalcem omogoča, da spremenijo skoraj vse, kar želijo—večinoma namenjeno posameznim aplikacijam, vendar je mogoče spremeniti celo sistemske funkcije. Primeri, ki smo jih našteli, so le vrh ledene gore. Število dodatnih funkcij, ki jih lahko dodate, ali aplikacij, ki jih lahko spremenite, je neverjetno – samo poiščite po uradno skladišče modulov Xposed da se prepričate sami. Ne pozabite, da bo nekatere module morda treba posodobiti za to novo izdajo in podporo za Nougat, zato preverite, preden jih namestite v svoj Nougat ROM!
Kako delujejo moduli Xposed?
Bistvo tega je, da Xposed Framework modulom omogoča "priklopiti" na metode Java katere koli aplikacije— naj bo to uporabniško nameščena ali sistemska aplikacija. Xposed modulom omogoča izvajanje lastnih metod pred, med ali namesto izvirne metode ciljne aplikacije.
Predstavljajte si na primer metodo, uporabljeno v aplikaciji Gmail, ki objavlja obvestila za nova e-poštna sporočila. Metoda privzeto ustvari novo obvestilo z gumbi za arhiviranje/brisanje ali odgovor na e-pošto. Modul Xposed bi se lahko vključil v to metodo in dodal nov gumb, kot je »označi kot prebrano«. (Da, obstaja že modul za to.)
Zgoraj navedeno je pretirana poenostavitev končnega rezultata tega, kar Xposed Framework omogoča svojim modulom. Samo ogrodje je neverjetno zapleteno in zaradi česar deluje skoraj univerzalno na zakoreninjenih napravah – ne da bi potreboval ROM po meri – je razlog, zakaj je Xposed za Android Nougat trajal tako dolgo, da je bil dokončan.
Zakaj razvoj Xposed traja tako dolgo?
Čarovnija v ozadju Xposed – kaj omogoča modulom, da se povežejo z metodami drugih aplikacij – zahteva globoko poznavanje tega, kako Zygote in Android Runtime (ART) deluje. Te zahteve že onemogočajo, da bi veliko število ljudi prispevalo k projektu, vendar je težava še hujša zaradi dejstva, rovo89 je bil glavni sodelavec Xposed zadnjih 5 let.
Zato so bili zavrnjeni pozivi k odprti kodi njegovih sprememb Xposeda od zadnje javne izdaje Xposeda. To je njegova zamisel in on je najboljši v razumevanju in spreminjanju, zato dodaja več delovne sile k projektu v tako pozni fazi bi lahko preprosto še dodatno odložil projekt.
Poleg tega, če rovo89 nenehno posodablja svoj vir, bil je zaskrbljen da bi nekdo vzel nedokončano kodo za izdelavo poldelujočega ogrodja Xposed Framework brez univerzalnega namestitvenega programa Xposed, ki bi ga spremljal. (Točno to se je vseeno zgodilo z implementacijo abforce in posledična zmešnjava različnih namestitvenih metod je upravičila oklevanje rovo89.)
Zato je bilo najboljše, kar smo lahko naredili, da smo rovo89 dali čas za delo na njegovem hišnem projektu. Xposed ni njegova polna ali celo honorarna služba. To je preprosto hobi, s katerim se v korist skupnosti ukvarja že 5 let. Tako zapleten projekt, kot je Xposed, zahteva čas za delo in nato testiranje – čas, ki ga zaradi drugih obveznosti pogosto ni imel. Napredek je bil nastajal v preteklem letu, tako kot je rovo89 dokumentiral v nekaj svojih javnih posodobitvah o tem vprašanju, dokler končno nista ogrodje Xposed Framework in namestitveni program Xposed pripravljena za izdajo.
Kaj je naredil rovo89, da je Xposed deloval v Nougatu?
Nove izdaje Androida včasih spremenijo način delovanja ART, kar lahko zahteva predelavo delov Xposed. Android 7.0 Nougat je predstavil Just-in-Time prevajalnik za ART, ki na primer pomaga izboljšati zmogljivost izvajanja aplikacij. Toda neuradno ogrodje Xposed Framework podjetja abforce preprosto onemogoči številne optimizacije ART, tako da lahko povezovanje metod deluje pravilno.
Nasprotno pa izvedba rovo89 ohranja vse optimizacije ART v sistemu Android Nougat s ponovnim prevajanjem klicatelja metode z uporabo JIT in še vedno nameščenimi kavlji metode. To pomeni, da lahko uživate v prednostih modula Xposed, ne da bi pri tem žrtvovali zmogljivost s prisilnim onemogočanjem optimizacij ART.
Za dodatne podrobnosti o tem, kaj je rovo89 naredil, da je končno dosegel zanesljivo metodo povezovanja v Xposed za Android Nougat, priporočamo, da preberete spodnjo izjavo, ki nam jo je posredoval.
Celotna izjava rovo89
Jedro Xposed je očitno njegova zmožnost preklopa na metode Java, tj. omogoča modulom, da izvajajo kodo pred, za ali namesto teh metod. Skoraj vsaka druga funkcionalnost temelji na tem, zato je ključnega pomena, da vedno deluje po pričakovanjih. Splošni koncept je enak, odkar sem pred petimi leti izumil Xposed, zahteva spremembo vstopne točke metode. To začne odpovedovati, ko vstopna točka ni preverjena med izvajanjem - kar je dejansko v primeru nekaterih optimizacij v ART.
En primer je, ko je vstopna točka že znana v času prevajanja, potem lahko klicatelji neposredno skočijo na ta naslov, ne da bi ga iskali. Drug primer je vstavljanje. Razmislite o tem primeru:
ART je dovolj pameten, da opazi, da je metoda dvakrat() zelo preprosta in zato vdela logiko neposredno v metodo doSomething(), takole:
Še vedno lahko zaskočite metodo two(), vendar ne bo več klicana iz doSomething() med izvajanjem, prav tako ne vaš povratni klic. ART je še bolj pameten: Zaveda se, da je magija vedno 42 in zato pogoj nikoli ne more biti izpolnjen. Tako je celotna metoda doSomething() pravzaprav brez operacije:
V prejšnjih različicah je Xposed popolnoma onemogočil te optimizacije in prisilil ponovno prevajanje vsega. To je imelo več slabosti. Prvič, razvijalci ART opravljajo fantastično delo pri maksimiranju zmogljivosti s svojimi optimizacije in njihovo onemogočanje delno nujno vodi do manjše zmogljivosti (nikoli nisem izmeril, koliko čeprav). Potem samo prevajanje ni vedno lahko in mi je povzročalo veliko preglavic, predvsem na začetku. Nazadnje, ponovno prevedene datoteke zavzamejo prostor poleg predhodno prevedenih datotek na /system.
Neuradne različice za Nougat tudi onemogočijo te optimizacije, vendar ne vsilijo ponovnega prevajanja (ker so bila vrata prvotno narejena za vgradnjo v ROM). Zato se kljuke včasih morda ne bodo izvajale.
Z uradno različico boste obdržali optimizirano kodo in še vedno imeli zanesljive kljuke. Kako to deluje? No, Xposed beleži vse opravljene klice. To se zgodi med prevajanjem APK-jev ali v ločenem prehodu za vnaprej optimizirano kodo. Ti dodatni podatki ne zavzamejo veliko prostora, vendar omogočajo Xposedu, da ugotovi, kje je bila določena metoda morda vstavljena. Torej, ko je metoda zasvojena, bodo vsi njeni klicatelji deoptimizirani, kar pomeni, da njihova koda ne bo več uporabljena. To zagotavlja, da bo povratni klic zagotovo klican. In če je klicatelj močno uporabljen, bo preprosto znova preveden z JIT, tokrat z zavedanjem, da je metoda zasvojena in zato nekatere optimizacije ne veljajo. To pomeni, da so učinki metod hookinga zmanjšani na minimum. Juhu!
Zdaj pa nadaljujte in preizkusite. Prepričajte se, da uporabljate Xposed Installer 3.1.2, saj je bilo treba spremeniti konfiguracijsko pot, da podpira šifriranje na podlagi datotek.
Preberi več
Zaključek
Upamo, da ste tako navdušeni kot mi glede izdaje Xposed za Android 7.X Nougat. Čakanje je bilo dolgo, a neizogibno glede na izjemno kompleksnost Xposed. Če ste še vedno zmedeni glede tega, kaj je Xposed ali kako deluje, ne skrbite. Zelo malo ljudi (vključno z nami) dejansko razume, kako deluje. Razvijalci, kot je rovo89, se po svojih najboljših močeh trudijo zapakirati svoje delo, tako da vam res ni treba razumeti, kaj se dogaja pod pokrovom.
Vam je všeč Xposed Framework? Razmislite o donaciji rovo89 za odlično delo, ki ga opravlja. Če menite, da imate vse, kar je potrebno, da prispevate k projektu, si oglejte spodnjo stran GitHub rovo89.
Donirajte rovo89
Prispevajte k Xposed
Iščete module Xposed? Oglejte si naš podforum Xposed Framework Module ali prenesite aplikacijo XDA Labs in prebrskajte našo zbirko modulov Xposed.
Forum modulov Xposed
Prenesite XDA Labs
Android Oreo Napredek
Če se sprašujete, tukaj je opisan napredek pri pridobivanju Xposed za Android Oreo:
Začel sem že delati na Androidu 8.0. Nekaj jih je nove jezikovne funkcije to si bom moral ogledati, vendar bi moral splošni koncept vseeno delovati. To vključuje vse delo na razveljavitvi prevedene kode vseh klicateljev, ko je metoda zasvojena, kar je vzelo daleč največ časa, ko sem delal na Nougatu. Zato sem res prepričan, da bom tokrat veliko hitrejši. Android 8.1ne bi smel biti veliko drugačen, zato ne pričakujem veliko dodatnega dela zanj.