在中国用 Android 手机 (1):网络,商店,权限,后台,广告
我想通过这个系列的文章总结我在中国使用 Android 手机的体验以及一些经验。我现在在使用 Pixel 4 这台机器作为我的主力机。它有明显的不足,比如耗电过快、软件不支持中国的网络制式、在今年已经不再提供安全更新;但我对它的喜欢在于 Android 系统的灵活和好玩,手机材质、外形,以及有 2x 变焦镜头。iPhone 12 以及以后的机器采用了棱角外形,我对手里面的 iPhone 好感也在下降,所以想尝试一些新的电子产品。
** 网络制式的支持 **
除非你在用中国联通的移动网络,那么你都需要用 Magisk 对设备完成 root,安装模块解锁移动网络。Pixel 设备的 root 大同小异,电信的解锁模块可能也是通用的。
克莱德, 给国内新用户的 Pixel 7 系列使用指南, 少数派
克莱德, 一日一技 | 为 Google Pixel 6 解锁国内 5G 网络支持, 少数派
需要注意,如少数派的文章所说,Pixel 旧机型使用的 bootloader 解锁命令是:
fastboot oem unlock
参考少数派的第一篇文章完成解锁,这篇文章的步骤比较正规。主要的步骤是:解开 bootloader,使用 Magisk 完成 root,配置 SafetyNet 和完成设备认证。
解锁电信和移动网络的步骤可参照极四维的文章。他贴上的电信解锁模块是有用的。(少数派当中的模块不足以在 Pixel 4 手机上完成解锁,可能是因为 Pixel 6 仅仅需要启用 VoLTE,而更早的机型插入手机卡是没有任何服务的。)
因为极四维的文章里面引用了一些外部链接,我也想在此贴上链接。
volte_enabler_cn_v1.7_2.zip - 这是可以安装到 Magisk 的一个模块,用以为 Pixel 4 手机启用中国 ISP 的移动网络(包括中国电信和中国移动的网络,包括 2G, 3G 和 LTE)。这是备份到 Wayback Machine 的链接。
获取 Google USB 驱动程序, Android 开发者 - 在 Windows 下使用 adb 连接手机需要安装 Google USB 驱动程序。
demj1206170 / EnableSoli, GitHub - 这是可以安装到 Magisk 的一个模块,可以启用 Pixel 4 设备的 Motion Sense 功能。
我在完成了移动网络的解锁以后卸载了 Magisk,这样完成了 unroot。
** 应用商店的选择**
根据 AppInChina 的统计,中国比较主流的应用商店有如下这些:华为应用市场,OPPO 软件商店,Vivo 应用商店,应用宝,小米应用商店,百度手机助手,360 手机助手,三星应用商店。
我在使用 OPPO软件商店,可以去这个页面下载。这个应用商店有一个开屏广告,但是可以利用类似 Surfboard 的应用去拦截掉广告域名。其他的还好,没有什么特别干扰性的内容。
不建议使用腾讯应用宝 - 这个应用会唤醒微信等腾讯的应用,并且利用 Android 的漏洞在后台一直运行服务。(我安装应用宝以后手机立即开始发烫、电池用量上升)。
关于中国应用的状况:
一些中国产应用在 Play Store 上架。在今年这个时间,旧应用的 API 级别至少是 31,新应用的 API 级别至少 33。而中国应用商店的要求只是 API 级别至少 26。
一些在积极维护和更新的应用包括:微信、支付宝、淘宝、微博(以及 WeiboIntl)、QQ 音乐、Bilibili、高德地图、云闪付、滴滴出行等。
一些中国产应用会在 Play Store 和中国应用商店上架不同的版本:Play Store 的应用会有更高的 API level,但是版本号更旧;而中国应用商店会使用更旧的 API level 但是版本号是最新的。
原因可能是 API level 更旧可以得到新 API level 得不到的权限 - 比如 API 30 及以上引入分区存储,应用没有权限去读取和写入存储当中超出自己文件夹的资料。
例如,QQ 在 Play Store 是 API 29,在中国应用商店是 API 26。Play Store 上架的 8.2.11 这一版本于将近 3 年前发布(2020/12/26),在我的设备上甚至不能接收消息通知。
闲鱼在 Play Store 是 API 31,在中国应用商店是 API 29。 Play Store 版本的后一个版本 7.8.90 的发布日期是在半年前(2023/2/2)。同样,我的设备上面也不能够接受到通知,即使把电池设置改为 unlimited。
** 对于权限的管控 **
为了稳定收到闲鱼的聊天提醒,我升级到了中国应用商店版本,但是马上看到了副作用 - Play Store 的版本不需要读取存储就能发送保存照片,但是中国商店的新版本只要保存照片就要存储权限。
我不喜欢中国应用读取我的剪贴板和存储。我的解决办法是使用 App Ops 这个应用来限制应用权限。(这个应用不需要 root 设备,可以通过和 Shizuku 这款 app 联动,使用 Wireless Debugging 来得到控制权限。)
对于中国应用,我会把 read clipboard 设为 ignore(只允许 modify,保证复制的可用),当需要在应用内粘贴时,我会使用 Gboard 的剪贴板功能来粘贴。
对于 API 低于 30 的应用,我会允许”Write storage”以及”Read location information from media files”,但是会把”Read storage”设为”ignore”。
这样做的效果是应用只能读取设备上的照片和影片,读不到存储其他的内容;同时应用也可以在存储上写入任何内容。例如,在闲鱼里面,我可以发送任何照片和影片,也可以保存我看到的照片。
对于中国应用,我还会禁止或者忽略这些权限:
Recognize physical activity
Sensors
Schedule_exact_alarm
Change Wi-Fi state
Modify system settings
Vibrate
Bluetooth_Connect/Advertise
Show Toast
与日历有关的权限
** 关于应用的后台服务和互相唤醒 **
互相唤醒的情况在 2023年已经很少见(除了腾讯应用宝还会使用这种方法)。
绝大多数的中国应用不需要做任何设置,就在 Greenify 里面显示为“background free”(无后台服务)。
一些应用会通过在通知栏显示不可移除通知的办法来 run as foreground(以前台进程运行,会保留以免被系统杀掉),但你可以去应用设置里面看看可不可以关掉,以及可以在 Android 设置里把应用的 battery 设置改为 restricted,即可使得应用不在后台持续运行。
很少数的流氓应用会持续保持 running 状态,而且会带起其他应用,无论怎么做权限和电池管理。(目前只碰到应用宝这一款应用)。对于这类应用,卸载即可。
** 关于中国应用的消息递送 **
一些中国应用置入了 FCM 消息递送,比如 Bilibili,WeChat,闲鱼、联合早报(中国商店版本)。至少在 WeChat 使用境外号码、连接域名走代理的情况下,这个应用没有后台服务留存却能稳定地收到消息通知。
没有置入 FCM 的中国应用在接受消息递送上会不太可靠,一些应用会有时收到、有时收不到(比如新浪微博、中国商店版本的 QQ/TIM),一些应用完全收不到(比如新闻类的澎湃新闻、界面新闻、财新网、第一财经等,至今没有收到一条通知),而且在目前的系统版本(下似乎无论怎么设置 battery 都不能改变这个问题。
中国应用在海外 Android 机器的消息到达问题目前没有解法。但是好在,有即时聊天属性的应用大多数会内置 FCM(或者其他办法)来保证到达率,而大多数没有 FCM 的中国应用,他们弹出的消息通知通常没有那么重要。
** 关于中国网页和应用的弹窗、广告、自动跳转或者下载应用的问题 **
中国的网页到了手机上并没有像海外那样做成 responsive web design,而是会专门做一个移动版,用 m.example.com 的域名。这个移动版往往比主站拥有更多的弹窗和横幅广告、底栏广告和追踪器,以及触发应用跳转或者 apk 文件下载的脚本。
这样的网站很多,比较严重的有新浪,凤凰,豆瓣等等。而京东和淘宝很久以前就会在你搜索和点开任何商品时强制跳转到应用商店,导致移动版几乎无法使用。
Google Chrome 不会阻止应用跳转和文件下载;它也不会询问你,而是会自动完成这些操作。同样,Chrome 移动版没有广告拦截功能(除非是它认为占用太多资源的广告)。
同样,中国的手机应用充斥大量广告。开屏广告,横幅广告,弹窗广告。例如,京东的应用首次注册用户会发现自己不断被强制拉入“新人频道”,被迫看到一个弹窗上出现另一个弹窗,而没有直接退出的途径。我第一次看到这样的情况,直接把应用关掉了。
像滴滴这样的一个打车软件,却存在搬家、借贷等大量的横幅广告,以及以抽奖、折扣为名义的弹窗推广,配色也大多是红黄为主,非常难看和影响视觉。
对于这两个问题,我的解决办法是:
在 Surfboard 这类网络代理应用的 profile 当中 reject 一些域名。可使用 NetCapture 这样的应用去找到包含广告的域名。也可以在配置文件直接加入这一行,使用 anti-AD 项目的广告拦截配置。
DOMAIN-SET,https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-surge2.txt,REJECT
使用 Firefox 浏览器。这一移动浏览器不会自动开始下载,也不会自动跳转到应用。而且,Firefox for Android 目前支持一些 addons,包括 uBlock Origin。你可以订阅内置的过滤列表,另可以订阅 EasyList China 项目的这个过滤列表(可右击 raw 获得列表 URL)。你也可以自行在电脑上测试拦截一些 js 脚本,可自动进行 apk 下载的域名。