Wyodrębnianie plików APK z zainstalowanych aplikacji na Androida

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

Informacje prawne i dotyczące bezpieczeństwa: Ten artykuł służy wyłącznie celom edukacyjnym. Wyodrębnianie pliku APK z urządzenia przeznaczone jest do osobistego tworzenia kopii zapasowych aplikacji które już legalnie zainstalowałeś na posiadanym urządzeniu. XAPK to APK nie hostuje, nie rozpowszechnia, nie łączy ani nie ułatwia dostępu do aplikacji chronionych prawem autorskim, płatnych lub pirackich. Redystrybucja wyodrębnionych plików APK aplikacji płatnych lub chronionych prawem autorskim jest niedozwolona. Pełne warunki znajdziesz w naszym Zastrzeżenie.

Masz na telefonie niesamowitą aplikację, którą konfigurowałeś godzinami, a potem dowiedziałeś się, że została usunięta ze Sklepu Play. A może przełączasz się na nowe urządzenie i na wszelki wypadek chcesz mieć kopię offline swoich ulubionych narzędzi. Rozwiązaniem jest Wyodrębnianie plików APK z aktualnie zainstalowanych aplikacji.

Poniżej opisujemy pobieranie pliku APK z telefonu bez rootowania, gdzie jest to przydatne do tworzenia kopii zapasowych, oraz jak później sprawdzić wyodrębniony plik za pomocą naszego narzędzia analityczne dostępne w Internecie.

Kluczowe dania na wynos

  • Możesz wyodrębnić plik APK niemal dowolnej aplikacji bezpośrednio z pamięci wewnętrznej urządzenia.
  • Nowoczesne aplikacje często korzystają z Podziel pliki APK, które wymagają specjalistycznego ekstraktora.
  • Dostęp roota (superużytkownika) to zazwyczaj nie jest wymagane w celu tworzenia kopii zapasowych standardowych aplikacji.
  • Po rozpakowaniu plik można przenieść na kartę SD, komputer lub do przechowywania w chmurze.

Po co wyodrębniać pliki APK?

Zanim przejdziesz do „jak”, oto powód, dla którego powinieneś utrzymywać bibliotekę kopii zapasowych APK:

Metoda 1: Korzystanie z aplikacji do wyodrębniania plików APK (bez rootowania)

Najłatwiej jest skorzystać z dedykowanego narzędzia. W Sklepie Play dostępnych jest kilkadziesiąt aplikacji „APK Extractor”. Narzędzia te działają poprzez znalezienie ścieżki instalacji aplikacji w pliku /data/app/ (która jest czytelna, ale zwykle ukryta) i skopiowanie pliku base.apk do publicznego folderu pobierania.

Kroki:

  1. Zainstaluj renomowany ekstraktor APK.
  2. Otwórz aplikację i na żądanie udziel „Uprawnień do przechowywania”.
  3. Przewiń listę wszystkich zainstalowanych aplikacji.
  4. Kliknij aplikację, którą chcesz zapisać.
  5. Narzędzie natychmiast skopiuje plik APK do pamięci wewnętrznej.

Obsługa podzielonych plików APK

Jeśli wyodrębnisz złożoną aplikację, taką jak Facebook lub WhatsApp, możesz znaleźć kilka plików .apk zamiast jednego. Są to Podziel pliki APK. Aby z nich skorzystać, będziesz potrzebować naszego Narzędzie do łączenia APKS/APKM, aby połączyć je w jeden plik.

Metoda 2: Ręczna ekstrakcja przez ADB (zaawansowane)

Jeśli nie chcesz instalować dodatkowych aplikacji na swoim telefonie, możesz skorzystać z komputera PC z Most debugowania Androida (ADB):

  1. Podłącz telefon do komputera przez USB i włącz debugowanie USB.
  2. Otwórz terminal i wpisz: adb shell pm path com.example.app
  3. To pokaże ścieżkę. Przykład: package:/data/app/com.example.app/base.apk
  4. Typ: adb pull /data/app/com.example.app/base.apk ./backup.apk
  5. Plik jest teraz na Twoim komputerze!

Co faktycznie otrzymujesz po wyodrębnieniu

„Zainstalowana” aplikacja na Androida nie jest już przechowywana na urządzeniu jako pojedynczy plik APK, szczególnie jeśli pochodzi ze Sklepu Play jako pakiet aplikacji na Androida. Podczas rozpakowywania możesz otrzymać jeden lub kilka plików, a znajomość różnic pomoże Ci zdecydować, co zachować:

Jeśli Twoim celem jest przenośna kopia zapasowa, którą można zainstalować na innym urządzeniu, zazwyczaj potrzebujesz (a) połączonego „uniwersalnego pakietu APK” utworzonego za pomocą naszego Połączenie APKS z APK lub (b) wszystkich fragmentów zarchiwizowanych razem, aby instalator podzielonego pakietu APK, taki jak SAI, mógł przywrócić je jako całość.

Jak działa ekstrakcja (bez rootowania, za kulisami)

Większość aplikacji „ekstraktor APK” tak naprawdę nie potrzebuje roota, ponieważ Android udostępnia zainstalowane pliki pakietów poprzez ścieżkę odczytu na poziomie systemu. Standardowy przepływ to:

  1. Aplikacja wyodrębniająca wywołuje PackageManager.getPackageInfo(package, ...), aby uzyskać listę zainstalowanych aplikacji.
  2. Dla wybranej aplikacji odczytuje ApplicationInfo.sourceDir (ścieżka podstawowego pliku APK, zazwyczaj /data/app/<package>-<hash>/base.apk i splitSourceDirs (ścieżki wszelkich podziałów konfiguracji)).
  3. Zainstalowany przez użytkownika ekstraktor nie może bezpośrednio odczytać tych ścieżek, ale mechanizm FileProvider w systemie Android umożliwia komponentom systemu przyznanie tymczasowego dostępu do odczytu określonych identyfikatorów URI. System operacyjny robi umożliwia dowolnej aplikacji otwieranie plików APK własny i plików APK innych aplikacji według URI; jest to zamierzone, ponieważ ścieżka instalacji zawsze miała być czytelna dla wszystkich w przypadku zadań takich jak dezinstalacja i aktualizacja.
  4. Ekstraktor kopiuje bajty do zapisywalnego katalogu użytkownika (Pobrane, folder pamięci podręcznej w aplikacji lub pamięć zewnętrzna) i prezentuje je jako plik do udostępnienia lub zainstalowania.

Metody tylko root (su; cp /data/app/..). omijają interfejs API i bezpośrednio odczytują surowe ścieżki. Nie są szybsze i nie są konieczne w przypadku aplikacji niesystemowych.

Wyodrębnianie przez ADB (zalecane w przypadku kopii zapasowych)

Najczystszym przepływem pracy niezwiązanym z aplikacją jest ADB, które większość programistów już skonfigurowała. Całą pracę wykonują dwa polecenia:

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

W przypadku aplikacji z podzielonym pakietem APK powtórz adb pull dla każdej ścieżki. Aby uzyskać pojedynczy plik instalacyjny, upuść je wszystkie na naszym Połączenie APKS z APK.

Czego nie można wydobyć

Extraction returns the application's installation files. Zwraca nie:

Wyodrębnianie jest zatem dobre w przypadkach użycia „chcę mieć przy sobie kopię instalatora”, ale nie zastępuje odpowiednich kopii zapasowych całego urządzenia (które wymagają narzędzi roota lub dostawcy).

Przeanalizuj wyodrębnione pliki APK

Po utworzeniu kopii zapasowej aplikacji skorzystaj z naszego pakietu online, aby sprawdzić ich metadane, ikony i uprawnienia.

Rozpocznij analizę pakietu APK

Często zadawane pytania (FAQ)

Czy wyodrębnienie aplikacji obejmuje moje dane logowania?

Nie. Ekstrakcja kopiuje tylko plik kod aplikacji i zasoby. Ze względów bezpieczeństwa nie obejmuje danych konta osobistego, haseł ani ustawień.

Czy mogę wyodrębnić aplikacje systemowe, takie jak YouTube?

Tak. Jednak niektóre aplikacje systemowe mogą być w dużym stopniu zależne od określonych wersji systemu operacyjnego i mogą nie zostać poprawnie zainstalowane na innych urządzeniach.

Gdzie trafiają wyodrębnione pliki APK?

Większość aplikacji do wyodrębniania zapisuje pliki w folderze o nazwie Wyodrębnione pliki APK lub Pobierać w pamięci wewnętrznej telefonu.

Tworzenie kopii zapasowych zainstalowanych aplikacji bez utraty podzielonych konfiguracji

Tworzenie własnego lokalnego repozytorium aplikacji to najpewniejszy sposób, aby nigdy nie stracić dostępu do ulubionych narzędzi. Zarówno aplikacja przyjazna dla dotknięcia, jak i terminal ADB doprowadzą Cię tam, a wyodrębnianie plików APK to bezpieczny i praktyczny sposób zarządzania urządzeniem z Androidem. Po utworzeniu kopii zapasowej biblioteki poświęć chwilę na zweryfikować podpisy tych kopii zapasowych, aby mieć pewność, że z biegiem czasu pozostaną niezmienione.

Zaprojektowane i udokumentowane przez Mst Shaefale Główny programista i architekt pakietów dla Androida • Zweryfikowano na Androidzie 12–15

Mst Shaefale obsługuje fuzję XAPK/APKS po stronie klienta, parser manifestu binarnego i narzędzia do podpisywania plików APK v1 + v2 w xapktoapk.com. Zauważyłeś nieaktualne polecenie lub zmianę systemu operacyjnego? Wyślij notatkę redakcyjną.