Haben Sie zuvor überprüft, ob das Paket Open Source ist?
ott--
Eine APK-Datei ist einfach eine ZIP-Datei. Leider wird jeder App-Build für 'Release' wahrscheinlich von ProGuard geschützt .
Daniel López
@MatthewRead The Op fragt, ob er den Code von einer API erhalten könnte, und ich antwortete, wie dieses Phänomen heißt und wie man zumindest verhindern kann, dass eine ähnliche App erstellt wird. Er sagt nicht, wie er verhindern soll, dass der Code abgerufen wird. Ja, das beantwortet die Frage.
Wenn Sie Glück haben und Ihre .apkDatei nicht durch Proguard oder Analog geschützt ist , können Sie das APK-Tool verwenden . Es ist ein Tool für das Reverse Engineering von geschlossenen Android-Apps von Drittanbietern.
Vorgehensweise zum Dekodieren von APK-Dateien, schrittweise Anleitung:
Schritt 1:
Erstellen Sie einen neuen Ordner und kopieren Sie die APK-Datei, die Sie dekodieren möchten.
Benennen Sie nun die Erweiterung dieser .apk-Datei in .zip um (z. B. von filename.apk in filename.zip umbenennen) und speichern Sie sie. Jetzt können Sie auf die classes.dex-Dateien usw. zugreifen. In diesem Stadium können Sie Drawables sehen, aber keine XML- und Java-Dateien. Fahren Sie also fort.
Schritt 2:
Extrahieren Sie nun diese ZIP-Datei in denselben Ordner (oder NEUEN ORDNER).
Verschieben Sie die Datei classes.dex in den Ordner dex2jar.
Öffnen Sie nun die Eingabeaufforderung und wechseln Sie in das Verzeichnis dieses Ordners (oder NEUEN ORDNERS). Dann schreibe d2j-dex2jar classes.dexund drücke Enter. Sie haben jetzt die Datei classes.dex.dex2jar im selben Ordner.
Laden Sie den Java Decompiler herunter , doppelklicken Sie auf jd-gui, klicken Sie auf open file und öffnen Sie die Datei classes.dex.dex2jar aus diesem Ordner: Sie erhalten jetzt Klassendateien.
Speichern Sie alle diese Klassendateien (klicken Sie in jd-gui auf Datei -> Alle Quellen speichern) unter dem Namen src. Zu diesem Zeitpunkt erhalten Sie die Java-Quelle, aber die XML-Dateien sind immer noch nicht lesbar. Fahren Sie also fort.
Schritt 3:
Öffnen Sie jetzt einen weiteren neuen Ordner
Geben Sie die APK-Datei ein, die Sie dekodieren möchten
Laden Sie die neueste Version von apktool UND apktool-Installationsfenster herunter (beide können über denselben Link heruntergeladen werden) und platzieren Sie sie in demselben Ordner
Download - Rahmen-res.apk und steckte es in demselben Ordner (Nicht alle apk - Datei müssen diese Datei, aber es tut nicht weh)
Öffnen Sie ein Befehlsfenster
Navigieren Sie zum Stammverzeichnis von APKtool und geben Sie den folgenden Befehl ein:
apktool if framework-res.apk
apktool d myApp.apk (wobei myApp.apk den Dateinamen angibt, den Sie dekodieren möchten)
Jetzt erhalten Sie einen Dateiordner in diesem Ordner und können die XML-Dateien des apk leicht lesen.
Schritt 4:
Es ist kein Schritt, nur den Inhalt beider Ordner (in diesem Fall beide neuen Ordner) in den einen zu kopieren
Antworten:
Auch wenn ProGuard verwendet wurde, können Sie einige interessante Einblicke erhalten. Hier ist eine StackOverflow-Frage mit einer ausführlichen Erklärung: Android: Abrufen von Quellcode aus einer APK-Datei . YouTube-Video mit einer ausführlichen Anleitung . Und ein Blog-Eintrag dazu: Wie man Quellcode aus einer Android APK-Datei abruft .
quelle
Wenn Sie Glück haben und Ihre
.apk
Datei nicht durch Proguard oder Analog geschützt ist , können Sie das APK-Tool verwenden . Es ist ein Tool für das Reverse Engineering von geschlossenen Android-Apps von Drittanbietern.quelle
Aus einem der Community-Wikis von Parnkul Garg in SO :
Vorgehensweise zum Dekodieren von APK-Dateien, schrittweise Anleitung:
Schritt 1:
Erstellen Sie einen neuen Ordner und kopieren Sie die APK-Datei, die Sie dekodieren möchten.
Benennen Sie nun die Erweiterung dieser .apk-Datei in .zip um (z. B. von filename.apk in filename.zip umbenennen) und speichern Sie sie. Jetzt können Sie auf die classes.dex-Dateien usw. zugreifen. In diesem Stadium können Sie Drawables sehen, aber keine XML- und Java-Dateien. Fahren Sie also fort.
Schritt 2:
Extrahieren Sie nun diese ZIP-Datei in denselben Ordner (oder NEUEN ORDNER).
Laden Sie dex2jar herunter und extrahieren Sie es in denselben Ordner (oder NEUEN ORDNER).
Verschieben Sie die Datei classes.dex in den Ordner dex2jar.
Öffnen Sie nun die Eingabeaufforderung und wechseln Sie in das Verzeichnis dieses Ordners (oder NEUEN ORDNERS). Dann schreibe
d2j-dex2jar classes.dex
und drücke Enter. Sie haben jetzt die Datei classes.dex.dex2jar im selben Ordner.Laden Sie den Java Decompiler herunter , doppelklicken Sie auf jd-gui, klicken Sie auf open file und öffnen Sie die Datei classes.dex.dex2jar aus diesem Ordner: Sie erhalten jetzt Klassendateien.
Speichern Sie alle diese Klassendateien (klicken Sie in jd-gui auf Datei -> Alle Quellen speichern) unter dem Namen src. Zu diesem Zeitpunkt erhalten Sie die Java-Quelle, aber die XML-Dateien sind immer noch nicht lesbar. Fahren Sie also fort.
Schritt 3:
Öffnen Sie jetzt einen weiteren neuen Ordner
Geben Sie die APK-Datei ein, die Sie dekodieren möchten
Laden Sie die neueste Version von apktool UND apktool-Installationsfenster herunter (beide können über denselben Link heruntergeladen werden) und platzieren Sie sie in demselben Ordner
Download - Rahmen-res.apk und steckte es in demselben Ordner (Nicht alle apk - Datei müssen diese Datei, aber es tut nicht weh)
Öffnen Sie ein Befehlsfenster
Navigieren Sie zum Stammverzeichnis von APKtool und geben Sie den folgenden Befehl ein:
apktool if framework-res.apk
apktool d myApp.apk
(wobei myApp.apk den Dateinamen angibt, den Sie dekodieren möchten)Jetzt erhalten Sie einen Dateiordner in diesem Ordner und können die XML-Dateien des apk leicht lesen.
Schritt 4:
Es ist kein Schritt, nur den Inhalt beider Ordner (in diesem Fall beide neuen Ordner) in den einen zu kopieren
und genieße den Quellcode ...
quelle