Xposed Framework for Nougat & abforce -alimoduuli selitetty

Tässä artikkelissa tutkimme eroja rovo89:n tulevan Xposed for Nougat -julkaisun ja nykyisen Nougatille saatavilla olevan toteutuksen välillä.

Xposed-kehys oli – ja on edelleen – tärkeä tapa mukauttaa Android-laitettasi. Se on yhteensopiva lähes kaikkien laitteiden kanssa. Sen avulla voit helposti asentaa moduuleja, joiden avulla voit muokata käytännössä kaikkia yksityiskohtia.

Haluatko saada kaikki mukautetun ROM-levyn ominaisuudet ilman, että sinun tarvitsee flash-muistia?GravityBox taiXTouchwiz tekee sen. Haluatko säätää tiettyjä asetuksia sovelluskohtaisesti, kuten muuttaa tietyn sovelluksen DPI: tä?Sovellusasetukset oletko suojannut. Toivon, että sovelluksen kehittäjät ajattelivat lisätä tietyn ominaisuuden, kuten Googlen antavan sinullemuokata Hangouts-palvelua tai Facebookin avullalataa haluamasi Instagram-viestit? No, sinun ei tarvitse, koska Xposed antaa kehittäjille mahdollisuuden muokata melkein mitä tahansa Haluat, olipa se sitten järjestelmän laajuinen ominaisuus, joka vaatisi mukautetun ROM-muistin, tai säätöä tietylle sovellus.

Xposed-kehyksellä on kehittäjille suuri etu, joka on kehityksen helppous (verrattuna AOSP: n kääntämiseen ROM-muokkausta varten tai Smali-koodin muokkaamiseen). Se tuo myös käyttäjille valtavan edun: sopivuus, koska se ei enää pakota heitä etsimään ja päivittämään ROM-muistia, joka tarjoaa jokaisen etsimän ominaisuuden (sen sijaan ne voivat sekoittaa ja sovittaa itsenäisiä moduuleja) tavoitetasapainonsa lisäksi vakauden ja esitys. Se myös tekee sovellusten säätämistä paljon helpompaa, koska sinun ei tarvitse käsitellä erilaisia ​​​​allekirjoituksia, mikä joutuisi käyttäjien poistamaan alkuperäisen versiota tai hypätä tiettyjen kehien läpi, kun sovellus tarkistaa allekirjoituksensa (jotain muokattuja YouTube-asiakkaita käsittelee, esim. ilmentymä).

Ainoa ongelma? Sen luonteesta ja vapaa-ajan määrästä johtuen Xposedin kehittäjä (oma Senior Recognized Developer,rovo89) on usein jäljessä Android-julkaisuista.Kesti noin neljä kuukautta, ennen kuin päivitys tuli tukemaan Lollipopia, ja kestää noin vuoden päästä Nougatiin. Tämä ei ole niin paha kuin miltä saattaa näyttää, jos ajattelee kuinka monta Android-käyttäjää todella on Nougatissa (noin 13,5 %, mutta muista kuitenkin, että Android-harrastajat, Xposedin kohdeyleisö, ovat myös todennäköisemmin Nougatissa). Voi kuitenkin silti olla melko ärsyttävää, kun et voi käyttää suosikki Xposed-moduulejasi ja sinulla on uusin ja paras Android-versio samanaikaisesti.

Kun Xposed-kehyksen lähdekoodi on saatavilla (ainakin vakaille, julkaistuille versioille), kehittäjäabforce päätti likaa kätensä ja katsoa, ​​voisiko hän siirtää joitain rovo89:n muunnoksia Nougatiin. Valitessaan erilaisen ja yksinkertaisemman lähestymistavan abforce mukautti olennaisesti sitä osaa Xposedista, joka itse asiassa oli tekee taikuuden kerran asennettuna ja mahdollisti sen sisällyttämisen, kun käännät omaa ROM-levyäsi (sen jälkeen, muita ratkaisuja on tullut esille). Tämä lähestymistapa on epäilemättä hyvin erilainen koska se jättää huomioimatta yhden Xposedin keskeisistä eduista, joka on kaikkien saatavilla helposti. Kaikki edistys on kuitenkin tervetullutta, ja useat päämiehet, jotka käsittelevät tehtävää, voivat olla hyödyllisiä ja tarjota uusia oivalluksia. Pääongelma, sellaisena kuin me sen näemme, on tätä kehitystä ympäröivä väärä tieto (jotakin muut "kehittäjät" ja jotkut blogit), sekä jotkut yhteisön reaktiot. Toivottavasti tämä artikkeli selventää koko kuvaa.


Ensinnäkin, jotta ymmärrämme työn, joka meni - ja menee edelleen - viralliseen Xposed-kehykseen sekä abforcen versioon, meidän on tarkasteltava, kuinka kehys toimii. Vaikka kehys itsessään on vain osa hanketta, tarkoitamme yleensä sekä kehystä että asentajaa koska kehys menettää monet eduistaan ​​ilman yleisasennusohjelmaa, johon myös menee paljon työtä.

Xposedin teho tulee yksinkertaisesta konseptista: mikä tahansa menetelmä voidaan "kiinnittää" (menetelmät ovat pieniä osat, jotka muodostavat minkä tahansa ohjelman), jotta Xposed-moduulin koodi suoritetaan ennen, jälkeen tai sen sijaan se. Otetaan yksinkertainen esimerkki: oletetaan, että Instagram käyttää menetelmää nimeltä "showMenuOptions", kun napsautat valikkopainiketta, ja tämä menetelmä käsittelee "Raportti"- ja "Jaa"-painikkeiden näyttämistä. Luomalla Xposed-moduulin voit muokata tätä menetelmää lisäämällä lisäpainikkeen kuvan lataamista varten esimerkiksi sen jakamisen sijaan. Muutokset voivat vaihdella yksinkertaisista muokkauksista (esim. Play Kaupan muutosloki) suuriin kunnostuksiin (esim GravityBox, jonka tavoitteena on tarjota kaikki mukautetun ROMin ominaisuudet)!

Tämä tekee Xposedista tehokkaan, mutta se on vain osa yhtälöä. Muut osat ovat monipuolisuutta - tai itse asiassa Xposedin käyttöä melkein missä tahansa laitteessa (tuetun Android-version kanssa) ja helppokäyttöisyyttä. Käyttäjien tarvitsee vain tarttua asennusohjelmaan, joka tekee taikansa ja korjaa heidän järjestelmänsä dynaamisesti integroidakseen Xposedin. Moduulin käyttöönottoa varten sinun tarvitsee vain asentaa se, ottaa se käyttöön ja käynnistää uudelleen. Ei vaadi meteliä, mukautettua ROM-muistia ei tarvitse flashata (varsinkin kun mukautetut ROM-levyt eivät aina ole varteenotettava vaihtoehto), ei tarvitse poistaa APK: ta asentaaksesi toisen, joka on allekirjoitettu eri allekirjoituksella. Tarvitset vain pääkäyttäjän (sinulla voi ehdottomasti olla mukautettu ROM, ja se on järkevää usein; mutta vaikka Xposed voi tarjota suurimman osan toiminnoista, joita mukautettu ROM voi tarjota, se menee myös pidemmälle).

Tämän yksinkertaisuuden takana on kuitenkin paljon työtä:

  1. Moduulikehittäjille tarjotun API: n on oltava vakaa ja sen toiminta on taattu. Xposed-kehys ei voi epäonnistua satunnaisesti tietyillä ROM- ja/tai koukkuyhdistelmillä (poikkeustapauksia lukuun ottamatta). Toisin sanoen, jos käyttäjällä on ongelma, sen pitäisi olla joko käyttäjän vika (ei asentaa/ottaa käyttöön jotain oikein) tai moduulin kehittäjän vika (virheiden takia moduuli). Mutta pitäisi olla lähes varmaa, että kehys itsessään toimii tarkoitetulla tavalla, eikä se ole niiden virheiden lähde, jotka aiheuttaisivat käyttäjien turhautumista ja kehittäjien hämmennystä.
  2. Käyttäjille kehyksen on oltava helppo asentaa laitteeseen ja ROM-muistiin, riippumatta siitä, onko heillä Samsung, jossa on uusin TouchWiz-versio, tai Nexus, jossa on LineageOS asennettuna. Xposed-asennusohjelma hoitaa kaiken kulissien takana. Tämän eteen on tehtävä paljon työtä asentajan ja kehyksen testaamiseksi useissa laitteissa ja ROM-yhdistelmissä. Virheitä löytyy usein OEM-valmistajien erilaisista toteutuksista, ja ne on korjattava kaikkien käyttäjien luotettavuuden varmistamiseksi.
  3. Suuret Android-versiot voivat joskus tuoda suuria muutoksia, mikä edellyttää kehyksen arkkitehtuurin osien uudelleenarviointia, jotta ne mukautuvat näihin muutoksiin. Joskus uusia mahdollisuuksia tulee esiin myös uudemmissa versioissa, mikä vaatii lisäaikaa paremman tuotteen saamiseen. Kun ART esiteltiin ensimmäisen kerran, esimerkiksi Xposed poisti käytöstä tietyt optimoinnit, jotta kytkentä toimisi oikein. Nougatin tapauksessajuuri-in-time (JIT) -kääntäjä tuo tilaisuudensäilytä ne optimoinnit.

Suuri osa yllä olevasta työstä menee pieniin yksityiskohtiin, joissa suurin osa viitekehyksestä toimii tarkoitetulla tavalla, mutta epäjohdonmukaisuudet ja pienet ongelmat tekisivät siitä käyttäjille uhkapelin ja tuki- ja kehityspainajaisen moduulille kehittäjät. Julkaistu tuote kuitenkin pyrkii olemaan kaikkien käytettävissä ja ilman yllätyksiä. Tietysti on joitain poikkeuksia, sillä joidenkin OEM-valmistajien muutoksiin sopeutuminen vaatii enemmän vaivaa, mutta ne ovat vähäisiä, ja suurin osa käyttäjistä (ja kehittäjistä) saa nauttia vakaasta ja luotettavasta Xposedista kokea. Kaikki havaitut poikkeukset dokumentoidaanselkeät vastuuvapauslausekkeet jotta kukaan ei yllättyisi.

Yllä oleva huomioon ottaen rovo89:n visiona Xposedista on olla vakaa ratkaisu, joka tarjoaa luotettavan ja helppokäyttöisen sopimuksen käyttäjille ja kehittäjille. Hänen filosofiansa, vaikka oletkin eri mieltä, on yksinkertainen ja ymmärrettävä: tuotteen tulee olla vapautetaan, kun se on valmis käytettäväksi tarkoitetulla tavalla, koska sen vapauttaminen ennen aiheuttaa enemmän ongelmia kuin etuja.


abforcen Xposed ART -alimoduuli Nougatille

Emme halua kutsua abforcen työtä "portiksi" tai "epäviralliseksi Xposediksi", koska se on epätarkka ja harhaanjohtava. Kuten olemme nähneet, Xposedissa on kaksi pääkomponenttia:

  1. Itse Xposed-kehyksen ydin, joka käsittelee koukkumenetelmien taikuutta.
  2. Xposed-asennusohjelma, joka varmistaa, että kehys on helppo asentaa kaikkiin laitteisiin oikein.

Mitä abforce teki, portti rovo89:n Marshmallow-koodin ensimmäisessä osassa (vain Xposed-kehys) Nougatiin tavalla, joka vaatisi muutosten tekemisen mukautetun ROMin kääntämisen aikana. Lisäksi monet pienet (mutta tärkeät) kehyksen osat eivät ole täysin mukautettuja Nougatiin. Sellaisenaan käyttäytyminen voi olla epäjohdonmukaista ja vaikka se enimmäkseen toimii (tosin eivartenkaikille), se ei ole luotettava. Moduulien kehittäjille ja käyttäjille luottaminen epätäydelliseen ja epäjohdonmukaiseen toteutukseen olisi vain tarjota huono kokemus kaikille osapuolille, kanssa jotkin moduulit eivät toimi ollenkaan tai eivät saa laitteen käynnistymään. Vaikka monet käyttäjät voivat olla kunnossa mieluummin jotain kuin ei mitään, kehittäjien näkemys on edelleen täysin ymmärrettävä (varsinkin jos pitää mielessä, että vastuuvapauslausekkeet eivät estä vääriä tukikysymyksiä ja vinkumista).

(Yllä olevien kahden pääkohdan lisäksi odotamme myös lisämuutoksia lopulliseen, viralliseen Xposed-kehykseen, jotta voimme hyödyntää Nougatissa tehtyjä muutoksia.)

On huomattava, että abfor teki erinomaista työtä, kun useimmat olivat tyytyväisiä yksinkertaisesti puhumiseen, mutta hänen työnsä on kaukana täydellisestä Xposed-kokemuksesta, eikä mikään kehittäjä tai blogi väitä muuta (eikä todellakaan abforce; jälleen kerran, meillä on vain kunnioitus kaikkia todellisia kehittäjiä kohtaan, jotka tekevät todellista työtä ja vaivaa tämän eteen). Itse asiassa, kuten käsittelemme hieman, osa yhteisön reaktioista (olipa se sitten käyttäjiä tai "kehittäjiä") on ainoa hapan osa tässä kehitysketjussa.


Katkaistaan ​​takaa-ajo ja mennään suoraan asiaan: missä tahansa yhteisössä on huonoja elementtejä ja puolia. Kun yhteisö on yhtä suuri kuin Android-harrastajat, huonot elementit voivat tuntua valtavalta osalta, kun ne ovat vain pieni osa (suurta, mutta suhteellisen vähäistä). Ilman sitä sokeripinnoitetta, suuri osa yhteisön reaktioista Xposed for Nougatin kehittämiseen on kuitenkin ollut erittäin lapsellista, piittaamatonta tai vastuutonta.

Ensimmäinen suuri ongelma on ollut monien alentava asenne "Xposedin kuolemaan", koska sen julkaiseminen Nougatille kestää liian kauan. Tämä huolimatta rovo89:stä päivityksetjavakuutuksia, ja huolimatta melkein täsmällisestä skenaariosta, joka tapahtui Lollipopissa, kun ART: n alkuperäinen versio esiteltiin. On hienoa lopettaa Xposedin käyttö, mutta sillä ei saa loukata kenenkään kykyjä tai hyökätä toisiin sen vuoksi, että heillä on erilainen filosofia tai se, että vältät tarpeitasi välittömästi. Tämä pätee vielä enemmän täysin ilmaiseen projektiin, jossa kehittäjä on ilmaissut kehitysmetodologiansa ja syynsä siihen.

Toinen ongelma yhteisön vastauksessa on ollut abforcen työn luonteen väärinymmärtäminen, ja monet pitävät sitä uutena Xposedina tai mainostavat sitä Nougatin porttina. Suuri ongelma tässä on ollut se, että "kehittäjät" ryntäsivät tarjoamaan flash-versioita ymmärtämättä (tai välittämättä) haittoja, koska vastuuvapauslausekkeita ei ollut tarjotaan ollenkaan joissakin säikeissä, ja jotkut jopa menevät niin pitkälle, että antavat tunnustusta abforcelle eikä rovo89:lle (joka on suurimman osan Xposedin työstä takana) ja muut avustajat.

Lopuksi katsomme, että meidän pitäisi tuoda rovo89:n kehitysfilosofia uudelleen esille. Monet äänekkäät käyttäjät väittävät, että uusimpien muutosten tekeminen avoimen lähdekoodin avulla olisi hyödyllistä. Vaikka tämä kuulostaa teoriassa hyvältä, se on sitäei käytännössä niin helppoa varsinkin jos otamme huomioon rovo89:n selityksen:

[...] Uskon, että pelkkä nykytilan poistaminen ei auttaisi hanketta. Voisimme nähdä "jotkin" julkaisun todella nopeasti ihmisten toimesta, jotka kääntävät koodin, katso, että se näyttää siltä toimii hyvin ja julkaise se "heidän porttinaan" huolimatta ongelmista ja tekemisistä, joista he eivät olisi tietoisia /. Kutsukaa minua itsekkääksi, mutta en haluaisi nähdä noin puolivalmiista julkaisua.[Lähde]

Mikä on itse asiassa osoittautunut melko hyväksi ennusteeksi nykytilanteesta useiden "kehittäjien" hakeessa abforcen muutokset ja flash-muistin tarjoaminen, jossa on vähän tai ei lainkaan varoituksia, epätäydellisiä krediittejä, kaikki samalla kun pyydetään lahjoituksia.


Toivomme, että nämä selitykset selvittivät osan epäilyistäsi ja käsittelivät mahdollisia väärinkäsityksiäsi. Xposed on ollut hämmästyttävä projekti, joka on saavuttanut valtavan osan innostuneesta ja flashaholic-yhteisöstämme, ja Xposed for Nougat pitäisi olla toinen jättimäinen virstanpylväs täynnä mahdollisuuksia. Moduuleilla, kuten GravityBox Rovo89:n valmis projekti, joka tarjoaa jo Nougat-tuen, palaa moniin vaihtoehtoihin.


Oletko innoissasi Xposedista Nougat ROM -levylläsi? Kerro meille kommenteissa!