2020-01-07 11:10:32 +02:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
####################### _(-_-)_ gutosie _(-_-)_ #######################
#neoboot modules
from __init__ import _
2020-01-17 13:33:31 +02:00
from Plugins . Extensions . NeoBoot . files . stbbranding import getLabelDisck , getINSTALLNeo , getNeoLocation , getLocationMultiboot , getNeoMount , getNeoMount2 , getNeoMount3 , getNeoMount4 , getNeoMount5 , getFSTAB , getFSTAB2 , getKernelVersionString , getKernelImageVersion , getCPUtype , getCPUSoC , getImageNeoBoot , getBoxVuModel , getBoxHostName , getTunerModel
2020-01-07 11:10:32 +02:00
from Plugins . Extensions . NeoBoot . files import Harddisk
from Components . About import about
from enigma import getDesktop
from enigma import eTimer
2020-01-12 23:23:04 +02:00
import urllib2 , urllib
2020-01-07 11:10:32 +02:00
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
2020-01-16 20:31:58 +02:00
LinkNeoBoot = ' /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot '
2020-01-07 11:10:32 +02:00
# Copyright (c) , gutosie license
#
# Redystrybucja wersji programu i dokonywania modyfikacji JEST DOZWOLONE, pod warunkiem zachowania niniejszej informacji o prawach autorskich.
# Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użtkowania tego programu oraz za wykorzystanie zawartych tu informacji.
# Modyfikacje przeprowadzasz na wlasne ryzyko!!!
# O wszelkich zmianach prosze poinformować na http://all-forum.cba.pl w temacie pod nazwa -#[NEOBOOT]#-
# This text/program is free document/software. Redistribution and use in
# source and binary forms, with or without modification, ARE PERMITTED provided
# save this copyright notice. This document/program is distributed WITHOUT any
# warranty, use at YOUR own risk.
2020-01-07 12:04:02 +02:00
PLUGINVERSION = ' 8.00 '
2020-01-19 20:56:14 +02:00
UPDATEVERSION = ' 8.16 '
2020-01-07 11:10:32 +02:00
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
class MyUpgrade ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center,center " size= " 1280,570 " title= " Tools Neoboot " ><ePixmap position= " 594,226 " zPosition= " -2 " size= " 623,313 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/matrix.png " /><widget source= " list " render= " Listbox " position= " 33,127 " size= " 1229,82 " scrollbarMode= " showOnDemand " ><convert type= " TemplatedMultiContent " > \ { " template " : [MultiContentEntryText(pos = (90, 1), size = (920, 66), flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0),MultiContentEntryPixmapAlphaTest(pos = (8, 4), size = (66, 66), png = 1),], " fonts " : [gFont( " Regular " , 40)], " itemHeight " : 66}</convert></widget><eLabel text= " NeoBoot wykry \xc5 \x82 nowsz \xc4 \x85 wersj \xc4 \x99 . " font= " Regular; 40 " position= " 27,40 " size= " 1042,70 " halign= " center " foregroundColor= " red " backgroundColor= " black " transparent= " 1 " /><eLabel text= " EXIT - Zrezygnuj " font= " Regular; 40 " position= " 27,441 " size= " 389,80 " halign= " center " foregroundColor= " yellow " backgroundColor= " black " transparent= " 1 " /></screen> """
2020-01-07 11:10:32 +02:00
else :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center,center " size= " 1127,569 " title= " Tools NeoBoot " ><ePixmap position= " 492,223 " zPosition= " -2 " size= " 589,298 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/matrix.png " /><widget source= " list " render= " Listbox " position= " 18,122 " size= " 1085,82 " scrollbarMode= " showOnDemand " ><convert type= " TemplatedMultiContent " > { " template " : [MultiContentEntryText(pos = (90, 1), size = (920, 66), flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0),MultiContentEntryPixmapAlphaTest(pos = (8, 4), size = (66, 66), png = 1),], " fonts " : [gFont( " Regular " , 40)], " itemHeight " : 66}</convert></widget><eLabel text= " NeoBoot wykry \xc5 \x82 nowsz \xc4 \x85 wersj \xc4 \x99 wtyczki. " font= " Regular; 40 " position= " 27,40 " size= " 1042,70 " halign= " center " foregroundColor= " red " backgroundColor= " black " transparent= " 1 " /><eLabel text= " EXIT - Zrezygnuj " font= " Regular; 40 " position= " 27,441 " size= " 389,80 " halign= " center " foregroundColor= " yellow " backgroundColor= " black " transparent= " 1 " /></screen> """
2020-01-18 20:27:11 +02:00
2020-01-07 11:10:32 +02:00
__module__ = __name__
def __init__ ( self , session ) :
Screen . __init__ ( self , session )
self . list = [ ]
self [ ' list ' ] = List ( self . list )
self . wybierz ( )
self [ ' actions ' ] = ActionMap ( [ ' WizardActions ' , ' ColorActions ' ] , { ' ok ' : self . KeyOk ,
' back ' : self . changever } )
2020-01-12 23:23:04 +02:00
def changever ( self ) :
2020-01-07 11:10:32 +02:00
ImageChoose = self . session . open ( NeoBootImageChoose )
2020-01-16 20:31:58 +02:00
if fileExists ( ' ' + LinkNeoBoot + ' /.location ' ) :
2020-01-07 11:10:32 +02:00
out = open ( ' %s ImageBoot/.version ' % getNeoLocation ( ) , ' w ' )
out . write ( PLUGINVERSION )
out . close ( )
self . close ( )
else :
self . close ( self . session . open ( MessageBox , _ ( ' No file location NeoBot, do re-install the plugin. ' ) , MessageBox . TYPE_INFO , 10 ) )
self . close ( )
return ImageChoose
def wybierz ( self ) :
self . list = [ ]
2020-01-16 20:31:58 +02:00
mypath = ' ' + LinkNeoBoot + ' '
2020-01-07 11:10:32 +02:00
if not fileExists ( mypath + ' icons ' ) :
2020-01-16 20:31:58 +02:00
mypixmap = ' ' + LinkNeoBoot + ' /images/ok.png '
2020-01-07 11:10:32 +02:00
png = LoadPixmap ( mypixmap )
res = ( _ ( ' Update neoboot in all images ? ' ) , png , 0 )
self . list . append ( res )
self [ ' list ' ] . list = self . list
2020-01-12 23:23:04 +02:00
def KeyOk ( self ) :
2020-01-07 11:10:32 +02:00
self . sel = self [ ' list ' ] . getCurrent ( )
if self . sel :
self . sel = self . sel [ 2 ]
if self . sel == 0 and self . session . open ( MyUpgrade2 ) :
pass
self . close ( )
class MyUpgrade2 ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
skin = ' <screen position= " center,center " size= " 900,450 " title= " NeoBoot " ><widget name= " lab1 " position= " 23,42 " size= " 850,350 " font= " Regular;35 " halign= " center " valign= " center " transparent= " 1 " /></screen> '
else :
skin = ' <screen position= " center,center " size= " 400,200 " title= " NeoBoot " ><widget name= " lab1 " position= " 10,10 " size= " 380,180 " font= " Regular;24 " halign= " center " valign= " center " transparent= " 1 " /></screen> '
def __init__ ( self , session ) :
Screen . __init__ ( self , session )
self [ ' lab1 ' ] = Label ( _ ( ' NeoBoot: Upgrading in progress \n Please wait... ' ) )
self . activityTimer = eTimer ( )
self . activityTimer . timeout . get ( ) . append ( self . updateInfo )
self . onShow . append ( self . startShow )
def startShow ( self ) :
self . activityTimer . start ( 10 )
def updateInfo ( self ) :
self . activityTimer . stop ( )
f2 = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' r ' )
mypath2 = f2 . readline ( ) . strip ( )
f2 . close ( )
if fileExists ( ' /.multinfo ' ) :
self . myClose ( _ ( ' Sorry, NeoBoot can installed or upgraded only when booted from Flash. ' ) )
self . close ( )
elif mypath2 != ' Flash ' :
self . myClose ( _ ( ' Sorry, NeoBoot can installed or upgraded only when booted from Flash. ' ) )
self . close ( )
else :
for fn in listdir ( ' %s ImageBoot ' % getNeoLocation ( ) ) :
dirfile = ' %s ImageBoot/ ' % getNeoLocation ( ) + fn
if isdir ( dirfile ) :
2020-01-16 20:31:58 +02:00
target = dirfile + ' ' + LinkNeoBoot + ' '
2020-01-07 11:10:32 +02:00
cmd = ' rm -r ' + target + ' > /dev/null 2>&1 '
system ( cmd )
2020-01-16 20:31:58 +02:00
cmd = ' cp -r ' + LinkNeoBoot + ' ' + target
2020-01-12 23:23:04 +02:00
system ( cmd )
2020-01-07 11:10:32 +02:00
out = open ( ' %s ImageBoot/.version ' % getNeoLocation ( ) , ' w ' )
out . write ( PLUGINVERSION )
out . close ( )
self . myClose ( _ ( ' NeoBoot successfully updated. You can restart the plugin now. \n Have fun !!! ' ) )
def myClose ( self , message ) :
ImageChoose = self . session . open ( NeoBootImageChoose )
self . session . open ( MessageBox , message , MessageBox . TYPE_INFO )
self . close ( ImageChoose )
class MyHelp ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center,center " size= " 1920,1080 " borderWidth= " 0 " borderColor= " transpBlack " flags= " wfNoBorder " ><eLabel text= " INFORMACJE 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> """
2020-01-07 11:10:32 +02:00
else :
2020-01-17 12:44:26 +02:00
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> """
2020-01-18 20:27:11 +02:00
2020-01-07 11:10:32 +02:00
__module__ = __name__
2020-01-12 23:23:04 +02:00
def __init__ ( self , session ) :
2020-01-07 11:10:32 +02:00
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 ( )
2020-01-12 23:23:04 +02:00
def updatetext ( self ) :
2020-01-07 11:10:32 +02:00
message = _ ( ' NeoBoot Ver. ' + PLUGINVERSION + ' Enigma2 \n \n During the entire installation process does not restart the receiver !!! \n \n ' )
message + = _ ( ' NeoBoot Ver. updates ' + UPDATEVERSION + ' \n \n ' )
message = _ ( ' For proper operation NeoBota type device is required USB stick or HDD, formatted on your system files Linux ext3 or ext4.. \n \n ' )
message + = _ ( ' 1. If you do not have a media formatted with the ext3 or ext4 is open to the Device Manager <Initialize>, select the drive and format it. \n \n ' )
message + = _ ( ' 2. Go to the device manager and install correctly hdd and usb ... \n \n ' )
message + = _ ( ' 3. Install NeoBota on the selected device. \n \n ' )
message + = _ ( ' 4. Install the needed packages... \n \n ' )
message + = _ ( ' 5. For proper installation XenoBota receiver must be connected to the Internet. \n \n ' )
message + = _ ( ' 6. In the event of a problem with the installation cancel and inform the author of the plug of a problem. \n \n ' )
message + = _ ( ' Have fun !!! ' )
self [ ' lab1 ' ] . show ( )
self [ ' lab1 ' ] . setText ( message )
class Opis ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center,center " size= " 1920,1080 " flags= " wfNoBorder " ><ePixmap position= " 0,0 " zPosition= " -1 " size= " 1920,1080 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/frame_base-fs8.png " /><widget source= " session.VideoPicture " render= " Pig " position= " 1253,134 " size= " 556,313 " zPosition= " 3 " backgroundColor= " #ff000000 " /><eLabel text= " INFORMACJE NeoBoot " position= " 340,50 " size= " 500,55 " font= " Regular;40 " halign= " left " foregroundColor= " #58bcff " backgroundColor= " black " transparent= " 1 " /><widget name= " key_red " position= " 30,950 " size= " 430,50 " zPosition= " 1 " font= " Regular; 30 " halign= " center " backgroundColor= " red " transparent= " 1 " foregroundColor= " white " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/scroll.png " position= " 1144,160 " size= " 26,685 " zPosition= " 5 " alphatest= " blend " /><ePixmap position= " 1350,750 " zPosition= " 1 " size= " 400,241 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/matrixhd.png " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/red25.png " position= " 100,1000 " size= " 230,36 " alphatest= " blend " /><widget name= " lab1 " position= " 100,160 " size= " 1070,680 " font= " Regular; 30 " backgroundColor= " black " transparent= " 1 " /></screen> """
2020-01-07 11:10:32 +02:00
else :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center,center " size= " 1280,720 " title= " NeoBoot - Informacje " ><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1frame_base-fs8.png " position= " 0,0 " zPosition= " -1 " size= " 1280,720 " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/red25.png " position= " 50,680 " size= " 230,36 " alphatest= " blend " /><widget name= " key_red " position= " 35,630 " zPosition= " 1 " size= " 270,40 " font= " Regular;20 " halign= " center " valign= " center " backgroundColor= " red " transparent= " 1 " /><widget name= " lab1 " position= " 50,100 " size= " 730,450 " font= " Regular;20 " backgroundColor= " black " /><widget source= " session.VideoPicture " render= " Pig " position= " 836,89 " size= " 370,208 " zPosition= " 3 " backgroundColor= " #ff000000 " /><widget source= " Title " render= " Label " position= " 200,25 " size= " 800,30 " font= " Regular;28 " halign= " left " foregroundColor= " #58bcff " backgroundColor= " transpBlack " transparent= " 1 " /><ePixmap position= " 920,520 " zPosition= " 1 " size= " 228,130 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1matrix.png " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/scroll.png " position= " 754,100 " size= " 26,455 " zPosition= " 5 " alphatest= " blend " backgroundColor= " black " transparent= " 1 " /></screen> """
2020-01-07 11:10:32 +02:00
__module__ = __name__
def __init__ ( self , session ) :
Screen . __init__ ( self , session )
self [ ' key_red ' ] = Label ( _ ( ' Remove NeoBoot of STB ' ) )
self [ ' lab1 ' ] = ScrollLabel ( ' ' )
self [ ' actions ' ] = ActionMap ( [ ' WizardActions ' , ' ColorActions ' , ' DirectionActions ' ] , { ' back ' : self . close ,
' red ' : self . delete ,
' 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 = _ ( ' NeoBoot Ver. ' + PLUGINVERSION + ' \n \n ' )
message + = _ ( ' NeoBoot Ver. updates ' + UPDATEVERSION + ' \n \n ' )
message + = _ ( ' 1. Requirements: For proper operation of the device NeoBota are required USB stick or HDD. \n \n ' )
message + = _ ( ' 2. NeoBot is fully automated \n \n ' )
message + = _ ( ' 3. To install a new image in MultiBocie should be sent by FTP software file compressed in ZIP or NIF to the folder: \n %s ImagesUpload and remote control plugin NeoBoot use the green button <Installation> \n \n ' )
message + = _ ( ' 4. For proper installation and operation of additional image multiboot, use only the image intended for your receiver. !!! \n \n ' )
message + = _ ( ' 5. By installing the multiboot images of a different type than for your model STB DOING THIS AT YOUR OWN RISK !!! \n \n ' )
message + = _ ( ' 6. The installed to multiboot images, it is not indicated update to a newer version. \n \n ' )
message + = _ ( ' The authors plug NeoBot not liable for damage a receiver, NeoBoota incorrect use or installation of unauthorized additions or images.!!! \n \n ' )
message + = _ ( ' Have fun !!! ' )
message + = _ ( ' \n Completely uninstall NeoBota: \n If you think NeoBot not you need it, you can uninstall it. \n To uninstall now press the red button on the remote control. \n \n ' )
self [ ' lab1 ' ] . show ( )
self [ ' lab1 ' ] . setText ( message )
def delete ( self ) :
message = _ ( ' Are you sure you want to completely remove NeoBoota of your image? \n \n If you choose so all directories NeoBoota will be removed. \n A restore the original image settings Flash. ' )
ybox = self . session . openWithCallback ( self . mbdelete , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Removed successfully. ' ) )
def mbdelete ( self , answer ) :
2020-01-11 19:25:48 +02:00
if answer is True :
if fileExists ( ' /etc/fstab.org ' ) :
system ( ' rm -r /etc/fstab; mv /etc/fstab.org /etc/fstab ' )
if fileExists ( ' /etc/init.d/volatile-media.sh.org ' ) :
system ( ' mv /etc/init.d/volatile-media.sh.org /etc/init.d/volatile-media.sh; rm -r /etc/init.d/volatile-media.sh.org; chmod 755 /etc/init.d/volatile-media.sh ' )
if os . path . isfile ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) ) :
os . system ( ' rm -f /etc/neoimage; rm -f /etc/imageboot; rm -f %s ImageBoot/.neonextboot; rm -f %s ImageBoot/.version; rm -f %s ImageBoot/.Flash; ' % ( getNeoLocation ( ) , getNeoLocation ( ) , getNeoLocation ( ) ) )
if os . path . isfile ( ' %s ImagesUpload/.kernel ' % getNeoLocation ( ) ) :
os . system ( ' rm -r %s ImagesUpload/.kernel ' % getNeoLocation ( ) )
2020-01-07 11:10:32 +02:00
cmd = " echo -e ' \n \n %s ' " % _ ( ' Recovering setting.... \n ' )
2020-01-16 20:31:58 +02:00
cmd1 = ' rm -R ' + LinkNeoBoot + ' '
2020-01-11 19:25:48 +02:00
cmd2 = ' rm -R /sbin/neoinit* '
2020-01-07 11:10:32 +02:00
cmd3 = ' ln -sfn /sbin/init.sysvinit /sbin/init '
2020-01-11 19:25:48 +02:00
cmd4 = ' opkg install --force-maintainer --force-reinstall --force-overwrite --force-downgrade volatile-media; sleep 10; reboot -f '
2020-01-07 11:10:32 +02:00
self . session . open ( Console , _ ( ' NeoBot was removed !!! \n The changes will be visible only after complete restart of the receiver. ' ) , [ cmd ,
cmd1 ,
cmd2 ,
cmd3 ,
cmd4 , ] )
self . close ( )
class NeoBootInstallation ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " 410,138 " size= " 1200,850 " title= " NeoBoot " ><widget name= " label3 " position= " 10,632 " size= " 1178,114 " zPosition= " 1 " halign= " center " font= " Regular;35 " backgroundColor= " black " transparent= " 1 " foregroundColor= " blue " /><ePixmap position= " 643,282 " zPosition= " -2 " size= " 531,331 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/matrix.png " /><eLabel position= " 15,76 " size= " 1177,2 " backgroundColor= " blue " foregroundColor= " blue " name= " linia " /><eLabel position= " 10,622 " size= " 1168,3 " backgroundColor= " blue " foregroundColor= " blue " name= " linia " /><eLabel position= " 14,752 " size= " 1168,3 " backgroundColor= " blue " foregroundColor= " blue " name= " linia " /><eLabel position= " 15,276 " size= " 1183,2 " backgroundColor= " blue " foregroundColor= " blue " name= " linia " /><widget name= " label1 " position= " 14,4 " size= " 1180,62 " zPosition= " 1 " halign= " center " font= " Regular;35 " backgroundColor= " black " transparent= " 1 " foregroundColor= " red " /><widget name= " label2 " position= " 15,82 " size= " 1178,190 " zPosition= " 1 " halign= " center " font= " Regular;35 " backgroundColor= " black " transparent= " 1 " foregroundColor= " blue " /><widget name= " config " position= " 15,285 " size= " 641,329 " font= " Regular; 32 " itemHeight= " 42 " selectionPixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/selektor.png " scrollbarMode= " showOnDemand " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/redcor.png " position= " 48,812 " size= " 140,28 " alphatest= " on " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/greencor.png " position= " 311,816 " size= " 185,28 " alphatest= " on " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/yellowcor.png " position= " 614,815 " size= " 150,28 " alphatest= " on " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/bluecor.png " position= " 958,817 " size= " 140,26 " alphatest= " on " /><widget name= " key_red " position= " 19,760 " zPosition= " 1 " size= " 221,47 " font= " Regular; 35 " halign= " center " valign= " center " backgroundColor= " red " transparent= " 1 " foregroundColor= " red " /><widget name= " key_green " position= " 289,761 " zPosition= " 1 " size= " 227,47 " font= " Regular; 35 " halign= " center " valign= " center " backgroundColor= " green " transparent= " 1 " foregroundColor= " green " /><widget name= " key_yellow " position= " 583,760 " zPosition= " 1 " size= " 224,51 " font= " Regular; 35 " halign= " center " valign= " center " backgroundColor= " yellow " transparent= " 1 " foregroundColor= " yellow " /><widget name= " key_blue " position= " 856,761 " zPosition= " 1 " size= " 326,52 " font= " Regular; 35 " halign= " center " valign= " center " backgroundColor= " blue " transparent= " 1 " foregroundColor= " blue " /></screen> """
2020-01-07 11:10:32 +02:00
else :
2020-01-17 12:44:26 +02:00
skin = """ <screen position= " center, center " size= " 835, 500 " title= " NeoBoot " ><ePixmap position= " 0,0 " zPosition= " -1 " size= " 835,500 " pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/frame835x500.png " /><widget name= " label1 " position= " 10,15 " size= " 840,30 " zPosition= " 1 " halign= " center " font= " Regular;25 " foregroundColor= " red " backgroundColor= " black " transparent= " 1 " /> \n <widget name= " label2 " position= " 7,100 " size= " 840,296 " zPosition= " 1 " halign= " center " font= " Regular;20 " backgroundColor= " black " foregroundColor= " #58ccff " transparent= " 1 " /><widget name= " config " position= " 220,200 " size= " 440,207 " backgroundColor= " black " selectionPixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/selektor1.png " scrollbarMode= " showOnDemand " /><ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/redcor.png " position= " 48,406 " size= " 140,40 " alphatest= " on " /> \n <ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/greencor.png " position= " 246,406 " size= " 140,40 " alphatest= " on " /> \n <ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/yellowcor.png " position= " 474,406 " size= " 150,40 " alphatest= " on " /> \n <ePixmap pixmap= " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/bluecor.png " position= " 675,406 " size= " 140,40 " alphatest= " on " /> \n <widget name= " key_red " position= " 48,406 " zPosition= " 1 " size= " 140,40 " font= " Regular;20 " halign= " center " valign= " center " backgroundColor= " red " transparent= " 1 " /> \n <widget name= " key_green " position= " 248,406 " zPosition= " 1 " size= " 140,40 " font= " Regular;20 " halign= " center " valign= " center " backgroundColor= " green " transparent= " 1 " /> \n <widget name= " key_yellow " position= " 474,406 " zPosition= " 1 " size= " 140,40 " font= " Regular;20 " halign= " center " valign= " center " backgroundColor= " yellow " transparent= " 1 " /> \n <widget name= " key_blue " position= " 672,415 " zPosition= " 1 " size= " 145,45 " font= " Regular;20 " halign= " center " valign= " center " backgroundColor= " blue " transparent= " 1 " /> \n <widget name= " label3 " position= " 20,339 " size= " 816,61 " zPosition= " 1 " halign= " center " font= " Regular;24 " backgroundColor= " black " transparent= " 1 " foregroundColor= " #58ccff " /></screen> """
2020-01-07 11:10:32 +02:00
def __init__ ( self , session ) :
Screen . __init__ ( self , session )
self . list = [ ]
self [ ' config ' ] = MenuList ( self . list )
self [ ' key_red ' ] = Label ( _ ( ' Instruction ' ) )
self [ ' key_green ' ] = Label ( _ ( ' Installation ' ) )
self [ ' key_yellow ' ] = Label ( _ ( ' Info disc ' ) )
self [ ' key_blue ' ] = Label ( _ ( ' Device Manager ' ) )
self [ ' label1 ' ] = Label ( _ ( ' Welcome to NeoBoot %s Plugin installation. ' ) % PLUGINVERSION )
self [ ' label3 ' ] = Label ( _ ( ' WARNING !!! First, mount the device. ' ) )
self [ ' label2 ' ] = Label ( _ ( ' Here is the list of mounted devices in Your STB \n Please choose a device where You would like to install NeoBoot ' ) )
self [ ' actions ' ] = ActionMap ( [ ' WizardActions ' , ' ColorActions ' , ' DirectionActions ' ] , { ' red ' : self . Instrukcja ,
' green ' : self . install ,
' yellow ' : self . datadrive ,
' blue ' : self . devices ,
' back ' : self . close } )
self . updateList ( )
def Instrukcja ( self ) :
self . session . open ( MyHelp )
def datadrive ( self ) :
try :
message = " echo -e ' \n "
message + = _ ( ' NeoBot checks the connected media. \n WAIT ... \n \n DISCS: ' )
message + = " ' "
os . system ( " ' mount | sed ' /sd/!d ' | cut -d " " -f1,2,3,4,5 ' " )
cmd = ' /sbin/blkid '
system ( cmd )
print ' [MULTI-BOOT]: ' , cmd
self . session . open ( Console , _ ( ' NeoBot - Available media: ' ) , [ message , cmd ] )
2020-01-16 20:31:58 +02:00
if fileExists ( ' ' + LinkNeoBoot + ' /files/mountpoint.sh ' ) :
2020-01-10 13:50:40 +02:00
if not fileExists ( ' %s ImageBoot/.version ' % getNeoLocation ( ) ) :
2020-01-16 20:31:58 +02:00
os . system ( ' mkdir -p %s ; sync; chmod 0755 ' + LinkNeoBoot + ' /files/mountpoint.sh; ' + LinkNeoBoot + ' /files/mountpoint.sh ' % getNeoLocation ( ) )
2020-01-10 13:50:40 +02:00
else :
pass
2020-01-07 11:10:32 +02:00
except :
pass
def updateList ( self ) :
if fileExists ( ' /proc/mounts ' ) :
with open ( ' /proc/mounts ' , ' r ' ) as f :
for line in f . readlines ( ) :
2020-01-13 20:18:21 +02:00
if line . startswith ( ' /dev/sd ' ) and line . find ( ' /media/neoboot ' ) == - 1 and ( line . find ( ' ext4 ' ) != - 1 or line . find ( ' ext3 ' ) != - 1 or line . find ( ' ext2 ' ) != - 1 ) :
2020-01-07 11:10:32 +02:00
try : self . list . append ( line . split ( ' ' ) [ 1 ] + ' / ' )
except Exception : pass # nie powinno sie zdarzyc, ale w razie czego
if len ( self . list ) == 0 :
self [ ' label2 ' ] . setText ( _ ( ' Sorry it seems that there are not Linux formatted devices mounted on your STB. To install NeoBoot you need a Linux formatted part1 device. Click on the blue button to open Devices Panel ' ) )
self [ ' config ' ] . setList ( self . list )
2020-01-13 20:18:21 +02:00
2020-01-07 11:10:32 +02:00
def checkReadWriteDir ( self , configele ) :
from Plugins . Extensions . NeoBoot . files import Harddisk
import os . path
import Plugins . Extensions . NeoBoot . files . Harddisk
supported_filesystems = frozenset ( ( ' ext4 ' , ' ext3 ' , ' ext2 ' , ' ntfs ' , ' nfs ' , ) )
candidates = [ ]
mounts = Harddisk . getProcMounts ( )
for partition in Harddisk . harddiskmanager . getMountedPartitions ( False , mounts ) :
if partition . filesystem ( mounts ) in supported_filesystems :
candidates . append ( ( partition . description , partition . mountpoint ) )
if candidates :
locations = [ ]
for validdevice in candidates :
locations . append ( validdevice [ 1 ] )
if Harddisk . findMountPoint ( os . path . realpath ( configele ) ) + ' / ' in locations or Harddisk . findMountPoint ( os . path . realpath ( configele ) ) in locations :
if fileExists ( configele , ' w ' ) :
return True
else :
check = False
if check == False :
message = _ ( ' The directory %s is not a EXT2, EXT3, EXT4 or NFS partition. \n Make sure you select a valid partition type. ' )
message + = _ ( ' Do you want install NeoBoot ? \n ' )
ybox = self . session . openWithCallback ( self . install , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Install Manager ' ) )
else :
dir = configele
self . session . open ( MessageBox , _ ( ' The directory %s is not writable. \n Make sure you select a writable directory instead. ' ) % dir , type = MessageBox . TYPE_ERROR )
return False
else :
check = False
if check == False :
message = _ ( ' The directory %s is not a EXT2, EXT3, EXT4 or NFS partition. \n Make sure you select a valid partition type. ' )
message + = _ ( ' Do you want install NeoBoot ? \n ' )
ybox = self . session . openWithCallback ( self . install , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Install Manager ' ) )
else :
dir = configele
self . session . open ( MessageBox , _ ( ' The directory %s is not a EXT2, EXT3, EXT4 or NFS partition. \n Make sure you select a valid partition type. ' ) % dir , type = MessageBox . TYPE_ERROR )
return False
else :
check = False
if check == False :
message = _ ( ' The directory %s is not a EXT2, EXT3, EXT4 or NFS partition. \n Make sure you select a valid partition type. ' )
message + = _ ( ' Do you want install NeoBoot ? \n ' )
ybox = self . session . openWithCallback ( self . install , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Install Manager ' ) )
else :
dir = configele
self . session . open ( MessageBox , _ ( ' The directory %s is not a EXT2, EXT3, EXT4 or NFS partition. \n Make sure you select a valid partition type. ' ) % dir , type = MessageBox . TYPE_ERROR )
return False
def devices ( self ) :
check = False
if check == False :
message = _ ( ' After selecting OK start Mounting Manager, option Mount - green \n ' )
message + = _ ( ' Do you want to run the manager to mount the drives correctly ? \n ' )
ybox = self . session . openWithCallback ( self . device2 , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Device Manager ' ) )
def device2 ( self , yesno ) :
if yesno :
if fileExists ( ' /usr/lib/enigma2/python/Plugins/SystemPlugins/DeviceManager*/devicemanager.cfg ' ) :
system ( ' rm -f /usr/lib/enigma2/python/Plugins/SystemPlugins/DeviceManager*/devicemanager.cfg; touch /usr/lib/enigma2/python/Plugins/SystemPlugins/DeviceManager*/devicemanager.cfg ' )
if fileExists ( ' /etc/devicemanager.cfg ' ) :
system ( ' rm -f /etc/devicemanager.cfg; touch /etc/devicemanager.cfg ' )
from Plugins . Extensions . NeoBoot . files . devices import ManagerDevice
self . session . open ( ManagerDevice )
else :
self . close ( )
def install ( self ) :
2020-01-12 23:23:04 +02:00
if checkInternet ( ) :
2020-01-07 11:10:32 +02:00
#if getFSTAB2() != 'OKinstall':
#self.session.open(MessageBox, _('NeoBot - First use the Device Manager and mount the drives correctly !!!'), MessageBox.TYPE_INFO, 7)
#self.close()
#else:
self . first_installation ( )
2020-01-12 23:23:04 +02:00
else :
session . open ( MessageBox , " Geen internet - Brak internetu " , MessageBox . TYPE_INFO )
2020-01-07 11:10:32 +02:00
def first_installation ( self ) :
check = False
if fileExists ( ' /proc/mounts ' ) :
with open ( ' /proc/mounts ' , ' r ' ) as f :
for line in f . readlines ( ) :
2020-01-11 19:25:48 +02:00
if line . startswith ( ' /dev/sd ' ) and line . find ( ' /media/neoboot ' ) == - 1 and ( line . find ( ' ext4 ' ) != - 1 or line . find ( ' ext3 ' ) != - 1 or line . find ( ' ext2 ' ) != - 1 ) :
2020-01-07 11:10:32 +02:00
check = True
break
if check == False :
self . session . open ( MessageBox , _ ( ' Sorry, there is not any connected devices in your STB. \n Please connect HDD or USB to install NeoBoot! ' ) , MessageBox . TYPE_INFO )
else :
self . mysel = self [ ' config ' ] . getCurrent ( )
if self . checkReadWriteDir ( self . mysel ) :
message = _ ( ' Do You really want to install NeoBoot in: \n ' ) + self . mysel + ' ? '
ybox = self . session . openWithCallback ( self . install2 , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Install Confirmation ' ) )
else :
self . close ( )
2020-01-11 19:25:48 +02:00
################# Next Install #################
2020-01-07 11:10:32 +02:00
def install2 ( self , yesno ) :
print ' yesno: ' , yesno
if yesno :
self . first_installationNeoBoot ( )
else :
self . myclose2 ( _ ( ' NeoBoot has not been installed ! :( ' ) )
def first_installationNeoBoot ( self ) :
self . mysel = self [ ' config ' ] . getCurrent ( )
2020-01-16 20:31:58 +02:00
system ( ' cd ' + LinkNeoBoot + ' /; chmod 0755 ./bin/neoini*; chmod 0755 ./ex_init.py; chmod 0755 ./target/*.sh; chmod 0755 ./files/NeoBoot.sh; chmod 0755 ./files/S50fat.sh; cp -rf ' + LinkNeoBoot + ' /bin/neoini* /sbin cd; ' )
2020-01-07 11:10:32 +02:00
cmd1 = ' mkdir ' + self . mysel + ' ImageBoot;mkdir ' + self . mysel + ' ImagesUpload '
system ( cmd1 )
cmd2 = ' mkdir ' + self . mysel + ' ImageBoot;mkdir ' + self . mysel + ' ImagesUpload/.kernel '
2020-01-12 23:23:04 +02:00
system ( cmd2 )
2020-01-16 20:31:58 +02:00
if os . path . isfile ( ' ' + LinkNeoBoot + ' /.location ' ) :
2020-01-19 22:53:45 +02:00
os . system ( ' rm -f ' + LinkNeoBoot + ' /.location ' )
2020-01-16 20:31:58 +02:00
system ( ' blkid -c /dev/null /dev/sd* > ' + LinkNeoBoot + ' /bin/reading_blkid; chmod 755 ' + LinkNeoBoot + ' /bin/reading_blkid ' )
2020-01-19 22:53:45 +02:00
out = open ( ' /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/.location ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( self . mysel )
2020-01-19 22:53:45 +02:00
out . close ( )
2020-01-07 11:10:32 +02:00
if os . path . isfile ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) ) :
os . system ( ' rm -f /etc/neoimage; rm -f /etc/imageboot; rm -f %s ImageBoot/.neonextboot; rm -f %s ImageBoot/.version; rm -f %s ImageBoot/.Flash; ' % ( getNeoLocation ( ) , getNeoLocation ( ) , getNeoLocation ( ) ) )
if os . path . isfile ( ' %s ImagesUpload/.kernel/zImage*.ipk or %s ImagesUpload/.kernel/zImage*.bin ' % ( getNeoLocation ( ) , getNeoLocation ( ) ) ) :
2020-01-12 23:23:04 +02:00
os . system ( ' rm -f %s ImagesUpload/.kernel/zImage*.ipk; rm -f %s ImagesUpload/.kernel/zImage*.bin ' % ( getNeoLocation ( ) , getNeoLocation ( ) ) )
2020-01-07 11:10:32 +02:00
if fileExists ( ' /etc/issue.net ' ) :
try :
lines = open ( ' /etc/hostname ' , ' r ' ) . readlines ( )
imagename = lines [ 0 ] [ : - 1 ]
image = imagename
open ( ' %s ImageBoot/.Flash ' % getNeoLocation ( ) , ' w ' ) . write ( image )
except :
False
2020-01-12 23:23:04 +02:00
2020-01-07 11:10:32 +02:00
out1 = open ( ' %s ImageBoot/.version ' % getNeoLocation ( ) , ' w ' )
out1 . write ( PLUGINVERSION )
out1 . close ( )
out2 = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
out2 . write ( ' Flash ' )
out2 . close ( )
2020-01-16 20:31:58 +02:00
out3 = open ( ' ' + LinkNeoBoot + ' /.neo_info ' , ' w ' )
2020-01-07 11:10:32 +02:00
out3 . write ( ' Kernel \n ' )
out3 . write ( ' Kernel-Version: ' + about . getKernelVersionString ( ) + ' \n ' )
out3 . write ( ' NeoBoot \n ' )
out3 . write ( ' NeoBoot-Version: ' + PLUGINVERSION + ' \n ' )
out3 . close ( )
2020-01-11 19:25:48 +02:00
if os . system ( ' opkg update; opkg list-installed | grep python-subprocess ' ) != 0 :
2020-01-07 11:10:32 +02:00
os . system ( ' opkg install python-subprocess ' )
if os . system ( ' opkg list-installed | grep python-argparse ' ) != 0 :
os . system ( ' opkg install python-argparse ' )
if os . system ( ' opkg list-installed | grep curl ' ) != 0 :
os . system ( ' opkg install curl ' )
if os . system ( ' opkg list-installed | grep packagegroup-base-nfs ' ) != 0 :
os . system ( ' opkg install packagegroup-base-nfs ' )
if os . system ( ' opkg list-installed | grep ofgwrite ' ) != 0 :
os . system ( ' opkg install ofgwrite ' )
if os . system ( ' opkg list-installed | grep bzip2 ' ) != 0 :
os . system ( ' opkg install bzip2 ' )
if os . system ( ' opkg list-installed | grep mtd-utils ' ) != 0 :
os . system ( ' opkg install mtd-utils ' )
if os . system ( ' opkg list-installed | grep mtd-utils-ubifs ' ) != 0 :
os . system ( ' opkg install mtd-utils-ubifs ' )
if os . system ( ' opkg list-installed | grep mtd-utils-jffs2 ' ) != 0 :
os . system ( ' opkg install mtd-utils-jffs2 ' )
if os . system ( ' opkg list-installed | grep kernel-module-nandsim ' ) != 0 :
os . system ( ' opkg install kernel-module-nandsim ' )
if os . system ( ' opkg list-installed | grep lzo ' ) != 0 :
os . system ( ' opkg install lzo ' )
if os . system ( ' opkg list-installed | grep python-setuptools ' ) != 0 :
os . system ( ' opkg install python-setuptools ' )
if os . system ( ' opkg list-installed | grep util-linux-sfdisk ' ) != 0 :
os . system ( ' opkg install util-linux-sfdisk ' )
2020-01-12 23:23:04 +02:00
2020-01-07 11:10:32 +02:00
# ARM - OctagonSF4008 - DM900 - Zgemma h7S - Octagon sf 8008 - AX HD60 4K #gbquad4k arm , #osmio4k arm, #Zgemma h9 arm, #Zgemma h7S arm , #Octagon SF4008
2020-01-11 09:09:42 +02:00
if getBoxHostName ( ) == ' ax51 ' or getBoxHostName ( ) == ' dm920 ' or getBoxHostName ( ) == ' et1x000 ' or getBoxHostName ( ) == ' ustym4kpro ' or getTunerModel ( ) == ' ustym4kpro ' or getCPUSoC ( ) == ' bcm7251 ' or getBoxHostName ( ) == ' sf4008 ' or getCPUSoC ( ) == ' bcm7251s ' or getBoxHostName ( ) == ' h7 ' or getCPUSoC ( ) == ' bcm7252s ' or getBoxHostName ( ) == ' gbquad4k ' or getBoxHostName == ' osmio4k ' or getBoxHostName ( ) == ' zgemmah9s ' or getBoxHostName ( ) == ' ax60 ' or getBoxHostName ( ) == ' sf8008 ' or getCPUSoC ( ) == ' bcm7251 ' or getCPUSoC ( ) == ' BCM97252SSFF ' or getBoxHostName ( ) == ' dm900 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cp -f ' + LinkNeoBoot + ' /bin/neoinitarm /sbin/neoinitarm; chmod 0755 /sbin/neoinitarm; ln -sfn /sbin/neoinitarm /sbin/init; mv ' + LinkNeoBoot + ' /target/arm_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
#VUPLUS ARM
elif getCPUtype ( ) == ' ARMv7 ' and getBoxHostName ( ) != ' ustym4kpro ' :
if getCPUSoC ( ) == ' 7278 ' or getBoxHostName ( ) == ' vuduo4k ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' / ' )
# os.system('cp -Rf ' + LinkNeoBoot + '/bin/neoinitarm /sbin/neoinitarm; cp -Rf ' + LinkNeoBoot + '/bin/neoinitarmvu /sbin/neoinitarmvu; mv ' + LinkNeoBoot + '/target/duo4k_run.py ' + LinkNeoBoot + '/run.py; cd')
os . system ( ' cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarm /sbin/neoinitarm; cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarmvuDuo4k /sbin/neoinitarmvu; mv ' + LinkNeoBoot + ' /target/duo4k_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
os . system ( ' chmod 755 /sbin/neoinitarm; chmod 755 /sbin/neoinitarmvu ' )
os . system ( ' dd if=/dev/mmcblk0p6 of= %s ImagesUpload/.kernel/flash-kernel- %s .bin ' % ( getNeoLocation ( ) , getBoxHostName ( ) ) )
2020-01-16 20:31:58 +02:00
os . system ( ' mv ' + LinkNeoBoot + ' /target/vuDuo4Kmmcblk0p6.sh ' + LinkNeoBoot + ' /files/kernel.sh; cd ' )
2020-01-07 11:10:32 +02:00
elif getCPUSoC ( ) == ' 72604 ' or getBoxHostName ( ) == ' vuzero4k ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' / ' )
os . system ( ' cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarm /sbin/neoinitarm; cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarmvu /sbin/neoinitarmvu; cd ' )
2020-01-07 11:10:32 +02:00
os . system ( ' chmod 755 /sbin/neoinitarm; chmod 755 /sbin/neoinitarmvu ' )
os . system ( ' dd if=/dev/mmcblk0p4 of= %s ImagesUpload/.kernel/flash-kernel- %s .bin ' % ( getNeoLocation ( ) , getBoxHostName ( ) ) )
2020-01-16 20:31:58 +02:00
os . system ( ' mv ' + LinkNeoBoot + ' /target/vuUno4Kmmcblk0p6.sh ' + LinkNeoBoot + ' /files/kernel.sh; mv ' + LinkNeoBoot + ' /target/zero4k_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
#Zgemma h7S arm
elif getCPUSoC ( ) == ' bcm7251s ' or getBoxHostName ( ) == ' h7 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' / ' )
os . system ( ' cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarm /sbin/neoinitarm; cd ' )
2020-01-07 11:10:32 +02:00
os . system ( ' chmod 755 /sbin/neoinitarm; chmod 755 /sbin/neoinitarm ' )
2020-01-16 20:31:58 +02:00
os . system ( ' python ' + LinkNeoBoot + ' /target/findkerneldevice.py; dd if=/dev/kernel of= %s ImagesUpload/.kernel/flash-kernel- %s .bin ' % ( getNeoLocation ( ) , getBoxHostName ( ) ) )
os . system ( ' mv ' + LinkNeoBoot + ' /target/h7s_kernel.sh ' + LinkNeoBoot + ' /files/kernel.sh;mv ' + LinkNeoBoot + ' /target/h7s_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
elif getCPUSoC ( ) or getBoxHostName ( ) == [ ' 7444s ' ,
' 7252s ' ,
' 7376 ' ,
' vuultimo4k ' ,
' vuuno4k ' ,
' vusolo4k ' ,
' vuuno4kse ' ] :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' / ' )
os . system ( ' cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarm /sbin/neoinitarm; cp -Rf ' + LinkNeoBoot + ' /bin/neoinitarmvu /sbin/neoinitarmvu; cd ' )
2020-01-07 11:10:32 +02:00
os . system ( ' chmod 755 /sbin/neoinitarm; chmod 755 /sbin/neoinitarmvu ' )
os . system ( ' dd if=/dev/mmcblk0p1 of= %s ImagesUpload/.kernel/flash-kernel- %s .bin ' % ( getNeoLocation ( ) , getBoxHostName ( ) ) )
2020-01-16 20:31:58 +02:00
os . system ( ' mv ' + LinkNeoBoot + ' /target/vu_mmcblk0p1.sh ' + LinkNeoBoot + ' /files/kernel.sh;mv ' + LinkNeoBoot + ' /target/vu4k_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
# MIPS
elif getCPUtype ( ) == ' MIPS ' :
if getCPUSoC ( ) or getBoxHostName ( ) or getTunerModel ( ) == [ ' 7335 ' ,
' 7413 ' ,
' 7325 ' ,
' 7356 ' ,
' bcm7356 ' ,
' 7429 ' ,
' 7424 ' ,
' 7241 ' ,
' 7405 ' ,
' 7405(with 3D) ' ,
' 7362 ' ,
' bcm7362 ' ,
' BCM7362 ' ,
' bcm7358 ' ,
' bcm7424 ' ,
' bm750 ' ,
2020-01-18 11:23:42 +02:00
' bcm73625 '
2020-01-07 11:10:32 +02:00
' vuduo ' ,
' vusolo ' ,
' vuuno ' ,
' vuultimo ' ,
' vusolo2 ' ,
' vuduo2 ' ,
' vusolose ' ,
' vuzero ' ,
' mbmini ' ,
' mbultra ' ,
' osmini ' ,
' h3 ' ,
' ini-1000sv ' ,
2020-01-18 11:23:42 +02:00
' ini-8000sv '
' formuler4turbo ' ] :
2020-01-07 11:10:32 +02:00
#vuplus stb mtd1
if getBoxHostName ( ) == ' bm750 ' or getBoxHostName ( ) == ' vuduo ' or getBoxHostName ( ) == ' vusolo ' or getBoxHostName ( ) == ' vuuno ' or getBoxHostName ( ) == ' vuultimo ' :
if fileExists ( ' /usr/sbin/nanddump ' ) :
os . system ( ' cd ' + getNeoLocation ( ) + ' ImagesUpload/.kernel/; /usr/sbin/nanddump /dev/mtd1 > vmlinux.gz; mv ./vmlinux.gz ./ ' + getBoxHostName ( ) + ' .vmlinux.gz ' )
elif not fileExists ( ' /usr/sbin/nanddump ' ) :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + getNeoLocation ( ) + ' ImagesUpload/.kernel/; ' + LinkNeoBoot + ' /bin/nanddump_mips /dev/mtd1 > vmlinux.gz; mv ./vmlinux.gz ./ ' + getBoxHostName ( ) + ' .vmlinux.gz ' )
os . system ( ' cd ' + LinkNeoBoot + ' /; rm ./bin/neobm; rm ./bin/fontforneoboot.ttf; rm ./bin/libpngneo; mv ' + LinkNeoBoot + ' /target/vu_dev_mtd1.sh ' + LinkNeoBoot + ' /files/kernel.sh;mv ' + LinkNeoBoot + ' /target/vu_mtd1_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
#vuplus stb mtd2
elif getBoxHostName ( ) == ' vusolo2 ' or getBoxHostName ( ) == ' vuduo2 ' or getBoxHostName ( ) == ' vusolose ' or getBoxHostName ( ) == ' vuzero ' :
if fileExists ( ' /usr/sbin/nanddump ' ) :
os . system ( ' cd ' + getNeoLocation ( ) + ' ImagesUpload/.kernel/; /usr/sbin/nanddump /dev/mtd2 > vmlinux.gz; mv ./vmlinux.gz ./ ' + getBoxHostName ( ) + ' .vmlinux.gz ' )
elif not fileExists ( ' /usr/sbin/nanddump ' ) :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + getNeoLocation ( ) + ' ImagesUpload/.kernel/; ' + LinkNeoBoot + ' /bin/nanddump_mips /dev/mtd2 > vmlinux.gz; mv ./vmlinux.gz ./ ' + getBoxHostName ( ) + ' .vmlinux.gz ' )
os . system ( ' cd ' + LinkNeoBoot + ' /; rm ./bin/neobm; rm ./bin/fontforneoboot.ttf; rm ./bin/libpngneo; mv ' + LinkNeoBoot + ' /target/vu_dev_mtd2.sh ' + LinkNeoBoot + ' /files/kernel.sh;mv ' + LinkNeoBoot + ' /target/vu_mtd2_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
# mbultra
elif getCPUSoC ( ) == ' bcm7424 ' or getBoxHostName == ' mbultra ' or getTunerModel ( ) == ' ini-8000sv ' :
os . system ( ' cd; cd /media/neoboot/ImagesUpload/.kernel; /usr/sbin/nanddump /dev/mtd2 -o > vmlinux.gz; mv /home/root/vmlinux.gz /media/neoboot/ImagesUpload/.kernel/ ' )
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; rm ./bin/neobm; rm ./bin/fontforneoboot.ttf; rm ./bin/libpngneo; mv ' + LinkNeoBoot + ' /target/vu_dev_mtd2.sh ' + LinkNeoBoot + ' /files/kernel.sh; mv ' + LinkNeoBoot + ' /target/vu_mtd2_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-07 11:10:32 +02:00
2020-01-18 20:27:11 +02:00
#inne stb
2020-01-18 11:23:42 +02:00
elif getCPUSoC ( ) == ' bcm73625 ' or getCPUSoC ( ) == ' bcm7358 ' or getCPUSoC ( ) == ' bcm7362 ' or getCPUSoC ( ) == ' BCM7362 ' or getCPUSoC ( ) == ' bcm7356 ' or getCPUSoC ( ) == ' bcm7241 ' or getCPUSoC ( ) == ' bcm7362 ' or getBoxHostName ( ) == ' formuler4turbo ' or getBoxHostName ( ) == ' mbmini ' or getBoxHostName ( ) == ' osmini ' or getTunerModel ( ) == ' ini-1000sv ' or getTunerModel ( ) == ' h3 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; mv ./bin/fontforneoboot.ttf /usr/share/fonts; mv ./bin/libpngneo /usr/lib; cp -f ./bin/neoinitmips /sbin/neoinitmips; cp -f ./bin/neoinitmipsvu /sbin/neoinitmipsvu; chmod 0755 /sbin/neoinit*; chmod 0755 ./bin/neobm; chmod 0755 /usr/lib/libpngneo; cd; chmod 0755 /sbin/neoinitmips; ln -sf /media/neoboot/ImageBoot/.neonextboot /etc/neoimage; mv ' + LinkNeoBoot + ' /target/mips_run.py ' + LinkNeoBoot + ' /run.py; cd ' )
2020-01-18 20:27:11 +02:00
2020-01-16 20:31:58 +02:00
os . system ( ' cp -Rf ' + LinkNeoBoot + ' /bin/neoinitmips /sbin/neoinitmips; cp -Rf ' + LinkNeoBoot + ' /bin/neoinitmipsvu /sbin/neoinitmipsvu ' )
os . system ( ' chmod 755 ' + LinkNeoBoot + ' /bin/nfidump; chmod 0755 ' + LinkNeoBoot + ' /bin/nanddump_mips; rm -r ' + LinkNeoBoot + ' /bin/neoinitar*; cd ' )
os . system ( ' chmod 755 /sbin/neoinitmips; chmod 0755 /sbin/neoinitmipsvu; cd ' + LinkNeoBoot + ' /;mv ./bin/fontforneoboot.ttf /usr/share/fonts;mv ./bin/libpngneo /usr/lib; cp -f ./bin/neoinitmips /sbin/neoinitmips; chmod 0755 ./bin/neobm;chmod 0755 /usr/lib/libpngneo; cd; chmod 0755 /sbin/neoinitmips ' )
2020-01-07 11:10:32 +02:00
if fileExists ( ' /home/root/vmlinux.gz ' ) :
2020-01-12 23:23:04 +02:00
os . system ( ' mv -f /home/root/vmlinux.gz %s ImagesUpload/.kernel/ %s .vmlinux.gz ' % ( getNeoLocation ( ) , getBoxHostName ( ) ) )
2020-01-07 11:10:32 +02:00
if getCPUtype ( ) == ' ARMv7 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; mv ./bin/fbcleararm ./bin/fbclear; rm -f ./bin/fbclearmips; mv ./ubi_reader_arm ./ubi_reader; rm -r ./ubi_reader_mips; rm ./bin/neoinitmips; rm ./bin/neoinitmipsvu; rm -r ./bin/nanddump_mips; rm ./bin/nfidump; rm ./bin/neobm; rm ./bin/fontforneoboot.ttf; rm ./bin/libpngneo; cd ' )
2020-01-07 11:10:32 +02:00
elif getCPUtype ( ) == ' MIPS ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; mv ./bin/fbclearmips ./bin/fbclear; rm -f ./bin/fbcleararm; mv ./ubi_reader_mips ./ubi_reader; rm -r ./ubi_reader_arm; rm -f /bin/neoinitarm; rm -f /bin/neoinitarmvu; rm -r ./bin/nanddump_arm ' )
2020-01-07 11:10:32 +02:00
2020-01-16 20:31:58 +02:00
os . system ( ' ln -sfn ' + getNeoLocation ( ) + ' ImageBoot/.neonextboot /etc/neoimage; chmod 644 ' + getNeoLocation ( ) + ' ImagesUpload/.kernel/*; ln -sfn ' + getNeoLocation ( ) + ' ImageBoot /etc/imageboot; rm -r ' + LinkNeoBoot + ' /target; chmod 0755 ' + LinkNeoBoot + ' /files/kernel.sh ' )
2020-01-07 11:10:32 +02:00
2020-01-16 20:31:58 +02:00
os . system ( ' chmod 0755 ' + LinkNeoBoot + ' /files/neo_location ' )
2020-01-07 11:10:32 +02:00
2020-01-18 20:27:11 +02:00
if os . path . isfile ( ' ' + LinkNeoBoot + ' /.location ' ) :
2020-01-07 11:10:32 +02:00
if getLabelDisck ( ) != ' LABEL= ' :
2020-01-18 08:54:31 +02:00
cmd = " echo -e ' \n %s ' " % _ ( ' NeoBoot has been installed succesfully ! ' )
2020-01-18 20:27:11 +02:00
cmd1 = " echo -e ' \n %s ' " % _ ( ' NeoBoot has detected that the disks do not have a Label name. \n Do poprawnego dzialania neoboot prosze nadac dla dyskow nazwy !!! LABEL \n Zalecany calkowity rstart tunera ' + getBoxHostName ( ) + ' \n NeoBoot zainstalowano w lokalizacji: ' + getNeoLocation ( ) + ' \n ' )
2020-01-07 11:10:32 +02:00
elif getLabelDisck ( ) == ' LABEL= ' :
2020-01-18 08:54:31 +02:00
cmd = " echo -e ' \n %s ' " % _ ( ' NeoBoot has been installed succesfully ! ' )
2020-01-18 20:27:11 +02:00
cmd1 = " echo -e ' \n %s ' " % _ ( ' NeoBoot has detected that the disks have been labeled. \n Zalecany calkowity rstart tunera ' + getBoxHostName ( ) + ' \n NeoBoot zainstalowano w lokalizacji: ' + getNeoLocation ( ) + ' \n ' )
2020-01-07 11:10:32 +02:00
else :
self . myclose2 ( _ ( ' NeoBoot has not been installed ! :( ' ) )
self . session . open ( Console , _ ( ' NeoBoot Install.... ' ) , [ cmd , cmd1 ] )
self . close ( )
if fileExists ( ' /media/usb/ImageBoot/ ' ) and fileExists ( ' /media/hdd/ImageBoot/ ' ) :
self . messagebox = self . session . open ( MessageBox , _ ( ' [NeoBoot] \n Error, you have neoboot installed on usb and hdd, \n Uninstall one directories from one drive !!! \n ' ) , MessageBox . TYPE_INFO , 8 )
self . close ( )
else :
self . close ( )
2020-01-12 23:23:04 +02:00
2020-01-07 11:10:32 +02:00
def myclose2 ( self , message ) :
self . session . open ( MessageBox , message , MessageBox . TYPE_INFO )
self . close ( )
class NeoBootImageChoose ( Screen ) :
screenwidth = getDesktop ( 0 ) . size ( ) . width ( )
if screenwidth and screenwidth == 1920 :
skin = """
2020-01-19 20:56:14 +02:00
< screen name = " NeoBootImageChoose " position = " center,center " size = " 1920,1080 " title = " " flags = " wfNoBorder " backgroundColor = " transparent " >
< widget name = " progreso " position = " 590,580 " size = " 530,15 " borderWidth = " 1 " zPosition = " 3 " / >
< ePixmap position = " center,0 " size = " 1920,1080 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/skin.png " / >
< ePixmap position = " 54,1008 " zPosition = " -7 " size = " 1809,45 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek.png " / >
< ePixmap position = " 71,903 " zPosition = " -7 " size = " 509,54 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek2.png " / >
< ePixmap position = " 71,820 " zPosition = " -7 " size = " 509,54 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek2.png " / >
< ePixmap position = " 71,736 " zPosition = " -7 " size = " 509,54 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek2.png " / >
< ePixmap position = " 70,655 " zPosition = " -7 " size = " 509,54 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek2.png " / >
< ePixmap position = " 64,417 " zPosition = " -7 " size = " 509,54 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/pasek2.png " / >
< ePixmap position = " 1855,190 " size = " 40,64 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/updown.png " alphatest = " on " / >
< ePixmap position = " 1290,750 " zPosition = " 4 " size = " 600,121 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/logo.png " / >
< eLabel position = " 70,120 " size = " 1080,2 " backgroundColor = " blue " foregroundColor = " blue " name = " linia " / >
< eLabel position = " 70,392 " size = " 1080,2 " backgroundColor = " blue " foregroundColor = " blue " name = " linia2 " / >
< widget name = " device_icon " position = " 123,490 " size = " 146,136 " alphatest = " on " zPosition = " 2 " / >
< widget name = " key_red " position = " 150,1010 " zPosition = " 1 " size = " 280,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " red " / >
< widget name = " key_green " position = " 571,1010 " zPosition = " 1 " size = " 276,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " key_yellow " position = " 1010,1010 " zPosition = " 1 " size = " 275,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " yellow " / >
< widget name = " key_blue " position = " 1470,1010 " zPosition = " 1 " size = " 276,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " blue " / >
< widget name = " config " position = " 1300,256 " size = " 580,380 " selectionPixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/selektor.png " font = " Regular;32 " foregroundColor = " cyan " backgroundColor = " black " itemHeight = " 42 " scrollbarMode = " showOnDemand " zPosition = " 3 " transparent = " 1 " / >
< eLabel name = " select_image " position = " 1300,256 " size = " 580,380 " / >
< widget name = " key_menu " position = " 254,419 " zPosition = " 1 " size = " 249,45 " font = " Regular;33 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " un99ffff " / >
< eLabel backgroundColor = " black " font = " Regular; 35 " foregroundColor = " red " position = " 60,23 " size = " 443,45 " text = " NeoBoot ARM - MENU " transparent = " 1 " / >
< eLabel backgroundColor = " black " font = " Regular; 30 " foregroundColor = " yellow " position = " 110,424 " size = " 155,41 " text = " MENU > " transparent = " 1 " / >
< eLabel backgroundColor = " black " font = " Regular; 35 " foregroundColor = " unc0c0c0 " position = " 90,659 " size = " 80,46 " text = " 1 > " transparent = " 1 " / >
< eLabel backgroundColor = " black " font = " Regular; 35 " foregroundColor = " unc0c0c0 " position = " 90,742 " size = " 80,43 " text = " 2 > " transparent = " 1 " / >
< eLabel backgroundColor = " black " font = " Regular; 35 " foregroundColor = " unc0c0c0 " position = " 90,826 " size = " 80,42 " text = " 3 > " transparent = " 1 " / >
< eLabel backgroundColor = " black " font = " Regular; 35 " foregroundColor = " unc0c0c0 " position = " 90,909 " size = " 80,39 " text = " 4 > " transparent = " 1 " / >
< widget name = " key_1 " position = " 150,660 " zPosition = " 1 " size = " 363,46 " font = " Regular;32 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " red " / >
< widget name = " key_2 " position = " 149,742 " zPosition = " 1 " size = " 431,42 " font = " Regular;32 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " key_3 " position = " 149,826 " zPosition = " 1 " size = " 367,43 " font = " Regular;32 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " yellow " / >
< widget name = " label1 " position = " 1290,145 " size = " 580,99 " zPosition = " 1 " halign = " center " font = " Regular;35 " foregroundColor = " red " backgroundColor = " black " transparent = " 1 " / >
< widget name = " label2 " position = " 69,164 " zPosition = " 1 " size = " 652,66 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / >
< widget name = " label3 " position = " 315,460 " zPosition = " 1 " size = " 799,124 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " yellow " / >
< widget name = " label4 " position = " 68,244 " zPosition = " 1 " size = " 560,66 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / >
< widget name = " label5 " position = " 727,163 " zPosition = " 1 " size = " 340,66 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " blue " / >
< widget name = " label6 " position = " 628,235 " zPosition = " 1 " size = " 620,80 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " yellow " / >
< widget name = " label7 " position = " 736,323 " zPosition = " 1 " size = " 100,66 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " label8 " position = " 67,324 " zPosition = " 1 " size = " 666,66 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / >
< widget name = " label9 " position = " 883,20 " zPosition = " 1 " size = " 950,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " cyan " / >
< widget name = " label10 " position = " 985,410 " zPosition = " 1 " size = " 125,55 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " unff00 " / >
< widget name = " label13 " position = " 610,410 " zPosition = " 1 " size = " 415,55 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " label14 " position = " 534,20 " zPosition = " 1 " size = " 350,45 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " label15 " position = " 322,570 " zPosition = " 1 " size = " 265,42 " font = " Regular;35 " halign = " center " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " green " / >
< widget name = " label19 " position = " 150,900 " zPosition = " 1 " size = " 1100,60 " font = " Regular;35 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " blue " / >
< widget source = " session.VideoPicture " render = " Pig " position = " 590,610 " size = " 540,300 " zPosition = " 3 " backgroundColor = " transparent " / >
< / screen > """
2020-01-07 11:10:32 +02:00
else :
2020-01-17 12:44:26 +02:00
skin = """
< screen name = " NeoBootImageChoose " position = " center,center " size = " 1280, 720 " backgroundColor = " transpBlack " > \n \t \t \t \t \t \t \t < ePixmap position = " 0,0 " zPosition = " -1 " size = " 1280,720 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1frame_base-fs8.png " / > \n \t \t \t \t \t \t \t < widget source = " session.VideoPicture " render = " Pig " position = " 836,89 " size = " 370,208 " zPosition = " 3 " backgroundColor = " #ff000000 " / > \n \t \t \t \t \t \t \t < ePixmap position = " 870,304 " zPosition = " -1 " size = " 300,14 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1chan_p1_bar.png " alphatest = " on " / > \n \t \t \t \t \t \t \t < widget source = " Title " render = " Label " position = " 0,5 " size = " 800,30 " font = " Regular;28 " halign = " left " foregroundColor = " #58bcff " backgroundColor = " transpBlack " transparent = " 1 " / > \n \t \t \t \t \t \t \t < widget name = " label9 " position = " 100,45 " zPosition = " 10 " size = " 800,30 " font = " Regular;24 " foregroundColor = " #58bcff " backgroundColor = " black " halign = " left " transparent = " 1 " / > < widget name = " config " enableWrapAround = " 1 " position = " 30,150 " size = " 270,370 " itemHeight = " 25 " font = " Regular;18 " zPosition = " 2 " selectionPixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/1channel_sel.png " foregroundColor = " #00cc99 " scrollbarMode = " showNever " transparent = " 1 " / > < widget name = " device_icon " position = " 530,80 " size = " 146,136 " alphatest = " on " zPosition = " 2 " / > < widget name = " progreso " position = " 400,200 " size = " 300,10 " borderWidth = " 1 " zPosition = " 3 " foregroundColor = " white " / > < widget name = " label3 " position = " 380,230 " zPosition = " 1 " size = " 450,60 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " #58ccff " / > < ePixmap position = " 300,310 " zPosition = " 4 " size = " 500,4 " pixmap = " /usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/images/separator.png " alphatest = " blend " transparent = " 1 " / > < widget name = " label2 " position = " 310,340 " zPosition = " 1 " size = " 400,22 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " label5 " position = " 630,340 " zPosition = " 1 " size = " 340,22 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " #58ccff " / > < widget name = " label4 " position = " 310,370 " zPosition = " 1 " size = " 606,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " label6 " position = " 630,370 " zPosition = " 1 " size = " 516,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " #58ccff " / > < widget name = " label8 " position = " 310,400 " zPosition = " 1 " size = " 466,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " label7 " position = " 660,400 " zPosition = " 1 " size = " 308,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " #58ccff " / > < eLabel backgroundColor = " black " font = " Regular; 20 " foregroundColor = " #58ccff " position = " 310,450 " size = " 60,25 " text = " 1 > " transparent = " 1 " / > < eLabel backgroundColor = " black " font = " Regular; 20 " foregroundColor = " #58ccff " position = " 310,480 " size = " 60,25 " text = " 2 > " transparent = " 1 " / > < eLabel backgroundColor = " black " font = " Regular; 20 " foregroundColor = " #58ccff " position = " 310,510 " size = " 60,25 " text = " 3 > " transparent = " 1 " / > < eLabel backgroundColor = " black " font = " Regular; 20 " foregroundColor = " #58ccff " position = " 310,540 " size = " 60,25 " text = " 4 > " transparent = " 1 " / > < widget name = " key_1 " position = " 360,450 " zPosition = " 1 " size = " 300,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " key_2 " position = " 360,480 " zPosition = " 1 " size = " 350,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " key_3 " position = " 360,510 " zPosition = " 1 " size = " 300,25 " font = " Regular;20 " halign = " left " valign = " center " backgroundColor = " black " transparent = " 1 " foregroundColor = " white " / > < widget name = " label19 " position = " 360,540 " zP
2020-01-07 11:10:32 +02:00
2020-01-18 20:27:11 +02:00
def __init__ ( self , session ) :
2020-01-13 20:18:21 +02:00
Screen . __init__ ( self , session )
2020-01-16 20:31:58 +02:00
if not fileExists ( ' ' + LinkNeoBoot + ' /files/mountpoint.sh ' ) :
os . system ( ' touch ' + LinkNeoBoot + ' /files/mountpoint.sh; echo " #!/bin/sh \n #DESCRIPTION=This script by gutosie \n " >> ' + LinkNeoBoot + ' /files/mountpoint.sh; chmod 0755 ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
if getNeoMount ( ) == ' hdd_install_/dev/sda1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/hdd \n mkdir -p /media/hdd \n mkdir -p /media/sda1 \n /bin/mount /dev/sda1 /media/hdd \n /bin/mount /dev/sda1 /media/sda1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount ( ) == ' hdd_install_/dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/hdd \n mkdir -p /media/hdd \n mkdir -p /media/sdb1 \n /bin/mount /dev/sdb1 /media/hdd \n /bin/mount /dev/sdb1 /media/sdb1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount ( ) == ' hdd_install_/dev/sda2 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/hdd \n mkdir -p /media/hdd \n mkdir -p /media/sda2 \n /bin/mount /dev/sda2 /media/hdd \n /bin/mount /dev/sda2 /media/sda2 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount ( ) == ' hdd_install_/dev/sdb2 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/hdd \n mkdir -p /media/hdd \n mkdir -p /media/sdb2 \n /bin/mount /dev/sdb2 /media/hdd \n /bin/mount /dev/sdb2 /media/sdb2 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
if getNeoMount2 ( ) == ' usb_install_/dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " \n umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sdb1 \n /bin/mount /dev/sdb1 /media/usb \n /bin/mount /dev/sdb1 /media/sdb1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sda1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sda1 \n /bin/mount /dev/sda1 /media/sda1 \n /bin/mount /dev/sda1 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sdb2 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sdb2 \n /bin/mount /dev/sdb2 /media/sdb2 \n /bin/mount /dev/sdb2 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sdc1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sdc1 \n /bin/mount /dev/sdc1 /media/sdb2 \n /bin/mount /dev/sdc1 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sdd1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sdd1 \n /bin/mount /dev/sdd1 /media/sdd1 \n /bin/mount /dev/sdd1 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sde1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sde1 \n /bin/mount /dev/sde1 /media/sde1 \n /bin/mount /dev/sde1 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
elif getNeoMount2 ( ) == ' usb_install_/dev/sdf1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/usb \n mkdir -p /media/usb \n mkdir -p /media/sdf1 \n /bin/mount /dev/sdf1 /media/sdf1 \n /bin/mount /dev/sdf1 /media/usb " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-12 23:23:04 +02:00
2020-01-17 08:18:22 +02:00
elif getNeoMount3 ( ) == ' cf_install_/dev/sda1 ' :
os . system ( ' echo " umount /media/cf \n mkdir -p /media/cf \n mkdir -p /media/sdb1 \n /bin/mount /dev/sda1 /media/cf \n /bin/mount /dev/sda1 /media/sda1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
elif getNeoMount3 ( ) == ' cf_install_/dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/cf \n mkdir -p /media/cf \n mkdir -p /media/sdb1 \n /bin/mount /dev/sdb1 /media/cf \n /bin/mount /dev/sdb1 /media/sdb1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
2020-01-17 08:18:22 +02:00
elif getNeoMount4 ( ) == ' card_install_/dev/sda1 ' :
os . system ( ' echo " umount /media/card \n mkdir -p /media/card \n mkdir -p /media/sda1 \n /bin/mount /dev/sda1 /media/card \n /bin/mount /dev/sda1 /media/sda1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
elif getNeoMount4 ( ) == ' card_install_/dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/card \n mkdir -p /media/card \n mkdir -p /media/sdb1 \n /bin/mount /dev/sdb1 /media/card \n /bin/mount /dev/sdb1 /media/sdb1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
2020-01-17 08:18:22 +02:00
elif getNeoMount5 ( ) == ' mmc_install_/dev/sda1 ' :
os . system ( ' echo " umount /media/mmc \n mkdir -p /media/mmc \n mkdir -p /media/sda1 \n /bin/mount /dev/sda1 /media/mmc \n /bin/mount /dev/sda1 /media/sda1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
elif getNeoMount5 ( ) == ' mmc_install_/dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
os . system ( ' echo " umount /media/mmc \n mkdir -p /media/mmc \n mkdir -p /media/sdb1 \n /bin/mount /dev/sdb1 /media/mmc \n /bin/mount /dev/sdb1 /media/sdb1 " >> ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-13 20:18:21 +02:00
2020-01-16 20:31:58 +02:00
if not fileExists ( ' ' + LinkNeoBoot + ' /files/neom ' ) :
2020-01-13 20:18:21 +02:00
if fileExists ( ' /media/sda1 ' or ' /media/sdb1 ' ) :
2020-01-15 14:23:09 +02:00
self . session . open ( MessageBox , _ ( ' NeoBoot - Restart the system !!! ' ) , MessageBox . TYPE_INFO , 10 )
2020-01-13 20:18:21 +02:00
self . close ( )
else :
2020-01-16 20:31:58 +02:00
os . system ( ' chmod 0755 ' + LinkNeoBoot + ' /files/neo_location; ' + LinkNeoBoot + ' /files/neo_location; chmod 0755 ' + LinkNeoBoot + ' /files/neom ' )
2020-01-07 11:10:32 +02:00
2020-01-16 20:31:58 +02:00
if not fileExists ( ' ' + LinkNeoBoot + ' /files/neo.sh ' ) :
system ( ' ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
system ( ' echo ' + getLocationMultiboot ( ) + ' > ' + LinkNeoBoot + ' /bin/install; chmod 0755 ' + LinkNeoBoot + ' /bin/install ' )
2020-01-12 14:23:15 +02:00
if getLocationMultiboot ( ) == ' /dev/sda1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sda1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sdb1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sdb1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sda2 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sda2 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sdb2 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sdb2 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sdc1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sdc1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sdd1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sdd1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sde1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sde1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-12 14:23:15 +02:00
elif getLocationMultiboot ( ) == ' /dev/sdf1 ' :
2020-01-16 20:31:58 +02:00
out = open ( ' ' + LinkNeoBoot + ' /files/neo.sh ' , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' #!/bin/sh \n #DESCRIPTION=This script by gutosie \n \n /bin/mount /dev/sdf1 ' + getNeoLocation ( ) + ' \n ' )
out . close ( )
2020-01-16 20:31:58 +02:00
system ( ' chmod 755 ' + LinkNeoBoot + ' /files/neo.sh ' )
2020-01-07 11:10:32 +02:00
if fileExists ( ' /tmp/.init_reboot ' ) :
system ( ' rm /tmp/.init_reboot ' )
if fileExists ( ' /.multinfo ' ) :
if not fileExists ( ' /.control_ok ' ) :
if fileExists ( ' /.control_boot_new_image ' ) :
os . system ( ' rm -f /.control_boot_new_image; echo " Image uruchomione OK \n Nie kasuj tego pliku. \n \n Image started OK \n Do not delete this file. " > /.control_ok ' )
if not fileExists ( ' /.control_boot_new_image ' ) :
os . system ( ' echo " Image uruchomione OK \n Nie kasuj tego pliku. \n \n Image started OK \n Do not delete this file. " > /.control_ok ' )
#os.system('touch /.control_ok ')
if fileExists ( ' /.multinfo ' ) and getCPUtype ( ) == ' ARMv7 ' :
if os . path . exists ( ' /proc/stb/info/boxtype ' ) :
2020-01-07 21:26:28 +02:00
if getBoxHostName == ' sf4008 ' : #getCPUSoC() == 'bcm7251'
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p4 /media/mmc ' )
if fileExists ( ' /.multinfo ' ) and getCPUtype ( ) == ' ARMv7 ' :
if os . path . exists ( ' /proc/stb/info/boxtype ' ) :
if getBoxHostName == ' et1x000 ' : #getCPUSoC() == 'bcm7251' or
2020-01-07 11:10:32 +02:00
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p4 /media/mmc ' )
2020-01-11 09:09:42 +02:00
if fileExists ( ' /.multinfo ' ) and getCPUtype ( ) == ' ARMv7 ' :
if os . path . exists ( ' /proc/stb/info/boxtype ' ) :
if getBoxHostName == ' ax51 ' : #getCPUSoC() == 'bcm7251s' or
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p4 /media/mmc ' )
2020-01-07 11:10:32 +02:00
if fileExists ( ' /.multinfo ' ) and getCPUtype ( ) == ' ARMv7 ' :
if os . path . exists ( ' /proc/stb/info/boxtype ' ) :
if getCPUSoC ( ) == ' bcm7251s ' or getBoxHostName ( ) == ' h7 ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p3 /media/mmc ' )
if os . path . exists ( ' /proc/stb/info/boxtype ' ) :
if getBoxHostName ( ) == ' zgemmah9s ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p7 /media/mmc ' )
if getBoxHostName == ' sf8008 ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p13 /media/mmc ' )
if getBoxHostName == ' ax60 ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p21 /media/mmc ' )
if getBoxHostName ( ) == ' ustym4kpro ' or getTunerModel ( ) == ' ustym4kpro ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p13 /media/mmc ' )
if os . path . exists ( ' /proc/stb/info/model ' ) :
if getTunerModel ( ) == ' dm900 ' or getCPUSoC ( ) == ' BCM97252SSFF ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p2 /media/mmc ' )
if getBoxVuModel ( ) == ' uno4kse ' or getBoxVuModel ( ) == ' uno4k ' or getBoxVuModel ( ) == ' ultimo4k ' or getBoxVuModel ( ) == ' solo4k ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p4 /media/mmc ' )
if getBoxVuModel ( ) == ' zero4k ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p7 /media/mmc ' )
if getBoxVuModel ( ) == ' duo4k ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p9 /media/mmc ' )
if getCPUSoC ( ) == ' bcm7252s ' or getBoxHostName ( ) == ' gbquad4k ' :
os . system ( ' mkdir -p /media/mmc; mount /dev/mmcblk0p5 /media/mmc ' )
#if getBoxHostName == 'osmio4k':
#os.system('mkdir -p /media/mmc; mount /dev/mmcblk0p5 /media/mmc')
self . list = [ ]
self . setTitle ( ' NeoBoot %s - Menu ' % PLUGINVERSION + ' ' + ' Ver. update: %s ' % UPDATEVERSION )
self [ ' device_icon ' ] = Pixmap ( )
self [ ' progreso ' ] = ProgressBar ( )
self [ ' linea ' ] = ProgressBar ( )
self [ ' config ' ] = MenuList ( self . list )
self [ ' key_red ' ] = Label ( _ ( ' Boot Image ' ) )
self [ ' key_green ' ] = Label ( _ ( ' Installation ' ) )
self [ ' key_yellow ' ] = Label ( _ ( ' Remove Image ' ) )
self [ ' key_blue ' ] = Label ( _ ( ' Info ' ) )
self [ ' key_menu ' ] = Label ( _ ( ' More options ' ) )
self [ ' key_1 ' ] = Label ( _ ( ' Update NeoBot ' ) )
self [ ' key_2 ' ] = Label ( _ ( ' Reinstall NeoBoot ' ) )
self [ ' key_3 ' ] = Label ( _ ( ' Install Kernel ' ) )
self [ ' label1 ' ] = Label ( _ ( ' Please choose an image to boot ' ) )
self [ ' label2 ' ] = Label ( _ ( ' NeoBoot is running from: ' ) )
self [ ' label3 ' ] = Label ( ' ' )
self [ ' label4 ' ] = Label ( _ ( ' NeoBoot is running image: ' ) )
self [ ' label5 ' ] = Label ( ' ' )
self [ ' label6 ' ] = Label ( ' ' )
self [ ' label7 ' ] = Label ( ' ' )
self [ ' label8 ' ] = Label ( _ ( ' Number of images installed: ' ) )
self [ ' label19 ' ] = Label ( ' ' )
self [ ' label9 ' ] = Label ( ' ' )
self [ ' label10 ' ] = Label ( ' ' )
self [ ' label11 ' ] = Label ( ' ' )
self [ ' label12 ' ] = Label ( ' ' )
self [ ' label13 ' ] = Label ( _ ( ' Version update: ' ) )
self [ ' label14 ' ] = Label ( _ ( ' NeoBoot version: ' ) )
self [ ' label15 ' ] = Label ( _ ( ' Memory disc: ' ) )
self [ ' actions ' ] = ActionMap ( [ ' WizardActions ' ,
' ColorActions ' ,
' MenuActions ' ,
' NumberActionMap ' ,
' SetupActions ' ,
' number ' ] , { ' ok ' : self . boot ,
' red ' : self . boot ,
' green ' : self . ImageInstall ,
' yellow ' : self . remove ,
' blue ' : self . pomoc ,
' ok ' : self . boot ,
' menu ' : self . mytools ,
' 1 ' : self . neoboot_update ,
' 2 ' : self . ReinstallNeoBoot ,
' 3 ' : self . ReinstallKernel ,
' back ' : self . close_exit } )
if not fileExists ( ' /etc/name ' ) :
os . system ( ' touch /etc/name ' )
self . onShow . append ( self . updateList )
2020-01-11 08:40:30 +02:00
def chackkernel ( self ) :
2020-01-18 20:27:11 +02:00
message = _ ( ' NeoBoot detected a kernel mismatch in flash, \n Install a kernel for flash image?? ' )
2020-01-07 11:10:32 +02:00
ybox = self . session . openWithCallback ( self . updatekernel , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Updating ... ' ) )
2020-01-11 08:40:30 +02:00
def pomoc ( self ) :
2020-01-07 11:10:32 +02:00
if fileExists ( ' /.multinfo ' ) :
mess = _ ( ' Information available only when running Flash. ' )
self . session . open ( MessageBox , mess , MessageBox . TYPE_INFO )
else :
self . session . open ( Opis )
2020-01-12 23:23:04 +02:00
def ReinstallNeoBoot ( self ) :
2020-01-18 20:27:11 +02:00
INSTALLbox = self . session . openWithCallback ( self . reinstallboot , MessageBox , _ ( ' Select Yes to reinstall the neoboot. \n NEOBOOT. ' ) , MessageBox . TYPE_YESNO )
2020-01-07 11:10:32 +02:00
INSTALLbox . setTitle ( _ ( ' Zainstalować ponownie neoboota ? ' ) )
2020-01-11 08:40:30 +02:00
def reinstallboot ( self , answer ) :
2020-01-07 11:10:32 +02:00
if answer is True :
try :
cmd = " echo -e ' \n \n %s ' " % _ ( ' NEOBOOT - Please reinstall NeoBoot.... \n Please wait, done... \n restart systemu... ' )
2020-01-16 20:31:58 +02:00
cmd1 = ' cd ' + LinkNeoBoot + ' /; rm ./bin/install; rm ./.location; rm ./files/mountpoint.sh; rm ./files/neom; rm ./files/neo.sh; sleep 5; killall -9 enigma2 '
2020-01-07 11:10:32 +02:00
except :
False
self . session . open ( Console , _ ( ' NeoBoot ARM.... ' ) , [ cmd , cmd1 ] )
self . close ( )
else :
try :
2020-01-18 20:27:11 +02:00
self . session . open ( MessageBox , _ ( ' Resignation. ' ) , MessageBox . TYPE_INFO , 4 )
2020-01-07 11:10:32 +02:00
self . close ( )
except :
False
2020-01-11 08:40:30 +02:00
def close_exit ( self ) :
2020-01-07 11:10:32 +02:00
system ( ' touch /tmp/.init_reboot ' )
if not fileExists ( ' /.multinfo ' ) :
out = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
out . write ( ' Flash ' )
out . close ( )
2020-01-13 20:18:21 +02:00
if fileExists ( ' /media/sda1 ' or ' /media/sdb1 ' ) :
2020-01-15 14:23:09 +02:00
self . session . open ( MessageBox , _ ( ' NeoBoot - Please restart the system !!! ' ) , MessageBox . TYPE_INFO , 10 )
2020-01-12 23:23:04 +02:00
self . close ( )
2020-01-18 11:23:42 +02:00
self . close ( )
2020-01-07 11:10:32 +02:00
2020-01-18 11:23:42 +02:00
elif fileExists ( ' /.multinfo ' ) :
2020-01-07 11:10:32 +02:00
with open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' r ' ) as f :
imagefile = f . readline ( ) . strip ( )
f . close ( )
out = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
out . write ( imagefile )
out . close ( )
else :
system ( ' touch /tmp/.init_reboot ' )
out = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
out . write ( ' Flash ' )
out . close ( )
self . close ( )
2020-01-11 08:40:30 +02:00
def ReinstallKernel ( self ) :
2020-01-07 11:10:32 +02:00
from Plugins . Extensions . NeoBoot . files . tools import ReinstallKernel
self . session . open ( ReinstallKernel )
##/////NA CZAS TESTU UPDATE ZATRZYMANE\\\\\####################################
2020-01-07 19:04:56 +02:00
# def neoboot_update(self):
# self.messagebox = self.session.open(MessageBox, _('Updated unnecessary, you have the latest version. Please try again later.'), MessageBox.TYPE_INFO, 8)
# self.close()
2020-01-11 08:40:30 +02:00
def neoboot_update ( self ) :
2020-01-07 11:10:32 +02:00
if fileExists ( ' /.multinfo ' ) :
mess = _ ( ' Downloading available only from the image Flash. ' )
self . session . open ( MessageBox , mess , MessageBox . TYPE_INFO )
else :
2020-01-07 19:12:20 +02:00
out = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
2020-01-07 11:10:32 +02:00
out . write ( ' Flash ' )
2020-01-11 08:40:30 +02:00
out . close ( )
2020-01-07 11:10:32 +02:00
message = _ ( ' \n \n \n ' )
message + = _ ( ' WARNING !: The update brings with it the risk of errors. \n ' )
message + = _ ( ' Before upgrading it is recommended that you make a backup NeoBoot. \n ' )
message + = _ ( ' Do you want to run the update now ? \n ' )
message + = _ ( ' \n ' )
ybox = self . session . openWithCallback ( self . chackupdate2 , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' The download neoboot update. ' ) )
2020-01-11 08:40:30 +02:00
def chackupdate2 ( self , yesno ) :
2020-01-07 11:10:32 +02:00
if yesno :
self . chackupdate3 ( )
else :
self . session . open ( MessageBox , _ ( ' Canceled update. ' ) , MessageBox . TYPE_INFO , 7 )
2020-01-11 08:40:30 +02:00
def chackupdate3 ( self ) :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' ;curl -O --ftp-ssl https://raw.githubusercontent.com/gutosie/NeoBoot8/master/ver.txt;sleep 3;cd / ' )
if not fileExists ( ' ' + LinkNeoBoot + ' /ver.txt ' ) :
os . system ( ' cd ' + LinkNeoBoot + ' ;fullwget --no-check-certificate https://raw.githubusercontent.com/gutosie/NeoBoot8/master/ver.txt; sleep 3;cd / ' )
if not fileExists ( ' ' + LinkNeoBoot + ' /ver.txt ' ) :
2020-01-07 11:10:32 +02:00
self . session . open ( MessageBox , _ ( ' Unfortunately, at the moment not found an update, try again later. ' ) , MessageBox . TYPE_INFO , 8 )
else :
mypath = ' '
2020-01-16 20:31:58 +02:00
version = open ( ' ' + LinkNeoBoot + ' /ver.txt ' , ' r ' )
2020-01-07 11:10:32 +02:00
mypath = float ( version . read ( ) . strip ( ) )
version . close ( )
if float ( UPDATEVERSION ) != mypath :
message = _ ( ' NeoBoot has detected update. \n Do you want to update NeoBoota now ? ' )
ybox = self . session . openWithCallback ( self . aktualizacjamboot , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Updating ... ' ) )
2020-01-16 20:31:58 +02:00
elif fileExists ( ' ' + LinkNeoBoot + ' /ver.txt ' ) :
os . system ( ' rm ' + LinkNeoBoot + ' /ver.txt ' )
2020-01-07 11:10:32 +02:00
self . session . open ( MessageBox , _ ( ' Updated unnecessary, you have the latest version. Please try again later. ' ) , MessageBox . TYPE_INFO )
2020-01-11 08:40:30 +02:00
def aktualizacjamboot ( self , yesno ) :
2020-01-07 11:10:32 +02:00
if yesno :
if fileExists ( ' /tmp/*.zip ' ) :
os . system ( ' rm /tmp/*.zip ' )
2020-01-10 10:02:37 +02:00
os . system ( ' cd /tmp; curl -O --ftp-ssl https://codeload.github.com/gutosie/NeoBoot8/zip/master; mv /tmp/master /tmp/neoboot.zip; cd / ' )
2020-01-07 11:10:32 +02:00
if not fileExists ( ' /tmp/neoboot.zip ' ) :
2020-01-10 10:02:37 +02:00
os . system ( ' cd /tmp;fullwget --no-check-certificate https://codeload.github.com/gutosie/NeoBoot8/zip/master; mv /tmp/master /tmp/neoboot.zip; sleep 3;cd ' )
2020-01-07 11:10:32 +02:00
if not fileExists ( ' /tmp/neoboot.zip ' ) :
self . session . open ( MessageBox , _ ( ' Unfortunately, at the moment not found an update, try again later. ' ) , MessageBox . TYPE_INFO , 8 )
else :
2020-01-16 20:31:58 +02:00
os . system ( ' cd /tmp/; unzip -qn ./neoboot.zip; rm -f ./neoboot.zip; cp -rf ./NeoBoot8-master/NeoBoot /usr/lib/enigma2/python/Plugins/Extensions; rm -rf /tmp/NeoBoot8-master; rm ' + LinkNeoBoot + ' /ver.txt; cd ' + LinkNeoBoot + ' /; chmod 0755 ./bin/neoini*; chmod 0755 ./ex_init.py; chmod 0755 ./target/*; chmod 0755 ./files/NeoBoot.sh; chmod 0755 ./files/S50fat.sh; cd ' )
2020-01-07 11:10:32 +02:00
if getCPUtype ( ) == ' MIPS ' :
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; cp -rf ./bin/neoinitmipsvu /sbin; chmod 755 /sbin/neoinitmipsvu; cp -rf ./bin/neoinitmips /sbin; chmod 755 /sbin/neoinitmips; cd ' )
2020-01-07 11:10:32 +02:00
#elif getCPUtype() == 'ARMv7':
#os.system('')
2020-01-16 20:31:58 +02:00
os . system ( ' cd ' + LinkNeoBoot + ' /; rm ./bin/install; rm ./.location; rm ./files/mountpoint.sh; rm ./files/neom; rm ./files/neo.sh ' )
2020-01-07 11:10:32 +02:00
restartbox = self . session . openWithCallback ( self . restartGUI , MessageBox , _ ( ' Completed update NeoBoot. You need to restart the E2 !!! \n Restart now ? ' ) , MessageBox . TYPE_YESNO )
restartbox . setTitle ( _ ( ' Restart GUI now ? ' ) )
else :
2020-01-16 20:31:58 +02:00
os . system ( ' rm -f ' + LinkNeoBoot + ' /ver.txt ' )
2020-01-07 11:10:32 +02:00
self . session . open ( MessageBox , _ ( ' The update has been canceled. ' ) , MessageBox . TYPE_INFO , 8 )
2020-01-09 13:33:47 +02:00
def restartGUI ( self , answer ) :
2020-01-07 11:10:32 +02:00
if answer is True :
self . session . open ( TryQuitMainloop , 3 )
else :
self . close ( )
2020-01-09 13:33:47 +02:00
def installMedia ( self ) :
2020-01-07 11:10:32 +02:00
images = False
myimages = os . listdir ( ' %s ImagesUpload ' % getNeoLocation ( ) )
print myimages
for fil in myimages :
if fil . endswith ( ' .zip ' ) :
images = True
break
if fil . endswith ( ' .tar.xz ' ) :
images = True
break
if fil . endswith ( ' .nfi ' ) :
images = True
break
else :
images = False
if images == True :
self . ImageInstall ( )
else :
mess = _ ( ' [NeoBoot] The %s ImagesUpload directory is EMPTY !!! \n Please upload the image files in .ZIP or .NFI formats to install. ' % getNeoLocation ( ) )
self . session . open ( MessageBox , mess , MessageBox . TYPE_INFO )
2020-01-11 08:40:30 +02:00
def MBBackup ( self ) :
2020-01-07 11:10:32 +02:00
from Plugins . Extensions . NeoBoot . files . tools import MBBackup
self . session . open ( MBBackup )
2020-01-11 08:40:30 +02:00
def MBRestore ( self ) :
2020-01-07 11:10:32 +02:00
from Plugins . Extensions . NeoBoot . files . tools import MBRestore
self . session . open ( MBRestore )
2020-01-11 08:40:30 +02:00
2020-01-07 11:10:32 +02:00
def updateList ( self ) :
2020-01-16 20:31:58 +02:00
if not fileExists ( ' ' + LinkNeoBoot + ' /.location ' ) or not fileExists ( ' ' + LinkNeoBoot + ' /files/kernel.sh ' ) :
2020-01-07 11:10:32 +02:00
self . session . open ( NeoBootInstallation )
else :
self . updateListOK ( )
2020-01-11 08:40:30 +02:00
def updateListOK ( self ) :
2020-01-07 11:10:32 +02:00
self . list = [ ]
2020-01-16 20:31:58 +02:00
pluginpath = ' ' + LinkNeoBoot + ' '
2020-01-07 11:10:32 +02:00
f = open ( pluginpath + ' /.location ' , ' r ' )
mypath = f . readline ( ) . strip ( )
f . close ( )
icon = ' dev_usb.png '
if ' card ' in mypath or ' sd ' in mypath :
icon = ' dev_sd.png '
elif ' ntfs ' in mypath :
icon = ' dev_sd.png '
elif ' hdd ' in mypath :
icon = ' dev_hdd.png '
elif ' cf ' in mypath :
icon = ' dev_cf.png '
icon = pluginpath + ' /images/ ' + icon
png = LoadPixmap ( icon )
self [ ' device_icon ' ] . instance . setPixmap ( png )
2020-01-16 20:31:58 +02:00
linesdevice = open ( ' ' + LinkNeoBoot + ' /.location ' , ' r ' ) . readlines ( )
2020-01-07 11:10:32 +02:00
deviceneo = linesdevice [ 0 ] [ 0 : - 1 ]
device = deviceneo
ustot = usfree = usperc = ' '
rc = system ( ' df > /tmp/memoryinfo.tmp ' )
if fileExists ( ' /tmp/memoryinfo.tmp ' ) :
f = open ( ' /tmp/memoryinfo.tmp ' , ' r ' )
for line in f . readlines ( ) :
line = line . replace ( ' part1 ' , ' ' )
parts = line . strip ( ) . split ( )
totsp = len ( parts ) - 1
if parts [ totsp ] == device :
if totsp == 5 :
ustot = parts [ 1 ]
usfree = parts [ 3 ]
usperc = parts [ 4 ]
else :
ustot = ' N/A '
usfree = parts [ 2 ]
usperc = parts [ 3 ]
break
f . close ( )
os . remove ( ' /tmp/memoryinfo.tmp ' )
perc = int ( usperc [ 0 : - 1 ] )
self [ ' progreso ' ] . setValue ( perc )
green = ' #00389416 '
red = ' #00ff2525 '
yellow = ' #00ffe875 '
orange = ' #00ff7f50 '
if perc < 30 :
color = green
elif perc < 60 :
color = yellow
elif perc < 80 :
color = orange
else :
color = red
try :
from skin import parseColor
self [ ' label13 ' ] . instance . setForegroundColor ( parseColor ( color ) )
self [ ' label14 ' ] . instance . setForegroundColor ( parseColor ( color ) )
self [ ' label15 ' ] . instance . setForegroundColor ( parseColor ( color ) )
self [ ' progreso ' ] . instance . setForegroundColor ( parseColor ( color ) )
except :
pass
self . availablespace = usfree [ 0 : - 3 ]
strview = _ ( ' Used: ' ) + usperc + _ ( ' \n Available: ' ) + usfree [ 0 : - 3 ] + ' MB '
self [ ' label3 ' ] . setText ( strview )
try :
f2 = open ( ' %s ImageBoot/.neonextboot ' , ' r ' % getNeoLocation ( ) )
mypath2 = f2 . readline ( ) . strip ( )
f2 . close ( )
except :
mypath2 = ' Flash '
if mypath2 == ' Flash ' :
image = getImageNeoBoot ( )
if not fileExists ( ' /.multinfo ' ) :
if fileExists ( ' /etc/issue.net ' ) :
try :
obraz = open ( ' /etc/issue.net ' , ' r ' ) . readlines ( )
imagetype = obraz [ 0 ] [ : - 3 ]
image = imagetype
open ( ' %s ImageBoot/.Flash ' , ' w ' % getNeoLocation ( ) ) . write ( image )
except :
False
if fileExists ( ' /.multinfo ' ) :
if fileExists ( ' /media/mmc/etc/issue.net ' ) :
try :
obraz = open ( ' /media/mmc/etc/issue.net ' , ' r ' ) . readlines ( )
imagetype = obraz [ 0 ] [ : - 3 ]
image = imagetype
open ( ' %s ImageBoot/.Flash ' , ' w ' % getNeoLocation ( ) ) . write ( image )
except :
False
elif fileExists ( ' /etc/issue.net ' ) :
try :
obraz = open ( ' /etc/issue.net ' , ' r ' ) . readlines ( )
imagetype = obraz [ 0 ] [ : - 1 ]
lines = open ( ' /etc/hostname ' , ' r ' ) . readlines ( )
boxtype = lines [ 0 ] [ : - 1 ]
image = imagetype [ 0 : - 2 ] + ' ' + boxtype
open ( ' %s ImageBoot/.Flash ' , ' w ' % getNeoLocation ( ) ) . write ( image )
except :
False
elif fileExists ( ' %s ImageBoot/.Flash ' % getNeoLocation ( ) ) :
f = open ( ' %s ImageBoot/.Flash ' , ' r ' % getNeoLocation ( ) )
image = f . readline ( ) . strip ( )
f . close ( )
image = ' [ ' + image + ' ] '
self . list . append ( ' Flash ' + image )
self [ ' label5 ' ] . setText ( mypath )
if fileExists ( ' /.multinfo ' ) :
f2 = open ( ' /.multinfo ' , ' r ' )
mypath3 = f2 . readline ( ) . strip ( )
f2 . close ( )
self [ ' label6 ' ] . setText ( mypath3 )
else :
f2 = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' r ' )
mypath3 = f2 . readline ( ) . strip ( )
f2 . close ( )
self [ ' label6 ' ] . setText ( mypath3 )
mypath = ( ' %s ImageBoot ' % getNeoLocation ( ) )
myimages = listdir ( mypath )
for fil in myimages :
if os . path . isdir ( os . path . join ( mypath , fil ) ) :
self . list . append ( fil )
self [ ' label7 ' ] . setText ( str ( len ( self . list ) - 1 ) )
self [ ' config ' ] . setList ( self . list )
KERNELVERSION = getKernelImageVersion ( )
strview = PLUGINVERSION + ' ' + ' Kernel %s ' % KERNELVERSION
self [ ' label9 ' ] . setText ( strview )
self [ ' label19 ' ] . setText ( readline ( ' %s ImagesUpload/.kernel/used_flash_kernel ' % getNeoLocation ( ) ) )
strview = UPDATEVERSION
self [ ' label10 ' ] . setText ( strview )
def mytools ( self ) :
from Plugins . Extensions . NeoBoot . files . tools import MBTools
self . session . open ( MBTools )
2020-01-11 08:40:30 +02:00
def remove ( self ) :
2020-01-07 11:10:32 +02:00
self . mysel = self [ ' config ' ] . getCurrent ( )
if ' Flash ' in self . mysel :
self . mysel = ' Flash '
if self . mysel :
f = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' r ' )
mypath = f . readline ( ) . strip ( )
f . close ( )
try :
if fileExists ( ' /.multinfo ' ) :
self . session . open ( MessageBox , _ ( ' Sorry you can delete only from the image Flash. ' ) , MessageBox . TYPE_INFO , 5 )
elif self . mysel == ' Flash ' :
self . session . open ( MessageBox , _ ( ' Sorry you cannot delete Flash image ' ) , MessageBox . TYPE_INFO , 5 )
elif mypath == self . mysel :
self . session . open ( MessageBox , _ ( ' Sorry you cannot delete the image currently booted from. ' ) , MessageBox . TYPE_INFO , 5 )
else :
out = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' w ' )
out . write ( ' Flash ' )
out . close ( )
message = _ ( ' Delete the selected image - ' ) + self . mysel + _ ( ' \n Delete ? ' )
ybox = self . session . openWithCallback ( self . remove2 , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Delete Confirmation ' ) )
except :
print ' no image to remove '
else :
self . mysel
def up ( self ) :
self . list = [ ]
self [ ' config ' ] . setList ( self . list )
self . updateList ( )
def up2 ( self ) :
try :
self . list = [ ]
self [ ' config ' ] . setList ( self . list )
self . updateList ( )
except :
print ' '
def remove2 ( self , yesno ) :
if yesno :
cmd = _ ( " echo -e ' Deleting in progress... \n ' " )
cmd1 = ' rm -r %s ImageBoot/ ' % getNeoLocation ( ) + self . mysel
self . session . openWithCallback ( self . up , Console , _ ( ' NeoBoot: Deleting Image ' ) , [ cmd , cmd1 ] )
else :
self . session . open ( MessageBox , _ ( ' Removing canceled! ' ) , MessageBox . TYPE_INFO )
def ImageInstall ( self ) :
2020-01-09 13:02:00 +02:00
if fileExists ( ' /.multinfo ' ) :
2020-01-18 20:27:11 +02:00
message = _ ( ' Installing new neoboot software, only recommended from Flash!!! \n ---Continue ?--- ' )
2020-01-09 13:02:00 +02:00
ybox = self . session . openWithCallback ( self . installation_image , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Installation with risk ' ) )
else :
2020-01-18 20:27:11 +02:00
message = _ ( ' Installation from Flash!!! \n ---Continue ?--- ' )
2020-01-09 13:33:47 +02:00
ybox = self . session . openWithCallback ( self . installation_image , MessageBox , message , MessageBox . TYPE_YESNO )
ybox . setTitle ( _ ( ' Installation new image. ' ) )
# self.installation_image()
2020-01-09 13:02:00 +02:00
def installation_image ( self , yesno ) :
if yesno :
2020-01-07 11:10:32 +02:00
if getCPUSoC ( ) or getBoxHostName ( ) or getTunerModel ( ) == [ ' zgemmah9s ' ,
' osmio4k ' ,
' bcm7252s ' ,
' gbquad4k ' ,
' ax60 ' ,
' sf8008 ' ,
' bcm7251 ' ,
' sf4008 ' ,
2020-01-07 21:26:28 +02:00
' et1x000 ' ,
2020-01-11 09:09:42 +02:00
' ax51 ' ,
2020-01-10 21:49:51 +02:00
' dm920 ' ,
2020-01-07 11:10:32 +02:00
' bcm7251s ' ,
' 7241 ' ,
' h7 ' ,
' dm900 ' ,
' BCM97252SSFF ' ,
' 7444s ' ,
' 7252s ' ,
' 7376 ' ,
' 72604 ' ,
' 7278 ' ,
' 7335 ' ,
' 7413 ' ,
' 7325 ' ,
' 7356 ' ,
' bcm7356 ' ,
' 7429 ' ,
' 7424 ' ,
' 7362 ' ,
' bcm7362 ' ,
' BCM7362 ' ,
' bcm7358 ' ,
2020-01-18 11:23:42 +02:00
' bcm73625 '
2020-01-07 11:10:32 +02:00
' 7405 ' ,
' 7405(with 3D) ' ,
' bcm7424 ' ,
' vuultimo ' ,
' mbmini ' ,
' osmini ' ,
' mbultra ' ,
' ustym4kpro '
2020-01-18 11:23:42 +02:00
' h3 '
' formuler4turbo ' ] :
2020-01-07 11:10:32 +02:00
self . extractImage ( )
else :
2020-01-18 20:27:11 +02:00
self . messagebox = self . session . open ( MessageBox , _ ( ' The tuner is not supported by NeoBoot. \n Contact the author. \n No proper STB for installation !!!! ' ) , MessageBox . TYPE_INFO , 8 )
2020-01-07 11:10:32 +02:00
self . close ( )
else :
2020-01-18 20:27:11 +02:00
self . messagebox = self . session . open ( MessageBox , _ ( ' It is recommended to install new software only from a flash system. \n ---NEOBOOT EXIT--- ' ) , MessageBox . TYPE_INFO , 10 )
2020-01-07 11:10:32 +02:00
self . close ( )
2020-01-09 13:02:00 +02:00
2020-01-07 11:10:32 +02:00
def extractImage ( self ) :
images = False
if fileExists ( ' %s ImageBoot/.without_copying ' % getNeoLocation ( ) ) :
system ( ' rm %s ImageBoot/.without_copying ' % getNeoLocation ( ) )
if not os . path . exists ( ' %s ImagesUpload ' % getNeoLocation ( ) ) :
system ( ' mkdir %s ImagesUpload ' % getNeoLocation ( ) )
myimages = listdir ( ' %s ImagesUpload ' % getNeoLocation ( ) )
print myimages
for fil in myimages :
if fil . endswith ( ' .zip ' ) :
images = True
break
if fil . endswith ( ' .tar.xz ' ) :
images = True
break
if fil . endswith ( ' .nfi ' ) :
images = True
break
else :
images = False
if images == True :
from Plugins . Extensions . NeoBoot . unpack import InstallImage
self . session . open ( InstallImage )
else :
self . ImageSystem ( )
def ImageSystem ( self ) :
if fileExists ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) ) :
self . messagebox = self . session . open ( MessageBox , _ ( ' [NeoBoot] The %s ImagesUpload directory is EMPTY !!! \n Please upload the image files in .ZIP or .NFI formats to install. \n ' % getNeoLocation ( ) ) , MessageBox . TYPE_INFO , 8 )
self . close ( )
else :
self . close ( )
def boot ( self ) :
self . mysel = self [ ' config ' ] . getCurrent ( )
if ' Flash ' in self . mysel :
self . mysel = ' Flash '
if self . mysel :
out = open ( ' ' + getNeoLocation ( ) + ' ImageBoot/.neonextboot ' , ' w ' )
out . write ( self . mysel )
out . close ( )
from Plugins . Extensions . NeoBoot . run import StartImage
self . session . open ( StartImage )
def myClose ( self , message ) :
self . session . open ( MessageBox , message , MessageBox . TYPE_INFO )
self . close ( )
def readline ( filename , iferror = ' ' ) :
if iferror [ : 3 ] == ' or: ' :
data = iferror [ 3 : ]
else :
data = iferror
try :
if os . path . exists ( filename ) :
with open ( filename ) as f :
data = f . readline ( ) . strip ( )
f . close ( )
except Exception :
PrintException ( )
return data
2020-01-12 23:23:04 +02:00
def checkInternet ( ) :
try :
response = urllib2 . urlopen ( " http://google.com " , None , 5 )
response . close ( )
except urllib2 . HTTPError :
return False
except urllib2 . URLError :
return False
except socket . timeout :
return False
else :
return True
2020-01-07 11:10:32 +02:00
def checkimage ( ) :
mycheck = False
if fileExists ( ' /proc/stb/info ' ) : #vumodel'): ogranicza tylko dla vu+
mycheck = True
else :
mycheck = False
return mycheck
2020-01-18 20:27:11 +02:00
def main ( session , * * kwargs ) :
2020-01-19 20:56:14 +02:00
if not fileExists ( ' ' + LinkNeoBoot + ' /files/neo.sh ' ) :
2020-01-07 11:10:32 +02:00
pass
else :
if not fileExists ( ' %s ImageBoot/.version ' % getNeoLocation ( ) ) :
2020-01-16 20:31:58 +02:00
os . system ( ' chmod 0755 ' + LinkNeoBoot + ' /files/mountpoint.sh; ' + LinkNeoBoot + ' /files/mountpoint.sh ' )
2020-01-07 11:10:32 +02:00
version = 0
if fileExists ( ' %s ImageBoot/.version ' % getNeoLocation ( ) ) :
f = open ( ' %s ImageBoot/.version ' % getNeoLocation ( ) )
version = float ( f . read ( ) )
f . close ( )
if fileExists ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) ) :
f2 = open ( ' %s ImageBoot/.neonextboot ' % getNeoLocation ( ) , ' r ' )
mypath2 = f2 . readline ( ) . strip ( )
f2 . close ( )
if mypath2 != ' Flash ' or mypath2 == ' Flash ' and checkimage ( ) :
if float ( PLUGINVERSION ) != version :
session . open ( MyUpgrade )
else :
session . open ( NeoBootImageChoose )
else :
2020-01-18 20:27:11 +02:00
session . open ( MessageBox , _ ( ' Sorry: Wrong image in flash found. You have to install in flash. !!! ' ) , MessageBox . TYPE_INFO , 10 )
2020-01-07 11:10:32 +02:00
else :
session . open ( NeoBootInstallation )
def menu ( menuid , * * kwargs ) :
if menuid == ' mainmenu ' :
return [ ( _ ( ' NeoBOOT ' ) ,
main ,
' neo_boot ' ,
1 ) ]
return [ ]
from Plugins . Plugin import PluginDescriptor
def Plugins ( * * kwargs ) :
2020-01-18 20:27:11 +02:00
return [ PluginDescriptor ( name = ' NeoBoot ' , description = ' NeoBoot ' , where = PluginDescriptor . WHERE_MENU , fnc = menu ) , PluginDescriptor ( name = ' NeoBoot ' , description = _ ( ' Installing multiple images ' ) , icon = ' neo.png ' , where = PluginDescriptor . WHERE_PLUGINMENU , fnc = main ) ]
2020-01-07 11:10:32 +02:00
2020-01-07 12:04:02 +02:00
####################### _(-_-)_ gutosie _(-_-)_ #######################