【警告】支付宝后台服务会妨害 rMBP 的显示效能(更新灭活脚本)

【警告】支付宝后台服务会妨害 rMBP 的显示效能(更新灭活脚本)

我先说一下我的经历(结论写在文末了)。

我自从换用 Haswell 平台的 MacBook Pro 15-inch (下文简称 rMBP15)开始,就一直饱受其显示效能之苦,在 BugReport 平台吐槽 Dock 当中的 Application Column 气泡显示缓慢的问题、也按照对方的要求将系统报告生成并递交之,却迟迟没有得到什么正面回音。

碰巧,上周 Reading Week 放假的时候,我一个哥们收了个二手的 mid-2014 世代的 rMBP13。他是 Aqua 介面的忠实拥护者,用线上还原系统灌回了 OS X Mavericks。但他却和我一样讨厌自 OS X Lion 开始从 iOS 移植过来的 SpringBoard。于是,我向他安利了 Dock 当中的 Application Column 气泡(就是将 Application 资料夹拽到 Dock 上,使其变成可以展开的气泡视图):

但,让我瞠目结舌的是:这气泡在他的电脑上显示得相当快、快比 MacBook Air。这何以让我瞠目结舌呢?因为,在 Apple Special Event October 2013 的那天,我就下单订购了 rMBP 15 Haswell(后来因为无法被官方诊断原因的发热问题、在次年同期拿回当地的授权经销商加价升级到现在用的 mid-2014 rMBP 独显 SKU 机种)…

【注】当初在官方网站订购时的 CPU 是被我冲到最顶配的,但后来被刘瀚中劝告说 Apple 的笔电最好买 SKU 机种(自订升级 CPU 的话,内建的散热系统不一定能够提供更多的散热效能,自然会出现发热失控的情形)。

…彼时的原厂系统自然是 Mavericks,且我在刚拿到笔电的时候就用系统移转辅助程式做了整机的资料迁移(包括系统在内)。那时我用 Mavericks 就一直没发现 Dock 的应用程式气泡有正常过──一直都在那里卡,卡得要命。后来一直到 El Capitan 推送了 10.11.2 正式版更新,才发现有明显变快…至少不像之前那样卡得一逼了,但还是能够觉查出迟钝感。


在 Reading Week 的最后一天,我手动给我的 mid-2014 rMBP 笔电清扫灰尘,但没想到在装回零件之后发现 FaceTime 摄影机罢工。于是用 TimeMachine 整机备份后、直接清空 SSD 送修。当地的授权维修站看我 AppleCare 在保,直接给我免费换了一整个萤幕元件组(因为他发现摄影机的缆线出了问题)。我在两天前取回机器之后,在准备恢复资料之前,拿里面的原厂系统做了 Application Column 气泡实验。结果发现 Iris Pro 带著这气泡介面有些迟钝(尤其是在背景播放视讯的时候,且我只是用 Finder 预览视讯)、但在 NVidia GT750m 独显锁定的情况下则毫无迟滞感。

这促使我怀疑我的系统备份本身出了问题。我在恢复 TimeMachine 备份之后、便开始著手逐一排查这些年我都一直在用的东西可能产生的启动项目。最终排查到支付宝安全控件随赠的 AlipayDispatcherService,用下述方法移除之(毕竟我在电脑端对支付宝已经没什么刚需了,清一下也无妨)。

先运行「Activity Monitor.app」强行终止 AlipayDispatcherService,
终止不了的话就用安全模式开机,相关方法:
https://support.apple.com/zh-tw/HT201262

再清查如下三个目录,移除其中任何包含 Alipay 字样的档案:
C:\Library\LaunchDaemons\
C:\Library\LaunchAgents\
C:\Users\帐户名称\Library\LaunchAgents

最后定位到如下目录、删掉其中的「AlipayDispatcherService」二进位档案。
C:\Library\Application Support\Alipay\

为防止该服务在使用支付宝支付时卷土重来,
建议就刚才删过的相关档案全部伪造一份放在对应位置、
且锁定其权限(设定权限为「root:wheel 444」,防止被改回原来的档案)。
我在文末写了一份 AppleScript 脚本供大家参考。

清理完毕之后, Application Column 气泡在我电脑上的显示效能总算是恢复到了正常的状态(一定要锁独显,Iris Pro 5200 带著 rMBP 15 的显示器还是有些吃力)。


我已经在 BugReport 当中更新了相关内容,对应编号 #22089042。


P.S.: 这篇文章没在讨论 AlipayDispatcherService 就其它话题方面的嫌疑。倘若有谁对此感兴趣的话,上 Google 一搜一大把,我就不浪费笔墨讨论这些了。

P.P.S.: 支付宝的这些相关档案估计是从我 2013 年之前的电脑上就有了…然后跟著 TimeMachine 一路迁移过来的,而我居然到现在才怀疑到是其 Dispatcher 服务作祟…也真够迟钝的。

P.P.P.S.: 我写了个灭活脚本(AppleScript),不过阿里可能会对此做出防范措施…

GitHub - ShikiSuen/AlipayDispatcherInactivator-OSX: A tool to Inactivate Alipay Dispatcher Service under OS X since El Capitan, not designed for cases of having /System folder polluted.

try
	display dialog "敝脚本会将 AlipayDispatcherService 服务彻底灭活、使其无法继续在后台妨害 OS X 系统介面的视讯效能。其原理就是在该服务尚未加载的前提下、以管理员权限将相关档案全部消灭为 0 byte 的空壳档案、并将权限均设定为「root:wheel 444」(防止写入)。

请在以安全模式开机的前提下执行该脚本,否则可能会导致灭活失败。至于如何以「安全模式」开机,请参考 Apple 相关的官方文章:https://support.apple.com/zh-tw/HT201262

为应对相关档案卷土重来之可能性,您可能需要在每次使用支付宝之后均重新执行该灭活脚本。请今后在安装、使用支付宝的时候不要再出让任何管理员权限。

如果您此时放弃对此灭活的想法的话,现在取消还来得及、相关按钮就在下方。" with title "AlipayDispatcherService 灭活脚本"
	
	do shell script "cd $HOME/Library/LaunchAgents/ && touch com.alipay.adaptor.plist && chown root:wheel com.alipay.adaptor.plist && chmod 444 com.alipay.adaptor.plist" with administrator privileges
	do shell script "cd $HOME/Library/LaunchAgents/ && touch com.alipay.refresher.plist && chown root:wheel com.alipay.refresher.plist && chmod 444 com.alipay.refresher.plist" with administrator privileges
	do shell script "cd /Library/LaunchAgents/ && touch com.alipay.adaptor.plist && chown root:wheel com.alipay.adaptor.plist && chmod 444 com.alipay.adaptor.plist" with administrator privileges
	do shell script "cd /Library/LaunchAgents/ && touch com.alipay.refresher.plist && chown root:wheel com.alipay.refresher.plist && chmod 444 com.alipay.refresher.plist" with administrator privileges
	do shell script "cd /Library/LaunchDaemons/ && touch com.alipay.DispatcherService.plist && chown root:wheel com.alipay.DispatcherService.plist && chmod 444 com.alipay.DispatcherService.plist" with administrator privileges
	do shell script "cd '/Library/Application Support/Alipay/' && touch AlipayDispatcherService && chown root:wheel AlipayDispatcherService && chmod 444 AlipayDispatcherService" with administrator privileges
	do shell script "cd '/Library/Application Support/Alipay/' && touch AlipayDispatcherService.sig && chown root:wheel AlipayDispatcherService.sig && chmod 444 AlipayDispatcherService.sig" with administrator privileges
	display notification "灭活成功。" with title "AlipayDispatcherService 灭活脚本"
	
on error
	display notification "灭活步骤已被取消,相关档案尚未更动。" with title "AlipayDispatcherService 灭活脚本"
end try

# EOF.

编辑于 2016-03-02

文章被以下专栏收录

    敝专栏所涉猎话题包括但不限于美商 Apple 的 3C 电子、作业系统产品及相关的程式研发,也可能与其生活使用体验有关(包括字型),还可能会有其他的跑题。 如果您不习惯阅读简体中文的话,请自备「新同文堂」、以尊重自己的简繁体中文阅读习惯。该提议同样适用于仅习惯阅读简体中文的人士。关于「新同文堂」可参见:http://zhuanlan.zhihu.com/ibuick/20018071 「请看清每一篇文章的作者是谁。不同作者会对自己的文章有不同的智财权主张,但我们始终谢绝无断转载。」