Восстановить файлы приложения

Мой телефон Motorola MOTO G (первое поколение). Из-за некоторых проблем я восстановил заводские настройки своего телефона. Но я забыл сделать резервную копию некоторых данных приложения (Tricount). В этот момент мой телефон не был рутирован.

Мой вопрос: возможно ли восстановить файлы данных этого приложения?

В настоящее время я только что рутировал свой телефон и сейчас делаю RAW-копию системы Android с помощью команды adb shell su -c "cat /dev/block/mmcblk0" | pv > mmcblk0.raw. Моя идея состоит в том, чтобы использовать extundeleteкоманду для восстановления файлов после извлечения разделов с использованием Testdisk.

Вы рекомендуете искать файлы в определенном разделе? Я не совсем знаком с файловой системой Android...

РЕДАКТИРОВАТЬ: еще один метод (я еще не тестировал). В терминале 1

АБР вперед TCP: 5555 TCP: 5555

adb оболочка

Су

/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0p12

В терминале 2

АБР вперед TCP: 5555 TCP: 5555

нк 127.0.0.1 5555 | pv -i 0.5 > mmcblk0p12.raw

NB: веб-сайты:

РЕДАКТИРОВАТЬ: к сожалению, кажется, что Android перезаписывает файлы при восстановлении заводских настроек (по соображениям безопасности), поэтому восстановить файлы невозможно... :-(

на основе разговора в ответе ниже, взгляните на эту ссылку . У меня нет реального опыта в этом, и из вашего вопроса вы знаете об этом больше, чем я. Надеюсь, ты сможешь выздороветь. Удачи. (Надеюсь, вы останетесь здесь и поможете другим решить их проблемы с восстановлением данных в будущем :))
@RyanConrad ;-) Я уже перехожу по этой ссылке. Но я не уверен, что команда извлечения хороша. В настоящее время я могу извлечь только файл RAW размером 4 ГБ +, но в моем телефоне обычно 16 ГБ ...
это может быть важная информация . Я использую свой «GoogleFu» и хватаю соломинку для получения информации. Из этого документа видно, что пользовательские данные @ /dev/block/mmcblk0p5
@RyanConrad Одна команда, чтобы узнать, на каком разделе находятся пользовательские данные: ls -al /dev/block/platform/msm_sdcc.1/by-name/. Я получаю одну строку с: lrwxrwxrwx root root 1970-09-23 09:51 userdata -> /dev/block/mmcblk0p36...
У меня недостаточно уровня, поэтому предлагаю одну новую ссылку: !!! forum.xda-developers.com/showthread.php?t=1818321
Я предлагаю вам также посмотреть, как я могу восстановить удаленный файл на Android, если вы еще этого не сделали. Это для файла SD-карты, но он также должен иметь отношение к вашему блоку пользовательских данных.
@RyanConrad Спасибо. Я это уже видел, но хочу избежать записи во внутреннюю память (и перезаписи существующих файлов).
@RyanConrad На самом деле я не могу... Моя репутация слишком низкая (требуется 20)...
Я написал это в чате: потребуют ли «ручные» шаги в ответе запись во внутреннюю память? Например, dd if=/dev/<blockdevice> of=/storage/sdcard1/image.img bs=4096 будет читать из /dev/<blockdevice> и записывать образ во внешнее хранилище. тогда на ПК вы могли бы использовать инструмент восстановления данных, чтобы просмотреть .img вместо того, чтобы пытаться считать с устройства, и у вас будет «копия» изображения, поэтому вам не придется беспокоиться о дополнительной потере данных при записи. .
@RyanConrad /storage/sdcard1/разговаривает по телефону? потому что в моем телефоне нет SD-карты
Хорошо, не знал, что в телефоне нет слота для SD-карты, извините. если вы записываете в /storage/sdcard0/, который находится в другом блоке, будут ли перезаписаны области для блока пользовательских данных? Я думаю, что нет, но это всего лишь предположение. Я думаю, что создание образа с помощью dd может быть лучшим вариантом, потому что тогда у вас будет точный образ «сейчас». вам нужно только включить телефон, создать образ, скопировать его, а затем выключить. В противном случае вы рискуете, что другие приложения будут записывать данные в блок пользовательских данных и искажать данные.
@RyanConrad В настоящее время я создаю образ, используя файлы dd. Около 1 часа на 16 Гб....

Ответы (1)

Что за приложение Tricount? Это означает, что он предварительно установлен на вашем телефоне или вы загружаете его из магазина Play, такого как Google Play Store?

Ответом на приведенный выше вопрос является IMP, поскольку файловая система Android поддерживает четкое различие между системными приложениями (которые поставляются OEM-производителем вашего устройства) и загруженными приложениями.

Предполагая, что это загруженное приложение, вы можете проверить расположение ниже: /data/data/app-package-name Где app-package-name — это имя пакета (данное разработчиком, разработавшим приложение Tricount).

Tricount — это приложение, которое я скачал в магазине Google Play.
Вы можете проверить /data/data/app-package-name для Tricount. Все его данные (включая базы данных, используемые внутри приложения) будут храниться внутри него.
Даже если это было системное приложение, «данные» для приложения хранятся в «пользовательских данных» в системном хранилище. Эти «данные пользователя» удаляются при сбросе настроек до заводских. Короче говоря, если приложение не синхронизирует данные с облачными сервисами Google, вероятность того, что вы сможете восстановить их, невелика (в лучшем случае).
@RyanConrad, но файлы перезаписаны или просто удалены? Моя идея состоит в том, чтобы использовать инструменты восстановления...
ADB предоставляет один встроенный способ резервного копирования. adb backup -noapk com.your.packagename
Вы можете попробовать инструменты восстановления, но проблема с ними в том, что им обычно требуется низкоуровневый доступ к хранилищу, который вы, вероятно, не сможете получить. И после того, как вы «сбросили настройки», вы, вероятно, загрузили телефон, который начал записывать «новые данные» поверх старых, удаленных данных. Таким образом, даже если вы можете получить доступ с помощью инструментов восстановления, вероятность того, что данные были повреждены из-за перезаписи, высока.
@AADТехническая резервная копия не поможет, так как данные были удалены.
@RyanConrad Я согласен с тобой. Но я хочу попробовать. Что вы думаете о моей команде извлечь RAW-копию данных?