Applications are not installed with adb restore I have non-rooted Android 7.0 device (NVIDIA Shield Tablet) which was previously backed up with

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


But restoring it with

adb restore mybackup.ab


results in that /Android/data, etc are restored, but the applications are not installed from apk files, no errors.

I've had to extract apk files from mybackup.ab and install them manually in batch with adb install &lt;...&gt;.apk. After that everything was fine.

I'm quite sure that I've previously had similar problem with 6.0. and Helium/Carbon before but thought that it was specific to backup method I've chosen.

What is the problem with adb restore? Is it because the device is non-rooted? Why does adb install work as expected then?
I solved it with the following script

#!/bin/bash
killall adb &gt; /dev/null 2&gt;&amp;1
set -e

if [ $# -ne 1 ]; then
  echo "Usage: $0 &lt;package-name-without-ab&gt;"
  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"


You need furthermore the android-backup-extractor. How ever in my experience adb backup is still not really safe. First of all some apps can set a flag, so they won't be backup. And the restore works only sometimes and not sure, for example if you change the device. It's a shame that in 2018 only Titanium Backup make good job, if you have a rooted phone.