recent, am publicat un ghid despre cum să adăugați dependențe doar pentru anumite produse. După ce am implementat pașii necesari, am vrut să ne asigurăm că finala .apk de fapt nu mai conține clase nedorite. În această postare, vă vom arăta cum să verificați ce clase și resurse sunt într-un apk.
Notă: Acest ghid este conceput pentru a decompila propriul apk, și nu munca grea a altor dezvoltatori. Astfel, nu am inclus nici un pas pentru a inversa-inginer sau de lucru în jurul valorii de cod confuzie.
pregătire: instalarea instrumentelor
un apk Android este practic un director arhivat, care conține unele resurse brute (imagini, fișiere de aspect, ..) și un fișier classes.dex
. Acest fișier conține tot codul real și ne interesează cel mai mult. Să descărcăm toate instrumentele de care avem nevoie:
- va trebui să dezarhivați apk-ul. Puteți utiliza fie funcționalitatea încorporată a sistemului dvs. de operare, fie instalați arhivatorul preferat (ne), cum ar fi 7-Zip.
- pentru a inversa fișierul
classes.dex
la un.jar
, va trebui să descărcați instrumentul dex2jar.în cele din urmă, pentru a face fișierul.jar
lizibil pentru ochiul uman, descărcați și rulați JD-Gui.
Noțiuni de bază Codul înapoi
bine, acum e timpul pentru a face munca reală. Copiați fișierul apk într-un director în care doriți să lucrați. Dezarhivați apk-ul folosind instrumentul ales de dvs. și ar trebui să obțineți un director cu câteva sub directoare și câteva fișiere.
nu ezitați să răsfoiți AndroidManifest.xml
sau res
director. Cea mai interesantă piesă este classes.dex
. Astfel, treceți la instrumentul dex2jar
descărcat și deschideți un nou terminal.
dacă sunteți pe Mac OS, executațish d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Utilizatorii Windows pot utiliza fișierul .bat
pentru a crea fișierul.jar
. Odată ce instrumentul a rulat, navigați la noul fișier .jar
.
vizualizarea codului decompilat
În cele din urmă, porniți instrumentulJD-GUI
descărcat și utilizați-l pentru a deschide fișierul.jar
.
puteți parcurge toate pachetele și clasele, care sunt în apk. Codul este o versiune dezbrăcată și nu conține comentarii sau structuri redundante pe care le vedeți în IDE. Amintiți-vă, aceasta este minimizarea compilată a aplicației dvs. Cu toate acestea, ar trebui să vă ofere suficiente informații pentru a afla despre elementele de bază ale aplicației. De exemplu, ne-a ajutat să verificăm dacă nu mai există pachete legate de Biblioteca admob din aplicație.
alte opțiuni
Dacă aveți nevoie doar de o decompilare rapidă, puteți utiliza instrumentul online la www.decompileandroid.com/.
pentru scopuri mai avansate de decompilare, puteți arunca o privire la apktool, care oferă o mulțime de ajutoare suplimentare.