def getBoxBrand(): brand = "" try: if fileHas("/etc/hostname","os"): brand = "Edision" elif fileHas("/etc/hostname","gb"): brand = "GigaBlue" elif fileHas("/etc/hostname","sf"): brand = "octagon" else: brand = open("/proc/stb/info/brandname").read().strip() except IOError: print("[BrandName] Machine not added in SystemInfo def getBoxBrand!") return brand
def mount(self, ip, share, path): if not fileHas("/etc/fstab", ":/mnt/hdd"): try: os.makedirs(path) except Exception: pass return os.system('mount -t nfs' + ' ' + ip + ':' + '/' + share + ' ' + path + ' ' + '&&' + ' ' + 'echo -e' + ' ' + '"' + ip + ':' + share + ' ' + path + ' ' + 'nfs nolock,rsize=8192,wsize=8192' + ' ' + '\n"' + ' ' + '>>' + ' ' + '/etc/fstab') == 0
SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["Bootvideo"] = fileCheck("/usr/bin/bootvideo") SystemInfo["hasOSDAnimation"] = fileCheck("/proc/stb/fb/animation_mode") SystemInfo["RcTypeChangable"] = pathExists('/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = getBoxType() not in ('gb800solo', 'gb800se', 'gb800ue') SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and getBoxType( ) in ('vusolo4k', ) SystemInfo["HasMultichannelPCM"] = fileCheck( "/proc/stb/audio/multichannel_pcm") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ( 'vusolo4k') or getMachineBuild() in ('gb7252', ) SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = getBoxType() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists( "/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo" ) and pathExists("/dev/hdmi_cec") or pathExists("/dev/misc/hdmi_cec0") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasYPbPr"] = getMachineBuild() in ( 'gb7356', 'gb7325') or getBoxType() in ('gbultraue', 'gbultraueh',
SystemInfo["RcTypeChangable"] = not ( model in ("gbquad4k", "gbue4k", "et8500") or model.startswith("et7")) and pathExists("/proc/stb/ir/rc/type") SystemInfo["HasFullHDSkinSupport"] = model not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasMMC"] = "root" in cmdline and cmdline["root"].startswith( "/dev/mmcblk") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and SystemInfo[ "HasMMC"] and SystemInfo["Blindscan_t2_available"] SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = model in ("vusolo4k", "gbquad4k", "gbue4k") SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = model in ("et8500", "vusolo4k", "vuuno4kse", "vuduo4k", "vuduo4kse", "vuultimo4k", "gbquad4k", "gbue4k") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasScaler_sharpness"] = pathExists(
SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVMode"] = fileCheck("/proc/stb/lcd/mode") SystemInfo["LcdLiveDecoder"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") and model.startswith("vu") SystemInfo["RcTypeChangable"] = not(model.startswith("et8500") or model.startswith("et7")) and pathExists("/proc/stb/ir/rc/type") SystemInfo["HasFullHDSkinSupport"] = model not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and model in ("vusolo4k","vuuno4k","vuuno4kse","vuultimo4k","vuduo4k","vuduo4kse") SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = "root" in cmdline and cmdline["root"].startswith("/dev/mmcblk") SystemInfo["HasTranscoding"] = getHaveTranscoding() == "True" or getHaveMultiTranscoding() == "True" or pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices","h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = model in ("vusolo4k","gbquad4k") SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = model in ("et8500", "vusolo4k", "vuuno4kse", "vuduo4k", "vuduo4kse", "vuultimo4k") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = getHaveHDMI() == "True" and fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/HdmiCEC/plugin.pyo")) and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred","2160p50") SystemInfo["HasHDMI-CEC"] = getHaveHDMI() == "True" and fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/HdmiCEC/plugin.pyo")) and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasHDMIHDin"] = getHaveHDMIinHD() == "True" SystemInfo["HasHDMIFHDin"] = getHaveHDMIinFHD() == "True" SystemInfo["HasHDMIin"] = SystemInfo["HasHDMIHDin"] or SystemInfo["HasHDMIFHDin"] SystemInfo["HasYPbPr"] = model in ("dm8000", "et5000", "et6000", "et6500", "et9000", "et9200", "et9500", "et10000", "formuler1", "mbtwinplus", "spycat", "vusolo", "vuduo", "vuduo2", "vuultimo") SystemInfo["HasScart"] = model in ("dm8000", "et4000", "et6500", "et8000", "et9000", "et9200", "et9500", "et10000", "formuler1", "hd1100", "hd1200", "hd1265", "hd2400", "vusolo", "vusolo2", "vuduo", "vuduo2", "vuultimo", "vuuno", "xp1000")
SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVMode"] = fileCheck("/proc/stb/lcd/mode") SystemInfo["LcdLiveDecoder"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["RcTypeChangable"] = not(HardwareInfo().get_device_model().startswith('et8500') or HardwareInfo().get_device_model().startswith('et7')) and pathExists('/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = HardwareInfo().get_device_model() not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and HardwareInfo().get_device_model() in "vusolo4k" SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists("/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = HardwareInfo().get_device_model() in "vusolo4k" SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = HardwareInfo().get_device_model() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasYPbPr"] = HardwareInfo().get_device_model() in ("dm8000", "et5000", "et6000", "et6500", "et9000", "et9200", "et9500", "et10000", "formuler1", "mbtwinplus", "spycat", "vusolo", "vuduo", "vuduo2", "vuultimo") SystemInfo["HasScart"] = HardwareInfo().get_device_model() in ("dm8000", "et4000", "et6500", "et8000", "et9000", "et9200", "et9500", "et10000", "formuler1", "hd1100", "hd1200", "hd1265", "hd2400", "vusolo", "vusolo2", "vuduo", "vuduo2", "vuultimo", "vuuno", "xp1000") SystemInfo["HasSVideo"] = HardwareInfo().get_device_model() in ("dm8000") SystemInfo["HasComposite"] = HardwareInfo().get_device_model() not in ("i55", "gbquad4k", "gbue4k", "hd1500", "osnino", "osninoplus", "purehd", "purehdse", "revo4k", "vusolo4k", "vuzero4k") SystemInfo["HasAutoVolume"] = fileExists("/proc/stb/audio/avl_choices") and fileCheck("/proc/stb/audio/avl") SystemInfo["HasAutoVolumeLevel"] = fileExists("/proc/stb/audio/autovolumelevel_choices") and fileCheck("/proc/stb/audio/autovolumelevel")
SystemInfo["VideoDestinationConfigurable"] = fileExists("/proc/stb/vmpeg/0/dst_left") SystemInfo["hasPIPVisibleProc"] = fileCheck("/proc/stb/vmpeg/1/visible") SystemInfo["VFD_scroll_repeats"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/scroll_repeats") SystemInfo["VFD_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/scroll_delay") SystemInfo["VFD_initial_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k') SystemInfo["hasXcoreVFD"] = fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getHaveHDMIinHD() in ('True',) or getHaveHDMIinFHD() in ('True',) SystemInfo["HasHDMI-CEC"] = fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") SystemInfo["HasInfoButton"] = False SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["HasRootSubdir"] = False SystemInfo["RecoveryMode"] = False SystemInfo["canMultiBoot"] = False SystemInfo["canBackupEMC"] = False SystemInfo["HasHiSi"] = False SystemInfo["canMode12"] = False SystemInfo["HasMMC"] = False SystemInfo["HasSDmmc"] = False SystemInfo["HasH9SD"] = False
SystemInfo["HaveCI"] = getHaveCI() SystemInfo["HaveMultiBoot"] = (fileCheck("/boot/STARTUP") or fileCheck("/boot/cmdline.txt")) SystemInfo["HaveMultiBootHD"] = fileCheck("/boot/STARTUP") and getMachineBuild( ) in ('hd51', 'vs1500', 'h7', 'ceryon7252') SystemInfo["HaveMultiBootXC"] = fileCheck("/boot/cmdline.txt") SystemInfo["HaveMultiBootGB"] = fileCheck( "/boot/STARTUP") and getMachineBuild() in ('gb7252') SystemInfo["HaveMultiBootCY"] = fileCheck( "/boot/STARTUP") and getMachineBuild() in ('8100s') SystemInfo["HaveMultiBootOS"] = fileCheck("/boot/STARTUP") and getMachineBuild( ) in ('osmio4k', 'osmio4kplus', 'osmini4k') SystemInfo["HaveMultiBootDS"] = fileCheck("/boot/STARTUP") and getMachineBuild( ) in ('cc1', 'sf8008', 'sf8008s', 'sf8008t', 'ustym4kpro', 'viper4k') and fileCheck("/dev/sda") SystemInfo["HasMMC"] = fileHas( "/proc/cmdline", "root=/dev/mmcblk") or "mmcblk" in getMachineMtdRoot() SystemInfo["CanProc"] = SystemInfo["HasMMC"] and getBrandOEM() != "vuplus" SystemInfo["HasHiSi"] = pathExists("/proc/hisi") SystemInfo["MBbootdevice"] = getMBbootdevice() SystemInfo["canMultiBoot"] = getMultibootslots() SystemInfo["canMode12"] = getMachineBuild() in ( "hd51", "vs1500", "h7") and ("brcm_cma=440M@328M brcm_cma=192M@768M", "brcm_cma=520M@248M brcm_cma=200M@768M") SystemInfo["HAScmdline"] = fileCheck("/boot/cmdline.txt") SystemInfo["HasMMC"] = fileHas( "/proc/cmdline", "root=/dev/mmcblk") or SystemInfo["canMultiBoot"] and fileHas( "/proc/cmdline", "root=/dev/sda") SystemInfo["HasSDmmc"] = SystemInfo["canMultiBoot"] and "sd" in SystemInfo[ "canMultiBoot"][2] and "mmcblk" in getMachineMtdRoot() SystemInfo["HasSDswap"] = getMachineBuild() in (
SystemInfo['grautec'] = fileExists('/tmp/usbtft') SystemInfo['3DMode'] = fileCheck('/proc/stb/fb/3dmode') or fileCheck( '/proc/stb/fb/primary/3d') SystemInfo['3DZNorm'] = fileCheck('/proc/stb/fb/znorm') or fileCheck( '/proc/stb/fb/primary/zoffset') SystemInfo['CanUse3DModeChoices'] = fileExists( '/proc/stb/fb/3dmode_choices') and True or False SystemInfo['need_dsw'] = getBoxType() not in ('osminiplus', 'osmega') SystemInfo['HaveCISSL'] = fileCheck( '/etc/ssl/certs/customer.pem') and fileCheck('/etc/ssl/certs/device.pem') SystemInfo['HaveID'] = fileCheck('/etc/.id') SystemInfo['HaveTouchSensor'] = getBoxType() in ('dm520', 'dm525', 'dm900', 'dm920') SystemInfo['DefaultDisplayBrightness'] = getBoxType() in ('dm900', 'dm920') and 8 or 5 SystemInfo['HasRootSubdir'] = fileHas('/proc/cmdline', 'rootsubdir=') SystemInfo['RecoveryMode'] = SystemInfo['HasRootSubdir'] and getMachineBuild( ) not in ('vs1500', 'hd51', 'h7') or fileCheck('/proc/stb/fp/boot_mode') SystemInfo['ForceLNBPowerChanged'] = fileCheck( '/proc/stb/frontend/fbc/force_lnbon') SystemInfo['ForceToneBurstChanged'] = fileCheck( '/proc/stb/frontend/fbc/force_toneburst') SystemInfo['USETunersetup'] = SystemInfo['ForceLNBPowerChanged'] or SystemInfo[ 'ForceToneBurstChanged'] SystemInfo['CanDoTranscodeAndPIP'] = getBoxType() in ('vusolo4k', 'gbquad4k') SystemInfo['HDMIin'] = getMachineBuild() in ( 'inihdp', 'hd2400', 'et10000', 'dm7080', 'dm820', 'dm900', 'dm920', 'vuultimo4k', 'et13000', 'sf5008', 'vuuno4kse', 'vuduo4k') or getBoxType() in ('spycat4k', 'spycat4kcombo', 'gbquad4k') SystemInfo['HAVEEDIDDECODE'] = fileCheck( '/proc/stb/hdmi/raw_edid') and fileCheck('/usr/bin/edid-decode')
def changed(self, what): if self.instance: pngname = '' if (what[0] != self.CHANGED_CLEAR) and fileExists("/tmp/ecm.info"): sname = "NAG" service = self.source.service if service: info = (service and service.info()) if info: caids = info.getInfoObject(iServiceInformation.sCAIDs) if caids: if (len(caids) > 0): for caid in caids: caid = self.int2hex(caid) if (len(caid) == 3): caid = ("0%s" % caid) caid = caid[:2] caid = caid.upper() if fileHas("/tmp/ecm.info","CAID: 0x26") or fileHas("/tmp/ecm.info","caid: 0x26"): sname = "BiSS" elif fileHas("/tmp/ecm.info","CAID: 0x01") or fileHas("/tmp/ecm.info","caid: 0x01"): sname = "SEC" elif fileHas("/tmp/ecm.info","CAID: 0x06") or fileHas("/tmp/ecm.info","caid: 0x06"): sname = "IRD" elif fileHas("/tmp/ecm.info","CAID: 0x17") or fileHas("/tmp/ecm.info","caid: 0x17"): sname = "BET" elif fileHas("/tmp/ecm.info","CAID: 0x05") or fileHas("/tmp/ecm.info","caid: 0x05"): sname = "VIA" elif fileHas("/tmp/ecm.info","CAID: 0x09") or fileHas("/tmp/ecm.info","caid: 0x09"): sname = "NDS" elif fileHas("/tmp/ecm.info","CAID: 0x0B") or fileHas("/tmp/ecm.info","caid: 0x0B"): sname = "CONN" elif fileHas("/tmp/ecm.info","CAID: 0x0D") or fileHas("/tmp/ecm.info","caid: 0x0D"): sname = "CRW" elif fileHas("/tmp/ecm.info","CAID: 0x4A") or fileHas("/tmp/ecm.info","caid: 0x4A"): sname = "DRE" elif fileHas("/tmp/ecm.info","CAID: 0x0E") or fileHas("/tmp/ecm.info","caid: 0x0E"): sname = "PowerVU" elif fileHas("/tmp/ecm.info","CAID: 0x22") or fileHas("/tmp/ecm.info","caid: 0x22"): sname = "Codicrypt" elif fileHas("/tmp/ecm.info","CAID: 0x07") or fileHas("/tmp/ecm.info","caid: 0x07"): sname = "DigiCipher" elif fileHas("/tmp/ecm.info","CAID: 0xA1") or fileHas("/tmp/ecm.info","caid: 0xA1"): sname = "Rosscrypt" elif fileHas("/tmp/ecm.info","CAID: 0x56") or fileHas("/tmp/ecm.info","caid: 0x56"): sname = "Verimatrix" pngname = self.nameCache.get(sname, '') if (pngname == ''): pngname = self.findPicon(sname) if (pngname != ''): self.nameCache[sname] = pngname if (pngname == ''): pngname = self.nameCache.get('default', '') if (pngname == ''): pngname = self.findPicon('picon_default') if (pngname == ''): tmp = resolveFilename(SCOPE_CURRENT_SKIN, 'picon_default.png') if fileExists(tmp): pngname = tmp self.nameCache['default'] = pngname if (self.pngname != pngname): self.pngname = pngname self.instance.setPixmapFromFile(self.pngname)
"lc", "k1plus", "k1pro", "k2pro", "k2prov2", "k3pro") SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and getBoxType( ) in ("vusolo4k", "vuuno4k", "vuuno4kse", "vuultimo4k", "vuduo4k") SystemInfo["HasMultichannelPCM"] = fileCheck( "/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists( "/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in "vusolo4k" SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = getBoxType() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists( "/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and ( fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasYPbPr"] = getBoxType() in ("dm8000", "et5x00", "et6x00", "et9x00", "et10000", "formuler1",
'/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = HardwareInfo().get_device_model() not in ( "et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo[ "HasColorspace"] and HardwareInfo().get_device_model() in "vusolo4k" SystemInfo["HasMultichannelPCM"] = fileCheck( "/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists( "/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = HardwareInfo( ).get_device_model() in "vusolo4k" SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = HardwareInfo().get_device_model() in ( "vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists( "/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and ( fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0"))
SystemInfo["VideoDestinationConfigurable"] = fileExists("/proc/stb/vmpeg/0/dst_left") SystemInfo["hasPIPVisibleProc"] = fileCheck("/proc/stb/vmpeg/1/visible") SystemInfo["VFD_scroll_repeats"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/scroll_repeats") SystemInfo["VFD_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/scroll_delay") SystemInfo["VFD_initial_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType() != 'gb800ueplus' SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k','gbquad4k') SystemInfo["hasXcoreVFD"] = getBoxType() in ('osmega','spycat4k','spycat4kmini','spycat4kcombo') and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getHaveHDMIinHD() in ('True',) or getHaveHDMIinFHD() in ('True',) SystemInfo["HasHDMI-CEC"] = fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") SystemInfo["HasInfoButton"] = getBrandOEM() in ('airdigital', 'broadmedia', 'ceryon', 'dags', 'edision', 'formuler', 'gfutures', 'gigablue', 'ini', 'octagon', 'odin', 'skylake', 'tiviar', 'xcore', 'xp', 'xtrend') SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["HasRootSubdir"] = fileHas("/proc/cmdline", "rootsubdir=") SystemInfo["RecoveryMode"] = SystemInfo["HasRootSubdir"] and getMachineBuild() not in ('hd51','h7') or fileCheck("/proc/stb/fp/boot_mode") SystemInfo["canMultiBoot"] = getMachineBuild() in ('hd51', 'h7', 'h9combo') and (1, 4, 'mmcblk0p') or getBoxType() in ('gbue4k', 'gbquad4k') and (3, 3, 'mmcblk0p') or getMachineBuild() in ('sf8008', 'beyonwizv2') and fileCheck("/dev/sda") and (0, 2, 'sda') or getMachineBuild() in ('osmio4k') and (1, 4, 'mmcblk1p') SystemInfo["canBackupEMC"] = getMachineBuild() in ('hd51','h7') and ('disk.img', 'mmcblk0p1') or getMachineBuild() in ('osmio4k') and ('emmc.img', 'mmcblk1p1') or getMachineBuild() in ('gbmv200','sf8008','beyonwizv2') and ('usb_update.bin','none') SystemInfo["HasHiSi"] = pathExists('/proc/hisi') SystemInfo["canMode12"] = getMachineBuild() in ('hd51', 'h7') and ('brcm_cma=440M@328M brcm_cma=192M@768M', 'brcm_cma=520M@248M brcm_cma=200M@768M') SystemInfo["HasMMC"] = fileHas("/proc/cmdline", "root=/dev/mmcblk") or SystemInfo["canMultiBoot"] and fileHas("/proc/cmdline", "root=/dev/sda") SystemInfo["HasSDmmc"] = SystemInfo["canMultiBoot"] and "sd" in SystemInfo["canMultiBoot"][2] and "mmcblk" in getMachineMtdRoot() SystemInfo["HasH9SD"] = getMachineBuild() in ("h9", "i55plus") and pathExists("/dev/mmcblk0p1")
def changed(self, what): self.poll_interval = 50 self.poll_enabled = True if self.instance: pngname = '' if (what[0] != self.CHANGED_CLEAR): sname = "" service = self.source.service if service: info = (service and service.info()) if info: caids = info.getInfoObject(iServiceInformation.sCAIDs) if fileExists("/tmp/ecm.info"): try: value = self.getText() value = value.lower()#change value to small letters if value is None: print("[PicEmu2] no emu installed") sname='' else: ## Should write name be small letters if ("ncam" in value): sname = "ncam" elif fileHas("/tmp/ecm.info","caid:"): sname = "oscam" elif ("mgcamd" in value): sname = "mgcamd" elif fileHas("/tmp/ecm.info","CAID:"): sname = "wicardd" elif ("gbox" in value): sname = "gbox" elif ("camd3" in value): sname = "camd3" elif fileExists("/tmp/ecm.info"): try: f = open("/tmp/ecm.info", "r") content = f.read() f.close() except: content = "" contentInfo = content.split("\n") for line in contentInfo: if ("address" in line): sname = "oscamcccam" except: print("") if caids: if (len(caids) > 0): for caid in caids: caid = self.int2hex(caid) if (len(caid) == 3): caid = ("0%s" % caid) caid = caid[:2] caid = caid.upper() if (caid != "") and (sname == ""): sname = "Unknown" pngname = self.nameCache.get(sname, '') if (pngname == ''): pngname = self.findPicon(sname) if (pngname != ''): self.nameCache[sname] = pngname if (pngname == ''): pngname = self.nameCache.get('fta', '') if (pngname == ''): pngname = self.findPicon('fta') if (pngname == ''): tmp = resolveFilename(SCOPE_CURRENT_SKIN, 'picon_default.png') if fileExists(tmp): pngname = tmp self.nameCache['default'] = pngname if (self.pngname != pngname): self.pngname = pngname self.instance.setPixmapFromFile(self.pngname)
BoxInfo.setItem("DeepstandbySupport", MODEL != 'dm800') BoxInfo.setItem("DefaultDisplayBrightness", MODEL in ("dm900", "dm920") and 8 or 5) BoxInfo.setItem("FBLCDDisplay", fileCheck("/proc/stb/fb/sd_detach")) BoxInfo.setItem("Fan", fileCheck("/proc/stb/fp/fan")) BoxInfo.setItem("FanPWM", BoxInfo.getItem("Fan") and fileCheck("/proc/stb/fp/fan_pwm")) BoxInfo.setItem("ForceLNBPowerChanged", fileCheck("/proc/stb/frontend/fbc/force_lnbon")) BoxInfo.setItem("ForceToneBurstChanged", fileCheck("/proc/stb/frontend/fbc/force_toneburst")) BoxInfo.setItem("FrontpanelDisplay", fileExists("/dev/dbox/oled0") or fileExists("/dev/dbox/lcd0")) BoxInfo.setItem("GBWOL", fileExists("/usr/bin/gigablue_wol")) BoxInfo.setItem("grautec", fileExists("/tmp/usbtft")) BoxInfo.setItem("GraphicLCD", MODEL in ("vuultimo", "xpeedlx3", "et10000", "mutant2400", "quadbox2400", "sezammarvel", "atemionemesis", "mbultra", "beyonwizt4", "osmio4kplus")) BoxInfo.setItem("HasExternalPIP", MODEL not in ("et9x00", "et6x00", "et5x00") and fileCheck("/proc/stb/vmpeg/1/external")) BoxInfo.setItem("HasFullHDSkinSupport", MODEL not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc")) BoxInfo.setItem("HasHiSi", pathExists("/proc/hisi")) BoxInfo.setItem("hasPIPVisibleProc", fileCheck("/proc/stb/vmpeg/1/visible")) BoxInfo.setItem("HasMMC", fileHas("/proc/cmdline", "root=/dev/mmcblk") or MultiBoot.canMultiBoot() and fileHas("/proc/cmdline", "root=/dev/sda")) BoxInfo.setItem("HasSDmmc", MultiBoot.canMultiBoot() and "sd" in MultiBoot.getBootSlots()["2"] and "mmcblk" in MTDROOTFS) BoxInfo.setItem("HasSDswap", MODEL in ("h9", "i55plus") and pathExists("/dev/mmcblk0p1")) BoxInfo.setItem("HaveCISSL", fileCheck("/etc/ssl/certs/customer.pem") and fileCheck("/etc/ssl/certs/device.pem")) BoxInfo.setItem("HAVEEDIDDECODE", fileCheck("/proc/stb/hdmi/raw_edid") and fileCheck("/usr/bin/edid-decode")) BoxInfo.setItem("HaveID", fileCheck("/etc/.id")) BoxInfo.setItem("HAVEINITCAM", haveInitCam()) BoxInfo.setItem("HaveTouchSensor", MODEL in ("dm520", "dm525", "dm900", "dm920")) BoxInfo.setItem("HDMICEC", fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) BoxInfo.setItem("HDMIin", MODEL in ("inihdp", "hd2400", "et10000", "dm7080", "dm820", "dm900", "dm920", "vuultimo4k", "et13000", "sf5008", "vuuno4kse", "vuduo4k", "vuduo4kse") or BoxInfo.getItem("machinebuild") in ("spycat4k", "spycat4kcombo", "gbquad4k")) BoxInfo.setItem("HiSilicon", SOC_FAMILY.startswith("hisi") or exists("/proc/hisi") or exists("/usr/bin/hihalt") or exists("/usr/lib/hisilicon")) BoxInfo.setItem("LcdDisplay", fileExists("/dev/dbox/lcd0")) BoxInfo.setItem("LcdLiveTV", fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable")) BoxInfo.setItem("LcdLiveTVPiP", fileCheck("/proc/stb/lcd/live_decoder")) BoxInfo.setItem("LCDMiniTV", fileExists("/proc/stb/lcd/mode")) BoxInfo.setItem("LCDMiniTVPiP", BoxInfo.getItem("LCDMiniTV") and MODEL not in ("gb800ueplus", "gbquad4k", "gbue4k"))
SystemInfo["VideoDestinationConfigurable"] = fileExists("/proc/stb/vmpeg/0/dst_left") SystemInfo["hasPIPVisibleProc"] = fileCheck("/proc/stb/vmpeg/1/visible") SystemInfo["VFD_scroll_repeats"] = not SystemInfo["7segment"] and getBoxType() not in ("et8500",) and fileCheck("/proc/stb/lcd/scroll_repeats") SystemInfo["VFD_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ("et8500",) and fileCheck("/proc/stb/lcd/scroll_delay") SystemInfo["VFD_initial_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ("et8500",) and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ("et8500",) and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType() != "gb800ueplus" SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") and getBoxType().startswith("vu") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ("vusolo4k", "gbquad4k", "gbue4k") SystemInfo["hasXcoreVFD"] = getBoxType() in ("osmega", "spycat4k", "spycat4kmini", "spycat4kcomb") and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getHaveHDMIinHD() in ("True",) or getHaveHDMIinFHD() in ("True",) SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["AndroidMode"] = SystemInfo["RecoveryMode"] and getMachineBuild() in ("multibox",) SystemInfo["canBackupEMC"] = getMachineBuild() in ("hd51", "h7") and ("disk.img", "%s" % SystemInfo["MBbootdevice"]) or getMachineBuild() in ("osmio4k", "osmio4kplus", "osmini4k") and ("emmc.img", "%s" % SystemInfo["MBbootdevice"]) or SystemInfo["HasHiSi"] and ("usb_update.bin", "none") SystemInfo["canMode12"] = getMachineBuild() in ("hd51", "h7") and ("brcm_cma=440M@328M brcm_cma=192M@768M", "brcm_cma=520M@248M brcm_cma=200M@768M") SystemInfo["HasMMC"] = fileHas("/proc/cmdline", "root=/dev/mmcblk") or "mmcblk" in getMachineMtdRoot() SystemInfo["HasH9SD"] = getMachineBuild() in ("h9", "i55plus") and pathExists("/dev/mmcblk0p1") SystemInfo["HasSDnomount"] = getMachineBuild() in ("h9", "i55plus") and (False, "none") or getMachineBuild() in ("multibox", "h9combo", "h9combose", "h9twin", "h9se", "pulse4kmini", "hd61", "pulse4k", "h11") and (True, "mmcblk0") SystemInfo["CanProc"] = SystemInfo["HasMMC"] and getBrandOEM() != "vuplus" SystemInfo["Canaudiosource"] = fileCheck("/proc/stb/hdmi/audio_source") SystemInfo["Can3DSurround"] = fileHas("/proc/stb/audio/3d_surround_choices", "none") SystemInfo["Can3DSpeaker"] = fileHas("/proc/stb/audio/3d_surround_speaker_position_choices", "center") SystemInfo["CanAutoVolume"] = fileHas("/proc/stb/audio/avl_choices", "none") or fileHas("/proc/stb/audio/avl_choices", "hdmi")
SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVMode"] = fileCheck("/proc/stb/lcd/mode") SystemInfo["LcdLiveDecoder"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["RcTypeChangable"] = not(HardwareInfo().get_device_model().startswith('et8500') or HardwareInfo().get_device_model().startswith('et7')) and pathExists('/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = HardwareInfo().get_device_model() not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and HardwareInfo().get_device_model() in "vusolo4k" SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists("/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = HardwareInfo().get_device_model() in "vusolo4k" SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = HardwareInfo().get_device_model() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasYPbPr"] = HardwareInfo().get_device_model() in ("dm8000", "et5000", "et6000", "et6500", "et9000", "et9200", "et9500", "et10000", "formuler1", "mbtwinplus", "spycat", "vusolo", "vuduo", "vuduo2", "vuultimo") SystemInfo["HasScart"] = HardwareInfo().get_device_model() in ("dm8000", "et4000", "et6500", "et8000", "et9000", "et9200", "et9500", "et10000", "formuler1", "hd1100", "hd1200", "hd1265", "hd2400", "vusolo", "vusolo2", "vuduo", "vuduo2", "vuultimo", "vuuno", "xp1000") SystemInfo["HasSVideo"] = HardwareInfo().get_device_model() in ("dm8000") SystemInfo["HasComposite"] = HardwareInfo().get_device_model() not in ("i55", "gbquad4k", "gbue4k", "hd1500", "osnino", "osninoplus", "purehd", "purehdse", "revo4k", "vusolo4k", "vuzero4k") SystemInfo["HasAutoVolume"] = fileExists("/proc/stb/audio/avl_choices") and fileCheck("/proc/stb/audio/avl") SystemInfo["HasAutoVolumeLevel"] = fileExists("/proc/stb/audio/autovolumelevel_choices") and fileCheck("/proc/stb/audio/autovolumelevel")
SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType() not in ('gb800ueplus','gbquad4k','gbue4k') SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVPiP"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["MiniTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["FastChannelChange"] = False SystemInfo["CIHelper"] = fileExists("/usr/bin/cihelper") SystemInfo["grautec"] = fileExists("/tmp/usbtft") SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["CanUse3DModeChoices"] = fileExists('/proc/stb/fb/3dmode_choices') and True or False SystemInfo["need_dsw"] = getBoxType() not in ('osminiplus','osmega') SystemInfo["HaveCISSL"] = fileCheck("/etc/ssl/certs/customer.pem") and fileCheck("/etc/ssl/certs/device.pem") SystemInfo["HaveID"] = fileCheck("/etc/.id") SystemInfo["HaveTouchSensor"] = getBoxType() in ('dm520', 'dm525', 'dm900', 'dm920') SystemInfo["DefaultDisplayBrightness"] = getBoxType() in ('dm900', 'dm920') and 8 or 5 SystemInfo["HasRootSubdir"] = fileHas("/proc/cmdline", "rootsubdir=") SystemInfo["RecoveryMode"] = SystemInfo["HasRootSubdir"] and getMachineBuild() not in ('vs1500','hd51','h7') or fileCheck("/proc/stb/fp/boot_mode") SystemInfo["ForceLNBPowerChanged"] = fileCheck("/proc/stb/frontend/fbc/force_lnbon") SystemInfo["ForceToneBurstChanged"] = fileCheck("/proc/stb/frontend/fbc/force_toneburst") SystemInfo["USETunersetup"] = SystemInfo["ForceLNBPowerChanged"] or SystemInfo["ForceToneBurstChanged"] SystemInfo["XcoreVFD"] = getMachineBuild() in ('xc7346','xc7439') SystemInfo["HDMIin"] = getMachineBuild() in ('inihdp', 'hd2400', 'et10000', 'dm7080', 'dm820', 'dm900', 'dm920', 'vuultimo4k', 'et13000', 'sf5008', 'vuuno4kse', 'vuduo4k') or getBoxType() in ('spycat4k','spycat4kcombo','gbquad4k') SystemInfo["HaveRCA"] = getHaveRCA() == 'True' SystemInfo["HaveDVI"] = getHaveDVI() == 'True' SystemInfo["HaveAVJACK"] = getHaveAVJACK() == 'True' SystemInfo["HAVESCART"] = getHaveSCART() == 'True' SystemInfo["HAVESCARTYUV"] = getHaveSCARTYUV() == 'True' SystemInfo["HAVEYUV"] = getHaveYUV() == 'True' SystemInfo["HAVEHDMI"] = getHaveHDMI() == 'True' SystemInfo["HAVEEDIDDECODE"] = fileCheck("/proc/stb/hdmi/raw_edid") and fileCheck("/usr/bin/edid-decode") SystemInfo["canMultiBoot"] = getMachineBuild() in ('hd51','vs1500','h7','h9combo','h10','hd60','hd61','multibox','8100s') and (1, 4, 'mmcblk0p') or getMachineBuild() in ('gb7252','gb72604') and (3, 3, 'mmcblk0p') or getMachineBuild() in ('gbmv200','cc1','sf8008','sf8008m','ustym4kpro','beyonwizv2','viper4k') and fileCheck("/dev/sda") and (0, 3, 'sda') or getMachineBuild() in ('osmio4k','osmio4kplus','xc7439','osmini4k') and (1, 4, 'mmcblk1p')
SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["Bootvideo"] = fileCheck("/usr/bin/bootvideo") SystemInfo["hasOSDAnimation"] = fileCheck("/proc/stb/fb/animation_mode") SystemInfo["CIHelper"] = fileExists("/usr/bin/cihelper") SystemInfo["RcTypeChangable"] = pathExists('/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = getBoxType() not in ('gb800solo', 'gb800se', 'gb800ue') SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and getBoxType() in ('vusolo4k') SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists("/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasSwap"] = pathExists("/dev/mmcblk0p10") SystemInfo["HasMultiBoot"] = fileCheck("/boot/STARTUP_1") and getMachineBuild() not in ('gb7252') SystemInfo["HasMultiBootGB"] = SystemInfo["HasSwap"] and fileCheck("/boot/STARTUP_1") and getMachineBuild() in ('gb7252') SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k') or getMachineBuild() in ('gb7252') SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = getBoxType() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and pathExists("/dev/hdmi_cec") or pathExists("/dev/misc/hdmi_cec0") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasYPbPr"] = getMachineBuild() in ('gb7356', 'gb7325') or getBoxType() in ('gbultraue', 'gbultraueh', 'gb800ueplus', 'gb800seplus') SystemInfo["HasScart"] = getMachineBuild() in ('gb7325') SystemInfo["HasSVideo"] = getMachineBuild() in ('dummy') SystemInfo["HasComposite"] = getMachineBuild() in ('gb7356', 'gb7358', 'gb7325') or getBoxType() in ('gbultraue', 'gbultraueh') SystemInfo["HasAutoVolume"] = fileExists("/proc/stb/audio/avl_choices") and fileCheck("/proc/stb/audio/avl") SystemInfo["HasAutoVolumeLevel"] = fileExists("/proc/stb/audio/autovolumelevel_choices") and fileCheck("/proc/stb/audio/autovolumelevel")
SystemInfo["HasFullHDSkinSupport"] = getBoxBrand() in ( "cuberevo", "fulan", "hs", "edisionargus") or getBoxType() in ("adb_box", "atevio7500", "hl101", "octagon1008", "fortis_hdbox") SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] SystemInfo["HasMultichannelPCM"] = fileCheck( "/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists( "/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = False SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = False SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = False SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists( "/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and ( fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasYPbPr"] = getBoxBrand() in ("edisionargus") or getBoxType() in ( "adb_box", "atevio7500", "fortis_hdbox", "hl101", "hs7420", "hs7429", "octagon1008", "tf7700", "ufs912", "ufs913", "cuberevo", "cuberevo_mini",
SystemInfo["GBWOL"] = fileExists("/usr/bin/gigablue_wol") SystemInfo["LCDSKINSetup"] = path.exists("/usr/share/enigma2/display") and getDisplayType() not in ('7segment') SystemInfo["7segment"] = getDisplayType() in ('7segment') SystemInfo["7segmentORtextlcd7segment"] = getDisplayType() in ('7segment','textlcd7segment') SystemInfo["grautec"] = fileExists("/tmp/usbtft") SystemInfo["isGBIPBOX"] = fileExists("/usr/lib/enigma2/python/gbipbox.so") SystemInfo["CIHelper"] = fileExists("/usr/bin/cihelper") SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["CanUse3DModeChoices"] = fileExists('/proc/stb/fb/3dmode_choices') and True or False SystemInfo["need_dsw"] = getBoxType() not in ('osminiplus','osmega') SystemInfo["HaveCISSL"] = fileCheck("/etc/ssl/certs/customer.pem") and fileCheck("/etc/ssl/certs/device.pem") SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HaveTouchSensor"] = getBoxType() in ('dm520', 'dm525', 'dm900') SystemInfo["DefaultDisplayBrightness"] = getBoxType() == 'dm900' and 8 or 5 SystemInfo["HasRootSubdir"] = fileHas("/proc/cmdline", "rootsubdir=") SystemInfo["RecoveryMode"] = SystemInfo["HasRootSubdir"] and getMachineBuild() not in ('vs1500','hd51','h7') or fileCheck("/proc/stb/fp/boot_mode") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") SystemInfo["MiniTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["FastChannelChange"] = False SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType() not in ('gb800ueplus','gbquad4k','gbue4k') SystemInfo["LCDsymbol_circle"] = fileCheck("/proc/stb/lcd/symbol_circle") SystemInfo["ForceLNBPowerChanged"] = fileCheck("/proc/stb/frontend/fbc/force_lnbon") SystemInfo["ForceToneBurstChanged"] = fileCheck("/proc/stb/frontend/fbc/force_toneburst") SystemInfo["USETunersetup"] = SystemInfo["ForceLNBPowerChanged"] or SystemInfo["ForceToneBurstChanged"] SystemInfo["HDMIin"] = getHaveHDMIinHD() in ('True') SystemInfo["HaveRCA"] = getHaveRCA() in ('True') SystemInfo["HaveDVI"] = getHaveDVI() in ('True') SystemInfo["HaveAVJACK"] = getHaveAVJACK() in ('True') SystemInfo["HaveSCART"] = getHaveSCART() in ('True')
SystemInfo["VFD_scroll_repeats"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/scroll_repeats") SystemInfo["VFD_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/scroll_delay") SystemInfo["VFD_initial_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = not SystemInfo["7segment"] and getBoxType() not in ('et8500') and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType() != 'gb800ueplus' SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["HasForceLNBOn"] = fileCheck("/proc/stb/frontend/fbc/force_lnbon") SystemInfo["HasForceToneburst"] = fileCheck("/proc/stb/frontend/fbc/force_toneburst") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k','gbquad4k') SystemInfo["hasXcoreVFD"] = getBoxType() in ('osmega','spycat4k','spycat4kmini','spycat4kcombo') and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getMachineBuild() in ('inihdp', 'hd2400', 'et10000', 'et13000', 'dm7080', 'dm820', 'dm900', 'vuultimo4k', 'vuuno4kse') or getBoxType() in ('gbquad4k') SystemInfo["HasHDMI-CEC"] = fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") SystemInfo["HasInfoButton"] = getBrandOEM() in ('broadmedia', 'ceryon', 'dags', 'formuler', 'gfutures', 'gigablue', 'ini', 'octagon', 'odin', 'skylake', 'tiviar', 'xcore', 'xp', 'xtrend') SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["canMultiBoot"] = getMachineBuild() in ('hd51', 'h7', 'vs1500') and (1, 4, 'mmcblk0p') or getBoxType() in ('gbue4k', 'gbquad4k') and (3, 3, 'mmcblk0p') or getMachineBuild() in ('cc1','sf8008','ustym4kpro') and fileCheck("/dev/sda") and (0, 2, 'sda') SystemInfo["HasHiSi"] = pathExists('/proc/hisi') SystemInfo["canMode12"] = getMachineBuild() in ('hd51') and ('440M@328M brcm_cma=192M@768M', '520M@248M brcm_cma=200M@768M') SystemInfo["HasMMC"] = fileHas("/proc/cmdline", "root=/dev/mmcblk") or SystemInfo["canMultiBoot"] and fileHas("/proc/cmdline", "root=/dev/sda") SystemInfo["supportPcmMultichannel"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["CanAACTranscode"] = fileExists("/proc/stb/audio/aac_transcode_choices") and fileCheck("/proc/stb/audio/aac_transcode") SystemInfo["CanDownmixAC3"] = fileHas("/proc/stb/audio/ac3_choices", "downmix") SystemInfo["CanDownmixDTS"] = fileHas("/proc/stb/audio/dts_choices", "downmix") SystemInfo["CanDownmixAAC"] = fileHas("/proc/stb/audio/aac_choices", "downmix")
) not in ('et8500') and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck( "/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] and getBoxType( ) != 'gb800ueplus' SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck( "/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck( "/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck( "/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ( 'vusolo4k', 'gbquad4k') SystemInfo["hasXcoreVFD"] = getBoxType() in ( 'osmega', 'spycat4k', 'spycat4kmini', 'spycat4kcombo') and fileCheck( "/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getHaveHDMIinHD() in ( 'True', ) or getHaveHDMIinFHD() in ('True', ) SystemInfo["HasHDMI-CEC"] = fileExists( "/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") SystemInfo["HasInfoButton"] = getBrandOEM() in ('airdigital', 'broadmedia', 'ceryon', 'dags', 'dinobot', 'edision', 'formuler', 'gfutures', 'gigablue', 'ini', 'maxytec', 'octagon', 'odin', 'skylake', 'tiviar', 'xcore',
"vuduo4k") or getBoxType() in ("spycat4k", "spycat4kcombo", "gbquad4k") SystemInfo["HaveRCA"] = getHaveRCA() == "True" SystemInfo["HaveDVI"] = getHaveDVI() == "True" SystemInfo["HaveAVJACK"] = getHaveAVJACK() == "True" SystemInfo["HAVESCART"] = getHaveSCART() == "True" SystemInfo["HAVESCARTYUV"] = getHaveSCARTYUV() == "True" SystemInfo["HAVEYUV"] = getHaveYUV() == "True" SystemInfo["HAVEHDMI"] = getHaveHDMI() == "True" SystemInfo["MBbootdevice"] = getMBbootdevice() SystemInfo["canMultiBoot"] = getMultibootslots() SystemInfo["canMode12"] = getMachineBuild() in ( 'hd51', 'vs1500', 'h7') and ('brcm_cma=440M@328M brcm_cma=192M@768M', 'brcm_cma=520M@248M brcm_cma=200M@768M') SystemInfo["HAScmdline"] = fileCheck("/boot/cmdline.txt") SystemInfo["HasHiSi"] = pathExists("/proc/hisi") SystemInfo["HasMMC"] = fileHas( "/proc/cmdline", "root=/dev/mmcblk") or "mmcblk" in getMachineMtdRoot() SystemInfo["HasSDmmc"] = SystemInfo["canMultiBoot"] and "sd" in SystemInfo[ "canMultiBoot"][2] and "mmcblk" in getMachineMtdRoot() SystemInfo["HasSDswap"] = getMachineBuild() in ( "h9", "i55plus") and pathExists("/dev/mmcblk0p1") SystemInfo["CanProc"] = SystemInfo["HasMMC"] and getBrandOEM() != "vuplus" SystemInfo["canRecovery"] = getMachineBuild() in ( 'hd51', 'vs1500', 'h7', '8100s') and ('disk.img', 'mmcblk0p1') or getMachineBuild() in ( 'xc7439', 'osmio4k', 'osmio4kplus', 'osmini4k') and ('emmc.img', 'mmcblk1p1') or getMachineBuild() in ( 'gbmv200', 'cc1', 'sf8008', 'sf8008m', 'ustym4kpro', 'beyonwizv2', 'viper4k') and ('usb_update.bin', 'none') SystemInfo["VfdDisplay"] = getBoxType() not in ( 'anadol4k', 'dinobot4kl', 'dinobot4k', 'dinobot4kse', 'vuultimo', 'xpeedlx3', 'et10000', 'mutant2400', 'quadbox2400',
SystemInfo["VFD_scroll_repeats"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/scroll_repeats") SystemInfo["VFD_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/scroll_delay") SystemInfo["VFD_initial_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = not SystemInfo["7segment"] and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LCDMiniTV"] = fileExists("/proc/stb/lcd/mode") SystemInfo["LCDMiniTVPiP"] = SystemInfo["LCDMiniTV"] SystemInfo["LcdPowerOn"] = fileExists("/proc/stb/power/vfd") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["HasForceLNBOn"] = fileCheck("/proc/stb/frontend/fbc/force_lnbon") SystemInfo["HasForceToneburst"] = fileCheck("/proc/stb/frontend/fbc/force_toneburst") SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k') SystemInfo["hasXcoreVFD"] = fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % getBoxType()) SystemInfo["HasHDMIin"] = getMachineBuild() in ('vuuno4kse', 'vuultimo4k') SystemInfo["HasHDMI-CEC"] = fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") SystemInfo["HasInfoButton"] = False SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["canMultiBoot"] = False SystemInfo["HasHiSi"] = False SystemInfo["canMode12"] = False SystemInfo["HasMMC"] = fileHas("/proc/cmdline", "root=/dev/mmcblk") or SystemInfo["canMultiBoot"] and fileHas("/proc/cmdline", "root=/dev/sda") SystemInfo["HasSDmmc"] = SystemInfo["canMultiBoot"] and "sd" in SystemInfo["canMultiBoot"][2] and "mmcblk" in getMachineMtdRoot() SystemInfo["supportPcmMultichannel"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["CanAACTranscode"] = fileExists("/proc/stb/audio/aac_transcode_choices") and fileCheck("/proc/stb/audio/aac_transcode") SystemInfo["CanDownmixAC3"] = fileHas("/proc/stb/audio/ac3_choices", "downmix") SystemInfo["CanDownmixDTS"] = fileHas("/proc/stb/audio/dts_choices", "downmix")
import Tools.RedirectOutput from Tools.Directories import resolveFilename, fileExists from boxbranding import getImageArch from enigma import getBoxType, getBoxBrand, getE2Rev import enigma import eConsoleImpl import eBaseImpl enigma.eTimer = eBaseImpl.eTimer enigma.eSocketNotifier = eBaseImpl.eSocketNotifier enigma.eConsoleAppContainer = eConsoleImpl.eConsoleAppContainer model = getBoxType() brand = getBoxBrand() if fileHas ("/var/log/samba/log.nmbd","ERROR: Could not determine network interfaces") and not fileHas ("/var/log/samba/log.nmbd","daemon_ready"): from Components.Console import Console print("[mytest] Try load all network interfaces.") Console = Console() Console.ePopen('/etc/init.d/networking restart ; /etc/init.d/samba.sh restart ; mount -a -t nfs,smbfs,cifs,ncpfs') print("[mytest] All network interfaces loaded.") from Components.SystemInfo import SystemInfo from traceback import print_exc if getImageArch() == "aarch64": import usb.core import usb.backend.libusb1 usb.backend.libusb1.get_backend(find_library=lambda x: "/lib/libusb-1.0.so.0") profile("ClientMode")
SystemInfo["HasBypassEdidChecking"] = fileCheck( "/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and model in ( 'vusolo4k', ) SystemInfo["HasMultichannelPCM"] = fileCheck( "/proc/stb/audio/multichannel_pcm") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = model in ( 'vusolo4k') or getMachineBuild() in ('gb7252', 'gb72604') SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = model in ("et8500", "vusolo4k", "vuuno4kse", "vuduo4k", "vuduo4kse", "vuultimo4k", "gbquad4k", "gbue4k") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists( resolveFilename(SCOPE_PLUGINS, "SystemPlugins/HdmiCEC/plugin.pyo")) and ( fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasYPbPr"] = getMachineBuild() in ( 'gb7356', 'gb7325') or model in ('gbultraue', 'gbultraueh', 'gb800ueplus', 'gb800seplus') SystemInfo["HasScart"] = getMachineBuild() in ('gb7325', ) SystemInfo["HasSVideo"] = getMachineBuild() in ('dummy', ) SystemInfo["HasComposite"] = getMachineBuild() in ( 'gb7356', 'gb7358', 'gb7325') or model in ('gbultraue', 'gbultraueh') SystemInfo["HasAutoVolume"] = fileExists(
def __init__(self, session): Screen.__init__(self, session) self.setTitle(_("About")) hddsplit = skin.parameters.get("AboutHddSplit", 0) procmodel = getBoxProc() AboutText = _("Hardware: ") + about.getHardwareTypeString() + "\n" if procmodel != about.getHardwareTypeString(): AboutText += _("Proc model: ") + procmodel + "\n" if fileExists("/proc/stb/info/sn"): hwserial = open("/proc/stb/info/sn", "r").read().strip() AboutText += _("Hardware serial: ") + hwserial + "\n" AboutText += _("Brand: ") + about.getHardwareBrand() + "\n" cpu = about.getCPUInfoString() AboutText += _("CPU: ") + cpu + "\n" AboutText += _("CPU brand: ") + about.getCPUBrand() + "\n" AboutText += _("CPU architecture: ") + about.getCPUArch() + "\n" if boxbranding.getImageFPU() != "": AboutText += _("FPU: ") + boxbranding.getImageFPU() + "\n" AboutText += _( "Image architecture: ") + boxbranding.getImageArch() + "\n" if boxbranding.getImageArch() == "aarch64": if boxbranding.getHaveMultiLib() == "True": AboutText += _("MultiLib: ") + _("Yes") + "\n" else: AboutText += _("MultiLib: ") + _("No") + "\n" AboutText += _("Flash type: ") + about.getFlashType() + "\n" AboutText += "\n" + _("Image: ") + about.getImageTypeString() + "\n" AboutText += _("Feed URL: ") + boxbranding.getFeedsUrl() + "\n" AboutText += _( "Open Vision version: ") + about.getVisionVersion() + "\n" AboutText += _( "Open Vision revision: ") + about.getVisionRevision() + "\n" AboutText += _("Open Vision module: ") + about.getVisionModule() + "\n" AboutText += _("Build date: ") + about.getBuildDateString() + "\n" AboutText += _("Last update: ") + about.getUpdateDateString() + "\n" # [WanWizard] Removed until we find a reliable way to determine the installation date # AboutText += _("Installed: ") + about.getFlashDateString() + "\n" EnigmaVersion = about.getEnigmaVersionString() EnigmaVersion = EnigmaVersion.rsplit("-", EnigmaVersion.count("-") - 2) if len(EnigmaVersion) == 3: EnigmaVersion = EnigmaVersion[0] + " (" + EnigmaVersion[ 2] + "-" + EnigmaVersion[1] + ")" else: EnigmaVersion = EnigmaVersion[0] + " (" + EnigmaVersion[1] + ")" EnigmaVersion = _("Enigma version: ") + EnigmaVersion self["EnigmaVersion"] = StaticText(EnigmaVersion) AboutText += "\n" + EnigmaVersion + "\n" AboutText += _( "Enigma (re)starts: %d\n") % config.misc.startCounter.value AboutText += _("Enigma debug level: %d\n") % eGetEnigmaDebugLvl() AboutText += "\n" + _( "Kernel version: ") + about.getKernelVersionString() + "\n" AboutText += _( "DVB driver version: ") + about.getDriverInstalledDate() + "\n" AboutText += _("DVB API: ") + about.getDVBAPI() + "\n" if fileExists("/usr/bin/dvb-fe-tool"): import time try: cmd = 'dvb-fe-tool > /tmp/dvbfetool.txt' res = Console().ePopen(cmd) time.sleep(0.1) except: pass if fileExists("/tmp/dvbfetool.txt"): if fileHas("/tmp/dvbfetool.txt", "DVBC") or fileHas( "/tmp/dvbfetool.txt", "DVB-C"): AboutText += _("DVB-C: ") + _("Yes") + "\n" else: AboutText += _("DVB-C: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "DVBS") or fileHas( "/tmp/dvbfetool.txt", "DVB-S"): AboutText += _("DVB-S: ") + _("Yes") + "\n" else: AboutText += _("DVB-S: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "DVBT") or fileHas( "/tmp/dvbfetool.txt", "DVB-T"): AboutText += _("DVB-T: ") + _("Yes") + "\n" else: AboutText += _("DVB-T: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "MULTISTREAM"): AboutText += _("Multistream: ") + _("Yes") + "\n" else: AboutText += _("Multistream: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "ANNEX_A") or fileHas( "/tmp/dvbfetool.txt", "ANNEX-A"): AboutText += _("ANNEX-A: ") + _("Yes") + "\n" else: AboutText += _("ANNEX-A: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "ANNEX_B") or fileHas( "/tmp/dvbfetool.txt", "ANNEX-B"): AboutText += _("ANNEX-B: ") + _("Yes") + "\n" else: AboutText += _("ANNEX-B: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt", "ANNEX_C") or fileHas( "/tmp/dvbfetool.txt", "ANNEX-C"): AboutText += _("ANNEX-C: ") + _("Yes") + "\n" else: AboutText += _("ANNEX-C: ") + _("No") + "\n" GStreamerVersion = _("GStreamer version: " ) + about.getGStreamerVersionString(cpu).replace( "GStreamer", "") self["GStreamerVersion"] = StaticText(GStreamerVersion) AboutText += "\n" + GStreamerVersion + "\n" FFmpegVersion = _("FFmpeg version: ") + about.getFFmpegVersionString() self["FFmpegVersion"] = StaticText(FFmpegVersion) AboutText += FFmpegVersion + "\n" AboutText += _( "Python version: ") + about.getPythonVersionString() + "\n" fp_version = getFPVersion() if fp_version is None: fp_version = "" else: fp_version = _("Frontprocessor version: %s") % fp_version AboutText += fp_version + "\n" self["FPVersion"] = StaticText(fp_version) if boxbranding.getHaveTranscoding() != "": AboutText += _("Transcoding: ") + _("Yes") + "\n" else: AboutText += _("Transcoding: ") + _("No") + "\n" if boxbranding.getHaveMultiTranscoding() != "": AboutText += _("MultiTranscoding: ") + _("Yes") + "\n" else: AboutText += _("MultiTranscoding: ") + _("No") + "\n" AboutText += _('Skin & Resolution: %s (%sx%s)\n') % ( config.skin.primary_skin.value.split('/')[0], getDesktop(0).size().width(), getDesktop(0).size().height()) self["TunerHeader"] = StaticText(_("Detected NIMs:")) AboutText += "\n" + _("Detected NIMs:") + "\n" nims = nimmanager.nimListCompressed() for count in range(len(nims)): if count < 4: self["Tuner" + str(count)] = StaticText(nims[count]) else: self["Tuner" + str(count)] = StaticText("") AboutText += nims[count] + "\n" self["HDDHeader"] = StaticText(_("Detected HDD:")) AboutText += "\n" + _("Detected HDD:") + "\n" hddlist = harddiskmanager.HDDList() hddinfo = "" if hddlist: formatstring = hddsplit and "%s:%s, %.1f %sB %s" or "%s\n(%s, %.1f %sB %s)" for count in range(len(hddlist)): if hddinfo: hddinfo += "\n" hdd = hddlist[count][1] if int(hdd.free()) > 1024: hddinfo += formatstring % (hdd.model(), hdd.capacity(), hdd.free() / 1024.0, "G", _("free")) else: hddinfo += formatstring % (hdd.model(), hdd.capacity(), hdd.free(), "M", _("free")) else: hddinfo = _("none") self["hddA"] = StaticText(hddinfo) AboutText += hddinfo + "\n\n" + _("Network Info:") for x in about.GetIPsFromNetworkInterfaces(): AboutText += "\n" + x[0] + ": " + x[1] self["AboutScrollLabel"] = ScrollLabel(AboutText) self["key_green"] = Button(_("Translations")) self["key_red"] = Button(_("Latest Commits")) self["key_yellow"] = Button(_("Troubleshoot")) self["key_blue"] = Button(_("Memory Info")) self["actions"] = ActionMap( ["ColorActions", "SetupActions", "DirectionActions"], { "cancel": self.close, "ok": self.close, "red": self.showCommits, "green": self.showTranslationInfo, "blue": self.showMemoryInfo, "yellow": self.showTroubleshoot, "up": self["AboutScrollLabel"].pageUp, "down": self["AboutScrollLabel"].pageDown })
def __init__(self, session): Screen.__init__(self, session) self.setTitle(_("DVB information")) DVBInformationText = _("DVB information") + "\n" DVBInformationText += "\n" DVBInformationText += _("DVB API: ") + about.getDVBAPI() + "\n" if fileExists("/usr/bin/dvb-fe-tool"): import time try: cmd = 'dvb-fe-tool > /tmp/dvbfetool.txt' Console().ePopen(cmd) cmdv = "dvb-fe-tool | grep -o 'DVB API Version [0-9].[0-9]*' | sed 's|[^0-9]*||' > /tmp/dvbapiversion.txt" Console().ePopen(cmdv) time.sleep(0.1) except: pass if fileExists("/tmp/dvbapiversion.txt"): dvbapiversion = open("/tmp/dvbapiversion.txt", "r").read().strip() DVBInformationText += _("DVB API version: ") + dvbapiversion + "\n" DVBInformationText += "\n" if boxbranding.getHaveTranscoding() == "True": DVBInformationText += _("Transcoding: ") + _("Yes") + "\n" else: DVBInformationText += _("Transcoding: ") + _("No") + "\n" if boxbranding.getHaveMultiTranscoding() == "True": DVBInformationText += _("MultiTranscoding: ") + _("Yes") + "\n" else: DVBInformationText += _("MultiTranscoding: ") + _("No") + "\n" DVBInformationText += "\n" if fileExists("/tmp/dvbfetool.txt"): if fileHas("/tmp/dvbfetool.txt","DVBC") or fileHas("/tmp/dvbfetool.txt","DVB-C"): DVBInformationText += _("DVB-C: ") + _("Yes") + "\n" else: DVBInformationText += _("DVB-C: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt","DVBS") or fileHas("/tmp/dvbfetool.txt","DVB-S"): DVBInformationText += _("DVB-S: ") + _("Yes") + "\n" else: DVBInformationText += _("DVB-S: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt","DVBT") or fileHas("/tmp/dvbfetool.txt","DVB-T"): DVBInformationText += _("DVB-T: ") + _("Yes") + "\n" else: DVBInformationText += _("DVB-T: ") + _("No") + "\n" DVBInformationText += "\n" if fileHas("/tmp/dvbfetool.txt","MULTISTREAM"): DVBInformationText += _("Multistream: ") + _("Yes") + "\n" else: DVBInformationText += _("Multistream: ") + _("No") + "\n" DVBInformationText += "\n" if fileHas("/tmp/dvbfetool.txt","ANNEX_A") or fileHas("/tmp/dvbfetool.txt","ANNEX-A"): DVBInformationText += _("ANNEX-A: ") + _("Yes") + "\n" else: DVBInformationText += _("ANNEX-A: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt","ANNEX_B") or fileHas("/tmp/dvbfetool.txt","ANNEX-B"): DVBInformationText += _("ANNEX-B: ") + _("Yes") + "\n" else: DVBInformationText += _("ANNEX-B: ") + _("No") + "\n" if fileHas("/tmp/dvbfetool.txt","ANNEX_C") or fileHas("/tmp/dvbfetool.txt","ANNEX-C"): DVBInformationText += _("ANNEX-C: ") + _("Yes") + "\n" else: DVBInformationText += _("ANNEX-C: ") + _("No") + "\n" self["AboutScrollLabel"] = ScrollLabel(DVBInformationText) self["key_red"] = Button(_("Close")) self["actions"] = ActionMap(["ColorActions", "SetupActions", "DirectionActions"], { "cancel": self.close, "ok": self.close, "up": self["AboutScrollLabel"].pageUp, "down": self["AboutScrollLabel"].pageDown })
SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVMode"] = fileCheck("/proc/stb/lcd/mode") SystemInfo["LcdLiveDecoder"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["FastChannelChange"] = False SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = fileCheck("/proc/stb/info/vumodel") SystemInfo["RcTypeChangable"] = not(getBoxType().startswith("et85") or getBoxType().startswith("et7")) and pathExists("/proc/stb/ir/rc/type") SystemInfo["HasFullHDSkinSupport"] = getBoxType() not in ("et4x00","et5x00","sh1","hd500c","hd1100","xp1000","lc","k1plus","k1pro","k2pro","k2prov2","k3pro") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and getBoxType() in ("vusolo4k","vuuno4k","vuuno4kse","vuultimo4k","vuduo4k") SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists("/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline","r").read() SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices","h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ("vusolo4k","gbquad4k") SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = getBoxType() in ("vusolo4k","et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred","2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasYPbPr"] = getBoxType() in ("dm8000","et5x00","et6x00","et9x00","et10000","formuler1","mbtwinplus","spycat","vusolo","vuduo","vuduo2","vuultimo") SystemInfo["HasScart"] = getBoxType() in ("dm8000","et4x00","et6x00","et8000","et9x00","et10000","formuler1","hd1100","hd1200","hd1265","hd2400","vusolo","vusolo2","vuduo","vuduo2","vuultimo","vuuno","xp1000") SystemInfo["HasSVideo"] = getBoxType() == "dm8000" SystemInfo["HasComposite"] = getBoxType() not in ("dm900","dm920","dreamone","i55","gbquad4k","gbue4k","hd1500","osnino","osninoplus","purehd","purehdse","revo4k","vusolo4k","vuzero4k") SystemInfo["HasAutoVolume"] = fileExists("/proc/stb/audio/avl_choices") and fileCheck("/proc/stb/audio/avl") SystemInfo["HasAutoVolumeLevel"] = fileExists("/proc/stb/audio/autovolumelevel_choices") and fileCheck("/proc/stb/audio/autovolumelevel")
SystemInfo["VFD_initial_scroll_delay"] = model != "et8500" and fileCheck("/proc/stb/lcd/initial_scroll_delay") SystemInfo["VFD_final_scroll_delay"] = model != "et8500" and fileCheck("/proc/stb/lcd/final_scroll_delay") SystemInfo["LcdLiveTV"] = fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable") SystemInfo["LcdLiveTVMode"] = fileCheck("/proc/stb/lcd/mode") SystemInfo["LcdLiveDecoder"] = fileCheck("/proc/stb/lcd/live_decoder") SystemInfo["3DMode"] = fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d") SystemInfo["3DZNorm"] = fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset") SystemInfo["Blindscan_t2_available"] = brand == "vuplus" SystemInfo["HasFullHDSkinSupport"] = model not in ("et4x00","et5x00","sh1","hd500c","hd1100","xp1000","lc") and brand not in ("minix","hardkernel") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and model in ("vusolo4k","vuuno4k","vuuno4kse","vuultimo4k","vuduo4k","vuduo4kse") SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = "root" in cmdline and cmdline["root"].startswith("/dev/mmcblk") SystemInfo["HasTranscoding"] = getHaveTranscoding() == "True" or getHaveMultiTranscoding() == "True" or pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices","h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = model in ("vusolo4k","gbquad4k") SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = model in ("vusolo4k","et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasHDMI-CEC"] = getHaveHDMI() == "True" and fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/HdmiCEC/plugin.py")) and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")) SystemInfo["HasHDMIHDin"] = getHaveHDMIinHD() == "True" SystemInfo["HasHDMIFHDin"] = getHaveHDMIinFHD() == "True" SystemInfo["HDMIin"] = SystemInfo["HasHDMIHDin"] or SystemInfo["HasHDMIFHDin"] SystemInfo["HasYPbPr"] = getHaveYUV() == "True" SystemInfo["HasScart"] = getHaveSCART() == "True" SystemInfo["HasSVideo"] = getHaveSVIDEO() == "True" SystemInfo["HasComposite"] = getHaveRCA() == "True"
SystemInfo["hasOSDAnimation"] = fileCheck("/proc/stb/fb/animation_mode") SystemInfo["CIHelper"] = fileExists("/usr/bin/cihelper") SystemInfo["RcTypeChangable"] = pathExists('/proc/stb/ir/rc/type') SystemInfo["HasFullHDSkinSupport"] = getBoxType() not in ('gb800solo', 'gb800se', 'gb800ue') SystemInfo["HasForceLNBOn"] = fileCheck("/proc/stb/frontend/fbc/force_lnbon") SystemInfo["HasForceToneburst"] = fileCheck("/proc/stb/frontend/fbc/force_toneburst") SystemInfo["HasBypassEdidChecking"] = fileCheck("/proc/stb/hdmi/bypass_edid_checking") SystemInfo["HasColorspace"] = fileCheck("/proc/stb/video/hdmi_colorspace") SystemInfo["HasColorspaceSimple"] = SystemInfo["HasColorspace"] and getBoxType() in ('vusolo4k') SystemInfo["HasMultichannelPCM"] = fileCheck("/proc/stb/audio/multichannel_pcm") SystemInfo["HasMMC"] = fileExists("/proc/cmdline") and "root=/dev/mmcblk" in open("/proc/cmdline", "r").read() SystemInfo["HasSwap"] = pathExists("/dev/mmcblk0p10") SystemInfo["HasMultiBoot"] = fileCheck("/boot/STARTUP_1") and getMachineBuild() not in ('gb7252') SystemInfo["HasMultiBootGB"] = SystemInfo["HasSwap"] and fileCheck("/boot/STARTUP_1") and getMachineBuild() in ('gb7252') SystemInfo["HasTranscoding"] = pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0") SystemInfo["HasH265Encoder"] = fileHas("/proc/stb/encoder/0/vcodec_choices", "h265") SystemInfo["CanNotDoSimultaneousTranscodeAndPIP"] = getBoxType() in ('vusolo4k') or getMachineBuild() in ('gb7252') SystemInfo["HasColordepth"] = fileCheck("/proc/stb/video/hdmi_colordepth") SystemInfo["HasFrontDisplayPicon"] = getBoxType() in ("vusolo4k", "et8500") SystemInfo["Has24hz"] = fileCheck("/proc/stb/video/videomode_24hz") SystemInfo["Has2160p"] = fileHas("/proc/stb/video/videomode_preferred", "2160p50") SystemInfo["HasHDMIpreemphasis"] = fileCheck("/proc/stb/hdmi/preemphasis") SystemInfo["HasColorimetry"] = fileCheck("/proc/stb/video/hdmi_colorimetry") SystemInfo["HasHDMI-CEC"] = HardwareInfo().has_hdmi() and fileExists("/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.pyo") and pathExists("/dev/hdmi_cec") or pathExists("/dev/misc/hdmi_cec0") SystemInfo["HasHdrType"] = fileCheck("/proc/stb/video/hdmi_hdrtype") SystemInfo["HasYPbPr"] = getMachineBuild() in ('gb7356', 'gb7325') or getBoxType() in ('gbultraue', 'gbultraueh', 'gb800ueplus', 'gb800seplus') SystemInfo["HasScart"] = getMachineBuild() in ('gb7325') SystemInfo["HasSVideo"] = getMachineBuild() in ('dummy') SystemInfo["HasComposite"] = getMachineBuild() in ('gb7356', 'gb7358', 'gb7325') or getBoxType() in ('gbultraue', 'gbultraueh') SystemInfo["HasAutoVolume"] = fileExists("/proc/stb/audio/avl_choices") and fileCheck("/proc/stb/audio/avl") SystemInfo["HasAutoVolumeLevel"] = fileExists("/proc/stb/audio/autovolumelevel_choices") and fileCheck("/proc/stb/audio/autovolumelevel")
def getAllInfo(): info = {} brand = "unknown" model = "unknown" procmodel = "unknown" grabpip = 0 lcd = 0 if fileExists("/proc/stb/info/hwmodel"): brand = "DAGS" f = open("/proc/stb/info/hwmodel", 'r') procmodel = f.readline().strip() f.close() if (procmodel.startswith("optimuss") or procmodel.startswith("pingulux")): brand = "Edision" model = procmodel.replace("optimmuss", "Optimuss ").replace( "plus", " Plus").replace(" os", " OS") if (procmodel.startswith("tm")): brand = "Technomate" if procmodel == "tmnanosem2": model = procmodel.replace("tmnanosem2", "TM-NANO-SE M2") elif (procmodel.startswith("fusion") or procmodel.startswith("purehd") or procmodel.startswith("revo4k") or procmodel.startswith("galaxy4k")): brand = "Xsarius" if procmodel == "fusionhd": model = procmodel.replace("fusionhd", "Fusion HD") elif procmodel == "fusionhdse": model = procmodel.replace("fusionhdse", "Fusion HD SE") elif procmodel == "purehd": model = procmodel.replace("purehd", "Pure HD") elif procmodel == "purehdse": model = procmodel.replace("purehdse", "Pure HD SE") elif procmodel == "revo4k": model = procmodel.replace("revo4k", "Revo4K") elif procmodel == "galaxy4k": model = procmodel.replace("galaxy4k", "Galaxy4K") elif (procmodel.startswith("lunix")): brand = "Qviart" if procmodel == "lunix3-4k": model = procmodel.replace("lunix3-4k", "Lunix3-4K") elif procmodel == "lunix": model = procmodel.replace("lunix", "Lunix") elif fileExists("/proc/stb/info/azmodel"): brand = "AZBox" f = open("/proc/stb/info/model", 'r') # To-Do: Check if "model" is really correct ... procmodel = f.readline().strip() f.close() model = procmodel.lower() elif fileExists("/proc/stb/info/gbmodel"): brand = "GigaBlue" procmodel = getBoxType() if procmodel == "GBQUAD PLUS": model = procmodel.replace("GBQUAD", "Quad").replace("PLUS", " Plus") elif procmodel == "gbquad4k": model = procmodel.replace("gbquad4k", "UHD Quad 4k") elif procmodel == "gbue4k": model = procmodel.replace("gbue4k", "UHD UE 4k") elif procmodel == "gbtrio4k": model = "UHD TRIO 4K" grabpip = 1 elif procmodel == "gbip4k": model = "UHD IP 4K" grabpip = 1 elif 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", "²") elif fileExists("/proc/boxtype"): f = open("/proc/boxtype", 'r') procmodel = f.readline().strip().lower() f.close() if procmodel in ("adb2850", "adb2849", "bska", "bsla", "bxzb", "bzzb"): brand = "Advanced Digital Broadcast" if procmodel in ("bska", "bxzb"): model = "ADB 5800S" elif procmodel in ("bsla", "bzzb"): model = "ADB 5800SX" elif procmodel == "adb2849": model = "ADB 2849ST" else: model = "ADB 2850ST" elif procmodel in ("esi88", "uhd88"): brand = "Sagemcom" if procmodel == "uhd88": model = "UHD 88" else: model = "ESI 88" elif fileExists("/proc/stb/info/boxtype"): f = open("/proc/stb/info/boxtype", 'r') procmodel = f.readline().strip().lower() f.close() if procmodel.startswith("et"): if procmodel == "et7000mini": brand = "Galaxy Innovations" model = "ET-7000 Mini" elif procmodel == "et11000": brand = "Galaxy Innovations" model = "ET-11000" else: brand = "Xtrend" model = procmodel.upper() elif procmodel.startswith("xpeed"): brand = "Golden Interstar" model = procmodel elif procmodel.startswith("xp"): brand = "MaxDigital" model = procmodel.upper() elif procmodel.startswith("ixuss"): brand = "Medialink" model = procmodel.replace(" ", "") elif procmodel == "formuler4turbo": brand = "Formuler" model = "4 Turbo" elif procmodel.startswith("formuler"): brand = "Formuler" model = procmodel.replace("formuler", "") elif procmodel.startswith("mbtwinplus"): brand = "Miraclebox" model = "Premium Twin+" elif procmodel.startswith("alphatriplehd"): brand = "SAB" model = "Alpha Triple HD" elif procmodel in ("7000s", "mbmicro"): procmodel = "mbmicro" brand = "Miraclebox" model = "Premium Micro" elif procmodel in ("7005s", "mbmicrov2"): procmodel = "mbmicrov2" brand = "Miraclebox" model = "Premium Micro v2" elif procmodel.startswith("ini"): if procmodel.endswith("9000ru"): brand = "Sezam" model = "Marvel" elif procmodel.endswith("5000ru"): brand = "Sezam" model = "hdx" elif procmodel.endswith("1000ru"): brand = "Sezam" model = "hde" elif procmodel.endswith("5000sv"): brand = "Miraclebox" model = "mbtwin" elif procmodel.endswith("1000sv"): brand = "Miraclebox" model = "Premium Mini" elif procmodel.endswith("1000de"): brand = "Golden Interstar" model = "Xpeed LX" elif procmodel.endswith("9000de"): brand = "Golden Interstar" model = "Xpeed LX3" elif procmodel.endswith("1000lx"): brand = "Golden Interstar" model = "Xpeed LX" elif procmodel.endswith("de"): brand = "Golden Interstar" elif procmodel.endswith("1000am"): brand = "Atemio" model = "5x00" elif procmodel.endswith("8000am"): brand = "Atemio" model = "Nemesis" elif procmodel.endswith("8000am"): brand = "Miraclebox" model = "Premium Ultra" elif procmodel.endswith("3000"): brand = "Venton Unibox" model = "HD1" else: brand = "Venton" model = "HDx" elif procmodel.startswith("unibox-"): brand = "Venton" model = "HDe" elif procmodel.startswith("u5pvr"): brand = "Dinobot" model = "Dinobot4kSE|Ferguson4k" elif procmodel == "hd1100": brand = "Mut@nt" model = "HD1100" elif procmodel == "hd1200": brand = "Mut@nt" model = "HD1200" elif procmodel == "hd1265": brand = "Mut@nt" model = "HD1265" elif procmodel == "hd2400": brand = "Mut@nt" model = "HD2400" elif procmodel == "hd51": brand = "Mut@nt" model = "HD51" grabpip = 1 elif procmodel == "hd11": brand = "Mut@nt" model = "HD11" elif procmodel == "hd500c": brand = "Mut@nt" model = "HD500c" elif procmodel == "hd530c": brand = "Mut@nt" model = "HD530c" elif procmodel == "hd60": brand = "Mut@nt" model = "HD60" elif procmodel == "arivalink200": brand = "Ferguson" model = "Ariva @Link 200" elif procmodel.startswith("spark"): brand = "Fulan" if procmodel == "spark7162": model = "Spark 7162" else: model = "Spark" elif procmodel == "spycat": brand = "Spycat" model = "Spycat" elif procmodel == "spycatmini": brand = "Spycat" model = "Spycat Mini" elif procmodel == "spycatminiplus": brand = "Spycat" model = "Spycat Mini+" elif procmodel == "spycat4kmini": brand = "Spycat" model = "spycat 4K Mini" elif procmodel == "vipercombo": brand = "Amiko" model = "ViperCombo" elif procmodel == "vipert2c": brand = "Amiko" model = "ViperT2C" elif procmodel == "vipercombohdd": brand = "Amiko" model = "ViperComboHDD" elif procmodel.startswith("wetek"): brand = "WeTeK" model = procmodel elif procmodel.endswith("008"): brand = "OCTAGON" if procmodel == "sf8008": model = "SF8008 4k UHD TWIN" grabpip = 1 elif procmodel.endswith("08m"): brand = "OCTAGON" if procmodel == "sf8008m": model = "SF8008 MINI 4k UHD" elif procmodel.startswith("os"): brand = "Edision" if procmodel == "osmini": model = "OS Mini" elif procmodel == "osminiplus": model = "OS Mini+" elif procmodel == "osmega": model = "OS Mega" elif procmodel == "osnino": model = "OS Nino" elif procmodel == "osninoplus": model = "OS Nino+" elif procmodel == "osninopro": model = "OS Nino Pro" elif procmodel == "osmio4k": model = "OS Mio 4K" grabpip = 1 elif procmodel == "osmio4kplus": model = "OS mio+ 4K" grabpip = 1 else: model = procmodel elif procmodel == "h3": brand = "Zgemma" model = "H3 series" elif procmodel == "h4": brand = "Zgemma" model = "H4 series" elif procmodel == "h5": brand = "Zgemma" model = "H5 series" elif procmodel == "h6": brand = "Zgemma" model = "H6 series" elif procmodel == "h7": brand = "Zgemma" model = "H7 series" grabpip = 1 elif procmodel == "h9": brand = "Zgemma" model = "H9 series" elif procmodel == "lc": brand = "Zgemma" model = "LC" elif procmodel == "sh1": brand = "Zgemma" model = "Star series" elif procmodel == "i55": brand = "Zgemma" model = "i55" elif procmodel == "vs1500": brand = "Vimastec" model = "vs1500" grabpip = 1 elif procmodel == "e4hd": brand = "Axas" model = "E4HD" lcd = 1 grabpip = 1 elif fileExists("/proc/stb/info/model"): f = open("/proc/stb/info/model", 'r') procmodel = f.readline().strip().lower() f.close() if procmodel == "tf7700hdpvr": brand = "Topfield" model = "TF7700 HDPVR" elif procmodel == "dsi87": brand = "Sagemcom" model = "DSI 87" elif procmodel.startswith("spark"): brand = "Fulan" if procmodel == "spark7162": model = "Spark 7162" else: model = "Spark" elif (procmodel.startswith("dm") and not procmodel == "dm8000"): brand = "Dream Multimedia" if procmodel == "dm800": model = "DM800 HD PVR" elif procmodel == "dm800se": model = "DM800 HD se" elif procmodel == "dm500hd": model = "DM500 HD" elif procmodel == "dm7020hd": model = "DM7020 HD" elif procmodel == "dm820": model = "DM820 HD" elif procmodel == "dm7080": model = "DM7080 HD" elif procmodel == "dm520": model = "DM520 HD" elif procmodel == "dm525": model = "DM525 HD" elif procmodel == "dm900": model = "DM900 HD" grabpip = 1 elif procmodel == "dm920": model = "DM920 HD" grabpip = 1 else: model = procmodel.replace("dm", "DM", 1) elif procmodel == "dm8000": brand = "Dream Multimedia" model = "DM8000" else: model = procmodel if fileExists("/etc/.box"): distro = "HDMU" f = open("/etc/.box", 'r') tempmodel = f.readline().strip().lower() if tempmodel.startswith("ufs") or model.startswith("ufc"): brand = "Kathrein" model = tempmodel.upcase() procmodel = tempmodel elif tempmodel.startswith("spark"): brand = "Fulan" model = tempmodel.title() procmodel = tempmodel elif tempmodel.startswith("xcombo"): brand = "EVO" model = "enfinityX combo plus" procmodel = "vg2000" type = procmodel if type in ("et9x00", "et9000", "et9100", "et9200", "et9500"): type = "et9x00" elif type in ("et6x00", "et6000"): type = "et6x00" elif type in ("et5x00", "et5000"): type = "et5x00" elif type in ("et4x00", "et4000"): type = "et4x00" elif type == "xp1000": type = "xp1000" elif type in ("bska", "bxzb"): type = "nbox_white" elif type in ("bsla", "bzzb"): type = "nbox" elif type == "sagemcom88": type = "esi88" elif type in ("tf7700hdpvr", "topf"): type = "topf" elif type in ("ini-9000de"): type = "xpeedlx3" elif type in ("ini-8000am"): type = "atemionemesis" elif type in ("ini-8000am"): type = "mbultra" elif type in ("ini-9000ru"): type = "sezammarvel" elif type in ("ini-3000"): type = "ventonhdx" elif type in ("ini-1000sv"): type = "mbmini" elif type in ("u5pvr"): type = "u5pvr" info['brand'] = brand info['model'] = model info['procmodel'] = procmodel info['type'] = type remote = "dmm1" if procmodel in ("solo", "duo", "uno", "solo2", "solose", "zero", "solo4k", "uno4k", "ultimo4k"): remote = "vu_normal" elif procmodel == "duo2": remote = "vu_duo2" elif procmodel == "ultimo": remote = "vu_ultimo" elif procmodel in ("uno4kse", "zero4k"): remote = "vu_normal_02" elif procmodel == "e3hd": remote = "e3hd" elif procmodel in ("et9x00", "et9000", "et9100", "et9200", "et9500"): remote = "et9x00" elif procmodel in ("et5x00", "et5000", "et6x00", "et6000"): remote = "et5x00" elif procmodel in ("et4x00", "et4000"): remote = "et4x00" elif procmodel == "et6500": remote = "et6500" elif procmodel in ("et8x00", "et8000", "et8500", "et8500s", "et10000"): remote = "et8000" elif procmodel in ("et7x00", "et7000", "et7500"): remote = "et7x00" elif procmodel in ("et7000mini", "et11000"): remote = "et7000mini" elif procmodel == "gbquad": remote = "gigablue" elif procmodel == "gbquadplus": remote = "gbquadplus" elif procmodel in ("gbquad4k", "gbue4k"): remote = "gb7252" elif procmodel in ("gbtrio4k", "gbip4k"): remote = "gb4" elif procmodel in ("formuler1", "formuler3", "formuler4", "formuler4turbo"): remote = "formuler1" elif procmodel in ("azboxme", "azboxminime", "me", "minime"): remote = "me" elif procmodel in ("optimussos1", "optimussos1plus", "optimussos2", "optimussos2plus"): remote = "optimuss" elif procmodel in ("premium", "premium+"): remote = "premium" elif procmodel in ("elite", "ultra"): remote = "elite" elif procmodel in ("ini-1000", "ini-1000ru"): remote = "ini-1000" elif procmodel == "ini-1000sv": remote = "mbmini" elif procmodel in ("ini-5000sv", "ini-9000de"): remote = "xpeedlx3" elif procmodel == "ini-9000ru": remote = "sezammarvel" elif procmodel == "ini-8000am": remote = "atemionemesis" elif procmodel == "ini-8000am": remote = "mbultra" elif procmodel == "ini-3000": remote = "ventonhdx" elif procmodel in ("mbtwinplus", "mbmicro", "mbmicrov2"): remote = "miraclebox2" elif procmodel == "alphatriplehd": remote = "alphatriplehd" elif procmodel == "ini-3000": remote = "ini-3000" elif procmodel in ("ini-7012", "ini-7000", "ini-5000", "ini-5000ru"): remote = "ini-7000" elif procmodel.startswith("spark"): remote = "spark" elif procmodel == "xp1000": remote = "xp1000" elif procmodel.startswith("xpeedlx"): remote = "xpeedlx" elif procmodel in ("adb2850", "adb2849", "bska", "bsla", "bxzb", "bzzb", "esi88", "uhd88", "dsi87", "arivalink200"): remote = "nbox" elif procmodel in ("hd1100", "hd1200", "hd1265", "hd1400", "hd51", "hd11", "hd500c", "hd530c"): remote = "hd1x00" elif procmodel == "hd2400": remote = "hd2400" elif procmodel == "hd60": remote = "hd60" elif procmodel in ("spycat", "spycatmini", "spycatminiplus", "spycat4kmini"): remote = "spycat" elif procmodel.startswith("ixuss"): remote = procmodel.replace(" ", "") elif procmodel == "vg2000": remote = "xcombo" elif procmodel == "dm8000": remote = "dmm1" elif procmodel in ("dm7080", "dm7020hd", "dm7020hdv2", "dm800sev2", "dm500hdv2", "dm520", "dm820", "dm900"): remote = "dmm2" elif procmodel == "wetekhub": remote = procmodel elif procmodel == "wetekplay2": remote = procmodel elif procmodel == "wetekplay": remote = procmodel elif procmodel.endswith("smini"): remote = "osmini" elif procmodel.startswith("osmio4k"): remote = "edision3" elif procmodel.startswith("osninopl"): remote = "edision2" elif procmodel.startswith("osn"): remote = "edision1" elif procmodel in ("fusionhd"): remote = procmodel elif procmodel in ("fusionhdse"): remote = procmodel elif procmodel in ("purehd", "purehdse"): remote = "purehd" elif procmodel in ("revo4k"): remote = procmodel elif procmodel in ("galaxy4k"): remote = procmodel elif procmodel in ("lunix3-4k", "lunix"): remote = "qviart" elif procmodel in ("sh1", "lc"): remote = "sh1" elif procmodel in ("h3", "h4", "h5", "h6", "h7"): remote = "h3" elif procmodel == "h9": remote = "h9" elif procmodel == "i55": remote = "i55" elif procmodel in ("vipercombo", "vipert2c"): remote = "amiko" elif procmodel in ("vipercombohdd"): remote = "amiko1" elif procmodel == "alien5": remote = "alien5" elif procmodel in ("k1pro", "k2pro", "k2prov2", "k1plus"): remote = "k1pro" elif procmodel == "k3pro": remote = "k3pro" elif procmodel.startswith("sf8008"): remote = "octagon1" elif procmodel in ("vs1100", "vs1500"): remote = "vs1x00" elif procmodel in ("e4hd"): remote = "e4hd" elif procmodel in ("tmnanosem2", "tmnanosem2plus"): remote = "tmnanosem2" elif procmodel in ("u5pvr"): remote = "u5pvr" info['remote'] = remote kernel = about.getKernelVersionString()[0] distro = "openpli" imagever = "unknown" imagebuild = "" driverdate = "unknown" # Assume OE 1.6 oever = "OE 1.6" if fileHas("/etc/issue", "zeus"): oever = "OE Zeus 3.0" if fileExists("/etc/.box"): distro = "HDMU" oever = "private" elif fileExists("/etc/bhversion"): distro = "Black Hole" f = open("/etc/bhversion", 'r') imagever = f.readline().strip() f.close() if kernel > 2: oever = "OpenVuplus 2.1" elif fileExists("/etc/vtiversion.info"): distro = "VTi-Team Image" f = open("/etc/vtiversion.info", 'r') imagever = f.readline().strip().replace("VTi-Team Image ", "").replace( "Release ", "").replace("v.", "") f.close() oever = "OE 1.6" imagelist = imagever.split('.') imagebuild = imagelist.pop() imagever = ".".join(imagelist) if kernel > 2: oever = "OpenVuplus 2.1" if ((imagever == "5.1") or (imagever[0] > 5)): oever = "OpenVuplus 2.1" elif fileExists("/var/grun/grcstype"): distro = "Graterlia OS" try: imagever = about.getImageVersionString() except: # nosec # noqa: E722 pass # ToDo: If your distro gets detected as OpenPLi, feel free to add a detection for your distro here ... else: # OE 2.2 uses apt, not opkg if not fileExists("/etc/opkg/all-feed.conf"): oever = "OE 2.2" else: try: f = open("/etc/opkg/all-feed.conf", 'r') oeline = f.readline().strip().lower() f.close() distro = oeline.split()[1].replace("-all", "") except: # nosec # noqa: E722 pass if distro == "openpli": oever = "PLi-OE" try: imagelist = open( "/etc/issue").readlines()[-2].split()[1].split('.') imagever = imagelist.pop(0) except: # nosec # noqa: E722 # just in case pass elif distro == "openrsi": oever = "PLi-OE" else: try: imagever = "" + getE2Rev().split("+")[1] except: # nosec # noqa: E722 pass if (distro == "unknown" and brand == "Vu+" and fileExists("/etc/version")): # Since OE-A uses boxbranding and bh or vti can be detected, there isn't much else left for Vu+ boxes distro = "Vu+ original" f = open("/etc/version", 'r') imagever = f.readline().strip() f.close() if kernel > 2: oever = "OpenVuplus 2.1" # reporting the installed dvb-module version is as close as we get without too much hassle driverdate = 'unknown' try: driverdate = os.popen('/usr/bin/opkg -V0 list_installed *dvb-modules*' ).readline().split()[2] # nosec except: # noqa: E722 try: driverdate = os.popen( '/usr/bin/opkg -V0 list_installed *dvb-proxy*').readline( ).split()[2] # nosec except: # noqa: E722 try: driverdate = os.popen( '/usr/bin/opkg -V0 list_installed *kernel-core-default-gos*' ).readline().split()[2] # nosec except: # nosec # noqa: E722 pass info['oever'] = oever info['distro'] = distro info['imagever'] = imagever info['imagebuild'] = imagebuild info['driverdate'] = driverdate info['lcd'] = distro in ("openpli", ) and lcd or 0 info['grabpip'] = distro in ("openpli", ) and grabpip or 0 return info