Извличане на APK файлове от вашите инсталирани приложения за Android

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

Правна и безопасна бележка: Тази статия е само за образователни цели. Извличането на APK от устройство е предназначено за лично архивиране на приложения вече сте инсталирали законно на устройство, което притежавате. XAPK към APK не хоства, разпространява, свързва или улеснява достъпа до защитени с авторски права, платени или пиратски приложения. Преразпределението на извлечени APK файлове на платени или защитени с авторски права приложения не е разрешено. Вижте нашите Отказ от отговорност за пълните условия.

Имате невероятно приложение на телефона си, което сте прекарали часове в настройване, само за да разберете, че е премахнато от Play Store. Или може би преминавате към ново устройство и искате офлайн копие на любимите си инструменти за всеки случай. Извличане на APK файлове от текущо инсталираните ви приложения е решението.

По-долу разглеждаме изтеглянето на APK от вашия телефон без root, където това е полезно за архивиране и как да проверите извлечения файл след това с нашия инструменти за онлайн анализ.

Ключови изводи

  • Можете да извлечете APK файла на почти всяко приложение директно от вътрешната памет на вашето устройство.
  • Съвременните приложения често използват Разделени APK файлове, което изисква специализиран екстрактор.
  • Достъпът до root (суперпотребител) обикновено е не се изисква за архивиране на стандартни приложения.
  • След като бъде извлечен, можете да прехвърлите файла на SD карта, компютър или облачно хранилище.

Защо да извличате APK?

Преди да преминете към „как“, ето защо трябва да поддържате библиотека за архивиране на APK:

Метод 1: Използване на приложение за извличане на APK (без root)

Най-лесният начин е да използвате специална помощна програма. В Play Store има десетки приложения „APK Extractor“. Тези инструменти работят, като намерят инсталационния път на приложението в /data/app/ (който е четлив, но обикновено скрит) и копират base.apk във вашата публична папка за изтегляне.

стъпки:

  1. Инсталирайте уважаван APK Extractor.
  2. Отворете приложението и дайте „Разрешения за съхранение“, ако бъде поискано.
  3. Превъртете през списъка с всички инсталирани приложения.
  4. Докоснете приложението, което искате да запазите.
  5. Инструментът незабавно ще копира APK във вашата вътрешна памет.

Работа с разделени APK файлове

Ако извлечете сложно приложение като Facebook или WhatsApp, може да намерите няколко .apk файла вместо един. Това са Разделени APK файлове. За да ги използвате, ще ви е необходим нашият Инструмент за сливане на APKS/APKM, за да ги комбинирате в един файл.

Метод 2: Ръчно извличане чрез ADB (разширено)

Ако не искате да инсталирате допълнителни приложения на телефона си, можете да използвате компютър с Android Debug Bridge (ADB):

  1. Свържете телефона си към компютъра чрез USB и активирайте USB отстраняване на грешки.
  2. Отворете терминал и напишете: adb shell pm path com.example.app
  3. Това ще покаже пътя. Пример: package:/data/app/com.example.app/base.apk
  4. Тип: adb pull /data/app/com.example.app/base.apk ./backup.apk
  5. Файлът вече е на вашия компютър!

Какво всъщност получавате, когато извличате

„Инсталирано“ приложение за Android вече не се съхранява на устройството като един APK, особено ако е дошло от Play Store като Android App Bundle. Когато извличате, може да получите един или няколко файла и познаването на разликата ви помага да решите какво да запазите:

Ако целта ви е преносимо архивиране, което ще се инсталира на друго устройство, обикновено искате или (a) обединен „универсален APK“, произведен с нашия APKS към APK сливане, или (b) всички разделения да бъдат архивирани заедно, така че инсталатор на разделен APK като SAI да може да ги възстанови като единица.

Как работи извличането (без root, зад кулисите)

Повечето приложения за извличане на APK всъщност не се нуждаят от root, защото Android излага инсталираните пакетни файлове чрез път за четене на системно ниво. Стандартният поток е:

  1. Приложението за извличане извиква PackageManager.getPackageInfo(package, ...), за да получи списъка с инсталирани приложения.
  2. За избраното приложение се чете ApplicationInfo.sourceDir (пътят на основния APK, обикновено /data/app/<package>-<hash>/base.apk) и splitSourceDirs (пътищата на всяко разделяне на конфигурацията).
  3. Инсталираният от потребителя екстрактор не може да чете тези пътища директно, но механизмът FileProvider в Android позволява на системните компоненти да предоставят временен достъп за четене до конкретни URI. Операционната система прави позволява на всяко приложение да отваря своите собствени APK и APK на други приложения по URI; това е умишлено, тъй като инсталационният път винаги е бил предназначен да бъде четим от света за задачи като деинсталиране и актуализиране.
  4. Екстракторът копира байтовете в потребителска директория с възможност за запис (Изтегляния, папка в кеша на приложението или външно хранилище) и ги представя като файл за споделяне или инсталиране.

Методите само за root (su; cp /data/app/...) заобикалят API и директно четат необработените пътища. Те не са по-бързи и не са необходими за несистемни приложения.

Извличане чрез ADB (препоръчително за архивиране)

Най-чистият работен процес извън приложението е ADB, който повечето разработчици вече са настроили. Две команди вършат цялата работа:

# 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 ./

За приложения с разделени APK повторете adb pull за всеки път. За да получите един файл за инсталиране, пуснете всички в нашия APKS към APK сливане.

Какво не може да бъде извлечено

Извличането връща инсталационните файлове на приложението. Връща не:

Следователно извличането е добро за случаи на употреба „Искам копие от инсталационната програма да се съхранява наоколо“, но не е заместител на правилното архивиране на цялото устройство (което изисква руут или инструментариум на доставчика).

Анализирайте вашите извлечени APK файлове

След като направите резервно копие на вашите приложения, използвайте нашия онлайн пакет, за да проверите техните метаданни, икони и разрешения.

Стартирайте APK анализ

Често задавани въпроси (FAQ)

Извличането на приложение включва ли моите данни за вход?

Не. Извличането копира само код на приложението и ресурси. Той не включва вашите лични данни за акаунта, пароли или настройки от съображения за сигурност.

Мога ли да извличам системни приложения като YouTube?

да Някои системни приложения обаче може да имат дълбоки зависимости от конкретни версии на ОС и може да не се инсталират правилно на други устройства.

Къде отиват извлечените APK файлове?

Повечето приложения за извличане записват файлове в папка с име Извлечени APK файлове или Изтегляне във вътрешната памет на телефона ви.

Архивиране на инсталирани приложения без загуба на разделени конфигурации

Изграждането на собствено локално хранилище за приложения е най-сигурният начин никога да не губите достъп до инструментите, които обичате. Удобното за докосване приложение и ADB терминалът ви отвеждат дотам и така или иначе извличане на APK файлове е безопасен и практичен начин за управление на вашето Android устройство. След като направите резервно копие на вашата библиотека, отделете малко време за проверка на подписите на тези архиви, за да сте сигурни, че остават неподправени с течение на времето.

Проектиран и документиран от Mst Shaefale Водещ разработчик и архитект на пакети за Android • Проверен на Android 12–15

Mst Shaefale поддържа инструментите за подписване на XAPK/APKS от страна на клиента, парсер на бинарен манифест и APK v1+v2 в xapktoapk.com. Забележите остаряла команда или промяна на операционната система? Изпратете редакционна бележка.