-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpackage_zips.sh
executable file
·122 lines (118 loc) · 2.66 KB
/
package_zips.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/bash
#
# package_zips.sh
#
#
# 2011 nubecoder
# http://www.nubecoder.com/
#
#defines
TOOLS_PATH="$PWD/installer-zip/tools"
UPDATER_PATH="$PWD/installer-zip/META-INF/com/google/android"
BACKUP_FILE="doBackup"
RESTORE_FILE="doRestore"
UPDATER_FILE="updater-script"
#functions
SPACER()
{
echo "*"
}
START_SCRIPT()
{
TIME_START=$(date +%s)
echo "=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]"
}
SHOW_COMPLETED()
{
echo "Script completed."
TIME_END=$(date +%s)
echo "Total time: $(($TIME_END - $TIME_START)) seconds."
SPACER
echo "=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]=]"
exit
}
REPLACE_TEXT()
{
sed -i s/$1/$2/g "$3"
}
REMOVE_FILES()
{
rm -f "$TOOLS_PATH/$BACKUP_FILE"
rm -f "$TOOLS_PATH/$RESTORE_FILE"
rm -f "$UPDATER_PATH/$UPDATER_FILE"
}
PREPARE_ZIP_FOLDER()
{
local FILE="$1"
REMOVE_FILES
cp "$PWD/$FILE" "$TOOLS_PATH/$FILE"
cp "$PWD/$UPDATER_FILE" "$UPDATER_PATH/$UPDATER_FILE"
}
PATCH_FOR_ZIP()
{
local FILE="$TOOLS_PATH/$1"
sed -i 's/#!\/system\/bin\/sh/#!\/data\/local\/tmp\/busybox sh/g' $FILE
}
PATCH_FOR_DATA_WIPE()
{
local FILE="$TOOLS_PATH/$1"
local PATTERN="#\tWIPE_DATA_FOLDER"
local REPLACEMENT="\tWIPE_DATA_FOLDER"
REPLACE_TEXT $PATTERN $REPLACEMENT $FILE
}
PATCH_FOR_RESTORE()
{
local FILE="$UPDATER_PATH/$UPDATER_FILE"
local PATTERN=$BACKUP_FILE
local REPLACEMENT=$RESTORE_FILE
REPLACE_TEXT $PATTERN $REPLACEMENT $FILE
local PATTERN="backup"
local REPLACEMENT="restore"
REPLACE_TEXT $PATTERN $REPLACEMENT $FILE
sed -i 's/show_progress(1.0, 120)/show_progress(1.0, 60)/g' $FILE
sed -i 's/=] Android Backup =]/=] Android Restore =]/g' $FILE
}
CREATE_ZIP()
{
local T1=$(date +%s)
local FILE_NAME="$1.zip"
echo "Begin $FILE_NAME creation"
local IS_BACKUP="ncBackup"
if [ "$FILE_NAME" != "${FILE_NAME/$IS_BACKUP/}" ] ; then
PREPARE_ZIP_FOLDER "$BACKUP_FILE"
PATCH_FOR_ZIP "$BACKUP_FILE"
else
PREPARE_ZIP_FOLDER "$RESTORE_FILE"
PATCH_FOR_ZIP "$RESTORE_FILE"
local IS_WIPE="Data_Wipe"
if [ "$FILE_NAME" != "${FILE_NAME/$IS_WIPE/}" ] ; then
PATCH_FOR_DATA_WIPE "$RESTORE_FILE"
fi
PATCH_FOR_RESTORE
fi
local OUTFILE=$PWD/$FILE_NAME
rm -f "$OUTFILE"
local MKZIP='7z -mx9 -mmt=1 a "$OUTFILE" .'
pushd "installer-zip" > /dev/null
eval "$MKZIP" > /dev/null
popd > /dev/null
local T2=$(date +%s)
echo "Done: creation took $(($T2 - $T1)) seconds."
}
#main
START_SCRIPT
SPACER
NAME_ARG="ncBackup"
echo "Packaging $NAME_ARG:"
CREATE_ZIP "$NAME_ARG"
SPACER
NAME_ARG="ncRestore"
echo "Packaging $NAME_ARG:"
CREATE_ZIP "$NAME_ARG"
SPACER
NAME_ARG="ncRestore_Data_Wipe"
echo "Packaging $NAME_ARG:"
CREATE_ZIP "$NAME_ARG"
SPACER
REMOVE_FILES
SHOW_COMPLETED