2010-07-15 9 views
14

Tôi có Nexus One được kết nối với USB.Không thể truy cập thư mục dữ liệu trong File Explorer của DDMS bằng Nexus One!

Khi tôi truy cập Trình khám phá tệp của DDMS, nếu tôi nhấp vào thư mục "dữ liệu", dấu cộng nhỏ gần tên "dữ liệu" sẽ biến mất trong 2-6 giây và sau đó xuất hiện lại nhưng phần mở rộng của thư mục "dữ liệu" không được cho thấy!

Dưới đây một số thông tin khác:

  • dữ liệu thư mục có quyền truy cập drwxrwx - x

  • hệ điều hành của máy tính của tôi là Windows XP

  • Eclipse v 3.5.2

    .
  • Android SDK 1.6

+1

Câu hỏi về Stack Overflow được dự kiến ​​thường liên quan đến lập trình hoặc phát triển phần mềm theo một cách nào đó, trong phạm vi được xác định trong faq. – Pentium10

+3

Nếu bạn không có quyền truy cập root trên điện thoại, bạn không thể truy cập vào thư mục dữ liệu. – Pentium10

+0

thử yêu cầu trên forceclose.com – Pentium10

Trả lời

9

Nếu daemon adbd đang chạy dưới dạng gốc, bạn có thể duyệt/dữ liệu bằng cách sử dụng các công cụ dựa trên adb chẳng hạn như trình khám phá tệp DDMS hoặc trình bao quảng cáo.

Nếu không, bạn có thể truy cập một vài tệp trong/dữ liệu và con của nó trực tiếp theo tên đường dẫn đầy đủ của chúng, nhưng bạn không thể duyệt (hoặc 'cd' đến) hầu hết các thư mục, bao gồm/dữ liệu.

"rễ" là một quy trình không chính thức có nghĩa là những thứ khác nhau và tạo ra các kết quả khác nhau - ví dụ, adbd có thể hoặc không thể chạy dưới dạng gốc.

Nếu ro.secure được đặt thành 0 trong tập lệnh khởi động như /init.rc, adbd sẽ chạy dưới dạng gốc, nhưng đó có thể không phải là ý tưởng hay về thiết bị của người dùng. Nó được đặt thành 0 trên trình mô phỏng, và đó là lý do tại sao bạn có thể duyệt/dữ liệu ở đó. Cuối cùng, lưu ý rằng /init.rc thường được chứa trong một hình ảnh ramdisk được đóng gói vào hạt nhân - bạn không thể chỉnh sửa nó trên điện thoại nhưng sẽ phải sửa đổi hình ảnh ngoại tuyến, gắn lại nó vào hạt nhân và bật lại chúng. Mặc dù nếu bạn có một số loại 'su' hack, bạn có thể thay đổi thuộc tính tạm thời và khởi động lại adbd.

+4

Những người tìm cách truy cập dữ liệu của một ứng dụng đang được phát triển trên một thiết bị không bắt nguồn từ cũng có thể muốn xem xét lệnh run-as dưới vỏ adb, có thể giúp bạn có một quá trình shell chạy như id người dùng của bạn (debug-) xây dựng) APK, với thư mục dữ liệu của ứng dụng làm thư mục làm việc của nó. –

+0

cảm ơn cho mẹo về điều này (ít nhất là đối với tôi) lệnh tối nghĩa. Thật ngạc nhiên khi Eclipse không thực hiện phép thuật này đằng sau vỏ bọc cho các thiết bị không bắt nguồn từ. Thở dài. – jpm

2

Tôi không nghĩ rằng bất kỳ ai thực sự hiểu được câu hỏi này. Giorgio có thể sử dụng Trình khám phá tệp DDMS để duyệt thư mục ./data trên điện thoại của mình. Pentium10 nói về việc cần truy cập root trên điện thoại.

Vâng tôi là Nexus One bán lẻ và Nexus dành cho nhà phát triển. Tôi luôn có thể sử dụng DDMS File Explorer để duyệt thư mục ./data trên điện thoại của nhà phát triển nhưng không thể sử dụng điện thoại bán lẻ của mình. Vì vậy, tôi root điện thoại bán lẻ của tôi sẽ giúp đỡ. Tôi đã không.

Vì vậy, điểm mấu chốt là có điều gì đó khác biệt về điện thoại bán lẻ và nhà phát triển. Cho đến khi nghiên cứu thêm được thực hiện, bạn sẽ không thể duyệt thư mục dữ liệu trên điện thoại của bạn.

Hy vọng điều này sẽ hữu ích.

6

Trong liên kết này (http://denniskubes.com/2012/09/25/read-android-data-folder-without-rooting/) Dennis Kubes hiển thị một phương pháp để truy cập thư mục dữ liệu của ứng dụng mà không cần quyền truy cập gốc.

Hóa ra có một giải pháp đơn giản, lệnh chạy.

run-as com.your.package ls -l /data/data/com.your.package 
run-as com.your.package rm /data/data/com.your.package/databases/mydatabase.db 

Điều đó sẽ cho phép bạn chạy các lệnh dưới dạng ứng dụng của bạn. Bạn cũng có thể sử dụng run-as ở chế độ tương tác.

run-as com.your.package 
[email protected]:/data/data/com.your.package $ ls 
cache 
databases 
lib 
shared_prefs 
rm databases/mydatabase.db 

Chế độ tương tác sẽ thả bạn vào thư mục dữ liệu cho ứng dụng của bạn. Bạn có thể điều hướng từ đó.

+0

bash: run-as: lệnh không tìm thấy –

+0

@Leo làm 'adb shell' lúc đầu – Evgeniy