jak używać polecenia adb, aby przesłać plik na urządzenie bez karty SD


106

Jak przesłać plik z komputera na urządzenie z systemem Android bez karty SD. Próbowałem:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)

C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)

C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

powyższe polecenia, aby przenieść plik anand.jpgna urządzenie, ale nie otrzymałem tego jpgpliku na urządzeniu. Nie uzyskałem żadnego sukcesu w monicie cmd, otrzymałem tylko:

3399 KB/s (111387 bytes in 0.032s).

3
Spróbuj adb shell "cd /data/local && mkdir tmp"więc adb push anand.jpg /data/local/tmp. Jak sprawdzić plik na urządzeniu z adb shell?

@RC Używam polecenia ls, aby sprawdzić pliki. Mam to przynajmniej w widoku DDMS na emulatorze, ale nadal nie dostałem go na urządzeniu. kiedy próbuję polecenie „push adb”, pokazuje urządzenie, którego nie znaleziono dla prawdziwego urządzenia. ale urządzenia adb pokazują urządzenie.
Nikhil Kumar

Zatrzymałbym emulator, odłączę urządzenie, a następnie po upewnieniu się, że urządzenie jest w trybie debugowania,

1
To pytanie wydaje się być niezwiązane z tematem, ponieważ nie dotyczy programowania. Zobacz, o jakie tematy mogę zapytać w Centrum pomocy. Być może lepszym miejscem do zadawania pytań byłaby wymiana stosów entuzjastów Androida .
jww

Sugestia RC zadziałała dla mnie w tej odmianie: adb shell "cd /sdcard && mkdir temp"potem abd push x.apk /sdcard/temp"skończyłem z moim plikiem w folderze tymczasowym na mojej karcie SD i mogłem stamtąd sflashować.
Kajetan Abt

Odpowiedzi:


133

Z terminala Ubuntu poniżej działa dla mnie.

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'

Pracuję nad monitem cmd systemu Windows, czy u plz powiedz mi w systemie Windows, jak to zrobić.
Nikhil Kumar

po prostu usuń „./” i użyj prostego adb lub adb.exe. Upewnij się, że jesteś w folderze narzędzi platformy, jeśli nie ustawiłeś ścieżki dla Androida.
Hardik Trivedi

2
Czy możemy to zrobić bez rootowania telefonu?
Jacob

2
@HardikTrivedi: Czy mówisz, że rootowanie jest potrzebne do korzystania z funkcji push adb w ogóle, czy dla tego konkretnego miejsca docelowego pliku? Używam adb push do zapisania pliku na karcie SD urządzenia z systemem Android na urządzeniu niezrootowanym.
RenniePet

2
Aby polecenie wypychania działało również na telefonie nierootowanym, tylko folder / data wymaga zrootowanego użytkownika.
Hardik Trivedi

35

Zrobiłem to za pomocą tego polecenia:

składnia: adb push filename.extension /sdcard/0/

przykład: adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/


1
właśnie przeniosłem plik mp3 z mac osX na urządzenie z systemem Android 5.0 i musiałem wpisać nazwę pliku, który ma być na urządzeniu, tj. „adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3”
DoruChidean

28

Wykonaj następujące kroki:

przejdź do Android Sdk, a następnie przejdź do ścieżki „platform-tools” w terminalu lub konsoli

(na Macu domyślna ścieżka to: / Users / USERNAME / Library / Android / sdk / platform-tools)

Aby sprawdzić karty SDCards (zewnętrzne i wewnętrzne) zainstalowane w urządzeniu, uruchom następujące polecenia:

  • 1) ./adb powłoki (naciśnij klawisz Return / Enter)
  • 2) cd - (naciśnij Return / Enter)

teraz zobaczysz listę katalogów i plików z twojego urządzenia z Androidem, możesz tam znaleźć / sdcard oraz / storage

  • 3) cd / przechowywanie (naciśnij Return / Enter)
  • 4) ls (naciśnij Return / Enter)

możesz zobaczyć sdcard0 (ogólnie sdcard0 to pamięć wewnętrzna) i sdcard1 (jeśli obecna jest zewnętrzna karta SD)

  • 5) wyjście (naciśnij klawisz Return / enter)

wyjść z powłoki adb

  • 6) ./adb push '/Users/SML/Documents/filename.zip' / storage / sdcard0 / path_to_store / (hit return / enter)

skopiować plik


11

Czasami potrzebujesz rozszerzenia,

plik push adb.zip /sdcard/file.zip


1
Mam LG Nexus 5 i nie możesz włożyć do niego zewnętrznej karty sd, ale część pamięci wewnętrznej zachowuje się jak karta sd W tym przypadku sdcard to tylko katalog na poziomie głównym Możesz to sprawdzić wywołując `` adb shell '' Kiedy jesteś w powłoce, wywołaj „ls”, aby wyświetlić katalog
cstuncsik

9

najpierw uruchom poniższe polecenie

adb root
adb remount

Następnie wykonaj to, co wcześniej wprowadziłeś

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp

4

Mam Nexusa 4, czyli bez pamięci zewnętrznej. Jednak Android uważa, że ​​ma taką, ponieważ montuje oddzielną partycję o nazwie „pamięć”, zamontowaną w folderze „/ storage / emulated / legacy”, więc spróbuj umieścić tam:adb push anand.jpg /storage/emulated/legacy


Dla mojego Nexusa 4 /sdcard.file.zip działał jak marzenie.
sud007

4

Moje rozwiązanie (przykład z losowym plikiem wideo mp4):

  1. Ustaw plik na urządzeniu:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Pobierz plik z urządzenia:

    adb pull /storage/emulated/legacy/myVideoFile.mp4 

Aby pobrać ścieżkę w kodzie:

String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";

To wszystko. To rozwiązanie nie powoduje problemów z uprawnieniami i działa dobrze.

Ostatni punkt: chciałem zmienić informacje o metadanych wideo. Jeśli chcesz pisać na swoim urządzeniu, powinieneś zmienić uprawnienia w AndroidManifest.xml. Dodaj tę linię:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3

Ponieważ istnieją różne ścieżki dla różnych wersji. Oto ogólne rozwiązanie:

Znajdź ścieżkę ...

  1. Wpisz adb shellw linii poleceń.
  2. Następnie lsi Enter.

Teraz zobaczysz pliki i katalogi urządzenia z systemem Android. Teraz z połączeniem lsi cd dirNameznajdź ścieżkę do pamięci wewnętrznej lub zewnętrznej.

W katalogu głównym nazwy katalogów będą wyglądać następująco mnt, sdcard, emulator0,etc

Przykład: adb push file.txt mnt/sdcard/myDir/Projects/


3

Spróbuj tego, aby wcisnąć w Pamięć wewnętrzna.

adb push my-file.apk ./storage/emulated/0/

Działa w urządzeniu One plus, bez karty SD.


0

Próbujesz pisać do folderów systemowych. Dzięki ADB masz dostęp root (administratora), więc widzisz foldery systemowe, których jednym z nich jest sdcard, więc możesz wysłać zdjęcie, którego możesz użyć

D: \ Program Files \ Android \ sdk \ platform-tools \ adb push am files \ android sdk \ adb.exe push C: \ Downloads \ anand.jpg / sdcard / pictures /

Uwaga: C: \ Downloads \ anand.jpg zastąp ścieżką i nazwą do obrazu.


0

Niektóre wersje Androida nie uruchamiają odpowiednich zadań w celu aktualizacji stanu systemu plików. Możesz wywołać wyraźny zamiar zaktualizowania stanu systemu plików. (Właśnie przetestowałem po tym, jak znajdowałem się w tej samej sytuacji OP)

adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///

(Możesz przekazać określoną ścieżkę pliku zamiast file:///podobnego file:///sdcard)


0

W moim przypadku miałem już usuniętą kartę SDCard nadal zarejestrowaną w systemie Android. Dlatego długo naciskałem wpis dotyczący mojej starej karty SD w:

Settings | Storage & USB

i wybrano opcję „Zapomnij”.

Potem normalny

adb push myfile.zip /sdcard/

działało dobrze.


0

To może być najlepsza odpowiedź, jaką możesz przeczytać. Skonfiguruj Android Studio Następnie przejdź do widoku i otwórz Eksplorator urządzeń. Kliknij folder prawym przyciskiem myszy i po prostu prześlij plik.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.