blob: 4319b783263aabbb3886bb357a8683dd6693804c [file] [log] [blame]
Meninblack00776bd9aa2016-04-03 07:14:30 -04001#!/sbin/sh
2#
3# Functions for backuptool.sh
4#
5
Gabriele M72c18702017-02-27 15:44:17 +01006copy_file() {
7 cp -dp "$1" "$2"
8 # symlinks don't have a context
9 if [ ! -L "$1" ]; then
10 # it is assumed that every label starts with 'u:object_r' and has no white-spaces
11 local context=`ls -Z "$1" | grep -o 'u:object_r:[^ ]*' | head -1`
12 chcon "$context" "$2"
13 fi
14}
15
Meninblack00776bd9aa2016-04-03 07:14:30 -040016backup_file() {
Gabriele M2577cc12017-02-26 21:01:38 +010017 if [ -e "$1" -o -L "$1" ]; then
Meninblack00776bd9aa2016-04-03 07:14:30 -040018 local F=`basename "$1"`
19 local D=`dirname "$1"`
20 # dont backup any apps that have odex files, they are useless
21 if ( echo "$F" | grep -q "\.apk$" ) && [ -e `echo "$1" | sed -e 's/\.apk$/\.odex/'` ]; then
22 echo "Skipping odexed apk $1";
23 else
24 mkdir -p "$C/$D"
Gabriele M72c18702017-02-27 15:44:17 +010025 copy_file "$1" "$C/$D/$F"
Meninblack00776bd9aa2016-04-03 07:14:30 -040026 fi
27 fi
28}
29
30restore_file() {
31 local FILE=`basename "$1"`
32 local DIR=`dirname "$1"`
Gabriele M2577cc12017-02-26 21:01:38 +010033 if [ -e "$C/$DIR/$FILE" -o -L "$C/$DIR/$FILE" ]; then
Meninblack00776bd9aa2016-04-03 07:14:30 -040034 if [ ! -d "$DIR" ]; then
35 mkdir -p "$DIR";
36 fi
Gabriele M72c18702017-02-27 15:44:17 +010037 copy_file "$C/$DIR/$FILE" "$1";
Meninblack00776bd9aa2016-04-03 07:14:30 -040038 if [ -n "$2" ]; then
39 echo "Deleting obsolete file $2"
40 rm "$2";
41 fi
42 fi
43}