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).
Nikhil Kumar
źródło
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/'
Hardik Trivedi
źródło
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/

vincsilver
źródło
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

SML
źródło
11

Czasami potrzebujesz rozszerzenia,

plik push adb.zip /sdcard/file.zip

Jonas Borggren
źródło
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
Rocky Chen
źródło
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

Maik
źródło
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" />
Alex
źródło
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/

M. Usman Khan
źródło
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.

Naitik Soni
źródło
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.

user3555061
źródło
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)

solver
źródło
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.

Sztylet
źródło
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.

Rushabh Gedam
źródło