当前位置:  开发笔记 > Android > 正文

Adb备份不起作用

如何解决《Adb备份不起作用》经验,为你挑选了3个好方法。

我需要你们的帮助,因为我不知道adb backup的错误.

我想在没有root的情况下备份我的三星Galaxy S3 LTE(GT-I9305).我用Google搜索并发现了使用SDK Manager的完整Android备份.我安装了所有我需要的东西,如Java Development Kit 8版本66(JDK 8u66 x64)和包含SDK Manager的Android Studio.然后他们很伤心我应该下载谷歌USB驱动程序.我下载了但没有发生任何事.我认为它现在应该可以工作然后我转到C:\ Users\MYNAME\AppData\Local\Android\sdk\platform-tools并按住Shift键左键单击adb.然后我点击"在这里打开命令窗口".在此之后我输入了"adb devices",它说:

附加设备列表

3204cfaaf8611199设备

然后我输入:

adb backup -apk -shared -all -f C:\Users\NAME\backup.ab

它说

现在解锁您的设备并确认备份操作.

我做了这个,我的智能手机打开了"完全备份",然后我就可以为备份设置密码了.我不需要密码,我只需点击"备份我的数据"然后它回到我的主屏幕并说"开始备份..."作为祝酒消息,并在此之后立即说"备份完成"并创建了一个40字节的备份文件.我不知道我现在该做什么.



1> NG...:

而不是试图找到旧版本的adb,更容易为adb备份的参数添加引号:

adb backup "-apk -shared -all -f C:\Users\NAME\backup.ab"


你需要使用双引号`adb backup"-apk -shared -all -f C:\ Users\NAME\backup.ab"`
令人印象深刻,就在现场!但是,我必须补充一点,与OP的问题相反,我的智能手机从未显示完整备份应用程序,但亚行总是给出相同的结果.
2017年5月,ADB v 1.0.39对此建议不起作用

2> Tino..:

正确调用的行adb需要在我这边看起来像这样:

adb backup "-apk -obb -shared -all -system" -f phone-20180522-120000.adb

这行适用于Linux,但也适用于Windows和OS-X.对于Linux(可能还有OS-X),您可以使用如下脚本,它会自动为文件分配时间戳:

adb backup "-apk -obb -shared -all -system" -f "${PHONE:-phone}-`date +%Y%m%d-%H%M%S`.adb`"

重要信息备份后,请验证您的数据!在我这边,有时会出现文件的一些损坏(我怀疑这是我的电脑,因为我只观察到这样的错误adb).

这是check我使用的指令:

set -o pipefail
for a in *.adb;
do
  echo "$a";
  dd if="$a" bs=24 skip=1 | zlib-flate -uncompress | tar tf - >/dev/null;
  echo "ret=$?";
done

它应该显示ret=0,但它不会.

如果您发现inflate: data: invalid code lengths set存档已损坏且很可能无法恢复!

如果您看到tar: Unexpected EOF in archive备份可能可用(所有备份都以这种方式结束,我不知道为什么).

即使您看到ret=0可能存在未发现的错误仍然无法恢复.

肯定缺少一个adb verify命令,以验证备份的正确性!

FYI

我发布此更新,因为所有其他答案都有帮助,但不完全是最后的细节.(当与完整引号一起使用时,备份已完成,但已调用backup.ab)

这是我的环境:

操作系统:Ubuntu 16.04

电话:Android 7.0

亚行:1.0.32

完整的程序是(以防万一有人偶然发现这不知道需要什么):

零:安装adb(在Ubuntu: sudo apt-get install android-tools-adb)

第一:在手机上启用USB调试模式.

第二步:使用USB数据线将手机连接到计算机的USB(仅限充电线是不够的)

请注意,Ubuntu Phone Manager可能会显示并询问您手机的PIN码.你不需要它,如果它发生就关闭它.

第三:跑adb devices- 你应该看到类似的东西XXXXXXXXXXXX unauthorized

在手机上待一段时间后会出现一条消息,要求提供USB调试权限

允许这一次.出于安全原因,您不应自动信任计算机,因为指纹很容易伪造.

请注意,如果某些内容妨碍了此确认窗口的单个像素(如某些辅助功能按钮),则无法点按OK.首先移动阻碍窗口.

第四:再现一次adb devices- 你应该看到类似的东西XXXXXXXXXXXX device

如果显示多行,则将多个电话连接到计算机.简单的方法是拔掉所有不想备份的人.(复杂的方法是设置环境变量ANDROID_SERIAL=XXXXXXXXXXXX.)

现在运行adb backup如上所示.根据需要更改文件.

这会打开一个窗口,要求备份权限.

在进行备份时,请勿关闭备份窗口.当我尝试这个时,备份停止,结果存档被破坏.

您可以提供密码来加密备份.我没有关于密码安全性的任何信息.但很有可能,如果您忘记了密码,则无法恢复备份.

我不知道如何将这样的备份恢复到其他手机.我甚至从未尝试过恢复,所以我也无法在这里帮忙.

笔记:

adb help 显示所有可能的选项 adb backup

备份前关闭手机上所有打开的应用程序.我不知道这是否需要,但肯定不会受到伤害.

备份运行时保持手机独立.我不知道这是否需要,但肯定不会受到伤害.

不要急躁.留出足够的时间备份.在我身边,我看到了大约100 MB /分钟(YMMV)的进度.因此,我的手机备份大约需要半小时(2.5 GB).

显然adb backup没有完全备份一切!

我查看了backup(cd X && dd if=../XXXX.adb bs=24 skip=1 | zlib-flate -uncompress | tar xf -)并没有找到所有已安装的应用程序.

我能找到的是(注意这个列表不完整):

内部模拟SD卡: shared/0

外置SD卡: shared/1

应用:apps/- 许多应用(如Google身份验证器)丢失了

日历:( apps/com.android.providers.calendar/db/calendar.db可能)

我无法找到的(请注意此列表不完整):

警报.(我可能无法检测到正确的应用程序)

完整的外部SD卡(此卡上的内容比下面显示的更多share/1.例如,移动到SD的应用程序.)

结论:

有时adb backup可能会创建损坏的备份,这可能会被忽视.因此,要么检查备份,要么经常进行备份,并假装足够幸运,以免所有备份都损坏.

随着adb backup您获得大部分宝贵数据的备份,如相机图像等.但是,打开包装可能有点困难.

adb backup 是不足以完成手机的完整备份.

adb backup不足以备份你的SD卡,如果它坏了,你可以用一个新的替换它,内容恢复.这太伤心了!

PS:错字" Forth "不是偶然的.

PPS:zlib-flate可以qpdf在Ubuntu 18.04的软件包中找到


@TomRussell尝试`dd if = backup.tar bs = 24 skip = 1 | zlib-flate -uncompress | tar xf -`您可以在`qpdf`包中找到`zlib-flate`(Ubuntu 18.04)。相应地编辑了我的答案

3> 小智..:

这只是使用Ubuntu 15.10("wily")备份运行Android版本6.0.1的Galaxy SM-G900V.

安装使用:

sudo apt-get install android-tools-adb

然后我从命令行运行以下命令(没有'sudo'):

adb backup -apk -shared -all -f backup.adb

结果:

user@hostname:~/droid$ ls -lah
total 1.2GB
drwxrwxr-x  2 user user 4.0BK Mar  6 18:43 .
drwxr-xr-x 52 user user 4.0KB Mar  6 17:40 ..
-rw-r-----  1 user user 1.2GB Mar  6 18:29 backup.ab

谢谢你"NG".我开始认为我的手机被塞了.

忘记添加:运行adb版本:Android Debug Bridge版本1.0.31

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有