diff -ur tuxbox-French-TTS-3.1.4/install.sh tuxbox-patch/install.sh
--- tuxbox-French-TTS-3.1.4/install.sh	2010-03-15 15:12:40.000000000 +0100
+++ tuxbox-patch/install.sh	2020-05-17 14:25:54.444067961 +0200
@@ -87,4 +87,34 @@
     chmod 0666 /dev/hiddev*
 fi
 
+# Cleanup the out of the date files
+#rm -f /usr/bin/tuxsh
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-audacious.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-facebook.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-gmail.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-hotmail.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-mail.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-pidgin.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-programsTv.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-shortcut.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-skype.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-totem.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-twitter.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-weather.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-webradio.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-webradio-de.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-xmms.scp
+rm -f $PREFIX/share/tuxdroid/resources/plugins/plugin-yahoo.scp
+
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_2ba0fe92-c73f-61b5-50c5-d8de0aee9194.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_5c5e7e0d-89c5-8799-3175-df2bddf5653c.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_06d0b3ba-7781-4d2d-bd48-520cfa18e0c9.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_8d692b92-6de4-1ddf-c42f-b1068569d9d4.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_33b14aea-907e-9d9d-7e64-c40c3bbf56fb.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_56cdb050-3bba-d814-32c5-df4b90fee8c3.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_59cce412-9224-639c-d64d-9d25de84b960.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_69848cab-41c2-c81a-e018-84cf0adb25d3.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_84628d00-1e17-62dd-eaa4-7b11436f3211.scg
+rm -f $PREFIX/share/tuxdroid/resources/gadgets/gadget_d71cec40-c44e-73d7-e63f-a152986354e0.scg
+
 echo Done.
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/index.xsl tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/index.xsl
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/index.xsl	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/index.xsl	2020-05-16 15:09:54.000000000 +0200
@@ -156,6 +156,7 @@
                     scrolling="no"
                     src="">
             </iframe>
+           
         </div>
         <script language="javascript">
         <![CDATA[
@@ -169,6 +170,13 @@
             catch(err) {}
         ]]>
         </script>
+        
+        <style>
+        iframe.ContentIFrame{
+            height: 600px;
+        }
+        </style>
+        
     </body>
 </html>
 </xsl:template>
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/livewithtux.xsl tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/livewithtux.xsl
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/livewithtux.xsl	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/data/web_interface/user_01/xsl/livewithtux.xsl	2020-05-16 15:19:54.000000000 +0200
@@ -656,6 +656,17 @@
                     <xsl:attribute name="onclick">javascript:setSoundOff();return false;</xsl:attribute>
                     <xsl:attribute name="href">#</xsl:attribute><xsl:value-of select="root/translations/sound_off"/>
                 </xsl:element>
+                
+                <div class="statusFrame" style="position:absolute;
+                    left:0px;
+                    top:540px;
+                    "><a style="width: 100%;
+                        text-align: center;
+                        display: block;
+                        margin-top: 15px;
+                        color: red;">                 
+                    Please wait 5 minutes and run : sudo tuxhttpserver -u</a>
+                </div>   
             </div>
         </div>
         <!-- EXAMPLE OF LIGHTBOX -->
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/TDSAutoUpdater.py tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/TDSAutoUpdater.py
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/TDSAutoUpdater.py	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/TDSAutoUpdater.py	2020-05-15 02:05:02.000000000 +0200
@@ -23,7 +23,8 @@
 from util.misc import URLTools
 from util.logger import *
 
-DIST_STATE = "beta-test"
+#DIST_STATE = "beta-test"
+DIST_STATE = "stable"
 
 PART_CONF_SRC_URL = 0
 PART_CONF_DEST = 1
@@ -32,19 +33,19 @@
 
 UPDATES_PARTS = {
     'smart_server' : [
-        'http://ftp.kysoh.com/ssv3/smart_core/smart_server/%s.conf' % DIST_STATE,
+        'http://tuxdroid.tounepi.com/ftp/ssv3/smart_core/smart_server/%s.conf' % DIST_STATE,
         'smart_server.conf',
         'smart_server.cver',
         __version__,
     ],
     'smart_api' : [
-        'http://ftp.kysoh.com/ssv3/smart_core/smart_api/%s.conf' % DIST_STATE,
+        'http://tuxdroid.tounepi.com/ftp/ssv3/smart_core/smart_api/%s.conf' % DIST_STATE,
         'smart_api.conf',
         'smart_api.cver',
         '',
     ],
     'smart_content' : [
-        'http://ftp.kysoh.com/ssv3/smart_core/smart_content/%s.conf' % DIST_STATE,
+        'http://tuxdroid.tounepi.com/ftp/ssv3/smart_core/smart_content/%s.conf' % DIST_STATE,
         'smart_content.conf',
         'smart_content.cver',
         '',
@@ -72,7 +73,7 @@
         """
         if not os.path.isdir(TDS_UPDATES_PATH):
             DirectoriesAndFilesTools.MKDirs(TDS_UPDATES_PATH)
-        self.__logger = SimpleLogger("auto_updater.log")
+        self.__logger = SimpleLogger("auto_updater")
         self.__logger.setTarget(TDS_CONF_LOG_TARGET)
         self.__logger.setLevel(TDS_CONF_LOG_LEVEL)
         self.__logger.resetLog()
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/tuxhttpserver.py tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/tuxhttpserver.py
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/tuxhttpserver.py	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/tuxhttpserver.py	2020-05-16 15:40:54.000000000 +0200
@@ -11,11 +11,15 @@
 #    Remi Jocaille <remi.jocaille@c2me.be>
 #    Distributed under the terms of the GNU General Public License
 #    http://www.gnu.org/copyleft/gpl.html
+#    
+#    2020 tuxdroid.tounepi.com
 
 import sys
 import os
 import getopt
 import time
+import tarfile
+import shutil
 
 from util.smartcore.OldProcessKiller import killOldSmartCoreChildren
 from util.smartcore.OldProcessKiller import killPreviousSmartServer
@@ -24,8 +28,16 @@
 from TDSConfiguration import *
 from util.logger import *
 
+PART_NAMES = [
+    'smart_content',
+    'smart_api',
+    'smart_server',
+]
+
 logger = None
 
+updateUserPath = None
+
 def initLogger():
     global logger
     logger = SimpleLogger("SmartServerMain")
@@ -78,6 +90,143 @@
     logger.logInfo("Finalize server")
     finalizeServer()
     logger.logInfo("Server finalized")
+    
+def update():
+    if os.name != 'nt':
+        print("-----------------------------------------------")
+        print("Tuxbox Update")
+        print("-----------------------------------------------")
+        print(" ")
+        
+        #test sudo
+        try:
+            os.mkdir("/usr/share/tuxdroid/test/", 0755 );
+        except:
+            print("Your are not allowed.")
+            print("please type : sudo tuxhttpserver -u")
+            exit()
+        shutil.rmtree("/usr/share/tuxdroid/test")
+        
+        print("Stop the server")
+        killServer()
+        print(" ")
+        
+        #path list /home
+        homePath =  os.listdir('/home')
+        homePathList = list()
+        for path in homePath:
+            pathDir = os.path.join("/home",path)
+            if os.path.isdir(pathDir):
+                homePathList.append(path)
+                
+        if updateUserPath == None:
+            if not len(homePathList) == 1:
+                print "Multiple users"
+                print "Please, specify your login :"
+                for path in homePathList:
+                    print "sudo tuxhttpserver -u -d ", path
+                exit()
+        else :
+            upPath = os.path.join("/home",updateUserPath)
+            userPathArg = updateUserPath
+                
+        if len(homePathList) == 1:
+            upPath = os.path.join("/home",homePathList[0])
+            userPathArg = homePathList[0]
+            
+        if not os.path.isdir(upPath):
+            print "Error, wrong path."
+            exit()
+        
+        #install
+        updateStateNum = 0
+        for partName in PART_NAMES:
+            print(partName)
+            confUrl = os.path.join(upPath,".tuxdroid","updates",partName+'.conf')
+            if os.path.isfile(confUrl):
+                f = open(confUrl, "r")
+                try:
+                    confDict = eval(f.read())
+                except:
+                    f.close()
+                    continue
+                f.close()
+                archName = "win32"
+                if os.name == "nt":
+                    if not confDict.has_key('win32'):
+                        continue
+                    archName = "win32"
+                else:
+                    if not confDict.has_key('unix'):
+                        continue
+                    archName = "unix"
+                installerName = confDict[archName]["fileName"]
+                currentVersion = confDict[archName]["version"]
+                installerFile = os.path.join(upPath,".tuxdroid","updates",installerName)
+                print(currentVersion)
+                if os.path.isfile(installerFile):
+                    print "Open..."
+                    tmpPath = os.path.join(upPath,".tuxdroid","updates")
+                    try:
+                        tar = tarfile.open(installerFile, 'r:gz')
+                    except:
+                        print "Error install file : ", installerName
+                        tar.close()
+                        exit()
+                    try:
+                        tar.extractall(tmpPath)
+                    except :
+                        print "Error extract tar file : ", installerName
+                        tar.close()
+                        exit()
+                    tar.close()
+                    nameTar = partName + "_" + currentVersion
+                    tmpPath = os.path.join(upPath,".tuxdroid","updates",nameTar)                    
+                    tmpSh = "sh " + tmpPath + "/update.sh" + " " + currentVersion + " " + userPathArg
+                    stream = os.popen(tmpSh)
+                    output = stream.read()
+                    try:
+                        output
+                    except:
+                        print "Error running sh."
+                        exit()
+                    print(output)
+                    try:
+                        os.remove(installerFile)
+                    except:
+                        print "Error remove : ", installerFile
+                        exit()
+                    try:
+                        shutil.rmtree(tmpPath)
+                    except:
+                        print "Error remove : ", tmpPath
+                        exit()
+                    tmpPath = os.path.join(upPath,".tuxdroid","updates",partName)
+                    cfFile = tmpPath + ".conf"
+                    try:
+                        os.remove(cfFile)
+                    except:
+                        print "Error remove : ", cfFile
+                        exit()
+                    tmpPath = os.path.join(upPath,".tuxdroid","updates/")
+                    cverFile = tmpPath + partName + ".cver"
+                    try:
+                        f = open(cverFile, "w")
+                    except:
+                        print "Error write : ", cverFile
+                        exit()
+                    f.write(currentVersion)
+                    f.close()
+                    print("Done")
+                        
+            else:
+                print("Nothing to do.")
+            print(" ")
+
+        print 'Done'
+        print "Quit sudo and run : tuxhttpserver --start"
+    else:
+        print("Linux command only.")
 
 def usage():
     print '-'*80
@@ -91,6 +240,7 @@
     print '  -s , --stop    : Stop the server'
     print '  -l , --start   : Start the server'
     print '  -r , --restart : Restart the server'
+    print '  -u , --update  : Update (Run : sudo tuxhttpserver -u, only for linux)'
     print '  -h , --help    : Display this help'
     print "  --no-daemon    : Don't daemonize the server"
     print '                   (only for Linux)'
@@ -118,11 +268,12 @@
     __start = False
     __stop = False
     __restart = False
+    __update = False
     __daemon = True
 
     try:
-        opts, args = getopt.getopt(sys.argv[1:], "slrh", \
-                ["stop", "start", "restart", "help", "no-daemon"])
+        opts, args = getopt.getopt(sys.argv[1:], "slrudh", \
+                ["stop", "start", "restart","update", "help", "no-daemon"])
     except getopt.error, msg:
         print msg
         usage()
@@ -139,6 +290,11 @@
         elif o in ("-r", "--restart"):
             __start = True
             __restart = True
+        elif o in ("-u", "--update"):
+            __update = True
+        elif o in ("-d"):
+            if args:
+                updateUserPath = args[0]
         elif o in ("--no-daemon"):
             __daemon = False
 
@@ -153,6 +309,8 @@
         initLogger()
         killServerAndWait()
         start()
+    elif __update:
+        update()
     else:
         if checkServerRun():
             print "Server is already started"
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/util/applicationserver/gadget/GadgetOnline.py tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/util/applicationserver/gadget/GadgetOnline.py
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/util/applicationserver/gadget/GadgetOnline.py	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/util/applicationserver/gadget/GadgetOnline.py	2020-05-15 02:02:48.000000000 +0200
@@ -3,7 +3,7 @@
 #    Distributed under the terms of the GNU General Public License
 #    http://www.gnu.org/copyleft/gpl.html
 
-ONLINE_FTP_URL = "http://ftp.kysoh.com"
+ONLINE_FTP_URL = "http://tuxdroid.tounepi.com/ftp"
 ONLINE_GADGETS_BASE_URL = ONLINE_FTP_URL + "/ssv3/content/gadgets/"
 
 # ------------------------------------------------------------------------------
diff -ur tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/version.py tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/version.py
--- tuxbox-French-TTS-3.1.4/mirror/usr/share/tuxdroid/tuxhttpserver/version.py	2010-03-15 15:08:37.000000000 +0100
+++ tuxbox-patch/mirror/usr/share/tuxdroid/tuxhttpserver/version.py	2020-05-16 11:56:52.000000000 +0200
@@ -7,7 +7,7 @@
 #    Distributed under the terms of the GNU General Public License
 #    http://www.gnu.org/copyleft/gpl.html
 
-version = '0.4.5'
+version = '1.0.0'
 author = "Remi Jocaille (remi.jocaille@c2me.be)"
 licence = "GPL"
 date = "2009"
