Spermatid v6.1.8版本的 MD5 值为:a375ce51a42d528ba6e2583c10478296
以下内容为反编译后的 DownloadService.java 源代码,内容仅作参考
package com.maoyanym.activityComm;
import android.R;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.widget.Toast;
import androidx.core.app.NotificationCompat;
import androidx.core.content.FileProvider;
import com.bytedance.pangle.servermanager.AbsServerManager;
import com.maoyanym.utils.p;
import com.mbridge.msdk.MBridgeConstans;
import com.mbridge.msdk.foundation.entity.CampaignEx;
import com.wangmai.okhttp.model.HttpHeaders;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class DownloadService extends Service {
private static int f17380a = 0;
private static String f17381b = ".ibnchannel";
private NotificationManager f17382c;
private int f17383d = 0;
private Handler f17384e = new a();
public class a extends Handler {
public a() {
}
@Override
public void handleMessage(Message message) {
b bVar = (b) message.obj;
int i10 = message.what;
if (i10 == 0) {
DownloadService.this.f17382c.cancel(bVar.f17392g);
if (bVar.f17387b.toLowerCase().endsWith(".ttf")) {
Toast.makeText(DownloadService.this, "字体下载完成,阅读时自动加载", 0).show();
} else {
if (p.a(bVar.f17389d)) {
try {
PackageInfo packageArchiveInfo = DownloadService.this.getPackageManager().getPackageArchiveInfo(bVar.f17387b, 1);
if (packageArchiveInfo != null) {
String str = packageArchiveInfo.applicationInfo.packageName;
bVar.f17389d = str;
com.maoyanym.c.b.a(bVar.f17402q, str);
}
} catch (Throwable unused) {
}
}
try {
Intent intent = new Intent("android.intent.action.VIEW");
intent.setFlags(268435456);
if (Build.VERSION.SDK_INT < 24 || DownloadService.this.getApplicationInfo().targetSdkVersion < 24) {
intent.setDataAndType(Uri.fromFile(new File(bVar.f17387b)), "application/vnd.android.package-archive");
} else {
Uri uriForFile = FileProvider.getUriForFile(DownloadService.this, DownloadService.this.getPackageName() + ".maoyanym.ymfileprovider", new File(bVar.f17387b));
intent.addFlags(1);
intent.setDataAndType(uriForFile, "application/vnd.android.package-archive");
}
DownloadService.this.startActivity(intent);
} catch (Throwable unused2) {
}
}
com.maoyanym.c.b.a(bVar.f17402q);
DownloadService.this.a(bVar.f17389d, bVar.f17394i, bVar.f17396k, bVar.f17398m);
} else if (i10 == 1) {
Notification a10 = DownloadService.this.a(bVar.f17388c, "下载失败");
a10.flags = 16;
DownloadService.this.f17382c.notify(bVar.f17392g, a10);
com.maoyanym.c.b.b(bVar.f17402q);
}
DownloadService.c(DownloadService.this);
if (DownloadService.this.f17383d <= 0) {
DownloadService.this.stopSelf(bVar.f17399n);
}
}
}
public static class b {
public String f17386a;
public String f17387b;
public String f17388c;
public String f17389d;
public String f17390e;
public String f17391f;
public int f17392g;
public boolean f17393h;
public long f17394i;
public String f17395j;
public String f17396k;
public String f17397l;
public String f17398m;
public int f17399n;
public long f17400o;
public int f17401p;
public long f17402q;
}
public class c implements Runnable {
public b f17403a;
public Message f17404b;
public c(b bVar) {
this.f17404b = DownloadService.this.f17384e.obtainMessage();
this.f17403a = bVar;
}
public boolean a() {
long length;
String str;
HttpURLConnection httpURLConnection;
HttpURLConnection httpURLConnection2;
int responseCode;
String headerField;
File file = new File(this.f17403a.f17387b + ".tmp");
long j10 = 0;
if (!file.exists()) {
file.getParentFile().mkdirs();
} else if (this.f17403a.f17393h) {
length = file.length();
str = this.f17403a.f17386a;
httpURLConnection = null;
while (true) {
try {
httpURLConnection2 = (HttpURLConnection) new URL(str).openConnection();
try {
httpURLConnection2.setInstanceFollowRedirects(true);
httpURLConnection2.setRequestProperty(HttpHeaders.HEAD_KEY_ACCEPT_ENCODING, HttpHeaders.HEAD_VALUE_ACCEPT_ENCODING);
if (length > 0) {
httpURLConnection2.setRequestProperty("RANGE", "bytes=" + length + "-");
}
httpURLConnection2.setConnectTimeout(10000);
httpURLConnection2.setReadTimeout(20000);
responseCode = httpURLConnection2.getResponseCode();
long contentLength = httpURLConnection2.getContentLength();
String headerField2 = httpURLConnection2.getHeaderField(HttpHeaders.HEAD_KEY_CONTENT_ENCODING);
if (responseCode != 416 && length > 0) {
File file2 = new File(this.f17403a.f17387b);
file2.delete();
file.renameTo(file2);
System.out.println("+++++++++++++++++++, close");
httpURLConnection2.disconnect();
return true;
}
if (responseCode == 302 && responseCode != 301) {
break;
}
headerField = httpURLConnection2.getHeaderField(HttpHeaders.HEAD_KEY_LOCATION);
if (!p.a(headerField)) {
throw new Exception("fail!");
}
httpURLConnection = httpURLConnection2;
str = headerField;
} catch (Throwable th) {
th = th;
httpURLConnection = httpURLConnection2;
httpURLConnection2 = httpURLConnection;
InputStream inputStream = null;
FileOutputStream fileOutputStream = null;
System.out.println("+++++++++++++++++++, close");
if (httpURLConnection2 != null) {
}
if (inputStream != null) {
}
if (fileOutputStream != null) {
}
throw th;
}
} catch (Throwable th2) {
th = th2;
}
}
} else {
file.delete();
}
file.createNewFile();
length = 0;
str = this.f17403a.f17386a;
httpURLConnection = null;
while (true) {
httpURLConnection2 = (HttpURLConnection) new URL(str).openConnection();
httpURLConnection2.setInstanceFollowRedirects(true);
httpURLConnection2.setRequestProperty(HttpHeaders.HEAD_KEY_ACCEPT_ENCODING, HttpHeaders.HEAD_VALUE_ACCEPT_ENCODING);
if (length > 0) {
}
httpURLConnection2.setConnectTimeout(10000);
httpURLConnection2.setReadTimeout(20000);
responseCode = httpURLConnection2.getResponseCode();
long contentLength2 = httpURLConnection2.getContentLength();
String headerField22 = httpURLConnection2.getHeaderField(HttpHeaders.HEAD_KEY_CONTENT_ENCODING);
if (responseCode != 416) {
}
if (responseCode == 302) {
}
headerField = httpURLConnection2.getHeaderField(HttpHeaders.HEAD_KEY_LOCATION);
if (!p.a(headerField)) {
}
httpURLConnection = httpURLConnection2;
str = headerField;
}
}
@Override
public void run() {
DownloadService downloadService;
try {
if (a()) {
Message message = this.f17404b;
message.what = 0;
message.obj = this.f17403a;
downloadService = DownloadService.this;
} else {
Message message2 = this.f17404b;
message2.what = 1;
message2.obj = this.f17403a;
downloadService = DownloadService.this;
}
downloadService.f17384e.sendMessage(this.f17404b);
} catch (Throwable unused) {
Message message3 = this.f17404b;
message3.what = 1;
message3.obj = this.f17403a;
DownloadService.this.f17384e.sendMessage(this.f17404b);
}
}
}
public Notification a(String str, String str2) {
NotificationCompat.Builder when;
int i10 = Build.VERSION.SDK_INT;
if (i10 >= 26) {
when = new NotificationCompat.Builder(this, getPackageName() + f17381b).setSmallIcon(R.drawable.stat_sys_download).setWhen(System.currentTimeMillis()).setContentTitle(str).setContentText(str2).setDefaults(-1).setOnlyAlertOnce(true);
} else {
when = new NotificationCompat.Builder(this).setSmallIcon(R.drawable.stat_sys_download).setContentTitle(str).setContentText(str2).setDefaults(-1).setOnlyAlertOnce(true).setWhen(System.currentTimeMillis());
if (i10 >= 24) {
when.setPriority(4);
} else {
when.setPriority(1);
}
}
return when.build();
}
private void a() {
com.maoyanym.c.b.a();
this.f17382c = (NotificationManager) getSystemService("notification");
if (Build.VERSION.SDK_INT >= 26) {
try {
this.f17382c.createNotificationChannel(new NotificationChannel(getPackageName() + f17381b, "下载通知", 4));
} catch (Throwable unused) {
}
}
}
private void a(long j10, String str, String str2) {
Intent intent = new Intent(getPackageName() + ".maoyanym.pre.download");
intent.setComponent(new ComponentName(this, (Class<?>) AppInstallReceiver.class));
intent.putExtra("id", j10);
if (p.c(str)) {
intent.putExtra("cppd_report_urls", str);
}
if (p.c(str2)) {
intent.putExtra("click_id", str2);
}
intent.setData(Uri.parse("package://www.ibookstar.com"));
sendBroadcast(intent);
}
private void a(Intent intent, int i10) {
String str;
boolean booleanExtra = intent.getBooleanExtra("continuedown", false);
String stringExtra = intent.getStringExtra(CampaignEx.JSON_KEY_TITLE);
if (p.a(stringExtra)) {
stringExtra = "未知.apk";
}
String stringExtra2 = intent.getStringExtra("downurl");
String b10 = b(intent.getStringExtra(MBridgeConstans.DYNAMIC_VIEW_WX_PATH), stringExtra);
String stringExtra3 = intent.getStringExtra("app_package");
String stringExtra4 = intent.getStringExtra("app_class");
String stringExtra5 = intent.getStringExtra("app_action");
long longExtra = intent.getLongExtra("reportid", 0L);
String stringExtra6 = intent.getStringExtra("cppd_report_urls");
String stringExtra7 = intent.getStringExtra("cpd_report_urls");
String stringExtra8 = intent.getStringExtra("cpa_report_urls");
String stringExtra9 = intent.getStringExtra("click_id");
if (com.maoyanym.c.b.a(stringExtra2)) {
str = "正在后台下载,完成后主动通知";
} else {
b bVar = new b();
bVar.f17393h = booleanExtra;
bVar.f17386a = stringExtra2;
int i11 = f17380a;
f17380a = i11 + 1;
bVar.f17392g = i11;
bVar.f17387b = b10;
bVar.f17388c = stringExtra;
bVar.f17394i = longExtra;
bVar.f17389d = stringExtra3;
bVar.f17390e = stringExtra4;
bVar.f17391f = stringExtra5;
bVar.f17399n = i10;
bVar.f17395j = stringExtra6;
bVar.f17396k = stringExtra7;
bVar.f17397l = stringExtra8;
bVar.f17398m = stringExtra9;
long a10 = com.maoyanym.c.b.a(bVar);
bVar.f17402q = a10;
if (a10 <= 0) {
return;
}
this.f17383d++;
File file = new File(b10);
if (booleanExtra && file.exists()) {
Message obtainMessage = this.f17384e.obtainMessage();
obtainMessage.what = 0;
obtainMessage.obj = bVar;
this.f17384e.sendMessage(obtainMessage);
} else {
file.delete();
new Thread(new c(bVar)).start();
this.f17382c.notify(bVar.f17392g, a(stringExtra, "正在下载: 0"));
}
a(bVar.f17394i, bVar.f17395j, bVar.f17398m);
str = "开始后台下载,完成后主动通知";
}
Toast.makeText(this, str, 0).show();
}
public void a(String str, long j10, String str2, String str3) {
Intent intent = new Intent(getPackageName() + ".maoyanym.download.complete");
intent.setComponent(new ComponentName(this, (Class<?>) AppInstallReceiver.class));
intent.putExtra("id", j10);
if (p.c(str)) {
intent.putExtra(AbsServerManager.PACKAGE_QUERY_BINDER, str);
}
if (p.c(str2)) {
intent.putExtra("cpd_report_urls", str2);
}
if (p.c(str3)) {
intent.putExtra("click_id", str3);
}
intent.setData(Uri.parse("package://www.ibookstar.com"));
sendBroadcast(intent);
}
public static String b(String str, String str2) {
StringBuilder sb2;
if (str2.toLowerCase().endsWith(".apk")) {
sb2 = new StringBuilder();
sb2.append(str);
sb2.append(File.separator);
sb2.append(str2);
} else {
sb2 = new StringBuilder();
sb2.append(str);
sb2.append(File.separator);
sb2.append(str2);
sb2.append(".apk");
}
return sb2.toString();
}
public static int c(DownloadService downloadService) {
int i10 = downloadService.f17383d;
downloadService.f17383d = i10 - 1;
return i10;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
a();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onStart(Intent intent, int i10) {
a(intent, i10);
super.onStart(intent, i10);
}
@Override
public int onStartCommand(Intent intent, int i10, int i11) {
a(intent, i11);
return 2;
}
}