Files
vendor_strix/prebuilt/common/bin/backuptool_ab.functions
razorloves 48ab00f925 backuptool_ab: Use mv instead of cp for restore step
Using cp instead of mv during the restore step resulted in double the
amount of free space and inodes being used.
For example, a nano arm64 opengapps install uses around 500M. But during
a backup/restore process when the Updater is used, it temporarily uses
1G on the other slot.  That causes failed updates on devices that
don't have that much free space on the system partition.

Change-Id: I57ba2e0f52d328d4ff91d47a3db45f47bb8402af
2020-09-25 03:50:30 +02:00

49 lines
869 B
Bash

#!/system/bin/sh
#
# Functions for backuptool_ab.sh
#
export S=/system
export C=/postinstall/tmp/backupdir
export V=18.0
export backuptool_ab=true
copy_file() {
old=`umask`
umask 0322
mkdir -m755 -p `dirname $2`
umask "$old"
cp -dp --preserve=a "$1" "$2"
}
move_file() {
old=`umask`
umask 0322
mkdir -m755 -p `dirname $2`
umask "$old"
mv "$1" "$2"
}
backup_file() {
if [ -e "$1" -o -L "$1" ]; then
# dont backup any apps that have odex files, they are useless
if ( echo "$1" | grep -q "\.apk$" ) && [ -e `echo "$1" | sed -e 's/\.apk$/\.odex/'` ]; then
echo "Skipping odexed apk $1";
else
copy_file "$1" "$C/$1"
fi
fi
}
restore_file() {
if [ -e "$C/$1" -o -L "$C/$1" ]; then
move_file "$C/$1" "/postinstall/$1";
if [ -n "$2" ]; then
echo "Deleting obsolete file $2"
rm "$2";
fi
fi
}