public AjaxResCode UpdateVersion() { AjaxResCode res = new AjaxResCode(); try { res.Data = 0; Mate8RequestBody Version = DecryptByModel <Mate8RequestBody>(); rules rule = Version.rules; Hw_Users u = UsersByQ(QQNumber); Hw_UserVersionLibrary Uvl = new Hw_UserVersionLibrary { UId = u.Id, DeviceName = rule.DeviceName, D_version = rule.D_version, Json = ResultStr, IsResource = 0, IMEI = u.IMEI, version = rule.FirmWare.Split('B')[1].Substring(0, 3), FirmWare = rule.FirmWare }; HwPushCon = new HwPushContext(); var Iusv = HwPushCon.Hw_UserVersionLibrary.Where(x => x.UId == Uvl.UId && x.DeviceName == Uvl.DeviceName && x.D_version == Uvl.D_version); if (Iusv.Count() == 0) { HwPushCon.Hw_UserVersionLibrary.Add(Uvl); if (HwPushCon.SaveChanges() > 0) { res.Data = Uvl.id; } } else { Hw_UserVersionLibrary OldUvl = Iusv.FirstOrDefault(); if (OldUvl.IMEI == null) { res.Data = OldUvl.id; } } } catch (Exception ee) { res.Message = ee.Message; } return(res); }
private void Go() { int isconn = 0; //定义会话,每一个请求都将封装成一个会话 List <Fiddler.Session> oAllSessions = new List <Fiddler.Session>(); string newv = ""; string newdv = ""; long?newIMEI = null; long?thisIMEI = null; bool isnew = false; int newid = 0; string hwconfig = ""; Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS) { if (isconn == 0) { isconn++; AddTXT("成功链接代理"); } try { oS.bBufferResponse = true; Monitor.Enter(oAllSessions); //if (oS.fullUrl.IndexOf("hicloud.com") > -1) if (oS.fullUrl.IndexOf("updatebeta.hicloud.com/TDS/data/") > -1 || oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1 || oS.fullUrl.IndexOf("query.hicloud.com") > -1) { AddTXT(oS.host); //AddTXT(oS.hostname); //AddTXT("10%"); string v = oS.GetRequestBodyAsString(); //AddTXT(v); if (oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1) { hwconfig = oS.GetRequestBodyAsString(); HwConfig hwc = JsonConvert.DeserializeObject <HwConfig>(hwconfig); if (hwc != null) { List <condPara> cpl = hwc.condParaList; if (cpl != null) { condPara cp = cpl.Where(x => x.key == "IMEI").SingleOrDefault(); if (cp != null) { thisIMEI = long.Parse(cp.value); AddTXT("成功获取串码:" + thisIMEI); if (User_IMEI == null) { User_IMEI = thisIMEI; UpdateIMEI(cp.value); AddTXT("串码绑定成功"); } } } } } if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { string ipc = oS.clientIP.Replace("::ffff:", ""); AddTXT("您的手机IP为:" + ipc); if (!PublicClass.IsLAN(ipc)) { AddTXT("不允许网远程推送~"); return; //myqqinfo.role } Mate8RequestBody rule = JsonConvert.DeserializeObject <Mate8RequestBody>(v); if (resqustnum == 0) { newv = v; //newdv = rule.rules.D_version; newdv = "B" + rule.rules.FirmWare.Split('B')[1].Substring(0, 3); string rsaDeviceName = RsaHelper.RSACrypto.Encrypt(PublicKey, rule.rules.DeviceName); var getlv = HTMLHelper.Post_Http(ApiUrl + "Version/GetLatestVersion", rsaDeviceName); var getlvm = JsonConvert.DeserializeObject <AjaxResCode>(getlv); object da = getlvm.Data; if (da != null && int.Parse(da.ToString().Substring(0, 3)) <= int.Parse(rule.rules.FirmWare.Split('B')[1].Substring(0, 3)) || da == null) { string rsaFirmWare = RsaHelper.RSACrypto.Encrypt(PublicKey, v /*rule.rules.FirmWare*/); var ref1 = HTMLHelper.Post_Http(ApiUrl + "Version/UpdateVersion", rsaFirmWare); var ref1m = JsonConvert.DeserializeObject <AjaxResCode>(ref1); newid = int.Parse(ref1m.Data.ToString()); AddTXT("成功验证版本库"); if (thisIMEI > 0) { string rsaIMEI = RsaHelper.RSACrypto.Encrypt(PublicKey, newid + "|" + thisIMEI + "|0");//IMEI var getv = HTMLHelper.Post_Http(ApiUrl + "Version/SetIMEI", rsaIMEI); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); AddTXT("成功验证串码"); } } else { AddTXT("开始获取在线版本"); //string rsav = RsaHelper.RSACrypto.Encrypt(PublicKey, v /*rule.rules.FirmWare*/); var getv = HTMLHelper.Post_Http(ApiUrl + "Version/GetVersion", rsaDeviceName); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); object dav = getvm.Data; if (dav != null) { if (!string.IsNullOrEmpty(PrivateKey)) { string rsaqqinfo = RsaHelper.RSACrypto.Decrypt(PrivateKey, dav.ToString()); Hw_UserVersionLibrary uvl = JsonConvert.DeserializeObject <Hw_UserVersionLibrary>(rsaqqinfo); newv = uvl.Json; newdv = uvl.version; newIMEI = uvl.IMEI; AddTXT("在线版本获取成功"); } } } } v = newv.Replace(newdv.Substring(0, 3), rule.rules.FirmWare.Split('B')[1].Substring(0, 3)); oS.utilSetRequestBody(v); resqustnum++; } if (oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; } if (oS.fullUrl.IndexOf("updatebeta.hicloud.com/TDS/data/") > -1) { Mate8RequestBody IMEIv = JsonConvert.DeserializeObject <Mate8RequestBody>(v); if (User_IMEI == null) { User_IMEI = long.Parse(IMEIv.rules.IMEI); UpdateIMEI(IMEIv.rules.IMEI); AddTXT("串码绑定成功"); } if (newid > 0) { isnew = false; string rsaIMEI = RsaHelper.RSACrypto.Encrypt(PublicKey, newid + "|" + IMEIv.rules.IMEI + "|1");//IMEI var getv = HTMLHelper.Post_Http(ApiUrl + "Version/SetIMEI", rsaIMEI); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); } //AddTXT("11%"); v = "{\"rules\":{\"IMEI\":\"" + newIMEI + "\"}}"; //AddTXT(v); //AddTXT("12%"); oS.utilSetRequestBody(v); //AddTXT("13%"); if (oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; AddTXT("正在下载升级包..."); } if (oS.fullUrl.IndexOf("changelog.xml") > -1) { AddTXT("加载日志"); } if (oS.fullUrl.IndexOf("filelist.xml") > -1) { AddTXT("加载文件列表"); } } } //AddTXT("51%"); oAllSessions.Add(oS); Monitor.Exit(oAllSessions); oS["X-AutoAuth"] = "(default)"; //AddTXT("52%"); } catch (Exception ee) { resqustnum = 0; AddTXT(ee.ToString()); } }; Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { oS.utilDecodeResponse(); if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { #region 获取版本 if (isconn == 1) { isconn++; if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1) { //ctype = 1; AddTXT("正在使用WIFI代理获取升级版本"); } else if (oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { //ctype = 3; AddTXT("正在使用华为手机助手获取升级版本(旧)"); } else { AddTXT("路径异常"); } } try { string v = oS.GetResponseBodyAsString(); if (v.IndexOf("\"status\":\"1\"") > -1 || v.IndexOf("\"status\":\"-1\"") > -1) { AddTXT("版本获取完毕"); resqustnum = 0; } //if (v.IndexOf("EVA-AL00C00B193") > -1||v.IndexOf("EVA-AL00C00B195") > -1) { //v = v.Replace("EVA-AL00C00B193", "EVA-AL10C00B193"); oS.utilSetResponseBody(v); } //AddTXT(v); AddTXT("开始加载升级数据"); //string v1 = "{\"status\":\"0\",\"components\":[{\"name\":\"EVA-AL00C00B193\",\"version\":\"EVA-AL00C00B193\",\"versionID\":\"64011\",\"description\":\"【B192-B193差分包】EVA-AL00C00B193\",\"ruleAttr\":\"type_A\",\"createTime\":\"2016-10-18T10:48:42+0000\",\"url\":\"https://updatebeta.hicloud.com/TDS/data/FF38E764923BF183D14E26F58988076A9E4423EC65B51AE3526B4888E05AECC2/1477137653/files/p3/s15/G1434/g1433/v64011/f1/\",\"reserveUrl\":\"\",\"versionType\":\"2\"}]}"; //oS.utilSetResponseBody(v1); } catch (Exception ee) { AddTXT(ee.ToString()); } #endregion } }; }