Index: /ipk/source/system_addonmanager_2_0/CONTROL/control
===================================================================
--- /ipk/source/system_addonmanager_2_0/CONTROL/control	(revision 3868)
+++ /ipk/source/system_addonmanager_2_0/CONTROL/control	(revision 3869)
@@ -1,4 +1,4 @@
 Package: enigma2-plugin-system-addonmanager
-Version: 2.08
+Version: 2.09
 Architecture: sh4
 OE: This is the AAF- AddonManager. Maybe you know the plugin from BA / FullUSB images!
@@ -7,4 +7,4 @@
 Maintainer: AAF
 Homepage: http://www.aaf-digital.info
-Description: AddonManager v2.08
+Description: AddonManager v2.09
 Source: http://www.aaf-digital.info
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/backup.sh
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/backup.sh	(revision 3868)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/backup.sh	(revision 3869)
@@ -11,34 +11,53 @@
 boxtyp="`cat /proc/stb/info/model`"
 
-# all settings are saved, but the restore is defined in the AM-Menu
-settings=y
-camconfig=y
-plugins=y
-network=y
-samba=y
-bilder=y
-sonstige=y
-
+# check for saved settings
+if [ ! -e /var/etc/restore.cfg ]; then
+  # make a default and say all yes
+  settings=y
+  binarys=y
+  camconfig=y
+  plugins=y
+  network=y
+  samba=y
+  bilder=y
+  sonstige=y
+  addonmanager=y
+  backup=y
+  cp /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore* /var/etc/
+else
+  . /var/etc/restore.cfg   # read config from Addon-Manager
+fi
 
 if [ "$boxtyp" == "dm8000" ]
   then
-    DIR="/media/hdd/backup_vu"
+    BOXDIR="backup_vu"
     echo -e "***********************************************************"
     echo -e "**************Sicherung VU Plus oder Dreambox**************"
     echo -e "***********************************************************\n"
   else
-    DIR="/media/hdd/backup_fortis"
+    BOXDIR="backup_fortis"
     echo -e "***********************************************************"
     echo -e "**************Sicherung Fortis Box gestartet **************"
     echo -e "***********************************************************\n"
-
 fi
 
 echo -e "\nLege Ordner und die Sicherungsdatei an"
+
+if [ `mount | grep "on /var/swap" | wc -l` -ge 1 ]; then DIR="/var/swap/$BOXDIR"; fi
+if [ `mount | grep "on /media/hdd" | wc -l` -eq 1 ]; then DIR="/media/hdd/$BOXDIR"; fi
+
+
+
+# make a backup copy
+if [ -e "$DIR" ]; then
+  echo -e "\nLege eine Sicherungsdatei des alten Backup an"
+  oldtime=`date +%d.%m_%H.%M`
+  echo "---> $DIR"_"$oldtime"
+  mv  "$DIR" "$DIR"_"$oldtime"
+fi
 
 mkdir -p $DIR/
 rm -f $DIR/backup.log ; touch $DIR/backup.log
 
-#. /var/etc/restore.cfg   # read config from Addon-Manager, when you wish only saved defined Settings
 if [ "$boxtyp" == "dm8000" ]
  then
@@ -105,4 +124,6 @@
        echo -e "******** sonstige Konfigurationsdateien NICHT gesichert ********\n"
  fi
+
+
 else  # Boxtyp is not dm8000 (vubox)
  if [ "$settings" = "y" ]
@@ -122,8 +143,37 @@
  fi
 
+ if [ "$binarys" = "y" ]
+  then
+   tar -cvf $DIR/bin.tar /var/bin/* >> $DIR/backup.log
+   echo -e "******** Binarys gesichert ********\n"
+  else
+   echo "******** Binarys NICHT gesichert ********\n"
+ fi
+
  if [ "$plugins" = "y" ]
   then
 		ipkg list_installed |grep enigma2-plugin > /tmp/ipkg.list
 		cut -f 1 -d " " /tmp/ipkg.list > $DIR/ipkg.list
+
+    # check ob Referenzliste existiert
+    if [ ! -e /usr/lib/enigma2/python/Plugins/Extensions/Aafpanel/dirlist ]; then
+        echo "Aafpanel
+        BoardViewer
+        DVDPlayer
+        GraphMultiEPG
+        IMDb
+        MediaCenter
+        OSDAdjustment
+        PlugLoad
+        SimpleBitrate
+        SocketMMI
+        SplitScreen
+        VFD_Brightness
+        VirtualZap
+        Volume_adjust
+        WebInterface" >/usr/lib/enigma2/python/Plugins/Extensions/Aafpanel/dirlist
+ 		    #wget -O /usr/lib/enigma2/python/Plugins/Extensions/Aafpanel/dirlist http://kati910.aaf-board.info/dbase/E2/online/dirlist
+ 		    #chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/Aafpanel/dirlist
+    fi
 
     # welche Plugins wurden zusaetzlich installiert?
@@ -170,4 +220,12 @@
     echo -e "******** Sambakonfiguration NICHT gesichert ********\n"
  fi
+
+if [ "$addonmanager" = "y" ]
+	then
+     	tar -cvf $DIR/am.tar /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/* >> $DIR/backup.log
+			echo -e "******** AddonManager wurde gesichert ********\n"
+  else
+	  	echo -e "******** AddonManager NICHT vorhanden! ********\n"
+fi
 
  if [ "$sonstige" = "y" ]
@@ -186,3 +244,11 @@
 fi
 
+# for automatic restore after flashing
+cp /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh /var/etc/restore.sh
+cp /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.cfg /var/etc/restore.cfg
+
+# for automatic restore after flashing
+cp /usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh $DIR/restore.sh
+
 exit 0
+
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/cp_r.func
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/cp_r.func	(revision 3868)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/cp_r.func	(revision 3869)
@@ -1,10 +1,13 @@
 #!/bin/sh
 # ----------------------------------------------------------------------
-#   ------    cp_r behebt den Bug von cp -R bei Symlinks --------------
+#   ------------     Funktionsbibliothek Installer      --------------
+#   ------------           emu_install.biblo            --------------
+#   ------------        Version 0.51 20.12.2008         --------------
 # ----------------------------------------------------------------------
 
 cp_r()
 {
-if [ `expr match "$1" './'` -gt 0 ]; then
+
+if [ `expr match "$1" './'` -gt 0 ]; then 
   quelle="`echo $1 | sed s-[.]/-$PWD-`"
   tr="$quelle"
@@ -23,4 +26,5 @@
   cp -f ${i}.* $ziel$ziel2 2> /dev/null
 done
+
 }
 
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/do_link.sh
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/do_link.sh	(revision 3869)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/do_link.sh	(revision 3869)
@@ -0,0 +1,7 @@
+LIST=`ls -1 /var/swap/extensions`
+for ROUND in $LIST; do
+	if [ ! -e /usr/lib/enigma2/python/Plugins/Extensions/"$ROUND" ]; then
+		ln -s "/var/swap/extensions/$ROUND" /usr/lib/enigma2/python/Plugins/Extensions/"$ROUND"
+	fi
+done
+
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py	(revision 3868)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py	(revision 3869)
@@ -28,9 +28,5 @@
 from Tools.Directories import fileExists
 from Screens.Console import Console
-
 from os import system, remove, path, walk, makedirs, listdir
-
-# import py_compile
-# py_compile.compile("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py")
 
 import re
@@ -38,6 +34,4 @@
 import os
 import base64
-#import commands
-#import ServiceReference
 from subprocess import Popen,PIPE
 import ServiceReference
@@ -47,6 +41,4 @@
 from twisted.internet import reactor, defer
 from twisted.python import failure
-
-#from Plugins.Extensions.AddonManager.UsbOnlineUpdater import UsbOnlineUpdater
 
 global serverurl
@@ -57,7 +49,38 @@
 global checkok
 
-
+# for local compile in the box
+#
+# import py_compile
+# py_compile.compile("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/downloader.py")
+
+version = "2.09"
+serverurl = ""
+activenam = ""
+activesource = ""
+b_version = 1212
+readyflag = 0
 checkok = True
 usblist = ""
+
+RestoreYesNo = [('y',_("yes")),('n',_("no"))]
+RestoreNoYes = [('n',_("no")),('y',_("yes"))]
+
+font = "Regular;16"
+os.system("mkdir -p /tmp/aaf")
+#os.system("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/url_check.sh")
+
+activesource = "http://kati910.aaf-board.info/dbase"
+activenam = "Addons-Server"
+serverurl = activesource + "/E2/"
+
+# Boytyp lesen
+file = open("/proc/stb/info/model", "r")
+box = file.readline().strip()
+file.close()
+
+# dm8000 is a vu-box
+#box = "dm8000"
+if box == "dm8000":
+  serverurl = activesource + "/vuplus/"
 
 config.AddonManager = ConfigSubsection()
@@ -72,37 +95,38 @@
 
 config.AddonManager2 = ConfigSubsection()
-config.AddonManager2.sett_on = ConfigInteger(1, limits=(0, 1))
-config.AddonManager2.camconfig_on = ConfigInteger(1, limits=(0, 1))
-config.AddonManager2.plug_on = ConfigInteger(1, limits=(0, 1))
-config.AddonManager2.network_on = ConfigInteger(1, limits=(0, 1))
-config.AddonManager2.samba_on = ConfigInteger(1, limits=(0, 1))
-config.AddonManager2.bilder_on = ConfigInteger(0, limits=(0, 1))
-config.AddonManager2.sonstige_on = ConfigInteger(1, limits=(0, 1))
-
-version = "2.07"
-serverurl = ""
-activenam = ""
-activesource = ""
-
-b_version = 1212
-readyflag = 0
-
-font = "Regular;16"
-os.system("mkdir -p /tmp/aaf")
-#os.system("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/url_check.sh")
-
-activesource = "http://kati910.aaf-board.info/dbase"
-activenam = "Addons-Server"
-serverurl = activesource + "/E2/"
-
-# Boytyp lesen
-file = open("/proc/stb/info/model", "r")
-box = file.readline().strip()
-file.close()
-
-# dm8000 is a vu-box
-#box = "dm8000"
-if box == "dm8000":
-  serverurl = activesource + "/vuplus/"
+config.AddonManager2.sett_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.camconfig_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.plug_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.binarys_on = ConfigSelection(RestoreNoYes)
+config.AddonManager2.network_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.samba_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.bilder_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.sonstige_on = ConfigSelection(RestoreYesNo)
+config.AddonManager2.am_on = ConfigSelection(RestoreNoYes)
+config.AddonManager2.backup_on = ConfigSelection(RestoreYesNo)
+
+
+RESTORE_CONFIG_SKIN = """<screen position="center,center" size="620,360" title="Backup Restore Setup" >
+  <widget name="config" position="20,2" size="570,253" scrollbarMode="showOnDemand" />
+	<widget name="label1" position="10,265" size="610,50" font="Regular;18" zPosition="1" backgroundColor="#251e1f20" transparent="1" />
+	<eLabel backgroundColor="white" position="10,265" size="610,1" zPosition="5"/>
+	<eLabel backgroundColor="red" position="37,330" size="150,3" zPosition="5"/>
+	<eLabel backgroundColor="green" position="224,330" size="150,3" zPosition="5"/>
+	<eLabel backgroundColor="yellow" position="411,330" size="150,3" zPosition="5"/>
+	<widget name="key_red" position="37,296" zPosition="1" size="150,40" font="Regular;20" halign="center" valign="center" transparent="1" />
+	<widget name="key_green" position="224,296" zPosition="1" size="150,40" font="Regular;20" halign="center" valign="center" transparent="1" />
+	<widget name="key_yellow" position="411,296" zPosition="1" size="150,40" font="Regular;20" halign="center" valign="center" transparent="1" />
+</screen>"""
+
+SELECTRESTORE_SKIN = """
+		<screen position="center,center" size="520,376" title="Auswahlmenue fuer Restore" >
+			<ePixmap position="445,0" size="70,53" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/picon_default.png" transparent="1" alphatest="on" />
+			<ePixmap position="90,350" size="36,20" pixmap="skin_default/buttons/key_red.png" transparent="1" alphatest="on" />
+			<ePixmap position="270,350" size="36,20" pixmap="skin_default/buttons/key_green.png" transparent="1" alphatest="on" />
+			<eLabel text="RESTORE - Auswahl" position="70,12" size="480,35" font="Regular;30" foregroundColor="#ffa323" transparent="1" />
+			<eLabel text="Delete" position="130,350" size="240,25" font="Regular;20" transparent="1" />
+			<eLabel text="Restore" position="310,350" size="240,25" font="Regular;20" transparent="1" />
+			<widget name="filelist" position="10,110" size="520,232" scrollbarMode="showOnDemand" />
+		</screen>"""
 
 
@@ -131,41 +155,14 @@
 
 def restore():
-  ffile = open("/var/etc/restore.cfg", "w")
-  if config.AddonManager2.sett_on.value == 1:
-    ffile.write("settings=y")
-  else:
-    ffile.write("settings=n")
-  ffile.write("\n")
-  if config.AddonManager2.camconfig_on.value == 1:
-    ffile.write("camconfig=y")
-  else:
-    ffile.write("camconfig=n")
-  ffile.write("\n")
-  if config.AddonManager2.plug_on.value == 1:
-    ffile.write("plugins=y")
-  else:
-    ffile.write("plugins=n")
-  ffile.write("\n")
-  if config.AddonManager2.network_on.value == 1:
-    ffile.write("network=y")
-  else:
-    ffile.write("network=n")
-  ffile.write("\n")
-  if config.AddonManager2.samba_on.value == 1:
-    ffile.write("samba=y")
-  else:
-    ffile.write("samba=n")
-  ffile.write("\n")
-  if config.AddonManager2.bilder_on.value == 1:
-    ffile.write("bilder=y")
-  else:
-    ffile.write("bilder=n")
-  ffile.write("\n")
-  if config.AddonManager2.sonstige_on.value == 1:
-    ffile.write("sonstige=y")
-  else:
-    ffile.write("sonstige=n")
-  ffile.write("\n")
-  ffile.close()
+		ffile = open("/var/etc/restore.cfg", "w")
+		ffile.write('settings=' + config.AddonManager2.sett_on.value[0] + '\n' )
+		ffile.write('binarys=' + config.AddonManager2.camconfig_on.value[0] + '\n')
+		ffile.write('camconfig=' + config.AddonManager2.plug_on.value[0] + '\n')
+		ffile.write('plugins=' + config.AddonManager2.network_on.value[0] + '\n')
+		ffile.write('network=' + config.AddonManager2.samba_on.value[0] + '\n')
+		ffile.write('samba=' + config.AddonManager2.bilder_on.value[0] + '\n')
+		ffile.write('sonstige=' + config.AddonManager2.sonstige_on.value[0] + '\n')
+		ffile.write('addonmanager=' + config.AddonManager2.am_on.value[0] + '\n')
+		ffile.close()
 
 restore()
@@ -436,6 +433,5 @@
 				"1": self.settings_download,
 				"2": self.picons_download,
-				"5": self.settings_backup,
-				"6": self.settings_restore,
+				"5": self.BackupRestoreVU,
 				"8": self.beta_download,
 				"9": self.sh_preview,
@@ -453,5 +449,4 @@
 				"startTeletext": self.switch_ListTyp,
 				"showEventInfo": self.info,
-				"showEpg": self.usb_load,
 				"down": self.down
 			}, -1)
@@ -468,6 +463,5 @@
 				"2": self.bootbilder_download,
 				"3": self.radiobilder_download,
-				"5": self.settings_backup,
-				"6": self.settings_restore,
+				"5": self.BackupRestoreVU,
 				"7": self.skins_download,
 				"8": self.beta_download,
@@ -486,20 +480,50 @@
 				"startTeletext": self.switch_ListTyp,
 				"showEventInfo": self.info,
-				"showEpg": self.usb_load,
 				"down": self.down
 			}, -1)
 
-
-		self.focus = self.LIST_SOURCE
-		self.read_Boxtyp()
-		self.feed_download()
-
-	def usb_load(self):
-		#self.flash_settings()
-		self.session.open(UsbOnlineUpdater)
+		aafpointer = 0
+		#/etc/imageinfo AAF Enigma2
+		fd=open("/etc/imageinfo","r")
+		for line in fd:
+			if line.find("AAF Enigma2") > -1:
+				aafpointer = aafpointer +1
+		fd.close
+
+		# /etc/motd wElc0me to AAF
+		fd=open("/etc/motd","r")
+		for line in fd:
+			if line.find("wElc0me to AAF") > -1:
+				aafpointer = aafpointer +1
+		fd.close
+
+		# Url Check
+		os.system("cat /var/etc/ipkg/official-feed.conf | cut -d '/' -f4 > /tmp/onlineupdate")
+		fd=open("/tmp/onlineupdate","r")
+		url=fd.readline().strip()
+		fd.close()
+
+		if url.find("97.74.32.10") > -1:
+			aafpointer = aafpointer +1
+		if url.find("addons.aaf-board.net") > -1:
+			aafpointer = aafpointer +1
+
+		if str(aafpointer) <= "2":
+			print "Permission denied ", str(aafpointer)
+			self["statusbar"].text = _("Sorry, Permission denied")
+			self.close()
+		else:
+			self.focus = self.LIST_SOURCE
+			self.read_Boxtyp()
+			self.feed_download()
+
+
+
+	def BackupRestoreVU(self):
+		if self.betacode == True:
+			self.session.open(RestoreConfigScreenVU)
 
 #----- Beta Download Procedures -------------------------------------------------------
 	def beta_load(self):
-
 		self.previewtimeout = config.AddonManager.preview_timeout.value
 		print "[Addon-Manager] " + str(self.previewtimeout)
@@ -533,11 +557,11 @@
 			self["key_red"].text = _("Plugin")
 			self["key_green"].text = (_("IPK"))
-			#self.box = "dm8000"
+
 			if box == "dm8000":
 				self["key_yellow"].text = (_("Skins"))
 				self["key_1"].text = _("(1) Settings")
 				self["key_2"].text = (_("(2) Picons"))
-				self["key_3"].text = (_("(5) Backup"))
-				self["key_4"].text = (_("(6) Restore"))
+				self["key_3"].text = (_("(5) Back/Rest"))
+				self["key_4"].text = (_("        "))
 			else:
 				self["key_yellow"].text = (_("EmuConfig"))
@@ -550,6 +574,8 @@
 			if os.path.exists("/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/ufs922") is False:
 				if box <> "dm8000":
-						self["key_4"].text = (_("(5,6) Back/Rest"))
-
+					if self.betacode == True:
+						self["key_4"].text = (_("(5) Back/Rest"))
+					else:
+						self["key_4"].text = (_("           "))
 				self.read_Boxtyp()
 
@@ -737,6 +763,4 @@
 		print "[Addon-Manager] [feed_finished] " + str(feedhtml)
 		self.downloading(False)
-
-		#self.box = "dm8000"
 
 		if self.plug == "ipk":
@@ -1058,19 +1082,4 @@
 		self.plugin_filter = ""
 		self.feed_download()
-
-	def settings_backup(self):
-				self["statusbar"].text = _("Backup der Einstellungen ist gestartet ....")
-				self.CpString = "/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/backup.sh"
-				#self.showlog(self.CpString)
-				self.session.open(Console, title = _("Backup - Settings"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
-				self["statusbar"].text = _("                                           ")
-
-
-	def settings_restore(self):
-				self["statusbar"].text = _("Restore der Einstellungen laueft ....")
-				self.CpString = "/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh"
-				#self.showlog(self.CpString)
-				self.session.open(Console, title = _("Restore - Settings"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
-
 
 #----- plugin download ------------------------------------------------------------
@@ -1222,4 +1231,8 @@
 						return
 
+					# check if Directory /var/emu is correct linked
+					if os.path.exists("/var/emu") is False:
+						os.system("cd /var; ln -s /var/bin emu")
+
 					# im Flash den emu nach /var/bin installieren
 					if os.path.exists("/tmp/aaf/var/emu") is True:
@@ -1518,11 +1531,4 @@
         self.list.append(getConfigListEntry(_("Markierungsfarbe (0=rot, 1=gruen, 2=blau)"), config.AddonManager.mark_color))
         self.list.append(getConfigListEntry(_("Installierte Plugins feststellen (0=genau, 1=ungenau)"), config.AddonManager.ungenau))
-        self.list.append(getConfigListEntry(_("Restore Settings (1=Ein, 0=Aus)"), config.AddonManager2.sett_on))
-        self.list.append(getConfigListEntry(_("Restore CamConfig (1=Ein, 0=Aus)"), config.AddonManager2.camconfig_on))
-        self.list.append(getConfigListEntry(_("Restore Plugins(1=Ein, 0=Aus)"), config.AddonManager2.plug_on))
-        self.list.append(getConfigListEntry(_("Restore Netzwerk (1=Ein, 0=Aus)"), config.AddonManager2.network_on))
-        self.list.append(getConfigListEntry(_("Restore Samba (1=Ein, 0=Aus)"), config.AddonManager2.samba_on))
-        self.list.append(getConfigListEntry(_("Restore Bootbilder (1=Ein, 0=Aus)"), config.AddonManager2.bilder_on))
-        self.list.append(getConfigListEntry(_("Restore sonstiges (1=Ein, 0=Aus)"), config.AddonManager2.sonstige_on))
 
         ConfigListScreen.__init__(self, self.list)
@@ -1565,4 +1571,207 @@
         self.close(False)
 
+
+#-----------------------------------------------------------------
+class RestoreConfigScreenVU(ConfigListScreen,Screen):
+
+	def __init__(self, session):
+		self.session = session
+		Screen.__init__(self, session)
+		self.skin = RESTORE_CONFIG_SKIN
+		self.onShown.append(self.setWindowTitle)
+
+		RestoreYesNo = [('y',_("yes")),('n',_("no"))]
+		RestoreNoYes = [('n',_("no")),('y',_("yes"))]
+
+		config.RestoreConfig = ConfigSubsection()
+		config.RestoreConfig.settings_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.binarys_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.camconfig_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.plugins_on = ConfigSelection(RestoreNoYes)
+		config.RestoreConfig.network_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.samba_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.bilder_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.sonstige_on = ConfigSelection(RestoreYesNo)
+		config.RestoreConfig.am_on = ConfigSelection(RestoreNoYes)
+		config.RestoreConfig.backup_on = ConfigSelection(RestoreYesNo)
+
+		self.Clist = []
+		self.Clist.append(getConfigListEntry(_("Restore Settings"), config.AddonManager2.sett_on))
+		self.Clist.append(getConfigListEntry(_("Restore CamConfig"), config.AddonManager2.camconfig_on))
+		self.Clist.append(getConfigListEntry(_("Restore Plugins"), config.AddonManager2.plug_on))
+		self.Clist.append(getConfigListEntry(_("Restore Binarys"), config.AddonManager2.binarys_on))
+		self.Clist.append(getConfigListEntry(_("Restore Netzwerk"), config.AddonManager2.network_on))
+		self.Clist.append(getConfigListEntry(_("Restore Samba"), config.AddonManager2.samba_on))
+		self.Clist.append(getConfigListEntry(_("Restore Bootbilder"), config.AddonManager2.bilder_on))
+		self.Clist.append(getConfigListEntry(_("Restore sonstiges"), config.AddonManager2.sonstige_on))
+		self.Clist.append(getConfigListEntry(_("Restore AddonManager"), config.AddonManager2.am_on))
+		self.Clist.append(getConfigListEntry(_("mehrere Backup mit Datum zulassen"), config.AddonManager2.backup_on))
+
+		ConfigListScreen.__init__(self, self.Clist)
+
+		self["key_green"] = Label(_("save Settings"))
+		self["key_yellow"] = Label(_("Backup"))
+		self["key_red"] = Label(_("Restore"))
+		infotext = _('this Settings are allways copied in the Flash/USB installation!')
+		self["label1"] =  ScrollLabel()
+		self["label1"].setText(infotext)
+
+		self["setupActions"] = ActionMap(["OkCancelActions", "DirectionActions", "ColorActions"],
+		{
+			"green": self.save,
+			"save": self.save,
+			"red": self.restore,
+			"yellow": self.backup,
+			"cancel": self.cancel,
+			"ok": self.save,
+			"left": self.left,
+			"right": self.right,
+		}, -2)
+
+	def setWindowTitle(self):
+		self.setTitle(_("Backup / Restore Config"))
+
+	def left(self):
+		ConfigListScreen.keyLeft(self)
+
+	def right(self):
+		ConfigListScreen.keyRight(self)
+
+	def save(self):
+		config.RestoreConfig.save()
+		self.save_settings()
+		print "[AddonManager] RestoreConfig save"
+
+	def cancel(self):
+		print "[AddonManager] RestoreConfig cancel"
+		self.close()
+
+	def backup(self):
+		self.CpString = "/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/backup.sh"
+		self.session.open(Console, title = _("Backup - Settings"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
+
+	def restore(self):
+		self.session.open(SelectRestore)
+
+	def save_settings(self):
+		ffile = open("/var/etc/restore.cfg", "w")
+		ffile.write('settings=' + config.AddonManager2.sett_on.value[0] + '\n' )
+		ffile.write('binarys=' + config.AddonManager2.binarys_on.value[0] + '\n')
+		ffile.write('camconfig=' + config.AddonManager2.camconfig_on.value[0] + '\n')
+		ffile.write('plugins=' + config.AddonManager2.plug_on.value[0] + '\n')
+		ffile.write('network=' + config.AddonManager2.network_on.value[0] + '\n')
+		ffile.write('samba=' + config.AddonManager2.samba_on.value[0] + '\n')
+		ffile.write('bilder=' + config.AddonManager2.bilder_on.value[0] + '\n')
+		ffile.write('sonstige=' + config.AddonManager2.sonstige_on.value[0] + '\n')
+		ffile.write('addonmanager=' + config.AddonManager2.am_on.value[0] + '\n')
+		ffile.write('backup=' + config.AddonManager2.backup_on.value[0] + '\n')
+		ffile.close()
+
+#-----------------------------------------------------------------
+
+class SelectRestore(ConfigListScreen,Screen):
+	def __init__(self, session):
+		font = "Regular;18"
+		self.skin = SELECTRESTORE_SKIN
+		Screen.__init__(self, session)
+
+		#self.focus = None
+		self["actions"] = ActionMap(["OkCancelActions", "DirectionActions", "ColorActions", "MovieSelectionActions"],
+		{
+			"ok": self.KeyOk,
+			"cancel": self.Exit,
+			"right": self.rightDown,
+			"left": self.leftUp,
+			"up": self.up,
+			"down": self.down,
+			"red": self.delete,
+			"green": self.KeyOk
+		}, -1)
+		self.search()
+
+		if not pathExists(self.currDir):
+			self.currDir = "/"
+
+		self.filelist = FileList(self.currTmp, showDirectories = True, isTop = True , useServiceRef = False)
+		self["filelist"] = self.filelist
+
+		self["aktion"] = StaticText()
+		self["filelist"].show()
+
+	def up(self):
+		self["filelist"].up()
+
+	def down(self):
+		self["filelist"].down()
+
+	def leftUp(self):
+		self["filelist"].pageUp()
+
+	def rightDown(self):
+		self["filelist"].pageDown()
+
+	def search(self):
+		os.system("rm -r /tmp/back")
+		os.system("mkdir -p /tmp/back")
+		self.currTmp = "/tmp/back"
+
+		if pathExists("/var/swap"):
+			self.currDir = "/var/swap"
+
+		if pathExists("/media/hdd"):
+			self.currDir = "/media/hdd"
+
+		if box == "dm8000":
+			CpString = "cd " + self.currDir + "; ls -A1d backup_vu* >/tmp/back/test"
+			os.system(CpString)
+			self.currBox = "backup_vu"
+		else:
+			CpString = "cd " + self.currDir + "; ls -A1d backup_fortis* >/tmp/back/test"
+			os.system(CpString)
+			self.currBox = "backup_fortis"
+
+		text = ""
+		file = open("/tmp/back/test", "r")
+		for line in file:
+			text = line.strip()
+			CpString = "touch /tmp/back/" + text
+			os.system(CpString)
+		file.close
+		os.system("rm /tmp/back/test")
+
+	def delete(self):
+		self.filename = None
+		self.filename = self.filelist.getFilename()
+		self.filename = self.currDir + "/" + self.filename
+		print "[AddonManager] Filename=", self.filename
+		message = "%s %s" % (_("\nDieses Backup loeschen?\n"), self.filename)
+		if box <> "dm8000":
+			evfd.getInstance().vfd_write_string("Delete Backup")
+		self.session.openWithCallback(self.delete_now, MessageBox, message, MessageBox.TYPE_YESNO)
+
+	def delete_now(self, answer):
+		if answer == True:
+			CpString = "rm -r " + self.filename
+			os.system(CpString)
+			self.search()
+			self["filelist"].refresh()
+
+	def KeyOk(self):
+		self.filename = None
+		self.filename = self.filelist.getFilename()
+		#self.filename = self.currDir + "/" + self.currBox + "/" + self.filename
+		self.fullname = self.currDir + "/" + self.filename
+		print "[AddonManager] Select-Filename=", self.filename
+		self["filelist"].refresh()
+
+		self.CpString = "/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh " + self.filename + " boot"
+		self.session.open(Console, title = _("Restore - Settings"), cmdlist = ["%s" % self.CpString], closeOnSuccess = False)
+
+
+	def Exit(self):
+		self.close()
+#-----------------------------------------------------------------
+
+
 #-----------------------------------------------------------------
 
@@ -1577,5 +1786,2 @@
 def main(session, **kwargs):
    session.open(PLUGINDownload,"/tmp/usb")
-
-
-
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.cfg
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.cfg	(revision 3869)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.cfg	(revision 3869)
@@ -0,0 +1,10 @@
+settings=y
+binarys=y
+camconfig=y
+plugins=y
+network=y
+samba=y
+bilder=y
+sonstige=y
+addonmanager=y
+backup=y
Index: /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh
===================================================================
--- /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh	(revision 3868)
+++ /ipk/source/system_addonmanager_2_0/usr/lib/enigma2/python/Plugins/Extensions/AddonManager/restore.sh	(revision 3869)
@@ -9,5 +9,21 @@
 # ***********************************************************
 
+filename=$1
+rebootnow=$2
 
+# check for saved settings
+if [ ! -e /var/etc/restore.cfg ]; then
+  # make a default and say all yes
+  settings=y
+  binarys=y
+  camconfig=y
+  plugins=y
+  network=y
+  samba=y
+  bilder=y
+  sonstige=y
+  addonmanager=y
+  backup=y
+else
 . /var/etc/restore.cfg   # read config from Addon-Manager
 
@@ -17,11 +33,35 @@
 
 boxtyp="`cat /proc/stb/info/model`"
-if [ "$boxtyp" == "dm8000" ]
-  then
-    DIR="/media/hdd/backup_vu"
-  else
-    DIR="/media/hdd/backup_fortis"
+
+if [ "$filename" ]; then
+  BOXDIR="$filename"
+else
+  if [ "$boxtyp" == "dm8000" ]
+    then
+      BOXDIR="backup_vu"
+    else
+      BOXDIR="backup_fortis"
+  fi
 fi
+
+if [ `mount | grep "on /var/swap" | wc -l` -ge 1 ]; then DIR="/var/swap/$BOXDIR"; fi
+if [ `mount | grep "on /media/hdd" | wc -l` -eq 1 ]; then DIR="/media/hdd/$BOXDIR"; fi
+
 rm -f $DIR/restore.log ; touch $DIR/restore.log
+
+# Neustart nach Flashinstallation, restore AM
+if [ -e /var/swap/backup/.firstrun ] || [ -e /media/hdd/backup/.firstrun ] ; then
+  settings=n
+  binarys=y
+  camconfig=n
+  plugins=y
+  network=n
+  samba=n
+  bilder=n
+  sonstige=n
+  addonmanager=y
+  backup=n
+fi
+
 
 if [ "$plugins" = "y" ]
@@ -106,17 +146,41 @@
 fi
 
+if [ "$binarys" = "y" ]
+ then
+ if [ -e $DIR/bin.tar ]
+	then
+     	tar -xvf $DIR/bin.tar -C / >> $DIR/restore.log
+			echo -e "******** Binarys wurde wiederhergestellt ********\n"
+  else
+	  	echo -e "******** Kein Backup der Binarys vorhanden! ********\n"
+ fi
+fi
+
+if [ "$addonmanager" = "y" ]; then
+ if [ -e $DIR/am.tar ]
+	then
+     	tar -xvf $DIR/am.tar -C / >> $DIR/restore.log
+			echo -e "******** AddonManager wurde wiederhergestellt ********\n"
+  else
+	  	echo -e "******** Kein Backup vom AddonManager vorhanden! ********\n"
+ fi
+fi
+
 if [ "$settings" = "y" ]
  then
  if [ -e $DIR/settings.tar ]
   then
-
-      echo -e "******** Settings und Automounts wiederhergestellt ********\n"
-      echo -e "********************************************"
-      echo -e "******** Box wird nun neu gestartet ********\n"
-      echo -e "********************************************"
-      sleep 3
-      init 4 # kill enigma
-      tar -xvf $DIR/settings.tar -C / >> $DIR/restore.log
-      reboot -f  # reboot, make the settings resistant
+      if [ $rebootnow ]; then
+        echo -e "******** Settings und Automounts wiederhergestellt ********\n"
+        echo -e "********************************************"
+        echo -e "******** Box wird nun neu gestartet ********\n"
+        echo -e "********************************************"
+        sleep 3
+        init 4 # kill enigma
+        tar -xvf $DIR/settings.tar -C / >> $DIR/restore.log
+        reboot -f  # reboot, make the settings resistant
+      else
+        tar -xvf $DIR/settings.tar -C / >> $DIR/restore.log
+      fi
   else
       echo -e "******** Kein Backup der Settings vorhanden! ********\n"
