Udvikl din første XPOSED-MODUL

Uden yderligere ado, lad os komme i gang ..!

Billede 2. Lad os komme i gang – kodning

TRIN – 1: Åbn Android Studio

Hvis du har det ikke, du kan downloade det herfra: link.

TRIN – 2: Aktivitetsvalg

Opret et nyt Android Studio-projekt. (Se billedet nedenfor)
Jeg holder denne vejledning enkel, vi behøver ikke oprette nogen aktivitet, da vi bare ændrer farven på statusbjælkens ur.
Vælg Ingen aktivitet og gå til Næste.

Billede: Nyt projekt – aktivitetsvalg

TRIN – 3: Projektkonfiguration

Billede: Konfigurer projekt

Angiv navn og pakkenavn til din applikation. Hold sproget som Java, hvis du er fortrolig med Kotlin, skal du gå med det – der vil ikke være så meget hård kodning, da dette er en slags ‘hello-world’ app / moduludvikling.
Jeg holder minimum API niveau til 15.
Tryk derefter på knappen Udfør.

TRIN – 4: Rediger din build.gradle (app) & Tilføj nedenstående afhængigheder:

Synkroniser derefter projektet.

TRIN – 5: Rediger din manifest.xml-fil:

Tilføj nedenstående metadatatags inde i applikationstagget:

Navnet skal være xposedmodule og værdien true. Lad ressourcen være tom. Gentag derefter det samme for xposedminversion (API-versionen fra forrige trin) og xposeddescription (en meget kort beskrivelse af dit modul).

TRIN – 6: Opret en klasse:

package com.myfirstxposedmodule;
public class MyModule {
}

Dette er vores klasse, som vi vil ændre i fremtiden.

TRIN – 7: Opret og rediger xposed_init-fil:

Billede: Projektvisning

Skift katalogvisningen til projektvisningen. Naviger til app > src > main. Højreklik på main og vælg nyt > -mappe.
Navngiv det: assets

Højreklik i den nyligt oprettede assets -mappe skal du vælge ny > -fil.
Navngiv den: xposed_init (vælg text hvis den beder om filtype).

Inde i xposed_init -fil, tilføj fuldt navn af vores java-klasse. dvs. i vores tilfælde vil det være som:

com.myfirstxposedmodule.MyModule

Sådan identificerer Xposed-rammen vores modul og indlæser det på boot. Denne fil fortæller rammen, hvilke klasser der skal indlæses, som vi også vil se i logfilerne.

TRIN – 8: Rediger MyModule-klasse:

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 {
}
}

Implementer IXposedHookLoadPackage og implementer metoden handleLoadPackage som vist ovenfor.

Lad os nu prøve ved at placere en logfunktion inde i den handleLoadPackage metode:

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

Dette udskriver de indlæste moduler. Generelt er disse logfiler logget inde i denne fil: /data/data/de.robv.android.exposed.installer/log/debug.log (som er let tilgængelig via Xposed Installer).

TRIN – 9: Kør koden:

Billede: Fejl ved kørsel af ‘app’

Hvis du direkte prøver at kør dette fra android-studiet, får du denne fejl. Hvilket er ok, fordi vi ikke har nogen aktivitet lige nu.

Alligevel skal du ikke bekymre dig, jeg har en løsning. Bare rediger Run-konfigurationen, og skift Launch Option fra standardaktivitet til ingenting, og vælg Ok.

Billede: Skift kørsel Konfigurationer

Prøv igen at køre (Windows: Shift + F10).

Ved vellykket kørsel på din enhed skal du ‘ Jeg kan se dette modul på Xposed Installer-appens modulliste. Som vist i nedenstående billede kan du også se beskrivelsesteksten, som vi havde indtastet i manifestfilen.

Billede: Liste over Xposed-moduler

Bare aktiver dette modul ved at markere afkrydsningsfeltet og genstarte din enhed.Efter genstart skal du åbne Xposed Installer-applikationen og åbne logfilerne (du kan også åbne den logfil, som jeg nævnte ovenfor, er stien). Du vil se linjer som denne:

Nu hvor du ved, hvordan du opretter og kører Xposed-modulet, kan vi gå dybere ned for at se på statuslinjens kode og anvende nogle af vores egne implementeringer.

TRIN – 10: Grav ind i statuslinjens kode:

Nu er vi interesserede i at få uret (tekst) fra statuslinjen (som ligger i com.android.systemui pakke). Som du ved, er Android en open source-driftskilde, så du kan se de indvendige ting i koden. Du kan downloade kildekoden til android fra DETTE link. Afhængigt af din Android-version og din rom kan der være nogle ændringer. Fra nu af er vi kun interesseret i at finde vores urs kode. Der er en Clock.java klasse inde et eller andet sted i com.android.systemui pakke, og denne klasse udvider TextView hvilket betyder at du kan behandle dette lignende som en TextView. DETTE er linket til den klasse. Der er en metode, der opdaterer tiden på statuslinjen, hvis navn er updateClock(). Se på nedenstående uddrag:

Hvad vil vi nu? Vi vil køre vores kode, når denne metode bliver udført. Hvilket vi gør i det næste trin, som også er kendt som at tilslutte en metode.

TRIN – 11: Tilslutning af metoden:

XposedHelper er en klasse, der giver nogle hjælpemetoder. En hjælpemetode, som vi har brug for, er findAndHookMethod, der tager det fulde klassenavn i String, klasselæsser (vi kan få det fra XC_LoadPackage.LoadPackageParam fra handleLoadPackage), metodens navn, som vi vil spore (updateClock i vores tilfælde) i String og XC_MethodHook call-back (som simpelthen er et tilbagekald). Nedenfor vil være vores kode

I ovenstående kode kan du se, at der er to metoder, som jeg har implementeret i den anonyme klasse XC_MethodHook, som er beforeHookedMethod og afterHookedMethod. Som navnet antyder, bliver den første udført før den tilsluttede metode, og den sidste vil blive udført efter den tilsluttede metode (updateClock i vores tilfælde). Parameterne for argumenter og returtyper håndteres af MethodHookParam argument. Men fra nu af vil vi bare ændre statuslinjens urfarve, vi har simpelthen brug for afterHookedMethod.

Vi har brug for adgang til den TextView objekt, som vi kan få fra param.thisObject – dette vil være det samme som this nøgleord i Clock.java klasse. Så kan vi kaste det til TextView, og så kan vi simpelthen ændre farven på det TextView objekt og også ændre teksten som jeg gjorde :

TRIN – 12: Kør modulet:

Kør koden, og genstart din enhed igen. Du kan se dit ur i rødt og den emoji-tekst, vi tilføjede.

Billede: Ændret farve på uret i statuslinjen

Det er det !! Jeg ved, at genstart suger! men hej, du har oprettet dit eget Xposed-modul, er det ikke godt ?? !!

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *