2011-07-05 32 views
9

Có vị trí nào trên thiết bị Android mà chúng tôi có thể đẩy tệp (sử dụng adb) không nếu thiết bị không có thẻ SD và chúng tôi không có quyền truy cập root?Android adb đẩy đến vị trí trong thiết bị không có sdcard và không có quyền truy cập root

(Tôi cố gắng để đẩy nộp tính vào thiết bị, vì vậy tôi cũng sẽ cần phải có khả năng đọc từ vị trí này bên trong một hoạt động chạy trên thiết bị)

Trả lời

4

Mỗi thiết bị có khả năng thể khác nhau . Trên một số điện thoại, chẳng hạn như Samsung Galaxy S Vibrant, thẻ/sdcard/mount được ghi bởi bất kỳ máy chủ nào được kết nối thông qua adb. Đối với những người khác, chẳng hạn như MyTouch 4G, 'adb push' không thể gửi bất kỳ tệp nào đến bất kỳ đích nào.

Nếu bạn đang thử nghiệm chỉ với một hoặc hai thiết bị, hãy mở một số adb shell và đưa ra các lệnh như dfls -l để xem điểm gắn kết nào và quyền của tệp.

Nếu người dùng của bạn có thể thực hiện find trên thiết bị Android, đó thực sự là một lợi ích và bạn có thể sử dụng điều đó để định vị tệp có thể ghi uid hiệu quả hiện tại (hoặc có thể ghi bởi tất cả).

Một số thư mục để thử:

 

    /sdcard 
    /data 
    /tmp 
    /opt 

Bạn có lẽ đã nhìn thấy adb page nhưng tôi liên kết nó chỉ trong trường hợp.

Ví dụ df đầu ra:

 

    $ df 
    /dev: 318068K total, 64K used, 318004K available (block size 4096) 
    /system: 558668K total, 468920K used, 89748K available (block size 4096) 
    /data: 1190256K total, 129868K used, 1060388K available (block size 4096) 
    /cache: 294628K total, 16720K used, 277908K available (block size 4096) 
    /devlog: 21100K total, 6056K used, 15044K available (block size 4096) 
    /mnt/asec: 318068K total, 0K used, 318068K available (block size 4096) 
    /mnt/obb: 318068K total, 0K used, 318068K available (block size 4096) 
    /app-cache: 8192K total, 0K used, 8192K available (block size 4096) 

6

/data/local thường là có thể đọc được và có khả năng ghi bởi người sử dụng vỏ (cho người dùng biết adb shell chạy dưới). Vì vậy, bạn sẽ có thể adb đẩy một tập tin vào/dữ liệu/địa phương.

Để cho một ứng dụng để có thể truy cập vào nó, bạn cũng sẽ phải thiết lập các điều khoản trên các tập tin một cách thích hợp

adb push prefs.txt /data/local 
adb shell chmod 664 /data/local/prefs.txt 

cách tiếp cận khác sẽ có ứng dụng của bạn tạo một thư mục mới theo đó là thư mục dữ liệu ứng dụng trên thiết bị và thiết lập các quyền trên thư mục để có thể đọc được/ghi trên thế giới, cho phép bạn đẩy adb vào đó.

5

ADB push có vẻ hoạt động tốt với '/ data/local/tmp'.

Các vấn đề liên quan