Beispiel #1
0
 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);
        }