最近,小米MIUI的一次更新引起了轩然大波。在最新版本的小米手机操作系统——MIUI12中,有一个功能叫做“光晕”。顾名思义,这个功能就是把一些以前在黑暗中的东西暴露在强光下,让用户一目了然。在“flare”中,用户可以看到某个应用“自启动”、被其他应用启动、读取设备数据等具体行为。手机APP原本不为人知的动作,一目了然。MIUI12flare功能部分截图,左侧为App自启动情况,右侧为App唤醒情况|个别MIUI应用在后台“反复跳转”,频繁启动各种“全家桶”应用,读取用户隐私信息。该问题在社交网络上引起了数码圈和产品圈的诸多讨论。为什么这些应用会在后台反复刷新数据?自启动和读取数据对开发者有什么好处?普通用户如何防范?刷用户、搜数据,APP启动的目的是什么?App自启动其实并不是什么新鲜事,Android平台也赋予了开发者这种能力,但很多时候这种能力在商业场景中被滥用了。想要了解App的自启动,首先要了解Android的核心。它是一个开放开源的平台,它的追求是被尽可能多的设备所使用。因此,对于Android来说,它想要覆盖的不仅仅是手机市场,广告机、自助售票机等很多场景化设备也是Android的猎物。想要收获更多的应用场景,就必须要有足够的接口支持。对于广告机等设备,开机时自动进入应用程序即可,即插即用。所以Android在设计之初就支持应用程序的自启动,需要它的app可以通过调用API接口来实现。Android的用心是好的,但有些开发者却用坏了它。既然可以自启动,一些APP就开始利用这个API接口来偷偷自启动,一方面刷新DAU(DailyActiveUsers),另一方面在后台采集数据。不要小看手机中的数据,它对应用程序开发人员来说非常宝贵。地理位置、录音、通讯录、剪贴板、相册等都是可以挖掘的数据金矿。以网约车应用为例。很多时候,为了提升用户体验,平台会设置贴心功能。当用户打开应用程序时,系统会自动猜测用户想去的目的地。例如,用户早上在家附近打开打车APP,系统会自动推荐目的地为公司所在地。晚上,用户在公司附近打开APP,系统猜测用户正在接孩子放学,并自动推荐孩子的学校地址。该功能的实现主要基于用户在平台的交易记录,但如果用户的交易数据不够,系统需要更丰富的用户地理位置数据来预测用户的生活轨迹。这个问题有一个简单可行的解决方案,就是每隔一段时间在后台唤醒App,自动采集用户的地理位置。又比如,现在的支付APP都具备了免密支付的功能。用户在频繁活动的地点进行小额交易时,无需输入密码或扫描面部进行验证。这背后也需要App定时唤醒获取用户的地理位置数据进行风控。受益于App自启动的不仅仅是打车和支付这两个场景。事实上,对于大多数应用来说,拥有自启动能力是一件零成本高利润的事情。甚至万一哪天用到,很多APP在开发之初就预留了这个能力。一般来说,大公司的APP受到的监管更多,也会相对规范,自启的目的更多是为了更好的服务用户。相比之下,一些小公司的申请路径会比较野。比如偷偷开启麦克风监听或录音,或者访问相册获取私密照片等,这些用户数据会被打包出售,甚至可能被卖给黑产。这样一来,用户不仅面临隐私泄露的风险,更容易遭受人身和财产安全的威胁。互相唤醒:卡顿发热的罪魁祸首Android的开放带来了很多“玩法”,其中最典型的就是App的双进程。简单的理解就是当用户启动app时,同时启动了app的两个进程。当用户关闭应用程序时,一个进程被终止,另一个仍在后台运行。这个操作的目的其实和自启动是一样的:刷新DAU,获取用户数据。两者给用户带来的困扰也是一样的:隐私泄露。此外,由于这个“杀不死”的进程一直在后台运行,用户的手机很快就会发热死机,需要关机重启,用户体验直线下降。事实上,“进程保活”一直是App开发者与Android系统交锋的焦点。很多从莽撞时期成长起来的APP,如果把后台进程杀掉,它的“商业模式”就会发生根本性的动摇。但安卓要对终端用户友好,所以在每次版本升级中,都在更新阻碍开发者“保持进程存活”的方法。总有比你优秀的人。在与Android的长期斗争中,应用程序开发人员挤在一起取暖。同一个生态内的App相互配合,一个被杀掉,一个又拉上来。在技??术界,这种方法被称为“进程永生化技术”。在一开始的“耀斑”截图中,你会发现有些应用会在后台唤起另一个应用,很有可能是在互相保活。另外,一个App唤醒另一个App,也可能是为了广告。比如A公司在B公司的APP上做广告,B公司的每一次点击都会给A带来收益。所以B假装用户在后台点击了A,那么在A看来就是“真实用户的”点击”。B欺骗A,从广告效果上来说,肯定会给A造成损失,App除了保活刷卡,还可能互相唤醒,交换数据。例如,来自社交应用程序的数据可能对在线购物应用程序有用。通过关系链的拉动,可以精准进行用户画像,识别购买需求。但这种数据交换操作,在巨头还没有形成生态之前,就已经通过API接口发生在用户手机上。随着生态,尤其是各个公司开始搭建中台后,用户数据的交换也慢慢转移到了服务器层面。“点亮”之后,下一步是什么?这么多玩法,是不是觉得防不胜防?其实,最基本、最有效的防御就是用户对App权限的控制。如果应用程序没有访问权限,那么它每天自行启动多少次都没有关系。但并非所有人都有意识和能力关注手机的权限管理,尤其是老年人。因此,监管机构和平台需要共同承担责任。平台是否有动力承担这个责任,其实需要质疑。识别违规应用并督促其下架整改,需要成本投入。目前国内很多应用商店的背后都是手机硬件厂商。如果手机厂商抱着“卖一个算一个”的思路,后续的服务就很难跟上。MIUI是小米商业化的重要支点,所以从商业的角度来看,小米是有动力做这件事的。“信号弹”功能确实给MIUI平台上的App合规性带来了提醒。谁自启动了,谁启动了谁,谁的启动请求被系统拒绝了……这些本该让用户知道的信息,现在都一目了然。“照明弹”推出后,小米收获了很多好评,但也有人说这是噱头,并没有从根本上解决问题。即便是小米,也未必有勇气在上架前彻底整改违规应用。此外,大多数人可能甚至没有意识到耀斑照亮了什么。因此,关于用户数据的保护和商业道德的提升,依靠企业的自律只是起点,这件事只有更多用户的觉醒才能完成。
