blob: 9b8bbae403513a7a46c0aa01b79f956b38384a24 [file] [log] [blame]
krarvind65545df2012-10-11 13:40:41 -03001#!/sbin/sh
2#
3# Backup and restore addon /system files
4#
5
6export C=/tmp/backupdir
7export S=/system
Griffin Millender8d107212013-08-10 22:57:54 -05008export V=Slim-4.3
krarvind65545df2012-10-11 13:40:41 -03009
10# Preserve /system/addon.d in /tmp/addon.d
11preserve_addon_d() {
12 mkdir -p /tmp/addon.d/
13 cp -a /system/addon.d/* /tmp/addon.d/
14 chmod 755 /tmp/addon.d/*.sh
15}
16
17# Restore /system/addon.d in /tmp/addon.d
18restore_addon_d() {
19 cp -a /tmp/addon.d/* /system/addon.d/
20 rm -rf /tmp/addon.d/
21}
22
Griffin Millender8d107212013-08-10 22:57:54 -050023# Check for proper Slim version
24check_version() {
25 if ( ! grep -q "ro.slim.version=$V.*" /system/build.prop); then
26 echo "Not running backup from incompatible version"
27 exit
28 fi
29}
30
krarvind65545df2012-10-11 13:40:41 -030031# Execute /system/addon.d/*.sh scripts with $1 parameter
32run_stage() {
33for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
34 $script $1
35done
36}
37
38case "$1" in
39 backup)
Griffin Millender8d107212013-08-10 22:57:54 -050040 check_version
krarvind65545df2012-10-11 13:40:41 -030041 mkdir -p $C
krarvind65545df2012-10-11 13:40:41 -030042 preserve_addon_d
43 run_stage pre-backup
44 run_stage backup
45 run_stage post-backup
46 ;;
47 restore)
Griffin Millender8d107212013-08-10 22:57:54 -050048 check_version
krarvind65545df2012-10-11 13:40:41 -030049 run_stage pre-restore
50 run_stage restore
51 run_stage post-restore
52 restore_addon_d
53 rm -rf $C
54 sync
55 ;;
56 *)
57 echo "Usage: $0 {backup|restore}"
58 exit 1
59esac
60
61exit 0