Entwickeln Sie Ihr erstes XPOSED-MODUL

Lassen Sie uns ohne weiteres loslegen ..!

Bild 2. Beginnen wir mit der Codierung

SCHRITT 1: Öffnen Sie Android Studio

If Wenn Sie es nicht haben, können Sie es von hier herunterladen: Link.

SCHRITT 2: Aktivitätsauswahl

Erstellen Sie ein neues Android Studio-Projekt. (Siehe Bild unten)
Ich halte dieses Tutorial einfach, wir müssen keine Aktivität erstellen, da wir nur die Farbe der Uhr der Statusleiste ändern.
Wählen Sie Keine Aktivität und gehen Sie zu Weiter. P. >

Bild: Neues Projekt – Aktivitätsauswahl

SCHRITT 3: Projektkonfiguration

Bild: Projekt konfigurieren

Geben Sie den Namen und den Paketnamen für Ihre Anwendung an. Behalten Sie die Sprache als Java bei. Wenn Sie mit Kotlin vertraut sind, gehen Sie damit um – es wird nicht so viel harte Codierung geben, da dies eine Art „Hallo-Welt“ -App- / Modulentwicklung ist.
Ich behalte die minimale API bei Stufe auf 15.
Dann klicken Sie auf die Schaltfläche Fertig stellen.

SCHRITT – 4: Ändern Sie Ihre build.gradle (App) & Fügen Sie die folgenden Abhängigkeiten hinzu:

Synchronisieren Sie dann das Projekt.

SCHRITT 5: Ändern Sie Ihre manifest.xml-Datei:

Fügen Sie die folgenden Metadaten-Tags in das Anwendungs-Tag ein:

Der Name sollte xposedmodule und der Wert true sein. Lassen Sie die Ressource leer. Wiederholen Sie dies dann für xposedminversion (die API-Version aus dem vorherigen Schritt) und xposeddescription (eine sehr kurze Beschreibung Ihres Moduls).

SCHRITT 6: Erstellen Sie eine Klasse:

package com.myfirstxposedmodule;
public class MyModule {
}

Dies ist unsere Klasse, die wir in Zukunft ändern werden.

SCHRITT 7: Erstellen und Ändern der xposed_init-Datei:

Bild: Projektansicht

Ändern Sie die Verzeichnisansicht in die Projektansicht. Navigieren Sie zu app > src > main. Klicken Sie mit der rechten Maustaste auf main und wählen Sie ein neues > -Verzeichnis.
Nennen Sie es: assets

Klicken Sie mit der rechten Maustaste Wählen Sie im kürzlich erstellten Verzeichnis assets die neue Datei > aus.
Nennen Sie sie: xposed_init (wählen Sie text, wenn Sie nach dem Dateityp gefragt werden).

Fügen Sie in der Datei xposed_init den vollständigen Namen hinzu unserer Java-Klasse. In unserem Fall sieht es so aus:

com.myfirstxposedmodule.MyModule

Auf diese Weise identifiziert das Xposed-Framework unser Modul und lädt es auf den Start. Diese Datei teilt dem Framework mit, welche Klassen geladen werden sollen. Dies wird auch in den Protokollen angezeigt.

SCHRITT 8: Ändern der 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 {
}
}

Implementieren Sie IXposedHookLoadPackage und implementieren Sie die Methode handleLoadPackage wie oben gezeigt.

Versuchen wir es jetzt indem Sie eine Protokollfunktion in diese handleLoadPackage -Methode einfügen:

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

Dadurch werden die geladenen Module gedruckt. Im Allgemeinen werden diese Protokolle in dieser Datei protokolliert: /data/data/de.robv.android.exposed.installer/log/debug.log (über das Xposed-Installationsprogramm leicht zugänglich).

SCHRITT 9: Führen Sie den folgenden Code aus:

Bild: Fehler beim Ausführen von ‚app‘

Wenn Sie dies direkt versuchen Führen Sie dies aus dem Android Studio, Sie werden diesen Fehler erhalten. Was in Ordnung ist, weil wir gerade keine Aktivitäten haben.

Keine Sorge, ich habe eine Lösung. Bearbeiten Sie einfach die Konfiguration ausführen und ändern Sie die Startoption von Standardaktivität in Nichts und wählen Sie OK.

Bild: Lauf ändern Konfigurationen

Versuchen Sie nun erneut, (Windows: Umschalt + F10) auszuführen.

Bei erfolgreicher Ausführung auf Ihrem Gerät haben Sie ‚ Dieses Modul wird in der Modulliste der Xposed Installer-App angezeigt. Wie im folgenden Bild gezeigt, können Sie auch den Beschreibungstext sehen, den wir in die Manifestdatei eingegeben haben.

Image: Xposed Module List

Aktivieren Sie dieses Modul einfach, indem Sie das Kontrollkästchen aktivieren und das Gerät neu starten.Öffnen Sie nach dem Neustart die Xposed Installer-Anwendung und öffnen Sie die Protokolle (Sie können auch die oben erwähnte Protokolldatei als Pfad öffnen). Sie werden folgende Zeilen sehen:

Nachdem Sie nun wissen, wie das Xposed-Modul erstellt und ausgeführt wird, können wir uns den Code der Statusleiste genauer ansehen und einige unserer eigenen Implementierungen anwenden.

SCHRITT – 10: Eingraben in den Code der Statusleiste:

Nun sind wir daran interessiert, die Uhr (den Text) aus der Statusleiste (die sich in Paket). Wie Sie wissen, ist Android eine Open-Source-Betriebsquelle, sodass Sie die Insider-Informationen des Codes sehen können. Sie können den Quellcode von Android von diesem Link herunterladen. Abhängig von Ihrer Android-Version und Ihrem Rom können sich einige Änderungen ergeben. Ab sofort sind wir nur noch daran interessiert, den Code unserer Uhr zu finden. Irgendwo im Paket com.android.systemui befindet sich eine Clock.java -Klasse, und diese Klasse erweitert TextView dass Sie dies ähnlich wie eine Textansicht behandeln können. Dies ist der Link zu dieser Klasse. Es gibt eine Methode, die die Uhrzeit in der Statusleiste aktualisiert, deren Name updateClock() lautet. Schauen Sie sich das folgende Snippet an:

Nun, was wollen wir? Wir möchten unseren Code ausführen, wenn diese Methode ausgeführt wird. Was wir im nächsten Schritt tun werden, der auch als Verknüpfen einer Methode bezeichnet wird.

SCHRITT 11: Verknüpfen der Methode:

Die XposedHelper ist eine Klasse, die einige Hilfsmethoden bereitstellt. Eine Hilfsmethode, die wir benötigen, ist findAndHookMethod, die den vollständigen Klassennamen in String, Klassenlader, verwendet (wir können ihn von XC_LoadPackage.LoadPackageParam von handleLoadPackage), dem Methodennamen, den wir verfolgen möchten (in unserem Fall updateClock) in String und XC_MethodHook Rückruf (der einfach ein Rückruf ist). Unten sehen Sie unseren Code

Im obigen Code sehen Sie, dass es zwei Methoden gibt, die ich in der anonymen Klasse XC_MethodHook implementiert habe: beforeHookedMethod und afterHookedMethod. Wie der Name schon sagt, wird zuerst die Methode vor der Hook-Methode und die letztere nach der Hook-Methode ausgeführt (in unserem Fall updateClock). Die Parameter für Argumente und Rückgabetypen werden vom Argument MethodHookParam behandelt. Ab sofort möchten wir nur noch die Farbe der Uhr der Statusleiste ändern. Wir benötigen lediglich afterHookedMethod.

Wir benötigen Zugriff auf diese TextView Objekt, das wir von param.thisObject erhalten können – dies entspricht dem this Schlüsselwort in Clock.java Klasse. Dann können wir es in TextView umwandeln und dann einfach die Farbe dieses TextView -Objekts ändern und den Text wie ich ändern :

SCHRITT – 12: Führen Sie das Modul aus:

Führen Sie den Code aus und starten Sie Ihr Gerät erneut. Sie können Ihre Uhr in Rot und den angehängten Emoji-Text sehen.

Bild: Geänderte Farbe von die Uhr in der Statusleiste

Das war’s !! Ich weiß, dass ein Neustart scheiße ist! Aber hey, du hast dein eigenes Xposed-Modul erstellt, ist das nicht großartig? !!

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.