本文最近更新于 2018 年 4 月 28 日「 星期六 」

「写轮眼」的由来

安卓系统的开放性带来极大的便利之余也带来了问题,有不少流氓应用,会在系统内注册一堆 Service(服务)和 Receiver(广播接收器)常驻后台。导致我们虽然只是打开了一个 App,但是在后台已经有多个 App 服务被其唤醒。为解决这个问题,WangQi 同学为我们开发了「My Android Tool」这个十分好用的工具。

My Android Tool,由于 App 图标源于 Itachi’s Mangekyō 的 Sharingan(写轮眼)故又被网友称为「写轮眼」,其也是「禁用服务」的应用升级版。「写轮眼」现在既可禁用服务又能禁用自启,它会从根源上对系统设置进行修改,就算禁用之后卸载它,也依然是有效的,除非清除 App 数据,当然是需要 root 权限的。另外需要注意的是,「写轮眼」卸载掉,被禁用的服务依然为禁用状态,所以如果要卸载「写轮眼」,建议先在「写轮眼」内将禁用的服务恢复。

那么问题来了 — 阻止唤醒的 App 够多了,黑域、黑白门、冰箱、绿色守护……我为什么还需要「写轮眼」?

首先说「冰箱」,以冻结 App 的方式来阻止唤醒,是可以从根本上解决 App 被唤醒的问题,但是对于一些常用到的 App,每次使用都需要解冻这显然不是最好的解决方案。

「黑域」从设计上本是可以阻止唤醒的,但是对于一些顽固的 App 唤醒事件来说,还是不够彻底。例如安装了百度云(7.17.1 版本)、百度地图(9.8.5 版本)、涂书笔记(2.2.2 版本)的情况下,就会出现打开百度云,其余的 App 服务被唤醒的情况。

对于「绿色守护」来说,情况可能是这样(以 MIUI 9 7.8.14 开发版为例),我们依赖 MIUI 自身的框架服务,但是又不希望收到一些不关心的 App 推送,尽管在设置里可以屏蔽推送,但其 App 本身注册的后台进程并未消失,也就是说实际上唤醒并没有被拦截,这个时候我们就需要「写轮眼」了。

相关知识

要想用好「写轮眼」,我们首先需要了解 Android 四大基本组件:Activity 活动、Service 服务、Content Provider 内容提供者、Broadcast Receiver 广播接收器。

Activity 活动

Activity 是用户和应用程序交互的窗口,一个 activity 相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕。
Activity 的生命周期:即“产生、运行、销毁”。但是这其中会调用许多方法 onCreate(创建) 、onStart(激活) 、onResume(恢复) 、onPause(暂停) 、onStop(停止) 、onDestroy(销毁) 、onRestart(重启)。

Service 服务

它跟 Activity 的级别差不多,但不能自己运行,没有用户界面。它能在后台完成长时间运行的操作。比如播放多媒体的时候,用户导航到其它屏幕时,音乐还在后台播放。

BroadcastReceiver 广播接收器

应用可使用它对外部事件(如当电话呼入时,或数据网络可用时)进行接收并做出响应。广播接收器没有用户界面,然而,它们可启动一个 activity 或 service 来响应它们收到的信息。

Content Provider 内容提供者

实现数据共享,用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式。只有需要在多个应用程序间共享数据时才需要 Content Provider。

其中,服务是程序能在后台活动的前提。禁用服务能让软件运行时少占内存,在后台时少唤醒 CPU。

「写轮眼」的一些说明

  • 写轮眼需要 ROOT 权限,且只是禁用到了缓存。

  • 常见英文名称识别:

About:关于(版本号等)
Backup:备份
Debug:BUG
Report:报告
Download:下载
Push:推送通知
Dialog:缓存日志
update:升级服务(QQ 等部分应用的为 Upgrade)
f:定位服务
Media:音频
Auth:连接第三方
share:分享
pay:支付
wallet:钱包
camera:相机
Upload:上传
FloatWindow:悬浮窗
TaobaoIntent:淘宝链接
……

  • com.xiaomi.push、com.huawei.push 等,带 push 的都是推通知送服务,很多软件同时带两个,另外 message 和 notification 也是信息。软件禁用的时候非本软件厂商的服务大多都能禁用(包括 ago)。

  • 常见的可禁用服务:

SDK 多为连接服务,比如使用 QQ,微信,微博登陆(Weibosdkbrower 等);
同时存在于 ads 中(广告)服务,一般带 AD 的均可砍除。包括:igexin.sdk、com.ads.sdk 等;
绝大多数广告服务名称为:ADxxx,均可砍掉。例如:umeng、igexin、Daemon、XMPushService、XstateService、AnalyticeService、DefaultService、XGPushService、XGRemoteService、DebugService、ReportService 等。

  • GCM 为谷歌推送通道,一般通过 Google Play 下载的软件都会带有 Google.gms 服务。如果到谷歌服务器的链接不是很顺畅的话,可以适当关闭一些 App 的 Google 相关服务。

  • 关于备份失败:尝试修改备份的文件名字或者路径,或者先打开「幸运破解器」,给「幸运破解器」授予 root 权限,再打开「写轮眼」(来自 @Robotxm 的玄学提供,未验证)

  • 关于还原失败:很正常。比如之前备份了 100 个 App 的方案,还原时只有 99 个的话也会失败,实际是成功了 99 个,第 100 个失败而已;另外新的版本号、组件、文件名、活动名等不同也会失败。


「写轮眼」通用禁用策略

该通用禁用策略转自 LetITFly BBS

基本能够适用国产大部分毒瘤的禁用,但对于系统软件、日常重要软件(如 QQ、微信、支付宝)、工作需要软件的禁用参考此法则请慎重处理。

首先列出以下服务,随便在那个软件里面看见都能直接禁用。

XMPushService
XGPushService
XGRemoteService
UmengIntentService
UmengLocalNotificationService
UmengMessageCallbackHandlerService
UmengMessageIntentReceiverService
UmengService
PollService
DebugService
ReportService
GetuiExtService
Yolanda
AnalyticeService
DefaultService
NBCacheService
XstateService
OpenUDID
MoPlusService
RollFloatService
ElectionService

下面列出一些关键字,在软件内看见有此关键字的服务也能直接禁用

Daemon
.Ad./.Ads.(万恶的广告服务,需要 MAT Pro 版才能禁用)
log
Monitor

首先介绍一下展开后的全名分析

例如 com.baidu.android.pushservice.CommandService 和 com.xiaomi.mipush.sdk.MessageHandleService

第二个词即是软件的厂商例如 baidu,qq,有些则没有这个,直接被跳过

第三个有些是 android,sdk 有些则是这个服务的大致分类如 mipush

第四个有些是 android,sdk 有些则是这个服务的大致分类如 pushservice

第五个则是我们在没有展开前看到的服务名称

注:有些服务会有 6 个词,在 3 和 4 中间或前后会多出一个,有些服务则只有 4 个词,但并不影响分析,这一块需要自行领悟。

了解了这些我们就能总结出一条规律:软件禁用的时候非本软件厂商的服务大多都能禁用

例如 UC 浏览器内出现了第二个词为 sina 厂商的服务,那么这条服务肯定是可禁的

以下几条服务需要展开核对全名相同后再进行禁用

CommandService(com.baidu.android.pushservice.CommandService)
DownloadingService(com.umeng.update.net.DownloadingService)
MessageHandleService(com.xiaomi.mipush.sdk.MessageHandleService)
PushMessageHandler(com.xiaomi.mipush.sdk.PushMessageHandler)

下面按功能需求进行分类,大家可以各自按对软件所需的功能进行禁用

  • 无需下载功能类

DownloadService
DownloadingService
DownloadProviderService

  • 无需推送类

NotifyService
NotificationService
PushService
MessageService
PushMsgService

  • 无需浮动窗口类 FloatWindowService

  • 无需分享类 ShareService

  • 无需定位 f APSservice

  • 无需扫描SD卡或同步类 SyncService

  • 无需谷歌服务类 GCM(带此关键词的即可禁用)

  • 无需桌面插件类 Widget(带此关键词的即可禁用)

  • 无需更新类 Update(带此关键词的即可禁用)

  • 无需备份类 Backup(带此关键词的即可禁用)

  • 无需上传类 Upload(带此关键词的即可禁用)

下面介绍遇到多个同名服务的时候,或者感到无从下手的时候,这时就需要用到展开看服务全名的方法,下面以迅雷软件为例

这么多 DownloadService 是不是感到不知道禁用哪个

这时你点击展开按钮,就会一目了然,你是迅雷啊喂 sina 和 qq 的 DownloadService 乱入什么,xiaomi 你 push 什么

还有倒数第三条在看全名时名为 PluginProxyService

展开后就能知道它是属于 DLNA 功能插件的一个服务


应用实例

微信:服务禁掉 UpdaterService、CrashUploaderService,活动禁掉含 Game、WIFI、Facebook、Linkedin、Google。

QQ:TroopHomework(作业)、vip 砍掉、theme(主题装扮)、HY(huangye 黄页)、Smartdevice(智能设备比如小米手环连接)、Bless(祝福)、huayang(花样直播)、TBS(腾讯 X5 内核浏览器)、Dingdong、QQstory、NOW。以上均可禁掉。

QQ 极度精简:服务仅留下 msf(好多人想占有 20M 的可以这样做咯

附:麦子使用的「写轮眼」配置备份

原则

禁用某个 App 前先打开一次该 App,查看正在运行的服务,同时禁用时要打开全称(即右上角 <…>)。

广播接收器:配合事件查看比较方便一些,广播大致功能为监控、自启、唤醒、推送、小部件、保持网络等,所以大部分都可以禁用。

特别提醒

「写轮眼」无需后台(但请不要用其它软件刻意阻止)禁用永远有效,除非被禁组件的软件卸载。即使卸载了「写轮眼」,禁用仍然有效(会复活组件的程序除外)。软件更新后,可能新增流氓组件,需根据情况继续禁用。个别软件会重启自己的组件,需要用 Xposed 增强模块 My Android Tools Xposed 来防止复活!

「写轮眼」的禁用效果不需要常驻后台,但是如果需要使用“安装新应用后立刻显示所有组件信息”功能,则需要保证其后台运行。

My Android Tools 专业版特性:

  • 启用/禁用组件(活动,服务,广播接收器,提供商)

红色:禁用
蓝色:正在运行(仅供服务)

  • 显示所有运行的任务和进程(使用 pid 和 uid)

  • 启用/禁用应用程序

  • 显示日志

  • 显示/编辑所有应用程序的分享偏好和数据库

如果你不想动手设置只想坐享其成,网上也有人直接放出了禁用方案的备份文件,将下载好的 txt 文件放在手机 SDCard 根目录,再在写轮眼里点击备份(禁用)即可。备份过程稍长,建议开启屏幕常亮并耐心等待。需要说明的是禁用方案因人而已,建议根据个人情况自己动手禁用并随时备份方案。

关于更多「写轮眼」的调教心得和使用方案等,推荐访问 LetITFly BBShttps://bbs.letitfly.me

LetITFly BBS 的前身是 MAT BBS,致力于让 Android 的使用体验更好。

也欢迎来信、留言或加入「安卓果酱」群组:国内知识星球海外电报群组,加入「写轮眼」的讨论,或者分享自己的备份方案。

下载地址

免费版(Google Play)

付费版(Google Play)


扩展阅读:

MyAndroidTools 介绍 + Android 四大组件简析(非开发者向)

如何正确使用 My Android Tools 调教各大流氓软件?


更新历史

2017/08/20:安卓果酱 初稿发布于深圳
2017/10/22:麦子增加“通用策略”内容 更新于东京
2018/01/25:增加麦子的配置备份,增强模块链接和常驻后台说明
2018/04/29:删除会员计划内容,增加 LetITFly BBS 推荐