Virallinen Xposed Framework Android Nougatille on täällä

click fraud protection

Pitkän odotuksen jälkeen Xposed Frameworkin kehittäjä on virallisesti ilmoittanut, että projekti tukee nyt Android Nougatia. Asenna Xposed-moduulit nyt!

Kun Android-ekosysteemi on kypsynyt vuosien varrella, yhä harvemmat käyttäjät löytävät syitä, miksi heidän pitäisi rootata laite. On olemassa kasvava trendi, että käyttäjät päättävät pysyä varastossa olevalla laiteohjelmistolla joko siksi, että heidän mielestään kokemus on tyydyttävä tai koska he eivät halua pelata kissa ja hiiri -peli Googlen SafetyNet API: lla. Mutta jos kysyit käyttäjältä alkuvuodesta 2016, miksi hän juurrutti puhelimensa, ehkä suurin syy sille kerrottiin, että he voisivat asenna Xposed Framework. On ollut yli vuosi Android 7.0 Nougatin jälkeen julkaistiin ensimmäisen kerran, mutta pitkä odotus on vihdoin ohi: virallinen Xposed Framework for Android Nougat on vihdoin saatavilla.

Koko kuluneen vuoden XDA Senior Recognized Developer rovo89, Xposed Frameworkin johtava kehittäjä, on tarjonnut useitapäivitykset Android Nougatin Xposed Frameworkin edistymisestä. Joillekin,

odotus on ollut siedettävää lähinnä Xposed Frameworkin tarjoamien lisätoimintojen suuren määrän vuoksi Android Marshmallow. Mutta monet muut ovat siirtyneet elämään ilman Xposia laitteissaan.

Näimme projektin uudesta jännityksestä, kun kehittäjä abforce julkaisi ART-alimoduuli AOSP 7.1.2:lle, mutta kuten oma GermainZ huomauttaa sinun oli parempi odottaa virallista Xposed Frameworkia julkaisu, koska abforin toteutus vaati kehyksen integroimista mukautettuihin ROM-levyihin. Lisäksi, tämä epävirallinen toteutus oli epätäydellinen, mikä johti epäjohdonmukaiseen tai bugiiseen käyttäytymiseen tiettyjen Xposedien kanssa Moduulit.

Vaikka abfor teki hienoa työtä saadakseen epävirallisen Xposed-laitteensa toimimaan Android 7.1 Nougat -käyttöjärjestelmässä, hänen toteutus oli vastoin rovo89:n visio Xposedista – että sen pitäisi olla vakaa ratkaisu, joka tarjoaa luotettavan ja helppokäyttöisen sopimuksen käyttäjille ja kehittäjille yhtä lailla. Tarkoitamme tällä sitä, että moduulien ei pitäisi toimia vain ongelmattomasti käyttäjille, vaan myös tapaa, jolla moduulit asetetaan käyttäjien kesken tulee olla johdonmukaisia, jotta kehittäjät tietävät, onko Xposed-moduuli syyllinen sovellukseen. kaatua.

Meidän ei enää tarvitse huolehtia sellaisista ongelmista kuin rovo89 (XDA Recognized Developerin avun jälkeen wanam) on nyt valmis julkaisemaan virallisen päivityksen Xposed Frameworkiin ja Installeriin Yhteensopivuus Android 7.0/7.1 Nougatin kanssa. Tämä tarkoittaa, että sinun ei tarvitse asentaa mukautettua ROM-muistia tai joutua sotkemaan vilkkuvien epävakaiden versioiden kanssa nauti Xposedista – juuri puhelimesi roottana ja asenna uusin Xposed Installer -sovellus (linkki alla) ja the Xposed Installer asentaa Xposedin puolestasi.

Xposed Installer selaamassa moduulivarastoa

Tämä saattaa tuntua hieman myöhäiseltä joidenkin mielestä, varsinkin kun tämä julkaisu tulee yli kuukausi Android 8.0 Oreon julkaisun jälkeen. Muista, että hyvin harvat laitteet voivat käyttää Android Oreon vakaata versiota useiden kuukausien ajan. Android Oreo on vain päällä 0.2% kaikista Android-laitteista (verrattuna Nougatin noin 18 prosenttiin) Googlen viimeisimpien tilastojen mukaan, mutta monet käyttäjämme ovat sellaisia, jotka rakastavat mukautettujen ROM-levyjen asentamista pysyäkseen kärjessä.

Android-version jakelu lokakuussa 2017. Lähde: Google

Vaikka asentaisitkin Android 8.0:n epävirallinen portti Saatavilla lukemattomissa laitteissa foorumeillamme, monet näistä porteista eivät ole päivittäisiä ajurien tilaa. Joten ellet ole valmis maksamaan satoja dollareita upouudesta Google Pixel 2/2 XL, Sony Xperia XZ1/XZ1 Compact, tai tuleva laite, kuten Huawei Mate 10, voit todennäköisesti puristaa useiden kuukausien käytön Xposed Frameworkista Android Nougatissa.

Jos tämä kuulostaa sinulta, siirry viralliseen foorumin viestiketjuun Xposed Installer -asentajaa ja puitteet zipsiin saadaksesi sen käyttöön Android Nougat -laitteellasi.

Lataa Xposed Installer v3.1.2 (liite)

Xposed Installer for Nougat 7.0 (SDK24) lataus

Xposed Installer for Nougat 7.1 (SDK25) Lataa

Niille uusille käyttäjille, jotka eivät ole niin perehtyneet siihen, mihin Xposed Frameworkia voidaan käyttää tai miten se toimii, selittää lyhyesti alla Xposed Frameworkin, miksi sinun pitäisi olla innostunut ja miksi tämän kehittäminen kesti niin kauan kuin se teki.


Miksi Xposed Framework asennetaan?

Haluatko saada mukautettuja ROM-ominaisuuksia ilman mukautetun ROM-muistin vilkkumista? Kaikkien ROM-muistin säätämiseen tarkoitettujen Xposed-moduulien äiti GravityBox, oletko suojannut. Haluatko mukauttaa näyttöasetuksia sovelluskohtaisesti? Yrittää Sovellusasetukset. Entä mukauttaa tiettyjä sovelluksia, kuten Hangouts? Tai muokkaa Instagramia niin, että voit lataa mitä tahansa viestejä, joista pidät?

Xposed antaa kehittäjille mahdollisuuden muokata aika paljon mitä haluavat— enimmäkseen tarkoitettu yksittäisille sovelluksille, mutta jopa järjestelmän laajuisia ominaisuuksia voidaan muokata. Luettelomme esimerkit ovat vain jäävuoren huippu. Lisättävissä olevien lisäominaisuuksien tai muokattavien sovellusten määrä on uskomaton – hae vain virallinen Xposed Module -arkisto nähdäksesi itse. Muista, että jotkin moduulit on ehkä päivitettävä tätä uutta julkaisua ja Nougat-tukea varten, joten muista tarkistaa ne ennen kuin asennat ne Nougat ROM -muistillesi!

Miten Xposed-moduulit toimivat?

Asian ydin on, että Xposed Framework mahdollistaa moduulien "kiinni" minkä tahansa sovelluksen Java-menetelmiin— Olipa kyseessä käyttäjän asentama tai järjestelmäsovellus. Xposed antaa moduulien suorittaa omia menetelmiään ennen, aikana tai tilalla kohdesovelluksen alkuperäiset menetelmät.

Kuvittele esimerkiksi Gmail-sovelluksessa käytetty menetelmä, joka lähettää ilmoituksia uusista sähköposteista. Oletusarvoisesti menetelmä luo uuden ilmoituksen, jossa on painikkeita arkistointia/poistoa tai sähköpostiin vastaamista varten. Xposed-moduuli voidaan saada kytkeytymään tähän menetelmään ja lisäämään uusi painike, kuten "merkitse luetuksi". (Kyllä, on jo moduuli juuri sitä varten.)

Yllä oleva on liiallinen yksinkertaistus lopputuloksesta, jonka Xposed Framework sallii moduuliensa tehdä. Framework itsessään on uskomattoman monimutkainen, ja sen ansiosta se toimii lähes yleisesti juurtuneissa laitteissa – ilman mukautettua ROM-muistia – siksi Xposed for Android Nougat on kestänyt niin kauan valmistua.

Miksi Xposedin kehitys kestää niin kauan?

Xposedin taika – mikä mahdollistaa moduulien kytkeytymisen muiden sovellusten menetelmiin – vaatii syvällistä tietämystä siitä, kuinka Zygote ja Android Runtime (ART) toimii. Nämä vaatimukset estävät jo nyt suuren määrän ihmisiä osallistumasta hankkeeseen, mutta ongelmaa pahentaa se, että rovo89 on ollut Xposedin pääasiallinen avustaja viimeisen viiden vuoden ajan.

Tästä syystä hänen Xposediin viimeisimmän julkisen julkaisun jälkeen tehtyjen muutosten avoimen lähteen pyynnöt on evätty. Se on hänen aivonsa, ja hän on paras ymmärtämään ja muokkaamaan sitä, joten lisää työvoimaa projektiin niin myöhäisessä vaiheessa. voi yksinkertaisesti viivyttää projektia entisestään.

Lisäksi, jos rovo89 päivittää jatkuvasti lähdettä, hän oli huolissaan että joku ottaisi keskeneräisen koodin rakentaakseen puolitoimivan Xposed Frameworkin ilman yleistä Xposed Installer -ohjelmaa mukana. (Tämä asia tapahtui joka tapauksessa abfor-toteutuksen kanssa, ja siitä aiheutunut eri asennusmenetelmien sotku oikeutti rovo89:n epäröinnin.)

Näin ollen paras asia, jonka voimme tehdä, oli antaa rovo89:lle aikaa työskennellä hänen lemmikkiprojektinsa parissa. Xposed ei ole hänen koko- tai edes osa-aikatyönsä. Se on vain harrastus, jota hän on tehnyt yhteisön hyväksi 5 vuoden ajan. Niinkin monimutkainen projekti kuin Xposed vaatii aikaa työskennellä ja sitten testata – aikaa, jota hänellä ei usein ollut muiden velvoitteidensa vuoksi. Edistyminen oli tehty viimeisen vuoden aikana, aivan kuten rovo89 dokumentoi muutamissa julkisissa päivityksissään, kunnes lopulta sekä Xposed Framework että Xposed Installer ovat valmiita julkaistavaksi.

Mitä rovo89 teki saadakseen Xposedin toimimaan Nougatissa?

Androidin uudet julkaisut tuovat toisinaan muutoksia ART: n toimintaan, mikä saattaa edellyttää Xposedin osien muokkaamista. Android 7.0 Nougat esitteli Just-in-Time-kääntäjän ART: lle, joka auttaa parantamaan esimerkiksi sovellusten ajonaikaista suorituskykyä. Mutta abforcen epävirallinen Xposed Framework yksinkertaisesti poistaa käytöstä monet ART-optimoinnit, jotta menetelmän kiinnitys voi toimia oikein.

ART-optimoinnit Android Nougatissa. Lähde: Google

Sitä vastoin rovo89:n toteutus säilyttää kaikki ART-optimoinnit Android Nougatissa kääntämällä metodin kutsujan uudelleen JIT: n avulla ja pitämällä silti metodikoukut paikoillaan. Tämä tarkoittaa, että voit nauttia Xposed-moduulin eduista suorituskyvystä tinkimättä poistamalla ART-optimoinnit käytöstä väkisin.

Lisätietoja siitä, mitä rovo89 teki saavuttaakseen lopulta luotettavan koukkumenetelmän Xposed for Android Nougatissa, suosittelemme lukemaan alla olevan lausunnon, jonka hän toimitti meille.

Rovo89:n täydellinen lausunto

Xposedin ydin on ilmeisesti sen kyky kiinnittää Java-menetelmiä, eli antaa moduulien suorittaa koodia ennen näitä menetelmiä, niiden jälkeen tai niiden sijaan. Melkein kaikki muut toiminnot perustuvat tähän, joten on tärkeää, että se toimii aina odotetulla tavalla. Yleinen konsepti on ollut sama siitä lähtien, kun keksin Xposedin viisi vuotta sitten, se vaatii menetelmän aloituskohdan muuttamista. Tämä alkaa epäonnistua, kun aloituspistettä ei tarkisteta suorituksen aikana - mikä on itse asiassa tilanne joissakin ART-optimoinneissa.

Yksi esimerkki on, kun aloituspiste on jo tiedossa käännöshetkellä, jolloin soittajat voivat hypätä suoraan tähän osoitteeseen etsimättä sitä. Toinen esimerkki on inlining. Harkitse tätä esimerkkiä:

ART on tarpeeksi älykäs huomaamaan, että double()-menetelmä on hyvin yksinkertainen ja upottaa siksi logiikan suoraan doSomething()-menetelmään, kuten tämä:

Voit silti kytkeä double()-menetelmän, mutta sitä ei enää kutsuta doSomething()-ohjelmasta suorituksen aikana, eikä takaisinsoittoasi. ART on vielä älykkäämpää: Se ymmärtää, että taikuutta on aina 42 ja siksi ehtoa ei voida koskaan täyttää. Joten koko doSomething()-menetelmä on itse asiassa no-op:

Aiemmissa versioissa Xposed poisti nämä optimoinnit kokonaan käytöstä ja pakotti kaiken kääntämisen uudelleen. Siihen liittyi useita huonoja puolia. Ensinnäkin ART-kehittäjät tekevät fantastista työtä maksimoidakseen suorituskyvyn optimoinnit, ja niiden poistaminen käytöstä osittain johtaa välttämättä huonompaan suorituskykyyn (en koskaan mitannut kuinka paljon vaikka). Sitten itse kokoaminen ei ole aina helppoa ja aiheutti minulle paljon päänsärkyä, varsinkin alussa. Lopuksi uudelleen käännetyt tiedostot vievät tilaa /järjestelmässä olevien esikäännettyjen tiedostojen lisäksi.

Myös Nougatin epäviralliset versiot poistavat nämä optimoinnit käytöstä, mutta ne eivät pakota uudelleenkääntämistä (koska portti tehtiin alun perin integroitavaksi ROM: iin). Siksi koukkuja ei ehkä suoriteta joskus.

Virallisen version avulla voit säilyttää optimoidun koodin ja silti sinulla on luotettavat koukut. Miten tuo toimii? No, Xposed tallentaa kaikki soitetut puhelut. Tämä tapahtuu APK: iden käännöksen aikana tai erillisessä esioptimoidun koodin passissa. Nämä lisätiedot eivät vie paljon tilaa, mutta niiden avulla Xposed voi selvittää, missä tietty menetelmä on saatettu sisällyttää. Joten kun menetelmä on koukussa, kaikki sen soittajat deoptimoidaan, eli heidän koodiaan ei enää käytetä. Tämä varmistaa, että koukun takaisinsoitto soitetaan varmasti. Ja jos soittajaa käytetään paljon, se yksinkertaisesti käännetään uudelleen JIT: llä, tällä kertaa tietäen, että menetelmä on koukussa ja siksi jotkin optimoinnit eivät sovellu. Tämä tarkoittaa, että koukkumenetelmien vaikutukset vähenevät minimiin. Jee!

Mene nyt eteenpäin ja kokeile sitä. Varmista, että käytät Xposed Installer 3.1.2:ta, koska konfigurointipolku oli muutettava tukemaan tiedostopohjaista salausta.

Lue lisää

Johtopäätös

Toivomme, että olet yhtä innostunut kuin mekin Xposedin julkaisusta Android 7.X Nougatille. Odotus on ollut pitkä, mutta väistämätön Xposedin monimutkaisuuden vuoksi. Jos olet edelleen ymmälläsi siitä, mikä Xposed on tai miten se toimii, älä huoli. Hyvin harvat ihmiset (mukaan lukien me) todella ymmärtävät, kuinka se toimii. Rovo89:n kaltaiset kehittäjät tekevät parhaansa pakkaaessaan työnsä, joten sinun ei todellakaan tarvitse ymmärtää, mitä konepellin alla tapahtuu.

Pidätkö Xposed Frameworkista? Harkitse lahjoittamista rovo89:lle hänen tekemänsä mahtavan työn vuoksi. Jos uskot, että sinulla on tarvittavat panokset projektiin, tutustu rovo89:n GitHub-sivuun alla.

Lahjoita rovo89:lle

Osallistu Xposediin

Etsitkö Xposed-moduuleja? Tutustu Xposed Framework Module -alafoorumiimme tai lataa XDA Labs -sovellus ja selaa Xposed-moduulien kokoelmaamme.

Xposed-moduulien foorumi

Lataa XDA Labs

Android Oreo Progress

Jos mietit, miten Xposed Android Oreolle on edistytty seuraavasti:

Olen jo aloittanut työskentelyn Android 8.0:lla. Niitä on muutama uusia kieliominaisuuksia joita minun on katsottava, mutta yleisen konseptin pitäisi silti toimia. Se sisältää kaiken soittajien käännetyn koodin mitätöimisen, kun menetelmä on koukussa, mikä vei ylivoimaisesti eniten aikaa, kun työskentelin Nougatin parissa. Olen siis todella varma, että olen paljon nopeampi tällä kertaa. Android 8.1ei pitäisi olla paljon erilainen, joten en odota paljon lisätyötä sen eteen.