Витягування файлів 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, для чого потрібен спеціальний екстрактор.
  • Кореневий доступ (суперкористувач) зазвичай не вимагається для резервного копіювання стандартних програм.
  • Після вилучення ви можете перенести файл на SD-карту, ПК або хмарне сховище.

Навіщо видобувати APK?

Перш ніж переходити до «як», ось чому вам слід підтримувати бібліотеку резервних копій APK:

Спосіб 1. Використання програми APK Extractor (без root-прав)

Найпростіше скористатися спеціальною утилітою. У магазині Play доступні десятки програм «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 Debugging.
  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. Під час розпаковування ви можете отримати один або кілька файлів, і знання різниці допоможе вам вирішити, що зберегти:

Якщо вашою метою є портативна резервна копія, яку буде встановлено на іншому пристрої, зазвичай вам потрібен або (а) об’єднаний «універсальний APK», створений за допомогою нашого Об’єднання APKS в APK, або (б) усі розділені файли, заархівовані разом, щоб програма встановлення розділених APK, наприклад SAI, могла відновити їх як одиницю.

Як працює видобуток (без кореня, за лаштунками)

Більшість програм «APK Extractor» насправді не потребують 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. Екстрактор копіює байти в доступний для запису каталог користувача (завантаження, папку кешу в програмі або зовнішню пам’ять) і представляє їх як файл для спільного використання або встановлення.

Кореневі методи (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.

Що не можна витягти

Витяг повертає інсталяційні файли програми. Це повертає ні:

Таким чином, видобування добре підходить для випадків використання типу «Я хочу мати копію інсталятора», але не замінює належне резервне копіювання всього пристрою (для якого потрібен root або інструменти постачальника).

Проаналізуйте роздобуті файли APK

Створивши резервні копії програм, скористайтеся нашим онлайн-пакетом, щоб перевірити їхні метадані, піктограми та дозволи.

Запустіть аналіз APK

Часті запитання (FAQ)

Чи включає розпакування програми мої дані для входу?

Ні. Екстракція копіює лише код програми та ресурси. З міркувань безпеки він не включає ваші особисті дані облікового запису, паролі чи налаштування.

Чи можу я розпакувати системні програми, такі як YouTube?

так Однак деякі системні програми можуть сильно залежати від певних версій ОС і не встановлюватися належним чином на інших пристроях.

Куди йдуть видобуті файли APK?

Більшість програм для видобування зберігають файли в папці під назвою Роздобуті файли APK або Завантажити у внутрішній пам’яті телефону.

Резервне копіювання встановлених програм без втрати розділених конфігурацій

Створення власного локального сховища додатків — це найнадійніший спосіб ніколи не втратити доступ до улюблених інструментів. Зручний додаток і термінал ADB допоможуть вам це зробити, і в будь-якому випадку витяг файлів APK — це безпечний і практичний спосіб керувати своїм пристроєм Android. Після створення резервної копії вашої бібліотеки приділіть хвилинку перевірити підписи цих резервних копій, щоб знати, що вони залишаються незмінними з часом.

Розроблено та задокументовано Mst Shaefale Провідний розробник і архітектор пакетів Android • Перевірено на Android 12–15

Mst Shaefale підтримує злиття XAPK/APKS на стороні клієнта, аналізатор бінарних маніфестів та інструменти підписання APK v1+v2 у xapktoapk.com. Помітили застарілу команду чи зміну ОС? Надіслати редакційну примітку.