[1/2] LCD density backup
Change-Id: I2b8c7aa2419b689d5bb98a02e3c68dd2e5e0d527
diff --git a/config/common.mk b/config/common.mk
index 54eb7b0..9613d6c 100644
--- a/config/common.mk
+++ b/config/common.mk
@@ -14,7 +14,9 @@
PRODUCT_COPY_FILES += \
vendor/slim/prebuilt/common/bin/backuptool.sh:system/bin/backuptool.sh \
vendor/slim/prebuilt/common/bin/backuptool.functions:system/bin/backuptool.functions \
- vendor/slim/prebuilt/common/bin/50-slim.sh:system/addon.d/50-slim.sh
+ vendor/slim/prebuilt/common/bin/50-slim.sh:system/addon.d/50-slim.sh \
+ vendor/slim/prebuilt/common/bin/99-backup.sh:system/addon.d/99-backup.sh \
+ vendor/slim/prebuilt/common/etc/backup.conf:system/etc/backup.conf
# SLIM-specific init file
PRODUCT_COPY_FILES += \
diff --git a/prebuilt/common/bin/99-backup.sh b/prebuilt/common/bin/99-backup.sh
new file mode 100755
index 0000000..50ad9e3
--- /dev/null
+++ b/prebuilt/common/bin/99-backup.sh
@@ -0,0 +1,63 @@
+#!/sbin/sh
+
+propfile="/system/etc/backup.conf"
+backupfile="/tmp/backup/backup.conf"
+backuppath="/tmp/backup"
+mkdir -p $backuppath
+propbackuppath="$backuppath/prop"
+mkdir -p $propbackuppath
+
+persist_lcd_density=1
+
+load_prop() {
+ if [ -f "$1" ]; then
+ source "$1"
+ fi
+}
+
+backup_prop() {
+ cp "/system/build.prop" "$propbackuppath/build.prop"
+}
+
+restore_prop() {
+ if [ "$persist_lcd_density" = "1" ]; then
+ if [ -f "$propbackuppath/build.prop" ]; then
+ local USERLCD=`sed -n -e'/ro\.sf\.lcd_density/s/^.*=//p' $propbackuppath/build.prop`
+ busybox sed -i "s|ro.sf.lcd_density=.*|ro.sf.lcd_density=$USERLCD|" /system/build.prop
+ fi
+ fi
+}
+
+backup_file() {
+ if [ -f "$propfile" ]; then
+ cp "$propfile" "$backupfile"
+ fi
+}
+
+restore_file() {
+ if [ -f "$backupfile" ]; then
+ cp "$backupfile" "$propfile"
+ fi
+}
+
+case "$1" in
+ backup)
+ backup_file
+ load_prop "$backupfile"
+ backup_prop
+ ;;
+ restore)
+ restore_file
+ load_prop "$backupfile"
+ restore_prop
+ ;;
+ pre-backup)
+ ;;
+ post-backup)
+ ;;
+ pre-restore)
+ ;;
+ post-restore)
+ ;;
+esac
+exit 0
diff --git a/prebuilt/common/etc/backup.conf b/prebuilt/common/etc/backup.conf
new file mode 100755
index 0000000..3cb7190
--- /dev/null
+++ b/prebuilt/common/etc/backup.conf
@@ -0,0 +1 @@
+persist_lcd_density=1