тянуть АДБ / данные не удается


19

Я рутировал свое устройство HTC Evo Design 4G, и я пытаюсь добавить данные / данные, которые выдают: «0 файлов извлекают 0 файлов пропущены»

Мне удалось вытащить /System/build.prop. Как я могу вытащить корневую папку.

Спасибо, Иуа


1
Ты побежал adb rootпервым?
оник

Да, но adb root не имел успеха. Отсутствует разрешение. Но я мог бы adb shell su. Это дает #.
user3734225

Ответы:


20

Приведенные ниже файлы и каталоги /data/dataзащищены от «обычного пользователя», поэтому вы не можете просто «вытянуть» их, если демон ADB не работает в режиме root. За исключением файла, на который вы ссылались ( /system/buildpropпо крайней мере, читаемый всеми приложениями), указанные ниже папки /data/dataявляются «невидимыми» (кроме корневых), поэтому они даже не могут быть прочитаны.

Чтобы иметь возможность использовать adb pullих, вам нужно сначала запустить демон ADB в режиме root. В зависимости от устройства, простая adb rootкоманда может сделать это, но большинство устройств откажутся. В этих случаях вы можете использовать небезопасный adbd chainfire : установите это приложение на свое устройство, запустите его там и вручную переключитесь в «небезопасный» режим. Теперь это pullдолжно быть успешным.

Примечание: это называется «небезопасно», потому что запуск adbdс правами root дает всем, у кого есть компьютер и кабель USB, доступ ко всему на вашем устройстве. На всякий случай, если вам интересно.


Тхамк тебе! Могу ли я установить флаг ro.secure в свойстве сборки, кроме небезопасного adbd в цепочке? Можно ли использовать adb shell setprop ro.secure 0?
user3734225

Я никогда не пробовал этого, и при этом я не знаю точно, для чего этот флаг - поэтому я не могу сказать. ( Между прочим : если вы нашли ответ полезным, вы можете его «поддержать» (SE сказать «спасибо») - или «принять», когда он решит нашу проблему;)
Иззи

1
adbd небезопасная работа для меня :)
user3734225

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каталог?
Emen

чудесный ответ
Дэн Брэдбери

5

Вы не можете напрямую извлекать папку с данными, поскольку у adb нет доступа к списку файлов. Если вы хотите вытащить папку / data, вы можете сделать это с помощью восстановления ([Custom recovery, CWM / TWRP] запустите adb, пока устройство находится в режиме восстановления, возможно, пользовательское восстановление). Или как root, скопируйте / data в другой каталог (sdcard) и извлеките его оттуда.


Спасибо. Но я смог вытащить файл build.prop в папку / System. adb shell su и тогда я могу перечислить файлы в корневой папке. Я прочитал в настройках поиска Google ro.secure свойство build до 0 поможет тянуть / данные. Это правда? Если так, есть ли способ сделать это?
user3734225

Вы можете использовать build.prop, потому что / system имеет разрешение на листинг. Вы можете изменить ro.secure = 0 в вашем boot.img, но это действительно сложный шаг. Было бы проще просто установить кастомное рекавери и сделать это оттуда.
Химаншу Шарма

Большое спасибо! Моя основная цель этих усилий заключается в реализации приложения, связанного с судебной экспертизой, в качестве учебного проекта в университете. Я очень боюсь, установка кастомного рекавери сотрет улики с устройства. Есть ли у вас какие-либо идеи по поводу предмета.
user3734225

Добавление к моему предыдущему комментарию - Какая польза от adb shell setprop? Я не могу использовать это в этом случае?
user3734225

1
Программа судебного восстановления, основанная на том, чтобы телефон был рутирован и включена отладка, не очень полезна.
Дэн Халм

1

ЧАСТЬ I: Подготовка всех файлов к вытягиванию ADB

Вот что сработало для меня: * Убедитесь, что вы используете последнюю версию ADB.

  • Начать сессию АБР:

'infocus $ adb shell'

  • Получите права SU один раз в сеансе ADB, все что вам нужно сделать, это типа "su", например, так:

'shell @ 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 /'

  • После того, как вы нажмете клавишу ввода, если файл достаточно большой, его копирование, очевидно, займет некоторое время, поэтому курсор будет немного мигать, он будет выглядеть так, будто ничего не делает, НО ЭТО ТАК! это копирование файлов, так что не паникуйте! и не останавливайте процесс !!! -Если вы хотите просто открыть еще один сеанс оболочки 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: ТЯГА АБР

  • К этому моменту, если вы не создали папку на целевой машине, сделайте это. Я удобно создал папку под названием «приложения»

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

'root @ m1: / sdcard / data # exit'
'shell @ m1: / $ exit'

  • В обычном сеансе оболочки запустите «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-й: вам, вероятно, нужно предоставить root-доступ 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.