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();
 }
Example #2
0
 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;
            }
        }
Example #7
0
 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);
        }
Example #12
0
        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
                });
            }
        }