„Xposed For Lollipop“ dabar oficialiai prieinama

Xposed Framework nereikia pristatyti XDA skaitytojams. Paklaustas apie mūsų bendruomenės dalykus labiausiai nekenčia Lollipop, vienintelis daugiausiai balsų surinkęs komentaras diskusijoje buvo tai, kad jis nutraukė Xposed palaikymą. Tiesą sakant, daugelis forumo narių netgi atsisakė atnaujinti „Lollipop“ specialiai dėl šios priežasties. Tačiau dabar viskas pasikeičia, nes labai lauktas „Xposed Framework“ pagaliau pasirodė „Android Lollipop“.

Jei dar nesate susipažinę su Xposed, paprasčiausiai tariant, tai yra Dievo dovana modifikavimo bendruomenei. „Xposed“ nereikalauja jokių ROM mirksinčių, tačiau suteikia daugybę tinkinimo ir patobulinimų, kuriuos vartotojai gali įdiegti kaip programas įsišaknijusiuose įrenginiuose. Tai neįtikėtinai paprasta naudoti ir su ribota rizika. Ir dabar visi „Android“ entuziastai, naudojantys „Lollipop“, gali mėgautis šio fantastiško projekto privalumais savo įrenginiuose. Atsisiųskite ir pradėkite modifikavimą!

rovo89 taip pat maloniai pateikė mums naujausio projekto klausimus ir atsakymus. Atsakymus į visus klausimus apie projektą rasite žemiau.

Kodėl taip ilgai užtruko? ART buvo išleistas daugiau nei prieš metus!

Visų pirma – daugelis žmonių nuolat prašo paramos ART. „Lollipop“ turi daug daugiau pakeitimų, pavyzdžiui, dar griežtesnė „SELinux“ politika, 64 bitų ROM ir architektūros pakeitimai, kurių galėtumėte tikėtis iš didelio leidimo. Ir, žinoma, pats ART yra nuolat tobulinamas; yra didelių skirtumų tarp ART for KitKat ir ART for Lollipop.

Taigi viena iš priežasčių yra didelis sudėtingumas, reikalaujantis daug valandų darbo tyrimams, plėtrai ir bandymams.

Kita priežastis yra ta, kad mano gyvenime yra kitų dalykų nei „Xposed“, todėl buvo savaičių ar net mėnesių, kai beveik net nežiūrėjau į kodą.

Ar reikia perrašyti visus modulius?

Ne, „Xposed“ API beveik nepasikeitė. „Xposed“ abstrahuoja visas detales, todėl moduliams nereikia rūpintis, ar jie veikia „Dalvik“, ar „ART“. Daugelis modulių iš tikrųjų veiks be jokių pakeitimų, ypač tų, kurie keičia vartotojo programų elgesį. Modulius, taikomus sistemos veikimui, gali reikėti pritaikyti prie naujojo „Android“ sistemos kodo, kuris Tai sukelia ne ART, o tiesiog architektūra ir kodo pakeitimai, vykstantys tarp bet kurių dviejų „Android“. išleidžia. Svarbiausia, kad sistemos paslaugų kodas buvo perkeltas į atskirą failą. Daugumos paveiktų modulių atveju tai gali būti išspręsta šiek tiek pakeitus (perkeliant kodą į kitą vietą).

Ar tai iš tikrųjų veikia?

Taip! Bent jau man jis puikiai veikia kasdieniame įrenginyje (Nexus 5 su CM12) ir „Nexus 9“ (sumoka XDA – ačiū!). Telefonas yra stabilus, kaip įprasta, o programos veikia gerai. Ir aišku, moduliai ir jų kabliukai/resursų keitimai taip pat veikia gerai, kitaip nebūtų prasmės ką nors leisti.

Bet kodėl tada tai yra alfa versija?

Kadangi po paskutinio stabilaus leidimo įvyko didžiulių pokyčių, kuriuos turi išbandyti žmonės, kurie žino, kaip naudoti atkūrimą, pabėgti nuo įkrovos kilpų ir tinkamai pranešti apie klaidas. Naujokams primygtinai patariu palaukti, kol Xposed bus išbandytas pakankamai patyrusių žmonių.

Taip pat yra keletas briaunų atvejų, kurie dar nebuvo išbandyti, pvz., JNI (vietiniai) metodai ir metodai, kurie vykdomi jų prijungimo metu.

Noriu jį įdiegti. Dabar! Ką aš turiu padaryti?

Įsitikinkite, kad perskaitėte mano žodžius aukščiau ir esate susipažinę su savo telefono vidinėmis savybėmis. Akivaizdu, kad turite turėti „Lollipop“ ROM ir turėti gerą duomenų atsarginę kopiją. Kol kas skelbsiu tik ARMv7 versiją. 64 bitų versija yra sudėtingesnė, todėl pirmiausia išbandykite „lengvąjį“ variantą.

Šiuo metu įdiegimas turi būti atliekamas rankiniu būdu naudojant pasirinktinį atkūrimą. Mirksintis zip failas bus įdiegtas:

  • app_process32_xposed ir kai kurios simbolių nuorodos
  • libexposed_art.so
  • libart.so ir kai kurie susiję dvejetainiai failai + bibliotekos (pagrįstos 5.0.2, patobulintos su palaikymu ir pan.)
  • XposedBridge.jar (dabar saugoma /system/framework)

Esamų failų atsarginės kopijos bus sukurtos automatiškai ir vėliau jas bus galima atkurti.

Tai neveikia / man nepatinka! Kaip aš galiu jį pašalinti?

Lengviausias būdas yra atkurti atsarginę kopiją arba „flash“ sistemos skaidinį. Pašalinimo ZIP failas dar turi būti sukurtas.

Kodėl mano įrenginyje pakeičiate ART failus? Tai labiau invazinė nei Dalvik, sukels didelių našumo problemų ir bus nestabili!

Aš parašiau keletą priežasčių GitHub. Taip, tai labiau invazinė, todėl ilgą laiką stengiausi to vengti, bet techniniu ir į pagalbą orientuotu požiūriu manau, kad tai geresnis pasirinkimas.

Mažiau našumo nei originalus ART? Tikriausiai, nes turėjau išjungti kai kuriuos optimizavimus, kad būtų galima naudoti tam tikrus kabliukus. Tačiau tai turi įtakos tik daliai visų metodų ir net ir tiems našumo praradimas tikrai nėra reikšmingas ar pastebimas, jei net išmatuojamas. Vis dar yra tūkstančiai kitų optimizavimų, kuriuos atlieka ART, ir aš stengiausi išjungti kuo mažiau, suteikdamas kuo daugiau lankstumo.

Stabilumas yra geras, kaip minėta aukščiau. Palyginti su metodu, kurį naudoju „Dalvik“ (keisti vykdymo laiko vidines duomenų struktūras iš app_process), net esu tikras, kad visiškai pakeisti bibliotekas yra daug patikimiau būdu. Galėčiau švariai integruoti savo pakeitimus į esamą kodą ir pakartotinai naudoti susijusias funkcijas, o kitais būdais prireiktų daug įsilaužimų ir prielaidų.

Ar pagaliau paviešinsite šaltinio kodą?

Žinoma, „GitHub“ rasite jį labai greitai po alfa versijos išleidimo, kol kas atskirame skyriuje.

Ar tai reiškia, kad senesnė „Android“ versija dabar nebepalaikoma?

Ne! Naujasis kodas kompiliuojamas visose 4.x „Android“ versijose ir jį tereikia išbandyti prieš išleidžiant vieningą leidimą. Bet pirmiausia turiu įsitikinti, kad jis puikiai veikia „Lollipop“. Galbūt ART palaikymas gali būti grąžintas į „KitKat“, tačiau tai yra mažiau prioritetas.

Kaip galėčiau padėkoti už jūsų darbą?

Daugelis žmonių prašė, kaip paaukoti keletą dolerių, todėl įkūriau a donorystė puslapis dabar.

Kiek man reikia paaukoti, kad pridėtumėte funkciją X arba modulį, kuris veiktų Y?

Tai ne dovanojimas, o mokėjimas kažkam tikintis būsimo darbo. Manęs neįdomūs laisvai samdomi darbuotojai.