InjectActivity.java 源代码
package com.x8zs.ui;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.anythink.basead.b.a;
import com.x8zs.ad.AdManagerEx;
import com.x8zs.apkbuilder.ApkBuilder;
import com.x8zs.ds2.R;
import com.x8zs.model.X8DataModel;
import com.x8zs.sandbox.ad.AdManager;
import com.x8zs.sandbox.ad.AdResultCallback;
import com.x8zs.widget.DownloadProgressButton;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
public class InjectActivity extends AppCompatActivity implements View.OnClickListener, X8DataModel.f0, X8DataModel.s0, X8DataModel.r0 {
private static final int BUTTON_STATE_ERROR = 3;
private static final int BUTTON_STATE_INSTALL = 2;
private static final int BUTTON_STATE_PATCH = 0;
private static final int BUTTON_STATE_PENDING = 1;
private static final int REQUEST_CODE_INSTALL = 101;
private static final int REQUEST_CODE_UNINSTALL = 100;
private static final String TAG = "InjectActivity";
private FrameLayout mABanner;
private k mAccTypeAdapter;
private GridView mAccTypeView;
private String mApkPathToInstall;
private String mApkPathToPatch;
private X8DataModel.AppDataModel mApp;
private TextView mAppInfoView;
private FrameLayout mBBanner;
private boolean mBackup;
private int mButtonState;
private int mCurrentHookType;
private int mCurrentPatchType;
private boolean mDelayLoadHandled;
private ProgressDialog mLoadingDlg;
private DownloadProgressButton mPatchButton;
private TextView mPatchInfoView;
private X8DataModel.p0 mPatchRule;
private k mPatchTypeAdapter;
private GridView mPatchTypeView;
private Button mRemoveButton;
private X8DataModel.AppTaskModel mTask;
private Toolbar mToolbar;
private ArrayList<n> mPatchTypeList = new ArrayList<>();
private ArrayList<l> mHookTypeList = new ArrayList<>();
private int mStartUIStatus = 0;
final String INSTALL_RESULT_ACTION = "com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK";
private BroadcastReceiver mInstallResultReceiver = new j();
public class a implements Runnable {
final String f21911q;
final String f21912r;
final File[] f21913s;
class RunnableC0269a implements Runnable {
final boolean f21915q;
RunnableC0269a(boolean z6) {
this.f21915q = z6;
}
@Override
public void run() {
if (!this.f21915q) {
InjectActivity.this.dismissLoadingDlg();
o2.e.b(InjectActivity.this, "1: " + InjectActivity.this.getString(R.string.install_failed_tips), 0);
}
}
}
a(String str, String str2, File[] fileArr) {
this.f21911q = str;
this.f21912r = str2;
this.f21913s = fileArr;
}
@Override
public void run() {
new Handler(Looper.getMainLooper()).post(new RunnableC0269a(InjectActivity.this.doInstallApk(this.f21911q, this.f21912r, this.f21913s)));
}
}
public class b implements m {
b() {
}
@Override
public boolean a(int i6) {
if (InjectActivity.this.mButtonState == 2) {
o2.e.a(InjectActivity.this, R.string.disallow_patch_or_hook_type_select_tips, 0);
return true;
}
if (InjectActivity.this.mButtonState != 0) {
return true;
}
return false;
}
}
public class c implements m {
c() {
}
@Override
public boolean a(int i6) {
if (InjectActivity.this.mButtonState == 2) {
o2.e.a(InjectActivity.this, R.string.disallow_patch_or_hook_type_select_tips, 0);
return true;
}
if (InjectActivity.this.mButtonState != 0) {
return true;
}
return false;
}
}
public class d implements FilenameFilter {
d() {
}
@Override
public boolean accept(File file, String str) {
return str.contains(InjectActivity.this.mApp.app_pkg);
}
}
public class e implements AdResultCallback {
final boolean[] f21920a;
e(boolean[] zArr) {
this.f21920a = zArr;
}
@Override
public void onAdPlayResult(int i6) {
if (i6 != 2 && i6 != 0) {
if (!this.f21920a[0]) {
if (TextUtils.isEmpty(InjectActivity.this.mApkPathToPatch)) {
InjectActivity injectActivity = InjectActivity.this;
injectActivity.mApkPathToPatch = injectActivity.getInputApkPath();
}
if (InjectActivity.this.mTask != null) {
X8DataModel.A0(InjectActivity.this).n1(InjectActivity.this.mTask, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
} else {
X8DataModel.A0(InjectActivity.this).m1(InjectActivity.this.mApp, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
}
}
} else {
o2.e.a(InjectActivity.this, R.string.please_watch_ads_tips, 0);
}
HashMap hashMap = new HashMap();
if (InjectActivity.this.mApp != null) {
hashMap.put("appName", InjectActivity.this.mApp.app_name);
hashMap.put("appPkg", InjectActivity.this.mApp.app_pkg);
} else if (InjectActivity.this.mTask != null) {
hashMap.put("appName", InjectActivity.this.mTask.app_name);
hashMap.put("appPkg", InjectActivity.this.mTask.app_pkg);
}
hashMap.put("result", Integer.toString(i6));
com.x8zs.app.c.b().h("PatchButtonAdResult", hashMap);
}
@Override
public void onAdPlayStart() {
if (TextUtils.isEmpty(InjectActivity.this.mApkPathToPatch)) {
InjectActivity injectActivity = InjectActivity.this;
injectActivity.mApkPathToPatch = injectActivity.getInputApkPath();
}
if (InjectActivity.this.mTask != null) {
X8DataModel.A0(InjectActivity.this).n1(InjectActivity.this.mTask, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
} else {
X8DataModel.A0(InjectActivity.this).m1(InjectActivity.this.mApp, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
}
this.f21920a[0] = true;
}
}
public class f implements AdResultCallback {
f() {
}
@Override
public void onAdPlayResult(int i6) {
if (i6 != 2 && i6 != 0) {
InjectActivity injectActivity = InjectActivity.this;
injectActivity.showReinstallDialog(injectActivity.mApp.shell_pkg);
} else {
o2.e.a(InjectActivity.this, R.string.please_watch_ads_tips, 0);
}
HashMap hashMap = new HashMap();
if (InjectActivity.this.mApp != null) {
hashMap.put("appName", InjectActivity.this.mApp.app_name);
hashMap.put("appPkg", InjectActivity.this.mApp.app_pkg);
} else if (InjectActivity.this.mTask != null) {
hashMap.put("appName", InjectActivity.this.mTask.app_name);
hashMap.put("appPkg", InjectActivity.this.mTask.app_pkg);
}
hashMap.put("result", Integer.toString(i6));
com.x8zs.app.c.b().h("RemoveButtonAdResult", hashMap);
}
@Override
public void onAdPlayStart() {
}
}
public class g implements View.OnClickListener {
final com.x8zs.widget.a f21923q;
g(com.x8zs.widget.a aVar) {
this.f21923q = aVar;
}
@Override
public void onClick(View view) {
this.f21923q.dismiss();
}
}
public class h implements View.OnClickListener {
final String f21925q;
final com.x8zs.widget.a f21926r;
h(String str, com.x8zs.widget.a aVar) {
this.f21925q = str;
this.f21926r = aVar;
}
@Override
public void onClick(View view) {
o2.f.i0(InjectActivity.this, this.f21925q, 100);
this.f21926r.dismiss();
}
}
class i implements Runnable {
i() {
}
@Override
public void run() {
if (InjectActivity.this.mStartUIStatus == 1) {
InjectActivity.this.mStartUIStatus = 2;
}
}
}
class j extends BroadcastReceiver {
j() {
}
@Override
public void onReceive(Context context, Intent intent) {
String str;
String str2;
boolean z6;
InjectActivity.this.dismissLoadingDlg();
int intExtra = intent.getIntExtra("android.content.pm.extra.STATUS", 1);
String stringExtra = intent.getStringExtra("android.content.pm.extra.STATUS_MESSAGE");
Log.d(InjectActivity.TAG, "[SESSION_INSTALL_CALLBACK] status = " + intExtra + ", message = " + stringExtra + ", activity = " + InjectActivity.this);
if (InjectActivity.this.mApp != null) {
str = InjectActivity.this.mApp.app_pkg;
str2 = InjectActivity.this.mApp.app_name;
} else if (InjectActivity.this.mTask == null) {
str = "";
str2 = str;
} else {
str = InjectActivity.this.mTask.app_pkg;
str2 = InjectActivity.this.mTask.app_name;
}
if (intExtra == -1) {
try {
InjectActivity.this.startActivity((Intent) intent.getParcelableExtra("android.intent.extra.INTENT"));
InjectActivity.this.mStartUIStatus = 1;
return;
} catch (Throwable th) {
th.printStackTrace();
try {
InjectActivity injectActivity = InjectActivity.this;
injectActivity.unregisterReceiver(injectActivity.mInstallResultReceiver);
} catch (Throwable th2) {
th2.printStackTrace();
}
InjectActivity.this.mStartUIStatus = 0;
HashMap hashMap = new HashMap();
hashMap.put(a.C0030a.A, str);
hashMap.put("name", str2);
hashMap.put("error", th.getClass().getSimpleName() + ": " + th.getMessage());
com.x8zs.app.c.b().h("app_install_fail", hashMap);
o2.e.b(InjectActivity.this, "2: " + InjectActivity.this.getString(R.string.install_failed_tips), 0);
return;
}
}
if (intExtra != 0) {
if (InjectActivity.this.mStartUIStatus != 2) {
InjectActivity injectActivity2 = InjectActivity.this;
z6 = o2.f.g0(injectActivity2, injectActivity2.mApkPathToInstall, 101);
} else {
z6 = false;
}
try {
InjectActivity injectActivity3 = InjectActivity.this;
injectActivity3.unregisterReceiver(injectActivity3.mInstallResultReceiver);
} catch (Throwable th3) {
th3.printStackTrace();
}
InjectActivity.this.mStartUIStatus = 0;
if (!z6) {
HashMap hashMap2 = new HashMap();
hashMap2.put(a.C0030a.A, str);
hashMap2.put("name", str2);
hashMap2.put("error", "" + intExtra + ": " + stringExtra);
com.x8zs.app.c.b().h("app_install_fail", hashMap2);
if (TextUtils.isEmpty(stringExtra)) {
stringExtra = "3: " + InjectActivity.this.getString(R.string.install_failed_tips);
}
o2.e.b(InjectActivity.this, stringExtra, 0);
return;
}
return;
}
try {
InjectActivity injectActivity4 = InjectActivity.this;
injectActivity4.unregisterReceiver(injectActivity4.mInstallResultReceiver);
} catch (Throwable th4) {
th4.printStackTrace();
}
InjectActivity.this.mStartUIStatus = 0;
HashMap hashMap3 = new HashMap();
hashMap3.put(a.C0030a.A, str);
hashMap3.put("name", str2);
com.x8zs.app.c.b().h("app_install_success", hashMap3);
o2.e.a(InjectActivity.this, R.string.install_succeed_tips, 0);
}
}
public class k extends BaseAdapter implements AdapterView.OnItemClickListener {
private GridView f21930q;
private String[] f21931r;
private int f21932s = -1;
private m f21933t;
class a implements Runnable {
final TextView f21935q;
a(TextView textView) {
this.f21935q = textView;
}
@Override
public void run() {
this.f21935q.setLayoutParams(new AbsListView.LayoutParams((k.this.f21930q.getMeasuredWidth() - ((k.this.f21930q.getNumColumns() - 1) * k.this.f21930q.getHorizontalSpacing())) / k.this.f21930q.getNumColumns(), -2));
}
}
public k(GridView gridView, String[] strArr, m mVar) {
this.f21930q = gridView;
this.f21931r = strArr;
this.f21933t = mVar;
}
@Override
public int getCount() {
return this.f21931r.length;
}
@Override
public Object getItem(int i6) {
return this.f21931r[i6];
}
@Override
public long getItemId(int i6) {
return i6;
}
@Override
public View getView(int i6, View view, ViewGroup viewGroup) {
TextView textView;
if (view == null) {
textView = (TextView) LayoutInflater.from(InjectActivity.this).inflate(R.layout.feedback_item_view, viewGroup, false);
int measuredWidth = this.f21930q.getMeasuredWidth();
if (measuredWidth != 0) {
textView.setLayoutParams(new AbsListView.LayoutParams((measuredWidth - ((this.f21930q.getNumColumns() - 1) * this.f21930q.getHorizontalSpacing())) / this.f21930q.getNumColumns(), -2));
} else {
this.f21930q.post(new a(textView));
}
} else {
textView = (TextView) view;
}
textView.setText(this.f21931r[i6]);
if (i6 == this.f21932s) {
textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.blue));
textView.setBackgroundResource(R.drawable.rect_blue);
} else {
textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.dark_gray));
textView.setBackgroundResource(R.drawable.rect_gray);
}
return textView;
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i6, long j6) {
TextView textView;
m mVar = this.f21933t;
if (mVar != null && mVar.a(i6)) {
return;
}
this.f21932s = i6;
for (int i7 = 0; i7 < this.f21931r.length && (textView = (TextView) this.f21930q.getChildAt(i7)) != null; i7++) {
if (textView == view) {
textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.blue));
textView.setBackgroundResource(R.drawable.rect_blue);
} else {
textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.dark_gray));
textView.setBackgroundResource(R.drawable.rect_gray);
}
}
}
}
public static class l {
public int f21937a;
public String f21938b;
public l(int i6, String str) {
this.f21937a = i6;
this.f21938b = str;
}
}
public interface m {
boolean a(int i6);
}
public static class n {
public int f21939a;
public String f21940b;
public n(int i6, String str) {
this.f21939a = i6;
this.f21940b = str;
}
}
public void dismissLoadingDlg() {
ProgressDialog progressDialog = this.mLoadingDlg;
if (progressDialog != null) {
progressDialog.dismiss();
}
}
public boolean doInstallApk(String str, String str2, File[] fileArr) {
boolean z6 = false;
try {
HashMap hashMap = new HashMap();
hashMap.put(a.C0030a.A, str);
hashMap.put("name", str2);
com.x8zs.app.c.b().h("start_app_install", hashMap);
PackageInstaller packageInstaller = getPackageManager().getPackageInstaller();
PackageInstaller.Session openSession = packageInstaller.openSession(packageInstaller.createSession(new PackageInstaller.SessionParams(1)));
int length = fileArr.length;
int i6 = 0;
while (i6 < length) {
File file = fileArr[i6];
FileInputStream fileInputStream = new FileInputStream(file);
int i7 = i6;
OutputStream openWrite = openSession.openWrite(file.getName(), 0L, file.length());
byte[] bArr = new byte[8192];
while (true) {
int read = fileInputStream.read(bArr);
if (read != -1) {
openWrite.write(bArr, 0, read);
}
}
openSession.fsync(openWrite);
openWrite.close();
fileInputStream.close();
i6 = i7 + 1;
}
registerReceiver(this.mInstallResultReceiver, new IntentFilter("com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK"));
Intent intent = new Intent("com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK");
intent.putExtra(a.C0030a.A, str);
openSession.commit(PendingIntent.getBroadcast(this, 0, intent, 0).getIntentSender());
return true;
} catch (Throwable th) {
th.printStackTrace();
if (fileArr.length == 1) {
z6 = o2.f.g0(this, this.mApkPathToInstall, 101);
}
if (!z6) {
HashMap hashMap2 = new HashMap();
hashMap2.put(a.C0030a.A, str);
hashMap2.put("name", str2);
hashMap2.put("error", th.getClass().getSimpleName() + ": " + th.getMessage());
com.x8zs.app.c.b().h("app_install_fail", hashMap2);
}
return z6;
}
}
private String getCurrentApkPath() {
String absolutePath;
X8DataModel.AppTaskModel appTaskModel = this.mTask;
File file = null;
if (appTaskModel != null && appTaskModel.status == 11 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null && appDataModel.installed) {
try {
file = new File(getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir);
} catch (PackageManager.NameNotFoundException e6) {
e6.printStackTrace();
}
}
File file2 = new File(this.mTask.app_path);
if (file != null && file.lastModified() > file2.lastModified()) {
absolutePath = file.getAbsolutePath();
} else {
absolutePath = file2.getAbsolutePath();
}
return absolutePath;
}
X8DataModel.AppDataModel appDataModel2 = this.mApp;
if (appDataModel2 != null && appDataModel2.installed) {
try {
return getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir;
} catch (PackageManager.NameNotFoundException e7) {
e7.printStackTrace();
return null;
}
}
if (appDataModel2 != null && !TextUtils.isEmpty(appDataModel2.app_path)) {
return this.mApp.app_path;
}
X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
if (appTaskModel2 == null || appTaskModel2.status != 5) {
return null;
}
return appTaskModel2.app_path;
}
private int getHookType(Context context, String str) {
try {
Bundle bundle = context.getPackageManager().getPackageArchiveInfo(str, 128).applicationInfo.metaData;
if (bundle != null && bundle.containsKey("x8zs_type")) {
return Integer.parseInt(bundle.getString("x8zs_type"));
}
return 0;
} catch (Throwable th) {
th.printStackTrace();
return 0;
}
}
public String getInputApkPath() {
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null && !TextUtils.isEmpty(appDataModel.app_path)) {
return this.mApp.app_path;
}
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null && appTaskModel.status == 5 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
return this.mTask.app_path;
}
X8DataModel.AppDataModel appDataModel2 = this.mApp;
if (appDataModel2 != null && appDataModel2.installed && !appDataModel2.packaged) {
try {
return getPackageManager().getApplicationInfo(this.mApp.app_pkg, 0).sourceDir;
} catch (PackageManager.NameNotFoundException e6) {
e6.printStackTrace();
return null;
}
}
return getOriginalApkPath();
}
private String getOriginalApkPath() {
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel == null) {
return null;
}
if (!TextUtils.isEmpty(appDataModel.app_path)) {
return this.mApp.app_path;
}
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null && appTaskModel.status == 5 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
return this.mTask.app_path;
}
File[] listFiles = com.x8zs.model.a.d().listFiles(new d());
if (listFiles == null || listFiles.length == 0) {
return null;
}
File file = listFiles[0];
long j6 = 0;
for (File file2 : listFiles) {
if (file2.lastModified() >= j6) {
j6 = file2.lastModified();
file = file2;
}
}
return file.getAbsolutePath();
}
private int getPackType(Context context, String str) {
try {
PackageInfo packageArchiveInfo = context.getPackageManager().getPackageArchiveInfo(str, 128);
Bundle bundle = packageArchiveInfo.applicationInfo.metaData;
if (bundle != null && bundle.containsKey("x8zs_type")) {
if (packageArchiveInfo.applicationInfo.className.equals("com.x8zs.sandbox.app.SandboxApplication")) {
return ApkBuilder.f21508t;
}
if (packageArchiveInfo.applicationInfo.className.equals("com.x8zs.shell.ProxyApplication")) {
if (o2.f.m(str, "x8zs/classes.dex")) {
return ApkBuilder.f21506r;
}
return ApkBuilder.f21509u;
}
return ApkBuilder.f21507s;
}
return 0;
} catch (Throwable th) {
th.printStackTrace();
return 0;
}
}
private void handleOpenApp() {
HashMap hashMap = new HashMap();
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null) {
o2.f.e0(this, appDataModel.shell_pkg);
hashMap.put("packagename", this.mApp.shell_pkg);
com.x8zs.app.c.b().h("AppClickStart", hashMap);
} else {
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
o2.f.e0(this, appTaskModel.app_pkg);
hashMap.put("packagename", this.mTask.app_pkg);
com.x8zs.app.c.b().h("AppClickStart", hashMap);
}
}
}
private void handlePatchButtonClick() {
int i6 = this.mButtonState;
if (i6 == 1) {
o2.e.a(this, R.string.inject_control_tip, 0);
return;
}
if (i6 == 2) {
Intent intent = new Intent(this, (Class<?>) InstallOrInjectFlowActivity.class);
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
intent.putExtra("task_id", appTaskModel.task_id);
} else {
intent.putExtra("app_pkg", this.mApp.app_pkg);
}
intent.putExtra("action", 1);
startActivityForResult(intent, 101);
return;
}
if (i6 == 3) {
if (this.mTask != null) {
X8DataModel.A0(this).Q(this.mTask);
return;
}
return;
}
if (this.mPatchTypeAdapter.f21932s != -1 && this.mAccTypeAdapter.f21932s != -1) {
X8DataModel.p0 p0Var = new X8DataModel.p0();
p0Var.f21826c = this.mPatchTypeList.get(this.mPatchTypeAdapter.f21932s).f21939a;
p0Var.f21827d = this.mHookTypeList.get(this.mAccTypeAdapter.f21932s).f21937a;
String inputApkPath = getInputApkPath();
Log.d(TAG, "[handlePatchButtonClick] inputApkPath = " + inputApkPath);
if (!TextUtils.isEmpty(inputApkPath) && new File(inputApkPath).exists()) {
this.mApkPathToPatch = inputApkPath;
this.mPatchRule = p0Var;
if (!AdManagerEx.getInstance().onPatchApkEvent(this, new e(new boolean[1]))) {
if (TextUtils.isEmpty(this.mApkPathToPatch)) {
this.mApkPathToPatch = getInputApkPath();
}
if (this.mTask != null) {
X8DataModel.A0(this).n1(this.mTask, this.mApkPathToPatch, this.mPatchRule, this.mBackup);
} else {
X8DataModel.A0(this).m1(this.mApp, this.mApkPathToPatch, this.mPatchRule, this.mBackup);
}
}
HashMap hashMap = new HashMap();
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null) {
hashMap.put("appName", appDataModel.app_name);
hashMap.put("appPkg", this.mApp.app_pkg);
} else {
X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
if (appTaskModel2 != null) {
hashMap.put("appName", appTaskModel2.app_name);
hashMap.put("appPkg", this.mTask.app_pkg);
}
}
com.x8zs.app.c.b().h("ClickPatchButton", hashMap);
return;
}
o2.e.a(this, R.string.no_input_apk_for_patch_tips, 0);
return;
}
o2.e.a(this, R.string.no_patch_or_hook_type_selected_tips, 0);
}
private void handlePatchInfoViewClick() {
if (this.mCurrentPatchType != 0 && this.mButtonState != 2) {
handleOpenApp();
}
}
private void handleRemoveButtonClick() {
if (this.mButtonState == 2) {
if (this.mTask != null) {
X8DataModel.A0(this).Q(this.mTask);
o2.e.a(this, R.string.patched_apk_deleted_tips, 0);
return;
}
return;
}
String originalApkPath = getOriginalApkPath();
Log.d(TAG, "[handleRemoveButtonClick] originalApkPath = " + originalApkPath);
if (!TextUtils.isEmpty(originalApkPath) && new File(originalApkPath).exists()) {
this.mApkPathToInstall = originalApkPath;
if (!AdManagerEx.getInstance().onPatchApkEvent(this, new f())) {
showReinstallDialog(this.mApp.shell_pkg);
}
HashMap hashMap = new HashMap();
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null) {
hashMap.put("appName", appDataModel.app_name);
hashMap.put("appPkg", this.mApp.app_pkg);
} else {
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
hashMap.put("appName", appTaskModel.app_name);
hashMap.put("appPkg", this.mTask.app_pkg);
}
}
com.x8zs.app.c.b().h("ClickRemoveButton", hashMap);
return;
}
o2.e.a(this, R.string.disallow_remove_patch_apk_tips, 0);
}
private void installApk(String str, String str2, File[] fileArr) {
showLoadingDlg();
new Thread(new a(str, str2, fileArr)).start();
}
private boolean isMe(X8DataModel.AppTaskModel appTaskModel) {
X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
if (appTaskModel2 != null && appTaskModel2.task_id == appTaskModel.task_id) {
return true;
}
X8DataModel.AppDataModel appDataModel = this.mApp;
return appDataModel != null && appDataModel.app_pkg.equals(appTaskModel.app_pkg);
}
private void setAppDataModel(X8DataModel.AppDataModel appDataModel, boolean z6) {
X8DataModel.AppDataModel appDataModel2 = this.mApp;
if (appDataModel2 != appDataModel) {
if (appDataModel2 != null && this.mTask == null) {
X8DataModel.A0(this).t1(this.mApp.app_pkg, this);
}
if (appDataModel != null) {
X8DataModel.A0(this).L(appDataModel.app_pkg, this);
}
}
this.mApp = appDataModel;
if (appDataModel != null) {
setAppTaskModel(appDataModel.task, z6);
} else {
updateViewState(z6);
updateViews();
}
}
private void setAppTaskModel(X8DataModel.AppTaskModel appTaskModel, boolean z6) {
X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
if (appTaskModel2 != appTaskModel) {
if (appTaskModel2 != null) {
X8DataModel.A0(this).v1(this.mTask.task_id, this);
if (this.mApp == null) {
X8DataModel.A0(this).t1(this.mTask.app_pkg, this);
}
}
if (appTaskModel != null) {
X8DataModel.A0(this).N(appTaskModel.task_id, this);
X8DataModel.A0(this).L(appTaskModel.app_pkg, this);
}
}
this.mTask = appTaskModel;
updateViewState(z6);
updateViews();
}
private void setupViews() {
this.mPatchTypeView = (GridView) findViewById(R.id.patch_type);
int size = this.mPatchTypeList.size();
String[] strArr = new String[size];
for (int i6 = 0; i6 < size; i6++) {
strArr[i6] = this.mPatchTypeList.get(i6).f21940b;
}
k kVar = new k(this.mPatchTypeView, strArr, new b());
this.mPatchTypeAdapter = kVar;
this.mPatchTypeView.setAdapter((ListAdapter) kVar);
this.mPatchTypeView.setOnItemClickListener(this.mPatchTypeAdapter);
this.mAccTypeView = (GridView) findViewById(R.id.acc_type);
int size2 = this.mHookTypeList.size();
String[] strArr2 = new String[size2];
for (int i7 = 0; i7 < size2; i7++) {
strArr2[i7] = this.mHookTypeList.get(i7).f21938b;
}
k kVar2 = new k(this.mAccTypeView, strArr2, new c());
this.mAccTypeAdapter = kVar2;
this.mAccTypeView.setAdapter((ListAdapter) kVar2);
this.mAccTypeView.setOnItemClickListener(this.mAccTypeAdapter);
this.mAppInfoView = (TextView) findViewById(R.id.app_info);
TextView textView = (TextView) findViewById(R.id.patch_info);
this.mPatchInfoView = textView;
textView.setOnClickListener(this);
DownloadProgressButton downloadProgressButton = (DownloadProgressButton) findViewById(R.id.x8_patch);
this.mPatchButton = downloadProgressButton;
downloadProgressButton.setShowBorder(false);
this.mPatchButton.setOnClickListener(this);
Button button = (Button) findViewById(R.id.remove_patch);
this.mRemoveButton = button;
button.setOnClickListener(this);
}
private void showLoadingDlg() {
ProgressDialog progressDialog = this.mLoadingDlg;
if (progressDialog != null && progressDialog.isShowing()) {
return;
}
this.mLoadingDlg = ProgressDialog.show(this, "", getString(R.string.dialog_msg_op_pending), true);
}
public void showReinstallDialog(String str) {
com.x8zs.widget.a aVar = new com.x8zs.widget.a(this);
aVar.setTitle(R.string.dialog_title_reinstall_original);
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(1);
linearLayout.setGravity(1);
ImageView imageView = new ImageView(this);
imageView.setImageResource(R.drawable.reinstall_desc);
TextView textView = new TextView(this);
textView.setText(Html.fromHtml(getString(R.string.dialog_msg_reinstall_original)));
textView.setGravity(17);
textView.setTextSize(10.0f);
linearLayout.addView(imageView);
linearLayout.addView(textView);
aVar.setContentView(linearLayout);
aVar.c(R.string.dialog_button_cancel, new g(aVar));
aVar.g(R.string.dialog_button_confirm, new h(str, aVar));
aVar.setCanceledOnTouchOutside(false);
aVar.show();
}
private void updateViewState(boolean z6) {
File file;
int i6;
int i7;
X8DataModel.AppTaskModel appTaskModel = this.mTask;
int i8 = 0;
if (appTaskModel != null && appTaskModel.task_type == 2 && (i7 = appTaskModel.status) >= 6 && i7 <= 9) {
this.mButtonState = 1;
} else if (appTaskModel != null && appTaskModel.task_type == 2 && appTaskModel.status == 11 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null && appDataModel.installed) {
try {
file = new File(getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir);
} catch (PackageManager.NameNotFoundException e6) {
e6.printStackTrace();
}
File file2 = new File(this.mTask.app_path);
if (file == null && file.lastModified() > file2.lastModified()) {
this.mButtonState = 0;
} else {
this.mButtonState = 2;
}
}
file = null;
File file22 = new File(this.mTask.app_path);
if (file == null) {
}
this.mButtonState = 2;
} else {
X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
if (appTaskModel2 != null && appTaskModel2.task_type == 2 && appTaskModel2.status == 10) {
this.mButtonState = 3;
} else {
this.mButtonState = 0;
}
}
Log.d(TAG, "[updateViewState] mButtonState = " + this.mButtonState);
if (z6) {
String currentApkPath = getCurrentApkPath();
Log.d(TAG, "[updateViewState] currentApkPath = " + currentApkPath);
if (!TextUtils.isEmpty(currentApkPath)) {
i6 = getPackType(this, currentApkPath);
} else {
i6 = 0;
}
this.mCurrentPatchType = i6;
if (!TextUtils.isEmpty(currentApkPath)) {
i8 = getHookType(this, currentApkPath);
}
this.mCurrentHookType = i8;
Log.d(TAG, "[updateViewState] mCurrentPatchType = " + this.mCurrentPatchType + ", mCurrentHookType = " + this.mCurrentHookType);
}
}
private void updateViews() {
int i6;
String string;
if (this.mApp != null) {
this.mAppInfoView.setText(this.mApp.app_name + " " + this.mApp.app_pkg);
} else if (this.mTask != null) {
this.mAppInfoView.setText(this.mTask.app_name + " " + this.mTask.app_pkg);
}
if (this.mCurrentPatchType == 0) {
this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_none)));
} else {
String string2 = getString(R.string.patch_type_unknown);
String string3 = getString(R.string.hook_type_unknown);
Iterator<n> it = this.mPatchTypeList.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
n next = it.next();
if (next.f21939a == this.mCurrentPatchType) {
string2 = next.f21940b;
break;
}
}
Iterator<l> it2 = this.mHookTypeList.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
l next2 = it2.next();
if (next2.f21937a == this.mCurrentHookType) {
string3 = next2.f21938b;
break;
}
}
if (this.mButtonState == 2) {
this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_patched2, string2, string3)));
} else {
this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_patched, string2, string3)));
}
}
int i7 = this.mButtonState;
if (i7 == 1) {
this.mPatchButton.o("", this.mTask.progress);
this.mPatchButton.setState(1);
} else if (i7 == 2) {
this.mPatchButton.setCurrentText(getString(R.string.install_x8_app));
this.mPatchButton.setState(0);
} else if (i7 == 3) {
this.mPatchButton.o("", this.mTask.progress);
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null && appTaskModel.error != 0) {
string = String.format("%s(%d)", getString(R.string.please_retry), Integer.valueOf(this.mTask.error));
} else {
string = getString(R.string.please_retry);
}
this.mPatchButton.setCurrentText(string);
this.mPatchButton.setState(2);
} else {
DownloadProgressButton downloadProgressButton = this.mPatchButton;
if (com.x8zs.app.a.b().f21556j) {
i6 = R.string.load_plugin_clone;
} else {
i6 = R.string.load_plugin;
}
downloadProgressButton.setCurrentText(getString(i6));
this.mPatchButton.setState(0);
}
if (this.mButtonState == 2) {
this.mRemoveButton.setEnabled(true);
return;
}
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null && appDataModel.installed && appDataModel.packaged) {
this.mRemoveButton.setEnabled(true);
} else {
this.mRemoveButton.setEnabled(false);
}
}
@Override
public void onActivityResult(int i6, int i7, Intent intent) {
String str;
String str2;
super.onActivityResult(i6, i7, intent);
if (i6 == 100) {
o2.e.a(this, R.string.install_original_app_msg, 0);
if (TextUtils.isEmpty(this.mApkPathToInstall)) {
return;
}
File[] j6 = com.x8zs.model.a.i(this).j(new File(this.mApkPathToInstall), o2.f.t(this, this.mApkPathToInstall));
File[] fileArr = new File[j6.length + 1];
fileArr[0] = new File(this.mApkPathToInstall);
System.arraycopy(j6, 0, fileArr, 1, j6.length);
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null) {
str = appDataModel.app_pkg;
str2 = appDataModel.app_name;
} else {
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
str = appTaskModel.app_pkg;
str2 = appTaskModel.app_name;
} else {
str = "";
str2 = "";
}
}
installApk(str, str2, fileArr);
}
}
@Override
public void onAppAdded(X8DataModel.AppDataModel appDataModel) {
if (isMe(appDataModel)) {
Log.d(TAG, "onAppAdded");
setAppDataModel(appDataModel, true);
}
}
@Override
public void onAppRemoved(X8DataModel.AppDataModel appDataModel) {
if (isMe(appDataModel)) {
Log.d(TAG, "onAppRemoved");
setAppDataModel(appDataModel, true);
}
}
@Override
public void onAppStateChanged(X8DataModel.AppDataModel appDataModel) {
if (isMe(appDataModel)) {
Log.d(TAG, "onAppStateChanged");
setAppDataModel(appDataModel, true);
}
}
@Override
public void onClick(View view) {
if (view == this.mPatchButton) {
handlePatchButtonClick();
} else if (view == this.mRemoveButton) {
handleRemoveButtonClick();
} else if (view == this.mPatchInfoView) {
handlePatchInfoViewClick();
}
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mBackup = getIntent().getBooleanExtra("backup", true);
X8DataModel.AppDataModel appDataModel = (X8DataModel.AppDataModel) getIntent().getParcelableExtra("app");
if (appDataModel == null) {
Log.e(TAG, "app is null");
finish();
return;
}
appDataModel.task = X8DataModel.A0(this).p0(appDataModel.app_pkg);
X8DataModel.A0(this).M(this);
this.mPatchTypeList.add(new n(ApkBuilder.f21506r, "P1"));
this.mPatchTypeList.add(new n(ApkBuilder.f21509u, "P2"));
this.mPatchTypeList.add(new n(ApkBuilder.f21507s, "P3"));
this.mHookTypeList.add(new l(ApkBuilder.f21500l, "H1"));
this.mHookTypeList.add(new l(ApkBuilder.f21501m, "H2"));
this.mHookTypeList.add(new l(ApkBuilder.f21502n, "H3"));
this.mHookTypeList.add(new l(ApkBuilder.f21503o, "H4"));
this.mHookTypeList.add(new l(ApkBuilder.f21504p, "H5"));
this.mHookTypeList.add(new l(ApkBuilder.f21505q, "H6"));
setContentView(R.layout.activity_inject_app);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
this.mToolbar = toolbar;
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTitle(R.string.inject_app_title);
setupViews();
setAppDataModel(appDataModel, true);
HashMap hashMap = new HashMap();
X8DataModel.AppDataModel appDataModel2 = this.mApp;
if (appDataModel2 != null) {
hashMap.put("appName", appDataModel2.app_name);
hashMap.put("appPkg", this.mApp.app_pkg);
} else {
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
hashMap.put("appName", appTaskModel.app_name);
hashMap.put("appPkg", this.mTask.app_pkg);
}
}
com.x8zs.app.c.b().h("PatchPageShow", hashMap);
this.mABanner = (FrameLayout) findViewById(R.id.a_banner);
this.mBBanner = (FrameLayout) findViewById(R.id.b_banner);
}
@Override
public void onDestroy() {
String str;
int i6;
X8DataModel.AppDataModel appDataModel = this.mApp;
if (appDataModel != null) {
str = appDataModel.app_pkg;
} else {
str = null;
}
X8DataModel.AppTaskModel appTaskModel = this.mTask;
if (appTaskModel != null) {
i6 = appTaskModel.task_id;
if (str == null) {
str = appTaskModel.app_pkg;
}
} else {
i6 = 0;
}
if (str != null) {
X8DataModel.A0(this).t1(str, this);
}
if (i6 != 0) {
X8DataModel.A0(this).v1(i6, this);
}
X8DataModel.A0(this).u1(this);
try {
unregisterReceiver(this.mInstallResultReceiver);
} catch (Throwable th) {
th.printStackTrace();
}
super.onDestroy();
}
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() != 16908332) {
return super.onOptionsItemSelected(menuItem);
}
finish();
return true;
}
@Override
public void onStart() {
super.onStart();
AdManager.getInstance().preloadAd(this, com.x8zs.model.b.b().f("inject_preload_types", "reward"));
}
@Override
public void onStop() {
super.onStop();
if (this.mStartUIStatus == 1) {
new Handler(Looper.getMainLooper()).postDelayed(new i(), 100L);
}
}
@Override
public void onTaskAdded(X8DataModel.AppTaskModel appTaskModel) {
if (isMe(appTaskModel)) {
Log.d(TAG, "onTaskAdded");
setAppTaskModel(appTaskModel, true);
}
}
@Override
public void onTaskList(int i6, List<X8DataModel.AppTaskModel> list) {
if (this.mDelayLoadHandled) {
return;
}
this.mDelayLoadHandled = true;
if (this.mTask == null && this.mApp != null) {
setAppTaskModel(X8DataModel.A0(this).p0(this.mApp.app_pkg), true);
}
}
@Override
public void onTaskRemoved(X8DataModel.AppTaskModel appTaskModel) {
if (isMe(appTaskModel)) {
Log.d(TAG, "onTaskRemoved");
setAppTaskModel(null, true);
}
}
@Override
public void onTaskStateChanged(X8DataModel.AppTaskModel appTaskModel) {
boolean z6;
if (isMe(appTaskModel)) {
Log.d(TAG, "onTaskStateChanged");
if (appTaskModel.status == 11) {
z6 = true;
} else {
z6 = false;
}
setAppTaskModel(appTaskModel, z6);
}
}
@Override
public void setTitle(CharSequence charSequence) {
getSupportActionBar().setTitle(charSequence);
}
private boolean isMe(X8DataModel.AppDataModel appDataModel) {
X8DataModel.AppDataModel appDataModel2 = this.mApp;
if (appDataModel2 != null && appDataModel2.app_pkg.equals(appDataModel.app_pkg)) {
return true;
}
X8DataModel.AppTaskModel appTaskModel = this.mTask;
return appTaskModel != null && appTaskModel.app_pkg.equals(appDataModel.app_pkg);
}
}