diff --git a/NeoBoot/run.py b/NeoBoot/run.py
new file mode 100644
index 0000000..4f1cadd
--- /dev/null
+++ b/NeoBoot/run.py
@@ -0,0 +1,165 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#echo "Flash " >> '+ getImageNeoBoot() + 'ImagesUpload/.kernel/used_flash_kernel;
+
+from __init__ import _
+from Plugins.Extensions.NeoBoot.files.stbbranding import getNeoLocation, getKernelVersionString, getKernelImageVersion, getCPUtype, getCPUSoC, getImageNeoBoot, getBoxVuModel, getBoxHostName, getTunerModel
+from enigma import getDesktop
+from enigma import eTimer
+from Screens.Screen import Screen
+from Screens.Console import Console
+from Screens.MessageBox import MessageBox
+from Screens.ChoiceBox import ChoiceBox
+from Screens.VirtualKeyBoard import VirtualKeyBoard
+from Screens.Standby import TryQuitMainloop
+from Components.About import about
+from Components.Sources.List import List
+from Components.Button import Button
+from Components.ActionMap import ActionMap, NumberActionMap
+from Components.GUIComponent import *
+from Components.MenuList import MenuList
+from Components.Input import Input
+from Components.Label import Label
+from Components.ProgressBar import ProgressBar
+from Components.ScrollLabel import ScrollLabel
+from Components.Pixmap import Pixmap, MultiPixmap
+from Components.config import *
+from Components.ConfigList import ConfigListScreen
+from Tools.LoadPixmap import LoadPixmap
+from Tools.Directories import fileExists, pathExists, createDir, resolveFilename, SCOPE_PLUGINS
+from os import system, listdir, mkdir, chdir, getcwd, rename as os_rename, remove as os_remove, popen
+from os.path import dirname, isdir, isdir as os_isdir
+import os
+import time
+
+
+class StartImage(Screen):
+ screenwidth = getDesktop(0).size().width()
+ if screenwidth and screenwidth == 1920:
+ skin = """
+ \n\t\t\t
+ \n\t\t\t\t
+ \n \t\t{"template": [
+ \n \t\t\tMultiContentEntryText(pos = (90, 1), size = (920, 66), flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0),
+ \n \t\t\tMultiContentEntryPixmapAlphaTest(pos = (8, 4), size = (66, 66), png = 1),
+ \n \t\t\t],
+ \n \t\t\t"fonts": [gFont("Regular", 40)],\n \t\t\t"itemHeight": 66\n \t\t}
+ \n \t\t\n\t\t
+ \n
+ \n\t\t
+ \n\t\t """
+ else:
+ skin = """
+ \n\t\t\t
+
+ \n\t\t\t\t
+ \n \t\t{"template": [
+ \n \t\t\tMultiContentEntryText(pos = (180, 0), size = (520, 36), flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0),
+ \n \t\t\tMultiContentEntryPixmapAlphaTest(pos = (4, 2), size = (36, 36), png = 1),
+ \n \t\t\t],\n \t\t\t"fonts": [gFont("Regular", 22)],
+ \n \t\t\t"itemHeight": 35\n \t\t}\n \t\t
+ \n\t\t\n
+
+ \n\t\t """
+
+ __module__ = __name__
+ def __init__(self, session):
+ Screen.__init__(self, session)
+ self.list = []
+ self['list'] = List(self.list)
+ self.select()
+ self['actions'] = ActionMap(['WizardActions', 'ColorActions'], {'ok': self.KeyOk,
+ 'back': self.close})
+ self['label1'] = Label(_('Start the chosen system now ?'))
+ self['label2'] = Label(_('Select OK to run the image.'))
+
+ def select(self):
+ self.list = []
+ mypath = '/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot'
+ if not fileExists(mypath + 'icons'):
+ mypixmap = '/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/ok.png'
+ png = LoadPixmap(mypixmap)
+ res = (_('OK Start image...'), png, 0)
+ self.list.append(res)
+ self['list'].list = self.list
+
+ def KeyOk(self):
+ if getImageNeoBoot() != 'Flash':
+ if not fileExists('%sImageBoot/%s/.control_ok' % ( getNeoLocation(), getImageNeoBoot())):
+ cmd = _("echo -e '[NeoBoot] Uwaga!!! po poprawnym starcie wybranego oprogramowania w neoboot,\nnalezy uruchomic NEOBOOTA by potwierdzic prawidlowy start image.\n\nNacisnij OK lub exit na pilocie by kontynuowac...\n\n\n'")
+ self.session.openWithCallback(self.StartImageInNeoBoot, Console, _('NeoBoot: Start image...'), [cmd])
+ else:
+ os.system('rm -rf %sImageBoot/%s/usr/bin/enigma2_pre_start.sh' % ( getNeoLocation(), getImageNeoBoot()))
+ self.StartImageInNeoBoot()
+ else:
+ os.system('rm -rf %sImageBoot/%s/usr/bin/enigma2_pre_start.sh' % ( getNeoLocation(), getImageNeoBoot()))
+ self.StartImageInNeoBoot()
+
+ def StartImageInNeoBoot(self):
+ if getImageNeoBoot() != 'Flash':
+ if fileExists('%sImageBoot/%s/.control_ok' % ( getNeoLocation(), getImageNeoBoot())):
+ system('touch /tmp/.control_ok ')
+ else:
+ system('touch %sImageBoot/%s/.control_boot_new_image ' % ( getNeoLocation(), getImageNeoBoot() ))
+
+ system('chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/kernel.sh')
+ self.sel = self['list'].getCurrent()
+ if self.sel:
+ self.sel = self.sel[2]
+ if self.sel == 0:
+ if fileExists('/media/mmc/etc/init.d/neobootmount.sh'):
+ os.system('rm -f /media/mmc/etc/init.d/neobootmount.sh;')
+
+#################_____ARM____##########################
+
+ #VUPLUS ARM ultimo4k, solo4k, uno4k, uno4kse - mmcblk0p1.sh
+ if getCPUtype() == 'ARMv7' and getCPUSoC() or getBoxHostName() == ['7444s',
+ '7376',
+ '7252s',
+ 'vuultimo4k'
+ 'vusolo4k',
+ 'vuuno4k',
+ 'vuuno4kse'] :
+ if not fileExists('%sImagesUpload/.kernel/flash-kernel-%s.bin' % (getNeoLocation(), getBoxHostName()) ):
+ self.myclose2(_('\n\n\nError - w lokalizacji %sImagesUpload/.kernel/ \nnie odnaleziono pliku kernela flash-kernel-%s.bin ' % getNeoLocation(), getBoxHostName() ))
+ else:
+ if getImageNeoBoot() == 'Flash':
+ if fileExists('/.multinfo'):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'cd /media/mmc; ln -sf "init.sysvinit" "/media/mmc/sbin/init"; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/kernel.sh '
+
+ elif not fileExists('/.multinfo'):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'sleep 5; ln -sf "init.sysvinit" "/sbin/init"; reboot -dfhi'
+
+ elif getImageNeoBoot() != 'Flash':
+ if not fileExists('/.multinfo'):
+ if not fileExists('%sImageBoot/%s/boot/zImage.%s' % ( getNeoLocation(), getImageNeoBoot(), getBoxHostName())):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'sleep 5; ln -sfn /sbin/neoinitarm /sbin/init; /etc/init.d/reboot'
+
+ elif fileExists('%sImageBoot/%s/boot/zImage.%s' % ( getNeoLocation(), getImageNeoBoot(), getBoxHostName())):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'ln -sfn /sbin/neoinitarmvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/kernel.sh '
+
+ elif fileExists('/.multinfo'):
+ if not fileExists('%sImageBoot/%s/boot/zImage.%s' % ( getNeoLocation(), getImageNeoBoot(), getBoxHostName())):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'dd if=' + getNeoLocation() + 'ImagesUpload/.kernel/flash-kernel-' + getBoxHostName() + '.bin of=/dev/mmcblk0p1; cd /media/mmc; ln -sf "neoinitarm" "/media/mmc/sbin/init" ; sleep 2; reboot -dfhi '
+
+ elif fileExists('%sImageBoot/%s/boot/zImage.%s' % ( getNeoLocation(), getImageNeoBoot(), getBoxHostName())):
+ cmd = "echo -e '\n\n%s '" % _('...............NEOBOOT - REBOOT...............\nPlease wait, in a moment the decoder will be restarted...')
+ cmd1 = 'cd /media/mmc; ln -sf "neoinitarmvu" "/media/mmc/sbin/init"; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/kernel.sh '
+
+ self.session.open(Console, _('NeoBoot ARM VU+....'), [cmd, cmd1])
+ self.close()
+
+
+ else:
+ os.system('echo "Flash " >> ' + getNeoLocation() + 'ImageBoot/.neonextboot')
+ self.messagebox = self.session.open(MessageBox, _('Wygląda na to że multiboot nie wspiera tego modelu STB !!! '), MessageBox.TYPE_INFO, 8)
+ self.close()
+
+ def myclose2(self, message):
+ self.session.open(MessageBox, message, MessageBox.TYPE_INFO)
+ self.close()