private void ValidateSupportedFfuPath() { try { if (IsSupportedFfuNeeded) { if (SupportedFFUPath == null) { IsSupportedFfuValid = true; // No visible warning when there is no SupportedFFU selected yet. } else { if (!TargetHasNewFlashProtocol) { if (App.Config.FFURepository.Any(e => ((e.Path == SupportedFFUPath) && (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == e.OSVersion))))) { IsSupportedFfuValid = true; } else { FFU SupportedFFU = new FFU(SupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { IsSupportedFfuValid = true; } else { IsSupportedFfuValid = false; } } } else { if (App.Config.FFURepository.Any(e => ((e.Path == SupportedFFUPath) && (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == e.OSVersion))))) { IsSupportedFfuValid = true; } else { FFU SupportedFFU = new FFU(SupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { IsSupportedFfuValid = true; } else { IsSupportedFfuValid = false; } } } } } else { IsSupportedFfuValid = true; } if (IsSupportedFfuValid && (SupportedFFUPath != null)) { ValidatedSupportedFfuPath = SupportedFFUPath; } } catch { IsSupportedFfuValid = false; } }
internal void AddFfuToRepository(string FFUPath) { try { FFU NewFFU = new FFU(FFUPath); AddFfuToRepository(FFUPath, NewFFU.PlatformID, NewFFU.GetFirmwareVersion(), NewFFU.GetOSVersion()); } catch (Exception Ex) { LogFile.LogException(Ex, LogType.FileAndConsole); } }
private void SetSupportedFFUPath() { if (!TargetHasNewFlashProtocol) { if (this is BootRestoreResourcesViewModel) { IsSupportedFfuNeeded = false; return; } try { FFU FFU = new FFU(_FFUPath); IsSupportedFfuNeeded = !(App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == FFU.GetOSVersion())); } catch { IsSupportedFfuNeeded = false; return; } if (IsSupportedFfuNeeded) { FFU SupportedFFU; try { if (_SupportedFFUPath != null) { SupportedFFU = new FFU(_SupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { return; } } } catch { } try { string TempSupportedFFUPath = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\WPInternals", "SupportedFFUPath", null); if (TempSupportedFFUPath != null) { SupportedFFU = new FFU(TempSupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { ValidatedSupportedFfuPath = TempSupportedFFUPath; SupportedFFUPath = TempSupportedFFUPath; IsSupportedFfuValid = true; return; } } } catch { } List <FFUEntry> FFUs = App.Config.FFURepository.Where(e => App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V1.1-EFIESP").First().TargetVersions.Any(v => v.Description == e.OSVersion)).ToList(); if (FFUs.Count() > 0) { ValidatedSupportedFfuPath = FFUs[0].Path; SupportedFFUPath = FFUs[0].Path; IsSupportedFfuValid = true; } } } else { if ((this is BootRestoreResourcesViewModel) || (_ProfileFFUPath == null)) { IsSupportedFfuNeeded = false; return; } try { FFU ProfileFFU = new FFU(_ProfileFFUPath); IsSupportedFfuNeeded = !(App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == ProfileFFU.GetOSVersion())); } catch { IsSupportedFfuNeeded = false; return; } if (IsSupportedFfuNeeded) { FFU SupportedFFU; try { if (_SupportedFFUPath != null) { SupportedFFU = new FFU(_SupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { return; } } } catch { } try { string TempSupportedFFUPath = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\WPInternals", "SupportedFFUPath", null); if (TempSupportedFFUPath != null) { SupportedFFU = new FFU(TempSupportedFFUPath); if (App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == SupportedFFU.GetOSVersion())) { ValidatedSupportedFfuPath = TempSupportedFFUPath; SupportedFFUPath = TempSupportedFFUPath; IsSupportedFfuValid = true; return; } } } catch { } List <FFUEntry> FFUs = App.Config.FFURepository.Where(e => App.PatchEngine.PatchDefinitions.Where(p => p.Name == "SecureBootHack-V2-EFIESP").First().TargetVersions.Any(v => v.Description == e.OSVersion)).ToList(); if (FFUs.Count() > 0) { ValidatedSupportedFfuPath = FFUs[0].Path; SupportedFFUPath = FFUs[0].Path; IsSupportedFfuValid = true; } } } }