Hướng dẫnĐăng ngày: 5 phút đọc

Duyệt và truyền tệp Android bằng ADB (push, pull)

Chép tệp vào và ra Android bằng adb push, pull, đọc quyền trong ls -l và duyệt toàn bộ hệ thống tệp bằng trình khám phá tệp của ADBKit.

Dùng adb push để sao chép tệp từ máy tính sang thiết bị Android và adb pull để chép ngược lại. Để xem cấu trúc thư mục, dùng adb shell ls -l. Cách này chạy qua USB mà không cần ứng dụng truyền tệp, và một trình khám phá tệp trên trình duyệt như ADBKit cho cùng kết quả với giao diện đồ họa.

Sao chép tệp bằng adb push và pull

Kết nối điện thoại khi đã bật USB debugging và xác nhận nó hiện trong adb devices.

adb push photo.jpg /sdcard/Download/
adb push my-folder /sdcard/Download/my-folder
adb pull /sdcard/Download/report.pdf
adb pull /sdcard/DCIM/Camera ./camera-backup

Tham số đầu là nguồn, tham số thứ hai là đích. Nếu bỏ đích trong adb pull, tệp được lưu vào thư mục hiện tại. Thư mục được sao chép đệ quy. Đường dẫn có khoảng trắng cần đặt trong dấu ngoặc kép:

adb pull "/sdcard/Download/My File.pdf"

adb push và adb pull in tóm tắt khi hoàn tất. Nếu có nhiều thiết bị cùng kết nối, thêm -s <serial> để chọn một thiết bị.

Liệt kê tệp bằng adb shell ls

adb shell ls /sdcard/
adb shell ls -l /sdcard/Download
adb shell ls -la /sdcard/

ls -l cho định dạng dài, còn -a bao gồm cả mục ẩn bắt đầu bằng dấu chấm. Kết quả trông như sau:

drwxr-xr-x  2 root  sdcard_rw  4096 2026-10-06 10:15 Download
-rw-rw----  1 root  sdcard_rw  81920 2026-10-06 10:16 notes.txt
lrwxrwxrwx  1 root  root          10 2026-10-06 10:00 sdcard -> /storage/self/primary

Hiểu chuỗi quyền truy cập

Lấy drwxr-xr-x làm ví dụ. Ký tự đầu là loại, theo sau là ba nhóm, mỗi nhóm ba ký tự.

PhầnÝ nghĩa
dThư mục (- là tệp thường, l là symlink)
rwx (nhóm đầu)Chủ sở hữu được đọc, ghi, thực thi
r-x (nhóm hai)Nhóm được đọc và thực thi, không được ghi
r-x (nhóm ba)Mọi người khác được đọc và thực thi

Sau quyền là số liên kết, owner (chủ sở hữu), group (nhóm), kích thước, thời gian sửa đổi và tên. Trên Android, owner và group thường là các tên như root, system, shell hoặc một định danh riêng của ứng dụng như u0_a123, vì mỗi ứng dụng cài đặt chạy dưới một người dùng Linux riêng.

Note: Android còn áp dụng SELinux, một lớp kiểm soát truy cập thứ hai. Ngay cả tệp có bit quyền tưởng chừng thoáng cũng có thể bị chặn bởi chính sách. Để xem nhãn SELinux, thêm -Z: adb shell ls -Z /sdcard.

/sdcard so với /data

/sdcard là bộ nhớ dùng chung mà người dùng nhìn thấy: Download, DCIM (ảnh), Documents và các thư mục tương tự. Đây là nơi phù hợp để push và pull tệp thông thường, và người dùng shell mà adb sử dụng truy cập được.

/data chứa dữ liệu ứng dụng và hệ thống. Mỗi ứng dụng có thư mục riêng tư dưới /data/data/<tên-package> (cũng truy cập được qua /data/user/0/...). Người dùng khác không đọc được, kể cả người dùng shell của adb, nên trên điện thoại thương mại thông thường các lệnh sau báo "Permission denied":

adb shell ls /data/data
adb pull /data/data/com.example.app/databases/app.db

Đọc dữ liệu riêng tư của ứng dụng thường cần quyền root, hoặc ứng dụng phải là bản build có thể debug để bạn dùng adb shell run-as com.example.app. Root máy là lựa chọn tùy thiết bị, có rủi ro riêng và nằm ngoài phạm vi bài này.

Warning: Đừng xóa hay sửa tệp ngoài /sdcard nếu bạn chưa biết chính xác chúng làm gì. Thay đổi ở vùng hệ thống có thể khiến điện thoại không khởi động bình thường.

Duyệt tệp trong ADBKit

Không gian làm việc ADBKit có trình khám phá tệp chạy trên trình duyệt máy tính nền Chromium (Chrome hoặc Edge), không cần cài đặt và không cần tài khoản. Sau khi kết nối qua USB, nó bắt đầu từ thư mục gốc / và cho phép bạn đi qua toàn bộ cây thư mục.

Những gì bạn nhận được:

  • Thông tin chi tiết cho từng mục: owner, group, quyền truy cập, và symlink được hiển thị đúng là symlink.
  • Ảnh thu nhỏ cho tệp hình, giúp nhận ra ảnh mà không cần mở.
  • Cửa sổ chi tiết, mở bằng chuột phải (hoặc nhấn giữ trên màn hình cảm ứng), để xem kỹ một mục.
  • Tải lên từ máy tính và tải xuống về máy tính, tương đương push và pull trên trình duyệt.

Tệp chỉ đi giữa trình duyệt và điện thoại; ADBKit không có máy chủ nào nhận chúng. Quy tắc quyền giống như dòng lệnh: các thư mục như /data/data sẽ hiện là không đọc được trên điện thoại thông thường. Nếu bạn cần đưa một ứng dụng lên thiết bị thay vì một tệp, xem cài APK bằng ADB. Bảng tóm tắt lệnh adb tổng hợp các lệnh khác bạn có thể cần cùng với những lệnh này.

Các vấn đề thường gặp

  • "No such file or directory": kiểm tra chữ hoa chữ thường; đường dẫn Android phân biệt hoa thường.
  • "Permission denied": đường dẫn thuộc riêng người dùng khác; hãy dùng /sdcard hoặc một ứng dụng debug được với run-as.
  • Truyền chậm: thư mục rất lớn với hàng nghìn tệp nhỏ chậm hơn vài tệp lớn. Hãy nén thư mục trước nếu cần tốc độ.
  • Không tìm thấy thiết bị: xem sửa lỗi ADB busy, unauthorized và no devices.