Jak uzyskać plik apk z urządzenia z systemem Android? Lub jak przenieść plik apk z urządzenia do systemu?
Użyj adb . Dzięki adb pull możesz kopiować pliki z urządzenia do systemu, gdy urządzenie jest podłączone przez USB.
Oczywiście potrzebujesz również odpowiednich uprawnień, aby uzyskać dostęp do katalogu, w którym znajduje się plik. Jeśli nie, musisz najpierw zrootować urządzenie.
Jeśli stwierdzisz, że wiele plików APK ma nazwę „base.apk”, możesz także użyć tego polecenia w jednym wierszu, aby wyciągnąć wszystkie pliki APK z telefonu, do którego masz dostęp, zmieniając nazwy dowolnych nazw „base.apk” na nazwę pakietu. To także rozwiązuje problem z nieznalezionym katalogiem ścieżek APK z pozornie losowymi znakami po nazwie:
for i in $(adb shell pm list packages | awk -F':' '{print $2}'); do adb pull "$(adb shell pm path $i | awk -F':' '{print $2}')"; mv base.apk $i.apk 2&> /dev/null ;done
Jeśli pojawi się komunikat „adb: error: failed to stat remote object”, co oznacza, że nie masz wymaganych uprawnień. Uruchomiłem to na nie Zrootowanym Moto Z2 i mogłem pobrać WSZYSTKIE pliki APK, których nie odinstalowałem (patrz niżej), z wyjątkiem YouTube.
adb shell pm uninstall --user 0 com.android.cellbroadcastreceiver <--- kills presidential alert app!
(aby wyświetlić użytkowników uruchamiających użytkowników z listą powłoki powłoki adb) Jest to sposób na usunięcie / odinstalowanie (nie z telefonu, jak wraca z przywróceniem ustawień fabrycznych) prawie KAŻDEJ aplikacji BEZ root, w tym aplikacji systemowych (wskazówka na irytującą aplikację aktualizującą, która aktualizuje telefon wyłóż to lub nie można znaleźć poprzez grepping dla „ccc”)
adb shell pm list packages
, aadb shell pm path your.package.name
następnie pełną ścieżkę z komputera, możesz po prostuadb pull /full/path/to/your.apk
Żadna z tych sugestii nie działała dla mnie, ponieważ Android dołączał numer sekwencji do nazwy pakietu, aby utworzyć ostateczną nazwę pliku APK. W nowszych wersjach Androida (Oreo i Pie) dołączany jest nieprzewidywalny ciąg losowy. Poniższa sekwencja poleceń działa dla mnie na nierootowanym urządzeniu :
1) Określ nazwę pakietu aplikacji, np. „Com.example.someapp”. Pomiń ten krok, jeśli znasz już nazwę pakietu.
Przejrzyj listę nazw pakietów i spróbuj znaleźć dopasowanie między aplikacją a nazwą pakietu. Zazwyczaj jest to łatwe, ale należy pamiętać, że nazwa pakietu może być całkowicie niezwiązana z nazwą aplikacji. Jeśli nie możesz rozpoznać aplikacji na liście nazw pakietów, spróbuj znaleźć aplikację w Google Play za pomocą przeglądarki. Adres URL aplikacji w Google Play zawiera nazwę pakietu.
2) Uzyskaj pełną nazwę ścieżki pliku APK dla żądanego pakietu.
Dane wyjściowe będą wyglądały jak
pakiet: /data/app/com.example.someapp-2.apk
lub
pakiet: /data/app/com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ == / base.apk
3) Używając pełnej nazwy ścieżki z kroku 2, przeciągnij plik APK z urządzenia z systemem Android do okna programowania.
źródło
pm list packages
obsługuje-f
flagę, która wyświetla dla ciebie lokalizację pliku .apk, nppackage:/data/app/com.google.android.apps.maps-1.apk=com.google.android.apps.maps
. Wbudowana pomoc pm jest bezużyteczna, ale pm może również filtrować typy pakietów, zobacz developer.android.com/studio/command-line/adb.html#pm, aby uzyskać więcej informacji. EDYCJA: właśnie zauważyłem, że poniższa odpowiedź mówi to, ale ta odpowiedź nie jest tak pozytywnie oceniona jak ta.adb: error: remote object '/data/app/path.of.the.app-2/base.apk' does not exist
. Jeśli przeglądam te foldery za pomocą przeglądarki plików, foldery są puste.adb shell
, a następniecp PathToApk /sdcard/
a następnie kopiując z sdcard.Nie jest wymagany root:
Ten kod otrzyma ścieżkę do pakietów innych firm o nazwie, dzięki czemu możesz łatwo zidentyfikować swój pakiet APK
wyjście będzie
teraz ściągnij ten pakiet używając poniższego kodu:
jeśli wykonałeś powyżej cmd
C:>\
, znajdziesz tam ten pakiet.źródło
-f -s
zamiast-f -3
Widziałem, że wiele rozwiązań tego problemu albo trzeba zrootować telefon, albo zainstalować aplikację. Potem po wielu googlingach dostałem to rozwiązanie dla nierootowanych / zrootowanych telefonów.
Aby wyświetlić listę aplikacji, które masz do tej pory.
Następnie możesz wybrać aplikację, na przykład Twitter
Ważną rzeczą jest tutaj, aby nie ustawić hasła do szyfrowania kopii zapasowej
Spowoduje to utworzenie pliku o nazwie backup.ap, ale nadal nie można go otworzyć. W tym celu musisz go ponownie wyodrębnić, ale używając polecenia dd.
Po tym wszystko, co musisz zrobić, to wyodrębnić zawartość smoły i gotowe.
Mam nadzieję, że wam się spodoba
źródło
Kroki, aby pobrać APK z urządzenia na pulpit
A) Upewnij się, że działasz (emulator / prawdziwe urządzenie). Aby to sprawdzić, użyj tego polecenia
B) Wybierz całą dostępną listę pakietów zainstalowanych w urządzeniu. Możesz użyć polecenia grep, aby wybrać konkretny pakiet, który chcesz pobrać.
Dane wyjściowe (lista dostępnych pakietów)
C) Skopiuj pakiet (który chcesz pobrać) z powyższego linku. Z naszej skrzynki wybieram ten pakiet (com.example.myapplication)
Wynik
D) Wreszcie, aby pobrać APK z (emulatora / urządzenia rzeczywistego)
Przykład: próba pobrania tego pliku CertInstaller.apk na komputerze lokalnym (Mac)
E) Potwierdź w lokalnym katalogu
źródło
źródło
Jedna wkładka, która działa we wszystkich wersjach Androida:
źródło
Uzupełniając odpowiedź @Yojimbo, właśnie to zrobiłem (tylko Linux / Mac, nie działa od razu w systemie Windows ... może w powłoce bash gita):
To brzydkie bash, ale działa :)
EDYCJA: To już nie działa na AndroidM: wszystkie pliki mają nazwę „base.apk” w innym katalogu. Powinien być „trywialny” do naprawienia.
źródło
W systemach uniksowych możesz wypróbować tę funkcję:
android_pull_apk com.android.contacts
adb shell pm list packages
źródło
Jak wspomniano powyżej, możesz pobrać apk za pomocą polecenia pull w adb.
Ponieważ mówisz o zainstalowanych aplikacjach, przejdź do / data / app systemu plików Android. Znajdziesz tam pliki APK.
Następnie użyj polecenia adb - adb pull /data/data/appname.apk
źródło
Wypróbuj to polecenie bash z jedną linią, aby wykonać kopię zapasową wszystkich aplikacji:
To polecenie pochodzi ze skryptu Firelorda . Właśnie zmieniłem nazwy wszystkich apków na nazwy ich pakietów, aby rozwiązać problem ze skryptem elcuco , tj. Tym samym
base.apk
plik zostanie zastąpiony w Androidzie 6.0 „Marshmallow” i nowszych.Pamiętaj, że to polecenie tworzy kopie zapasowe tylko aplikacji innych firm, ponieważ nie widzę sensu tworzenia kopii zapasowych wbudowanych aplikacji. Ale jeśli chcesz również tworzyć kopie zapasowe aplikacji systemowych, po prostu pomiń tę
-3
opcję.źródło
Jeśli znasz (lub potrafisz „zgadnąć”) ścieżkę do
.apk
( wygląda na to, że ma format/data/app/com.example.someapp-{1,2,..}.apk
, możesz po prostu skopiować ją z/data/app
również . Działa to nawet na moim nierootowanym, standardowym telefonie z Androidem.Wystarczy użyć aplikacji Emulator terminala (takiej jak ta ) i uruchomić:
Następnie możesz przenieść go z karty SD w dowolne miejsce (lub dołączyć go do wiadomości e-mail itp.). Ostatni bit może być technicznie opcjonalny, ale znacznie ułatwia Ci życie, gdy próbujesz coś zrobić z
.apk
plikiem.źródło
Procedury przedstawione tutaj nie działają dla Androida 7 (Nougat) [i prawdopodobnie Androida 6, ale nie mogę zweryfikować]. Nie możesz pobrać plików .apk bezpośrednio pod Nougat (chyba że w trybie root, ale wymaga to zrootowanego telefonu). Ale możesz skopiować .apk na alternatywną ścieżkę (powiedz / sdcard / Download) w telefonie za pomocą powłoki adb, a następnie możesz pobrać adb z alternatywnej ścieżki.
źródło
adb shell
polecenia z komentarza @ Isy A) działała dla mnie dobrze na Androidzie 7.1.1, nie zrootowana.Pobierz aktualnie otwartą aplikację dzięki:
Uzyskaj ścieżkę do nazwy pakietu
4. Skopiuj ścieżkę do katalogu sdcard
5. Wyłącz apk
Edytować
Jeśli krok nr 2 nie działa, użyj tego:
źródło
Oto jak to zrobić:
Pobierz i zainstaluj APK Extractor na swoim urządzeniu. Jest bezpłatny i jest kompatybilny z prawie wszystkimi urządzeniami z Androidem. Kolejną zaletą jest to, że nawet nie wymaga rootowania ani niczego do działania. Po zainstalowaniu uruchom go. Tam zobaczysz listę aplikacji, które są na twoim urządzeniu, które obejmują aplikacje zainstalowane później, wraz z aplikacjami systemowymi. Naciśnij i przytrzymaj dowolną aplikację, którą chcesz wyodrębnić (możesz wybrać wiele aplikacji lub wszystkie jednocześnie), a następnie kliknij opcję wyodrębnienia widoczną u góry. Będziesz także mieć możliwość udostępniania przez Bluetooth lub wiadomości. Po zakończeniu zobaczysz wyodrębnione aplikacje jako AppName_AppPackage_AppVersionName_AppVersionCode.apk, które zostaną domyślnie zapisane w ścieżce / sdcard / ExtractedApks /.
Szczegółowy opis sposobu wyodrębniania plików apk w Androidzie znajduje się na stronie: http://appslova.com/how-to-extract-apk-files-in-android/
źródło
Wszystkie te odpowiedzi wymagają wielu kroków dla każdego pliku apk pobranego z urządzenia. 1. określ nazwę pakietu, 2. znajdź plik i 3. pobierz go. Zbudowałem prosty
apk_grabber
skrypt Pythona, aby to zrobić dla dowolnej aplikacji pasującej do podanego wyrażenia regularnego, a następnie dekompiluję te apki do plików jar.źródło
Nie użyłem kodu do pobrania pliku .apk z telefonu komórkowego, ale używam oprogramowania do wyodrębnienia pliku .apk z telefonu komórkowego, a oprogramowanie, z którego korzystałem, jest poniżej z linkiem do Google Play:
Mam nadzieję, że Ci to pomoże.
źródło
chcesz bardzo wygodne rozwiązanie 1-minutowe?
tylko ty ta aplikacja https://play.google.com/store/apps/details?id=com.cvinfo.filemanager (inteligentny menedżer plików z Google Play).
dotknij „aplikacje”, wybierz jedną i dotknij „kopia zapasowa”. skończy na twoim systemie plików w
app_backup
folderze;)źródło
Nie wymaga metody rootowania ani narzędzi ADB. Zainstaluj aplikację MyAppSharer ze sklepu Play.
źródło
mam
does not exist error
Oto jak sprawiam, że to działa
źródło
Jeszcze inny skrypt bash (tj. Będzie działał dla większości systemów opartych na Uniksie). Na podstawie odpowiedzi Pedro Rodriguesa , ale jest nieco łatwiejszy w użyciu.
Ulepszenia w stosunku do wersji Pedro:
adb pull
ciągle narzekałem,no such file or directory
dopóki nie miałemadb shell
dostępu do pliku. Dlatego zastosowałem inne podejście, z plikiem tymczasowym.Zapisz to w pliku wykonywalnym:
źródło
Najprostszy to: zainstaluj aplikację „ShareIt” na telefonie. Teraz zainstaluj aplikację shareIt na komputerze lub innym telefonie. Teraz z telefonu, na którym zainstalowana jest aplikacja, otwórz ShareIt i wyślij. Na innym telefonie lub komputerze otwórz ShareIt i odbierz.
źródło
Naprawdę podobały mi się wszystkie te odpowiedzi. Większość skryptów do eksportu i zmiany nazw wszystkich została napisana w języku Bash. Zrobiłem mały skrypt Perla, który robi to samo (który powinien działać zarówno w Perlu dla Windows, jak i Linuksa, testowany tylko na Ubuntu).
download-apk.pl
Wynik jest podobny do:
źródło
Pomoże to komuś, kto szuka odpowiedzi nietechnicznej
To prosty hack
Pobierz aplikację
App Share/Send Pro
ze sklepu Google Play. Wybierz aplikację, którą chcesz wysłać, i metodę wysyłania aplikacji.Zwykle używam Bluetooth do wysyłania aplikacji na komputer lub inny telefon.
źródło