android adb shell 脚本 - 如何提取所有共享首选项
android adb shell script - how to pull all sharedpreferences
我需要 运行 一个处于调试模式的脚本,它将所有共享首选项拉入一个文件夹。根据我的研究,我只能从调试版本中提取。我尝试从非根目录 phone 获取共享首选项,如下所示:
$adb shell
$adb run-as mypackagename
然后我可以遍历到/data/data/mypackagename/shared_prefs
但我希望能够将其放入脚本中。我只能从 adb shell 外部调用 adb pull。 如何在调试应用程序上从普通的非根设备中提取 shared_prefs 整个文件夹?一定有办法,因为 facebook setho 是怎么做到的 ?
这个问题是关于检索 sharedPreferences 而不是数据库检索。
我创建了以下 shell 脚本
#!/bin/bash
pname=
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)
我需要 运行 一个处于调试模式的脚本,它将所有共享首选项拉入一个文件夹。根据我的研究,我只能从调试版本中提取。我尝试从非根目录 phone 获取共享首选项,如下所示:
$adb shell
$adb run-as mypackagename
然后我可以遍历到/data/data/mypackagename/shared_prefs
但我希望能够将其放入脚本中。我只能从 adb shell 外部调用 adb pull。 如何在调试应用程序上从普通的非根设备中提取 shared_prefs 整个文件夹?一定有办法,因为 facebook setho 是怎么做到的 ?
这个问题是关于检索 sharedPreferences 而不是数据库检索。
我创建了以下 shell 脚本
#!/bin/bash
pname=
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)