Wyodrębnianie plików APK z zainstalowanych aplikacji na Androida
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:
- Zachowaj wycofane aplikacje: Jeśli programista usunie swoją aplikację ze sklepu, nadal będziesz mieć kopię do zainstalowania.
- Obsługa starszego sprzętu: Zachowaj wersje, które działają na starszym tablecie, gdy oficjalna aplikacja zaktualizuje się i będzie wymagać nowszych wersji Androida.
- Przywrócenie wersji: Jeśli aktualizacja wprowadza błędy, możesz ponownie zainstalować wyodrębnioną kopię zapasową i wrócić do pracy.
- Udostępnianie aplikacji: Wyślij znajomemu określoną wersję aplikacji przez Bluetooth lub kabel bez korzystania z komórkowej transmisji danych.
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:
- Zainstaluj renomowany ekstraktor APK.
- Otwórz aplikację i na żądanie udziel „Uprawnień do przechowywania”.
- Przewiń listę wszystkich zainstalowanych aplikacji.
- Kliknij aplikację, którą chcesz zapisać.
- 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):
- Podłącz telefon do komputera przez USB i włącz debugowanie USB.
- Otwórz terminal i wpisz: adb shell pm path com.example.app
- To pokaże ścieżkę. Przykład: package:/data/app/com.example.app/base.apk
- Typ: adb pull /data/app/com.example.app/base.apk ./backup.apk
- 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ć:
- Pojedynczy podstawowy plik APK. Starsze lub mniejsze aplikacje przesłane do Play jako zwykły plik APK nadal instalują się jako pojedynczy plik. Ekstrakcja zwraca jeden .apk, który jest samodzielny.
- Podstawowy plik APK + kilka podziałów konfiguracji. Aplikacje opublikowane jako AAB są instalowane jako wiele plików APK obok siebie: base.apk plus split_config.<abi>.apk (kod natywny dla twojego procesora), split_config.<density>.apk (zasoby dla twojego ekranu) i split_config.<language>.apk (ciągi znaków dla twoich ustawień regionalnych). Ekstrakcja zwraca je wszystkie. Aby ponownie zainstalować tę samą aplikację na tym samym urządzeniu, potrzebujesz ich wszystkich.
- Czasami dane pakietu zasobów. Nowoczesne gry korzystające z usługi Play Asset Delivery przechowują duże zasoby rozgrywki w prywatnej pamięci podręcznej aplikacji poza samymi plikami APK. Zwykle nie można ich eksportować za pomocą zwykłego ekstraktora; pakiety zasobów zaprojektowano tak, aby można je było ponownie pobrać przy pierwszym uruchomieniu.
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:
- Aplikacja wyodrębniająca wywołuje PackageManager.getPackageInfo(package, ...), aby uzyskać listę zainstalowanych aplikacji.
- 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)).
- 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.
- 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:
- Dane aplikacji: preferencje, bazy danych, zapisywanie plików. Znajdują się one pod /data/data/<package>/ i są chronione przed ekstrakcją przez użytkownika innego niż root przez piaskownicę danych użytkownika.
- Zagraj w pakiety zasobów Asset Delivery: pobrany przy pierwszym uruchomieniu, zapisany w prywatnej pamięci podręcznej i oczekuje się, że zostanie ponownie pobrany w przypadku braku.
- Postęp zapisany w chmurze: jeśli aplikacja korzysta z gier Google Play, Firebase lub podobnych, część przechowywana w chmurze znajduje się na serwerach wydawcy, a nie na Twoim urządzeniu.
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 APKCzę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.