internal void SendSecurityBreachesStatsToCloud(bool isOnClose = false) { new Thread((ThreadStart)(() => { try { this.AddBlacklistedRunningApplicationsToSecurityBreaches(); if (this.mSecurityBreachesList.Count > 0) { BstHttpClient.Post(WebHelper.GetUrlWithParams(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0}/{1}", (object)RegistryManager.Instance.Host, (object)"/bs4/security_metrics"), (string)null, (string)null, (string)null), new Dictionary <string, string>() { { "security_metric_data", this.GetSecurityMetricsData() } }, (Dictionary <string, string>)null, false, this.mVmName, 10000, 1, 0, false, "bgp"); } } catch (Exception ex) { Logger.Error("Exception while sending security stats to cloud : {0}", (object)ex.ToString()); } if (!isOnClose) { return; } SecurityMetrics.SecurityMetricsInstanceList.Remove(this.mVmName); })).Start(); }
private static void SendPromotionStats(Dictionary <BootPromotion, int> bootPromos) { try { Dictionary <string, string> data = new Dictionary <string, string>() { { "prod_ver", RegistryManager.Instance.ClientVersion }, { "eng_ver", RegistryManager.Instance.Version }, { "guid", RegistryManager.Instance.UserGuid }, { "locale", RegistryManager.Instance.UserSelectedLocale }, { "oem", RegistryManager.Instance.Oem }, { "partner", RegistryManager.Instance.Partner }, { "campaign_json", RegistryManager.Instance.CampaignJson } }; List <BootBanner> bootBannerList = new List <BootBanner>(); foreach (KeyValuePair <BootPromotion, int> bootPromo in bootPromos) { bootBannerList.Add(new BootBanner() { Frequency = bootPromo.Value.ToString((IFormatProvider)CultureInfo.InvariantCulture), ClickActionPackagename = bootPromo.Key.ExtraPayload["click_action_packagename"], ClickGenericAction = bootPromo.Key.ExtraPayload["click_generic_action"], ClickActionValue = bootPromo.Key.ExtraPayload["click_action_value"], Id = bootPromo.Key.Id, ButtonText = bootPromo.Key.ButtonText, Order = bootPromo.Key.Order.ToString((IFormatProvider)CultureInfo.InvariantCulture), ImageUrl = bootPromo.Key.ImageUrl, HashTags = bootPromo.Key.ExtraPayload["hash_tags"] }); } data.Add("boot_banners", JsonConvert.SerializeObject((object)bootBannerList)); BstHttpClient.Post(WebHelper.GetUrlWithParams(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0}/{1}", (object)RegistryManager.Instance.Host, (object)"bs4/stats/client_boot_promotion_stats"), (string)null, (string)null, (string)null), data, (Dictionary <string, string>)null, false, BlueStacks.Common.Strings.CurrentDefaultVmName, 0, 1, 0, false, "bgp"); } catch (Exception ex) { Logger.Error(nameof(SendPromotionStats), (object)ex); } }
private static void StartZygote() { BstHttpClient.Post(string.Format("http://127.0.0.1:{0}/startzygote", (object)RegistryManager.Instance.DefaultGuest.FrontendServerPort), new Dictionary <string, string>() { { "vmName", Strings.CurrentDefaultVmName } }, (Dictionary <string, string>)null, false, Strings.CurrentDefaultVmName, 0, 1, 0, false, "bgp"); }
private void GetPreDefinedProfilesFromCloud() { new Thread((ThreadStart)(() => { try { this.GetCurrentDeviceProfileFromAndroid(this.ParentWindow.mVmName); if (this.mPreDefinedProfilesList.Count == 0 || this.mMobileOperatorsList.Count == 0) { string url = string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0}/{1}/{2}", (object)RegistryManager.Instance.Host, (object)"bs4", (object)"get_device_profile_list"); Dictionary <string, string> commonPostData = WebHelper.GetCommonPOSTData(); commonPostData.Add("ca_code", Utils.GetValueInBootParams("caCode", this.ParentWindow.mVmName, "", "bgp")); Dictionary <string, string> data = commonPostData; string mVmName = this.ParentWindow.mVmName; JObject jobject1 = JObject.Parse(BstHttpClient.Post(url, data, (Dictionary <string, string>)null, false, mVmName, 0, 1, 0, false, "bgp")); if (jobject1 == null || !(bool)jobject1["success"]) { return; } if (!JsonExtensions.IsNullOrEmptyBrackets(jobject1["device_profile_list"].ToString())) { foreach (JObject jobject2 in jobject1["device_profile_list"].ToArray <JToken>()) { this.mPreDefinedProfilesList[jobject2["pcode"].ToString()] = jobject2["display_name"].ToString(); } } if (jobject1.ContainsKey("ca_selector_list") && !JsonExtensions.IsNullOrEmptyBrackets(jobject1["ca_selector_list"].ToString())) { foreach (JObject jobject2 in jobject1["ca_selector_list"].ToArray <JToken>()) { this.mMobileOperatorsList[jobject2["ca_selector"].ToString()] = jobject2["display_name"].ToString(); } } this.AddPreDefinedProfilesinComboBox(); } else { this.AddPreDefinedProfilesinComboBox(); } } catch (Exception ex) { Logger.Error("Error while getting device profile from cloud : " + ex.ToString()); this.ChangeNoInternetGridVisibility(true); } })) { IsBackground = true }.Start(); }
internal static void SendStats( string url, Dictionary <string, string> data, Dictionary <string, string> headers = null, string vmname = "") { try { BstHttpClient.Post(url, data, headers, false, vmname, 0, 1, 0, false, "bgp"); } catch (Exception ex) { Logger.Info("Failed to send stats for : " + url + ". Reason : " + ex.ToString()); } }
private void _bgGetUpdateDetails_DoWork(object sender, DoWorkEventArgs e) { JToken jtoken = (JToken)null; try { jtoken = JToken.Parse(BstHttpClient.Post(RegistryManager.Instance.Host + "/bs4/check_upgrade?", this.CreateRequestData(), (Dictionary <string, string>)null, false, "Android", 0, 1, 0, false, "bgp")); Logger.Info("Response received for check for update: " + Environment.NewLine + jtoken?.ToString()); } catch (Exception ex) { Logger.Error("Failed to get oem err: {0}", (object)ex.Message); } finally { e.Result = (object)jtoken; } }
internal static void RunCommand( KeyValuePair <string, SerializableDictionary <string, string> > item) { try { string key = item.Key; Dictionary <string, string> data = new Dictionary <string, string>(); foreach (KeyValuePair <string, string> keyValuePair in (Dictionary <string, string>)item.Value) { data.Add(keyValuePair.Key, keyValuePair.Value); } string url = string.Format("http://127.0.0.1:{0}/{1}", (object)Utils.GetBstCommandProcessorPort(MultiInstanceStrings.VmName), (object)key); Logger.Info("The url being hit is {0}", (object)url); Logger.Info("Resp: {0}", (object)BstHttpClient.Post(url, data, (Dictionary <string, string>)null, false, MultiInstanceStrings.VmName, 500, 1, 0, false, "bgp")); } catch (Exception ex) { Logger.Error("Exception in SendKeymappingFiledownloadRequest. Err : " + ex.ToString()); } }
internal static void HandleUsageNotification(JObject resJson, string vmName) { try { string result = ""; string jsonObjectString = JSONUtils.GetJSONObjectString(AppUsageTimer.GetRealtimeDictionary()); JObject.Parse(resJson["bluestacks_notification"][(object)"payload"].ToString()).AssignStringIfContains("handler", ref result); string url = WebHelper.GetServerHost() + "/v2/" + result; Dictionary <string, string> dictionary = new Dictionary <string, string>() { ["oem"] = "bgp", ["client_ver"] = RegistryManager.Instance.ClientVersion, ["engine_ver"] = RegistryManager.Instance.Version, ["guid"] = RegistryManager.Instance.UserGuid, ["locale"] = RegistryManager.Instance.UserSelectedLocale, ["partner"] = RegistryManager.Instance.Partner, ["campaignMD5"] = RegistryManager.Instance.CampaignMD5 }; if (!string.IsNullOrEmpty(RegistryManager.Instance.RegisteredEmail)) { dictionary["email"] = RegistryManager.Instance.RegisteredEmail; } dictionary["usage_data"] = jsonObjectString; if (!dictionary.ContainsKey("current_app")) { dictionary.Add("current_app", BlueStacksUIUtils.DictWindows[vmName].mTopBar.mAppTabButtons.SelectedTab.PackageName); } else { dictionary["current_app"] = BlueStacksUIUtils.DictWindows[vmName].mTopBar.mAppTabButtons.SelectedTab.PackageName; } Dictionary <string, string> data = dictionary; string empty = string.Empty; Logger.Info("real time app usage response:" + BstHttpClient.Post(url, data, (Dictionary <string, string>)null, false, empty, 0, 1, 0, false, "bgp")); } catch (Exception ex) { Logger.Error("Exception in handling usage notification" + ex.ToString()); } }
public static void SendStats(string uninstallEvent, Dictionary <string, string> extraData = null) { Dictionary <string, string> commonData = UninstallerStats.GetCommonData(uninstallEvent); if (extraData != null) { foreach (KeyValuePair <string, string> keyValuePair in extraData) { commonData.Add(keyValuePair.Key, keyValuePair.Value); } } try { string str = BstHttpClient.Post(UninstallerStats.UninstallerStatsUrl, commonData, (Dictionary <string, string>)null, false, (string)null, 0, 1, 0, false, "bgp"); Logger.Debug(string.Format("Response for event {0}: {1}", (object)uninstallEvent, (object)str)); } catch (Exception ex) { Logger.Error("Failed to send stats for event: " + uninstallEvent); Logger.Error(ex.ToString()); } }
private static void CheckVtxAndShowPopup() { Logger.Info("In CheckVtxAndShowPopup"); int systemInfoStats2 = RegistryManager.Instance.SystemInfoStats2; string deviceCaps = RegistryManager.Instance.DeviceCaps; if (systemInfoStats2 == 1 && !deviceCaps.Equals("")) { Logger.Info("Sending DeviceCaps stats"); Dictionary <string, string> data = new Dictionary <string, string>(); Logger.Info("DeviceCaps: " + deviceCaps); data.Add("data", deviceCaps); data.Add("install_id", RegistryManager.Instance.InstallID); try { BstHttpClient.Post(RegistryManager.Instance.Host + "/stats/systeminfostats2", data, (Dictionary <string, string>)null, false, MultiInstanceStrings.VmName, 0, 1, 0, false, "bgp"); RegistryManager.Instance.SystemInfoStats2 = 0; } catch (Exception ex) { Logger.Error("Exception in Sending systeminfostats2. Err : " + ex.ToString()); } } try { JObject jobject = JObject.Parse(deviceCaps); if (!Oem.Instance.IsVTPopupEnabled || !jobject["cpu_hvm"].ToString().Equals("True", StringComparison.OrdinalIgnoreCase) || !jobject["bios_hvm"].ToString().Equals("False", StringComparison.OrdinalIgnoreCase) || !jobject["engine_enabled"].ToString().Equals("legacy", StringComparison.OrdinalIgnoreCase) && !jobject["engine_enabled"].ToString().Equals("raw", StringComparison.OrdinalIgnoreCase)) { return; } AndroidBootUp.ShowVtxPopup(); } catch (Exception ex) { Logger.Error("Exception in showing vtxpopup {0}. Err : ", (object)ex.ToString()); } }
private static JToken GetGuidanceCloudInfoData() { JToken jtoken = (JToken)null; try { string urlWithParams = WebHelper.GetUrlWithParams(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "{0}/{1}/{2}", (object)RegistryManager.Instance.Host, (object)"bs4", (object)"guidance_window"), (string)null, (string)null, (string)null); string json = BstHttpClient.Post(urlWithParams, new Dictionary <string, string>() { { "app_pkgs", GuidanceCloudInfoManager.GetInstalledAppDataFromAllVms() } }, (Dictionary <string, string>)null, false, "Android", 0, 1, 0, false, "bgp"); Logger.Debug("Guidance Cloud Info Url: " + urlWithParams); Logger.Debug("Guidance Cloud Info Response: " + json); jtoken = JToken.Parse(json); } catch (Exception ex) { Logger.Warning("Error Getting GetGuidanceCloudInfoData " + ex.ToString()); } return(jtoken); }
private JToken GetInstanceWisePostBootData(string vmName, string campaignId = "") { JToken jtoken = (JToken)null; try { Dictionary <string, string> data = new Dictionary <string, string>() { { "all_installed_apps", Utils.GetInstalledAppDataFromAllVms() } }; data.Add("current_vm", "vm" + Utils.GetVmIdFromVmName(vmName)); string json = string.IsNullOrEmpty(campaignId) ? BstHttpClient.Post(this.Url, data, (Dictionary <string, string>)null, false, "Android", 0, 1, 0, false, "bgp") : BstHttpClient.Post(this.Url + "&feature_campaign_id=" + campaignId, data, (Dictionary <string, string>)null, false, "Android", 0, 1, 0, false, "bgp"); Logger.Debug("PostBoot Instance Specific data Url: " + this.Url); jtoken = JToken.Parse(json); } catch (Exception ex) { Logger.Error("Error Getting Post Boot Instance Data err: " + ex.ToString()); } return(jtoken); }
private static BlueStacksUpdateData CheckForUpdate(bool isManualCheck) { BlueStacksUpdateData stacksUpdateData = new BlueStacksUpdateData(); try { string urlWithParams = WebHelper.GetUrlWithParams(WebHelper.GetServerHost() + "/check_upgrade", (string)null, (string)null, (string)null); Logger.Debug("The URL for checking upgrade: {0}", (object)urlWithParams); string osName; SystemUtils.GetOSInfo(out osName, out string _, out string _); string str = InstallerArchitectures.AMD64; if (!SystemUtils.IsOs64Bit()) { str = InstallerArchitectures.X86; } Dictionary <string, string> data = new Dictionary <string, string>() { { "installer_arch", str }, { "os", osName }, { "manual_check", isManualCheck.ToString((IFormatProvider)CultureInfo.InvariantCulture) } }; string json = BstHttpClient.Post(urlWithParams, data, (Dictionary <string, string>)null, false, string.Empty, 5000, 1, 0, false, "bgp"); Logger.Info("Response received for check for update: " + Environment.NewLine + json); JObject jobject = JObject.Parse(json); if (jobject["update_available"].ToString().Equals("true", StringComparison.InvariantCultureIgnoreCase) && RegistryManager.Instance.FailedUpgradeVersion != jobject["update_details"][(object)"client_version"].ToString()) { stacksUpdateData.IsUpdateAvailble = true; stacksUpdateData.UpdateType = jobject["update_details"][(object)"upgrade_type"].ToString(); stacksUpdateData.IsFullInstaller = jobject["update_details"][(object)"is_full_installer"].ToObject <bool>(); stacksUpdateData.Md5 = jobject["update_details"][(object)"md5"].ToString(); stacksUpdateData.ClientVersion = jobject["update_details"][(object)"client_version"].ToString(); stacksUpdateData.EngineVersion = jobject["update_details"][(object)"engine_version"].ToString(); stacksUpdateData.DownloadUrl = jobject["update_details"][(object)"download_url"].ToString(); stacksUpdateData.DetailedChangeLogsUrl = jobject["update_details"][(object)"detailed_changelogs_url"].ToString(); if (!Directory.Exists(RegistryManager.Instance.SetupFolder)) { Directory.CreateDirectory(RegistryManager.Instance.SetupFolder); } stacksUpdateData.UpdateDownloadLocation = !stacksUpdateData.IsFullInstaller ? Path.Combine(RegistryManager.Instance.SetupFolder, "BlueStacksInstaller_" + stacksUpdateData.ClientVersion + "_client.zip") : Path.Combine(RegistryManager.Instance.SetupFolder, "BlueStacksInstaller_" + stacksUpdateData.ClientVersion + "_full.exe"); RegistryManager.Instance.DownloadedUpdateFile = stacksUpdateData.UpdateDownloadLocation; BlueStacksUpdater.sBstUpdateData = stacksUpdateData; BlueStacksUpdater.SUpdateState = BlueStacksUpdater.UpdateState.UPDATE_AVAILABLE; } return(stacksUpdateData); } catch (Exception ex) { Logger.Warning("Got error in checking for upgrade: {0}", (object)ex.ToString()); return(new BlueStacksUpdateData() { IsTryAgain = true }); } }