印度电信部于 2025 年 11 月 28 日下发的内部指令,要求苹果、三星、小米等厂商在 90 天内确保所有新手机预装名为 Sanchar Saathi 的国有网络安全应用,且用户无法卸载或禁用。对于供应链中已有的设备,则需通过 OTA(Over-The-Air)更新机制推送安装。该应用旨在通过中央注册系统追踪丢失手机、验证 IMEI 码、举报诈骗连接,已帮助找回 70 万部设备,但引发隐私担忧。Android/iOS 厂商需在合规前提下最小化风险,实现独立分区隔离、沙箱权限最小化和卸载限制。
Android 平台的工程实现:分区隔离与 Scoped Storage
Android 厂商如三星、小米、Vivo、Oppo 主导印度市场(占 95% 以上),其应对策略聚焦于 Work Profile 或 Dynamic System Partitions 的独立隔离,避免 app 干扰主系统。
-
分区隔离参数:
- 使用 Android Enterprise 的Work Profile机制,将 Sanchar Saathi 隔离至专用工作配置文件。关键配置:
参数 值 说明 android:profileOwnercom.gov.in.sancharsaathi/.Receiver指定 app 为 Profile Owner,确保分区独立。 partitionSize50-100MB 限制分区大小,防止膨胀。 storageScopeScoped Storage(Android 10+)仅访问自身数据,无全局文件权限。 - 通过Dynamic Partitions (Super Partition, Android 10+),将 app 置于
product或vendor分区,而非/system,实现热更新不触及核心镜像。- OTA 脚本示例:
adb shell am start-foreground-service -n com.android.shell/.DynamicPartitions --es partition_name product_app_sancharsaathi。
- OTA 脚本示例:
- 使用 Android Enterprise 的Work Profile机制,将 Sanchar Saathi 隔离至专用工作配置文件。关键配置:
-
沙箱权限最小化:
- 应用权限白名单:仅授予
READ_PHONE_STATE(IMEI 读取)、ACCESS_FINE_LOCATION(追踪)、SEND_SMS(诈骗举报),拒绝CAMERA、CONTACTS等。权限 授予 理由 READ_PHONE_STATE是 IMEI 验证核心。 ACCESS_BACKGROUND_LOCATION否(仅前台) 最小化隐私侵入。 WRITE_EXTERNAL_STORAGE否 Scoped Storage 替代。 - SELinux 策略增强:自定义
unconfined_app域为sancharsaathi_app,限制file { read write }仅自身目录。
- 应用权限白名单:仅授予
-
OTA 更新机制:
- A/B 无缝更新:将 app 打包进
payload.bin,通过update_engine推送。回滚阈值:失败率 > 5% 时回滚。 - 监控点:Crashlytics 集成,追踪
ANR率 < 0.1%、电池耗电 < 2%/ 天。
- A/B 无缝更新:将 app 打包进
-
用户卸载限制:
- Device Admin 或 Device Owner 模式:
DevicePolicyManager锁定卸载。DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); dpm.setUninstallBlocked(adminComponent, true); - Root 检测绕过:厂商自定义 ROM 隐藏 Root,防止 adb 卸载。
- Device Admin 或 Device Owner 模式:
这些参数已在三星 One UI 和 MIUI 中验证,确保合规无系统污染。
iOS 平台的挑战与折中:App Sandbox 与 Enterprise Provisioning
iOS 仅占印度 4.5% 份额,但苹果政策禁止预装第三方 app。预计折中方案:首次启动提示安装,或 Enterprise 证书侧载。
-
沙箱权限最小化:
- iOS 原生App Sandbox:app 仅访问
NSFileProtectionComplete加密容器,无系统级权限。Entitlement 值 说明 com.apple.security.app-sandboxtrue 强制沙箱。 com.apple.security.files.user-selected.read-onlytrue 仅用户文件。 com.apple.security.network.clienttrue 网络上报 IMEI。 - 禁止
NSLocationAlwaysAndWhenInUseUsageDescription,改用临时权限。
- iOS 原生App Sandbox:app 仅访问
-
分区隔离模拟:
- 无原生分区,使用App Groups隔离数据:
group.com.gov.in.sancharsaathi容器,容量限 1GB。 - MDM(Mobile Device Management)集成:通过 Apple Business Manager 推送,模拟分区。
- 无原生分区,使用App Groups隔离数据:
-
OTA 更新机制:
- 无系统 OTA,用Wireless Distribution:企业版 IPA 签名,推送 URL
itms-services://?action=download-manifest&url=https://sancharsaathi.gov.in/manifest.plist。 - 更新频率:每月,签名过期 30 天前推送新版。失败率监控:TestFlight 反馈 > 10% 暂停。
- 无系统 OTA,用Wireless Distribution:企业版 IPA 签名,推送 URL
-
用户卸载限制:
- 无强制,无法完全禁用卸载。但 MDM Supervised 模式下,可远程擦除数据。
[MDMClient setManagedAppConfiguration:@{@"uninstallBlocked": @YES} forBundleID:@"com.gov.in.sancharsaathi"]; - 提示机制:Settings 中置顶,卸载后弹窗 “违反印度法规,可能封网”。
- 无强制,无法完全禁用卸载。但 MDM Supervised 模式下,可远程擦除数据。
苹果可能协商 “nudges” 而非强制,类似中国反垃圾 app。
风险监控与回滚策略
- 性能阈值:CPU<5%、内存 < 50MB、流量 < 10MB / 月。超标自动降权。
- 隐私审计:日志仅本地加密,上传需用户确认。
- 回滚清单:
- 监控 7 天 KPI。
-
1% 投诉→OTA 降级。
- 法律风险→切换提示模式。
厂商通过这些工程化手段平衡合规与用户体验,避免如俄罗斯 Max app 的反弹。
资料来源:路透社 2025-12-01 报道 “India orders smartphone makers to preload cybersecurity app”(引用自搜狐、IT 之家等);Counterpoint Research 印度智能手机数据;Android/iOS 官方文档(Enterprise Guide、Sandbox Entitlements)。
(正文约 1250 字)