збій adb / даних не вдається


19

Я вкоренив свій пристрій HTC Evo Design 4G і намагаюся adb pull / data data, і він говорить "0 файлів витягнути 0 файл пропущено"

Мені вдалося витягнути /System/build.prop. Як я можу витягнути кореневу папку.

Дякую тобі iua


1
Ви бігали adb rootпершими?
onik

Так, але корень adb не мав успіху. Немає дозволу. Але я міг adb shell su. Це дає #.
користувач3734225

Відповіді:


20

Файли та каталоги нижче /data/dataзахищені від "середнього користувача", тому ви не можете просто "витягнути" їх, якщо демон ADB не працює в кореневому режимі. Окрім файлу, на який ви посилалися ( /system/buildpropпринаймні читається всіма програмами), папки нижче /data/data"невидимі" (крім кореневих), тому їх неможливо навіть прочитати.

Щоб мати можливість користуватися adb pullними, вам потрібно спочатку змусити демон ADB запускатись у кореневому режимі. Залежно від пристрою, це adb rootможе зробити проста команда - але більшість пристроїв відмовляться це робити. У таких випадках ви можете використовувати adbd ланцюгової безпеки небезпечно : встановіть цю програму на свій пристрій, запустіть її там і вручну перейдіть у режим "небезпечно". Тепер pullповинен досягти успіху.

Зауваження: Це називається "незахищеним", оскільки запущений adbdкорінь дає всім, хто має комп'ютер та USB-кабель, доступ до всього пристрою. Про всяк випадок, коли вам цікаво.


Хай ти! Якщо я не можу встановити прапор ro.secure у власність збірки, окрім ланцюгового вогню adbd. Чи можна використовувати adb shell setprop ro.secure 0?
користувач3734225

Я ніколи цього не пробував, і не знаю точно, для чого цей прапор - тому не можу сказати. (Btw: якщо ви вважаєте, що відповідь є корисною, ви можете "підняти" її (спосіб SE сказати "спасибі") - або "прийняти" її, коли вона вирішила нашу проблему;)
Izzy

1
adbd небезпечна робота для мене :)
користувач3734225

6

Якщо ваш телефон укорінений, є три способи подолати це. Перший - використовувати небезпеку ADBD .

Інший - перенести його в іншу папку з коренем, а потім витягнути звідти:

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit

Я думаю, ви можете створити такий сценарій, як:

echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell
adb pull /sdcard/data .
echo 'rm -r /sdcard/data; exit' | adb shell

і зберегти його десь.

Нарешті, третій варіант є chmod -R 1777 /data/data, але це набагато небезпечніше, тому він сильно не рекомендується.


Чи можу я запитати, на що $1/*йдеться? Це /data/dataкаталог?
Емен

голосна відповідь
Ден Бредбері

5

Не можна перетягувати папку даних безпосередньо, оскільки adb не має доступу до неї з переліком файлів. Якщо ви хочете витягнути папку / data, ви можете зробити це за допомогою відновлення ([Спеціальне відновлення, CWM / TWRP] запустіть adb, коли пристрій перебуває в режимі відновлення, сподіваємось, користувацьке відновлення). Або як root, скопіюйте / дані в інший каталог (sdcard) і витягніть його звідти.


Дякую. Але мені вдалося витягнути файл build.prop в папку / System. adb shell su, і тоді я можу перелічити файли в кореневій папці. Я прочитав у налаштуваннях пошуку Google ro.secure build властивість до 0 допоможе витягнути дані. Це правда? Якщо так, чи є спосіб це зробити?
користувач3734225

Ви можете витягнути build.prop, оскільки / система має дозвіл на лістинг. Ви можете змінити ro.secure = 0 у своєму boot.img, але це дійсно складний крок. Було б простіше просто встановити спеціальне відновлення і зробити це звідти.
Hiemanshu Sharma

Велике спасибі! Моя основна мета зусиль - реалізація програми, пов’язаної з криміналістикою, як проект підсумкового курсу університету. Я дуже боюся, якщо встановити користувальницьке відновлення знищить докази з пристрою. Чи маєте ви якесь уявлення про тему.
користувач3734225

Додавання до мого попереднього коментаря - Для чого використовується програма adb shell setprop? Чи не можу я його використовувати в цьому випадку?
користувач3734225

1
Програма криміналістичного відновлення, яка покладається на вкорінення телефону та включення налагодження, не здається дуже корисною.
Dan Hulme

1

ЧАСТИНА I: Підготовка всіх файлів до ADB PULL

Це для мене працювало: * Переконайтеся, що ви використовуєте останню версію ADB.

  • Початок сеансу ADB:

'оболонка infocus $ adb'

  • Отримайте права SU один раз на сесії ADB, все, що вам потрібно зробити, це набрати "su" так:

'оболонка @ m1: / $ su'

Тоді ви помітите, що "$" стає "#", наприклад:

'root @ m1: / #'

-Хеш дай нам знати, що ти в режимі SU.

  • Створіть папку на / sdcard пристрою

'root @ m1: / # mkdir / sdcard / data /'

* голова до кореня файла, який ви хочете скопіювати. Для мене, наприклад, я хотів зробити резервну копію / копію своїх додатків і зберегти її на своєму комп’ютері так:

'root @ m1: / data / app #'

  • Приклад того, що я отримую, якщо я "ls" цю папку:

'root @ m1: / data / app # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1
com.android. вендинг-2 '

  • Для того, щоб скопіювати рекурсивно команду ADB "cp", скористайтеся опцією "-R", і оскільки я хотів скопіювати все, що в ній, я використав підстановку "*" так:

'root @ m1: / data / app # cp -R * / / sdcard / data /'

  • Після натискання клавіші Enter, якщо файл досить великий, скопіювати файли, очевидно, знадобиться деякий час, тому курсор ненадовго блимає, це буде виглядати, якщо нічого не робити, АЛЕ ТАК! це копіювання файлів, тому не панікуйте! і не зупиняйте процес !!! -Якщо ви хочете просто відкрити ще один сеанс оболонки ADB і перейдіть до папки, куди ви переносите файли, і зробіть перевірку "ls", і ви повинні побачити, що порожня папка зараз заповнюється файлами. Як тільки передача буде виконана, ви отримаєте свою оболонку назад.

  • Перейдіть до "sdcard / data" і переконайтесь, що все було скопійовано "ls":

'root @ m1: / sdcard / data # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1'

ЧАСТИНА II: АБРУВАННЯ

  • До цього моменту, якщо ви не створили папку на цільовій машині, зробіть це. Я зручно створив папку під назвою "apps"

  • Тепер давайте зробимо невловимий рекурсивний ADB PULL всіх файлів одразу: - Переконайтесь, що ви вийшли з сеансу ADB, оскільки ми були в режимі SU, нам потрібно буде вийти двічі:

'root @ m1: / sdcard / data # exit'
'оболонка @ m1: / $ вихід'

  • З звичайного сеансу оболонки запустіть "adb pull", вам не потрібно використовувати опцію "-a", я особисто використовую її, щоб максимально зберегти цілісність файлів. - запустіть команду:

'AtomicusZro $ adb pull -a / sdcard / data / apps /'

Ви повинні побачити щось подібне:

'[69%] /sdcard/data/com.google.android.gms-1/base.apk: 74%'

Як тільки це буде зроблено:

'/ sdcard / data /: 296 файлів витягнуто. 5,1 Мб / с (1193942288 байт за 221,352 с) '

І Вуаля!

Бічні примітки:
.Не знаю, чи має значення, але я використовую Mac.
. Якщо на сеансі ADB ви не можете отримати "su привілеїв":
1-й: Вам, мабуть, потрібно надати кореневий доступ ADB
2-й: "суперкористувач", він не встановлений правильно.
Подвійно перевіряйте свої команди

Щасти.-


Хіба я не потребую цього коріння?
neverMind9

0

працює на моєму пристрої Android 7.1. кроки для його роботи:

  1. завантажте небезпечну версію adbd від leroy на https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk
  2. встановити у свій телефон.
  3. запустіть оболонку adb у своєму каталозі adb
  4. введіть "su", щоб ви могли отримати "#"
  5. введіть "setenforce 0"
  6. включити незахищений adbd. usb-налагодження вимикається
  7. включити і вимкнути налагодження usb з параметрів розробника
  8. вимкнути і знову ввімкнути adbd.

тепер ви можете adb тягнути до вашого ПК.

Сподіваюся, це допомагає


Харіс

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