Android eclipse DDMS - Не вдається отримати доступ до даних / даних / на телефоні для витягування файлів


77

Під час тестування своїх програм я використовую емулятори та власний телефон, щоб перевірити, чи все працює нормально. Мої програми також записують дані у спільні налаштування та текстовий файл.

Я можу витягувати дані з моїх емуляторів через DDMSin eclipse, щоб я міг читати файли даних на своєму комп’ютері, але коли я намагаюся відкрити ці папки через DDMSна моєму телефоні, нічого не відбувається. Я натискаю папку даних, і нічого не відбувається.

Мій телефон кореневий. Чи можу я якось витягнути файли зі свого телефону? Я знаю, що Android зберігає ці папки приватними, але повинен бути спосіб. Емулятор просто шлях занадто повільно.


4
як це зробити на некореневому телефоні?
likejudo

Я не думаю, що це можливо, враховуючи, що вам потрібно буде змінити дозволи файлової системи на ці файли / папки. Цього неможливо зробити без вкоріненого пристрою.
dell116

Відповіді:


160

На корінному пристрої ви можете зробити це:

  1. Відкрийте cmd
  2. Тип adb shell
  3. su
  4. Натисніть "Дозволити" на пристрої
  5. chmod 777 /data /data/data /data/data/com.application.package/data/data/com.application.package/*
  6. Перейдіть до подання DDMS у Eclipse

Після цього ви зможете переглядати файли на пристрої.

Щоб отримати бази даних:

  1. chmod 777 /data/data/com.application.package/databases /data/data/com.application.package/databases/*

Якщо він повернеться permission deniedдаліsu

Перейти Settings> Developer Options> Root access>Apps and ADB


Нарешті .... це працює! Майже через рік і пецепс проходить. Тож я здогадуюсь, що ця проблема пов’язана з дозволами файлової системи?
dell116

3
@Praveenb, у мене була та ж проблема, але потім я повторив вищезазначену команду chmod з додатковими папками: /data/data/com.application.package/databases /data/data/com.application.packages/databases/*
Том,

6
@peceps: Мій телефон не кореневий. Команда на кроці 3 робота для мене не працює. Там сказано, що дозвіл відмовлено У пристрої немає параметра "Дозволити".
Ashwin

3
використовуйте chmod -R 777 /data/data/для рекурсивного застосування цієї команди
Костянтин Мілютін

2
Я отримую "su: не знайдено", коли намагаюся запустити su після "adb shell". (Я використовую телефон, що не має
коренів

6

Здається, ніхто не розуміє, що роздрібна версія Nexus One навіть після вкорінення все одно не дозволить вам переглядати файлову систему за допомогою DDMS File Explorer. Тут ми говоримо про реальні телефони, а не про емулятор. Якщо у вас трапляється телефон розробника Nexus One, ви можете переглядати файлову систему, використовуючи DDMS Filer Explorer, але роздрібний Nexus One, який був укорінений, ви не можете. Зрозумів?

Тож я сподіваюся, що це відповідає на питання про те, що не можна використовувати DDMS File Explorer для перегляду файлової системи корінного Nexus One. Після вкорінення роздрібного Nexus One ще потрібно щось зробити, щоб за допомогою DDMS використовувати File Explorer для перегляду файлової системи телефонів. Я не знаю, що це. Можливо, хтось інший знає.


Амінь, брате. Я б впевнений, що хотів би знати, що робить Root Explorer, щоб потрапити туди ....
dell116

7
Це коментар, а не відповідь.
Chris Stratton

4

Якщо дає «доступ заборонений» на ADB оболонки -> су ...

Деякі ПЗУ запускають демон adbd у захищеному режимі (adbd не має кореневого доступу, а команда su навіть не відображає діалогове вікно запиту дозволу на пристрої). У цьому випадку ви отримаєте "дозвіл відмовлено" при спробі cmd -> adb shell -> su. Рішення, яке я знайшов, - це одна програма від відомого моддера Chainfire, яка називається Adbd Insecure.


1
У CyanoGenMod перейдіть до налаштування -> Параметри розробника -> root-доступ і змініть на «adb and apps» (за замовчуванням «apps»)
JRun,

3

Ви повинні редагувати дозвіл папки даних.

Я використовую додаток "Root Explorer" (див. Ринок) у кореневому режимі.

Зверху виберіть "Monunted as r / w"

потім натисніть на папку даних (довгий клік) і знайдіть параметр Дозвіл

Майте щось подібне

        read    write  execute

Користувач

Група

Інші

Переконайтеся, що "Інші" мають чек на прочитане

Потім перейдіть до Eclpse і повторіть спробу.

Вибачте за мою англійську, сподіваюсь, я можу вам допомогти


1
Це вкрай нерозумно!
Кріс Страттон,

2

Щоб встановити дозвіл на dataпапку та всі її папки та файли:
Відкрийте командний рядок із папки ADB:

>> adb shell
>> su
>> find /data -type d -exec chmod 777 {} \;

2

Набагато простіше, ніж messing around with permissionsу android FS (що
для мене завжди здається хакерством - адже я вважаю, що такий тип має бути integrated way) - це просто:

Дозвольте ADB root accessі Restart the deamonс root permissions.

  1. Спочатку переконайтеся, що ADB може мати рут-доступ на вашому пристрої (або емуляторі):
    ( Settings-> Developer Options-> Root-Access for ADBабо Apps & ADB.
  2. Перезапустіть службу ADB з правами root:
    Відкрийте a command promptі введіть:adb.exe root
  3. Перезапустіть ADM (Диспетчер пристроїв Android):
    Enjoyперегляд усіх файлів
  4. Для того, щоб звести на ні цей процес:
    Тип adb.exe unrootу вашій command prompt.

@ János Можливо, це пов’язано, тому що я використовую CyanogenMod
Cadburry

1

Подія, хоча занадто пізно намагатися відповісти на це, я залишу те, що працювало для мене.

Рішення Peceps не працювало, оскільки додаток SuperUser не дозволяв "оболонці" мати root-доступ. Тож моє рішення полягає в тому, щоб безпосередньо використовувати інший додаток, такий як RootExplorer, і переглядати папки з нього.


1
Потрібно сказати, що з усіх відповідей із переліком команд adb, зміною дозволів та возинням з DDMS це означало, що я витратив цілий вечір (що я міг витратити на перегляд футболу) ... це було єдиним, найкращим та найпростішим рішенням що насправді дозволило мені прочитати базу даних. Велика повага та подяка.
SimonH

1

Якщо він повертає " дозвіл відмовлено " в оболонці adb -> su ...

Перейдіть до "Параметри розробника" -> Кореневий доступ -> "Програми та ADB"


Я використовую HTC і, здається, не можу знайти Root-доступ у варіанті розробника
Pankaj Nimgade

0

Коли я кажу про файлову систему, я мав на увазі всю файлову систему. Але ви можете переглядати лише частину файлової системи на роздрібному телефоні, можливо, навіть більшу частину файлової системи, але не ./data. Вибачте за будь-яку плутанину, яку це могло спричинити.

Це мене насторожує, тому що я вкорінив свій роздрібний Nexus One та розробника / розблокував Nexus One. Оскільки я вкорінив свій роздрібний Nexus One, я не можу зрозуміти, чому я не можу переглядати всю файлову систему, як я можу на своєму розробнику Nexus One.


-3

Якщо ТЕ ПОТРІБНО робити це на своєму телефоні, я використовую емулятор терміналу та стандартні команди Linux.

Приклад:

  1. су
  2. дані компакт-дисків
  3. cd com.yourappp
  4. ls або cd в кеш / shared_prefs

http://www.appbrain.com/app/android-terminal-emulator/jackpal.androidterm


Ні, не потрібно цього робити.
Октавіан А. Дамієн

3
@ Октавіан - Ви говорите мені, що ви можете витягувати файли з реального телефону, а не емулятора, за допомогою провідника файлів у DDMS? Щоразу, коли я натискаю папку "дані" у провіднику файлів, дерево не заповнює дерево. Ваша відповідь нижче працює для мене, лише якщо я використовую емулятор, а не справжній телефон.
dell116

1
Якщо вам потрібен доступ до папки даних, то вам доведеться використовувати корінні пристрої.
Siddharth_Vyas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.