腾讯极光盒子 A4111(Amlogic S905X4 / Android 11 / userdebug)在待机后自动安装应用、自动拉起特定 APP 刷视频流量。用户是设备所有者,要让自己的设备停止这种行为。
取证已完成,根因明确(三路只读取证 + 卡刷包离线分析,全部带原始命令输出)。
根因(一句话)
这台盒子从开机起就没睡过,所以恶意逻辑不需要任何唤醒机制。
mSleepTimeoutSetting=2147483647 ← 永不睡眠
mLastSleepTime=0 ← 本次开机 3h14m 内从未 sleep
deviceidle: mState=ACTIVE ← Doze 从未进入
Next kernel wakeup alarm: 0 ← 内核层零个唤醒闹钟
mScreenOffTimeoutSetting=240000 ← 4 分钟无操作 → 进创维广告屏保
用户所说的"休眠"实际是 com.skyworthdigital.OTT.advert.app 的广告屏保 DreamActivity。
因为 CPU 永不挂起、Doze 永远 ACTIVE,恶意逻辑只用进程内 postDelayed 循环即可永久运行,
无需注册 AlarmManager 或 JobScheduler —— 这解释了为什么这两处查下来一个可疑项都没有。
作案链(logcat + 数据库双向印证)
总调度器是 com.skyworthdigital.ottstatsv2(不是应用商店,也不是那两个伪装包):
12:08:49.268 屏保 DreamActivity 启动
12:08:59.529 屏保仅存活 10 秒被 finish ← ottStats.db 中 plan 19666 的
lastShowTime=12:08:59.536,相差 7ms
12:09:00.556 volume_changed [3,7,0,15,com.skyworthdigital.ottstatsv2] ← 静音
12:09:00.586 startActivity com.huya.nftv/TVTransferActivity
smtv://huya.com/live?uid=1239543864985&externalsource=chuangweihz
flags=0x10000000 (NEW_TASK)
12:09:05.911 LivingRoomActivity 打开,开始拉流
12:09:14.194 volume_changed [3,0,7,15,com.skyworthdigital.ottstatsv2] ← 音量复原
发起方归因:sysui_multi_action 字段 904,com.skyworthdigital.ottstatsv2。
深链中 uid=1239543864985 = 指定直播间,externalsource=chuangweihz = 结算渠道号。
任务状态机直接落盘(runningDuration.xml),目标包名硬编码在字段里:
<boolean name="huya_start" value="false" />
<string name="packagename">com.huya.nftv</string>
<int name="volume" value="7" /> <!-- 存原音量以便复原 -->
<boolean name="mute" value="false" />
用户离开检测:leavetime=42116955(≈11h42m)、screen_off_time、upload_interval=600000。
刷量形态实证(UsageStats):totalTimeVisible="00:11" 但 totalTimeFS="08:08"
—— 画面只闪 11 秒,前台服务跑了 8 分钟,流量在画面退掉后继续走。
三条并行的变现业务
┌───────┬──────────────────────────┬──────────┬──────────┬───────┬───────────────────────────────────────────────────────────────────────────┐
│ uid │ 包 │ 下行 │ 上行 │ 比 │ 性质 │
├───────┼──────────────────────────┼──────────┼──────────┼───────┼───────────────────────────────────────────────────────────────────────────┤
│ 10043 │ com.android.syswidget │ 142.5 MB │ 142.1 MB │ 0.997 │ 流量中转/代理(收发 1:1,13 条外连到 12341/12342/12381/10218 等非标端口) │
├───────┼──────────────────────────┼──────────┼──────────┼───────┼───────────────────────────────────────────────────────────────────────────┤
│ 10055 │ com.huya.nftv │ 26.7 MB │ 1.55 MB │ 0.06 │ 刷视频流量(被 ottstatsv2 拉起) │
├───────┼──────────────────────────┼──────────┼──────────┼───────┼───────────────────────────────────────────────────────────────────────────┤
│ 10037 │ com.android.noticewidget │ 5.89 MB │ 3.79 MB │ 0.64 │ P2P CDN / 带宽共享节点 │
└───────┴──────────────────────────┴──────────┴──────────┴───────┴───────────────────────────────────────────────────────────────────────────┘
noticewidget 投放了 2.7 MB 原生 ELF sn(comm 伪装成 APP):
sn -d .../files/guluCache -s 0332853700221300014072 -m 4 -r 1024
-s 参数与 ROM 属性 persist.sys.hwconfig.seq_id 完全相同(出厂序列号),
缓存实占 4.0 GB,pay_storage/special_pay_storage 是收益结算账本,
并且监听 0.0.0.0:27327 与 [::]:45746(对公网开放入站端口)。
syswidget 的 [xfj_*] 是它 fork 的原生 worker 的僵尸遗骸(全部 State: Z),
真实载荷是运行时下载的 libcxfjch001.so / libcxfjabe.so(每次开机刷新),
配置 config_info.xml: space_time=258000(4m18s 进程内 C2 轮询)。
外泄数据:公网 IP ***.***.***.***、地理位置 China/*****/*****、
MAC 10:55:**:**:***:**(取自出厂 persist.sys.hwconfig.stb_id)。
设备身份的关键事实
官方卡刷包 : .../RQ2A.210305.007/eng.autobu.20210710.173224:userdebug/dev-keys
本机实际 : .../RQ2A.210305.007/eng.root.20250717.113321:userdebug/dev-keys
^^^^ 构建账号 root,日期 2025-07-17
官方构建不会用 root 作构建账号 → 设备跑的是第三方 2025-07 重打包的 ROM。
com.android.syswidget / com.android.noticewidget / com.hezi.remoteinstaller
三个包用的是本机平台签名(与 android 包同一把 key d2039a9b)
→ 做这个 ROM 的人自己签、自己通过厂商 OTA 通道装的预置灰产。
第三方还往 system 分区塞了 6 个应用(adb 层清不掉)
设备 super.img 的 5 个逻辑分区已挂载解析,与官方包做差集:
/system/app/PAIAlistServer-origin/ 35858488 com.xiaopaitech.alistserver ← Alist 文件服务器
/system/app/PaiCloudDrive-origin/ 25831289 com.xiaopaitech.paicd2 ← 网盘客户端
/system/app/PaiPackageInstaller-origin/ 3938908 com.xiaopaitech.packageinstaller ← 自研静默安装器
/system/app/videocall-origin/ 89793450 com.xiaopaitech.videocall ← 89 MB
/system/app/tianciad/tianciad.apk 4080534 com.tianci.ad ← 天赐广告 SDK
/system/app/SkyOttAdvert-origin/ 14837858 com.skyworthdigital.ott.advert.app(官方在别的目录,被换名+扩容 2.5 倍)
system 分区相应从官方的 879,837,184 涨到 1,052,921,856(+173 MB)。
卡刷官方包:已验证可行(五项前置全绿),但不能替代第 1–3 层
┌──────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────┐
│ 检查项 │ 结果 │
├──────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤
│ AVB 回滚保护(3 个 rollback_index_location) │ |