Xposed For Lollipop nyt virallisesti saatavilla

Xposed Framework ei tarvitse esittelyä XDA-lukijoihin. Kun kysytään yhteisömme asioista vihaa eniten Lollipopissa, yksittäinen eniten ääniä saanut kommentti keskustelussa oli, että se rikkoi tuen Xposedille. Itse asiassa monet foorumin jäsenet ovat jopa kieltäytyneet päivittämästä Lollipopiin nimenomaan tästä syystä. Mutta kaikki muuttuu nyt, kun odotettu Xposed Framework on vihdoin saapunut Android Lollipopille.

Jos Xposed ei ole jo tuttu, se on yksinkertaisesti sanottuna jumalan lahja modausyhteisölle. Xposed ei vaadi ROM-levyjen vilkkumista, mutta tuo mukanaan runsaasti mukautuksia ja parannuksia, joita käyttäjät voivat asentaa kuten sovelluksia juurtuneisiin laitteisiin. Se on uskomattoman yksinkertainen käyttää ja sillä on rajoitettu riski. Ja nyt kaikki Lollipopin Android-harrastajat voivat nauttia tämän fantastisen projektin eduista laitteillaan. Nappaa lataus ja aloita muokkaaminen!

rovo89 oli myös ystävällinen antamaan meille Q&A viimeisimpään projektiin. Löydät vastaukset kaikkiin projektiin liittyviin kysymyksiisi alta.

Miksi se kesti niin kauan? ART on julkaistu yli vuosi sitten!

Ensinnäkin - monet ihmiset pyytävät jatkuvasti ART-tukea. Lollipopissa on paljon enemmän muutoksia, kuten vielä tiukemmat SELinux-käytännöt, 64-bittiset ROM-levyt ja arkkitehtuurimuutokset, joita voit odottaa suurelta julkaisulta. Ja tietysti itse ART: ta kehitetään jatkuvasti; ART for KitKatin ja ART for Lollipopin välillä on suuria eroja.

Joten yksi syy on suuri monimutkaisuus, joka vaati monia, monia tunteja työtä tutkimukseen, kehittämiseen ja testaukseen.

Toinen syy on se, että elämässäni on muitakin asioita kuin Xposed, joten on ollut viikkoja tai jopa kuukausia, jolloin en ole edes katsonut koodia ollenkaan.

Pitääkö kaikki moduulit kirjoittaa uudelleen?

Ei, Xposed API on melko muuttumaton. Xposed tiivistää kaikki yksityiskohdat, joten moduulien ei tarvitse välittää siitä, ovatko ne käynnissä Dalvikilla vai ART: lla. Monet moduulit toimivat itse asiassa ilman muutoksia, etenkin ne, jotka muuttavat käyttäjien sovellusten toimintaa. Järjestelmän toimintaan kohdistavat moduulit on ehkä mukautettava uuteen Android-kehyskoodiin, mikä ei johdu ART: sta, vaan yksinkertaisesti arkkitehtuuri- ja koodimuutoksista, joita tapahtuu kahden Androidin välillä julkaisut. Merkittävin on, että järjestelmäpalveluiden koodi on siirretty erilliseen tiedostoon. Useimmissa vaikutuksen alaisissa moduuleissa tämä voidaan ratkaista pienellä refaktoroinnilla (siirtämällä koodia toiseen paikkaan).

Toimiiko se oikeasti?

Joo! Ainakin minulla se toimii hyvin päivittäisessä laitteessani (Nexus 5 CM12:ssa) ja myös Nexus 9:ssä (maksaa XDA - kiitos!). Puhelin on normaalisti vakaa ja sovellukset toimivat hyvin. Ja ilmeisesti myös moduulit ja niiden koukut/resurssien vaihdot toimivat hyvin, muuten ei olisi mitään järkeä julkaista mitään.

Mutta miksi se sitten on alfa-versio?

Koska edellisen vakaan julkaisun jälkeen on tapahtunut valtavia muutoksia, jotka on testattava ihmisten, jotka osaavat käyttää palautusta, paeta käynnistyssilmukoita ja raportoida virheistä oikein. Suosittelen vahvasti aloittelijoita odottamaan, kunnes Xposed on testattu riittävän kokeneiden ihmisten toimesta.

On myös joitain reunatapauksia, joita ei ole vielä testattu, kuten JNI (native) -menetelmät ja -menetelmät, joita suoritetaan niiden kytkemisen yhteydessä.

Haluan asentaa sen. Nyt! Mitä minun pitää tehdä?

Varmista, että olet lukenut yllä olevat sanani ja että olet perehtynyt puhelimesi sisäisiin ominaisuuksiin. Ilmeisesti sinun on oltava Lollipop-ROM-muistissa ja oltava hyvä varmuuskopio tiedoistasi. Toistaiseksi julkaisen vain ARMv7-version. 64-bittinen on monimutkaisempi, joten kokeillaan ensin "helppoa" varianttia.

Toistaiseksi asennus on suoritettava manuaalisesti mukautetussa palautuksessa. Zip-tiedoston vilkkuminen asentaa:

  • app_process32_xposed ja jotkin symbolilinkit
  • libexposed_art.so
  • libart.so ja jotkin siihen liittyvät binaarit + kirjastot (perustuu versioon 5.0.2, paranneltu tuella koukkuun jne.)
  • XposedBridge.jar (tallennettu nyt kansioon /system/framework)

Olemassa olevien tiedostojen varmuuskopiot luodaan automaattisesti, ja ne voidaan palauttaa myöhemmin.

Se ei toimi/en pidä siitä! Kuinka voin poistaa sen?

Helpoin tapa on palauttaa varmuuskopio tai flash-järjestelmäosio. Zip-tiedosto asennuksen poistamista varten ei ole vielä luotu.

Miksi vaihdat ART-tiedostoja laitteessani? Se on invasiivisempaa kuin Dalvikissa, aiheuttaa merkittäviä suorituskykyongelmia ja on epävakaa!

Olen kirjoittanut muutamia syitä GitHub. Kyllä, se on invasiivisempi, joten olen yrittänyt välttää sitä pitkään, mutta teknisestä ja tukilähtöisestä näkökulmasta se on mielestäni parempi vaihtoehto.

Vähemmän suorituskykyä kuin alkuperäinen ART? Todennäköisesti, koska minun piti poistaa joitain optimointeja käytöstä, jotta tietynlaiset koukut olisivat mahdollisia. Tämä vaikuttaa kuitenkin vain murto-osaan kaikista menetelmistä, ja niissäkään suorituskyvyn heikkeneminen ei todellakaan ole merkittävää tai havaittavaa, jos edes mitattavissa. ART tekee edelleen tuhansia muita optimointeja, ja yritin poistaa käytöstä mahdollisimman vähän ja tarjota mahdollisimman paljon joustavuutta.

Vakaus on hyvä, kuten edellä mainittiin. Verrattuna lähestymistapaan, jota käytin Dalvikille (muokkamalla ajonaikaisen sisäisiä tietorakenteita app_process), olen jopa melko varma, että kirjastojen korvaaminen kokonaan on paljon luotettavampaa tapa. Voisin integroida muutokset olemassa olevaan koodiin puhtaasti ja käyttää niihin liittyviä toimintoja uudelleen, kun taas moniin hakkeroihin ja oletuksiin tarvittaisiin muita tapoja.

Teetkö vihdoin lähdekoodin julkiseksi?

Toki löydät sen GitHubista hyvin pian alfa-version julkaisun jälkeen, toistaiseksi erillisessä haarassa.

Tarkoittaako tämä, että vanhempaa Android-versiota ei enää tueta?

Ei! Uusi koodi käännetään kaikkiin Androidin 4.x-versioihin, ja se on vain testattava ennen yhtenäistä julkaisua. Mutta ensin minun on varmistettava, että se toimii hyvin Lollipopille. ART-tuki voitaisiin mahdollisesti siirtää takaisin KitKatiin, mutta se on vähemmän tärkeä.

Kuinka voin kiittää sinua työstäsi?

Monet ihmiset ovat pyytäneet tapoja lahjoittaa muutama taala, joten olen perustanut a lahjoitus sivu nyt.

Kuinka paljon minun on lahjoitettava, jotta voit lisätä ominaisuuden X tai moduulin, joka tekee Y: n?

Se ei ole lahjoittamista, se on maksamista jollekin tulevan työn odotuksessa. En ole kiinnostunut freelance-työstä.