#!/system/bin/sh # # Functions for backuptool_ab.sh # export S=/system export C=/postinstall/tmp/backupdir export V=15.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" $(get_output_path "$1"); if [ -n "$2" ]; then echo "Deleting obsolete file $2" rm $(get_output_path "$2"); fi fi } get_output_path() { if [ $ADDOND_VERSION -lt 3 ]; then echo "/postinstall/$1" return fi file=$(echo "$1" | sed "s|^$S/||") if __is_on_mounted_partition "$file"; then echo "/postinstall/$file" else echo "/postinstall/$1" fi } __is_on_mounted_partition() { for p in $all_V3_partitions; do mnt_point="/postinstall/$p" if echo "$1" | grep -q "^$p/" && [ ! -L "$mnt_point" ] && mountpoint >/dev/null 2>&1 "$mnt_point"; then return 0 fi done return 1 }