宽表格和代码可左右滑动查看。
Phone Cleaner v1.2.4 保活与拉活反编译代码册#
精确包名:com.phone.cleaner.wafaApps;样本及资料日期:2026-10-28,Asia/Shanghai(北京时间)。六专题补充版。
S1=当前APK静态直接证据;S2=工具回读;S3=当前真机观察;I=推断;U=未验证。反编译不是原始源码,内置配置不是线上最终配置。发布状态单独记录于批次入口。
机制总图#
服务OuX2建立常驻ID103;一套Handler默认15秒周期调用注册的SltkD回调。初始化同时登记USER_PRESENT及安装/卸载事件,事件触发同一调度辅助器。另有JRH13一次性Work自登记链,最小延迟15000ms,执行后再次登记,并调用同一辅助器。[N2–N4]
USER_PRESENT的ZJX60S调用DwB(true),JRH13调用DwB(false),true可绕过辅助器自身的时间差检查,但不证明绕过业务通知门禁。Work的15秒是请求延迟,系统可延后执行;不是精确后台闹钟,也不是15秒发送通知。
按执行顺序读主链#
| 阶段 | 入口/下游 | 条件与状态说明 | 证据 |
|---|---|---|---|
| 产品身份 | Manifest HOME + 默认桌面引导 + 桌面帮助 | 清理与Launcher共存;默认桌面实际选择仍未验证 | N1 |
| 常驻 | OuX2 → permission/channel → foreground103 | 成功/失败返回及超时停止分别处理 | 原A2/A3 |
| 周期检查 | JRH13自登记 → 15秒辅助器 → 已注册回调 | 有调用不代表必发通知;不作为广告周期 | N2–N4 |
| 事件检查 | USER_PRESENT/包增删 → 同一调度辅助器 | 解锁强制检查与业务资格门禁是两层 | N3/N4 |
| 通知路由 | PendingPush/本地/FCM → 各ID → 中转页 | 五类通知分别解释来源样式与点击参数 | N5/原A6–A22 |
调用关系与业务含义#
本包产品边界应扩展为“清理工具+桌面”。Manifest的af0s.F8V4声明MAIN/HOME/DEFAULT;J2s2/J9H提供默认桌面设置说明,P4Kqf/M197Q有桌面图标/小组件被重排及桌面广告的帮助文案。没有把它设为测试机默认桌面,桌面替换效果未验证。[N1]
清理侧至少分垃圾、深度、系统优化、病毒、Wi-Fi、通知管理、应用管理、截图和相似内容;还存在电池、便签/备忘、新闻/游戏中心等页面资源。其88个同包Activity包含工具、引导、内容和广告容器,不等于88项清理能力,不能把所有同包页面都归为清理功能。
文案如“PIN must be 4 digits”仅证明存在密码设置界面,不能直接外推为文件加密。广告容器和桌面内容页也须与真实扫描/删除分开。
通知现在分五类:常驻103、本地55、FCM57、通知清理58、安装/卸载59。55/58/59的来源条件改变Heads-up横幅RemoteViews,展开大视图字段另有绑定,不能叫总通知开关。
PendingPush存pushType及WatchPackage,WatchPackage携带应用名称/卸载标志,随后调安装卸载渲染;需要继续核候选优先级、事件入队与消耗条件,不能把存在模型当成本次已发生安装事件。FCM57的正文来自服务端data,资源字符串只覆盖本地模板。[N5]
控制流复核与广告调度边界#
来源XARGY → r49.kWK9 → 广告包装器的附加原生分支已闭合;空/google-play为false,其余来源可true,包含other/noapi。因此分组不是可靠的付费用户标签。
同包的Launcher帮助文案和桌面广告容器提示商业化范围超出清理过程。现有入口/场景映射仍需要继续沿工具枚举与桌面生命周期展开;没有从SDK目录数量推定实际出量,也没有将15秒调度器错写为广告展示频率。
代码保留混淆名与工具错误标记。A编号沿用已核证据,N编号为本轮新增回查;simple输出是独立指令阅读副本,不能用文件存在/退出码0替代方法语义核验。
原有代码锚点 A#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| A1 | 来源常量 | jadx/sources/dfxb/NcEpC.java:136–175 |
已回读 |
| A2 | 前台服务状态和ID103 | jadx/sources/com/phone/cleaner/wafaApps/ke7/OuX2.java:19–107 |
已回读 |
| A3 | 常驻渠道、布局和按钮 | jadx/sources/efluwe/yMHQ.java:30–100 |
已回读 |
| A4 | USER_PRESENT节流Work | jadx/sources/com/phone/cleaner/wafaApps/h3cys/Z294.java:18–36 |
已回读 |
| A5 | Worker方法为空业务成功 | jadx/sources/com/phone/cleaner/wafaApps/helper/RemoteWorker.java:9–18 |
已回读 |
| A6 | FCM数据和必填门禁 | jadx/sources/com/phone/cleaner/wafaApps/ke7/Kws1.java:64–159 |
已回读 |
| A7 | 远端通知ID57和点击中转 | jadx/sources/zfxgq/yR.java:114–146 |
已回读 |
| A8 | 本地55、通知清理58;R8合并类包含业务代码 | jadx/sources/com/applovin/impl/sdk/yMHQ.java:124–211 |
已回读 |
| A9 | 两组本地模板引用 | jadx/sources/kx/wzo.java:6–19 |
已回读 |
| A10 | 通知清理提示门禁 | jadx/sources/nar/MTds1.java:179–198 |
已回读 |
| A11 | 500ms调度入口 | jadx/sources/efluwe/iTm.java:16–29 |
已回读 |
| A12 | UsageStats实际查询调用 | jadx/sources/amwf/Em4De2.java:247–284 |
已回读 |
| A13 | Application发起Referrer连接 | jadx/sources/com/phone/cleaner/wafaApps/z3wxv/GZC9.java:168–177 |
已回读 |
| A14 | Referrer成功与noapi回退 | jadx/sources/zfxgq/yR.java:474–503 |
已回读 |
| A15 | 来源解析、回退及持久化 | jadx/sources/com/phone/cleaner/wafaApps/ask1/T0.java:55–118 |
已回读 |
| A16 | 来源控制的附加原生广告分支 | jadx/sources/com/phone/cleaner/wafaApps/ask1/wzo.java:70–99 |
已回读 |
| A17 | 安装卸载通知ID59与来源样式分支 | jadx/sources/ft/Ac.java:125–181 |
已回读 |
| A18 | 解锁Work继续触发调度辅助器 | jadx/sources/com/phone/cleaner/wafaApps/h3cys/ZJX60S.java:21–31 |
已回读 |
| A19 | 默认15秒回调及重排;非固定发送 | jadx/sources/fhuzti/Ac.java:18–43 |
已回读 |
| A20 | 安装/卸载文案资源 | jadx/sources/kx/Tt.java:6–17 |
已回读 |
| A21 | 来源标记的实际判定 | jadx/sources/com/phone/cleaner/wafaApps/ask1/r49.java:277–282 |
已回读 |
| A22 | RemoteViews字段到横幅/展开视图的绑定 | jadx/sources/io/vxZF.java:194–207 |
已回读 |
本轮补充代码锚点 N#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| N1 | 默认桌面/广告FAQ绑定资源 | jadx/sources/com/phone/cleaner/wafaApps/wun14/P4Kqf.java:15–52 |
已回读 |
| N2 | 15秒Work自登记与回调链 | jadx/sources/com/phone/cleaner/wafaApps/h3cys/JRH13.java:30–68 |
已回读 |
| N3 | Handler初始化及解锁/包事件注册 | jadx/sources/efluwe/RP.java:468–510 |
已回读 |
| N4 | 强制/普通检查与重排 | jadx/sources/fhuzti/Ac.java:18–43 |
已回读 |
| N5 | 待发事件模型的边界 | jadx/sources/com/phone/cleaner/wafaApps/helper/pushmanage/PendingPush.java:4–10 |
已回读 |
便于开发阅读的等价逻辑#
以下使用语义名称重述已核对控制流,不是竞品原始源码;它与A/N原位置配合阅读。尚未闭合的下游保留抽象调用,不填造执行结果。
// 周期辅助器;回调内部仍有自己的业务通知资格
fun check(force) {
if (force || abs(nowMillis - lastCheck) >= periodMillis) {
lastCheck = nowMillis
registeredCallback?.accept(force)
scheduleHandlerAgain(periodMillis) // 默认15000ms
}
}
onUserPresentWorker -> check(true)
onJRH13Worker -> check(false); enqueueNextWork(minDelay=15000ms)
// Work可被系统延后,不等于15秒精确执行或15秒发送通知
sourceFlag = source == "all" || (source.notEmpty && source != "google-play")
// 该标记参与附加原生广告和通知Heads-up布局,不是付费用户鉴定
一方后台与通知关键实现#
A1 · 来源常量#
位置:dfxb/NcEpC.java:136–175。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static final String DwB = "https://sites.google.com/view/cleaner-wafaapps/home";
public static final String Z6 = "https://sites.google.com/view/terms-phone-cleaner/home";
static {
"https://www.trustlook.com/privacy-policy";
n57Py = "https://wafaapps.xyz/ldd_rept/s/e/b?p=";
yBq = "https://wafaapps.xyz/tr/s/loc/b";
XkAhn = "https://wafaapps.xyz/tr/s/report/b";
Vv84E9 = "https://www.google.com/search?q=";
"market://details?id=";
"https://play.google.com/store/apps/details?id=";
VV = "com.android.vending";
U4kWxy = "google-play";
ZuKrJ4 = "noapi";
AQMhcK = "other";
Jc5Lb = "utm_source";
PjoUBk = "gclid";
Z7IM = "all";
XJ = " DESC";
W2BV = "screenshot";
OR1LX6 = "copied_text";
kEt = "yield_rate";
Z2rB = "tab_interstitial_interval";
Gye = "REMOTE_PUSH_ENTITY";
eXZKj = "push_id";
Q6L = "push_date";
Khh = "title";
r1 = "body";
Rt4 = "img_url";
kWK9 = "btn_text";
ycULL = "btn_link";
vvpI = "btn_type";
yg = "top";
Xiu9 = "PARAMS_BOOLEAN";
n9 = "PARAMS_DIALOG";
QvLSrq = "PARAMS_DIALOG_CONTENT";
qNS1 = "PARAMS_DIALOG_BOOLEAN";
Hw = "PARAMS_DIALOG_COLOR";
ZV3aD = "PARAMS_CLEANER";
MqhAP = "PARAMS_SCENARIO_NOTIFICATION";
A2 · 前台服务状态和ID103#
位置:com/phone/cleaner/wafaApps/ke7/OuX2.java:19–107。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void Z6() {
String str = yMHQ.DwB;
yMHQ ymhq = SZ9xH.DwB;
Application applicationXkAhn = T0.XkAhn();
ymhq.getClass();
if (yMHQ.DwB(applicationXkAhn) != null) {
ActivityManager activityManager = (ActivityManager) T0.XkAhn().getSystemService("activity");
if (activityManager != null) {
try {
Iterator<ActivityManager.RunningServiceInfo> it = activityManager.getRunningServices(Integer.MAX_VALUE).iterator();
while (it.hasNext()) {
if (OuX2.class.getName().equals(it.next().service.getClassName())) {
return;
}
}
} catch (Throwable unused) {
}
}
try {
T0.XkAhn().startForegroundService(new Intent(T0.XkAhn(), (Class<?>) OuX2.class));
} catch (Throwable unused2) {
}
}
}
public final boolean DwB() {
if (this.Z6) {
return true;
}
String str = yMHQ.DwB;
SZ9xH.DwB.getClass();
Notification notificationDwB = yMHQ.DwB(this);
if (notificationDwB != null) {
try {
if (Build.VERSION.SDK_INT >= 34) {
startForeground(103, notificationDwB, 1);
} else {
startForeground(103, notificationDwB, 1);
}
this.Z6 = true;
return true;
} catch (Throwable unused) {
}
}
try {
stopForeground(1);
stopSelf();
return false;
} catch (Throwable unused2) {
return false;
}
}
@Override // android.app.Service
public final IBinder onBind(Intent intent) {
return null;
}
@Override // android.app.Service
public final void onCreate() {
super.onCreate();
DwB();
}
@Override // android.app.Service
public final void onDestroy() {
try {
stopForeground(1);
} catch (Throwable unused) {
}
super.onDestroy();
}
@Override // android.app.Service
public final int onStartCommand(Intent intent, int i, int i2) {
return !DwB() ? 2 : 1;
}
public final void onTimeout(int i, int i2) {
super.onTimeout(i, i2);
if (i2 == 1) {
try {
stopForeground(1);
stopSelf();
} catch (Throwable unused) {
}
}
}
}
A3 · 常驻渠道、布局和按钮#
位置:efluwe/yMHQ.java:30–100。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static Notification DwB(ContextWrapper contextWrapper) {
NotificationManager notificationManager;
try {
if (GJh9.Z6() && (notificationManager = (NotificationManager) contextWrapper.getSystemService(NotificationManager.class)) != null) {
String str = contextWrapper.getPackageName() + DwB;
NotificationChannel notificationChannel = notificationManager.getNotificationChannel(str);
if (notificationChannel == null) {
NotificationChannel notificationChannel2 = new NotificationChannel(str, contextWrapper.getString(R.string.app_name), 3);
notificationChannel2.setShowBadge(false);
notificationChannel2.setSound(null, null);
notificationChannel2.enableVibration(false);
notificationChannel2.enableLights(false);
notificationManager.createNotificationChannel(notificationChannel2);
notificationChannel = notificationManager.getNotificationChannel(str);
if (notificationChannel != null) {
if (notificationChannel.getImportance() != 0) {
return Z6(contextWrapper, str);
}
}
}
}
} catch (Throwable unused) {
}
return null;
}
public static Notification Z6(Context context, String str) {
try {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.moyu3);
Application applicationXkAhn = T0.XkAhn();
SltkD sltkD = SltkD.JUNK_CLEANER;
n57Py(applicationXkAhn, remoteViews, sltkD);
SltkD sltkD2 = SltkD.APP_MANAGE;
n57Py(applicationXkAhn, remoteViews, sltkD2);
RemoteViews remoteViews2 = new RemoteViews(context.getPackageName(), R.layout.s40x);
Application applicationXkAhn2 = T0.XkAhn();
n57Py(applicationXkAhn2, remoteViews2, sltkD);
n57Py(applicationXkAhn2, remoteViews2, sltkD2);
ZCjby zCjby = new ZCjby(context, str);
zCjby.vvpI.icon = R.mipmap.rh8;
zCjby.n57Py(2, true);
zCjby.n57Py(16, false);
zCjby.yg = true;
zCjby.AQMhcK = 0;
zCjby.eXZKj = 1;
zCjby.kEt = "service";
zCjby.Q6L = remoteViews;
zCjby.Khh = remoteViews2;
zCjby.r1 = remoteViews;
zCjby.yBq(new vxZF(8));
Notification notificationDwB = zCjby.DwB();
if (notificationDwB.getSmallIcon() == null) {
return null;
}
if (notificationDwB.getSmallIcon().getResId() == 0) {
return null;
}
return notificationDwB;
} catch (Throwable unused) {
return null;
}
}
public static void n57Py(Application application, RemoteViews remoteViews, SltkD sltkD) {
remoteViews.setTextViewText(sltkD.r1, S4V.Jc5Lb(sltkD.Z6));
Intent intent = new Intent(application, (Class<?>) Uts70.class);
intent.addFlags(67108864);
intent.putExtra(dfxb.NcEpC.XYJ, sltkD);
remoteViews.setOnClickPendingIntent(sltkD.Hw, PendingIntent.getActivity(application, Em4De2.DwB.U4kWxy(), intent, 201326592));
}
}
A4 · USER_PRESENT节流Work#
位置:com/phone/cleaner/wafaApps/h3cys/Z294.java:18–36。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
@Override // android.content.BroadcastReceiver
public final void onReceive(Context context, Intent intent) {
NRADpB nRADpB = null;
if (Objects.equals(intent != null ? intent.getAction() : null, "android.intent.action.USER_PRESENT")) {
long jCurrentTimeMillis = System.currentTimeMillis();
AtomicLong atomicLong = DwB;
if (Math.abs(jCurrentTimeMillis - atomicLong.get()) < WebViewScreenCapture.CACHE_TTL_MS) {
return;
}
atomicLong.set(jCurrentTimeMillis);
try {
nRADpB = NRADpB.getInstance(context.getApplicationContext());
} catch (Throwable unused) {
}
if (nRADpB == null) {
return;
}
nRADpB.enqueueUniqueWork("[IDENTIFIER_REDACTED]", IpCfI.Z6, (MTds1) new mJYo(ZJX60S.class).n57Py());
}
A5 · Worker方法为空业务成功#
位置:com/phone/cleaner/wafaApps/helper/RemoteWorker.java:9–18。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public class RemoteWorker extends Worker {
public RemoteWorker(Context context, WorkerParameters workerParameters) {
super(context, workerParameters);
}
@Override // androidx.work.Worker
public final zcx doWork() {
return zcx.DwB();
}
}
A6 · FCM数据和必填门禁#
位置:com/phone/cleaner/wafaApps/ke7/Kws1.java:64–159。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public final void yBq(ZHQw zHQw) {
NRADpB nRADpB;
NotificationManager notificationManager;
Locale localeW2BV;
if (!((IpCfI) zHQw.XJ()).isEmpty()) {
try {
nRADpB = NRADpB.getInstance(getApplicationContext());
} catch (Throwable unused) {
nRADpB = null;
}
if (nRADpB != null) {
try {
nRADpB.beginWith((MTds1) new mJYo(RemoteWorker.class).n57Py()).enqueue();
} catch (Throwable unused2) {
}
}
}
yR yRVar = efluwe.yR.DwB;
yRVar.getClass();
Object objXJ = zHQw.XJ();
if (((IpCfI) objXJ).isEmpty() || !GJh9.Z6() || (notificationManager = (NotificationManager) getSystemService("notification")) == null) {
return;
}
zcx zcxVar = new zcx();
zcxVar.pushId = 0;
zcxVar.pushDate = "";
zcxVar.title = "";
zcxVar.body = "";
zcxVar.imgUrl = "";
zcxVar.btnText = "";
zcxVar.btnType = 0;
zcxVar.btnLink = "";
zcxVar.country = "";
zcxVar.locale = "";
try {
localeW2BV = lTDG.W2BV(this);
} catch (Throwable unused3) {
localeW2BV = Locale.getDefault();
}
if (localeW2BV != null) {
zcxVar.locale = localeW2BV.toString();
zcxVar.country = localeW2BV.getCountry();
}
String str = NcEpC.eXZKj;
SZ9xH sZ9xH = (SZ9xH) objXJ;
if (sZ9xH.containsKey(str)) {
try {
String str2 = (String) sZ9xH.get(str);
if (!TextUtils.isEmpty(str2)) {
zcxVar.pushId = Integer.parseInt(str2);
}
} catch (Throwable unused4) {
}
}
String str3 = NcEpC.Q6L;
if (sZ9xH.containsKey(str3)) {
zcxVar.pushDate = (String) sZ9xH.get(str3);
}
String str4 = NcEpC.Khh;
if (sZ9xH.containsKey(str4)) {
zcxVar.title = (String) sZ9xH.get(str4);
}
String str5 = NcEpC.r1;
if (sZ9xH.containsKey(str5)) {
zcxVar.body = (String) sZ9xH.get(str5);
}
String str6 = NcEpC.Rt4;
if (sZ9xH.containsKey(str6)) {
zcxVar.imgUrl = (String) sZ9xH.get(str6);
}
String str7 = NcEpC.kWK9;
if (sZ9xH.containsKey(str7)) {
zcxVar.btnText = (String) sZ9xH.get(str7);
}
String str8 = NcEpC.ycULL;
if (sZ9xH.containsKey(str8)) {
zcxVar.btnLink = (String) sZ9xH.get(str8);
}
String str9 = NcEpC.vvpI;
if (sZ9xH.containsKey(str9)) {
try {
String str10 = (String) sZ9xH.get(str9);
if (!TextUtils.isEmpty(str10)) {
zcxVar.btnType = Integer.parseInt(str10);
}
} catch (Throwable unused5) {
}
}
if (TextUtils.isEmpty(zcxVar.title) || TextUtils.isEmpty(zcxVar.body) || TextUtils.isEmpty(zcxVar.btnText)) {
return;
}
if (Objects.equals(zcxVar.title, zcxVar.body)) {
zcxVar.body = "";
}
com.bumptech.glide.RP rpXiu9 = iTm.DwB(this).MqhAP.n57Py(this).ZuKrJ4(Bitmap.class).DwB(com.bumptech.glide.ZHQw.o1Yg).Xiu9(zcxVar.imgUrl);
rpXiu9.yg(new MVX(yRVar, this, notificationManager, zcxVar), rpXiu9);
A7 · 远端通知ID57和点击中转#
位置:zfxgq/yR.java:114–146。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void Xiu9(yR yRVar, Kws1 kws1, NotificationManager notificationManager, Bitmap bitmap, zcx zcxVar) {
yRVar.getClass();
try {
kx.cCi9TH cci9th = TextUtils.isEmpty(zcxVar.body) ? kx.cCi9TH.ONLY_TITLE : kx.cCi9TH.HAS_DESC;
RemoteViews remoteViews = new RemoteViews(kws1.getPackageName(), cci9th.Z6);
yRVar.SHWl54(remoteViews, bitmap, zcxVar.title, zcxVar.body, zcxVar.btnText, zcxVar.btnType);
RemoteViews remoteViews2 = new RemoteViews(kws1.getPackageName(), cci9th.r1);
yRVar.SHWl54(remoteViews2, bitmap, zcxVar.title, zcxVar.body, zcxVar.btnText, zcxVar.btnType);
RemoteViews remoteViews3 = new RemoteViews(kws1.getPackageName(), cci9th.Hw);
yRVar.SHWl54(remoteViews3, bitmap, zcxVar.title, zcxVar.body, zcxVar.btnText, zcxVar.btnType);
Intent intent = new Intent(kws1, (Class<?>) Zx7.class);
intent.addFlags(67108864);
intent.putExtra(dfxb.NcEpC.Gye, zcxVar);
PendingIntent activity = PendingIntent.getActivity(kws1, efluwe.Em4De2.DwB.U4kWxy(), intent, 201326592);
String str = kws1.getPackageName() + "_remote";
if (notificationManager.getNotificationChannel(str) == null) {
notificationManager.createNotificationChannel(new NotificationChannel(str, str, 4));
}
qxyxx.ZCjby zCjby = new qxyxx.ZCjby(kws1, str);
Notification notification = zCjby.vvpI;
notification.icon = R.mipmap.rh8;
zCjby.n57Py(2, false);
zCjby.n57Py(16, true);
notification.contentView = remoteViews;
zCjby.Q6L = remoteViews;
zCjby.Khh = remoteViews2;
zCjby.r1 = remoteViews3;
zCjby.yBq(new qxyxx.vxZF(8));
zCjby.VV = activity;
notificationManager.notify(57, zCjby.DwB());
XT.Vv84E9(dfxb.iTm.jQ4kB, zcxVar);
} catch (Throwable unused) {
}
A8 · 本地55、通知清理58;R8合并类包含业务代码#
位置:com/applovin/impl/sdk/yMHQ.java:124–211。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
case 7:
Application applicationXkAhn = T0.XkAhn();
String str3 = applicationXkAhn.getPackageName() + "_3";
RemoteViews remoteViews = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.gufky);
MTds1.kWK9(remoteViews);
RemoteViews remoteViews2 = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.k7);
MTds1.kWK9(remoteViews2);
RemoteViews remoteViews3 = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.cbw);
MTds1.kWK9(remoteViews3);
NotificationChannel notificationChannel = new NotificationChannel(str3, str3, 4);
notificationChannel.setSound(null, null);
notificationChannel.enableVibration(false);
notificationChannel.enableLights(false);
NotificationManager notificationManager2 = (NotificationManager) T0.XkAhn().getSystemService(NotificationManager.class);
notificationManager2.createNotificationChannel(notificationChannel);
Intent intent = new Intent(applicationXkAhn, (Class<?>) T352.class);
intent.addFlags(67108864);
PendingIntent activity = PendingIntent.getActivity(applicationXkAhn, efluwe.Em4De2.DwB.U4kWxy(), intent, 201326592);
boolean zKWK9 = r49.kWK9();
ZCjby zCjby = new ZCjby(applicationXkAhn, str3);
zCjby.vvpI.icon = R.mipmap.rh8;
zCjby.n57Py(2, false);
zCjby.n57Py(16, true);
zCjby.vvpI.contentView = remoteViews;
zCjby.Q6L = remoteViews;
zCjby.Khh = remoteViews2;
if (zKWK9) {
remoteViews = remoteViews3;
}
zCjby.r1 = remoteViews;
zCjby.yBq(new vxZF(8));
zCjby.VV = activity;
notificationManager2.notify(58, zCjby.DwB());
androidx.work.cCi9TH.Jc5Lb(false);
break;
case 8:
List listPjoUBk = r49.PjoUBk();
ArrayList arrayList2 = new ArrayList();
Iterator it = listPjoUBk.iterator();
while (it.hasNext()) {
try {
arrayList2.add(kx.wzo.valueOf((String) it.next()));
} catch (Exception unused) {
}
}
ArrayList arrayList3 = new ArrayList(Arrays.asList(kx.wzo.values()));
arrayList3.removeAll(arrayList2);
if (arrayList3.isEmpty()) {
if (!arrayList2.isEmpty()) {
Collections.shuffle(arrayList2);
r49.Xiu9(null);
}
if (arrayList2.isEmpty()) {
kx.wzo wzoVar = (kx.wzo) arrayList2.get(0);
r49.Xiu9(wzoVar.name());
Application applicationXkAhn2 = T0.XkAhn();
if (applicationXkAhn2 != null && (notificationManager = (NotificationManager) applicationXkAhn2.getSystemService("notification")) != null) {
RemoteViews remoteViews4 = new RemoteViews(applicationXkAhn2.getPackageName(), R.layout.pjmj);
efluwe.vXMq7.Z6(remoteViews4, wzoVar);
RemoteViews remoteViews5 = new RemoteViews(applicationXkAhn2.getPackageName(), R.layout.a4sx);
efluwe.vXMq7.Z6(remoteViews5, wzoVar);
RemoteViews remoteViews6 = new RemoteViews(applicationXkAhn2.getPackageName(), R.layout.jcua);
efluwe.vXMq7.Z6(remoteViews6, wzoVar);
Intent intent2 = new Intent(applicationXkAhn2, (Class<?>) Iv6.class);
intent2.putExtra(dfxb.NcEpC.MqhAP, wzoVar);
intent2.addFlags(67108864);
PendingIntent activity2 = PendingIntent.getActivity(applicationXkAhn2, efluwe.Em4De2.DwB.U4kWxy(), intent2, 201326592);
String str4 = applicationXkAhn2.getPackageName() + "_local";
if (notificationManager.getNotificationChannel(str4) == null) {
notificationManager.createNotificationChannel(new NotificationChannel(str4, str4, 4));
}
boolean zKWK92 = r49.kWK9();
ZCjby zCjby2 = new ZCjby(applicationXkAhn2, str4);
zCjby2.vvpI.icon = R.mipmap.rh8;
zCjby2.n57Py(2, false);
zCjby2.n57Py(16, true);
zCjby2.vvpI.contentView = remoteViews4;
zCjby2.Q6L = remoteViews4;
zCjby2.Khh = remoteViews5;
if (zKWK92) {
remoteViews4 = remoteViews6;
}
zCjby2.r1 = remoteViews4;
zCjby2.yBq(new vxZF(8));
zCjby2.VV = activity2;
notificationManager.notify(55, zCjby2.DwB());
XT.yBq(dfxb.iTm.n9);
androidx.work.cCi9TH.Jc5Lb(false);
A9 · 两组本地模板引用#
位置:kx/wzo.java:6–19。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public enum wzo {
/* JADX INFO: Fake field, exist only in values array */
TYPE_JUNK(R.string.ge, R.string.xetp, R.drawable.pcom),
/* JADX INFO: Fake field, exist only in values array */
TYPE_DEEP(R.string.s6e7h, R.string.mwie, R.drawable.bu5cm);
public final int Hw;
public final int Z6;
public final int r1;
wzo(int i, int i2, int i3) {
this.Z6 = i;
this.r1 = i2;
this.Hw = i3;
A10 · 通知清理提示门禁#
位置:nar/MTds1.java:179–198。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void Khh() {
if (GJh9.Z6()) {
WeakHashMap weakHashMap = JH.SHWl54;
if (Boolean.FALSE.equals(mHJDA4.DwB.MqhAP) || !S4V.XJ()) {
return;
}
if (DwB == null) {
HandlerThread handlerThread = new HandlerThread("NotificationHelper");
DwB = handlerThread;
handlerThread.start();
Z6 = new Handler(DwB.getLooper());
}
Handler handler = Z6;
if (handler == null) {
return;
}
handler.post(new com.applovin.impl.sdk.yMHQ(7));
K5mJiN.Z6.clear();
}
}
A11 · 500ms调度入口#
位置:efluwe/iTm.java:16–29。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
@Override // android.os.Handler.Callback
public final boolean handleMessage(Message message) {
if (message.what != 1024) {
return true;
}
long jCurrentTimeMillis = System.currentTimeMillis();
if (jCurrentTimeMillis - this.Hw >= 500) {
this.Hw = jCurrentTimeMillis;
this.r1.execute(new amwf.Em4De2(this, 28));
}
Handler handler = this.Z6;
handler.removeCallbacksAndMessages(null);
handler.sendEmptyMessageDelayed(1024, 500L);
return true;
A12 · UsageStats实际查询调用#
位置:amwf/Em4De2.java:247–284。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
case 28:
efluwe.iTm itm2 = (efluwe.iTm) obj;
if (GJh9.yBq() && GJh9.XkAhn() && r49.eXZKj()) {
if (!S4V.XJ()) {
yA.VV = "";
itm2.ZV3aD = null;
return;
}
if (GJh9.yBq()) {
if (T0.Z6 == null) {
synchronized (T0.class) {
try {
if (T0.Z6 == null && (applicationXkAhn = T0.XkAhn()) != null) {
T0.Z6 = (UsageStatsManager) applicationXkAhn.getSystemService("usagestats");
}
} finally {
}
}
}
UsageStatsManager usageStatsManager = T0.Z6;
if (usageStatsManager != null) {
long jCurrentTimeMillis = System.currentTimeMillis();
long j = jCurrentTimeMillis - 300000;
try {
UsageEvents usageEventsQueryEvents = usageStatsManager.queryEvents(j, jCurrentTimeMillis);
if (usageEventsQueryEvents == null) {
strVV = T0.VV(usageStatsManager, j, jCurrentTimeMillis);
} else {
UsageEvents.Event event = new UsageEvents.Event();
String str2 = null;
Object[] objArr2 = false;
while (usageEventsQueryEvents.hasNextEvent()) {
usageEventsQueryEvents.getNextEvent(event);
if (event.getEventType() == 1 && (packageName = event.getPackageName()) != null && !packageName.isEmpty()) {
str2 = packageName;
}
objArr2 = true;
}
A13 · Application发起Referrer连接#
位置:com/phone/cleaner/wafaApps/z3wxv/GZC9.java:168–177。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
}
com.phone.cleaner.wafaApps.third.metrics.Em4De2.DwB.n57Py = new kj.MVX(i3);
if (TextUtils.isEmpty(r49.W2BV())) {
try {
vmuhl.iTm itm = new vmuhl.iTm(this);
itm.n57Py(new yR(itm));
} catch (Throwable unused7) {
}
}
if (yA.Z7IM == null) {
A14 · Referrer成功与noapi回退#
位置:zfxgq/yR.java:474–503。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public void onInstallReferrerSetupFinished(int i) {
vmuhl.iTm itm = (vmuhl.iTm) this.Z6;
if (i == 0) {
try {
T0.DwB(((Bundle) itm.Z6().Z6).getString("install_referrer"));
itm.DwB();
return;
} catch (Throwable unused) {
return;
}
}
if (i != 2) {
return;
}
String str = dfxb.NcEpC.ZuKrJ4;
List list = r49.DwB;
wzo wzoVarDwB = wzo.DwB();
String str2 = dfxb.NcEpC.VlOUo;
wzoVarDwB.getClass();
wzo.Khh(str2, str);
XT.DwB.submit(new yL(str, 1));
if (TextUtils.isEmpty(r49.W2BV())) {
return;
}
if (r49.kWK9()) {
XT.yBq(dfxb.iTm.VV);
} else {
XT.yBq(dfxb.iTm.U4kWxy);
}
}
A15 · 来源解析、回退及持久化#
位置:com/phone/cleaner/wafaApps/ask1/T0.java:55–118。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void DwB(String str) {
String strDecode;
AtomicReference atomicReference = new AtomicReference(str);
try {
if (TextUtils.isEmpty(str)) {
strDecode = "";
} else {
try {
strDecode = URLDecoder.decode(str.replaceAll("%(?![0-9a-fA-F]{2})", "%25").replaceAll("\\+", "%2B"), "UTF-8");
} catch (UnsupportedEncodingException unused) {
strDecode = null;
}
}
atomicReference.set(strDecode);
} catch (Throwable unused2) {
}
String str2 = (String) atomicReference.get();
if (TextUtils.isEmpty(str2)) {
return;
}
String str3 = (String) Z2rB(str2).get(dfxb.NcEpC.Jc5Lb);
if (TextUtils.isEmpty(str3)) {
String str4 = dfxb.NcEpC.PjoUBk;
if (str2.startsWith(str4)) {
str3 = str4;
}
}
int i = 1;
if (TextUtils.isEmpty(str3)) {
String[] strArr = {str2};
try {
ArrayList arrayList = new ArrayList();
Matcher matcher = Pattern.compile("\\\\u[0-9,a-f,A-F]{4}").matcher(strArr[0]);
while (matcher.find()) {
arrayList.add(matcher.group());
}
for (int i2 = 0; i2 < arrayList.size(); i2++) {
strArr[0] = strArr[0].replace((CharSequence) arrayList.get(i2), String.valueOf((char) Integer.parseInt(((String) arrayList.get(i2)).substring(2, 6), 16)));
}
} catch (Throwable unused3) {
}
String str5 = strArr[0];
if (!TextUtils.isEmpty(str5)) {
str3 = (String) Z2rB(str5).get(dfxb.NcEpC.Jc5Lb);
}
}
if (TextUtils.isEmpty(str3)) {
str3 = dfxb.NcEpC.AQMhcK;
}
List list = r49.DwB;
wzo wzoVarDwB = wzo.DwB();
String str6 = dfxb.NcEpC.VlOUo;
wzoVarDwB.getClass();
wzo.Khh(str6, str3);
XT.DwB.submit(new yL(str2, i));
if (TextUtils.isEmpty(r49.W2BV())) {
return;
}
if (r49.kWK9()) {
XT.yBq(dfxb.iTm.VV);
} else {
XT.yBq(dfxb.iTm.U4kWxy);
}
}
A16 · 来源控制的附加原生广告分支#
位置:com/phone/cleaner/wafaApps/ask1/wzo.java:70–99。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void PjoUBk(androidx.lifecycle.YUmngi yUmngi, nprypw.Ac ac, ViewGroup viewGroup, boolean z, boolean z2, vul.yMHQ ymhq) {
FragmentActivity fragmentActivity;
if (z2) {
if (z) {
if (r49.kWK9()) {
int[] iArrZ6 = Z6();
Jc5Lb(yUmngi, new vul.SltkD("[IDENTIFIER_REDACTED]", iArrZ6[0], iArrZ6[1]), null, null, null);
}
} else if (r49.kWK9()) {
yUmngi.getClass();
int[] iArrZ62 = Z6();
Jc5Lb(yUmngi, new vul.SltkD("[IDENTIFIER_REDACTED]", iArrZ62[0], iArrZ62[1]), null, null, null);
}
}
vul.S4V s4v = new vul.S4V(yUmngi, ac, viewGroup, new GMUToP(ymhq, yUmngi, z2, z));
s4v.PjoUBk = false;
s4v.W2BV = false;
s4v.OR1LX6 = false;
androidx.lifecycle.YUmngi yUmngi2 = s4v.XkAhn;
if (yUmngi2 == null || (fragmentActivity = s4v.ZuKrJ4) == null) {
s4v.PjoUBk(null);
} else {
if (!vul.iTm.DwB(fragmentActivity)) {
s4v.PjoUBk(vul.iTm.DwB);
return;
}
nprypw.Ac ac2 = s4v.Vv84E9;
s4v.Jc5Lb(ac2.Z6, new rzu.vXMq7(s4v, 7));
vul.kqr9.DwB.XJ(yUmngi2, (String) ac2.n57Py, s4v);
}
A17 · 安装卸载通知ID59与来源样式分支#
位置:ft/Ac.java:125–181。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void E5(String str, boolean z) {
NotificationManager notificationManager;
try {
Application applicationXkAhn = T0.XkAhn();
if (applicationXkAhn != null && com.phone.cleaner.wafaApps.ask1.GJh9.Z6() && (notificationManager = (NotificationManager) applicationXkAhn.getSystemService("notification")) != null) {
Tt tt = z ? Tt.UNINSTALL : Tt.INSTALL;
XT.yBq(z ? dfxb.iTm.MqhAP : dfxb.iTm.Hw);
RemoteViews remoteViews = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.pjmj);
ejrD64(remoteViews, tt, str);
RemoteViews remoteViews2 = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.a4sx);
ejrD64(remoteViews2, tt, str);
RemoteViews remoteViews3 = new RemoteViews(applicationXkAhn.getPackageName(), R.layout.jcua);
ejrD64(remoteViews3, tt, str);
Intent intent = new Intent(applicationXkAhn, (Class<?>) MW9e.class);
intent.putExtra(dfxb.NcEpC.a2d, z);
intent.addFlags(67108864);
PendingIntent activity = PendingIntent.getActivity(applicationXkAhn, Em4De2.DwB.U4kWxy(), intent, 201326592);
String str2 = applicationXkAhn.getPackageName() + "watch";
if (notificationManager.getNotificationChannel(str2) == null) {
notificationManager.createNotificationChannel(new NotificationChannel(str2, str2, 4));
}
boolean zKWK9 = r49.kWK9();
ZCjby zCjby = new ZCjby(applicationXkAhn, str2);
Notification notification = zCjby.vvpI;
notification.icon = R.mipmap.rh8;
zCjby.n57Py(2, false);
zCjby.n57Py(16, true);
notification.contentView = remoteViews;
zCjby.Q6L = remoteViews;
zCjby.Khh = remoteViews2;
if (zKWK9) {
remoteViews = remoteViews3;
}
zCjby.r1 = remoteViews;
zCjby.yBq(new vxZF(8));
zCjby.VV = activity;
notificationManager.notify(59, zCjby.DwB());
androidx.work.cCi9TH.Jc5Lb(false);
}
} catch (Throwable unused) {
}
}
private final void IpBP() {
}
private final void KsSH(float f) {
}
public static void ejrD64(RemoteViews remoteViews, Tt tt, String str) {
int i = tt.Z6;
int i2 = tt.r1;
int i3 = tt.Hw;
remoteViews.setTextViewText(R.id.sDUoUs, S4V.AQMhcK(R.color.c1hiwj, S4V.PjoUBk(i, str), str));
remoteViews.setTextViewText(R.id.kDneUy, S4V.Jc5Lb(i2));
remoteViews.setImageViewResource(R.id.vTf, i3);
}
A18 · 解锁Work继续触发调度辅助器#
位置:com/phone/cleaner/wafaApps/h3cys/ZJX60S.java:21–31。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
@Override // androidx.work.Worker
public final zcx doWork() {
long jCurrentTimeMillis = System.currentTimeMillis();
AtomicLong atomicLong = Z6;
if (Math.abs(jCurrentTimeMillis - atomicLong.get()) < WebViewScreenCapture.CACHE_TTL_MS) {
return zcx.DwB();
}
atomicLong.set(jCurrentTimeMillis);
AtomicBoolean atomicBoolean = Ac.MqhAP;
iTm.DwB.DwB(true);
return zcx.DwB();
A19 · 默认15秒回调及重排;非固定发送#
位置:fhuzti/Ac.java:18–43。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public final void DwB(boolean z) {
long jCurrentTimeMillis = System.currentTimeMillis();
AtomicLong atomicLong = this.r1;
if (z || Math.abs(jCurrentTimeMillis - atomicLong.get()) >= this.Hw) {
atomicLong.set(jCurrentTimeMillis);
SltkD sltkD = this.ZV3aD;
if (sltkD != null) {
sltkD.accept(Boolean.valueOf(z));
}
Z6();
}
}
public final void Z6() {
Handler handler = this.Z6;
handler.removeMessages(1024);
handler.removeCallbacksAndMessages(null);
handler.sendEmptyMessageDelayed(1024, this.Hw);
}
@Override // android.os.Handler.Callback
public final boolean handleMessage(Message message) {
if (message.what == 1024) {
DwB(false);
Z6();
}
A20 · 安装/卸载文案资源#
位置:kx/Tt.java:6–17。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public enum Tt {
INSTALL(R.string.sjyv, R.string.xetp, R.drawable.vpqoja),
UNINSTALL(R.string.c3blt5, R.string.yw, R.drawable.plfz);
public final int Hw;
public final int Z6;
public final int r1;
Tt(int i, int i2, int i3) {
this.Z6 = i;
this.r1 = i2;
this.Hw = i3;
A21 · 来源标记的实际判定#
位置:com/phone/cleaner/wafaApps/ask1/r49.java:277–282。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static boolean kWK9() {
String strW2BV = W2BV();
if (Objects.equals(strW2BV, dfxb.NcEpC.Z7IM)) {
return true;
}
return (TextUtils.isEmpty(strW2BV) || Objects.equals(strW2BV, dfxb.NcEpC.U4kWxy)) ? false : true;
A22 · RemoteViews字段到横幅/展开视图的绑定#
位置:io/vxZF.java:194–207。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
((Notification.Builder) this.Hw).setExtras(zCjby.Z2rB);
((Notification.Builder) this.Hw).setRemoteInputHistory(null);
RemoteViews remoteViews = zCjby.Q6L;
if (remoteViews != null) {
((Notification.Builder) this.Hw).setCustomContentView(remoteViews);
}
RemoteViews remoteViews2 = zCjby.Khh;
if (remoteViews2 != null) {
((Notification.Builder) this.Hw).setCustomBigContentView(remoteViews2);
}
RemoteViews remoteViews3 = zCjby.r1;
if (remoteViews3 != null) {
((Notification.Builder) this.Hw).setCustomHeadsUpContentView(remoteViews3);
}
本轮新增实现与修复片段#
N1 · 默认桌面/广告FAQ绑定资源#
位置:com/phone/cleaner/wafaApps/wun14/P4Kqf.java:15–52。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
@Override // com.phone.cleaner.wafaApps.base.BaseActivity
public final void OR1LX6() {
ViewBinding viewBinding = this.r1;
if (viewBinding == null) {
return;
}
((Uvan4Binding) viewBinding).aO7Gf.setOnClickListener(new mJYo(this, 27));
((Uvan4Binding) this.r1).mnTjW7.getRoot().setOnClickListener(new NcEpC(this, 23));
((Uvan4Binding) this.r1).jlNk1.getRoot().setOnClickListener(new NcEpC(this, 24));
((Uvan4Binding) this.r1).c5rfB.getRoot().setOnClickListener(new NcEpC(this, 25));
((Uvan4Binding) this.r1).sY8m9.getRoot().setOnClickListener(new NcEpC(this, 26));
((Uvan4Binding) this.r1).y6Z.getRoot().setOnClickListener(new NcEpC(this, 27));
((Uvan4Binding) this.r1).o2Rsev.getRoot().setOnClickListener(new NcEpC(this, 28));
((Uvan4Binding) this.r1).g02B.getRoot().setOnClickListener(new NcEpC(this, 29));
((Uvan4Binding) this.r1).u9kI.getRoot().setOnClickListener(new kG8dcx(this, 0));
((Uvan4Binding) this.r1).dk064.getRoot().setOnClickListener(new kG8dcx(this, 1));
}
@Override // com.phone.cleaner.wafaApps.base.BaseActivity
public final ViewBinding XJ() {
return Uvan4Binding.inflate(getLayoutInflater());
}
@Override // com.phone.cleaner.wafaApps.base.BaseActivity
public final void kEt() {
ViewBinding viewBinding = this.r1;
if (viewBinding == null) {
return;
}
((Uvan4Binding) viewBinding).mnTjW7.qe0.setText(getString(R.string.a5it));
((Uvan4Binding) this.r1).jlNk1.qe0.setText(getString(R.string.sf2y));
((Uvan4Binding) this.r1).c5rfB.qe0.setText(getString(R.string.d2aq));
((Uvan4Binding) this.r1).sY8m9.qe0.setText(getString(R.string.ftb5x));
((Uvan4Binding) this.r1).y6Z.qe0.setText(getString(R.string.vvy7b));
((Uvan4Binding) this.r1).o2Rsev.qe0.setText(getString(R.string.oy5q2));
((Uvan4Binding) this.r1).g02B.qe0.setText(getString(R.string.uz02));
((Uvan4Binding) this.r1).u9kI.qe0.setText(getString(R.string.j42h));
((Uvan4Binding) this.r1).dk064.qe0.setText(getString(R.string.u82fx7));
N2 · 15秒Work自登记与回调链#
位置:com/phone/cleaner/wafaApps/h3cys/JRH13.java:30–68。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public static void DwB() {
NRADpB nRADpB;
try {
Application applicationXkAhn = T0.XkAhn();
if (applicationXkAhn == null) {
return;
}
try {
nRADpB = NRADpB.getInstance(applicationXkAhn.getApplicationContext());
} catch (Throwable unused) {
nRADpB = null;
}
if (nRADpB == null) {
return;
}
nRADpB.enqueueUniqueWork("[IDENTIFIER_REDACTED]", IpCfI.Z6, (MTds1) ((mJYo) new mJYo(JRH13.class).AQMhcK(15000L, TimeUnit.MILLISECONDS)).n57Py());
} catch (Throwable unused2) {
}
}
@Override // androidx.work.Worker
public final zcx doWork() {
long jCurrentTimeMillis;
AtomicLong atomicLong;
try {
jCurrentTimeMillis = System.currentTimeMillis();
atomicLong = Z6;
} catch (Throwable unused) {
}
if (Math.abs(jCurrentTimeMillis - atomicLong.get()) < 15000) {
SltkD sltkDDwB = zcx.DwB();
DwB();
return sltkDDwB;
}
atomicLong.set(jCurrentTimeMillis);
AtomicBoolean atomicBoolean = Ac.MqhAP;
iTm.DwB.DwB(false);
DwB();
return zcx.DwB();
N3 · Handler初始化及解锁/包事件注册#
位置:efluwe/RP.java:468–510。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
case 9:
zfxgq.yR yRVar = (zfxgq.yR) this.r1;
final fhuzti.Ac ac6 = fhuzti.iTm.DwB;
ac6.r1.set(System.currentTimeMillis());
ac6.Hw = 15000L;
ac6.ZV3aD = (ecjnwa.SltkD) yRVar.Z6;
ac6.Z6();
Application applicationXkAhn = T0.XkAhn();
if (applicationXkAhn != null) {
try {
IntentFilter intentFilter2 = new IntentFilter();
intentFilter2.addAction("android.intent.action.USER_PRESENT");
yA.Rt4(applicationXkAhn, new Z294(), intentFilter2, 2);
break;
} catch (Throwable unused5) {
}
Runnable runnable = new Runnable() { // from class: fhuzti.NcEpC
@Override // java.lang.Runnable
public final void run() {
int i13 = i7;
Ac ac7 = ac6;
switch (i13) {
case 0:
ac7.DwB(false);
break;
case 1:
ac7.DwB(false);
break;
case 2:
ac7.DwB(false);
break;
default:
ac7.DwB(false);
break;
}
}
};
IntentFilter intentFilter3 = new IntentFilter();
intentFilter3.addAction("android.intent.action.PACKAGE_ADDED");
intentFilter3.addAction("android.intent.action.PACKAGE_REMOVED");
intentFilter3.addDataScheme("package");
try {
yA.Rt4(applicationXkAhn, new a4(runnable, i4), intentFilter3, 2);
N4 · 强制/普通检查与重排#
位置:fhuzti/Ac.java:18–43。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public final void DwB(boolean z) {
long jCurrentTimeMillis = System.currentTimeMillis();
AtomicLong atomicLong = this.r1;
if (z || Math.abs(jCurrentTimeMillis - atomicLong.get()) >= this.Hw) {
atomicLong.set(jCurrentTimeMillis);
SltkD sltkD = this.ZV3aD;
if (sltkD != null) {
sltkD.accept(Boolean.valueOf(z));
}
Z6();
}
}
public final void Z6() {
Handler handler = this.Z6;
handler.removeMessages(1024);
handler.removeCallbacksAndMessages(null);
handler.sendEmptyMessageDelayed(1024, this.Hw);
}
@Override // android.os.Handler.Callback
public final boolean handleMessage(Message message) {
if (message.what == 1024) {
DwB(false);
Z6();
}
N5 · 待发事件模型的边界#
位置:com/phone/cleaner/wafaApps/helper/pushmanage/PendingPush.java:4–10。下列为这个范围的反编译阅读片段;复杂方法的其余部分仍须回到源文件,不能把片段称为完整原始源码。
public class PendingPush {
public String pushType;
public WatchPackage watchPackage;
public PendingPush(String str, WatchPackage watchPackage) {
this.pushType = str;
this.watchPackage = watchPackage;
六专题导航#
| 专题 | 用途 |
|---|---|
| 产品功能与商业化分析 | 业务任务、页面、广告与来源链 |
| 权限与后台机制拆包报告 | 声明、调用、实际授权和功能边界 |
| 保活与拉活反编译代码册 | 机制图、主链步骤、代码片段与控制流修复 |
| 拉活通知规则与文案全量报告 | 触发、状态、频控、动作、候选和多语言全文 |
| 样本与证据索引 | 版本、split、签名、定位与证据范围 |
| 真机动态验证与后台存活报告 | 真实操作、后台矩阵、观察与未执行项 |