让我们看看,手机App背着你都干了什么事

让我们看看,手机App背着你都干了什么事
本文来自微信公众号:极客公园(ID:geekpark) , 作者:在野近期 , MIUI 的一次更新 , 引起了轩然大波 。小米手机最新版操作系统——MIUI 12 中 , 有一个叫做“照明弹”的功能 。 顾名思义 , 这个功能是要把一些之前在黑暗中的东西暴露在强光下 , 让用户一目了然 。在“照明弹”里 , 用户可以看到某一应用“自启动”、被其他应用启动以及读取设备数据等具体行为 , 手机 App 原本不为人知的动作一览无余 。让我们看看,手机App背着你都干了什么事
个别应用在后台“反复横跳” , 频繁启动各种“全家桶”应用 , 读取用户隐私信息 , 这些问题在社交网络上引起了很多数码圈和产品圈人士的讨论 。 这些应用为什么要在后台反复刷数据?对开发厂商来说 , 自启动和读数据会带来哪些好处?普通用户又该如何防范呢?刷用户、收数据 , APP 启动为了什么?App 自启动其实不是什么新鲜事 , Android平台也赋予开发者这种能力 , 只是很多时候在商业背景下 , 这一能力被滥用了 。要想搞明白 App 的自启动 , 首先要清楚 Android 的核心 。 它是一个开放开源的平台 , 追求的是被尽可能多的设备使用 。 因此对于 Android 来说 , 它想要覆盖的 , 并不仅仅是手机市场 , 像广告机、自助购票机等很多场景化的设备也是 Android 的猎物 。想要收获更多的应用场景 , 就要有足够多的接口支持 。 对于广告机等设备来说 , 开机自动进入应用程序、即插即用是刚需 , 因此 Android 在设计之初就支持应用程序自启动 , 有需求的 App 只需调用 API 接口即可实现 。Android 的本意是好的 , 但却被部分开发者用坏了 。 由于可以自启动 , 一些 App 就开始利用这个 API 接口暗戳戳地启动自己 , 一方面刷 DAU(日活用户) , 另一方面在后台收集数据 。不要小看你手机里的数据 , 它们在应用程序开发商那里可是宝贝 。 地理位置、录音、通讯录、剪贴板、相册等等 , 都是有料可挖的数据金矿 。以打车应用为例 。 很多时候 , 为了让用户体验更好 , 平台会设置一项贴心功能 , 用户在打开 App 的同时 , 系统自动猜出用户想要去的目的地 。 比如用户早上在家附近打开叫车 App , 系统会自动推荐目的地是公司所在地 。 傍晚用户在公司附近打开 App , 系统猜测用户是要接小孩放学 , 自动推荐孩子的学校地址 。这一功能的实现主要基于用户在平台上的交易记录 , 但如果用户的交易数据不足够时 , 系统就需要更丰富的用户地理位置数据来预测用户的生活轨迹 。 这一问题有一个简便可行的解决方案 , 那就是每隔一段时间在后台唤醒 App , 自动收集用户的地理位置 。又如 , 现在支付 App 都有免密支付的功能 。 用户在经常活动的位置进行小额交易 , 是不需要输入密码或者刷脸验证的 。 这背后也需要 App 定期唤醒 , 获得用户的地理位置数据 , 从而进行风险控制 。从 App 自启动中受益的不仅仅是打车、支付这两个场景 。 事实上 , 对于大多数 App 来说 , 拥有自启动的能力都是一个零本万利的事 。 甚至为了以防哪天万一用得到 , 很多 App 在开发之初就预留了这一能力 。一般而言 , 大公司的 App 受到更多的监管 , 会相对规范 , 自启动的目的更多是为了更好地服务用户 。 相较之下 , 一些小公司的应用程序路子会更野一些 。比如偷偷启动麦克风监听或录音 , 或者访问相册获取隐私照片等等 。 这些用户数据会被打包售卖 , 甚至有可能被卖给黑产 。 这样一来 , 用户不仅面临着隐私泄漏的风险 , 更有可能遭受人身和财产安全的威胁 。互相唤醒:卡顿、发热的元凶Android 的开放带来了非常多的“玩法” , 其中最为典型的要数 App 的双进程 。 简单的理解是 , 当用户启动 App 时 , 同时启动了这一 App 的两个进程 。 当用户关掉 App 时 , 一个进程被杀死 , 另一个仍在后台运行 。这一操作的目的其实和自启动一样 , 也是刷 DAU , 拿用户数据 。 二者对用户带来的困扰也是相同的——隐私泄漏 。 另外 , 由于这个“杀不死”的进程一直在后台运行 , 导致用户手机很快就会发烫、卡顿 , 需要关机重启 , 使用体验直线下降 。事实上 , “进程保活”一直是 App 开发人员与Android系统的对抗焦点 。 对于从草莽时期诞生的很多 App 来说 , 如果后台进程被杀死 , 那么其“商业模型”将受到根本性的动摇 。 但是 Android 希望对终端用户友好 , 所以在每一个版本的升级中 , 都在更新阻碍开发者“进程保活”的方法 。魔高一尺 , 道高一丈 。 在与 Android 长期抗争的过程中 , App 开发人员开始抱团取暖 。 同一生态下的 App 互相合作 , 一个被杀死了 , 另一个再把它拉起来 。 在技术社区内 , 这一方法被称为“进程永生技术” 。在文章开篇截图中 , 你会发现有些 App 会在后台唤起另一个 App , 很可能就是在互相保活 。 另外 , 一个 App 唤醒另一个 App , 也可能是为了广告刷量 。比如 A 公司在 B 公司的 App 上投广告 , 那么通过 B 向 A 导流的每一次点击都会为 B 带来营收 。 所以 B 在后台假装用户点击 A , 那么在 A 看来就是一个“真实用户的点击” 。 B 欺骗 A , 从广告效果来说 , 肯定会对 A 造成损失 。除保活和刷量之外 , App 之间互相唤醒还有交换数据的可能 。 举例而言 , 社交 App 的数据对网购 App 来说很有用 。 通过关系链的拉取 , 能够精准进行用户画像 , 识别购买需求 。不过 , 这种数据交换的操作在巨头们没有形成生态之前 , 是通过 API 接口发生在用户手机上的 。 在有了生态 , 特别是各公司纷纷开始建立中台之后 , 用户数据的交换就慢慢地转移到服务器层面了 。“照明”之后 , 接下来怎么办?玩法这么多 , 感觉防不胜防?事实上 , 最基本也是最有效的防范 , 是用户对 App 权限的控制 。 如果 App 没有访问权限 , 那么它每天自启动多少次都是徒劳 。但并不是所有的人都有意识、有能力关注手机的权限管理 , 对于上了年纪的人来说更似如此 。 因此 , 监管方和平台方需要共同负起责任 。当然 , 平台方是否有动力负这个责任 , 其实是需要打个问号的 。 要想识别违规 App 并督促其下架整改 , 需要成本投入 。 目前国内很多应用商店的背后 , 是手机硬件厂商 。 如果手机厂商抱着“卖一台算一台”的想法 , 后续服务就很难跟上 。MIUI 是小米商业化的重要支点 , 因此从商业角度来说 , 小米有动力做这件事 。 “照明弹”功能也确实给 App 的合规性带来了警醒 。 谁自启动了 , 谁启动了谁 , 谁的启动请求被系统拒绝了…… 这些原本就应该让用户知道的信息 , 如今被清晰地展现出来 。“照明弹”推出之后 , 获得了不少好评 , 但也有不少人说该功能不过是个噱头 , 因为并没有从根本上解决问题 。 即便是小米 , 可能也没勇气彻底让违规的 App 整改后再上架 。另外 , 大部分人或许根本没有意识到这“照明弹”到底照亮了什么 。 所以 , 关于用户数据保护和商业伦理的提升 , 靠企业的自我约束只是起点 , 这件事最终只有靠更多用户的觉醒来完成 。


推荐阅读