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;
    }
}