Az Xposed Framework for Nougat & abforce almodul magyarázata

Ebben a cikkben megvizsgáljuk a rovo89 hamarosan megjelenő Xposed for Nougat kiadása és a Nougat számára elérhető jelenlegi megvalósítás közötti különbségeket.

Az Xposed keretrendszer volt – és ma is – az Android-eszköz testreszabásának fő módja, amely szinte minden eszközzel kompatibilis, lehetővé téve a modulok egyszerű telepítését gyakorlatilag bármilyen részlet módosításához.

Szeretné megkapni az egyéni ROM által kínált összes funkciót anélkül, hogy flashelnie kellene?GravityBox vagyXTouchwiz ezt fogja tenni. Szeretnél alkalmazásonként módosítani bizonyos beállításokat, például módosítani egy adott alkalmazás DPI-jét?Alkalmazásbeállítások fedezted-e. Bárcsak egy alkalmazás fejlesztőinek eszébe jutott volna egy speciális funkció hozzáadásával, például a Google segítségévelszemélyre szabhatja a Hangouts-beszélgetéseket vagy a Facebook lehetővé teszitöltsd le a neked tetsző Instagram-bejegyzéseket? Nos, erre nincs szükség, mert az Xposed lehetőséget ad a fejlesztőknek, hogy szinte bármit módosítsanak szeretné, legyen az egész rendszerre kiterjedő szolgáltatás, amelyhez egyéni ROM-ra lenne szükség, vagy egy konkrét módosításra Alkalmazás.

Az Xposed keretrendszer jelentős előnnyel jár a fejlesztők számára, ami a könnyű fejlesztés (hasonlóan ahhoz, hogy AOSP-t kell fordítani a ROM módosításához, vagy Smali kódot kell szerkeszteni). Ezenkívül hatalmas előnyt jelent a felhasználók számára: kényelem, mivel többé nem kényszeríti őket arra, hogy megtalálják és felvillantsák azt a ROM-ot, amely minden egyes keresett funkciót biztosít (ehelyett független modulokat keverhetnek és illeszthetnek egymáshoz) a stabilitás és a cél egyensúlya mellett teljesítmény. Azt is teszi alkalmazások finomhangolása sokkal egyszerűbb, mivel nem kell különböző aláírásokkal foglalkozni, aminek eredményeként a felhasználóknak el kell távolítaniuk az eredetit. verziót, vagy ugorjon át bizonyos körökön, amikor az alkalmazás ellenőrzi az aláírását (valami módosított YouTube-kliensekkel, pl. példa).

Az egyetlen probléma? A természetéből és a szabadidőből adódóan az Xposed fejlesztője (saját vezető elismert fejlesztőnk,rovo89) rendelkezik, gyakran elmarad az Android-kiadásoktól.Körülbelül négy hónapba telt, amíg a Lollipop támogatása frissítésre került, és körülbelül egy évbe telik, amíg Nougatba kerül. Ez nem olyan rossz, mint amilyennek látszik, ha belegondolunk hány Android-felhasználó van valójában a Nougaton (körülbelül 13,5%, bár ne feledje, hogy az Android-rajongók, az Xposed célközönsége is nagyobb valószínűséggel a Nougat-on vannak). Azonban még mindig elég bosszantó lehet, ha nem tudod használni a kedvenc Xposed moduljaidat, és nem tudod egyszerre használni a legújabb és legjobb Android verziót.

Mivel az Xposed keretrendszer forráskódja elérhető (legalábbis a stabil, kiadott verziókhoz), fejlesztőabforce úgy döntött, hogy bemocskolja a kezét, és megnézi, hogy át tudja-e vinni a rovo89 néhány módosítását a Nougatba. Más és egyszerűbb megközelítést választva az abforce lényegében az Xposed azon részét adaptálta, amely valójában megcsinálja a varázslatot, miután telepítette, és lehetővé tette, hogy belefoglalja a saját ROM fordításába (ezt követően, más megoldások is napvilágra kerültek). Ez a megközelítés vitathatatlanul nagyon eltérő mivel figyelmen kívül hagyja az Xposed egyik alapvető előnyét, amely mindenki számára könnyen elérhető. Mindazonáltal minden előrelépés üdvözlendő, és egy feladat több feje is előnyös lehet, és új betekintést nyújthat. A fő probléma, ahogy mi látjuk, a fejlesztést körülvevő félretájékoztatás (amit más "fejlesztők" és egyes blogok terjesztenek), valamint a közösség néhány reakciója. Remélhetőleg ez a cikk világosabbá teszi a teljes képet.


Először is, hogy megértsük a hivatalos Xposed keretrendszerbe és az abforce verziójába bekerült – és még mindig megy – munkát, meg kell vizsgálnunk a keretrendszer működését. Míg maga a keret az csak egy része a projektnek, általában a keretrendszerre és a telepítőre is gondolunk mivel a keret sok előnyét veszíti az univerzális telepítő nélkül, amibe szintén sok munka kerül.

Az Xposed ereje egy egyszerű koncepcióból fakad: bármely módszer "beleköthető" (a módszerek a kicsik bármely programot alkotó részek), hogy az Xposed modul kódja lefusson előtte, utána vagy helyett azt. Vegyünk egy egyszerű példát: tegyük fel, hogy az Instagram a "showMenuOptions" nevű metódust használja, amikor a menü gombra kattint, és ez a módszer kezeli a "Jelentés" és a "Megosztás" gombok megjelenítését. Az Xposed modul létrehozásával módosíthatja ezt a módszert, és például a megosztás helyett hozzáadhat egy további gombot a kép letöltéséhez. A módosítások az egyszerű módosításoktól (pl. Play Áruház Változásnapló) nagyjavításokra (pl GravityBox, amelynek célja, hogy minden olyan funkciót biztosítson, amely egy egyedi ROM-mal rendelkezik)!

Ettől az Xposed erős, de ez csak egy része az egyenletnek. A többi rész a sokoldalúság – vagy az, hogy az Xposed gyakorlatilag bármilyen eszközön használható (támogatott Android-verzióval), és az egyszerű használat. A felhasználóknak csak meg kell ragadniuk a telepítőt, amely megteszi a varázslatát, és dinamikusan javítja a rendszerüket az Xposed integrálásához. Egy modul alkalmazásához csak telepítenie kell, engedélyeznie kell és újra kell indítania. Nincs szükség zűrzavarra, nem kell egyéni ROM-ot flashelni (különösen, ha az egyéni ROM nem mindig megfelelő választás), nem kell eltávolítani egy APK-t egy másik aláírással aláírt telepítéshez. Csak a root kell (egyéni ROM-ot biztosan lehet, és ennek sok esetben van értelme; de bár az Xposed képes biztosítani a legtöbb funkciót, amit egy egyedi ROM nyújthat, ez túlmutat ezen).

Az egyszerűség mögött azonban rengeteg munka húzódik meg:

  1. A modulfejlesztők számára a megadott API-nak stabilnak kell lennie, és garantáltan működik. Az Xposed keretrendszer nem tud véletlenszerűen meghibásodni bizonyos ROM és/vagy hook kombinációk esetén (kivételes esetek kivételével). Más szóval, ha a felhasználónak problémája van, akkor a probléma vagy a felhasználó hibája lehet (nem valami helyes telepítése/engedélyezése) vagy a modul fejlesztőjének hibája (mert hibák vannak a modul). De szinte biztosnak kell lennie abban, hogy maga a keretrendszer a tervezett módon működik, és nem ez a forrása a hibáknak, amelyek frusztrálnák a felhasználókat és a fejlesztőket.
  2. A felhasználók számára a keretrendszernek könnyen telepíthetőnek kell lennie az eszközükön és a ROM-on, függetlenül attól, hogy a TouchWiz legfrissebb verzióját futtató Samsung vagy a LineageOS rendszerű Nexus telepítve van. Az Xposed telepítője mindezt a színfalak mögött kezeli. Sokat kell dolgozni ezen, hogy teszteljük a telepítőt és a keretrendszert különféle eszközökön és ROM-kombinációkon. A rendszer hibákat talál, amelyek gyakran az OEM-ek eltérő megvalósítása miatt következnek be, és ezeket ki kell javítani, hogy minden felhasználó számára megbízható legyen.
  3. A nagyobb Android-verziók időnként jelentős változásokat hozhatnak, amihez a keretrendszer architektúrájának egyes részeit újra kell gondolni, hogy alkalmazkodni tudjanak ezekhez a változásokhoz. Néha további lehetőségek is felbukkannak az újabb verzióknál, ami több időt igényel a jobb termék elkészítéséhez. Amikor például az ART-t először bemutatták, az Xposed letiltott bizonyos optimalizálásokat, hogy megfelelően működhessen a hooking. Nougat esetében aJust-in-time (JIT) fordító lehetőséget ad arramegtartani ezeket az optimalizálásokat.

A fenti munkák nagy része apró részletekre megy ki, ahol a keretrendszer nagy része rendeltetésszerűen működik, de a az inkonzisztenciák és a kisebb problémák a felhasználók számára szerencsejátékot, a modul támogatását és fejlesztését pedig rémálmává tennék. fejlesztők. A megjelent termék azonban arra törekszik, hogy mindenki által és meglepetések nélkül használható legyen. Természetesen vannak kivételek, mivel egyes OEM-ek változásaihoz több erőfeszítésre van szükség az alkalmazkodáshoz, de ezek kisebbek, és a felhasználók (és a fejlesztők) túlnyomó többsége stabil és megbízható Xposed-et élvezhet tapasztalat. Az esetleges kivételeket a rendszer dokumentáljaegyértelmű felelősségkizárások hogy senki ne lepődjön meg.

A fentiek szem előtt tartásával a rovo89 elképzelése az Xposedről, hogy egy olyan stabil megoldás legyen, amely megbízható és könnyen használható szerződést biztosít a felhasználók és a fejlesztők számára. Filozófiája, bár lehet, hogy nem ért vele egyet, egyszerű és érthető: a terméknek olyannak kell lennie akkor adják ki, amikor készen áll a rendeltetésszerű használatra, mivel a korábbi kiadás több problémához vezet, mint előnyöket.


az abforce Xposed ART almodulja a Nougat számára

Nem szívesen nevezzük az abforce munkáját "portnak" vagy "nem hivatalos Xposednek", mivel ez pontatlan és félrevezető. Amint láttuk, az Xposed két fő összetevőből áll:

  1. Maga az Xposed keretrendszer magja, amely kezeli a hooking módszerek varázsát.
  2. Az Xposed telepítő, amely biztosítja, hogy a keretrendszer könnyen telepíthető minden eszközre.

Az abforce az volt, hogy a rovo89 Marshmallow kódját az első részben (csak az Xposed keretrendszeren) átportolta a Nougat-ra, oly módon, hogy a változtatásokat az egyéni ROM fordítása közben végre kell hajtani. Ezenkívül a keret számos kisebb (de fontos) része nincs teljesen adaptálva a Nougathoz. Mint ilyen, a viselkedés következetlen lehet, és bár többnyire működik (bár nemszámáramindenki), nem megbízható. A modulfejlesztők és -felhasználók számára a hiányos és inkonzisztens megvalósításra való támaszkodás csak jó lenne rossz élményt nyújt minden érintett fél számára, val vel egyes modulok egyáltalán nem működnek, vagy az eszköz nem indul el. Bár sok felhasználónak megvan a baja inkább valamit, mint semmit, a fejlesztők álláspontja továbbra is teljesen érthető (főleg, ha észben tartjuk, hogy a felelősségkizárások nem akadályozzák meg a hamis támogatási kérdéseket és a nyafogást).

(A fenti két fő ponton kívül további változtatásokra is számítunk a végleges, hivatalos Xposed keretrendszeren, hogy kihasználjuk a Nougatban bevezetett változtatásokat.)

Meg kell jegyezni, hogy abfor kiváló munkát végzett, amikor a legtöbben megelégedtek azzal, hogy egyszerűen beszéltek, de munkája messze van a teljes Xposed-élménytől, és egyetlen fejlesztő vagy blog sem állítja ennek ellenkezőjét (és határozottan nem abforce; ismét csak tiszteljük az összes tényleges fejlesztőt, aki valódi munkát és erőfeszítést tesz ebbe). Valójában, amint egy kicsit érinteni fogjuk, a közösség bizonyos válaszai (legyenek azok a felhasználók vagy a „fejlesztők”) az egyetlen rossz rész ebben a fejlesztési láncban.


Hagyjuk a hajszát, és térjünk a lényegre: minden közösségnek vannak rossz elemei és aspektusai. Olyan nagy közösségben, mint az Android-rajongók, a rossz elemek hatalmas résznek tűnhetnek, ha csak kis részük (jelentős, de relatív értelemben kicsi). Cukorbevonat nélkül azonban a közösség sok reakciója az Xposed for Nougat fejlesztésére rendkívül gyerekes, meggondolatlan vagy felelőtlen volt.

Az első nagy probléma a sokak által tanúsított lekezelő hozzáállás volt az „Xposed halálával” kapcsolatban, mert túl sokáig tart, amíg a Nougat számára kiadják. Ez a rovo89 ellenére van frissítéseketésbiztosítékokat, és annak ellenére, hogy nagyjából ugyanaz a forgatókönyv történt a Lollipop esetében, amikor az ART kezdeti verzióját bemutatták. Rendben van, ha abbahagyja az Xposed használatát, de nem szabad megsérteni senki képességeit, vagy támadni másokat azért, mert más filozófiájúak, vagy nem biztosítják a felvillanó igényeinek azonnali kielégítését. Ez még inkább igaz egy teljesen ingyenes projektre, ahol a fejlesztő kifejtette fejlesztési módszertanát és okait.

Egy másik probléma a közösség válaszában az abfor munkájának természetének félreértése volt, sokan az új Xposed-nek üdvözölték, vagy a Nougat kikötőjeként hirdetik. A fő probléma ezzel kapcsolatban az volt, hogy a "fejlesztők" rohantak felvillantható verziókat kínálni anélkül, hogy megértették volna (vagy nem törődtek volna velük) a hátrányokkal, mivel semmilyen felelősségre vonás nem történt. egyáltalán felkínálják bizonyos szálakban, és néhányan egészen odáig mennek, hogy az abforce-t, és nem a rovo89-et (aki az Xposeden végzett munkák túlnyomó többsége mögött) és más közreműködők.

Utolsó pontként úgy érezzük, újra fel kell hoznunk a rovo89 fejlesztési filozófiáját. Sok énekes felhasználó azt állítja, hogy hasznos lenne, ha a legújabb változtatások nyílt forráskódúak lennének. Bár ez elméletben jól hangzik, de azgyakorlatban nem olyan egyszerű különösen, ha figyelembe vesszük a rovo89 magyarázatát:

[...] Úgy gondolom, hogy a jelenlegi állapot kiszorítása nem segítene a projekten. Talán látnánk, hogy "valamilyen" nagyon gyorsan kiadnak azok, akik lefordítják a kódot, és úgy tűnik, hogy az jól működik, és "az ő portjukként" tegyék közzé, annak ellenére, hogy olyan problémák és tennivalók vannak, amelyekről nem lennének tudatában nak,-nek. Szóval nevezz önzőnek, de nem szeretnék ilyen félkész kiadást látni.[Forrás]

Ami valójában elég jó előrejelzésnek bizonyult a jelenlegi helyzetre, több "fejlesztő" jelentkezett az abforce változásairól, és egy villogható ZIP-t kínál minimális figyelmeztetéssel vagy figyelmeztetés nélkül, hiányos kreditekkel, miközben kéri adományokat.


Reméljük, hogy ezek a magyarázatok eloszlatják a kétségeit, és megválaszolják az esetleges félreértéseket. Az Xposed egy csodálatos projekt, amely lelkes és flashaholic közösségünk hatalmas részét elérte, az Xposed for Nougat pedig egy újabb hatalmas mérföldkő, tele lehetőségekkel. Olyan modulokkal, mint a GravityBox A már Nougat támogatást kínáló rovo89 kész projektje visszatér a lehetőségek sorához.


Izgatottan várod az Xposed alkalmazást a Nougat ROM-on? Tudassa velünk a megjegyzésekben!