/// <summary>
            /// The run.
            /// </summary>
            public void Run()
            {
                this.context.IsServiceRunning = true;
                this.context.downloadNotification.OnDownloadStateChanged(DownloaderState.FetchingUrl);
                string deviceId = Settings.Secure.GetString(this.context.ContentResolver, Settings.Secure.AndroidId);

                var aep = new ApkExpansionPolicy(
                    this.context, new AesObfuscator(this.context.Salt, this.context.PackageName, deviceId));

                // reset our policy back to the start of the world to force a re-check
                aep.ResetPolicy();

                // let's try and get the OBB file from LVL first
                // Construct the LicenseChecker with a IPolicy.
                var checker = new LicenseChecker(this.context, aep, this.context.PublicKey);

                checker.CheckAccess(new ApkLicenseCheckerCallback(this, aep));
            }