Nedávno jsme zveřejnili návod, jak přidat závislosti pouze pro konkrétní productFlavors. Poté, co jsme provedli potřebné kroky, chtěli jsme se ujistit, že finále .apk ve skutečnosti neobsahuje žádné nežádoucí třídy už. V tomto příspěvku vám ukážeme, jak zkontrolovat, které třídy a zdroje jsou v apk.
Poznámka: Tato příručka je určena pro dekompilaci vlastní apk, a ne tvrdou práci ostatních vývojářů. Tím pádem, nezahrnuli jsme žádné kroky k reverznímu inženýrství nebo obcházení kódu.
Příprava: Instalace Nástroje
Android apk je v podstatě zip adresář, který obsahuje některé syrové zdroje (obrázky, rozvržení souborů ..)a classes.dex
soubor. Tento soubor obsahuje všechny aktuální kód a zajímá nás nejvíce. Stáhněte si všechny nástroje, které potřebujeme:
- budete muset rozbalit apk. Můžete použít buď vestavěné funkce operačního systému, nebo nainstalovat svůj oblíbený (ne)archivátor jako 7-Zip.
- Chcete-li obrátit soubor
classes.dex
na.jar
, musíte si stáhnout nástroj dex2jar. - a konečně, aby byl soubor
.jar
čitelný pro lidské oko, stáhněte a spusťte JD-Gui.
získání kódu zpět
v pořádku, nyní je čas udělat skutečnou práci. Zkopírujte soubor apk do adresáře, ve kterém chcete pracovat. Rozbalte soubor apk pomocí nástroje podle vašeho výběru a měli byste získat adresář s několika podadresáři a několika soubory.
neváhejte procházet AndroidManifest.xml
nebo res
adresář. Nejzajímavějším dílem je classes.dex
. Přepněte tedy na stažený nástroj dex2jar
a otevřete nový terminál.
Pokud používáte Mac OS, spusťte sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Uživatelé systému Windows mohou použít soubor .bat
k vytvoření souboru .jar
. Jakmile nástroj prošel, přejděte do nového souboru .jar
.
zobrazení Dekompilovaného kódu
nakonec spusťte stažený nástroj JD-GUI
a použijte jej k otevření souboru .jar
.
můžete procházet všechny balíčky a třídy, které jsou ve vašem apk. Kód je odizolovaná verze a neobsahuje žádné komentáře ani nadbytečné struktury, které vidíte ve svém IDE. Pamatujte, že toto je zkompilovaná minimalizace vaší aplikace. Nicméně, mělo by vám poskytnout dostatek informací, abyste se dozvěděli o základech aplikace. Například nám to pomohlo ověřit, že v aplikaci již nejsou žádné balíčky související s knihovnou admob.
Další Možnosti
Pokud jste právě potřebujete rychlý dekompilovat, můžete použít on-line nástroj na www.decompileandroid.com/.
Pro pokročilejší dekompilace účely, můžete se podívat na apktool, který dává spoustu dalších pomocníků.