Xposed For Lollipop je zdaj uradno na voljo

Xposed Framework ne potrebuje predstavitve bralnikov XDA. Na vprašanje o stvareh naše skupnosti najbolj sovraži Lollipop, je bil edini komentar z največ glasovi v razpravi, da je prekinil podporo za Xposed. Pravzaprav je veliko članov foruma celo zavrnilo posodobitev na Lollipop posebej iz tega razloga. Toda to se zdaj spreminja, saj je težko pričakovano ogrodje Xposed Framework končno prispelo za Android Lollipop.

Če še niste seznanjeni z Xposed, preprosto povedano, je božji dar za modding skupnost. Xposed ne zahteva utripanja nobenih ROM-ov, vendar prinaša ogromno prilagoditev in popravkov, ki jih lahko uporabniki namestijo kot aplikacije na rootane naprave. Je neverjetno preprost za uporabo in z omejenim tveganjem. In zdaj lahko vsi navdušenci nad Androidom nad Lollipopom uživajo v prednostih tega fantastičnega projekta na svojih napravah. Prenesite svoj prenos in se lotite spreminjanja!

rovo89 je bil tudi tako prijazen, da nam je posredoval vprašanja in odgovore za najnovejši projekt. Odgovore na vsa vaša vprašanja o projektu najdete spodaj.

Zakaj je trajalo tako dolgo? ART je izšel pred več kot enim letom!

Prvič, veliko ljudi kar naprej sprašuje po podpori ART. Lollipop ima veliko več sprememb od tega, kot so še strožji pravilniki SELinux, 64-bitni ROM-i in spremembe arhitekture, ki bi jih pričakovali od večje izdaje. In seveda se sama UMETNOST nenehno izboljšuje; med ART for KitKat in ART for Lollipop so velike razlike.

Eden od razlogov je torej velika kompleksnost, ki je zahtevala veliko, veliko ur dela za raziskave, razvoj in testiranje.

Drugi razlog je, da so v mojem življenju še druge stvari kot Xposed, zato so bili tedni ali celo meseci, v katerih kode sploh nisem pogledal.

Ali moramo prepisati vse module?

Ne, Xposed API je skoraj nespremenjen. Xposed abstrahira vse podrobnosti, zato modulom ni treba skrbeti, ali se izvajajo na Dalviku ali ART. Številni moduli bodo dejansko delovali brez sprememb, zlasti tisti, ki spreminjajo vedenje uporabniških aplikacij. Module, ki ciljajo na vedenje sistema, bo morda treba prilagoditi novi okvirni kodi Android, kar ni posledica ART, ampak preprosto zaradi sprememb arhitekture in kode, ki se zgodijo med katerima koli Androidom izdaje. Najpomembnejša je ta, da je bila koda za sistemske storitve premaknjena v ločeno datoteko. Pri večini prizadetih modulov je to mogoče rešiti z majhnim refaktoriranjem (premikom kode na drugo mesto).

Ali dejansko deluje?

ja! Vsaj zame deluje dobro na moji dnevni napravi (Nexus 5 na CM12) in tudi na mojem Nexusu 9 (plača XDA – hvala!). Telefon je stabilen kot običajno in aplikacije delujejo dobro. In očitno tudi moduli in njihove kljuke/zamenjave virov dobro delujejo, sicer ne bi imelo smisla nekaj izdajati.

Toda zakaj je potem različica alfa?

Ker je od zadnje stabilne izdaje prišlo do ogromnih sprememb, ki jih morajo preizkusiti ljudje, ki vedo, kako uporabljati obnovitev, se izogniti zagonskim zankam in pravilno prijaviti napake. Novincem močno svetujem, naj počakajo, da Xposed preizkusi dovolj izkušenih ljudi.

Obstaja tudi nekaj robnih primerov, ki še niso bili preizkušeni, kot je povezovanje JNI (domačih) metod in metod, ki se izvajajo v času njihovega povezovanja.

Želim ga namestiti. Zdaj! Kaj moram narediti?

Prepričajte se, da ste prebrali moje zgornje besede in ste seznanjeni z notranjostjo vašega telefona. Očitno morate imeti Lollipop ROM in imeti dobro varnostno kopijo svojih podatkov. Zaenkrat bom objavil samo različico ARMv7. 64-bitni je bolj zapleten, zato najprej poskusimo »enostavno« različico.

Za zdaj je treba namestitev izvesti ročno v obnovitvi po meri. Utripanje datoteke zip bo namestilo:

  • app_process32_xposed in nekaj simbolnih povezav
  • libexposed_art.so
  • libart.so in nekatere sorodne binarne datoteke + knjižnice (na osnovi 5.0.2, izboljšane s podporo za povezovanje itd.)
  • XposedBridge.jar (zdaj shranjen v /system/framework)

Varnostne kopije obstoječih datotek bodo ustvarjene samodejno in jih je mogoče pozneje obnoviti.

Ne deluje/ni mi všeč! Kako ga lahko odstranim?

Najlažji način je obnoviti varnostno kopijo ali utripati sistemsko particijo. Datoteko zip za odstranitev je treba še ustvariti.

Zakaj zamenjujete datoteke ART v moji napravi? To je bolj invazivno kot pri Dalviku, povzročilo bo znatne težave pri delovanju in bo nestabilno!

Zapisal sem nekaj razlogov GitHub. Da, bolj je invaziven, zato sem se mu dolgo časa poskušal izogibati, vendar s tehničnega vidika in vidika podpore menim, da je to boljša možnost.

Manjša zmogljivost kot originalni ART? Verjetno zato, ker sem moral onemogočiti nekatere optimizacije, da bi omogočil določene vrste kavljev. Vendar to vpliva le na del vseh metod in tudi pri teh izguba zmogljivosti zagotovo ni pomembna ali opazna, če je celo merljiva. Še vedno obstaja na tisoče drugih optimizacij, ki jih izvaja ART, in poskušal sem jih onemogočiti čim manj, hkrati pa zagotoviti čim večjo prilagodljivost.

Stabilnost je v redu, kot je navedeno zgoraj. V primerjavi s pristopom, ki sem ga uporabil za Dalvik (spreminjanje notranjih podatkovnih struktur izvajalnega okolja iz app_process), sem celo precej prepričan, da je popolna zamenjava knjižnic veliko bolj zanesljiva način. Svoje spremembe bi lahko čisto integriral v obstoječo kodo in ponovno uporabil povezane funkcije, medtem ko bi bilo za druge načine potrebnih veliko vdorov in predpostavk.

Boste končno objavili izvorno kodo?

Seveda ga boste našli na GitHubu zelo kmalu po izdaji različice alfa, za zdaj v ločeni veji.

Ali to pomeni, da starejša različica Androida zdaj ni več podprta?

ne! Nova koda se prevaja v vse različice Androida 4.x in jo je treba le preizkusiti pred enotno izdajo. Toda najprej se moram prepričati, da za Lollipop deluje dobro. Mogoče bi lahko podporo za ART prenesli nazaj v KitKat, vendar je to manj pomembno.

Kako naj se vam zahvalim za vaše delo?

Veliko ljudi je prosilo za način, kako donirati nekaj dolarjev, zato sem ustanovil donacija stran zdaj.

Koliko moram donirati, da dodate funkcijo X ali modul, ki omogoča Y?

To ni darovanje, to je plačilo nekomu v pričakovanju prihodnjega dela. Ne zanimajo me samostojna dela.