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, а не извлечения базы данных.

588   1  

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.name

Shared_prefs будет вытянут в текущий рабочий каталог и назван {package-name}_shared_prefs


Протестировано с использованием genymotion (Android 5.1.1)

Comments

    Ничего не найдено.