neoboot2
This commit is contained in:
40
NeoBoot/.info
Normal file
40
NeoBoot/.info
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
#Wspierane tunery satelitarne:
|
||||
#Machine BCM - getCPUSoC():
|
||||
|
||||
#cat /proc/stb/info/chipset:
|
||||
Ultimo4k : 7444s
|
||||
Solo4k : 7376
|
||||
Zero 4K : 72604
|
||||
Duo4k : 7278 #BCM7278
|
||||
Uno 4K : 7252s
|
||||
Uno4kSE : 7252s
|
||||
Ultimo : 7405(with 3D)
|
||||
Uno : 7405(with 3D)
|
||||
Duo : 7335
|
||||
Duo2 : 7424
|
||||
Zero : 7362
|
||||
Solo : 7325
|
||||
Solose : 7241
|
||||
Solose-v2 : 7241
|
||||
Solo2 : 7356
|
||||
|
||||
Formuler F1 : bcm7356
|
||||
Formuler F3 : 7362
|
||||
|
||||
Miraclebox MBmini : bcm7358
|
||||
Miraclebox Micro : bcm7362
|
||||
Miraclebox Ultra : bcm7424
|
||||
|
||||
Octagon Sf8008 : 3798mv200
|
||||
Octagon SF4008 : bcm7251
|
||||
|
||||
Zgemma h7S : bcm7251s
|
||||
Zgemma H9S :
|
||||
|
||||
AX HD60 4K : hi3798mv200 root@ax60:~# cat /etc/hostname : ax60
|
||||
|
||||
OSmini : BCM7362
|
||||
|
||||
atemio6000 : bcm7362
|
||||
|
||||
25
NeoBoot/__init__.py
Normal file
25
NeoBoot/__init__.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from Components.Language import language
|
||||
from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_LANGUAGE
|
||||
import os, gettext
|
||||
PluginLanguageDomain = 'NeoBoot'
|
||||
PluginLanguagePath = 'Extensions/NeoBoot/locale'
|
||||
|
||||
def localeInit():
|
||||
lang = language.getLanguage()[:2]
|
||||
os.environ['LANGUAGE'] = lang
|
||||
print '[NeoBoot] set language to ', lang
|
||||
gettext.bindtextdomain(PluginLanguageDomain, resolveFilename(SCOPE_PLUGINS, PluginLanguagePath))
|
||||
|
||||
|
||||
def _(txt):
|
||||
t = gettext.dgettext(PluginLanguageDomain, txt)
|
||||
if t == txt:
|
||||
#print '[NeoBoot] fallback to default translation for', txt
|
||||
t = gettext.dgettext('enigma2', txt)
|
||||
return t
|
||||
|
||||
|
||||
localeInit()
|
||||
language.addCallback(localeInit)
|
||||
BIN
NeoBoot/neo.png
Normal file
BIN
NeoBoot/neo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
BIN
NeoBoot/neologo.mvi
Normal file
BIN
NeoBoot/neologo.mvi
Normal file
Binary file not shown.
1492
NeoBoot/plugin.py
Normal file
1492
NeoBoot/plugin.py
Normal file
File diff suppressed because it is too large
Load Diff
399
NeoBoot/run.py
Normal file
399
NeoBoot/run.py
Normal file
@@ -0,0 +1,399 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __init__ import _
|
||||
from Plugins.Extensions.NeoBoot.files import Harddisk
|
||||
from Plugins.Extensions.NeoBoot.files.stbbranding import 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 = """<screen position="center, center" size="1241, 850" title="NeoBoot">
|
||||
\n\t\t\t<ePixmap position="491, 673" zPosition="-2" size="365, 160" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/matrixhd.png" />
|
||||
<widget source="list" render="Listbox" position="20, 171" size="1194, 290" scrollbarMode="showOnDemand">\n\t\t\t\t<convert type="TemplatedMultiContent">
|
||||
\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</convert>\n\t\t</widget>
|
||||
\n <widget name="label1" position="21, 29" zPosition="1" size="1184, 116" font="Regular;35" halign="center" valign="center" backgroundColor="black" transparent="1" foregroundColor="red" />
|
||||
\n\t\t <widget name="label2" position="22, 480" zPosition="-2" size="1205, 168" font="Regular;35" halign="center" valign="center" backgroundColor="black" transparent="1" foregroundColor="red" />
|
||||
\n\t\t </screen>"""
|
||||
else:
|
||||
skin = """<screen position="center, center" size="835, 500" title="NeoBoot">
|
||||
\n\t\t\t <ePixmap position="0,0" zPosition="-1" size="835,500" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/frame835x500.png" />
|
||||
<widget source="list" render="Listbox" position="16, 150" size="800, 40" selectionPixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/listselection800x35.png" scrollbarMode="showOnDemand">
|
||||
\n\t\t\t\t<convert type="TemplatedMultiContent">
|
||||
\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</convert>
|
||||
\n\t\t</widget>\n<widget name="label1" font="Regular; 26" position="15, 70" size="803, 58" halign="center" valign="center" backgroundColor="black" transparent="1" foregroundColor="#00cc99" />
|
||||
<widget name="label2" position="40, 232" zPosition="2" size="806, 294" font="Regular;25" halign="center" valign="center" backgroundColor="black" transparent="1" foregroundColor="#00cc99" />
|
||||
\n\t\t </screen>"""
|
||||
|
||||
__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':
|
||||
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:
|
||||
self.StartImageInNeoBoot()
|
||||
|
||||
def StartImageInNeoBoot(self):
|
||||
if fileExists('/media/neoboot/ImageBoot/%s/.control_ok ' % ( getImageNeoBoot())):
|
||||
system('touch /tmp/.control_ok ')
|
||||
elif not fileExists('/media/neoboot/ImageBoot/%s/.control_ok ' % ( getImageNeoBoot())):
|
||||
system('touch /media/neoboot/ImageBoot/%s//.control_boot_new_image ' % ( getImageNeoBoot()))
|
||||
|
||||
####################################
|
||||
system('sync; echo 3 > /proc/sys/vm/drop_caches; chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/*')
|
||||
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;')
|
||||
|
||||
#DM900; Zgemma h7S; AX HD60 4K
|
||||
if getCPUSoC() == 'hi3798mv200' or getBoxHostName == 'ax60' or getCPUSoC() == '3798mv200' or getBoxHostName() == 'sf8008' or getCPUSoC() == 'bcm7251s' or getBoxHostName() == 'h7' or getCPUSoC() == 'BCM97252SSFF' or getBoxHostName() == 'dm900':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
os.system('cd /media/mmc; ln -sfn /sbin/init.sysvinit /media/mmc/sbin/init; reboot -d -f -h -i')
|
||||
elif not fileExists('/.multinfo'):
|
||||
os.system('ln -sfn /sbin/init.sysvinit /sbin/init; reboot -d -f -h -i')
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
os.system('ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i')
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/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()
|
||||
|
||||
#MiracleBox, ET8500, Formuler F1, Formuler F3, Atemio6000 - MIPS # test - ultra, osmini
|
||||
elif getCPUtype() != 'ARMv7' and getCPUSoC() == 'bcm7358' or getCPUSoC() == 'bcm7362' or getCPUSoC() == 'bcm7356' or getCPUSoC() == 'bcm7241' or getCPUSoC() == 'bcm7362' or getBoxHostName() == 'mbmini' or getBoxHostName() == 'h3' or getTunerModel() == 'ini-1000sv': #or getBoxHostName == 'mbultra' or getCPUSoC() == 'BCM7362' or getBoxHostName() == 'osmini'
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
cmd='ln -sfn /sbin/neoinitmips /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot ....'), [cmd])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/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()
|
||||
|
||||
|
||||
|
||||
#MiracleBox Ultra - MIPS #Test
|
||||
elif getCPUtype() != 'ARMv7' and getCPUSoC() == 'bcm7424' or getTunerModel() == 'ini-8000sv':
|
||||
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/mbultra_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot MiracleBox Ultra...'), [cmd2])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz ' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot MiracleBox Ultra Rebooting....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/mbultra_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot MiracleBox Ultra....'), [cmd2])
|
||||
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/init.sysvinit /sbin/init; opkg install --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxHostName()
|
||||
self.session.open(Console, _('NeoBoot MiracleBox Ultra Rebooting....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/init.sysvinit /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/mbultra_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot MiracleBox Ultra....'), [cmd2])
|
||||
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że model STB nie jest wpierany przez multiboota!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
|
||||
#Edision OS MINI - MIPS #Test
|
||||
elif getCPUtype() != 'ARMv7' and getCPUSoC() == 'BCM7362' or getBoxHostName() == 'osmini':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/osmini_dev_mtd0.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/osmini_dev_mtd0.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='opkg install --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxHostName()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/osmini_dev_mtd0.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że model STB nie jest wpierany przez multiboota!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#Octagon SF4008 ARM
|
||||
elif getCPUSoC() == 'bcm7251' or getBoxHostName() == 'sf4008' :
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd1='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/sf4008_mmcblk0p3.sh'
|
||||
self.session.open(Console, _('NeoBoot Octagon SF4008 ARM ...'), [cmd1])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Octagon SF4008 ARM ....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/sf4008_mmcblk0p3.sh'
|
||||
self.session.open(Console, _('NeoBoot Octagon SF4008 ARM ....'), [cmd1])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='cd /media/mmc; ln -sf /sbin/init.sysvinit /media/mmc/sbin/init; opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxHostName()
|
||||
self.session.open(Console, _('NeoBoot Octagon SF4008 ARM ....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='cd /media/mmc; ln -sfn /sbin/init.sysvinit /media/mmc/sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/sf4008_mmcblk0p3.sh'
|
||||
self.session.open(Console, _('NeoBoot Octagon SF4008 ARM ....'), [cmd1])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że Twój model STB nie jest wpierany!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#Zgemma h7S ARM
|
||||
elif getCPUSoC() == 'bcm7251s' or getBoxHostName() == 'h7' :
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd1='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/h7s_mmcblk0p2.sh'
|
||||
self.session.open(Console, _('NeoBoot Zgemma h7S ARM ...'), [cmd1])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Zgemma h7S ARM ....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/h7s_mmcblk0p2.sh'
|
||||
self.session.open(Console, _('NeoBoot Zgemma h7S ARM ....'), [cmd1])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='cd /media/mmc; ln -sf /sbin/neoinitarm /media/mmc/sbin/init; opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxHostName()
|
||||
self.session.open(Console, _('NeoBoot Zgemma h7S ARM ....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxHostName())):
|
||||
cmd1='cd /media/mmc; ln -sfn /sbin/neoinitarm /media/mmc/sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/h7s_mmcblk0p2.sh'
|
||||
self.session.open(Console, _('NeoBoot Zgemma h7S ARM ....'), [cmd1])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że Twój model STB nie jest wpierany!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#VUPLUS ARM - vu_mmcblk0p1.sh
|
||||
elif getCPUSoC() == '7444s' or getBoxHostName() == 'vuultimo4k' or getCPUSoC() == '7376' or getBoxHostName() == 'vusolo4k' or getCPUSoC() == '7252s' or getBoxHostName() == 'vuuno4kse':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd1='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p1.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarmvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p1.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sf /sbin/neoinitarm /media/mmc/sbin/init; opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxVuModel()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sfn /sbin/neoinitarmvu /media/mmc/sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p1.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że Twój model STB nie jest wpierany!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#VUPLUS ARM - vu_mmcblk0p4.sh
|
||||
elif getCPUSoC() == '72604' or getBoxHostName() == 'vuzero4k':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd1='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p4.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarmvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p4.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sf /sbin/neoinitarm /media/mmc/sbin/init; opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxVuModel()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sfn /sbin/neoinitarmvu /media/mmc/sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p4.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że Twój model STB nie jest wpierany!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#VUPLUS ARM - Duo4k.sh
|
||||
elif getCPUSoC() == '7278' or getBoxHostName() == 'vuduo4k':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd1='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p6.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarm /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='ln -sfn /sbin/neoinitarmvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p6.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sf /sbin/neoinitarm /media/mmc/sbin/init; opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxVuModel()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/zImage.%s' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd1='cd /media/mmc; ln -sfn /sbin/neoinitarmvu /media/mmc/sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_mmcblk0p6.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd1])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że Twój model STB nie jest wpierany!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
#VUPLUS MIPS mtd2
|
||||
elif getCPUSoC() == '7356' or getCPUSoC() == '7429' or getCPUSoC() == '7424' or getCPUSoC() == '7241' or getCPUSoC() == '7362' or getBoxHostName() == 'vusolo2' or getBoxHostName() == 'vusolose' or getBoxHostName() == 'vuduo2' or getBoxHostName() == 'vuzero':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot MIPS...'), [cmd2])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='ln -sfn /sbin/neoinitmipsvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='opkg install --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxVuModel()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd2.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że model STB nie jest wpierany przez multiboota!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
|
||||
#VUPLUS MIPS mtd1
|
||||
elif getCPUSoC() == '7335' or getCPUSoC() == '7325' or getCPUSoC() == '7405' or getCPUSoC() == '7405(with 3D)' or getBoxHostName() == 'vuultimo' or getBoxHostName() == 'bm750' or getBoxHostName() == 'duo' or getBoxHostName() == 'vuuno' or getBoxHostName() == 'vusolo' or getBoxHostName() == 'vuduo':
|
||||
if getImageNeoBoot() == 'Flash':
|
||||
if fileExists('/.multinfo'):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd1.sh'
|
||||
self.session.open(Console, _('NeoBoot MIPS...'), [cmd2])
|
||||
elif not fileExists('/.multinfo'):
|
||||
self.session.open(TryQuitMainloop, 2)
|
||||
elif getImageNeoBoot() != 'Flash':
|
||||
if not fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='ln -sfn /sbin/neoinitmips /sbin/init; reboot -d -f -h -i'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='ln -sfn /sbin/neoinitmipsvu /sbin/init; /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd1.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/.multinfo'):
|
||||
if not fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='opkg install --force-reinstall --force-overwrite --force-downgrade /media/neoboot/ImagesUpload/.kernel/zImage.%s.ipk; reboot -d -f -h -i' % getBoxVuModel()
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
elif fileExists('/media/neoboot/ImageBoot/%s/boot/%s.vmlinux.gz' % ( getImageNeoBoot(), getBoxVuModel())):
|
||||
cmd2='/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/target/vu_dev_mtd1.sh'
|
||||
self.session.open(Console, _('NeoBoot Arm....'), [cmd2])
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że model STB nie jest wpierany przez multiboota!!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
else:
|
||||
os.system('echo "Flash " >> /media/neoboot/ImageBoot/.neonextboot')
|
||||
self.messagebox = self.session.open(MessageBox, _('Wygląda na to że model STB nie jest wpierany przez NEOBOOT !!! '), MessageBox.TYPE_INFO, 8)
|
||||
self.close()
|
||||
|
||||
313
NeoBoot/unpack.py
Normal file
313
NeoBoot/unpack.py
Normal file
@@ -0,0 +1,313 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from __init__ import _
|
||||
from Plugins.Extensions.NeoBoot.files import Harddisk
|
||||
from Plugins.Extensions.NeoBoot.files.stbbranding import 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 InstallImage(Screen, ConfigListScreen):
|
||||
screenwidth = getDesktop(0).size().width()
|
||||
if screenwidth and screenwidth == 1920:
|
||||
skin = """<screen position="82,105" size="1650,875" title="NeoBoot - Installation">
|
||||
<eLabel position="41,107" size="1541,2" backgroundColor="blue" foregroundColor="blue" name="linia" />
|
||||
<eLabel position="40,744" size="1545,2" backgroundColor="blue" foregroundColor="blue" name="linia" />
|
||||
<eLabel text="NeoBoot opcje dla instalowanego obrazu" font="Regular; 38" position="40,24" size="1538,74" halign="center" foregroundColor="red" backgroundColor="black" transparent="1" />
|
||||
<widget name="config" position="38,134" size="1547,593" font="Regular; 32" itemHeight="42" selectionPixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/selektor.png" scrollbarMode="showOnDemand" transparent="1" backgroundColor="transpBlack" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/redcor.png" position="84,820" size="178,28" alphatest="on" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/greencor.png" position="457,820" size="178,29" alphatest="on" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/yellowcor.png" position="884,823" size="169,28" alphatest="on" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/bluecor.png" position="1288,821" size="167,29" alphatest="on" />
|
||||
<widget name="HelpWindow" position="330,310" zPosition="5" size="1,1" transparent="1" alphatest="on" />
|
||||
<widget name="key_red" position="36,762" zPosition="1" size="284,53" font="Regular; 35" halign="center" valign="center" backgroundColor="#FF0000" transparent="1" foregroundColor="red" />
|
||||
<widget name="key_green" position="403,760" zPosition="1" size="293,55" font="Regular; 35" halign="center" valign="center" backgroundColor="#00FF00" transparent="1" foregroundColor="green" />
|
||||
<widget name="key_yellow" position="816,761" zPosition="1" size="295,54" font="Regular; 35" halign="center" valign="center" backgroundColor="#FFFF00" transparent="1" foregroundColor="yellow" />
|
||||
<widget name="key_blue" position="1233,760" zPosition="1" size="272,56" font="Regular; 35" halign="center" valign="center" backgroundColor="#0000FF" transparent="1" foregroundColor="blue" />\
|
||||
</screen>"""
|
||||
else:
|
||||
skin = """<screen position="0,0" size="1280,720" title="NeoBoot - Installation">
|
||||
<ePixmap position="0,0" zPosition="-1" size="1280,720" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1frame_base-fs8.png" />
|
||||
<eLabel text="NeoBoot opcje dla instalowanego obrazu" font="Regular; 28" position="10,30" size="700,30" halign="center" foregroundColor="#58ccff" backgroundColor="black" transparent="1" />
|
||||
<widget name="config" position="0,150" size="780,450" font="Regular; 22" itemHeight="32" selectionPixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/listselection700x32-fs8.png" scrollbarMode="showOnDemand" transparent="1" backgroundColor="transpBlack" />
|
||||
<widget name="HelpWindow" position="100,500" zPosition="5" size="1,1" transparent="1" alphatest="on" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/red25.png" position="0,650" size="250,40" alphatest="blend" />
|
||||
<widget name="key_red" position="0,670" zPosition="2" size="250,40" font="Regular; 20" halign="center" backgroundColor="transpBlack" transparent="1" foregroundColor="white" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/green25.png" position="200,650" size="230,36" alphatest="blend" />
|
||||
<widget name="key_green" position="200,670" size="230,38" zPosition="1" font="Regular; 20" halign="center" backgroundColor="transpBlack" transparent="1" foregroundColor="white" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/yellow25.png" position="400,650" size="230,36" alphatest="blend" />
|
||||
<widget name="key_yellow" position="400,670" size="230,38" zPosition="1" font="Regular; 20" halign="center" backgroundColor="transpBlack" transparent="1" foregroundColor="white" />
|
||||
<ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/blue25.png" position="600,650" size="230,36" alphatest="blend" />
|
||||
<widget source="session.VideoPicture" render="Pig" position=" 836,89" size="370,208" zPosition="3" backgroundColor="#ff000000"/>
|
||||
<ePixmap position="920,500" zPosition="1" size="228,130" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1matrix.png" />
|
||||
</screen>"""
|
||||
|
||||
def __init__(self, session):
|
||||
Screen.__init__(self, session)
|
||||
fn = 'NewImage'
|
||||
sourcelist = []
|
||||
for fn in os.listdir('/media/neoboot/ImagesUpload'):
|
||||
if fn.find('.zip') != -1:
|
||||
fn = fn.replace('.zip', '')
|
||||
sourcelist.append((fn, fn))
|
||||
continue
|
||||
if fn.find('.tar.xz') != -1:
|
||||
fn = fn.replace('.tar.xz', '')
|
||||
sourcelist.append((fn, fn))
|
||||
continue
|
||||
if fn.find('.nfi') != -1:
|
||||
fn = fn.replace('.nfi', '')
|
||||
sourcelist.append((fn, fn))
|
||||
continue
|
||||
if len(sourcelist) == 0:
|
||||
sourcelist = [('None', 'None')]
|
||||
self.source = ConfigSelection(choices=sourcelist)
|
||||
self.target = ConfigText(fixed_size=False)
|
||||
self.CopyFiles = ConfigYesNo(default=False)
|
||||
self.CopyKernel = ConfigYesNo(default=True)
|
||||
self.TvList = ConfigYesNo(default=True)
|
||||
self.Montowanie = ConfigYesNo(default=True)
|
||||
self.LanWlan = ConfigYesNo(default=True)
|
||||
self.Sterowniki = ConfigYesNo(default=False)
|
||||
self.InstallSettings = ConfigYesNo(default=False)
|
||||
self.ZipDelete = ConfigYesNo(default=False)
|
||||
self.RepairFTP = ConfigYesNo(default=False)
|
||||
self.SoftCam = ConfigYesNo(default=False)
|
||||
self.MediaPortal = ConfigYesNo(default=False)
|
||||
self.BlackHole = ConfigYesNo(default=False)
|
||||
self.target.value = ''
|
||||
self.curselimage = ''
|
||||
|
||||
try:
|
||||
if self.curselimage != self.source.value:
|
||||
self.target.value = self.source.value[:-13]
|
||||
self.curselimage = self.source.value
|
||||
except:
|
||||
pass
|
||||
|
||||
self.createSetup()
|
||||
ConfigListScreen.__init__(self, self.list, session=session)
|
||||
self.source.addNotifier(self.typeChange)
|
||||
self['actions'] = ActionMap(['OkCancelActions',
|
||||
'ColorActions',
|
||||
'CiSelectionActions',
|
||||
'VirtualKeyboardActions'], {'cancel': self.cancel,
|
||||
'red': self.cancel,
|
||||
'green': self.imageInstall,
|
||||
'yellow': self.HelpInstall,
|
||||
'blue': self.openKeyboard}, -2)
|
||||
self['key_green'] = Label(_('Install'))
|
||||
self['key_red'] = Label(_('Cancel'))
|
||||
self['key_yellow'] = Label(_('Help'))
|
||||
self['key_blue'] = Label(_('Keyboard'))
|
||||
self['HelpWindow'] = Pixmap()
|
||||
self['HelpWindow'].hide()
|
||||
|
||||
def createSetup(self):
|
||||
self.list = []
|
||||
self.list.append(getConfigListEntry(_('Source Image file'), self.source))
|
||||
self.list.append(getConfigListEntry(_('Image Name'), self.target))
|
||||
self.list.append(getConfigListEntry(_('Do not copy files from Flash to the installed image ?'), self.CopyFiles ))
|
||||
self.list.append(getConfigListEntry(_('Copy the kernel of the installed system (recommended only for Vu+) ?'), self.CopyKernel ))
|
||||
self.list.append(getConfigListEntry(_('Copy the channel list ?'), self.TvList))
|
||||
self.list.append(getConfigListEntry(_('Copy mounting disks ? (Recommended)'), self.Montowanie))
|
||||
self.list.append(getConfigListEntry(_('Copy network settings LAN-WLAN ?'), self.LanWlan))
|
||||
self.list.append(getConfigListEntry(_('Copy the drivers ? (Recommended only other image.)'), self.Sterowniki))
|
||||
self.list.append(getConfigListEntry(_('Copy Settings to the new Image'), self.InstallSettings))
|
||||
self.list.append(getConfigListEntry(_('Delete Image zip after Install ?'), self.ZipDelete))
|
||||
self.list.append(getConfigListEntry(_('Repair FTP ? (Recommended only other image if it does not work.)'), self.RepairFTP))
|
||||
self.list.append(getConfigListEntry(_('Copy config SoftCam ?'), self.SoftCam))
|
||||
self.list.append(getConfigListEntry(_('Copy MediaPortal ?'), self.MediaPortal))
|
||||
self.list.append(getConfigListEntry(_('Path BlackHole ? (Not recommended for VuPlus)'), self.BlackHole))
|
||||
|
||||
def HelpInstall(self):
|
||||
if fileExists('/.multinfo'):
|
||||
mess = _('Information available only when running Flash.')
|
||||
self.session.open(MessageBox, mess, MessageBox.TYPE_INFO)
|
||||
else:
|
||||
self.session.open(HelpInstall)
|
||||
|
||||
|
||||
|
||||
def typeChange(self, value):
|
||||
self.createSetup()
|
||||
self['config'].l.setList(self.list)
|
||||
if self.curselimage != self.source.value:
|
||||
self.target.value = self.source.value[:-13]
|
||||
self.curselimage = self.source.value
|
||||
|
||||
def openKeyboard(self):
|
||||
sel = self['config'].getCurrent()
|
||||
if sel:
|
||||
if sel == self.target:
|
||||
if self['config'].getCurrent()[1].help_window.instance is not None:
|
||||
self['config'].getCurrent()[1].help_window.hide()
|
||||
self.vkvar = sel[0]
|
||||
if self.vkvar == _('Image Name'):
|
||||
self.session.openWithCallback(self.VirtualKeyBoardCallback, VirtualKeyBoard, title=self['config'].getCurrent()[0], text=self['config'].getCurrent()[1].value)
|
||||
return
|
||||
|
||||
def VirtualKeyBoardCallback(self, callback = None):
|
||||
if callback is not None and len(callback):
|
||||
self['config'].getCurrent()[1].setValue(callback)
|
||||
self['config'].invalidate(self['config'].getCurrent())
|
||||
return
|
||||
|
||||
def imageInstall(self):
|
||||
if self.check_free_space():
|
||||
pluginpath = '/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot'
|
||||
myerror = ''
|
||||
source = self.source.value.replace(' ', '')
|
||||
target = self.target.value.replace(' ', '')
|
||||
for fn in os.listdir('/media/neoboot/ImageBoot'):
|
||||
if fn == target:
|
||||
myerror = _('Sorry, an Image with the name ') + target + _(' is already installed.\n Please try another name.')
|
||||
continue
|
||||
|
||||
if source == 'None':
|
||||
myerror = _('You have to select one Image to install.\nPlease, upload your zip file in the folder: /media/neoboot/ImagesUpload and select the image to install.')
|
||||
if target == '':
|
||||
myerror = _('You have to provide a name for the new Image.')
|
||||
if target == 'Flash':
|
||||
myerror = _('Sorry this name is reserved. Choose another name for the new Image.')
|
||||
if len(target) > 35:
|
||||
myerror = _('Sorry the name of the new Image is too long.')
|
||||
if myerror:
|
||||
myerror
|
||||
self.session.open(MessageBox, myerror, MessageBox.TYPE_INFO)
|
||||
else:
|
||||
myerror
|
||||
message = "echo -e '"
|
||||
message += _('NeoBot started installing new image.\n')
|
||||
message += _('The installation process may take a few minutes.\n')
|
||||
message += _('Please: DO NOT reboot your STB and turn off the power.\n')
|
||||
message += _('Please, wait...\n')
|
||||
message += "'"
|
||||
cmd1 = 'python ' + pluginpath + '/ex_init.py'
|
||||
cmd = '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ' % (cmd1,
|
||||
source,
|
||||
target.replace(' ', '.'),
|
||||
str(self.CopyFiles.value),
|
||||
str(self.CopyKernel.value),
|
||||
str(self.TvList.value),
|
||||
str(self.Montowanie.value),
|
||||
str(self.LanWlan.value),
|
||||
str(self.Sterowniki.value),
|
||||
str(self.InstallSettings.value),
|
||||
str(self.ZipDelete.value),
|
||||
str(self.RepairFTP.value),
|
||||
str(self.SoftCam.value),
|
||||
str(self.MediaPortal.value),
|
||||
str(self.BlackHole.value))
|
||||
print '[NEO-BOOT]: ', cmd
|
||||
self.session.open(Console, _('NEOBoot: Install new image'), [message, cmd])
|
||||
|
||||
|
||||
def check_free_space(self):
|
||||
if Freespace('/media/neoboot/ImagesUpload') < 500000:
|
||||
self.session.open(MessageBox, _('Not enough free space on /media/neoboot/ !!\nYou need at least 500Mb free space.\n\nExit plugin.'), type=MessageBox.TYPE_ERROR)
|
||||
return False
|
||||
return True
|
||||
|
||||
def cancel(self):
|
||||
self.close()
|
||||
|
||||
class HelpInstall(Screen):
|
||||
screenwidth = getDesktop(0).size().width()
|
||||
if screenwidth and screenwidth == 1920:
|
||||
skin = """<screen position="center,center" size="1920,1080" borderWidth="0" borderColor="transpBlack" flags="wfNoBorder">
|
||||
<eLabel text="Informacje instalacji image w NeoBoot" font="Regular; 35" position="71,20" size="1777,112" halign="center" foregroundColor="yellow" backgroundColor="black" transparent="1" />
|
||||
<widget name="lab1" position="69,134" size="1780,913" font="Regular;35" />
|
||||
</screen>"""
|
||||
else:
|
||||
skin = """<screen position="center,center" size="1280,720" title="NeoBoot - Informacje">
|
||||
<widget name="lab1" position="18,19" size="1249,615" font="Regular;20" backgroundColor="black" transparent="1" />
|
||||
</screen>"""
|
||||
__module__ = __name__
|
||||
|
||||
def __init__(self, session):
|
||||
Screen.__init__(self, session)
|
||||
self['lab1'] = ScrollLabel('')
|
||||
self['actions'] = ActionMap(['WizardActions', 'ColorActions', 'DirectionActions'], {'back': self.close,
|
||||
'ok': self.close,
|
||||
'up': self['lab1'].pageUp,
|
||||
'left': self['lab1'].pageUp,
|
||||
'down': self['lab1'].pageDown,
|
||||
'right': self['lab1'].pageDown})
|
||||
self['lab1'].hide()
|
||||
self.updatetext()
|
||||
|
||||
def updatetext(self):
|
||||
|
||||
message = _('Source Image file')
|
||||
message += _(' -Wybierz kursorem pilota oprogramowanie do zainstalowania (w lewo lub prawo).\n\n')
|
||||
|
||||
message += _('Image Name')
|
||||
message += _(' -Zmień nazwę image - aby zmienić naciśnij na pilocie niebieski.\n\n')
|
||||
|
||||
message += _('Do not copy files from Flash to the installed image ?')
|
||||
message += _(' - po zaznaczeniu tej opcji nie zostanie nic skopiowane z image flash do instalowanego image w neoboot. \n\n')
|
||||
|
||||
message += _('Copy the kernel of the installed system (recommended only for Vu+) ?')
|
||||
message += _(' - po zaznaczeniu tej opcji zostanie skopiowany plik jądra (kernel) instalowanego image do neoboota, zalecane tylko dla STB vuplus \n\n')
|
||||
|
||||
message += _('Copy the channel list ?')
|
||||
message += _(' - opcja kopiuje listę kanałów z flasha do instalowanego image w neoboocie.\n\n')
|
||||
|
||||
message += _('Copy mounting disks ? (Recommended)')
|
||||
message += _(' - opcja przenosi do instalowanego image w neoboot ustawienia montowania podłaczonych urządzeń do tunera.\n\n')
|
||||
|
||||
message += _('Copy network settings LAN-WLAN ?')
|
||||
message += _(' - opcja przenosi pliki z zawartymi ustawieniami dla sieci lan i wlan. \n\n ')
|
||||
|
||||
message += _('Copy the drivers ? (Recommended only other image.)')
|
||||
message += _(' - opcja przenosi z flasza sterowniki do instalowanego image w neoboocie, zalecane tylko w przypadku jeśli instalujemy image od innego model niż posiadamy.\n\n')
|
||||
|
||||
message += _('Copy Settings to the new Image')
|
||||
message += _(' - opcja kopiuje ustawienia oprogramowania z flasza do instalowanego systemu w neoboocie.\n\n')
|
||||
|
||||
message += _('Delete Image zip after Install ?')
|
||||
message += _(' - po instalacji, opcja kasuje plik zip image z katalogu ImagesUpload. \n\n')
|
||||
|
||||
message += _('Repair FTP ? (Recommended only other image if it does not work.)')
|
||||
message += _(' - opcja w niektórych przypadkach naprawia w instalowanym image polączenie FTP (ang. File Transfer Protocol) \n\n')
|
||||
|
||||
message += _('Copy config SoftCam ?')
|
||||
message += _(' - opcja kopiuje configi oscama i cccam (openpli -domyślnie)\n\n')
|
||||
|
||||
message += _('Path BlackHole ? (Not recommended for VuPlus)')
|
||||
message += _(' - opcja przeznaczona dla image blackhole, pomaga uruchomić BH w neoboot \n\n')
|
||||
|
||||
self['lab1'].show()
|
||||
self['lab1'].setText(message)
|
||||
|
||||
def Freespace(dev):
|
||||
statdev = os.statvfs(dev)
|
||||
space = statdev.f_bavail * statdev.f_frsize / 1024
|
||||
print '[NeoBoot] Free space on %s = %i kilobytes' % (dev, space)
|
||||
return space
|
||||
Reference in New Issue
Block a user