Az Xposed Framework-et nem kell bemutatni az XDA olvasóknak. Amikor a közösségünkről kérdezik utálja a legjobban a Lollipopot, a legtöbb szavazatot kapott megjegyzés a vitában az volt, hogy megszakította az Xposed támogatását. Valójában sok fórumtag kifejezetten emiatt nem is hajlandó frissíteni a Lollipop-ra. De ez most megváltozik, mivel a nagyon várt Xposed Framework végre megérkezett Android Lollipop-ra.
Ha még nem ismeri az Xposedet, egyszerűen fogalmazva, ez egy isteni ajándék a modding közösség számára. Az Xposed nem igényel ROM-ok felvillantását, de rengeteg testreszabást és finomítást kínál, amelyeket a felhasználók úgy telepíthetnek, mint az alkalmazásokat a rootolt eszközökön. Használata hihetetlenül egyszerű és korlátozott kockázattal. Most pedig a Lollipop minden Android-rajongója élvezheti ennek a fantasztikus projektnek az előnyeit eszközén. Fogd meg a letöltést, és kezdj el módosítani!
A rovo89 is volt olyan kedves, hogy kérdezz-feleletet adjon nekünk a legújabb projekthez. Az alábbiakban a projekttel kapcsolatos minden kérdésére választ kaphat.
Miért tartott ilyen sokáig? Az ART több mint egy éve jelent meg!
Először is – sokan folyamatosan kérnek ART támogatást. A Lollipop ennél jóval több változtatást tartalmaz, például még szigorúbb SELinux-szabályokat, 64 bites ROM-okat és architektúra-módosításokat, amelyek egy nagyobb kiadástól elvárhatók. És persze magát az ART-t is folyamatosan fejlesztik; nagy különbségek vannak az ART for KitKat és az ART for Lollipop között.
Az egyik ok tehát a nagy bonyolultság, amely sok-sok munkaórát igényelt a kutatáshoz, fejlesztéshez és teszteléshez.
A másik ok, hogy az Xposeden kívül más dolgok is vannak az életemben, így voltak hetek, sőt hónapok, amikor szinte egyáltalán nem néztem meg a kódot.
Át kell írnunk az összes modult?
Nem, az Xposed API nagyjából változatlan. Az Xposed absztrakt minden részletet, így a moduloknak nem kell törődniük azzal, hogy Dalvikon vagy ART-en futnak. Sok modul valóban változtatás nélkül fog működni, különösen azok, amelyek módosítják a felhasználói alkalmazások viselkedését. Előfordulhat, hogy a rendszer viselkedését célzó modulokat az új Android keretkódhoz kell igazítani, ami nem az ART okozza, hanem egyszerűen a két Android között előforduló architektúra és kódváltozások kiadja. A legjelentősebb az, hogy a rendszerszolgáltatások kódja egy külön fájlba került. A legtöbb érintett modulnál ez megoldható egy kis refaktorálással (a kód áthelyezésével egy másik helyre).
Tényleg működik?
Igen! Legalábbis nekem jól működik a napi eszközömön (Nexus 5 CM12-en) és a Nexus 9-en is (az XDA fizeti – köszönöm!). A telefon a szokásos módon stabil, és az alkalmazások jól működnek. És nyilván a modulok és a hozzájuk tartozó horgok/erőforráscsere is jól működik, különben nem lenne értelme valamit kiadni.
De akkor miért alfa verzió?
Mert óriási változások történtek a legutóbbi stabil kiadás óta, amelyeket olyan embereknek kell tesztelniük, akik tudják, hogyan kell használni a helyreállítást, menekülni a rendszerindítási hurkoktól és megfelelően jelenteni a hibákat. Nyomatékosan azt tanácsolom az újoncoknak, hogy várják meg, amíg az Xposedet elég tapasztalt ember teszteli.
Vannak olyan éles esetek is, amelyeket még nem teszteltek, mint például a JNI (natív) metódusok akasztása, és az összekapcsolásuk idején végrehajtott metódusok.
szeretném telepíteni. Most! Mit kell tennem?
Győződjön meg arról, hogy elolvasta a fenti szavaimat, és ismeri a telefonja belsejét. Nyilvánvalóan Lollipop ROM-on kell lennie, és jó biztonsági másolatot kell készítenie az adatokról. Egyelőre csak az ARMv7 verziót teszem közzé. A 64 bites bonyolultabb, ezért először próbáljuk ki az „egyszerű” változatot.
Egyelőre a telepítést manuálisan kell végrehajtani egy egyéni helyreállításban. A zip fájl villogása telepíti:
- app_process32_xposed és néhány szimbolikus hivatkozás
- libexposed_art.so
- libart.so és néhány kapcsolódó bináris fájl + könyvtárak (5.0.2-n alapul, hooking támogatással stb.)
- XposedBridge.jar (most a /system/framework mappában van tárolva)
A meglévő fájlok biztonsági másolatai automatikusan létrejönnek, és később visszaállíthatók.
Nem működik/nem szeretem! Hogyan tudom eltávolítani?
A legegyszerűbb módja a biztonsági mentés visszaállítása vagy a rendszerpartíció flash-megoldása. Az eltávolításhoz még létre kell hozni egy ZIP-fájlt.
Miért cseréli le az ART fájlokat a készülékemen? Ez invazívabb, mint a Dalvikon, jelentős teljesítményproblémákat okoz, és instabil lesz!
Leírtam néhány okot GitHub. Igen, invazívabb, ezért sokáig próbáltam elkerülni, de technikai és támogatás-orientált szempontból szerintem ez a jobb megoldás.
Kevesebb teljesítmény, mint az eredeti ART? Valószínűleg, mivel le kellett tiltanom néhány optimalizálást, hogy bizonyos típusú horgokat lehetővé tegyek. Ez azonban az összes módszernek csak a töredékét érinti, és még ezeknél is biztosan nem jelentős vagy észrevehető a teljesítménycsökkenés, ha még mérhető is. Még mindig több ezer egyéb optimalizálást végez az ART, és igyekeztem a lehető legkevesebbet letiltani, miközben a lehető legnagyobb rugalmasságot biztosítom.
A stabilitás rendben van, ahogy fentebb említettük. A Dalvik esetében alkalmazott megközelítéshez képest (a futási környezet belső adatstruktúráinak módosítása a app_process), abban is egészen biztos vagyok, hogy a könyvtárak teljes cseréje sokkal megbízhatóbb út. A módosításaimat tisztán integrálhatom a meglévő kódba, és újra felhasználhatom a kapcsolódó funkciókat, míg más módokhoz sok feltörésre és feltételezésre lenne szükség.
Nyilvánossá teszi végre a forráskódot?
Persze, az alfa verzió megjelenése után nagyon hamar megtalálod a GitHubon, egyelőre külön ágban.
Ez azt jelenti, hogy a régebbi Android-verzió már nem támogatott?
Nem! Az új kód az Android összes 4.x-es verzióján lefordítható, és csak tesztelni kell az egységes kiadás előtt. De először meg kell bizonyosodnom arról, hogy jól működik a Lollipop számára. Lehetséges, hogy az ART támogatás visszaportálható a KitKatre, de ez kevésbé fontos.
Hogyan köszönhetem meg a munkáját?
Sokan kértek néhány dollár adományozási módot, ezért létrehoztam a adomány oldalt most.
Mennyit kell adományoznom ahhoz, hogy hozzáadhassa az X funkciót vagy az Y modult?
Ez nem adományozás, hanem fizetés valakinek a jövőbeli munkája reményében. Nem érdekelnek a szabadúszó munkák.