mirror of
https://github.com/gutosie/neoboot.git
synced 2025-10-30 02:45:47 +01:00
1140 lines
45 KiB
Python
1140 lines
45 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
#from Plugins.Extensions.NeoBoot.__init__ import _
|
|
import sys
|
|
import os
|
|
import time
|
|
from Tools.Directories import fileExists, SCOPE_PLUGINS
|
|
LinkNeoBoot = '/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot'
|
|
|
|
LogFileObj = None
|
|
|
|
def Log(param=''):
|
|
global LogFileObj
|
|
#first close object if exists
|
|
if param.lower() in ['open', 'write', 'append', 'close']:
|
|
if LogFileObj is not None:
|
|
LogFileObj.close()
|
|
if LogFileObj.closed:
|
|
LogFileObj = None
|
|
try:
|
|
with open('/tmp/NeoBoot.log', 'a') as f:
|
|
f.write('LogFile closed properly\n')
|
|
f.close()
|
|
except Exception:
|
|
print("ERROR closing LogFile!!!")
|
|
else:
|
|
print("ERROR closing LogFile!!!")
|
|
#second create object if does not exist
|
|
if LogFileObj is None:
|
|
if param.lower() in ['open', 'write']:
|
|
LogFileObj = open(LogFile, "w")
|
|
elif param.lower() in ['append']:
|
|
LogFileObj = open(LogFile, "a")
|
|
elif param.lower() in ['close']:
|
|
pass
|
|
elif param.lower() in ['flush']:
|
|
LogFileObj.flush()
|
|
return LogFileObj
|
|
|
|
|
|
def clearMemory():
|
|
with open("/proc/sys/vm/drop_caches", "w") as f:
|
|
f.write("1\n")
|
|
f.close()
|
|
|
|
|
|
def LogCrashGS(line):
|
|
log_file = open('%sImageBoot/neoboot.log' % getNeoLocation(), 'a')
|
|
log_file.write(line)
|
|
log_file.close()
|
|
|
|
|
|
def fileCheck(f, mode='r'):
|
|
return fileExists(f, mode) and f
|
|
|
|
# if not IsImageName():
|
|
# from Components.PluginComponent import plugins
|
|
# plugins.reloadPlugins()
|
|
|
|
|
|
def IsImageName():
|
|
if fileExists("/etc/issue"):
|
|
for line in open("/etc/issue"):
|
|
if "BlackHole" in line or "vuplus" in line:
|
|
return True
|
|
return False
|
|
|
|
|
|
def mountp():
|
|
pathmp = []
|
|
if os.path.isfile('/proc/mounts'):
|
|
for line in open('/proc/mounts'):
|
|
if '/dev/sd' in line or '/dev/disk/by-uuid/' in line or '/dev/mmc' in line or '/dev/mtdblock' in line:
|
|
pathmp.append(line.split()[1].replace('\\040', ' ') + '/')
|
|
pathmp.append('/usr/share/enigma2/')
|
|
pathmp.append('/etc/enigma2/')
|
|
pathmp.append('/tmp/')
|
|
return pathmp
|
|
|
|
|
|
def getSupportedTuners():
|
|
supportedT = ''
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/stbinfo.cfg'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/stbinfo.cfg', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find("%s" % getBoxHostName()) != -1:
|
|
supportedT = '%s' % getBoxHostName()
|
|
return supportedT
|
|
|
|
|
|
def getFreespace(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
|
|
|
|
#check install
|
|
|
|
|
|
def getCheckInstal1():
|
|
neocheckinstal = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/install'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/install', 'r') as f:
|
|
lines1 = f.read()
|
|
f.close()
|
|
if not lines1.find('/dev/') != -1:
|
|
neocheckinstal = '1'
|
|
return neocheckinstal
|
|
|
|
|
|
def getCheckInstal2():
|
|
neocheckinstal = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/.location'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/.location', 'r') as f:
|
|
lines2 = f.read()
|
|
f.close()
|
|
if not lines2.find('/media/') != -1:
|
|
neocheckinstal = '2'
|
|
return neocheckinstal
|
|
|
|
|
|
def getCheckInstal3():
|
|
neocheckinstal = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/neo.sh'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/files/neo.sh', 'r') as f:
|
|
lines3 = f.read()
|
|
f.close()
|
|
if not lines3.find('/bin/mount') != -1:
|
|
neocheckinstal = '3'
|
|
|
|
return neocheckinstal
|
|
|
|
#check imageATV
|
|
|
|
|
|
def getImageATv():
|
|
atvimage = 'UNKNOWN'
|
|
if os.path.exists('/etc/issue.net'):
|
|
with open('/etc/issue.net', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('openatv') != -1:
|
|
atvimage = 'okfeedCAMatv'
|
|
return atvimage
|
|
|
|
#check install
|
|
|
|
|
|
def getNeoLocation():
|
|
locatinoneo = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/.location'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/.location', 'r') as f:
|
|
locatino = f.readline().strip()
|
|
f.close()
|
|
if os.path.exists('/media/hdd/ImageBoot'):
|
|
locatinoneo = '/media/hdd/'
|
|
elif os.path.exists('/media/usb/ImageBoot'):
|
|
locatinoneo = '/media/usb/'
|
|
else:
|
|
locatinoneo = locatino
|
|
return locatinoneo
|
|
|
|
|
|
#check ext
|
|
def getFormat():
|
|
neoformat = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('ext2') != -1:
|
|
neoformat = 'ext2'
|
|
elif lines.find('ext3') != -1:
|
|
neoformat = 'ext3'
|
|
elif lines.find('ext4') != -1:
|
|
neoformat = 'ext4'
|
|
elif lines.find('nfs') != -1:
|
|
neoformat = 'nfs'
|
|
|
|
return neoformat
|
|
|
|
|
|
def getNEO_filesystems():
|
|
neo_filesystems = 'UNKNOWN'
|
|
if os.path.exists('/tmp/.neo_format'):
|
|
with open('/tmp/.neo_format', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('ext2') != -1:
|
|
neo_filesystems = '1'
|
|
elif lines.find('ext3') != -1:
|
|
neo_filesystems = '1'
|
|
elif lines.find('ext4') != -1:
|
|
neo_filesystems = '1'
|
|
elif lines.find('nfs') != -1:
|
|
neo_filesystems = '1'
|
|
|
|
return neo_filesystems
|
|
|
|
#typ procesora arm lub mips
|
|
|
|
|
|
def getCPUtype():
|
|
cpu = 'UNKNOWN'
|
|
if os.path.exists('/proc/cpuinfo'):
|
|
with open('/proc/cpuinfo', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('ARMv7') != -1:
|
|
cpu = 'ARMv7'
|
|
elif lines.find('mips') != -1:
|
|
cpu = 'MIPS'
|
|
return cpu
|
|
|
|
#check install
|
|
|
|
|
|
def getFSTAB():
|
|
install = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/reading_blkid'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/reading_blkid', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('UUID') != -1:
|
|
install = 'UUID'
|
|
elif not lines.find('UUID') != -1:
|
|
install = 'NOUUID'
|
|
return install
|
|
|
|
|
|
def getFSTAB2():
|
|
install = 'UNKNOWN'
|
|
if os.path.exists('/etc/fstab'):
|
|
with open('/etc/fstab', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('UUID') != -1:
|
|
install = 'OKinstall'
|
|
elif not lines.find('UUID') != -1:
|
|
install = 'NOUUID'
|
|
return install
|
|
|
|
|
|
def getINSTALLNeo():
|
|
neoinstall = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/installNeo'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/installNeo', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1') != -1:
|
|
neoinstall = '/dev/sda1'
|
|
elif lines.find('/dev/sda2') != -1:
|
|
neoinstall = '/dev/sda2'
|
|
elif lines.find('/dev/sdb1') != -1:
|
|
neoinstall = '/dev/sdb1'
|
|
elif lines.find('/dev/sdb2') != -1:
|
|
neoinstall = '/dev/sdb2'
|
|
elif lines.find('/dev/sdc1') != -1:
|
|
neoinstall = '/dev/sdc1'
|
|
elif lines.find('/dev/sdd1') != -1:
|
|
neoinstall = '/dev/sdd1'
|
|
elif lines.find('/dev/sde1') != -1:
|
|
neoinstall = '/dev/sde1'
|
|
elif lines.find('/dev/sdf1') != -1:
|
|
neoinstall = '/dev/sdf1'
|
|
|
|
return neoinstall
|
|
|
|
|
|
def getLocationMultiboot():
|
|
LocationMultiboot = 'UNKNOWN'
|
|
if os.path.exists('/media/sda1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sda1'
|
|
if os.path.exists('/media/sda2/ImageBoot'):
|
|
LocationMultiboot = '/dev/sda2'
|
|
if os.path.exists('/media/sdb1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sdb1'
|
|
if os.path.exists('/media/sdb2/ImageBoot'):
|
|
LocationMultiboot = '/dev/sdb2'
|
|
if os.path.exists('/media/sdc1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sdc1'
|
|
if os.path.exists('/media/sdd1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sdd1'
|
|
if os.path.exists('/media/sde1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sde1'
|
|
if os.path.exists('/media/sdf1/ImageBoot'):
|
|
LocationMultiboot = '/dev/sdf1'
|
|
|
|
return LocationMultiboot
|
|
|
|
|
|
def getLabelDisck():
|
|
label = 'UNKNOWN'
|
|
if os.path.exists('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/reading_blkid'):
|
|
with open('/usr/lib/enigma2/python/Plugins/Extensions/NeoBoot/bin/reading_blkid', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('LABEL=') != -1:
|
|
label = 'LABEL='
|
|
return label
|
|
|
|
#checking device neo
|
|
|
|
|
|
def getNeoMountDisc():
|
|
lines_mount = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines_mount = f.read()
|
|
f.close()
|
|
|
|
return lines_mount
|
|
|
|
|
|
def getNeoMount():
|
|
neo = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sdb1'
|
|
elif lines.find('/dev/sda2 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sda2'
|
|
elif lines.find('/dev/sdb2 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sdb2'
|
|
elif lines.find('/dev/sdc1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sdc1'
|
|
elif lines.find('/dev/sdd1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sdd1'
|
|
elif lines.find('/dev/sde1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sde1'
|
|
elif lines.find('/dev/sdf1 /media/hdd') != -1:
|
|
neo = 'hdd_install_/dev/sdf1'
|
|
|
|
return neo
|
|
|
|
|
|
def getNeoMount2():
|
|
neo = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sdb1'
|
|
elif lines.find('/dev/sdb2 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sdb2'
|
|
elif lines.find('/dev/sdc1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sdc1'
|
|
elif lines.find('/dev/sdd1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sdd1'
|
|
elif lines.find('/dev/sde1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sde1'
|
|
elif lines.find('/dev/sdf1 /media/usb') != -1:
|
|
neo = 'usb_install_/dev/sdf1'
|
|
elif lines.find('/dev/sda1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sdb1'
|
|
elif lines.find('/dev/sdb2 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sdb2'
|
|
elif lines.find('/dev/sdc1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sdc1'
|
|
elif lines.find('/dev/sdd1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sdd1'
|
|
elif lines.find('/dev/sde1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sde1'
|
|
elif lines.find('/dev/sdf1 /media/usb2') != -1:
|
|
neo = 'usb_install_/dev/sdf1'
|
|
|
|
return neo
|
|
|
|
|
|
def getNeoMount3():
|
|
neo = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/cf') != -1:
|
|
neo = 'cf_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/cf') != -1:
|
|
neo = 'cf_install_/dev/sdb1'
|
|
return neo
|
|
|
|
|
|
def getNeoMount4():
|
|
neo = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/card') != -1:
|
|
neo = 'card_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/card') != -1:
|
|
neo = 'card_install_/dev/sdb1'
|
|
return neo
|
|
|
|
|
|
def getNeoMount5():
|
|
neo = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/mmc') != -1:
|
|
neo = 'mmc_install_/dev/sda1'
|
|
elif lines.find('/dev/sdb1 /media/mmc') != -1:
|
|
neo = 'mmc_install_/dev/sdb1'
|
|
return neo
|
|
|
|
|
|
#zwraca typ chipa prcesora
|
|
def getCPUSoC():
|
|
chipset = 'UNKNOWN'
|
|
if os.path.exists('/proc/stb/info/chipset'):
|
|
with open('/proc/stb/info/chipset', 'r') as f:
|
|
chipset = f.readline().strip()
|
|
f.close()
|
|
if chipset == '7405(with 3D)':
|
|
chipset = '7405'
|
|
return chipset
|
|
|
|
|
|
def getCPUSoCModel():
|
|
devicetree = 'UNKNOWN'
|
|
if os.path.exists('/proc/device-tree/model'):
|
|
with open('/proc/device-tree/model', 'r') as f:
|
|
devicetree = f.readline().strip()
|
|
f.close()
|
|
return devicetree
|
|
|
|
#zwraca wybrane image w neoboot do uruchomienia
|
|
|
|
|
|
def getImageNeoBoot():
|
|
imagefile = 'UNKNOWN'
|
|
if os.path.exists('%sImageBoot/.neonextboot' % getNeoLocation()):
|
|
with open('%sImageBoot/.neonextboot' % getNeoLocation(), 'r') as f:
|
|
imagefile = f.readline().strip()
|
|
f.close()
|
|
return imagefile
|
|
|
|
#zwraca model vuplus
|
|
|
|
|
|
def getBoxVuModel():
|
|
vumodel = 'UNKNOWN'
|
|
if fileExists("/proc/stb/info/vumodel") and not fileExists("/proc/stb/info/boxtype"):
|
|
with open('/proc/stb/info/vumodel', 'r') as f:
|
|
vumodel = f.readline().strip()
|
|
f.close()
|
|
elif fileExists("/proc/stb/info/boxtype") and not fileExists("/proc/stb/info/vumodel"):
|
|
with open('/proc/stb/info/boxtype', 'r') as f:
|
|
vumodel = f.readline().strip()
|
|
f.close()
|
|
return vumodel
|
|
|
|
|
|
def getVuModel():
|
|
if fileExists("/proc/stb/info/vumodel") and not fileExists("/proc/stb/info/boxtype"):
|
|
brand = "Vu+"
|
|
f = open("/proc/stb/info/vumodel", 'r')
|
|
procmodel = f.readline().strip()
|
|
f.close()
|
|
model = procmodel.title().replace("olose", "olo SE").replace("olo2se", "olo2 SE").replace("2", "²")
|
|
return model
|
|
|
|
#zwraca nazwe stb z pliku hostname
|
|
|
|
|
|
def getBoxHostName():
|
|
if os.path.exists('/etc/hostname'):
|
|
with open('/etc/hostname', 'r') as f:
|
|
myboxname = f.readline().strip()
|
|
f.close()
|
|
return myboxname
|
|
|
|
#zwraca vuplus/vumodel
|
|
|
|
|
|
def getTunerModel(): #< neoboot.py
|
|
BOX_NAME = ''
|
|
if os.path.isfile('/proc/stb/info/vumodel') and not os.path.isfile("/proc/stb/info/boxtype"):
|
|
BOX_NAME = open('/proc/stb/info/vumodel').read().strip()
|
|
ImageFolder = 'vuplus/%s' % BOX_NAME
|
|
elif os.path.isfile('proc/stb/info/boxtype'):
|
|
BOX_NAME = open('/proc/stb/info/boxtype').read().strip()
|
|
elif os.path.isfile('proc/stb/info/model') and not os.path.isfile("/proc/stb/info/mid"):
|
|
BOX_NAME = open('/proc/stb/info/model').read().strip()
|
|
return BOX_NAME
|
|
|
|
#zwraca strukture folderu zip - vuplus/vumodel
|
|
|
|
|
|
def getImageFolder():
|
|
if os.path.isfile('/proc/stb/info/vumodel'):
|
|
BOX_NAME = getBoxModelVU()
|
|
ImageFolder = 'vuplus/' + BOX_NAME
|
|
return ImageFolder
|
|
|
|
#zwraca nazwe kernela z /lib/modules
|
|
|
|
|
|
def getKernelVersion():
|
|
try:
|
|
return open('/proc/version', 'r').read().split(' ', 4)[2].split('-', 2)[0]
|
|
except:
|
|
return _('unknown')
|
|
|
|
# czysci pamiec
|
|
|
|
|
|
def runCMDS(cmdsList):
|
|
clearMemory()
|
|
if isinstance(cmdsList, (list, tuple)):
|
|
myCMD = '\n'.join(cmdsList)# + '\n'
|
|
ret = os.system(myCMD)
|
|
return rett
|
|
|
|
|
|
def getImageDistroN():
|
|
image = 'Internal storage'
|
|
|
|
if fileExists('/.multinfo') and fileExists('%sImageBoot/.imagedistro' % getNeoLocation()):
|
|
with open('%sImageBoot/.imagedistro' % getNeoLocation(), 'r') as f:
|
|
image = f.readline().strip()
|
|
f.close()
|
|
|
|
elif not fileExists('/.multinfo') and fileExists('/etc/vtiversion.info'):
|
|
f = open("/etc/vtiversion.info", 'r')
|
|
imagever = f.readline().strip().replace("Release ", " ")
|
|
f.close()
|
|
image = imagever
|
|
|
|
elif not fileExists('/.multinfo') and fileExists('/etc/bhversion'):
|
|
f = open("/etc/bhversion", 'r')
|
|
imagever = f.readline().strip()
|
|
f.close()
|
|
image = imagever
|
|
|
|
# elif not fileExists('/.multinfo') and fileExists('/etc/vtiversion.info'):
|
|
# image = 'VTI Team Image '
|
|
|
|
elif fileExists('/.multinfo') and fileExists('/etc/bhversion'):
|
|
image = 'Flash ' + ' ' + getBoxHostName()
|
|
|
|
elif fileExists('/.multinfo') and fileExists('/etc/vtiversion.info'):
|
|
image = 'Flash ' + ' ' + getBoxHostName()
|
|
|
|
elif fileExists('/usr/lib/enigma2/python/boxbranding.so') and not fileExists('/.multinfo'):
|
|
from boxbranding import getImageDistro
|
|
image = getImageDistro()
|
|
|
|
elif fileExists('/media/InternalFlash/etc/issue.net') and fileExists('/.multinfo') and not fileExists('%sImageBoot/.imagedistro' % getNeoLocation()):
|
|
obraz = open('/media/InternalFlash/etc/issue.net', 'r').readlines()
|
|
imagetype = obraz[0][:-3]
|
|
image = imagetype
|
|
|
|
elif fileExists('/etc/issue.net') and not fileExists('/.multinfo'):
|
|
obraz = open('/etc/issue.net', 'r').readlines()
|
|
imagetype = obraz[0][:-3]
|
|
image = imagetype
|
|
|
|
else:
|
|
image = 'Inernal Flash ' + ' ' + getBoxHostName()
|
|
|
|
return image
|
|
|
|
|
|
def getKernelVersionString():
|
|
try:
|
|
result = popen('uname -r', 'r').read().strip('\n').split('-')
|
|
kernel_version = result[0]
|
|
return kernel_version
|
|
except:
|
|
pass
|
|
|
|
return 'unknown'
|
|
|
|
|
|
def getKernelImageVersion():
|
|
try:
|
|
from glob import glob
|
|
lines = open(glob('/var/lib/opkg/info/kernel-*.control')[0], 'r').readlines()
|
|
kernelimage = lines[1][:-1]
|
|
except:
|
|
kernelimage = getKernelVersionString
|
|
|
|
return kernelimage
|
|
|
|
|
|
def getTypBoxa():
|
|
if not fileExists('/etc/typboxa'):
|
|
os.system('touch /etc/typboxa')
|
|
f2 = open('/etc/hostname', 'r')
|
|
mypath2 = f2.readline().strip()
|
|
f2.close()
|
|
if mypath2 == 'vuuno':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Uno ')
|
|
out.close()
|
|
elif mypath2 == 'vuultimo':
|
|
out = open('/etc/typboxa', 'w')
|
|
out.write('Vu+Ultimo ')
|
|
out.close()
|
|
elif mypath2 == 'vuduo':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Duo ')
|
|
out.close()
|
|
elif mypath2 == 'vuduo2':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Duo2 ')
|
|
out.close()
|
|
elif mypath2 == 'vusolo':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Solo ')
|
|
out.close()
|
|
elif mypath2 == 'vusolo2':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Solo2 ')
|
|
out.close()
|
|
elif mypath2 == 'vusolose':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Solo-SE ')
|
|
out.close()
|
|
elif mypath2 == 'vuvzero':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Zero ')
|
|
out.close()
|
|
elif mypath2 == 'vuuno4k':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Uno4k ')
|
|
out.close()
|
|
elif mypath2 == 'vuultimo4k':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Ultimo4k ')
|
|
out.close()
|
|
elif mypath2 == 'vusolo4k':
|
|
out = open('/etc/typboxa ', 'w')
|
|
out.write('Vu+Solo4k ')
|
|
out.close()
|
|
elif mypath2 == 'mbmini':
|
|
out = open('/etc/typboxa', 'w')
|
|
out.write('Miraclebox-Mini ')
|
|
out.close()
|
|
elif mypath2 == 'mutant51':
|
|
out = open('/etc/typboxa', 'w')
|
|
out.write('Mutant 51 ')
|
|
out.close()
|
|
elif mypath2 == 'sf4008':
|
|
out = open('/etc/typboxa', 'w')
|
|
out.write('Ocatgon sf4008 ')
|
|
out.close()
|
|
elif mypath2 == 'ax51':
|
|
out = open('/etc/typboxa', 'w')
|
|
out.write('ax51 ')
|
|
out.close()
|
|
|
|
try:
|
|
lines = open('/etc/typboxa', 'r').readlines()
|
|
typboxa = lines[0][:-1]
|
|
except:
|
|
typboxa = 'not detected'
|
|
|
|
return typboxa
|
|
|
|
|
|
def getImageVersionString():
|
|
try:
|
|
if os.path.isfile('/var/lib/opkg/status'):
|
|
st = os.stat('/var/lib/opkg/status')
|
|
else:
|
|
st = os.stat('/usr/lib/ipkg/status')
|
|
tm = time.localtime(st.st_mtime)
|
|
if tm.tm_year >= 2015:
|
|
return time.strftime('%Y-%m-%d %H:%M:%S', tm)
|
|
except:
|
|
pass
|
|
|
|
return _('unavailable')
|
|
|
|
|
|
def getModelString():
|
|
try:
|
|
file = open('/proc/stb/info/boxtype', 'r')
|
|
model = file.readline().strip()
|
|
file.close()
|
|
return model
|
|
except IOError:
|
|
return 'unknown'
|
|
|
|
|
|
def getChipSetString():
|
|
try:
|
|
f = open('/proc/stb/info/chipset', 'r')
|
|
chipset = f.read()
|
|
f.close()
|
|
return str(chipset.lower().replace('\n', '').replace('bcm', ''))
|
|
except IOError:
|
|
return 'unavailable'
|
|
|
|
|
|
def getCPUString():
|
|
try:
|
|
file = open('/proc/cpuinfo', 'r')
|
|
lines = file.readlines()
|
|
for x in lines:
|
|
splitted = x.split(': ')
|
|
if len(splitted) > 1:
|
|
splitted[1] = splitted[1].replace('\n', '')
|
|
if splitted[0].startswith('system type'):
|
|
system = splitted[1].split(' ')[0]
|
|
elif splitted[0].startswith('Processor'):
|
|
system = splitted[1].split(' ')[0]
|
|
|
|
file.close()
|
|
return system
|
|
except IOError:
|
|
return 'unavailable'
|
|
|
|
|
|
def getCpuCoresString():
|
|
try:
|
|
file = open('/proc/cpuinfo', 'r')
|
|
lines = file.readlines()
|
|
for x in lines:
|
|
splitted = x.split(': ')
|
|
if len(splitted) > 1:
|
|
splitted[1] = splitted[1].replace('\n', '')
|
|
if splitted[0].startswith('processor'):
|
|
if int(splitted[1]) > 0:
|
|
cores = 2
|
|
else:
|
|
cores = 1
|
|
|
|
file.close()
|
|
return cores
|
|
except IOError:
|
|
return 'unavailable'
|
|
|
|
|
|
def getEnigmaVersionString():
|
|
import enigma
|
|
enigma_version = enigma.getEnigmaVersionString()
|
|
if '-(no branch)' in enigma_version:
|
|
enigma_version = enigma_version[:-12]
|
|
return enigma_version
|
|
|
|
|
|
def getKernelVersionString():
|
|
try:
|
|
f = open('/proc/version', 'r')
|
|
kernelversion = f.read().split(' ', 4)[2].split('-', 2)[0]
|
|
f.close()
|
|
return kernelversion
|
|
except:
|
|
return _('unknown')
|
|
|
|
|
|
def getHardwareTypeString():
|
|
try:
|
|
if os.path.isfile('/proc/stb/info/boxtype'):
|
|
return open('/proc/stb/info/boxtype').read().strip().upper() + ' (' + open('/proc/stb/info/board_revision').read().strip() + '-' + open('/proc/stb/info/version').read().strip() + ')'
|
|
if os.path.isfile('/proc/stb/info/vumodel'):
|
|
return 'VU+' + open('/proc/stb/info/vumodel').read().strip().upper() + '(' + open('/proc/stb/info/version').read().strip().upper() + ')'
|
|
if os.path.isfile('/proc/stb/info/model'):
|
|
return open('/proc/stb/info/model').read().strip().upper()
|
|
except:
|
|
pass
|
|
|
|
return _('unavailable')
|
|
|
|
|
|
def getImageTypeString():
|
|
try:
|
|
return open('/etc/issue').readlines()[-2].capitalize().strip()[:-6]
|
|
except:
|
|
pass
|
|
|
|
return _('undefined')
|
|
|
|
|
|
def getMachineBuild():
|
|
try:
|
|
return open('/proc/version', 'r').read().split(' ', 4)[2].split('-', 2)[0]
|
|
except:
|
|
return 'unknown'
|
|
|
|
|
|
def getVuBoxModel():
|
|
if fileExists('/proc/stb/info/vumodel'):
|
|
try:
|
|
l = open('/proc/stb/info/vumodel')
|
|
model = l.read()
|
|
l.close()
|
|
BOX_NAME = str(model.lower().strip())
|
|
l.close()
|
|
BOX_MODEL = 'vuplus'
|
|
except:
|
|
BOX_MODEL = 'not detected'
|
|
|
|
return BOX_MODEL
|
|
|
|
|
|
def getBoxModelVU():
|
|
try:
|
|
if os.path.isfile('/proc/stb/info/vumodel'):
|
|
return open('/proc/stb/info/vumodel').read().strip().upper()
|
|
except:
|
|
pass
|
|
|
|
return _('unavailable')
|
|
|
|
|
|
def getMachineProcModel():
|
|
if os.path.isfile('/proc/stb/info/vumodel'):
|
|
BOX_NAME = getBoxModelVU()
|
|
BOX_MODEL = getVuBoxModel()
|
|
if BOX_MODEL == 'vuplus':
|
|
if BOX_NAME == 'duo':
|
|
GETMACHINEPROCMODEL = 'bcm7335'
|
|
elif BOX_NAME == 'solo':
|
|
GETMACHINEPROCMODEL = 'bcm7325'
|
|
elif BOX_NAME == 'solo2':
|
|
GETMACHINEPROCMODEL = 'bcm7346'
|
|
elif BOX_NAME == 'solose':
|
|
GETMACHINEPROCMODEL = 'bcm7241'
|
|
elif BOX_NAME == 'ultimo' or BOX_NAME == 'uno':
|
|
GETMACHINEPROCMODEL = 'bcm7413'
|
|
elif BOX_NAME == 'zero':
|
|
GETMACHINEPROCMODEL = 'bcm7362'
|
|
elif BOX_NAME == 'duo2':
|
|
GETMACHINEPROCMODEL = 'bcm7425'
|
|
elif BOX_NAME == 'ultimo4k':
|
|
GETMACHINEPROCMODEL = 'bcm7444S'
|
|
elif BOX_NAME == 'uno4k':
|
|
GETMACHINEPROCMODEL = 'bcm7252S'
|
|
elif BOX_NAME == 'solo4k':
|
|
GETMACHINEPROCMODEL = 'bcm7376'
|
|
elif BOX_NAME == 'zero4K':
|
|
GETMACHINEPROCMODEL = 'bcm72604'
|
|
elif BOX_NAME == 'uno4kse':
|
|
GETMACHINEPROCMODEL = ''
|
|
procmodel = getMachineProcModel()
|
|
return procmodel
|
|
|
|
|
|
def getMountPointAll():
|
|
os.system('touch ' + LinkNeoBoot + '/files/mountpoint.sh; echo "#!/bin/sh\n" >> ' + LinkNeoBoot + '/files/mountpoint.sh; chmod 0755 ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
if getNeoMount() == 'hdd_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\nmkdir -p /media/sda1\n/bin/mount /dev/sda1 /media/hdd\n/bin/mount /dev/sda1 /media/sda1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\nmkdir -p /media/sdb1\n/bin/mount /dev/sdb1 /media/hdd\n/bin/mount /dev/sdb1 /media/sdb1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sda2':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\nmkdir -p /media/sda2\n/bin/mount /dev/sda2 /media/hdd\n/bin/mount /dev/sda2 /media/sda2" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sdb2':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\nmkdir -p /media/sdb2\n/bin/mount /dev/sdb2 /media/hdd\n/bin/mount /dev/sdb2 /media/sdb2" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
if getNeoMount2() == 'usb_install_/dev/sdb1':
|
|
os.system('echo "\numount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sdb1\n/bin/mount /dev/sdb1 /media/usb\n/bin/mount /dev/sdb1 /media/sdb1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sda1\n/bin/mount /dev/sda1 /media/sda1\n/bin/mount /dev/sda1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdb2':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sdb2\n/bin/mount /dev/sdb2 /media/sdb2\n/bin/mount /dev/sdb2 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdc1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sdc1\n/bin/mount /dev/sdc1 /media/sdb2\n/bin/mount /dev/sdc1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdd1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sdd1\n/bin/mount /dev/sdd1 /media/sdd1\n/bin/mount /dev/sdd1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sde1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sde1\n/bin/mount /dev/sde1 /media/sde1\n/bin/mount /dev/sde1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdf1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\nmkdir -p /media/sdf1\n/bin/mount /dev/sdf1 /media/sdf1\n/bin/mount /dev/sdf1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount3() == 'cf_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/cf\nmkdir -p /media/cf\nmkdir -p /media/sdb1\n/bin/mount /dev/sda1 /media/cf\n/bin/mount /dev/sda1 /media/sda1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount3() == 'cf_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/cf\nmkdir -p /media/cf\nmkdir -p /media/sdb1\n/bin/mount /dev/sdb1 /media/cf\n/bin/mount /dev/sdb1 /media/sdb1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount4() == 'card_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/card\nmkdir -p /media/card\nmkdir -p /media/sda1\n/bin/mount /dev/sda1 /media/card\n/bin/mount /dev/sda1 /media/sda1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount4() == 'card_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/card\nmkdir -p /media/card\nmkdir -p /media/sdb1\n/bin/mount /dev/sdb1 /media/card\n/bin/mount /dev/sdb1 /media/sdb1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount5() == 'mmc_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/mmc\nmkdir -p /media/mmc\nmkdir -p /media/sda1\n/bin/mount /dev/sda1 /media/mmc\n/bin/mount /dev/sda1 /media/sda1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount5() == 'mmc_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/mmc\nmkdir -p /media/mmc\nmkdir -p /media/sdb1\n/bin/mount /dev/sdb1 /media/mmc\n/bin/mount /dev/sdb1 /media/sdb1" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
os.system('echo "\n\nexit 0" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
|
|
|
|
def getMountPointNeo():
|
|
os.system('' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
os.system('echo ' + getLocationMultiboot() + ' > ' + LinkNeoBoot + '/bin/install; chmod 0755 ' + LinkNeoBoot + '/bin/install')
|
|
if getLocationMultiboot() == '/dev/sda1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sda1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sdb1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sdb1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sda2':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sda2 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sdb2':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sdb2 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sdc1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sdc1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sdd1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sdd1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sde1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sde1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
elif getLocationMultiboot() == '/dev/sdf1':
|
|
out = open('' + LinkNeoBoot + '/files/neo.sh', 'w')
|
|
out.write('#!/bin/sh\n\n/bin/mount /dev/sdf1 ' + getNeoLocation() + ' \n\nexit 0')
|
|
out.close()
|
|
os.system('chmod 755 ' + LinkNeoBoot + '/files/neo.sh')
|
|
|
|
|
|
def getMountPointNeo2():
|
|
#---------------------------------------------
|
|
os.system('touch ' + LinkNeoBoot + '/files/mountpoint.sh; echo "#!/bin/sh" > ' + LinkNeoBoot + '/files/mountpoint.sh; chmod 0755 ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
if getNeoMount() == 'hdd_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\n/bin/mount /dev/sda1 /media/hdd" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\n/bin/mount /dev/sdb1 /media/hdd" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sda2':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\n/bin/mount /dev/sda2 /media/hdd" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount() == 'hdd_install_/dev/sdb2':
|
|
os.system('echo "umount -l /media/hdd\nmkdir -p /media/hdd\n/bin/mount /dev/sda2 /media/hdd" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
if getNeoMount2() == 'usb_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sdb1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sda1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdb2':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sdb2 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdc1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sdc1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdd1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sdd1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sde1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sde1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount2() == 'usb_install_/dev/sdf1':
|
|
os.system('echo "umount -l /media/usb\nmkdir -p /media/usb\n/bin/mount /dev/sdf1 /media/usb" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount3() == 'cf_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/cf\nmkdir -p /media/cf\n/bin/mount /dev/sda1 /media/cf" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount3() == 'cf_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/cf\nmkdir -p /media/cf\n/bin/mount /dev/sdb1 /media/cf" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount4() == 'card_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/card\nmkdir -p /media/card\n/bin/mount /dev/sda1 /media/card" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount4() == 'card_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/card\nmkdir -p /media/card\n/bin/mount /dev/sdb1 /media/card" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
#---------------------------------------------
|
|
elif getNeoMount5() == 'mmc_install_/dev/sda1':
|
|
os.system('echo "umount -l /media/mmc\nmkdir -p /media/mmc\n/bin/mount /dev/sda1 /media/mmc" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
elif getNeoMount5() == 'mmc_install_/dev/sdb1':
|
|
os.system('echo "umount -l /media/mmc\nmkdir -p /media/mmc\n/bin/mount /dev/sdb1 /media/mmc" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
os.system('echo "\n\nexit 0" >> ' + LinkNeoBoot + '/files/mountpoint.sh')
|
|
|
|
def getBoxMacAddres():
|
|
os.system('%s > /tmp/.mymac' % ("ifconfig -a"))
|
|
if fileExists('/etc/.nameneo'):
|
|
os.system('cp -r /etc/.nameneo /tmp/.mymac; sleep 1')
|
|
with open('/tmp/.mymac', 'r') as f:
|
|
myboxmac = f.read()
|
|
f.close()
|
|
EthernetMac = myboxmac
|
|
elif fileExists('/tmp/.mymac'):
|
|
f = open("/tmp/.mymac", 'r')
|
|
myboxmac = f.readline().strip().replace("eth0 Link encap:Ethernet HWaddr ", "")
|
|
f.close()
|
|
EthernetMac = myboxmac
|
|
writefile = open('/tmp/.mymac' , 'w')
|
|
writefile.write(myboxmac)
|
|
writefile.close()
|
|
elif not fileExists('/tmp/.mymac'):
|
|
EthernetMac = '12:34:56:78:91:02'
|
|
|
|
return EthernetMac
|
|
|
|
def getCheckActivateVip():
|
|
supportedvip = ''
|
|
if os.path.exists('/usr/lib/periodon/.activatedmac'):
|
|
with open('/usr/lib/periodon/.activatedmac', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find("%s" % getBoxMacAddres()) != -1:
|
|
supportedvip = '%s' % getBoxMacAddres()
|
|
return supportedvip
|
|
|
|
def getMountDiskSTB():
|
|
neo_disk = ' '
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/dev/sda1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sda1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sdb1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sdb1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sda2 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sda2; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sdb2 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sdb2; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sdc1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sdc1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sdd1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sdd1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sde1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sde1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sdf1 /media/hdd') != -1:
|
|
os.system('touch /tmp/disk/sdf1; touch /tmp/disk/#---Select_the_disk_HDD:')
|
|
if lines.find('/dev/sda1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sda1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sdb1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sdb1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sda2 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sda2; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sdb2 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sdb2; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sdc1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sdc1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sdd1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sdd1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sde1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sde1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
if lines.find('/dev/sdf1 /media/usb') != -1:
|
|
os.system('touch /tmp/disk/sdf1; touch /tmp/disk/#---Select_the_disk_USB:')
|
|
|
|
return neo_disk
|
|
|
|
def getCheckExtDisk():
|
|
os.system("cat /proc/mounts | egrep -o '.ext.' | sort | uniq > /tmp/.myext")
|
|
if os.path.exists('/tmp/.myext'):
|
|
with open('/tmp/.myext', 'r') as f:
|
|
myboxEXT = f.readline().strip()
|
|
f.close()
|
|
return myboxEXT
|
|
|
|
def getCheckExt():
|
|
neoExt = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/media/usb vfat') != -1:
|
|
neoExt = 'vfat'
|
|
elif lines.find('/media/hdd vfat') != -1:
|
|
neoExt = 'vfat'
|
|
elif lines.find('/media/hdd ext3') != -1:
|
|
neoExt = 'ext3'
|
|
elif lines.find('/media/hdd ext4') != -1:
|
|
neoExt = 'ext4'
|
|
elif lines.find('/media/usb ext3') != -1:
|
|
neoExt = 'ext3'
|
|
elif lines.find('/media/usb ext4') != -1:
|
|
neoExt = 'ext4'
|
|
return neoExt
|
|
|
|
def getExtCheckHddUsb():
|
|
neoExt = 'UNKNOWN'
|
|
if os.path.exists('/proc/mounts'):
|
|
with open('/proc/mounts', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('/media/hdd ext4') != -1 or lines.find('/media/hdd type ext4') != -1 and os.path.exists('/media/hdd/ImageBoot'):
|
|
neoExt = 'ext4'
|
|
if lines.find('/media/usb ext4') != -1 or lines.find('/media/usb type ext4') != -1 and os.path.exists('/media/usb/ImageBoot'):
|
|
neoExt = 'ext4'
|
|
return neoExt
|
|
|
|
def getNandWrite():
|
|
NandWrite = 'NandWrite'
|
|
if fileExists('/usr/lib/python2.7'):
|
|
if os.path.exists('/usr/sbin/nandwrite'):
|
|
with open('/usr/sbin/nandwrite', 'r') as f:
|
|
lines = f.read()
|
|
f.close()
|
|
if lines.find('nandwrite') != -1:
|
|
NandWrite = 'nandwrite'
|
|
else:
|
|
NandWrite = 'nandwrite'
|
|
|
|
return NandWrite
|
|
|
|
def getMyUUID():
|
|
#os.system("tune2fs -l /dev/sd?? | awk '/UUID/ {print $NF}' > /tmp/.myuuid")
|
|
os.system("tune2fs -l %s | awk '/UUID/ {print $NF}' > /tmp/.myuuid" % (getLocationMultiboot()))
|
|
try:
|
|
if os.path.isfile('/tmp/.myuuid'):
|
|
return open('/tmp/.myuuid').read().strip().upper()
|
|
except:
|
|
pass
|
|
|
|
return _('unavailable')
|
|
|
|
def getImageBootNow():
|
|
imagefile = 'UNKNOWN'
|
|
if os.path.exists('/.multinfo'):
|
|
with open('/.multinfo' , 'r') as f:
|
|
imagefile = f.readline().strip()
|
|
f.close()
|
|
return imagefile
|
|
|
|
def getNeoActivatedtest():
|
|
neoactivated = 'NEOBOOT MULTIBOOT'
|
|
if not fileExists('/.multinfo'):
|
|
if getCheckActivateVip() != getBoxMacAddres():
|
|
neoactivated = 'Ethernet MAC not found.'
|
|
elif not fileExists('/usr/lib/periodon/.kodn'):
|
|
neoactivated = 'VIP Pin code missing.'
|
|
elif getTestToTest() != UPDATEVERSION :
|
|
neoactivated = _('Update %s is available.') % getTestToTest()
|
|
else:
|
|
if getCheckActivateVip() == getBoxMacAddres() and fileExists('/usr/lib/periodon/.kodn') and getTestToTest() == UPDATEVERSION :
|
|
neoactivated = 'NEOBOOT VIP ACTIVATED'
|
|
|
|
return neoactivated
|
|
|
|
boxbrand = sys.modules[__name__]
|