Извличане на APK файлове от вашите инсталирани приложения за Android
Правна и безопасна бележка: Тази статия е само за образователни цели. Извличането на APK от устройство е предназначено за лично архивиране на приложения вече сте инсталирали законно на устройство, което притежавате. XAPK към APK не хоства, разпространява, свързва или улеснява достъпа до защитени с авторски права, платени или пиратски приложения. Преразпределението на извлечени APK файлове на платени или защитени с авторски права приложения не е разрешено. Вижте нашите Отказ от отговорност за пълните условия.
Имате невероятно приложение на телефона си, което сте прекарали часове в настройване, само за да разберете, че е премахнато от Play Store. Или може би преминавате към ново устройство и искате офлайн копие на любимите си инструменти за всеки случай. Извличане на APK файлове от текущо инсталираните ви приложения е решението.
По-долу разглеждаме изтеглянето на APK от вашия телефон без root, където това е полезно за архивиране и как да проверите извлечения файл след това с нашия инструменти за онлайн анализ.
Ключови изводи
- Можете да извлечете APK файла на почти всяко приложение директно от вътрешната памет на вашето устройство.
- Съвременните приложения често използват Разделени APK файлове, което изисква специализиран екстрактор.
- Достъпът до root (суперпотребител) обикновено е не се изисква за архивиране на стандартни приложения.
- След като бъде извлечен, можете да прехвърлите файла на SD карта, компютър или облачно хранилище.
Защо да извличате APK?
Преди да преминете към „как“, ето защо трябва да поддържате библиотека за архивиране на APK:
- Запазване на преустановени приложения: Ако програмист премахне своето приложение от магазина, вие все още ще имате вашето инсталируемо копие.
- Поддръжка на наследен хардуер: Запазете версиите, които работят на вашия по-стар таблет, когато официалното приложение се актуализира, за да изисква по-нови версии на Android.
- Възстановяване на версията: Ако актуализация въведе грешки, можете да инсталирате отново извлечения архив и да се върнете в работата.
- Споделяне на приложения: Изпратете конкретна версия на приложение на приятел чрез Bluetooth или кабел, без да използвате клетъчни данни.
Метод 1: Използване на приложение за извличане на APK (без root)
Най-лесният начин е да използвате специална помощна програма. В Play Store има десетки приложения „APK Extractor“. Тези инструменти работят, като намерят инсталационния път на приложението в /data/app/ (който е четлив, но обикновено скрит) и копират base.apk във вашата публична папка за изтегляне.
стъпки:
- Инсталирайте уважаван APK Extractor.
- Отворете приложението и дайте „Разрешения за съхранение“, ако бъде поискано.
- Превъртете през списъка с всички инсталирани приложения.
- Докоснете приложението, което искате да запазите.
- Инструментът незабавно ще копира APK във вашата вътрешна памет.
Работа с разделени APK файлове
Ако извлечете сложно приложение като Facebook или WhatsApp, може да намерите няколко .apk файла вместо един. Това са Разделени APK файлове. За да ги използвате, ще ви е необходим нашият Инструмент за сливане на APKS/APKM, за да ги комбинирате в един файл.
Метод 2: Ръчно извличане чрез ADB (разширено)
Ако не искате да инсталирате допълнителни приложения на телефона си, можете да използвате компютър с Android Debug Bridge (ADB):
- Свържете телефона си към компютъра чрез USB и активирайте USB отстраняване на грешки.
- Отворете терминал и напишете: adb shell pm path com.example.app
- Това ще покаже пътя. Пример: package:/data/app/com.example.app/base.apk
- Тип: adb pull /data/app/com.example.app/base.apk ./backup.apk
- Файлът вече е на вашия компютър!
Какво всъщност получавате, когато извличате
„Инсталирано“ приложение за Android вече не се съхранява на устройството като един APK, особено ако е дошло от Play Store като Android App Bundle. Когато извличате, може да получите един или няколко файла и познаването на разликата ви помага да решите какво да запазите:
- Единичен базов APK. По-стари или по-малки приложения, които са били качени в Play като обикновен APK, все още се инсталират като един файл. Извличането връща един .apk, който е самостоятелен.
- Основен APK + няколко разделяния на конфигурация. Приложенията, публикувани като AAB, се инсталират като множество APK едно до друго: base.apk плюс split_config.<abi>.apk (роден код за вашия процесор), split_config.<density>.apk (ресурси за вашия екран) и split_config.<language>.apk (низове за вашия локал). Извличането ги връща всички. За да инсталирате отново същото приложение на същото устройство, имате нужда от всички.
- Данни за пакет от активи, понякога. Съвременните игри, използващи Play Asset Delivery, съхраняват големи геймплейни активи в частния кеш на приложението извън самите APK файлове. Те обикновено не могат да бъдат експортирани с обикновен екстрактор; пакетите с активи са проектирани да бъдат повторно извлечени при първото стартиране.
Ако целта ви е преносимо архивиране, което ще се инсталира на друго устройство, обикновено искате или (a) обединен „универсален APK“, произведен с нашия APKS към APK сливане, или (b) всички разделения да бъдат архивирани заедно, така че инсталатор на разделен APK като SAI да може да ги възстанови като единица.
Как работи извличането (без root, зад кулисите)
Повечето приложения за извличане на APK всъщност не се нуждаят от root, защото Android излага инсталираните пакетни файлове чрез път за четене на системно ниво. Стандартният поток е:
- Приложението за извличане извиква PackageManager.getPackageInfo(package, ...), за да получи списъка с инсталирани приложения.
- За избраното приложение се чете ApplicationInfo.sourceDir (пътят на основния APK, обикновено /data/app/<package>-<hash>/base.apk) и splitSourceDirs (пътищата на всяко разделяне на конфигурацията).
- Инсталираният от потребителя екстрактор не може да чете тези пътища директно, но механизмът FileProvider в Android позволява на системните компоненти да предоставят временен достъп за четене до конкретни URI. Операционната система прави позволява на всяко приложение да отваря своите собствени APK и APK на други приложения по URI; това е умишлено, тъй като инсталационният път винаги е бил предназначен да бъде четим от света за задачи като деинсталиране и актуализиране.
- Екстракторът копира байтовете в потребителска директория с възможност за запис (Изтегляния, папка в кеша на приложението или външно хранилище) и ги представя като файл за споделяне или инсталиране.
Методите само за 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 сливане.
Какво не може да бъде извлечено
Извличането връща инсталационните файлове на приложението. Връща не:
- Данни от приложението: предпочитания, бази данни, запазване на файлове. Те живеят под /data/data/<package>/ и са защитени от не-root извличане от пясъчника на потребителските данни.
- Играйте пакети с активи Asset Delivery: изтеглено при първо стартиране, частно кеширано и се очаква да бъде повторно извлечено, ако липсва.
- Запазен в облака напредък: ако приложението използва Google Play Games, Firebase или подобни, съхранената в облака част е на сървърите на издателя, а не на вашето устройство.
Следователно извличането е добро за случаи на употреба „Искам копие от инсталационната програма да се съхранява наоколо“, но не е заместител на правилното архивиране на цялото устройство (което изисква руут или инструментариум на доставчика).
Анализирайте вашите извлечени APK файлове
След като направите резервно копие на вашите приложения, използвайте нашия онлайн пакет, за да проверите техните метаданни, икони и разрешения.
Стартирайте APK анализЧесто задавани въпроси (FAQ)
Извличането на приложение включва ли моите данни за вход?
Не. Извличането копира само код на приложението и ресурси. Той не включва вашите лични данни за акаунта, пароли или настройки от съображения за сигурност.
Мога ли да извличам системни приложения като YouTube?
да Някои системни приложения обаче може да имат дълбоки зависимости от конкретни версии на ОС и може да не се инсталират правилно на други устройства.
Къде отиват извлечените APK файлове?
Повечето приложения за извличане записват файлове в папка с име Извлечени APK файлове или Изтегляне във вътрешната памет на телефона ви.
Архивиране на инсталирани приложения без загуба на разделени конфигурации
Изграждането на собствено локално хранилище за приложения е най-сигурният начин никога да не губите достъп до инструментите, които обичате. Удобното за докосване приложение и ADB терминалът ви отвеждат дотам и така или иначе извличане на APK файлове е безопасен и практичен начин за управление на вашето Android устройство. След като направите резервно копие на вашата библиотека, отделете малко време за проверка на подписите на тези архиви, за да сте сигурни, че остават неподправени с течение на времето.