| #!/system/bin/sh |
| # |
| # Functions for backuptool_ab.sh |
| # |
| |
| export S=/system |
| export C=/postinstall/tmp/backupdir |
| export V=14 |
| 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 |
| } |