def getBootdevice(): dev = ("root" in cmdline and cmdline["root"].startswith("/dev/")) and cmdline["root"][5:] while dev and not fileAccess("/sys/block/%s" % dev): dev = dev[:-1] return dev
def countFrontpanelLEDs(): numLeds = fileAccess("/proc/stb/fp/led_set_pattern") and 1 or 0 while fileAccess("/proc/stb/fp/led%d_pattern" % numLeds): numLeds += 1 return numLeds
repeat = 100 BoxInfo.setItem("RemoteRepeat", repeat) BoxInfo.setItem("RemoteDelay", 200 if model in ("maram9", "axodin") else 700) BoxInfo.setItem("multiboot", 0 if BoxInfo.getItem("distro", "").lower() == "openvision" else 1, immutable=True) BoxInfo.setItem("OpenSSLVersion", getOpenSSLVersion(), immutable=True) SystemInfo["CommonInterface"] = eDVBCIInterfaces.getInstance().getNumOfSlots() SystemInfo["CommonInterfaceCIDelay"] = fileCheck("/proc/stb/tsmux/rmx_delay") for cislot in range(BoxInfo.getItem("CommonInterface", 0)): SystemInfo["CI%dSupportsHighBitrates" % cislot] = fileCheck("/proc/stb/tsmux/ci%d_tsclk" % cislot) SystemInfo["CI%dRelevantPidsRoutingSupport" % cislot] = fileCheck("/proc/stb/tsmux/ci%d_relevant_pids_routing" % cislot) SystemInfo["HasSoftcamInstalled"] = hassoftcaminstalled() SystemInfo["NumVideoDecoders"] = getNumVideoDecoders() SystemInfo["Udev"] = not fileAccess("/dev/.devfsd") SystemInfo["PIPAvailable"] = BoxInfo.getItem("NumVideoDecoders", 0) > 1 SystemInfo["CanMeasureFrontendInputPower"] = eDVBResourceManager.getInstance().canMeasureFrontendInputPower() SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output() SystemInfo["ZapMode"] = fileCheck("/proc/stb/video/zapmode") or fileCheck("/proc/stb/video/zapping_mode") SystemInfo["NumFrontpanelLEDs"] = countFrontpanelLEDs() SystemInfo["FrontpanelDisplay"] = fileAccess("/dev/dbox/oled0") or fileAccess("/dev/dbox/lcd0") SystemInfo["LCDsymbol_circle_recording"] = fileCheck("/proc/stb/lcd/symbol_circle") or platform == "gfuturesbcmarm" and fileCheck("/proc/stb/lcd/symbol_recording") SystemInfo["LCDsymbol_timeshift"] = fileCheck("/proc/stb/lcd/symbol_timeshift") SystemInfo["LCDshow_symbols"] = (model == "et9x00" or platform == "gfuturesbcmarm") and fileCheck("/proc/stb/lcd/show_symbols") SystemInfo["LCDsymbol_hdd"] = platform == "gfuturesbcmarm" and fileCheck("/proc/stb/lcd/symbol_hdd") SystemInfo["FrontpanelDisplayGrayscale"] = fileAccess("/dev/dbox/oled0") SystemInfo["DeepstandbySupport"] = model != "dm800" SystemInfo["Fan"] = fileCheck("/proc/stb/fp/fan") SystemInfo["FanPWM"] = BoxInfo.getItem("Fan") and fileCheck("/proc/stb/fp/fan_pwm") SystemInfo["PowerLED"] = fileCheck("/proc/stb/power/powerled")
def getNumVideoDecoders(): numVideoDecoders = 0 while fileAccess("/dev/dvb/adapter0/video%d" % numVideoDecoders): numVideoDecoders += 1 return numVideoDecoders
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["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["canDualBoot"] = fileExists("/dev/block/by-name/flag") 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 ("h9", "i55plus") and pathExists("/dev/mmcblk0p1") SystemInfo["HasFullHDSkinSupport"] = model not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc") 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", "sf8008opt", "sx988", "ustym4kpro", "ustym4kottpremium", "beyonwizv2", "viper4k", "og2ott4k") and ("usb_update.bin", "none") SystemInfo["SoftCam"] = Check_Softcam() SystemInfo["SmallFlash"] = BoxInfo.getItem("smallflash") SystemInfo["MiddleFlash"] = BoxInfo.getItem("middleflash") and not BoxInfo.getItem("smallflash") SystemInfo["HiSilicon"] = socfamily.startswith("hisi") or fileAccess("/proc/hisi") or fileAccess("/usr/bin/hihalt") or fileAccess("/usr/lib/hisilicon") SystemInfo["AmlogicFamily"] = socfamily.startswith(("aml", "meson")) or fileAccess("/proc/device-tree/amlogic-dt-id") or fileAccess("/usr/bin/amlhalt") or fileAccess("/sys/module/amports") SystemInfo["ArchIsARM64"] = architecture == "aarch64" or "64" in architecture SystemInfo["ArchIsARM"] = architecture.startswith(("arm", "cortex")) SystemInfo["STi"] = socfamily.startswith("sti") Refresh_SysSoftCam()