public static string FOTAInfoFetch(string model, string region, bool latest) { try { using (WebClient client = new WebClient()) { string xml = client.DownloadString("http://fota-cloud-dn.ospserver.net/firmware/" + region + "/" + model + "/version.xml"); string str2; if (latest == true) { str2 = Xml.GetXMLValue(xml, "firmware/version/latest", null, null).ToUpper(); } else { str2 = Xml.GetXMLValue(xml, "firmware/version/upgrade/value", null, null).ToUpper(); } return(str2); } } catch (Exception) { return(string.Empty); } }
public static Firmware UpdateCheck(string model, string region, string pda, string csc, string phone, string data, bool BinaryNature, bool AutoFetch = false) { string str; Firmware firmware = new Firmware(); Logger.WriteLine("Checking firmware for " + model + "/" + region + "/" + pda + "/" + csc + "/" + phone + "/" + data); int htmlstatus = Web.GenerateNonce(); if (htmlstatus != 200) { Logger.WriteLine("Error UpdateCheck(): Could not generate Nonce. Status code (" + htmlstatus + ")"); firmware.ConnectionError = true; return(firmware); } htmlstatus = Web.DownloadBinaryInform(Xml.GetXmlBinaryInform(model, region, pda, csc, phone, data, BinaryNature), out str); if ((htmlstatus != 200) || (Utility.GetXmlStatusCode(str) != 200)) { Logger.WriteLine("Error UpdateCheck(): Could not send BinaryInform. Status code (" + htmlstatus + "/" + Utility.GetXmlStatusCode(str) + ")"); Utility.CheckHtmlXmlStatus(htmlstatus, Utility.GetXmlStatusCode(str)); return(firmware); } firmware.Version = Xml.GetXMLValue(str, "FUSBody/Results/LATEST_FW_VERSION/Data", null, null); firmware.Model = Xml.GetXMLValue(str, "FUSBody/Put/DEVICE_MODEL_NAME/Data", null, null); firmware.DisplayName = Xml.GetXMLValue(str, "FUSBody/Put/DEVICE_MODEL_DISPLAYNAME/Data", null, null); firmware.OS = Xml.GetXMLValue(str, "FUSBody/Put/LATEST_OS_VERSION/Data", null, null); firmware.LastModified = Xml.GetXMLValue(str, "FUSBody/Put/LAST_MODIFIED/Data", null, null); firmware.Filename = Xml.GetXMLValue(str, "FUSBody/Put/BINARY_NAME/Data", null, null); firmware.Size = Xml.GetXMLValue(str, "FUSBody/Put/BINARY_BYTE_SIZE/Data", null, null); string str3 = Xml.GetXMLValue(str, "FUSBody/Put/BINARY_CRC/Data", null, null); if (!string.IsNullOrEmpty(str3)) { firmware.CRC = BitConverter.GetBytes(Convert.ToUInt32(str3)).Reverse <byte>().ToArray <byte>(); } firmware.Model_Type = Xml.GetXMLValue(str, "FUSBody/Put/DEVICE_MODEL_TYPE/Data", null, null); firmware.Path = Xml.GetXMLValue(str, "FUSBody/Put/MODEL_PATH/Data", null, null); firmware.Region = Xml.GetXMLValue(str, "FUSBody/Put/DEVICE_LOCAL_CODE/Data", null, null); firmware.BinaryNature = int.Parse(Xml.GetXMLValue(str, "FUSBody/Put/BINARY_NATURE/Data", null, null)); if (Xml.GetXMLValue(str, "FUSBody/Put/LOGIC_OPTION_FACTORY/Data", null, null) == "1") { firmware.LogicValueFactory = Xml.GetXMLValue(str, "FUSBody/Put/LOGIC_VALUE_FACTORY/Data", null, null); } if (Xml.GetXMLValue(str, "FUSBody/Put/LOGIC_OPTION_HOME/Data", null, null) == "1") { firmware.LogicValueHome = Xml.GetXMLValue(str, "FUSBody/Put/LOGIC_VALUE_HOME/Data", null, null); } if (!AutoFetch) { if ((pda + "/" + csc + "/" + phone + "/" + pda) == firmware.Version) { Logger.WriteLine("\nCurrent firmware is latest:"); } else { Logger.WriteLine("\nNewer firmware available:"); } } Logger.WriteLine("Model: " + firmware.Model); Logger.WriteLine("Version: " + firmware.Version); Logger.WriteLine("OS: " + firmware.OS); Logger.WriteLine("Filename: " + firmware.Filename); Logger.WriteLine("Size: " + firmware.Size + " bytes"); if ((firmware.BinaryNature == 1) && !string.IsNullOrEmpty(firmware.LogicValueFactory)) { Logger.WriteLine("LogicValue: " + firmware.LogicValueFactory); } else if (!string.IsNullOrEmpty(firmware.LogicValueHome)) { Logger.WriteLine("LogicValue: " + firmware.LogicValueHome); } return(firmware); }