Я вкоренив свій пристрій HTC Evo Design 4G і намагаюся adb pull / data data, і він говорить "0 файлів витягнути 0 файл пропущено"
Мені вдалося витягнути /System/build.prop. Як я можу витягнути кореневу папку.
Дякую тобі iua
Я вкоренив свій пристрій HTC Evo Design 4G і намагаюся adb pull / data data, і він говорить "0 файлів витягнути 0 файл пропущено"
Мені вдалося витягнути /System/build.prop. Як я можу витягнути кореневу папку.
Дякую тобі iua
Відповіді:
Файли та каталоги нижче /data/data
захищені від "середнього користувача", тому ви не можете просто "витягнути" їх, якщо демон ADB не працює в кореневому режимі. Окрім файлу, на який ви посилалися ( /system/buildprop
принаймні читається всіма програмами), папки нижче /data/data
"невидимі" (крім кореневих), тому їх неможливо навіть прочитати.
Щоб мати можливість користуватися adb pull
ними, вам потрібно спочатку змусити демон ADB запускатись у кореневому режимі. Залежно від пристрою, це adb root
може зробити проста команда - але більшість пристроїв відмовляться це робити. У таких випадках ви можете використовувати adbd ланцюгової безпеки небезпечно : встановіть цю програму на свій пристрій, запустіть її там і вручну перейдіть у режим "небезпечно". Тепер pull
повинен досягти успіху.
Зауваження: Це називається "незахищеним", оскільки запущений adbd
корінь дає всім, хто має комп'ютер та USB-кабель, доступ до всього пристрою. Про всяк випадок, коли вам цікаво.
Якщо ваш телефон укорінений, є три способи подолати це. Перший - використовувати небезпеку 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
каталог?
Не можна перетягувати папку даних безпосередньо, оскільки adb не має доступу до неї з переліком файлів. Якщо ви хочете витягнути папку / data, ви можете зробити це за допомогою відновлення ([Спеціальне відновлення, CWM / TWRP] запустіть adb, коли пристрій перебуває в режимі відновлення, сподіваємось, користувацьке відновлення). Або як root, скопіюйте / дані в інший каталог (sdcard) і витягніть його звідти.
Це для мене працювало: * Переконайтеся, що ви використовуєте останню версію ADB.
'оболонка infocus $ adb'
'оболонка @ m1: / $ su'
Тоді ви помітите, що "$" стає "#", наприклад:
'root @ m1: / #'
-Хеш дай нам знати, що ти в режимі SU.
'root @ m1: / # mkdir / sdcard / data /'
* голова до кореня файла, який ви хочете скопіювати. Для мене, наприклад, я хотів зробити резервну копію / копію своїх додатків і зберегти її на своєму комп’ютері так:
'root @ m1: / data / app #'
'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 '
'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'
До цього моменту, якщо ви не створили папку на цільовій машині, зробіть це. Я зручно створив папку під назвою "apps"
Тепер давайте зробимо невловимий рекурсивний ADB PULL всіх файлів одразу: - Переконайтесь, що ви вийшли з сеансу ADB, оскільки ми були в режимі SU, нам потрібно буде вийти двічі:
'root @ m1: / sdcard / data # exit'
'оболонка @ m1: / $ вихід'
'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-й: "суперкористувач", він не встановлений правильно.
Подвійно перевіряйте свої команди
Щасти.-
працює на моєму пристрої Android 7.1. кроки для його роботи:
тепер ви можете adb тягнути до вашого ПК.
Сподіваюся, це допомагає
Харіс
adb root
першими?