android adb shell script - как вытащить все sharedpreferences
Мне нужно запустить скрипт в режиме отладки, который соберет все sharedpreferences в папку. Из моих исследований я могу извлечь только отладочные сборки. Я попытался с некорневого телефона получить sharedpreferences следующим образом:
$adb shell
$adb run-as mypackagename
Затем я смог перейти к /data / data/mypackagename/shared_prefs
Но я хотел бы иметь возможность поместить это в сценарий. Я могу только вызвать ADB pull из-за пределов оболочки adb. Как я могу вытащить всю папку shared_prefs из обычного некорневое устройство в отладочном приложении ? должен быть способ, потому что как facebook setho делает это ?
Этот вопрос касается извлечения sharedPreferences, а не извлечения базы данных.
1 ответ:
Я создал следующий скрипт оболочки
#!/bin/bash pname=$1 if [ -z "${pname}" ]; then echo "Please enter a package name" exit 1 fi adb shell "run-as $pname chmod 776 shared_prefs" adb pull /data/data/$pname/shared_prefs ./${pname}_shared_prefs adb shell "run-as $pname chmod 771 shared_prefs"Назовите его pullsharedprefs.sh (или что вы хотите) и из терминала выполните команду:
chmod +x pullsharedprefs.sh ./pullsharedprefs.sh some.package.nameShared_prefs будет вытянут в текущий рабочий каталог и назван {package-name}_shared_prefs
Протестировано с использованием genymotion (Android 5.1.1)
Comments