正在查看: xxxxx v3.2.8 应用的 RemoteService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: xxxxx v3.2.8 应用的 RemoteService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.gyf.xtfcactus.service;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Build;
import android.os.IBinder;
import android.os.Process;
import com.alibaba.android.bindingx.core.internal.BindingXConstants;
import com.gyf.xtfcactus.entity.CactusConfig;
import com.gyf.xtfcactus.entity.Constant;
import com.gyf.xtfcactus.entity.ICactusInterface;
import com.gyf.xtfcactus.exception.CactusUncaughtExceptionHandler;
import com.gyf.xtfcactus.ext.CactusExtKt;
import com.gyf.xtfcactus.ext.ConfigExtKt;
import com.gyf.xtfcactus.ext.NotificationExtKt;
import com.taobao.weex.common.Constants;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000K\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\b*\u0001\u000f\u0018\u00002\u00020\u00012\u00020\u0002:\u0001\u001fB\u0005¢\u0006\u0002\u0010\u0003J\b\u0010\u0013\u001a\u00020\u0014H\u0016J\u0014\u0010\u0015\u001a\u0004\u0018\u00010\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u0018H\u0016J\b\u0010\u0019\u001a\u00020\u0014H\u0016J\b\u0010\u001a\u001a\u00020\u0014H\u0016J\"\u0010\u001b\u001a\u00020\u00072\b\u0010\u0017\u001a\u0004\u0018\u00010\u00182\u0006\u0010\u001c\u001a\u00020\u00072\u0006\u0010\u001d\u001a\u00020\u0007H\u0016J\b\u0010\u001e\u001a\u00020\u0014H\u0002R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082.¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\b\u001a\u0004\u0018\u00010\tX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\f\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\r\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\u000e\u001a\u00020\u000fX\u0082\u0004¢\u0006\u0004\n\u0002\u0010\u0010R\u0012\u0010\u0011\u001a\u00060\u0012R\u00020\u0000X\u0082.¢\u0006\u0002\n\u0000¨\u0006 "}, d2 = {"Lcom/gyf/xtfcactus/service/RemoteService;", "Landroid/app/Service;", "Landroid/os/IBinder$DeathRecipient;", "()V", "mCactusConfig", "Lcom/gyf/xtfcactus/entity/CactusConfig;", "mConnectionTimes", "", "mIInterface", "Lcom/gyf/xtfcactus/entity/ICactusInterface;", "mIsBind", "", "mIsDeathBind", "mIsStop", "mServiceConnection", "com/gyf/xtfcactus/service/RemoteService$mServiceConnection$1", "Lcom/gyf/xtfcactus/service/RemoteService$mServiceConnection$1;", "remoteBinder", "Lcom/gyf/xtfcactus/service/RemoteService$RemoteBinder;", "binderDied", "", "onBind", "Landroid/os/IBinder;", "intent", "Landroid/content/Intent;", "onCreate", "onDestroy", "onStartCommand", "flags", "startId", "stopBind", "RemoteBinder", "cactus_release"}, k = 1, mv = {1, 6, 0}, xi = 48)
public final class RemoteService extends Service implements IBinder.DeathRecipient {
private CactusConfig mCactusConfig;
private ICactusInterface mIInterface;
private boolean mIsBind;
private boolean mIsDeathBind;
private boolean mIsStop;
private RemoteBinder remoteBinder;
private int mConnectionTimes = CactusExtKt.getSTimes();
private final RemoteService$mServiceConnection$1 mServiceConnection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
boolean z;
CactusExtKt.log("onServiceDisconnected");
z = RemoteService.this.mIsStop;
if (z) {
return;
}
RemoteService remoteService = RemoteService.this;
RemoteService remoteService2 = remoteService;
RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1 = this;
CactusConfig cactusConfig = remoteService.mCactusConfig;
if (cactusConfig == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
cactusConfig = null;
}
remoteService.mIsBind = CactusExtKt.startLocalService$default(remoteService2, remoteService$mServiceConnection$1, cactusConfig, false, 4, null);
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
boolean z;
CactusExtKt.log("onServiceConnected");
if (service != null) {
RemoteService remoteService = RemoteService.this;
ICactusInterface asInterface = ICactusInterface.Stub.asInterface(service);
CactusConfig cactusConfig = null;
if (asInterface == null) {
asInterface = null;
} else if (asInterface.asBinder().isBinderAlive() && asInterface.asBinder().pingBinder()) {
try {
remoteService.mConnectionTimes++;
int unused = remoteService.mConnectionTimes;
CactusConfig cactusConfig2 = remoteService.mCactusConfig;
if (cactusConfig2 == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
} else {
cactusConfig = cactusConfig2;
}
asInterface.wakeup(cactusConfig);
asInterface.connectionTimes(remoteService.mConnectionTimes);
z = remoteService.mIsDeathBind;
if (!z) {
remoteService.mIsDeathBind = true;
asInterface.asBinder().linkToDeath(remoteService, 0);
}
} catch (Exception unused2) {
remoteService.mConnectionTimes--;
int unused3 = remoteService.mConnectionTimes;
}
}
remoteService.mIInterface = asInterface;
}
}
};
@Override
public void binderDied() {
CactusExtKt.log("binderDied");
try {
CactusExtKt.unlinkToDeath(this, this.mIInterface, new Function0<Unit>() {
{
super(0);
}
public Object invoke() {
m296invoke();
return Unit.INSTANCE;
}
public final void m296invoke() {
boolean z;
RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1;
RemoteService.this.mIsDeathBind = false;
RemoteService.this.mIInterface = null;
z = RemoteService.this.mIsStop;
if (z) {
return;
}
RemoteService remoteService = RemoteService.this;
RemoteService remoteService2 = remoteService;
remoteService$mServiceConnection$1 = remoteService.mServiceConnection;
RemoteService$mServiceConnection$1 remoteService$mServiceConnection$12 = remoteService$mServiceConnection$1;
CactusConfig cactusConfig = RemoteService.this.mCactusConfig;
if (cactusConfig == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
cactusConfig = null;
}
remoteService.mIsBind = CactusExtKt.startLocalService$default(remoteService2, remoteService$mServiceConnection$12, cactusConfig, false, 4, null);
}
});
} catch (Exception unused) {
}
}
@Override
public void onCreate() {
super.onCreate();
CactusUncaughtExceptionHandler.INSTANCE.getInstance();
try {
CactusExtKt.log("handleNotification");
CactusConfig config = ConfigExtKt.getConfig(this);
this.mCactusConfig = config;
RemoteService remoteService = this;
if (config == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
config = null;
}
NotificationExtKt.setNotification$default(remoteService, config.getNotificationConfig(), false, 2, null);
} catch (Exception e) {
e.printStackTrace();
}
CactusExtKt.registerStopReceiver(this, new Function0<Unit>() {
{
super(0);
}
public Object invoke() {
m297invoke();
return Unit.INSTANCE;
}
public final void m297invoke() {
RemoteService.this.mIsStop = true;
CactusExtKt.setSTimes(RemoteService.this.mConnectionTimes);
CactusExtKt.stopService(RemoteService.this);
}
});
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
CactusConfig cactusConfig;
if (intent != null && (cactusConfig = (CactusConfig) intent.getParcelableExtra(Constant.CACTUS_CONFIG)) != null) {
CactusExtKt.setSCactusConfig(cactusConfig);
this.mCactusConfig = cactusConfig;
}
RemoteService remoteService = this;
CactusConfig cactusConfig2 = this.mCactusConfig;
CactusConfig cactusConfig3 = null;
if (cactusConfig2 == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
cactusConfig2 = null;
}
NotificationExtKt.setNotification$default(remoteService, cactusConfig2.getNotificationConfig(), false, 2, null);
RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1 = this.mServiceConnection;
CactusConfig cactusConfig4 = this.mCactusConfig;
if (cactusConfig4 == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
} else {
cactusConfig3 = cactusConfig4;
}
this.mIsBind = CactusExtKt.startLocalService(remoteService, remoteService$mServiceConnection$1, cactusConfig3, false);
CactusExtKt.log("RemoteService is running");
return 1;
}
@Override
public void onDestroy() {
super.onDestroy();
if (Build.VERSION.SDK_INT >= 24) {
stopForeground(1);
} else {
stopForeground(true);
}
stopBind();
CactusExtKt.log("RemoteService has stopped");
Process.killProcess(Process.myPid());
System.exit(10);
throw new RuntimeException("System.exit returned normally, while it was supposed to halt JVM.");
}
@Override
public IBinder onBind(Intent intent) {
RemoteBinder remoteBinder = new RemoteBinder();
this.remoteBinder = remoteBinder;
return remoteBinder;
}
@Metadata(d1 = {"\u0000 \n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\b\u0086\u0004\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0010\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0016J\u0010\u0010\u0007\u001a\u00020\u00042\u0006\u0010\b\u001a\u00020\tH\u0016¨\u0006\n"}, d2 = {"Lcom/gyf/xtfcactus/service/RemoteService$RemoteBinder;", "Lcom/gyf/xtfcactus/entity/ICactusInterface$Stub;", "(Lcom/gyf/xtfcactus/service/RemoteService;)V", "connectionTimes", "", Constants.Value.TIME, "", "wakeup", BindingXConstants.KEY_CONFIG, "Lcom/gyf/xtfcactus/entity/CactusConfig;", "cactus_release"}, k = 1, mv = {1, 6, 0}, xi = 48)
public final class RemoteBinder extends ICactusInterface.Stub {
public RemoteBinder() {
}
@Override
public void wakeup(CactusConfig config) {
Intrinsics.checkNotNullParameter(config, BindingXConstants.KEY_CONFIG);
RemoteService.this.mCactusConfig = config;
RemoteService remoteService = RemoteService.this;
RemoteService remoteService2 = remoteService;
CactusConfig cactusConfig = remoteService.mCactusConfig;
if (cactusConfig == null) {
Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
cactusConfig = null;
}
NotificationExtKt.setNotification$default(remoteService2, cactusConfig.getNotificationConfig(), false, 2, null);
}
@Override
public void connectionTimes(int time) {
RemoteService.this.mConnectionTimes = time;
if (RemoteService.this.mConnectionTimes > 4 && RemoteService.this.mConnectionTimes % 2 == 1) {
RemoteService remoteService = RemoteService.this;
remoteService.mConnectionTimes++;
int unused = remoteService.mConnectionTimes;
}
CactusExtKt.setSTimes(RemoteService.this.mConnectionTimes);
}
}
private final void stopBind() {
try {
if (this.mIsDeathBind) {
this.mIsDeathBind = false;
CactusExtKt.unlinkToDeath$default(this, this.mIInterface, null, 2, null);
}
if (this.mIsBind) {
unbindService(this.mServiceConnection);
this.mIsBind = false;
}
} catch (Exception unused) {
}
}
}