Есть риск, используя один знак доллара `$` в качестве имени класса Java?

Если ваше устройство работает под управлением Android v4 или выше, вы можете вытащить данные приложения, включая его базу данных, без root, используя команду adb backup, затем извлечь файл резервной копии и получить доступ к базе данных sqlite.

Первую резервную копию данных приложения на ПК через USB-кабель с помощью следующей команды замените app.package.name на фактическое имя пакета приложения.

adb backup -f ~/data.ab -noapk app.package.name

Это предложит вам «разблокировать устройство и подтвердить операции резервного копирования ". Не предоставляйте пароль для резервного копирования, поэтому вы можете извлечь его позже. Нажмите кнопку «Восстановить мои данные» на своем устройстве. На экране отобразится имя пакета, который вы создаете резервную копию, а затем закройте его после успешного завершения.

Полученный файл data.ab в вашей домашней папке содержит данные приложения в формате резервного копирования android. Чтобы извлечь его, используйте следующую команду:

dd if=data.ab bs=1 skip=24 | openssl zlib -d | tar -xvf -

Если выше закончилось с ошибкой openssl:Error: 'zlib' is an invalid command., попробуйте следующее.

dd if=data.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -

В результате появится папка apps/app.package.name/ содержащие данные приложения, включая базу данных sqlite.

Для получения дополнительной информации вы можете проверить исходную запись в блоге .

16
задан CerebralFart 11 October 2016 в 18:43
поделиться