cách sử dụng lệnh adb để đẩy tệp trên thiết bị mà không cần thẻ sd


104

Cách đẩy một tệp từ máy tính sang thiết bị Android không có thẻ SD trong đó. Tôi đã thử:

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)

các lệnh trên để di chuyển tệp anand.jpgsang thiết bị nhưng tôi không nhận được jpgtệp này trong thiết bị. Tôi không nhận được bất kỳ kết quả thành công nào trên lời nhắc cmd, tôi chỉ nhận được:

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

3
Hãy thử adb shell "cd /data/local && mkdir tmp"sau đó adb push anand.jpg /data/local/tmp. Làm cách nào để bạn kiểm tra tệp trên thiết bị, với adb shell?

@RC Tôi đang sử dụng lệnh ls để kiểm tra các tệp. tôi nhận được nó ít nhất ở chế độ xem DDMS trên giả lập. nhưng tôi vẫn không tải được nó trên thiết bị. khi tôi đang thử lệnh "adb push" nó hiển thị thiết bị không tìm thấy thiết bị thực. nhưng thiết bị adb đang hiển thị thiết bị.
Nikhil Kumar,

Tôi sẽ dừng lại emulator, rút phích cắm của thiết bị, sau đó sau khi đảm bảo thiết bị đang ở chế độ debug, cắm thiết bị và thử lại

1
Câu hỏi này có vẻ lạc đề vì nó không phải về lập trình. Xem những chủ đề tôi có thể hỏi tại đây trong Trung tâm trợ giúp. Có lẽ những người đam mê Android Stack Exchange sẽ là nơi tốt hơn để hỏi.
jww

Đề xuất của RC đã hoạt động trong biến thể này đối với tôi: adb shell "cd /sdcard && mkdir temp"sau đó abd push x.apk /sdcard/temp"tôi kết thúc với tệp của mình trong thư mục tạm thời trên sdcard của tôi và có thể flash từ đó.
Kajetan Abt

Câu trả lời:


130

Từ Ubuntu Terminal, bên dưới phù hợp với tôi.

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

Tôi đang làm việc trên Windows cmd nhắc nhở bạn có thể cho tôi biết trong Windows làm thế nào để làm điều đó.
Nikhil Kumar,

chỉ cần xóa './' và sử dụng adb hoặc adb.exe đơn giản. Đảm bảo rằng bạn đang ở trong thư mục công cụ nền tảng nếu bạn chưa đặt đường dẫn cho android.
Hardik Trivedi

2
Chúng ta có thể làm điều này mà không cần root điện thoại không?
Jacob

2
@HardikTrivedi: Bạn đang nói rằng cần phải root để sử dụng adb push nói chung hay cho đích tệp cụ thể này? Tôi đang sử dụng adb push để ghi tệp trên thẻ SD của thiết bị Android trên thiết bị chưa root.
RenniePet

2
Để đẩy lệnh hoạt động cho điện thoại không root, thư mục only / data được yêu cầu người dùng đã root.
Hardik Trivedi

33

Tôi đã làm điều đó bằng cách sử dụng lệnh này:

cú pháp: adb push filename.extension /sdcard/0/

thí dụ: adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/


1
vừa chuyển một file mp3 từ Mac OSX đến một thiết bị Android 5.0 và tôi đã phải viết tên của tập tin được trên thiết bị, tức là "adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3"
DoruChidean

28

Làm theo các bước sau:

chuyển đến Android Sdk rồi đến đường dẫn 'platform-tools' trên Terminal hoặc Console của bạn

(trên mac, đường dẫn mặc định là: / Users / USERNAME / Library / Android / sdk / platform-tools)

Để kiểm tra SDCards (Bên ngoài và Bên trong) được cài đặt trên thiết bị của bạn, hãy kích hoạt các lệnh sau:

  • 1) ./adb shell (nhấn return / enter)
  • 2) cd - (nhấn return / enter)

bây giờ bạn sẽ thấy danh sách các Thư mục và tệp từ thiết bị Android của bạn ở đó bạn có thể tìm thấy / sdcard cũng như / lưu trữ

  • 3) cd / lưu trữ (nhấn return / enter)
  • 4) ls (nhấn return / enter)

bạn có thể thấy sdcard0 (thường sdcard0 là bộ nhớ trong) và sdcard1 (nếu có thẻ nhớ ngoài)

  • 5) thoát (nhấn return / enter)

thoát ra khỏi vỏ adb

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

để sao chép tệp


11

Đôi khi bạn cần phần mở rộng,

adb push file.zip /sdcard/file.zip


1
Tôi có LG Nexus 5 và bạn không thể đặt thẻ nhớ ngoài vào trong đó nhưng một phần của bộ nhớ trong hoạt động giống như thẻ nhớ Trong trường hợp này, thẻ nhớ chỉ là một thư mục ở cấp cơ sở. Bạn có thể kiểm tra nó bằng cách gọi 'adb shell' khi bạn đang trong cuộc gọi vỏ 'ls' cho thư mục niêm yết
cstuncsik

8

chạy lệnh dưới đây trước tiên

adb root
adb remount

Sau đó thực thi những gì bạn đã nhập trước đó

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

Tôi có một chiếc Nexus 4 không có bộ nhớ ngoài. Tuy nhiên, Android cho rằng có một phân vùng này vì nó gắn một phân vùng riêng biệt có tên là "lưu trữ", được gắn trong "/ lưu trữ / giả lập / kế thừa", vì vậy hãy thử đẩy vào đó:adb push anand.jpg /storage/emulated/legacy


Đối với nexus 4 /sdcard.file.zip của tôi hoạt động như một sự quyến rũ.
sud007 15/12/15

4

Giải pháp của tôi (ví dụ với tệp video mp4 ngẫu nhiên):

  1. Đặt tệp vào thiết bị:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Nhận tệp từ thiết bị:

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

Để truy xuất đường dẫn trong mã:

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

Đây là tất cả. Giải pháp này không gây ra các vấn đề về quyền và nó hoạt động tốt.

Điểm cuối cùng: Tôi muốn thay đổi thông tin siêu dữ liệu video. Nếu bạn muốn ghi vào thiết bị của mình, bạn nên thay đổi quyền trong AndroidManifest.xml. Thêm dòng này:

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

3

Vì có các đường dẫn khác nhau cho các phiên bản khác nhau. Đây là một giải pháp chung:

Tìm đường đi ...

  1. Nhập adb shellvào dòng lệnh.
  2. Sau đó lsvà Enter.

Bây giờ bạn sẽ thấy các tệp và thư mục của thiết bị Android. Bây giờ với sự kết hợp của lscd dirNametìm đường dẫn đến Bộ nhớ trong hoặc Bộ nhớ ngoài.

Trong thư mục gốc, tên các thư mục sẽ giống như mnt, sdcard, emulator0,vv

Thí dụ: adb push file.txt mnt/sdcard/myDir/Projects/


3

Hãy thử điều này để đẩy vào Bộ nhớ trong.

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

Hoạt động trong thiết bị One plus, không cần thẻ SD.


0

Bạn đang cố gắng ghi vào các thư mục hệ thống. Với ADB, bạn có quyền truy cập root (quản trị) để bạn thấy các thư mục hệ thống mà sdcard là một trong số chúng, vì vậy để gửi ảnh, bạn có thể sử dụng

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

NB: C: \ Downloads \ anand.jpg thay thế bằng đường dẫn và tên cho ảnh ..


0

Một số phiên bản Android không kích hoạt các tác vụ thích hợp để cập nhật trạng thái của hệ thống tệp. Bạn có thể kích hoạt một ý định rõ ràng để cập nhật trạng thái của hệ thống tệp. (Tôi vừa thử nghiệm sau khi ở trong tình huống của OP tương tự)

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

(Bạn có thể chuyển một đường dẫn tệp cụ thể thay vì file:///thích file:///sdcard)


0

Trong trường hợp của tôi, tôi có thẻ SDCard đã bị xóa vẫn được đăng ký trong Android. Vì vậy, tôi đã nhấn lâu mục nhập cho thẻ SDCard cũ của mình dưới:

Settings | Storage & USB

và chọn "Quên".

Sau đó một bình thường

adb push myfile.zip /sdcard/

hoạt động tốt.


0

Đây có thể là câu trả lời tốt nhất mà bạn có thể đọc. Thiết lập Android Studio Sau đó, chỉ cần truy cập và mở Device Explorer. Nhấp chuột phải vào thư mục và chỉ tải lên một tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.