核心痛点问题: 三星应用商店 (Galaxy Store) 有着极度恶心的锁区机制,比如想下载 Good Lock 海外独占插件。 除了传统的“暴力拔掉手机卡 + 挂梯子”以及“Root 强行改代码”之外,还有没有更优雅的方法切换到非大陆区?
TL;DR 极速省流版结论:直接在卡槽 2 里塞一张非大陆运营商发行的低价海外 SIM 废卡。
底层技术原理硬核科普
众所周知,光靠刷外版系统 ROM 是骗不过三星应用商店的。因为它底层首选抓取的是你手机里那张实体 SIM 卡的 MCC (Mobile Country Code,移动国家代码) 物理基带信息。如果没插卡读不到,它才会退而求其次去扫描你的网络节点 GeoIP 来决定给你推送哪个国家的商店。
但这其中有一个关键的技术点:三星这种频繁要求用户拔卡的操作极其毁硬件!三星的卡槽做工普遍比较脆弱,插拔几十次塑料边框就会断裂卡死(我朋友和我对象都惨痛中招过)。所以必须找到不用拔卡的方法。
MCC 的信息获取在基带里其实分为两种:
- HPLMN (Home Public Land Mobile Network,归属网络):由该 SIM 卡发行国的运营商出厂时直接硬件写入到卡芯片里的绝对标识。
- SPLMN (Serving Public Land Mobile Network,服务网络):当你带着卡出国漫游时,动态接入到当地基站后下发的临时服务网络标识。
这两种数据都保存在卡的 IMSI (国际移动用户识别码) 中。三星应用商店这帮程序员写的代码判定非常死板,它只看死硬件写入的 HPLMN 数据,根本不管你现在到底连接在哪个国家的网络基站 (SPLMN) 上!
验证方法: 打开三星系统自带的拨号盘,输入
*#0011#进入极其底层的基带工程模式 (ServiceMode),点进 SIM 卡的 information 面板。 比如我插的中国电信卡,里面会显示:HPLMN(460-11)Serving PLMN(460-11)前三位的460就是代表中国大陆的物理 MCC 代码。只要商店读到这个代码,哪怕你挂十层代理,你也是被锁在国区!
优雅无痛的解决方案
既然三星只看 HPLMN 硬件代码,那解决逻辑就极其简单了:买一张便宜的国外实体手机卡塞在备用卡槽里就行了! 这种卡在淘宝或京东搜“海外流量卡”到处都是。甚至由于我们根本不需要这卡发信号上网,你买一张已经过期注销的废卡、盲盒卡都完全可以!因为它芯片出厂时写入的 HPLMN 归属地数据永远都在。
操作步骤:
- 把买来的海外废卡插在手机的卡槽 2 里并启用。
- 前往手机设置 -> 应用,找到
Galaxy Store (应用商店),强行停止它的运行并清除一次缓存。- (注:如果你是国行原版系统,国行内置的商店 APK 是特殊阉割版。你需要先去应用信息里点击右上角给它“卸载更新”,然后去 Apkmirror 下载覆盖安装一个纯净版的国际官方包。)
- 下拉通知栏的快捷控制中心,把【移动数据】切换默认走卡 2。
- 打开全局代理网络,此时重新点击打开三星应用商店。
- 瞬间跨区成功!商店货币变成外币,海外软件全部解锁下载。不需要了再把数据切换回卡 1 即可。
实例: 我对象送了我一张英国 Vodafone 的废卡(已经停机注销了)。插入后查询工程模式显示:
HPLMN(234-15)(234 代表英国)Serving PLMN(0-0)(显示没有信号服务) 但是由于 HPLMN 的存在,商店直接把我精准定位到了英国区,完美下载 Good Lock 全家桶。
附:我反编译拆解了商店最新的核心 APK,里面硬编码支持无痛切换的本地化服务 MCC 物理白名单数组如下:
<integer-array name="matched_mcc"><item>505</item><item>722</item><item>724</item><item>302</item><item>460</item><item>262</item><item>208</item><item>234</item><item>454</item><item>510</item><item>404</item><item>440</item><item>450</item><item>455</item><item>250</item><item>466</item><item>255</item><item>310</item><item>452</item></integer-array>