Přeskočit na obsah

Převod souboru APK do DEX

Extrahujte soubory classes.dex a multidex z APK pomocí 7-Zip nebo unzip.

Převádějte soubory APK online

Pro převod APK do DEX zatím vlastní online konvertor nemáme, ale soubory APK můžete online převést do těchto formátů:

Chcete převádět APK na DEX?

Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.

Jak převést soubor apk do formátu dex

Některé analytické nástroje pro Android přijímají samostatný soubor DEX namísto APK a jeho extrahování může zmenšit balíček aplikace na spustitelný bytecode pro kontrolu nebo archivaci. APK obvykle již obsahuje jeden nebo více souborů DEX, takže tento úkol je obvykle extrahování, nikoli převod formátu.

Co je formát APK

APK je balíček aplikace pro Android uložený jako archiv založený na formátu ZIP. Nástroje Android Studio a Gradle build vytvářejí soubory APK obsahující kód aplikace, zkompilované resources, manifest, assets, nativní knihovny, certifikáty a metadata balíčku.

Spustitelný kód je obvykle uložen v souboru classes.dex. Multidex aplikace obsahují také classes2.dex, classes3.dex a soubory s vyššími čísly. Android build pipelines obecně generují DEX pomocí d8; R8 může kód navíc zmenšit a optimalizovat. Starší projekty mohou používat dx.

Co je formát DEX

DEX neboli Dalvik Executable je bytecode systému Android pro runtime Dalvik a ART. Samostatný soubor DEX je užitečný pro nástroje, které přijímají bytecode bez APK, pro zachování pouze spustitelného kódu nebo pro kontrolu tříd pomocí nástrojů, jako jsou baksmali nebo JADX.

DEX není instalovatelná aplikace a neobsahuje resources, manifest, nativní knihovny, assets ani informace o podpisu z APK. Nejde také o zdrojový kód Java. JADX může pro kontrolu vytvořit výstup podobný jazyku Java, ale při dekompilaci dojde ke ztrátě komentářů a formátování a původní řídicí tok nebo typy nemusí být přesně obnoveny.

Jak extrahovat DEX z APK

  1. Uchovejte nezměněnou kopii souboru APK a před otevřením nebo extrahováním neznámé soubory zkontrolujte.
  2. V Linuxu nebo macOS vypište obsah balíčku pomocí unzip -l app.apk nebo ve Windows otevřete APK pomocí 7-Zip. Přejmenování .apk na .zip není nutné, protože oba formáty používají kontejner ZIP.
  3. Extrahujte každou položku odpovídající classes*.dex. V shellu vytvořte výstupní adresář a spusťte mkdir -p dex-output && unzip -j app.apk 'classes*.dex' -d dex-output. V 7-Zip vyberte položky DEX a zvolte 7-Zip → Extract To.
  4. Ověřte, že výstup obsahuje všechny číslované soubory DEX, nejen classes.dex. Zachovejte původní názvy souborů, protože soubory multidex společně představují bytecode aplikace.

7-Zip je praktická desktopová volba ve Windows, zatímco standardní nástroj unzip je v Linuxu a macOS dostačující. Tyto nástroje extrahují existující soubory, aniž by znovu kompilovaly nebo komprimovaly kód aplikace.

Kdy je skutečně nutná rekompilace

Pokud byl kód DEX upraven nebo vygenerován ze smali či jiného vstupu, použijte k jeho kompilaci nástroj d8 z Android SDK, například d8 --output out classes.jar, pokud je vstupem kompatibilní JAR. Nahrazení souborů DEX uvnitř APK je operace opětovného sestavení, nikoli jednoduché extrahování; znovu sestavený balíček musí být před instalací v Androidu zarovnán a podepsán. Dex2jar není správný nástroj pro převod APK na DEX: převádí bytecode DEX na soubory JAR kompatibilní s Javou pro účely analýzy.

Omezení kompatibility a zabezpečení

Extrahování DEX zachovává bytecode obsažený v APK, ale samostatný soubor může záviset na dalších souborech DEX, resources, nativních knihovnách nebo třídách balíčku. Sloučení souborů multidex do jednoho není neutrální převod a může překročit limity počtu referencí na metody v DEX nebo vyžadovat opětovné sestavení s kompatibilními závislostmi a vhodnou úrovní API.

Změna libovolného souboru DEX zneplatní původní podpis APK při opětovném sestavení balíčku. Samostatný soubor DEX nemá podpis APK a nelze jej samostatně nainstalovat. Některé chráněné nebo neobvyklé balíčky mohou načítat další kód za běhu, ukládat kód mimo obvyklé položky classes*.dex nebo používat split APK; extrahování viditelných položek proto nemusí zachytit veškerý spustitelný kód.

Online převodníky APK na DEX nejsou u běžných balíčků nutné a nejsou vhodné pro proprietární, podepsané nebo nedůvěryhodné soubory, protože nahráním zpřístupníte kód aplikace a případně i vložená tajemství. Lokální extrahování pomocí 7-Zip nebo unzip je bezpečnější a přímo vytvoří požadované soubory DEX.

APK vs DEX: srovnání formátů

Jak si formáty APK a DEX stojí v nejdůležitějších vlastnostech pro tento převod.

Srovnání souborových formátů APK a DEX
Vlastnost .APK Android Package .DEX Dalvik Executable
Otevřený standard Ne Ne
Komprese Obojí —
Typická velikost souboru Střední Malé
Otevírá se ve webovém prohlížeči Ne Ne
Další úpravy Nelze přímo upravovat Nelze přímo upravovat
Podpora metadat Základní Základní
Čitelný jako prostý text Ne Ne
Nejvhodnější pro Vkládání do aplikací Vkládání do aplikací
Zavedeno 2008 2008
Vývojář Google Google
MIME typ application/vnd.android.package-archive —

Informace o příponách a typech souborů poskytuje File-Extensions.org

Databáze v současné době neobsahuje žádný program na konverzi souborů apk.

Podobné .apk konverze

Konverze do .dex
z jiných formátů

Sdílejte na sociálních sítích:

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.