Kehitä ensimmäinen XPOSED-moduulisi

Aloitetaan ilman jatkojalostusta ..!

Kuva 2. Aloitetaan – koodaus

VAIHE – 1: Avaa Android Studio

Jos sinulla ei ole sitä, voit ladata sen täältä: link.

VAIHE – 2: Toiminnan valinta

Luo uusi Android Studio -projekti. (Katso alla oleva kuva)
Pidän tätä opetusohjelmaa yksinkertaisena, meidän ei tarvitse luoda mitään toimintaa, koska muutamme vain tilarivin kellon väriä.
Valitse Ei toimintaa ja siirry seuraavaan.

Kuva: Uusi projekti – toiminnan valinta

VAIHE – 3: Projektin määritykset

Kuva: Määritä projekti

Määritä sovelluksellesi nimi ja paketin nimi. Pidä kieli Java-kielellä, jos tunnet Kotlinin, siirry siihen – kovaa koodausta ei tule niin paljon, koska tämä on eräänlainen ”hello-world” -sovelluksen / moduulin kehitys.
Pidän vähimmäissovellusliittymää taso 15: een. Napsauta sitten Valmis-painiketta.

VAIHE – 4: Muokkaa build.gradle-sovellustasi (sovellus) & Lisää alla olevat riippuvuudet:

Synkronoi sitten projekti.

VAIHE – 5: Muokkaa manifest.xml-tiedostoa:

Lisää alla olevat metatietotagit sovellustagiin:

Nimen tulee olla xposedmodule ja arvon true. Jätä resurssi tyhjäksi. Toista sitten sama xposedminversion (edellisen vaiheen sovellusliittymäversio) ja xposeddescription (moduulin hyvin lyhyt kuvaus).

VAIHE – 6: Luo luokka:

package com.myfirstxposedmodule;
public class MyModule {
}

Tämä on luokkamme, jota muokkaamme tulevaisuudessa.

VAIHE – 7: Luo ja muokkaa xposed_init-tiedostoa:

Kuva: Projektinäkymä

Vaihda hakemistonäkymä projekti-näkymään. Siirry sovelluksen > src > pääsivulle. Napsauta hiiren kakkospainikkeella päävalikkoa ja valitse uusi > -hakemisto.
Nimeä se: assets

Napsauta hiiren kakkospainikkeella äskettäin luotussa hakemistossa assets valitse uusi > -tiedosto.
Nimeä se: xposed_init (valitse text, jos se pyytää tiedostotyyppiä).

Lisää xposed_init -tiedoston sisälle koko nimi java-luokastamme. ts. meidän tapauksessamme se on kuin:

com.myfirstxposedmodule.MyModule

Näin Xposed-kehys tunnistaa moduulimme ja lataa sen käynnistykseen. Tämä tiedosto kertoo kehykselle ladattavat luokat, jotka myös näemme lokeista.

VAIHE – 8: Muokkaa MyModule-luokkaa:

package com.myfirstxposedmodule;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import de.robv.android.xposed.XposedBridge;
public class MyModule implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
}
}

Toteuta IXposedHookLoadPackage ja toteuta menetelmä handleLoadPackage kuten yllä on esitetty.

Kokeillaan nyt asettamalla lokifunktio tämän handleLoadPackage -menetelmän sisään:

XposedBridge.log("Loaded app: " + lpparam.packageName);

Tämä tulostaa ladatut moduulit. Yleensä nämä lokit kirjataan tämän tiedoston sisään: /data/data/de.robv.android.exposed.installer/log/debug.log (johon pääsee helposti Xposed Installer -sovelluksen kautta).

VAIHE – 9: Suorita koodi:

Kuva: Virhe suoritettaessa sovellusta

Jos yrität suoraan Suorita tämä Android-studiosta, saat tämän virheen. Mikä on ok, koska meillä ei ole tällä hetkellä mitään toimintaa.

Älä huoli, minulla on ratkaisu. Muokkaa vain Suorita kokoonpanoa ja muuta käynnistysvaihtoehto oletustoiminnosta Ei mitään ja valitse OK.

Kuva: Vaihda ajo Määritykset

Yritä nyt suorittaa uudelleen (Windows: Shift + F10).

Kun laite on suoritettu onnistuneesti, Näen tämän moduulin Xposed Installer -sovelluksen moduuliluettelossa. Kuten alla olevassa kuvassa näkyy, näet myös selostustekstin kirjoittamamme kuvaustekstin.

Kuva: Xposed-moduuliluettelo

Aktivoi vain moduuli valitsemalla ruutu ja käynnistä laite uudelleen.Käynnistä uudelleenkäynnistyksen jälkeen Xposed Installer -sovellus ja avaa lokit (voit myös avata edellä mainitun lokitiedoston polun). Näet tällaisia rivejä:

Nyt kun tiedät kuinka luoda ja käyttää Xposed-moduulia, voimme mennä syvemmälle tarkastelemaan tilarivin koodia ja soveltamaan joitain omia toteutuksia.

VAIHE – 10: Kaivaminen tilarivin koodiin:

Nyt olemme kiinnostuneita saamaan kellon (tekstin) tilariviltä (joka sijaitsee com.android.systemui -paketti). Kuten tiedät, Android on avoimen lähdekoodin toimintalähde, jotta voit nähdä koodin sisäosat. Voit ladata Android-lähdekoodin TÄSTÄ linkistä. Android-versiostasi ja romististasi riippuen muutoksia saattaa olla. Tällä hetkellä olemme kiinnostuneita vain löytämään kellokoodimme. Jossakin paketissa com.android.systemui on Clock.java -luokka, ja tämä luokka laajentaa TextView että voit kohdella tätä samanlaisena kuin TextView. TÄMÄ on linkki kyseiseen luokkaan. On yksi menetelmä, joka päivittää ajan tilarivillä, jonka nimi on updateClock(). Katso alla oleva katkelma:

Mitä haluamme? Haluamme käyttää koodia aina, kun tämä menetelmä suoritetaan. Sen teemme seuraavassa vaiheessa, joka tunnetaan myös menetelmän kiinnittämisenä.

VAIHE – 11: Menetelmän kytkeminen:

XposedHelper on luokka, joka tarjoaa joitain auttajamenetelmiä. Yksi tarvitsemamme apumenetelmä on findAndHookMethod, joka ottaa koko luokan nimen luokkakuormaajaan String (voimme saada sen osoitteesta XC_LoadPackage.LoadPackageParam kohteesta handleLoadPackage), menetelmän nimi, jota haluamme seurata (tapauksessamme updateClock) String – ja XC_MethodHook -puheluissa (mikä on yksinkertaisesti takaisinsoitto). Alla on koodimme

Yllä olevasta koodista näet, että nimettömässä luokassa XC_MethodHook olen toteuttanut kaksi menetelmää, jotka ovat beforeHookedMethod ja afterHookedMethod. Kuten nimestä voi päätellä, ensimmäinen suoritetaan ennen koukutettua menetelmää ja jälkimmäinen suoritetaan koukutetun menetelmän jälkeen (tapauksessamme updateClock). Argumenttien ja palautustyyppien parametrit hoidetaan argumentilla MethodHookParam. Mutta nyt haluamme vain muuttaa tilarivin kellon väriä, tarvitsemme yksinkertaisesti afterHookedMethod.

Tarvitsemme pääsyn tähän TextView -objekti, jonka voimme saada osoitteesta param.thisObject – tämä on sama kuin this avainsana Clock.java -luokka. Sitten voimme heittää sen tiedostoon TextView ja sitten yksinkertaisesti muuttaa kyseisen TextView -objektin väriä ja myös muokata tekstiä kuten minä :

VAIHE – 12: Suorita moduuli:

Suorita koodi ja käynnistä laite uudelleen. Näet kellosi punaisena ja lisäämämme emoji-tekstin.

Kuva: Kuvan väri muutettu kello tilarivillä

Siinä se! Tiedän, että uudelleenkäynnistys on perseestä! mutta hei, olet luonut oman Xposed-moduulin, eikö olekin hienoa ??!

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *