AntiVirus Clean v1.0.0.7 保活与拉活反编译代码册
AntiVirus Clean v1.0.0.7 保活与拉活反编译代码册返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

宽表格和代码可左右滑动查看。

AntiVirus Clean v1.0.0.7 保活与拉活反编译代码册#

精确包名:com.eduspot.antivirus.clean;样本及资料日期:2026-10-28,Asia/Shanghai(北京时间)。六专题补充版。

S1=当前APK静态直接证据;S2=工具回读;S3=当前真机观察;I=推断;U=未验证。反编译不是原始源码,内置配置不是线上最终配置。发布状态单独记录于批次入口。

机制总图#

本包有常驻19001和通知模块,但Manifest没有Ace的自有Boot/Alarm/临时FGS恢复组件;不能因为工厂和通知布局相似就复制其恢复结论。

业务通知先过滤候选、日期额度及间隔,再异步构建/加载图片并最终notify;通知点击经专用中转/启动页进入主页,并保留actionId。主页的onNewIntent会再次处理通知参数,不是只有冷启动能回流。

按执行顺序读主链#

阶段 入口/下游 条件与状态说明 证据
业务任务 功能Activity → 权限/确认 → 结果 照片隐私针对位置历史,压缩与删除分开 N1/页面索引
主页回流 notify_action_id → onNewIntent → 分发 已有实例与冷启动路径分别核验 N2
日配额 本地午夜 → 每ID日键 → 剩余数 独立核验本包,不复制Ace的实现路径 N3/N4
通知构建 候选List随机 → 格式化 → RemoteViews → PendingIntent 文案变量不是扫描真实性证明 N5
后台边界 常驻FGS/轮询/FCM → 各自入口 没有Ace Boot/Alarm组件;短窗口结果不外推长期 原A3–A6

调用关系与业务含义#

本包33个业务Activity均找到当前反编译文件,已按实际字符串建立功能索引:垃圾、媒体管理、应用卸载、病毒扫描、WhatsApp、相似图片、重复文件、图片/视频压缩、照片隐私、通知与权限管理、安全浏览器等。

ArthtablActivity的删除确认说明处理照片位置历史,原图仍可在相册查看;因此“Photo Privacy Clean”不能写成删除照片或加密相册。Overfuls/Narmpris是视频压缩与结果,Zonounc是图片压缩,Grapasset通过应用管理流程请求卸载。功能名与操作范围必须逐项区分。[N1]

主页Pourenc处理notify_action_id,并在onNewIntent重复分发;双击返回的时间门槛为2秒。普通启动与通知回流使用同一主页,但有不同上下文,不能把一次首启广告代表所有回流场景。[N2]

本包已独立核对本地日口径:DDDD.DB8D以当前时区偏移求午夜,DB999.DB99把它拼入date_count_new_+ID的存储键。新一天读取新的默认配额,不等于后台执行了清零Job。[N3/N4]

每ID最后通知时间、全局/主页通知时间、上次主页ID和日期剩余数分开存储。图片异步加载与notify延迟是展示阶段;只有出现notify/成功回调才能进一步判断计数写回,不能把候选被选中当作已送达。

工厂会随机打乱文案候选,按可选参数格式化;通知点击追加notify_click_type与notify_from_type。当前仍有局部字节变量未静态解码和反编译可疑控制流,相关字段保持U,不按空值处理。[N5]

点击请求码与通知ID分开:D8按clickType为PendingIntent生成不同请求码,构建时仍把beanId作为notify_id传递;不能把请求码偏移当新增业务通知ID。点击类型1有+100分支,点击类型4使用命名常量偏移,本轮不硬填该常量数值。[N5/N9]

控制流复核与广告调度边界#

本次确认通知入口继续携带notify_action_id和notify_from_type,主页从onCreate初始化或onNewIntent进入分发。对应工具、权限和结果页必须在有相应上下文的路径上核验广告;没有从Ace复制恢复组件或广告规则。

首启GMA是本包S3事实,其他SDK仍按集成迹象。广告加载/展示的完整计数、线上槽位配置和所有回调尚未闭合,这部分保留明确缺口;已恢复的产品与通知主链可继续用于定向追查,不能用SDK数量代替商业化分析。

代码保留混淆名与工具错误标记。A编号沿用已核证据,N编号为本轮新增回查;simple输出是独立指令阅读副本,不能用文件存在/退出码0替代方法语义核验。

原有代码锚点 A#

编号 证明内容 本地源位置 核验
A1 Adjust回调 jadx-repair/sources/DB9B/BDBD.java:308–331 已回读
A2 Referrer组合及分流 jadx-repair/sources/DB9B/BDBD.java:517–553 已回读
A3 常驻FGS19001及回退 jadx-repair/sources/com/eduspot/clean/notify/service/NotificationService.java:137–180 已回读
A4 普通通知轮询 jadx-repair/sources/DB98/DB998.java:43–82 已回读
A5 常驻构建 jadx-repair/sources/DB98/DB98D.java:59–88 已回读
A6 每类回退Pair jadx-repair/sources/D8DD9/BDDD.java:25–43 已回读
A7 随机/配额/间隔候选过滤 jadx-repair/sources/DB98/BBB.java:412–510 已回读
A8 FCM入口与Token回调 jadx-repair/sources/com/eduspot/clean/notify/service/MyFirebaseMessagingService.java:18–48 已回读
A9 业务对象与ID绑定 jadx-repair/sources/BBBB8/DB8D.java:597–618 已回读
A10 普通通知候选注册 jadx-repair/sources/BBBB8/DB8D.java:705–735 已回读
A11 120与6默认参数读取 jadx-repair/sources/DB98B/DB99.java:1525–1537 已回读

本轮补充代码锚点 N#

编号 证明内容 本地源位置 核验
N1 照片隐私标题与位置历史删除确认 jadx-repair/sources/subgrill/mecriou/statesolem/hooemen/sundishe/anectrenc/ArthtablActivity.java:384–412 已回读
N2 主页处理actionId及初始化 jadx-repair/sources/subgrill/mecriou/statesolem/hooemen/sundishe/grineal/PourencActivity.java:108–129 已回读
N3 本地午夜与上一日时间 jadx-repair/sources/DDDD/DB8D.java:12–35 已回读
N4 每ID日期额度、时间与上次ID存储 jadx-repair/sources/DB999/DB99.java:65–141 已回读
N5 候选文案格式化和点击参数 jadx-repair/sources/BBBB8/DB8D.java:637–676 已回读
N6 两秒返回与onNewIntent通知重分发 jadx-repair/sources/subgrill/mecriou/statesolem/hooemen/sundishe/grineal/PourencActivity.java:205–229 已回读
N7 B9单行四个通知对象与独立候选资源 jadx-repair/sources/BBBB8/DB8D.java:693–702 已回读
N8 BD9单行九个通知对象与100060等候选池 jadx-repair/sources/BBBB8/DB8D.java:805–806 已回读
N9 点击类型改变PendingIntent请求码的辅助函数 jadx-repair/sources/BBBB8/DB8D.java:870–872 已回读

便于开发阅读的等价逻辑#

以下使用语义名称重述已核对控制流,不是竞品原始源码;它与A/N原位置配合阅读。尚未闭合的下游保留抽象调用,不填造执行结果。

localDay = floor((nowMillis + timezoneOffset) / DAY) * DAY - timezoneOffset
remainingKey = "date_count_new_" + notificationId + localDay
remaining = readInt(remainingKey, configuredQuota)
// 新一天换键,不假设存在午夜清零Job
candidateText = randomElement(factoryTextCandidates)
formatted = optionalParameter.isEmpty ? getString(candidateText) : getString(candidateText, optionalParameter)
intent.putExtra("notify_click_type", clickType)
intent.putExtra("notify_from_type", notificationSource)
setPendingIntent(intent)
// 最终notify、计数写回和系统可见分别复核
onMainNewIntent(intent) -> read("notify_action_id") -> dispatchTool()

一方后台与通知关键实现#

A1 · Adjust回调#

位置:DB9B/BDBD.java:308–331。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

        if (str.length() > 0) {
            adjustConfig.setFbAppId(str);
        }
        adjustConfig.enableCostDataInAttribution();
        adjustConfig.enableSendingInBackground();
        if (bbd.BD8().DB99()) {
            adjustConfig.setLogLevel(LogLevel.VERBOSE);
        } else {
            adjustConfig.setLogLevel(LogLevel.WARN);
        }
        adjustConfig.setOnAttributionChangedListener(new OnAttributionChangedListener() { // from class: DB9B.DB998
            @Override // com.adjust.sdk.OnAttributionChangedListener
            public final void onAttributionChanged(AdjustAttribution adjustAttribution) {
                BDBD.D8(adjustAttribution);
            }
        });
        Adjust.getAttribution(new OnAttributionReadListener() { // from class: DB9B.DB8D
            @Override // com.adjust.sdk.OnAttributionReadListener
            public final void onAttributionRead(AdjustAttribution adjustAttribution) {
                BDBD.D9(adjustAttribution);
            }
        });
        Adjust.initSdk(adjustConfig);
        bbd.B9().registerActivityLifecycleCallbacks(new BBB());

A2 · Referrer组合及分流#

位置:DB9B/BDBD.java:517–553。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final void DB988(String str, String str2) {
        Object objM3550constructorimpl;
        Intrinsics.checkNotNullParameter(str, "url");
        Intrinsics.checkNotNullParameter(str2, "perceantag");
        if (!str2.equals("romatris")) {
            BDD8(str);
        }
        try {
            Result.Companion companion = Result.Companion;
            List listSplit$default = StringsKt.split$default((CharSequence) str, new String[]{"&"}, false, 0, 6, (Object) null);
            if (!listSplit$default.isEmpty()) {
                List list = listSplit$default;
                if (!(list instanceof Collection) || !list.isEmpty()) {
                    Iterator it = list.iterator();
                    while (true) {
                        if (!it.hasNext()) {
                            break;
                        }
                        if (StringsKt.contains$default((CharSequence) it.next(), (CharSequence) "utm_source=apps.facebook.com", false, 2, (Object) null)) {
                            List list2 = listSplit$default;
                            if (!(list2 instanceof Collection) || !list2.isEmpty()) {
                                Iterator it2 = list2.iterator();
                                while (true) {
                                    if (!it2.hasNext()) {
                                        break;
                                    }
                                    if (StringsKt.contains$default((CharSequence) it2.next(), (CharSequence) "utm_campaign=", false, 2, (Object) null)) {
                                        List list3 = listSplit$default;
                                        if (!(list3 instanceof Collection) || !list3.isEmpty()) {
                                            Iterator it3 = list3.iterator();
                                            while (it3.hasNext()) {
                                                if (StringsKt.contains$default((CharSequence) it3.next(), (CharSequence) "utm_content=", false, 2, (Object) null)) {
                                                    if (DDDD.BBD.f19923DB99.DB99B() != 2) {
                                                        B8DB9.BBB.B8DB8(B8DB9.BBB.f5147DB99, null, 1, null);
                                                        BBB8(56449605, new Pair[0]);
                                                        BBB8(56450160, new Pair[0]);
                                                    }

A3 · 常驻FGS19001及回退#

位置:com/eduspot/clean/notify/service/NotificationService.java:137–180。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final void DB8D() {
        DB98D db98d = DB98D.f18021DB99;
        db98d.DB98D();
        DB998.f18026DB99.BBB();
        int iBBD = Build.VERSION.SDK_INT >= 29 ? BBD.f19923DB99.BD8().BBD() : 0;
        Notification notificationBBB = db98d.BBB();
        if (notificationBBB == null) {
            notificationBBB = DB998();
        }
        f22872BBB = true;
        try {
            ServiceCompat.startForeground(this, 19001, notificationBBB, iBBD);
            DB98B.f19928DB99.DB999("fgTag", "ServiceCompat.startForeground success");
        } catch (Throwable th) {
            th.printStackTrace();
            f22872BBB = false;
            Application applicationB = DB999.f18032DB99.B();
            if (applicationB != null) {
                f22874DB98.DB998(applicationB);
            }
        }
    }

    public final Notification DB998() {
        NotificationChannel notificationChannel = new NotificationChannel("fallback_channel", "Fallback Service", 2);
        Object systemService = getSystemService("notification");
        Intrinsics.checkNotNull(systemService, "null cannot be cast to non-null type android.app.NotificationManager");
        ((NotificationManager) systemService).createNotificationChannel(notificationChannel);
        Notification notificationBuild = new NotificationCompat.Builder(this, "fallback_channel").setContentTitle("Service running").setSmallIcon(R.drawable.stat_notify_sync).build();
        Intrinsics.checkNotNullExpressionValue(notificationBuild, "build(...)");
        return notificationBuild;
    }

    @Override // android.app.Service
    public IBinder onBind(Intent intent) {
        return this.f22877DB99;
    }

    @Override // android.app.Service
    public void onCreate() {
        super.onCreate();
        DB98B.f19928DB99.DB999("fgTag", "onCreate");
    }

A4 · 普通通知轮询#

位置:DB98/DB998.java:43–82。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

        public final Object invokeSuspend(Object obj) {
            long jBDDB;
            Object coroutine_suspended = IntrinsicsKt.getCOROUTINE_SUSPENDED();
            int i = this.f18027DB99;
            if (i != 0 && i != 1) {
                throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
            }
            ResultKt.throwOnFailure(obj);
            do {
                "PermanentNotification";
                "sendNormalNotification";
                DB998.f18026DB99.DB98();
                jBDDB = ((long) DB999.BDDB(DB999.f18032DB99, null, 1, null)) * 1000;
                this.f18027DB99 = 1;
            } while (DelayKt.delay(jBDDB, this) != coroutine_suspended);
            return coroutine_suspended;
        }

        @Override // kotlin.jvm.functions.Function2
        /* JADX INFO: renamed from: invoke, reason: merged with bridge method [inline-methods] */
        public final Object mo1invoke(CoroutineScope coroutineScope, Continuation continuation) {
            return ((DB99) create(coroutineScope, continuation)).invokeSuspend(Unit.INSTANCE);
        }
    }

    public final void BBB() {
        Job job = f18025DB98;
        if (job == null || !job.isActive()) {
            f18025DB98 = BuildersKt__Builders_commonKt.launch$default(CoroutineScopeKt.CoroutineScope(Dispatchers.getIO()), null, null, new DB99(null), 3, null);
        }
    }

    public final void DB98() {
        BBB bbb = BBB.f17993DB99;
        DB999 db999 = DB999.f18032DB99;
        if (BBB.B9(bbb, db999.DB99B(), "3", null, 4, null)) {
            return;
        }
        BBB.B9(bbb, db999.BDD(), "3", null, 4, null);
    }

A5 · 常驻构建#

位置:DB98/DB98D.java:59–88。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final Notification BBD(RemoteViews remoteViews) {
        Application applicationB;
        DB999 db999 = DB999.f18032DB99;
        Notification.Builder builder = new Notification.Builder(db999.B(), DB999.BBB9(db999, 0, 1, null));
        if (db999.D8BBB() != 0) {
            builder.setSmallIcon(db999.D8BBB());
        }
        if (DB999.BBD8(db999, 0, 1, null) != 0 && (applicationB = db999.B()) != null) {
            builder.setColor(ContextCompat.getColor(applicationB, DB999.BBD8(db999, 0, 1, null)));
        }
        builder.setShowWhen(true);
        builder.setWhen(System.currentTimeMillis());
        builder.setVisibility(1);
        builder.setCustomContentView(remoteViews);
        builder.setContent(remoteViews);
        builder.setCustomBigContentView(remoteViews);
        builder.setStyle(new Notification.DecoratedCustomViewStyle());
        builder.setOnlyAlertOnce(true);
        builder.setOngoing(true);
        builder.setGroup(db999.DB989());
        if (DB999.DD(db999, 0.0f, 1, null)) {
            if (db999.B() != null) {
                builder.setContentTitle("Notification");
                builder.setContentText("News");
            }
            builder.setNumber(1);
        }
        Notification notificationBuild = builder.build();
        Intrinsics.checkNotNullExpressionValue(notificationBuild, "build(...)");
        return notificationBuild;

A6 · 每类回退Pair#

位置:D8DD9/BDDD.java:25–43。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final Pair BBB(int i, float f) {
        if (f != 0.0f) {
            BBD(this, i, 0.0f, 2, null);
        }
        String strBBBB = DB98B.DB99.f18318DB99.BBBB();
        if (strBBBB.length() == 0) {
            return new Pair(5, 900);
        }
        JSONArray jSONArray = new JSONArray(strBBBB);
        int length = jSONArray.length();
        for (int i2 = 0; i2 < length; i2++) {
            JSONObject jSONObjectOptJSONObject = jSONArray.optJSONObject(i2);
            if (jSONObjectOptJSONObject.optInt("id") == i) {
                DDDD.BBD bbd = DDDD.BBD.f19923DB99;
                DDDD.DB998 db998 = DDDD.DB998.f19984DB99;
                return new Pair(Integer.valueOf(jSONObjectOptJSONObject.optInt(bbd.DB9B(db998.BDD()), 5)), Integer.valueOf(jSONObjectOptJSONObject.optInt(bbd.DB9B(db998.BD()), 900)));
            }
        }
        return new Pair(5, 900);

A7 · 随机/配额/间隔候选过滤#

位置:DB98/BBB.java:412–510。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

        List list2 = list;
        if (list2 != null && !list2.isEmpty()) {
            byte b = 94;
            byte b2 = 95;
            if (Intrinsics.areEqual(str, "3") || Intrinsics.areEqual(str, "2")) {
                if (f17991BBD) {
                    return false;
                }
                f17991BBD = true;
            }
            List listShuffled = CollectionsKt.shuffled(list);
            long jBBD = DB999.DB99.BBD(DB999.DB99.f18354DB99, false, 1, null);
            "Creactiv";
            "curtime: ";
            DB98.DB999 db999 = DB98.DB999.f18032DB99;
            db999.BD8();
            " allLastSendTime:";
            " from:";
            " allInterval: ";
            db999.B8DBD();
            byte b3 = 92;
            if (db999.BD8() - jBBD < db999.B8DBD() && !Intrinsics.areEqual(str, "1")) {
                if (Intrinsics.areEqual(str, "3") || Intrinsics.areEqual(str, "2")) {
                    f17991BBD = false;
                }
                return false;
            }
            List<DBBB.DB998> list3 = listShuffled;
            ArrayList arrayList = new ArrayList();
            for (Object obj : list3) {
                DBBB.DB998 db998 = (DBBB.DB998) obj;
                DB999.DB99 db99 = DB999.DB99.f18354DB99;
                int iDB998 = db99.DB998();
                byte b4 = b;
                byte b5 = b2;
                int iDB999 = db99.DB999(db998.B8DBD(), db998.DB8B());
                "Creactiv";
                "notifyId: ";
                db998.B8DBD();
                " dateMaxCount: ";
                db998.DB8B();
                "Creactiv";
                "shuffleList size: ";
                listShuffled.size();
                " lastShowNotificationId: ";
                " curDateCount: ";
                if (iDB999 > 0 && iDB998 != db998.B8DBD()) {
                    arrayList.add(obj);
                }
                b = b4;
                b2 = b5;
            }
            byte b6 = b;
            byte b7 = b2;
            "Creactiv";
            "noSameData isEmpty: ";
            arrayList.isEmpty();
            if (arrayList.isEmpty()) {
                ArrayList arrayList2 = new ArrayList();
                for (Object obj2 : list3) {
                    DBBB.DB998 db9982 = (DBBB.DB998) obj2;
                    if (DB999.DB99.f18354DB99.DB999(db9982.B8DBD(), db9982.DB8B()) > 0) {
                        arrayList2.add(obj2);
                    }
                }
                if (arrayList2.isEmpty()) {
                    for (DBBB.DB998 db9983 : list3) {
                        DB999.DB99.BDD9(DB999.DB99.f18354DB99, db9983.B8DBD(), db9983.DB8B(), false, 4, null);
                    }
                }
            }
            if (!arrayList.isEmpty()) {
                listShuffled = arrayList;
            }
            List<DBBB.DB998> list4 = listShuffled;
            "Creactiv";
            "triggerList size: ";
            list4.size();
            for (DBBB.DB998 db9984 : list4) {
                DB999.DB99 db992 = DB999.DB99.f18354DB99;
                long jDB8D = db992.DB8D(db9984.B8DBD());
                int iDB9992 = db992.DB999(db9984.B8DBD(), db9984.DB8B());
                long jBBD2 = DB999.DB99.BBD(db992, false, 1, null);
                db9984.DB99D(str);
                "Creactiv";
                "notifyId: ";
                db9984.B8DBD();
                " lastSendTime: ";
                " lastSendTime: ";
                " canSend: ";
                db9984.DB998();
                " isApplicationForeground: ";
                DB98.DB999 db9992 = DB98.DB999.f18032DB99;
                db9992.D8BD9();
                " lt: ";
                db9984.DB8B();
                byte b8 = b3;
                " fromType: ";
                db9984.DB98B();

A8 · FCM入口与Token回调#

位置:com/eduspot/clean/notify/service/MyFirebaseMessagingService.java:18–48。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public void onMessageReceived(RemoteMessage message) {
        Intrinsics.checkNotNullParameter(message, "message");
        super.onMessageReceived(message);
        Map data = message.getData();
        Intrinsics.checkNotNullExpressionValue(data, "getData(...)");
        String messageId = message.getMessageId();
        if (messageId == null) {
            messageId = "";
        }
        String str = (String) data.get("intent");
        if (str == null) {
            str = "";
        }
        String str2 = (String) data.get("sid");
        String str3 = str2 != null ? str2 : "";
        DB999 db999 = DB999.f18032DB99;
        db999.DDD9(101094, TuplesKt.to("message_id", messageId), TuplesKt.to("type", str), TuplesKt.to("sid", str3));
        if (DB999.B98DD(db999, 0.0f, 1, null) || !db999.B8DDD()) {
            return;
        }
        db999.DDD8(str);
    }

    @Override // com.google.firebase.messaging.FirebaseMessagingService
    public void onNewToken(String token) {
        Intrinsics.checkNotNullParameter(token, "token");
        super.onNewToken(token);
        BBD bbd = BBD.f19923DB99;
        bbd.B8DDD(token);
        bbd.B8DDB(System.currentTimeMillis());
        DB98.BBD(DB98.f19926DB99, bbd.B9(), token, false, 4, null);

A9 · 业务对象与ID绑定#

位置:BBBB8/DB8D.java:597–618。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final DBBB.DB998 B8DB9(int i, List list, int i2, int i3, int i4, String str, boolean z) {
        return B8DBB(this, list, ((Number) r1.getSecond()).intValue(), ((Number) D9DB9.BDDD.f17504DB99.DB99(i).getFirst()).intValue(), i2, i3, i + 100000, i4, str, "3", null, null, z, 0, 0, 0, 30208, null);
    }

    public final DBBB.DB998 B8DBD(final List list, long j, int i, int i2, int i3, int i4, int i5, String str, String str2, String str3, final String str4, boolean z, int i6, int i7, int i8) {
        DBBB.DB998 db998 = new DBBB.DB998();
        db998.BD(j);
        db998.B8DB9(i);
        db998.BD8(R$mipmap.missiaug);
        db998.BDDD(i6);
        db998.B9(i7);
        db998.BDB(i8);
        db998.DB9B(i2);
        db998.B(i3);
        db998.BDD(i4);
        db998.BB(i5);
        db998.DB99B(str);
        db998.D(str3);
        db998.B8DB8(z);
        db998.DB99D(str2);
        db998.BD9(f6180DB99.BDB(db998));
        db998.BDDB(new Function5() { // from class: BBBB8.DB98

A10 · 普通通知候选注册#

位置:BBBB8/DB8D.java:705–735。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final List BB() {
        ArrayList arrayList = new ArrayList();
        D9DB9.BDDD bddd = D9DB9.BDDD.f17504DB99;
        Pair pairDB99 = bddd.DB99(8);
        DB8D db8d = f6180DB99;
        arrayList.add(B8DBB(db8d, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.declippoin), Integer.valueOf(R$string.logrtai), Integer.valueOf(R$string.toxccu), Integer.valueOf(R$string.hugusias), Integer.valueOf(R$string.acrcue)}), ((Number) pairDB99.getSecond()).intValue(), ((Number) pairDB99.getFirst()).intValue(), R$string.scopodwil, R$drawable.accorna, 100008, 1, "com.eduspot.antivirus.clean_junk_clean", "3", null, null, false, 0, 0, 0, 32256, null));
        Pair pairDB992 = bddd.DB99(7);
        List listListOf = CollectionsKt.listOf(Integer.valueOf(R$string.greathiv));
        long jIntValue = ((Number) pairDB992.getSecond()).intValue();
        int iIntValue = ((Number) pairDB992.getFirst()).intValue();
        int i = R$string.scopodwil;
        int i2 = R$drawable.accorna;
        BDD9D.DB98 db98 = BDD9D.DB98.f7347DB99;
        arrayList.add(BDD9(db8d, listListOf, jIntValue, iIntValue, i, i2, 100007, 1, "com.eduspot.antivirus.clean_junk_clean", "3", null, db98.BBB(), db98.BDD8(), 512, null));
        arrayList.add(B8DBB(db8d, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.advothfu), Integer.valueOf(R$string.contslip), Integer.valueOf(R$string.moulerenc)}), ((Number) r4.getSecond()).intValue(), ((Number) bddd.DB99(9).getFirst()).intValue(), R$string.scopodwil, R$drawable.mildien, 100009, 2, "com.eduspot.antivirus.clean_big_file", "3", null, null, false, 0, 0, 0, 32256, null));
        arrayList.add(B8DBB(db8d, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.refetin), Integer.valueOf(R$string.exttas), Integer.valueOf(R$string.orthglov), Integer.valueOf(R$string.promiaris), Integer.valueOf(R$string.linktak)}), ((Number) r4.getSecond()).intValue(), ((Number) bddd.DB99(10).getFirst()).intValue(), R$string.trucadfu, R$drawable.fabuoyabl, 100010, 3, "com.eduspot.antivirus.clean_app_manage", "3", null, null, false, 0, 0, 0, 32256, null));
        arrayList.add(B8DBB(db8d, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.domesuls), Integer.valueOf(R$string.intnito), Integer.valueOf(R$string.autngl), Integer.valueOf(R$string.dwellora), Integer.valueOf(R$string.fragbat), Integer.valueOf(R$string.cheftio), Integer.valueOf(R$string.delieven)}), ((Number) r4.getSecond()).intValue(), ((Number) bddd.DB99(11).getFirst()).intValue(), R$string.trucadfu, R$drawable.preprova, 100011, 4, "com.eduspot.antivirus.clean_virus_scan", "3", null, null, db98.B8DBB(), 0, 0, 0, 30208, null));
        arrayList.add(DB99D(this, 12, CollectionsKt.listOf(Integer.valueOf(R$string.heismar)), R$string.trucadfu, R$drawable.infeructiv, 13, "com.eduspot.antivirus.clean_photo", false, 64, null));
        arrayList.add(DB99D(this, 13, CollectionsKt.listOf(Integer.valueOf(R$string.hyptlin)), R$string.trucadfu, R$drawable.influtir, 14, "com.eduspot.antivirus.clean_video", false, 64, null));
        arrayList.add(DB99D(this, 14, CollectionsKt.listOf(Integer.valueOf(R$string.terreupia)), R$string.trucadfu, R$drawable.expoevis, 15, "com.eduspot.antivirus.clean_audio", false, 64, null));
        arrayList.add(DB99D(this, 15, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.acchuttl), Integer.valueOf(R$string.adoshe)}), R$string.illuape, R$drawable.promisig, 18, "com.eduspot.antivirus.clean_compress_picture", false, 64, null));
        arrayList.add(DB99D(this, 16, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.compmmut), Integer.valueOf(R$string.crawentio)}), R$string.scopodwil, R$drawable.dismatch, 5, "com.eduspot.antivirus.clean_duplicate_picture", false, 64, null));
        arrayList.add(B8DBB(db8d, CollectionsKt.listOf(Integer.valueOf(R$string.sharecraf)), ((Number) r4.getSecond()).intValue(), ((Number) bddd.DB99(17).getFirst()).intValue(), R$string.scopodwil, R$drawable.resomwor, 100017, 19, "com.eduspot.antivirus.clean_notification_clear", "3", null, null, !db98.DB98B(), 0, 0, 0, 30208, null));
        arrayList.add(BDD(db8d, CollectionsKt.listOf(Integer.valueOf(R$string.revoenc)), ((Number) r4.getSecond()).intValue(), ((Number) bddd.DB99(18).getFirst()).intValue(), R$string.belurtai, R$drawable.condinfe, 100018, 19, "com.eduspot.antivirus.clean_notification_clear", "3", null, String.valueOf(db98.DB999()), db98.DB98B(), 512, null));
        arrayList.add(B8DB9(19, CollectionsKt.listOf(Integer.valueOf(R$string.enqulowe)), R$string.vitdull, R$drawable.calibit, 8, "com.eduspot.antivirus.clean_permission_management", !bddd.DB8D()));
        arrayList.add(BDDB(db8d, CollectionsKt.listOf(Integer.valueOf(R$string.deltavol)), ((Number) r2.getSecond()).intValue(), ((Number) bddd.DB99(20).getFirst()).intValue(), R$string.vitdull, R$drawable.contrslip, 100020, 8, "com.eduspot.antivirus.clean_permission_management", "3", null, String.valueOf(bddd.DB98()), bddd.DB8D(), 512, null));
        arrayList.add(DB99D(this, 21, CollectionsKt.listOf((Object[]) new Integer[]{Integer.valueOf(R$string.impecolum), Integer.valueOf(R$string.heliria)}), R$string.scopodwil, R$drawable.autrsit, 9, "com.eduspot.antivirus.clean_photo_privacy_clear", false, 64, null));
        arrayList.add(DB99D(this, 22, CollectionsKt.listOf(Integer.valueOf(R$string.holispulac)), R$string.illuape, R$drawable.scatitat, 10, "com.eduspot.antivirus.clean_video_compressor", false, 64, null));
        arrayList.add(DB99D(this, 23, CollectionsKt.listOf(Integer.valueOf(R$string.arcmat)), R$string.scopodwil, R$drawable.reviero, 7, "com.eduspot.antivirus.clean_duplicate_file", false, 64, null));
        arrayList.add(B8DB9(25, CollectionsKt.listOf(Integer.valueOf(R$string.exceroup)), R$string.scopodwil, R$drawable.acquanair, 16, "com.eduspot.antivirus.clean_whatsapp_clean", B8DBD.f17465DB99.BD9()));
        arrayList.add(DB99D(this, 26, CollectionsKt.listOf(Integer.valueOf(R$string.scruprman)), R$string.gigaerwor, R$drawable.grabdpoin, 12, "com.eduspot.antivirus.clean_secure_browser", false, 64, null));

A11 · 120与6默认参数读取#

位置:DB98B/DB99.java:1525–1537。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    }

    public final int D8DD8(String str) {
        Intrinsics.checkNotNullParameter(str, "expaotio");
        if (!str.equals("swelorea")) {
            D8DD9(this, null, 1, null);
        }
        return DB999.DB998(BBD.f19923DB99, f18264B8DDD, 120, false, 4, null);
    }

    public final int D8DDB() {
        return DB999.DB998(BBD.f19923DB99, f18263B8DDB, 6, false, 4, null);
    }

本轮新增实现与修复片段#

N1 · 照片隐私标题与位置历史删除确认#

位置:subgrill/mecriou/statesolem/hooemen/sundishe/anectrenc/ArthtablActivity.java:384–412。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

        ((AnatoonisBinding) B9()).f28035BBD.setText(getString(R$string.herdstin));
        Group taralcon = ((AnatoonisBinding) B9()).f28031B8DBB;
        Intrinsics.checkNotNullExpressionValue(taralcon, "taralcon");
        taralcon.setVisibility(8);
        TextView accrobus = BD8BB().f28392DB98;
        Intrinsics.checkNotNullExpressionValue(accrobus, "accrobus");
        accrobus.setVisibility(8);
    }

    public final void B89DD(int i) {
        BDB9B.DB99 db99 = (BDB9B.DB99) CollectionsKt.getOrNull(BD8B8().getItems(), i);
        if (db99 != null) {
            db99.BBD(!db99.BBB());
            BD8B8().notifyItemChanged(i);
            B89B();
        }
    }

    public final void B8B88() {
        List items = BD8B8().getItems();
        ArrayList arrayList = new ArrayList();
        for (Object obj : items) {
            if (((BDB9B.DB99) obj).BBB()) {
                arrayList.add(obj);
            }
        }
        Implspasm.f29108DB999.DB99(this, new Ensueaisl(getString(R$string.arranalis), getString(R$string.carrtrive), getString(R$string.goamati), getString(R$string.sympagin), null, null, false, null, null, 496, null), new BBB(arrayList));
    }

N2 · 主页处理actionId及初始化#

位置:subgrill/mecriou/statesolem/hooemen/sundishe/grineal/PourencActivity.java:108–129。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final void BD8DB(int i, Intent intent, boolean z) {
        if (i == 0) {
            DDDD(z);
        } else {
            DBBB(i, intent);
        }
    }

    public final void BD8DD(Intent intent, boolean z) {
        String action = intent.getAction();
        int intExtra = intent.getIntExtra("notify_action_id", 0);
        B.DB999("notify_tag", "main form action = " + action + " actionId = " + intExtra);
        BD8DB(intExtra, intent, z);
    }

    @Override // subgrill.mecriou.statesolem.hooemen.laxrat.ManuexileActivity
    public void BDDD() {
        super.BDDD();
        B9B8D.DB99.f5786DB99.DB99(DDDDD.DB99.DB99(), new Pair[0]);
        Intent intent = getIntent();
        Intrinsics.checkNotNullExpressionValue(intent, "getIntent(...)");
        D8DDD(this, intent, false, 2, null);

N3 · 本地午夜与上一日时间#

位置:DDDD/DB8D.java:12–35。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public static /* synthetic */ long BBB(DB8D db8d, boolean z, int i, Object obj) {
        if ((i & 1) != 0) {
            z = false;
        }
        return db8d.DB98(z);
    }

    public final long BBD() {
        return BBB(this, false, 1, null) - 86400000;
    }

    public final long DB98(boolean z) {
        if (z) {
            DB99();
        }
        long jCurrentTimeMillis = System.currentTimeMillis();
        long offset = TimeZone.getDefault().getOffset(jCurrentTimeMillis);
        return (((jCurrentTimeMillis + offset) / 86400000) * 86400000) - offset;
    }

    public final long DB99() {
        long jCurrentTimeMillis = System.currentTimeMillis();
        long offset = TimeZone.getDefault().getOffset(jCurrentTimeMillis);
        return (((jCurrentTimeMillis + offset) / 86400000) * 86400000) - offset;

N4 · 每ID日期额度、时间与上次ID存储#

位置:DB999/DB99.java:65–141。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final void B8DBB(int i, long j, boolean z) {
        int i2;
        long j2;
        if (!z) {
            i2 = i;
            j2 = j;
            B8(this, i2, j2, false, 4, null);
        } else {
            i2 = i;
            j2 = j;
        }
        DB999.BD8D9(DB999.f18032DB99, f18351BBB + i2, j2, null, 4, null);
    }

    public final long BBB(boolean z) {
        if (z) {
            DB99();
        }
        return DB999.f18032DB99.BDB(f18353DB98, 0L);
    }

    public final void BDBB(int i, int i2, boolean z) {
        if (z) {
            DB98(i, i2);
        }
        DB999.f18032DB99.BBDD(f18352BBD + i + DB8D.BBB(DB8D.f19924DB99, false, 1, null), i2);
    }

    public final void BDD8(int i, int i2) {
        if (i2 != 1537811004) {
            B8DBD(this, i, 0, 2, null);
        }
        DB999.f18032DB99.BBDD(f18356DB999, i);
    }

    public final boolean DB8B() {
        DB999 db999 = DB999.f18032DB99;
        StringBuilder sb = new StringBuilder();
        sb.append(f18355DB998);
        sb.append(DB8D.BBB(DB8D.f19924DB99, false, 1, null));
        return DB999.BB(db999, sb.toString(), 0, 0.0f, 4, null) == 1;
    }

    public final long DB8D(int i) {
        return DB999.f18032DB99.BDB(f18351BBB + i, 0L);
    }

    public final void DB98(int i, int i2) {
        DB999.f18032DB99.BBDD(f18352BBD + i + DB8D.BBB(DB8D.f19924DB99, false, 1, null), i2);
    }

    public final void DB98B() {
        DB999.f18032DB99.BBDD(f18355DB998 + DB8D.BBB(DB8D.f19924DB99, false, 1, null), 1);
    }

    public final void DB98D(long j, String str) {
        long j2;
        Intrinsics.checkNotNullParameter(str, "constmpe");
        if (str.equals("comtiv")) {
            j2 = j;
        } else {
            j2 = j;
            BDBD(this, j2, null, 2, null);
        }
        DB999.BD8D9(DB999.f18032DB99, f18353DB98, j2, null, 4, null);
    }

    public final long DB99() {
        return DB999.f18032DB99.BDB(f18353DB98, 0L);
    }

    public final int DB998() {
        return DB999.BB(DB999.f18032DB99, f18356DB999, -1, 0.0f, 4, null);
    }

    public final int DB999(int i, int i2) {
        return DB999.BB(DB999.f18032DB99, f18352BBD + i + DB8D.BBB(DB8D.f19924DB99, false, 1, null), i2, 0.0f, 4, null);

N5 · 候选文案格式化和点击参数#

位置:BBBB8/DB8D.java:637–676。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final void B8DD8(Context context, RemoteViews remoteViews, DBBB.DB998 db998, String str, List list, String str2) {
        String str3;
        int iIntValue = ((Number) CollectionsKt.first(CollectionsKt.shuffled(list))).intValue();
        if (iIntValue == -1) {
            str3 = "";
        } else {
            String string = (str2 == null || str2.length() == 0) ? context.getString(iIntValue) : context.getString(iIntValue, str2);
            Intrinsics.checkNotNull(string);
            str3 = string;
        }
        remoteViews.setImageViewResource(R$id.friaugh, db998.BDBB());
        remoteViews.setTextViewText(R$id.stammbiase, context.getString(db998.DB999()));
        Intent intent = null;
        if (Intrinsics.areEqual(str, "4") && DBBB.DB8D.DB98(DBBB.DB8D.f18670DB99, 0.0f, 1, null)) {
            try {
                Result.Companion companion = Result.Companion;
                remoteViews.setViewVisibility(R$id.impachazar, 0);
                Result.m3550constructorimpl(Unit.INSTANCE);
            } catch (Throwable th) {
                Result.Companion companion2 = Result.Companion;
                Result.m3550constructorimpl(ResultKt.createFailure(th));
            }
        }
        CharSequence charSequenceDB8D = str3;
        if (db998.B8DBD() == 100003) {
            BDBB bdbb = BDBB.f17492DB99;
            if (str2 == null) {
                str2 = "";
            }
            charSequenceDB8D = bdbb.DB8D(str2, str3, ContextCompat.getColor(context, R$color.invive));
        }
        remoteViews.setTextViewText(R$id.embsee, charSequenceDB8D);
        int iD8 = D8(str, db998.B8DBD());
        Intent intentDB98 = db998.DB98();
        if (intentDB98 != null) {
            intentDB98.putExtra("notify_click_type", str);
            intentDB98.putExtra("notify_from_type", db998.DB98B());
            intent = intentDB98;
        }
        remoteViews.setOnClickPendingIntent(R$id.uttermat, B(context, iD8, intent));

N6 · 两秒返回与onNewIntent通知重分发#

位置:subgrill/mecriou/statesolem/hooemen/sundishe/grineal/PourencActivity.java:205–229。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。


    @Override // androidx.activity.ComponentActivity, android.app.Activity
    public void onBackPressed() {
        if (System.currentTimeMillis() - this.f29596DB998 < 2000) {
            B8DBD.f17465DB99.BD8(this, new Function0() { // from class: BDD89.DB98
                @Override // kotlin.jvm.functions.Function0
                public final Object invoke() {
                    return PourencActivity.D8DDB(this.f7303DB99);
                }
            });
        } else {
            Toast.makeText(this, R$string.leverultan, 0).show();
            this.f29596DB998 = System.currentTimeMillis();
        }
    }

    @Override // androidx.activity.ComponentActivity, android.app.Activity
    public void onNewIntent(Intent intent) {
        Intrinsics.checkNotNullParameter(intent, "intent");
        super.onNewIntent(intent);
        B.DB999("notify_tag", "main onNewIntent " + intent.getAction());
        if (intent.getIntExtra("notify_action_id", 0) > 0) {
            B9B8D.DB99.f5786DB99.DB99(DDDDD.DB99.DB99(), new Pair[0]);
        }
        BD8DD(intent, true);

N7 · B9单行四个通知对象与独立候选资源#

位置:BBBB8/DB8D.java:693–702。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final List B9() {
        D9DB9.BDDD bddd = D9DB9.BDDD.f17504DB99;
        Pair pairDB99 = bddd.DB99(4);
        List listListOf = CollectionsKt.listOf(Integer.valueOf(R$string.awfuriat));
        long jIntValue = ((Number) pairDB99.getSecond()).intValue();
        int iIntValue = ((Number) pairDB99.getFirst()).intValue();
        int i = R$string.trucadfu;
        int i2 = R$drawable.preprova;
        BDD9D.DB98 db98 = BDD9D.DB98.f7347DB99;
    // 长配置或元数据行省略;回到源位置核验。

N8 · BD9单行九个通知对象与100060等候选池#

位置:BBBB8/DB8D.java:805–806。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final List BD9() {
    // 长配置或元数据行省略;回到源位置核验。

N9 · 点击类型改变PendingIntent请求码的辅助函数#

位置:BBBB8/DB8D.java:870–872。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。

    public final int D8(String str, int i) {
        return Intrinsics.areEqual(str, "1") ? i + 100 : Intrinsics.areEqual(str, "4") ? i + MaterialCardViewHelper.DEFAULT_FADE_ANIM_DURATION : i;
    }

六专题导航#

专题 用途
产品功能与商业化分析 业务任务、页面、广告与来源链
权限与后台机制拆包报告 声明、调用、实际授权和功能边界
保活与拉活反编译代码册 机制图、主链步骤、代码片段与控制流修复
拉活通知规则与文案全量报告 触发、状态、频控、动作、候选和多语言全文
样本与证据索引 版本、split、签名、定位与证据范围
真机动态验证与后台存活报告 真实操作、后台矩阵、观察与未执行项
竞品拆包报告库 · 逆向结论按证据等级阅读