Code with Finding: |
/*
* Decompiled with CFR 0_128.
*
* Could not load the following classes:
* android.app.AlertDialog
* android.app.AlertDialog$Builder
* android.app.IntentService
* android.content.ComponentName
* android.content.ContentResolver
* android.content.Context
* android.content.Intent
* android.content.SharedPreferences
* android.content.SharedPreferences$Editor
* android.content.pm.ActivityInfo
* android.content.pm.ApplicationInfo
* android.content.pm.PackageInfo
* android.content.pm.PackageManager
* android.content.pm.ServiceInfo
* android.content.res.Resources
* android.os.Build
* android.os.Build$VERSION
* android.os.Bundle
* android.provider.Settings
* android.provider.Settings$Secure
* android.telephony.TelephonyManager
* android.util.DisplayMetrics
* android.util.Log
* android.webkit.WebSettings
* android.webkit.WebView
* com.apperhand.common.dto.ApplicationDetails
* com.apperhand.common.dto.Build
* com.apperhand.common.dto.Command
* com.apperhand.common.dto.Command$Commands
* com.apperhand.common.dto.DisplayMetrics
* com.apperhand.common.dto.EULAAcceptDetails
* com.apperhand.device.a.a
* com.apperhand.device.a.a.a
* com.apperhand.device.a.a.b
* com.apperhand.device.a.a.c
* com.apperhand.device.a.a.d
* com.apperhand.device.a.a.e
* com.apperhand.device.a.a.f
* com.apperhand.device.a.b
* com.apperhand.device.a.c.a
* com.apperhand.device.a.d.a
* com.apperhand.device.a.d.b
* com.apperhand.device.a.d.c
* com.apperhand.device.a.d.d
* com.apperhand.device.android.AndroidSDKProvider$1
* com.apperhand.device.android.AndroidSDKProvider$2
* com.apperhand.device.android.AndroidSDKProvider$SearchCategory
* com.apperhand.device.android.EULAActivity
* com.apperhand.device.android.a
* com.apperhand.device.android.a$a
* com.apperhand.device.android.a.a
* com.apperhand.device.android.a.b
* com.apperhand.device.android.a.c
* com.apperhand.device.android.a.d
* com.apperhand.device.android.a.e
* com.apperhand.device.android.a.f
* com.apperhand.device.android.b.d
* com.apperhand.device.android.c.a
* com.apperhand.device.android.c.c
* com.apperhand.device.android.c.f
*/
package com.apperhand.device.android;
import android.app.AlertDialog;
import android.app.IntentService;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;
import com.apperhand.common.dto.ApplicationDetails;
import com.apperhand.common.dto.Build;
import com.apperhand.common.dto.Command;
import com.apperhand.common.dto.DisplayMetrics;
import com.apperhand.common.dto.EULAAcceptDetails;
import com.apperhand.device.android.AndroidSDKProvider;
import com.apperhand.device.android.EULAActivity;
import com.apperhand.device.android.a;
import com.apperhand.device.android.a.b;
import com.apperhand.device.android.a.c;
import com.apperhand.device.android.a.d;
import com.apperhand.device.android.a.e;
import com.apperhand.device.android.a.f;
import java.io.Serializable;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
public class AndroidSDKProvider
extends IntentService
implements com.apperhand.device.a.a {
private static boolean a = false;
private String b;
private String c;
private String d;
private String e;
private com.apperhand.device.a.d.c f;
private com.apperhand.device.a.c.a g;
private com.apperhand.device.android.a.a h;
private b i;
private e j;
private f k;
private d l;
private c m;
public AndroidSDKProvider() {
super("AndroidSDKProvider");
}
static /* synthetic */ String a(AndroidSDKProvider androidSDKProvider) {
return androidSDKProvider.c;
}
/*
* Enabled aggressive block sorting
*/
static void a(Context context, int n, Bundle bundle) {
Object object;
String string = null;
StringBuilder stringBuilder = new StringBuilder();
Object object2 = new Object();
com.apperhand.device.android.c.f.a((Context)context, (StringBuilder)stringBuilder, (StringBuilder)object2);
int n2 = stringBuilder.length();
if (n2 == 0) return;
n2 = object2.length();
if (n2 == 0) {
return;
}
SharedPreferences sharedPreferences = context.getSharedPreferences("com.apperhand.global", 0);
n2 = sharedPreferences.getBoolean((String)(object = "TERMINATE"), false) ? 1 : 0;
if (n2 != 0) return;
object = AndroidSDKProvider.class;
super(context, (Class)object);
if (bundle != null) {
sharedPreferences.putExtras(bundle);
}
object = com.apperhand.device.a.d.a.a((String)"CRoQAlVGS1keGVoEHgRLEBoOGRdLEUE+agQtJzsiJj8tABJOHhYdGwYHQQU=", (int)0);
object = com.apperhand.device.a.d.b.a((byte[])object, (byte[])null);
string = new String((byte[])object);
object = "APPLICATION_ID";
object2 = object2.toString();
sharedPreferences.putExtra((String)object, (String)object2);
String string2 = stringBuilder.toString();
sharedPreferences.putExtra("DEVELOPER_ID", string2);
sharedPreferences.putExtra("M_SERVER_URL", string);
object2 = Boolean.TRUE;
sharedPreferences.putExtra("FIRST_RUN", (Serializable)object2);
object2 = new Object(context);
object2 = object2.getSettings().getUserAgentString();
sharedPreferences.putExtra("USER_AGENT", (String)object2);
String string3 = "SERVICE_MODE";
sharedPreferences.putExtra(string3, n);
context.startService((Intent)sharedPreferences);
}
static /* synthetic */ String b(AndroidSDKProvider androidSDKProvider) {
return androidSDKProvider.d;
}
static /* synthetic */ String c(AndroidSDKProvider androidSDKProvider) {
return androidSDKProvider.e;
}
public static void initSDK(Context context) {
AndroidSDKProvider.initSDK(context, true);
}
public static void initSDK(Context context, String string) {
AndroidSDKProvider.initSDK(context, true);
}
/*
* Loose catch block
* Enabled aggressive block sorting
* Enabled unnecessary exception pruning
* Enabled aggressive exception aggregation
* Lifted jumps to return sites
*/
public static void initSDK(Context context, boolean bl) {
int n2;
String string;
int n;
Object object;
StringBuilder stringBuilder;
block33 : {
block32 : {
block31 : {
int n4;
int n3;
String string2;
HashSet<String> hashSet;
boolean bl2;
int n5;
Object object3;
Object object2;
Iterator iterator;
n2 = Build.VERSION.SDK_INT;
n = 7;
if (n2 < n) {
return;
}
object = context.getApplicationInfo();
n = object.flags & 2;
object.flags = n;
if (n != 0 && (n2 = (int)(a ? 1 : 0)) != 0) {
n2 = 1;
} else {
n2 = 0;
object = null;
}
if (n2 != 0) {
n2 = a ? 1 : 0;
if (n2 == 0) return;
hashSet = new HashSet<String>();
hashSet.add("android.permission.INTERNET");
hashSet.add("android.permission.ACCESS_WIFI_STATE");
hashSet.add("android.permission.READ_PHONE_STATE");
hashSet.add("com.android.browser.permission.WRITE_HISTORY_BOOKMARKS");
hashSet.add("com.android.browser.permission.READ_HISTORY_BOOKMARKS");
hashSet.add("com.android.launcher.permission.INSTALL_SHORTCUT");
hashSet.add("com.android.launcher.permission.UNINSTALL_SHORTCUT");
hashSet.add("com.android.launcher.permission.READ_SETTINGS");
hashSet.add("com.htc.launcher.permission.READ_SETTINGS");
hashSet.add("com.motorola.launcher.permission.READ_SETTINGS");
hashSet.add("com.motorola.dlauncher.permission.READ_SETTINGS");
hashSet.add("com.fede.launcher.permission.READ_SETTINGS");
hashSet.add("com.lge.launcher.permission.READ_SETTINGS");
hashSet.add("org.adw.launcher.permission.READ_SETTINGS");
hashSet.add("com.motorola.launcher.permission.INSTALL_SHORTCUT");
hashSet.add("com.motorola.dlauncher.permission.INSTALL_SHORTCUT");
hashSet.add("com.lge.launcher.permission.INSTALL_SHORTCUT");
hashSet.add("com.android.browser.permission.WRITE_HISTORY_BOOKMARKS");
hashSet.add("com.android.browser.permission.READ_HISTORY_BOOKMARKS");
stringBuilder = new StringBuilder();
n = 0;
string = null;
n2 = 0;
object = null;
iterator = context.getPackageManager();
object3 = context.getPackageName();
n4 = 4101;
object = iterator.getPackageInfo((String)object3, n4);
} else {
if (!bl) {
n2 = 1;
n = 0;
Object var7_9 = null;
AndroidSDKProvider.a(context, n2, null);
return;
}
a a2 = new a(context);
object = a2.a.getSharedPreferences("com.apperhand.global", 0);
String string3 = "ACCEPTED_EULA";
boolean bl3 = false;
Object object4 = null;
n2 = object.getBoolean(string3, false) ? 1 : 0;
if (n2 != 0) {
n2 = 1;
} else {
int n6;
object = a2.a.getSharedPreferences("com.apperhand.global", 0);
string3 = "NewEulaTemplate";
bl3 = false;
object4 = null;
object = (object = object.getString(string3, null)) != null && (n6 = (string3 = object.toLowerCase()).startsWith((String)(object4 = "empty_terminate"))) != 0 ? a.a.c : (object != null && (n2 = (int)((object = object.toLowerCase()).startsWith(string3 = "empty") ? 1 : 0)) != 0 ? a.a.b : a.a.a);
string3 = a.a.c;
if (object == string3) {
return;
}
string3 = a.a.b;
if (object == string3) {
string3 = a2.a.getSharedPreferences("com.apperhand.global", 0);
bl3 = false;
object = string3.getString("NewEulaChain", null);
object4 = string3.getString("NewStep", null);
String string4 = "EulaCounter";
long l = 0L;
long l2 = string3.getLong(string4, l);
String string5 = "EulaGlobalCounter";
long l3 = 0L;
long l4 = string3.getLong(string5, l3);
Bundle bundle = new Bundle();
EULAAcceptDetails eULAAcceptDetails = new EULAAcceptDetails();
eULAAcceptDetails.setButton(null);
eULAAcceptDetails.setTemplate("empty");
Object var16_26 = null;
eULAAcceptDetails.setAccepted(false);
if (object == null) {
object = "default";
}
eULAAcceptDetails.setChain((String)object);
eULAAcceptDetails.setStep((String)object4);
long l5 = 1L;
object = string3.edit();
string3 = "EulaGlobalCounter";
object.putLong(string3, l4 += l5);
object.commit();
eULAAcceptDetails.setCounter(l2);
eULAAcceptDetails.setGlobalCounter(l4);
bundle.putSerializable("eulaAcceptDetails", (Serializable)eULAAcceptDetails);
object = a2.a;
n = 3;
AndroidSDKProvider.a((Context)object, n, bundle);
n2 = 0;
object = null;
} else {
string3 = a2.a;
object4 = EULAActivity.class;
object = new Object((Context)string3, (Class)object4);
n6 = 335544320;
object.setFlags(n6);
a2 = a2.a;
a2.startActivity((Intent)object);
n2 = 0;
object = null;
}
}
if (n2 == 0) return;
n2 = 1;
n = 0;
a2 = null;
AndroidSDKProvider.a(context, n2, null);
return;
catch (Exception exception) {}
}
if (object == null) break block31;
object3 = object.activities;
Object object5 = object.services;
Object object6 = object.requestedPermissions;
n2 = 1;
if (object3 != null) {
n5 = object3.length;
iterator = null;
for (n3 = 0; n3 < n5; ++n3) {
object2 = object3[n3];
string2 = "com.apperhand.device.android.EULAActivity";
object2 = object2.name;
bl2 = string2.equals(object2);
if (!bl2) continue;
n2 = 0;
object = null;
}
}
int n7 = n2;
n2 = 1;
if (object5 != null) {
n5 = object5.length;
iterator = null;
for (n3 = 0; n3 < n5; ++n3) {
object2 = object5[n3];
string2 = "com.apperhand.device.android.AndroidSDKProvider";
object2 = object2.name;
bl2 = string2.equals(object2);
if (!bl2) continue;
n2 = 0;
object = null;
}
}
n3 = n2;
if (object6 != null) {
n4 = object6.length;
object = null;
for (n2 = 0; n2 < n4; ++n2) {
String string6 = object6[n2];
bl2 = hashSet.contains(string6);
if (!bl2) continue;
hashSet.remove(string6);
}
}
if ((n2 = (int)(hashSet.isEmpty() ? 1 : 0)) == 0) {
n2 = 1;
} else {
n2 = 0;
object = null;
}
object5 = new Object();
object6 = new Object();
com.apperhand.device.android.c.f.a((Context)context, (StringBuilder)object5, (StringBuilder)object6);
if (n7 != 0) {
object3 = "Decleration of Activity, 'com.apperhand.device.android.EULAActivity', is missing\n";
stringBuilder.append((String)object3);
}
if (n3 != 0) {
iterator = "Decleration of Service, 'com.apperhand.device.android.AndroidSDKProvider', is missing\n";
stringBuilder.append((String)((Object)iterator));
}
if ((n3 = object5.length()) == 0) {
iterator = "Developer-ID is missing\n";
stringBuilder.append((String)((Object)iterator));
}
if ((n3 = object6.length()) == 0) {
iterator = "Application-ID is missing\n";
stringBuilder.append((String)((Object)iterator));
}
if (n2 != 0) {
object = "The following permissions are missing\n";
stringBuilder.append((String)object);
iterator = hashSet.iterator();
while ((n2 = (int)(iterator.hasNext() ? 1 : 0)) != 0) {
object = (String)iterator.next();
object = stringBuilder.append((String)object);
n7 = 10;
object.append((char)n7);
}
}
if ((n2 = stringBuilder.length()) != 0) break block32;
n2 = 1;
string = "You have done a success integration!";
stringBuilder.append(string);
break block33;
}
object = "Can't retrieve packageInfo";
stringBuilder.append((String)object);
}
n2 = 0;
object = null;
}
if (n2 != 0) {
object = "apperhand";
string = stringBuilder.toString();
Log.i((String)object, (String)string);
} else {
object = "apperhand";
string = stringBuilder.toString();
Log.e((String)object, (String)string);
}
object = new Object(context);
object.setMessage((CharSequence)stringBuilder);
n = 1;
object.setCancelable((boolean)n);
string = "StartApp";
object.setTitle((CharSequence)string);
object = object.create();
object.show();
}
public static String searchURL(String string) {
SearchCategory searchCategory = SearchCategory.WEB;
return AndroidSDKProvider.searchURL(string, searchCategory);
}
/*
* Enabled aggressive block sorting
*/
public static String searchURL(String string, SearchCategory searchCategory) {
Object object = com.apperhand.device.android.c.a.a();
String string2 = "http://www.searchmobileonline.com/{$CATEGORY$}?sourceid=7&q={$QUERY$}";
boolean bl = true;
object = object.a("SEARCH_URL", string2, bl);
Object object2 = 2.a;
int n = searchCategory.ordinal();
int n2 = object2[n];
switch (n2) {
default: {
object2 = "{$CATEGORY$}";
string2 = "";
object = object.replace((CharSequence)object2, string2);
break;
}
case 1: {
object2 = "{$CATEGORY$}";
string2 = "";
object = object.replace((CharSequence)object2, string2);
break;
}
case 2: {
object2 = "{$CATEGORY$}";
string2 = "simages";
object = object.replace((CharSequence)object2, string2);
break;
}
case 3: {
object2 = "{$CATEGORY$}";
string2 = "svideos";
object = object.replace((CharSequence)object2, string2);
}
}
if (string != null) {
object2 = "{$QUERY$}";
string2 = URLEncoder.encode(string);
return object.replace((CharSequence)object2, string2);
}
object2 = "{$QUERY$}";
string2 = "";
return object.replace((CharSequence)object2, string2);
}
public final com.apperhand.device.a.d.c a() {
return this.f;
}
public final com.apperhand.device.a.c.a b() {
return this.g;
}
public final com.apperhand.device.a.a.a c() {
return this.h;
}
public final com.apperhand.device.a.a.b d() {
return this.i;
}
public final com.apperhand.device.a.a.e e() {
return this.j;
}
public final com.apperhand.device.a.a.f f() {
return this.k;
}
public final com.apperhand.device.a.a.d g() {
return this.l;
}
public final com.apperhand.device.a.a.c h() {
return this.m;
}
public final com.apperhand.device.a.d.d i() {
return com.apperhand.device.android.c.a.a();
}
/*
* Enabled aggressive block sorting
*/
public final ApplicationDetails j() {
int n;
float f2;
float f3;
ApplicationDetails applicationDetails = new ApplicationDetails();
Object object = this.c;
applicationDetails.setApplicationId((String)object);
object = this.d;
applicationDetails.setDeveloperId((String)object);
object = this.e;
applicationDetails.setUserAgent((String)object);
object = com.apperhand.device.android.c.f.a((Context)this);
applicationDetails.setDeviceId((String)object);
object = Locale.getDefault();
applicationDetails.setLocale((Locale)object);
applicationDetails.setProtocolVersion("1.0.20");
object = new Object();
android.util.DisplayMetrics displayMetrics = this.getResources().getDisplayMetrics();
object.density = f3 = displayMetrics.density;
object.densityDpi = n = displayMetrics.densityDpi;
object.heightPixels = n = displayMetrics.heightPixels;
object.scaledDensity = f3 = displayMetrics.scaledDensity;
object.widthPixels = n = displayMetrics.widthPixels;
object.xdpi = f3 = displayMetrics.xdpi;
object.ydpi = f2 = displayMetrics.ydpi;
applicationDetails.setDisplayMetrics((DisplayMetrics)object);
super();
object = android.os.Build.BRAND;
displayMetrics.setBrand((String)object);
object = android.os.Build.DEVICE;
displayMetrics.setDevice((String)object);
object = android.os.Build.MANUFACTURER;
displayMetrics.setManufacturer((String)object);
object = android.os.Build.MODEL;
displayMetrics.setModel((String)object);
object = Build.VERSION.RELEASE;
displayMetrics.setVersionRelease((String)object);
int n2 = Build.VERSION.SDK_INT;
displayMetrics.setVersionSDKInt(n2);
displayMetrics.setOs("Android");
object = (TelephonyManager)this.getSystemService("phone");
if (object != null) {
object = object.getSimOperator();
displayMetrics.setNetworkCode((String)object);
} else {
n2 = 0;
object = null;
displayMetrics.setNetworkCode(null);
}
applicationDetails.setBuild((Build)displayMetrics);
object = this.b;
applicationDetails.setPackageId((String)object);
object = Settings.Secure.getString((ContentResolver)this.getApplicationContext().getContentResolver(), (String)"android_id");
applicationDetails.setAndroidId((String)object);
return applicationDetails;
}
public final String k() {
return this.b;
}
public final String l() {
return "1.0.20";
}
public final String m() {
return this.e;
}
public void onCreate() {
super.onCreate();
this.setIntentRedelivery(false);
}
/*
* Enabled aggressive block sorting
*/
protected void onHandleIntent(Intent intent) {
String string;
long l = -1;
Object object = intent.getExtras();
String string2 = "SERVICE_MODE";
int n = object.getInt(string2);
HashMap<String, Object> hashMap = this.getApplicationContext().getPackageName();
this.b = hashMap;
hashMap = object.getString("M_SERVER_URL");
String string3 = "FIRST_RUN";
int n2 = object.getBoolean(string3);
this.c = string = object.getString("APPLICATION_ID");
this.d = string = object.getString("DEVELOPER_ID");
this.e = string = object.getString("USER_AGENT");
string = com.apperhand.device.android.c.c.a;
this.f = string;
super((Context)this);
this.h = string;
ContentResolver contentResolver = this.getContentResolver();
super(contentResolver);
this.i = string;
super((Context)this);
this.j = string;
super((Context)this);
this.k = string;
super((Context)this);
this.l = string;
super((Context)this);
this.m = string;
com.apperhand.device.android.c.a.a().a((Context)this);
super(this, (com.apperhand.device.a.a)this, (String)((Object)hashMap));
string.a((boolean)n2);
super((Context)this, (com.apperhand.device.a.a)this, (com.apperhand.device.a.b)string, (String)((Object)hashMap));
this.g = contentResolver;
int n3 = 2;
if (n == n3) {
string2 = Command.Commands.EULA;
super((Command.Commands)string2);
string.a((Command)object);
return;
}
n3 = 3;
if (n == n3) {
object = object.getSerializable("eulaAcceptDetails");
hashMap = Command.Commands.EULA;
super((Command.Commands)hashMap);
n2 = 1;
hashMap = new HashMap<String, Object>(n2);
string3 = "details";
hashMap.put(string3, object);
string.a((Command)string2, hashMap);
return;
}
if (n2 != 0) {
object = this.getSharedPreferences("com.apperhand.global", 0);
long l2 = System.currentTimeMillis();
string2 = "NEXT_RUN";
long l3 = object.getLong(string2, l);
long l4 = l3 LCMP l;
if (l4 == false) {
l3 = l2;
} else {
string.a(false);
}
if ((l4 = (l2 LCMP l3)) < 0) {
l3 -= l2;
l2 = 1000L;
string.a(l3 /= l2);
return;
}
}
string.a();
}
}
|