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.