应用程序未与adb restore一起安装


9

我有非root用户的Android 7.0设备(NVIDIA Shield Tablet),该设备之前已备份

adb backup -apk -shared -all -nosystem -f mybackup.ab

但是用

adb restore mybackup.ab

结果/Android/data恢复了等等,但未从apk文件安装应用程序,没有错误。

我不得不从mybackup.ab中提取apk文件,并使用手动进行批量安装adb install <...>.apk。之后一切都很好。

我非常确定我以前在6.0中也遇到过类似的问题。和Helium / Carbon,但认为这是我选择的备用方法所特有的。

有什么问题adb restore?是因为设备是非root用户的吗?为什么会adb install按预期工作?


您找到解决方案了吗?这是此问题的热门搜索结果之一。
Skylar Ittner

1
@SkylarMT还没有。仍必须adb install批量使用。希望有人能对此提供帮助。
Estus Flask

使用Titanium Backup还原adb备份文件时,我获得了部分成功。它需要root用户,并且不能获取所有内容,但它可以还原一半以上已安装的应用程序。
Skylar Ittner

Answers:


4

我用以下脚本解决了

#!/bin/bash
killall adb > /dev/null 2>&1
set -e

if [ $# -ne 1 ]; then
  echo "Usage: $0 <package-name-without-ab>"
  exit 1
fi

export PATH=/opt/jdk1.8.0_152_jce/jre/bin:$PATH
ab=$1.ab
java -jar /opt/android-backup-extractor-20160710-bin/abe.jar unpack $ab $ab.tar apw; tar -xf $ab.tar --wildcards '*.apk' --strip-components=3
mv base.apk $ab.apk
rm $ab.tar
adb install $ab.apk

adb restore $ab

echo "Ready"

您还需要android-backup-extractor。以我的经验,adb备份仍然不是很安全。首先,某些应用程序可以设置一个标志,因此它们不会被备份。并且还原仅在某些时候且不确定,例如,如果您更换设备,则只能工作。可惜的是,如果您拥有一部扎根的手机,那么在2018年只有Titanium Backup才能做好。


如果可以的话,我会两次投票!3天尝试使其正常运行–达到了目的。提名您为“本周英雄” :) //参考:牛轧糖/ LOS 14.1上的BQ Aquaris X5 Plus。
伊齐

华为备份在华为手机上也表现出色。但距离钛合金很远:-(
niels

2

命令adb restore不安装.apk回来。实际上,此命令仅是回写系统和数据文件。 - Android开发人员网站

如果要自动化应用程序安装过程:

  1. 将所有提取的.apk添加到一个文件夹
  2. 键入for %f in (C:\_apk folder location_\*.apk) do adb install "%f" 注意:如果您的.apk文件名称中带有“空格”,则adb 无法识别空格,请使用_或其他方式重写它。

如果正确,您可以指定参考信息吗?由于adb backup备份了包括apk在内的所有内容,因此我希望这adb restore是相反的事情。因为否则似乎apk只会浪费.ab文件中的空间。
Estus Flask

在表1>备份和恢复命令Android开发人员网站adb restore命令形容为“恢复设备的内容来自文件”,它是为我翻译为解压文件,将在设备而已,没有安装包。我认为这很有意义,因为安装是定义命令adb install(它不一定在其他命令中具有安装功能),但我同意这会很好:)
MaTT Belis

@MaTTBelis“从文件还原内容”对我来说意味着还原文件保存的所有内容(包括安装APK(如果有的话))。直到MM都完全做到了这一点(自Android 4推出以来,我一直在使用它)。问题仅始于Android 7,其中的一个错误似乎阻止了APK的安装。在某些设备上,您在logcat中发现它确实尝试了该操作(但是失败了,但没有这样说)。实际上,对于这些设备,Nils的答案有效。
伊兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.