Extrahování souborů APK z nainstalovaných aplikací pro Android

A smartphone with app icons and a tray pulling out an app, illustrating extracting APKs

Právní a bezpečnostní upozornění: Tento článek je určen pouze pro vzdělávací účely. Extrahování APK ze zařízení je určeno pro osobní zálohování aplikací jste již legálně nainstalovali na zařízení, které vlastníte. XAPK to APK nehostuje, nedistribuuje, neodkazuje na ani neusnadňuje přístup k aplikacím chráněným autorským právem, placeným nebo pirátským aplikacím. Redistribuce extrahovaných souborů APK placených aplikací nebo aplikací chráněných autorskými právy není povolena. Úplné podmínky najdete v našem Zřeknutí se odpovědnosti.

V telefonu máte úžasnou aplikaci, kterou jste strávili hodiny nastavováním, jen abyste zjistili, že byla odstraněna z Obchodu Play. Nebo možná přecházíte na nové zařízení a chcete offline kopii svých oblíbených nástrojů pro každý případ. Řešením je Extrahování souborů APK z aktuálně nainstalovaných aplikací.

Níže si projdeme vytažením souboru APK z telefonu bez rootu, kde se to hodí pro zálohování a jak následně zkontrolovat extrahovaný soubor pomocí našeho online analytické nástroje.

Klíčové věci

  • Soubor APK téměř jakékoli aplikace můžete extrahovat přímo z interního úložiště vašeho zařízení.
  • Moderní aplikace často používají Rozdělit soubory APK, které vyžadují specializovaný extraktor.
  • Root (Superuser) přístup je obecně není vyžadováno pro zálohování standardních aplikací.
  • Po extrahování můžete soubor přenést na SD kartu, PC nebo cloudové úložiště.

Proč extrahovat soubory APK?

Než se pustíte do „jak“, zde je důvod, proč byste měli udržovat záložní knihovnu APK:

Metoda 1: Použití aplikace APK Extractor (bez kořene)

Nejjednodušší způsob je použít speciální nástroj. V Obchodě Play jsou k dispozici desítky aplikací „APK Extractor“. Tyto nástroje fungují tak, že naleznou instalační cestu aplikace v /data/app/ (která je čitelná, ale normálně skrytá) a zkopírují base.apk do vaší veřejné složky pro stahování.

kroky:

  1. Nainstalujte si renomovaný APK Extractor.
  2. Otevřete aplikaci a na požádání udělte „Oprávnění k úložišti“.
  3. Procházejte seznam všech nainstalovaných aplikací.
  4. Klepněte na aplikaci, kterou chcete uložit.
  5. Nástroj okamžitě zkopíruje soubor APK do vašeho interního úložiště.

Zpracování rozdělených souborů APK

Pokud extrahujete komplexní aplikaci, jako je Facebook nebo WhatsApp, můžete místo jednoho najít několik souborů .apk. Jedná se o Rozdělit soubory APK. Abyste je mohli používat, budete potřebovat náš Nástroj pro sloučení APKS/APKM, který je spojí do jednoho souboru.

Metoda 2: Ruční extrakce přes ADB (pokročilé)

Pokud nechcete do telefonu instalovat další aplikace, můžete použít počítač se Android Debug Bridge (ADB):

  1. Připojte telefon k počítači přes USB a povolte ladění USB.
  2. Otevřete terminál a zadejte: adb shell pm path com.example.app
  3. Tím se ukáže cesta. Příklad: package:/data/app/com.example.app/base.apk
  4. Typ: adb pull /data/app/com.example.app/base.apk ./backup.apk
  5. Soubor je nyní na vašem PC!

Co vlastně získáte, když extrahujete

„Nainstalovaná“ aplikace pro Android již není v zařízení uložena jako jeden soubor APK, zejména pokud pochází z Obchodu Play jako balíček Android App Bundle. Při extrahování můžete získat jeden nebo několik souborů a znalost rozdílu vám pomůže rozhodnout, co si ponechat:

Pokud je vaším cílem přenosná záloha, která se nainstaluje na jiné zařízení, obvykle chcete buď (a) sloučený „univerzální soubor APK“ vyrobený s naším Sloučení APKS do APK, nebo (b) všechna rozdělení archivována dohromady, aby je instalátor split-APK, jako je SAI, mohl obnovit jako jednotku.

Jak extrakce funguje (bez kořenů, ze zákulisí)

Většina aplikací "APK extractor" ve skutečnosti nepotřebuje root, protože Android zpřístupňuje nainstalované soubory balíčků prostřednictvím cesty pro čtení na úrovni systému. Standardní tok je:

  1. Aplikace extraktoru volá PackageManager.getPackageInfo(package, ...), aby získala seznam nainstalovaných aplikací.
  2. Pro vybranou aplikaci čte ApplicationInfo.sourceDir (cesta základního souboru APK, obvykle /data/app/<package>-<hash>/base.apk a splitSourceDirs (cesta libovolných konfiguračních rozdělení)).
  3. Uživatelem nainstalovaný extraktor nemůže číst tyto cesty přímo, ale mechanismus FileProvider v Androidu umožňuje systémovým komponentám udělit dočasný přístup pro čtení ke konkrétním URI. OS dělá umožňuje libovolné aplikaci otevřít soubory vlastní APK a soubory APK jiných aplikací podle URI; je to záměrné, protože instalační cesta měla být vždy srozumitelná pro úkoly, jako je odinstalace a aktualizace.
  4. Extraktor zkopíruje bajty do zapisovatelného uživatelského adresáře (Stažené soubory, složka mezipaměti v aplikaci nebo externí úložiště) a prezentuje je jako soubor ke sdílení nebo instalaci.

Metody pouze root (su; cp /data/app/..). obcházejí rozhraní API a přímo čtou nezpracované cesty. Nejsou rychlejší a nejsou nutné pro nesystémové aplikace.

Extrahování přes ADB (doporučeno pro zálohy)

Nejčistší pracovní postup mimo aplikace je ADB, který už má většina vývojářů nastaveno. Celou práci provedou dva příkazy:

# 1. Find the on-device path(s) for the package
adb shell pm path com.example.app

# Output (single APK):
#   package:/data/app/~~hash==/com.example.app-1/base.apk
#
# Output (split APKs):
#   package:/data/app/~~hash==/com.example.app-1/base.apk
#   package:/data/app/~~hash==/com.example.app-1/split_config.arm64_v8a.apk
#   package:/data/app/~~hash==/com.example.app-1/split_config.xxhdpi.apk
#   package:/data/app/~~hash==/com.example.app-1/split_config.en.apk

# 2. Pull each path
adb pull /data/app/~~hash==/com.example.app-1/base.apk ./

U aplikací rozdělených APK opakujte adb pull pro každou cestu. Chcete-li získat jeden instalovatelný soubor, vložte je všechny do našeho Sloučení APKS do APK.

Co nelze extrahovat

Extrakce vrátí instalační soubory aplikace. Vrátí ne:

Extrakce je proto dobrá pro případy použití typu „chci mít kopii instalátoru“, ale nenahrazuje správné zálohy celého zařízení (které vyžadují nástroje root nebo dodavatele).

Analyzujte extrahované soubory APK

Po zálohování aplikací použijte naši online sadu ke kontrole jejich metadat, ikon a oprávnění.

Spusťte analýzu APK

Často kladené otázky (FAQ)

Obsahuje extrahování aplikace moje přihlašovací údaje?

Ne. Extrakce pouze kopíruje kód aplikace a zdroje. Z bezpečnostních důvodů nezahrnuje údaje o vašem osobním účtu, hesla ani nastavení.

Mohu extrahovat systémové aplikace, jako je YouTube?

Ano. Některé systémové aplikace však mohou být silně závislé na konkrétních verzích operačního systému a nemusí se správně nainstalovat na jiná zařízení.

Kam jdou extrahované soubory APK?

Většina extrakčních aplikací ukládá soubory do složky s názvem Extrahované soubory APK nebo Stáhnout v interním úložišti telefonu.

Zálohování nainstalovaných aplikací bez ztráty rozdělených konfigurací

Vytvoření vlastního místního úložiště aplikací je nejjistější způsob, jak nikdy neztratit přístup k nástrojům, které máte rádi. Aplikace a terminál ADB vás tam dostanou a extrahování souborů APK je bezpečný a praktický způsob, jak spravovat vaše zařízení Android. Po zálohování knihovny si věnujte chvíli ověřit podpisy těchto záloh, abyste věděli, že časem zůstanou nezměněny.

Navrhl a zdokumentoval Mst Shaefale Vedoucí vývojář a architekt balíčku Android • Ověřeno na Androidu 12–15

Mst Shaefale spravuje nástroje pro slučování XAPK/APKS na straně klienta, analyzátor binárních manifestů a nástroje pro podepisování APK v1+v2 na xapktoapk.com. Zaznamenali jste zastaralý příkaz nebo změnu operačního systému? Pošlete redakční poznámku.