Eventually got it booting unsigned code.
I had to patch the loader after it calls checkBLfiles as well, as I was getting a "HALTING" error with just patching the "Image Verified" check.
I also found the BOOT.PRF check counter in the code, and patched that so it is ignored.
I patched the NK.BIN file with the BooterCE.exe you have on here, and it loads fine.
I also altered one of the images to make sure the box was working with altered files
, also the FTP server works.
The BT vision box does not start up even as a dvb-t, without a subscription.
I am looking at the TV2Client.exe, which has a number of options in the \Microsoft.TV2\TV2SystemConfig.cs file.
private static Microsoft.TV2.AspectRatioConfig _aspectRatioConfig = null;
private static TimeSpan _bootstrapRetryMaxWait = new TimeSpan(0, 60, 0);
private static TimeSpan _bootstrapRetryMinWait = new TimeSpan(0, 10, 0);
private static OnMsgArrived _compositorStatusDelegate;
private static TimeSpan _deadstateRestartMaxWait = TimeSpan.Parse(_defaultStrDeadstateRestartMaxWait);
private static TimeSpan _deadstateRestartMinWait = TimeSpan.Parse(_defaultStrDeadstateRestartMinWait);
private static string _defaultStrDeadstateRestartMaxWait = "03:00:00";
private static string _defaultStrDeadstateRestartMinWait = "02:00:00";
private static bool _inSelfProvisioningMode = false;
private static TriState _isPAL = TriState.Default;
private static bool _noccOverride = false;
private static int _numTuners = -1;
private static ScreenModeType _screenMode = ScreenModeType.k640x480i;
public static bool AllowAdultPinForAutoBlock = false;
public static bool AsyncPipTune = true;
public static bool BlockOnMissingGuideData = true;
public static bool BootstrapRequired = true;
public static byte BurstPercentHD = 10;
public static byte BurstPercentSD = 20;
public static bool ClientInitialized = false;
public static byte ClockStartFrameDelay = 10;
public static UploadType CrashLogUploadType = UploadType.Local;
public static int DebugConsolePort = 0;
public static bool DebugLiveAV = false;
public static uint DebugSeekBarTimeout = 0xea60;
public static double DialogTimeoutSeconds = 5.0;
public static bool DigitalDisplay = false;
public static bool DisableVideoOnStandBy = false;
public static string DiskMountPath = null;
public static uint? DiskReserveSizeInMegabytes = null;
public static bool DisplayMetadataPrices = false;
public static bool DoPTSClockCorrection = false;
public static ushort DServerBurstCompleteAckDelayMS = 0;
public static ushort DServerBurstCompleteTimeoutMS = 0xea60;
public static string DvbBw = "8000000";
public static string DvbMaxFreq = "854000000";
public static string DvbMinFreq = "470000000";
public static bool DvbUseNagraTestKit = false;
public static string DvbVhfBw = "7000000";
public static string DvbVhfMaxFreq = "230000000";
public static string DvbVhfMinFreq = "174000000";
public static bool DvbVhfScan = false;
public static bool DVREnabled = true;
public static bool DynamicDVREnabled = true;
public static int EasCrawlSpeed = 15;
public static int EasPostCrawlPause = 7;
public static int EasTextRedisplayInterval = 30;
public static int EITVPSGracePeriodSecs = 60;
public static bool EITVPSRespectHardPadding = true;
public static bool EnableCallLetterSearch = false;
public static bool EnableMPEG2 = false;
public static bool EnableRecentPanel = false;
public static bool EnableVPS = false;
public static bool EnterButtonForZoom = false;
public static bool EuroStyleOn = false;
public static int EventServerPort = 0;
public static bool FakeNetConnectPermissionRequired = false;
public static float[] FFWDSpeeds = new float[] { 15f, 60f, 300f };
public static bool ForceAllTunesAsMulticastOnly = false;
public static bool ForceDenseGuide = false;
public static bool ForceDTTScan = false;
public static bool ForceDvbDisabled = false;
public static bool ForceExpandedGuide = false;
public static bool ForceOneDvbTuner = false;
public static bool FullScreen = false;
public static bool GuideDataCarouselEnabled = false;
public static DateTime GuideOriginTime = DateTime.MinValue;
public static bool HdcpAllowDisable = false;
public static bool HDMIUnpluggedEventFlag = false;
public static bool Headless = false;
public static bool HideChannelOrderNumber = false;
public static int HTTPPort = 0;
public static string HTTPRemoter = null;
public static bool IgnoreServerTimezone = false;
public static bool IsColorKeyDefaultsEnabled = true;
private static bool isOnline = false;
public static uint LastChannelTunedWaitSeconds = 300;
public static int ListenerPort = 0x15b4;
public static bool LiveTvEnabled = true;
public static bool LongDescriptions = false;
public static bool LowBandwidth = false;
public static uint MaxBitRateSD = 0x5b8d80;
public static byte MaxHoleSizeMS = 150;
public static int MaxVODPosterFlipper = 10;
public static bool MediaRightsEnabled = true;
public static bool MhegEnabled = true;
public static bool MockAV = false;
public static bool MuteApplicationSoundsDefault = true;
public static IPAddress NicAddress = IPAddress.Any;
public static string NodeStatusFilter = "accountid";
public static bool NoScavengeDvr = false;
public static bool NoWatchPup = false;
public static int PageStackSize = 5;
public static int PipTuneDelayMilliSecs = 0;
public static bool PowerOn = false;
public static ScreenModeType PreHDMIHotplugScreenMode;
public static int PreviousChannel = -1;
public static int PreviousLiveChannel = -1;
public static int PurchaseTimeoutMS = 0x186a0;
public static bool QuickScroll = false;
public static bool RDPEnabled = true;
public static bool RelockPConOnChannelChange = false;
public static int RetryIntervalSecs = 3;
public static float[] REWSpeeds = new float[] { -15f, -60f, -300f };
public static short RFRemodChannel = 3;
private static readonly Microsoft.TV2.ScreenModeInfo[] ScreenModes = new Microsoft.TV2.ScreenModeInfo[] { new Microsoft.TV2.ScreenModeInfo("640x480i", 640, 480, false, false, false), new Microsoft.TV2.ScreenModeInfo("854x480i", 0x356, 480, true, false, false), new Microsoft.TV2.ScreenModeInfo("640x480p", 640, 480, false, false, true), new Microsoft.TV2.ScreenModeInfo("854x480p", 0x356, 480, true, false, true), new Microsoft.TV2.ScreenModeInfo("720x576i", 720, 0x240, false, false, false), new Microsoft.TV2.ScreenModeInfo("768x576i", 0x300, 0x240, false, false, false), new Microsoft.TV2.ScreenModeInfo("1024x576i", 0x400, 0x240, true, false, false), new Microsoft.TV2.ScreenModeInfo("1280x720p", 0x500, 720, true, true, true), new Microsoft.TV2.ScreenModeInfo("1280x720p_1080i", 0x500, 720, true, true, false), new Microsoft.TV2.ScreenModeInfo("1920x1080i", 0x780, 0x438, true, true, false), new Microsoft.TV2.ScreenModeInfo("1920x1080p", 0x780, 0x438, true, true, true) };
public static int ScreenSaverIdleMinutes = 30;
public static bool Simulator = false;
public static bool StandAlone = false;
public static int StartRecordingGracePeriodSecs = 10;
public static DateTime SystemStartTime;
public static bool Test = false;
public static bool Universe = false;
public static bool UniverseDemo = false;
public static bool UniverseRequireValidUniverse = false;
public static bool UnlockPConInBadState = false;
public static int VisualPort = 0;
public static uint VodAssetLoadBatchSize = 40;
public static bool VodEnabled = true;
public static bool VODExtraProgramInfo = false;
public static int VPSInterruptPILMaxDurationSecs = 0x2a30;
public static bool WriteDenseGuideFiles = false;
I did try setting BootStrapRequired = false; but the box give a "NullReferenceException" on the screen as it starts up.