首页
/ Nrfr:免Root SIM卡国家码修改工具完全指南

Nrfr:免Root SIM卡国家码修改工具完全指南

2026-02-06 04:14:40作者:殷蕙予

一、核心功能解析

1.1 项目定位与价值

Nrfr是一款免Root的SIM卡国家码修改工具(国家码:标识SIM卡所属国家/地区的代码),通过系统级API调用实现运营商配置调整,解决国际漫游兼容性问题,帮助用户突破区域限制服务访问。

Nrfr工具界面 图1:Nrfr快速启动工具与Android应用界面对比

1.2 核心解决场景

  • 运营商配置优化:修复手机无法识别本地运营商、网络参数不匹配问题
  • 区域服务解锁:突破TikTok、Samsung Health等应用的地区限制
  • 漫游兼容性修复:解决国际漫游时运营商名称显示异常、功能缺失问题
  • 双卡设备管理:支持双SIM卡独立配置,满足多地区服务需求

二、技术架构解析

2.1 目录结构详解

目录路径 功能作用 包含内容 技术特点
app/ Android应用主目录 源代码、资源文件、构建配置 基于Jetpack Compose开发,最小支持Android 8.0
nrfr-client/ 桌面端快速启动工具 Go后端、React前端、构建脚本 Wails框架开发,跨平台支持,集成ADB功能
docs/ 项目文档资源 使用说明、界面截图 Markdown格式,包含操作流程图解

💡 架构设计亮点:采用"桌面工具+移动应用"分离架构,桌面端负责设备连接与部署,移动端专注核心功能实现,通过ADB桥接实现跨端协作。

2.2 核心技术实现

Nrfr通过Android系统原生API(CarrierConfigLoader) 实现功能,工作原理类似"给系统装了个翻译器"——不修改SIM卡本身,而是改变系统对SIM卡信息的解读方式:

  1. 通过Shizuku获取必要系统权限(无需Root)
  2. 调用隐藏API修改运营商配置参数
  3. 实现配置持久化,确保重启后设置保持
  4. 提供一键还原功能,保障系统安全

Nrfr工作原理 图2:Nrfr Android应用工作流程示意

三、开发与使用指南

3.1 环境搭建

3.1.1 开发环境要求

  • Android应用:Android Studio 2023.1+、Gradle 8.0+、Kotlin 1.9+
  • 客户端工具:Go 1.21+、Node.js 16+、Wails 2.0+

📌 前置准备

# 安装Wails框架(客户端开发必需)
go install github.com/wailsapp/wails/v2/cmd/wails@latest

3.1.2 项目获取

# 克隆代码仓库
git clone https://gitcode.com/gh_mirrors/nr/Nrfr
cd Nrfr

3.2 构建与运行

3.2.1 客户端工具构建

# 进入客户端目录
cd nrfr-client

# 安装前端依赖
npm install

# 开发模式启动(带热重载)
wails dev

# 构建发布版本
wails build -clean -platform=windows/amd64  # Windows
wails build -clean -platform=darwin/universal  # macOS
wails build -clean -platform=linux/amd64  # Linux

💡 参数说明

  • -clean:清理缓存后构建
  • -platform:指定目标平台(格式:os/arch)
  • -debug:生成调试版本

3.2.2 Android应用构建

# 进入应用目录
cd app

# 构建Debug版本
./gradlew assembleDebug

# 构建Release版本(带混淆)
./gradlew assembleRelease

📌 常见问题

  • 构建失败提示"SDK未找到":检查local.properties中的sdk.dir配置
  • 签名错误:在app/build.gradle.kts中配置签名信息
  • 依赖下载缓慢:配置Gradle镜像仓库

3.3 配置文件解析

3.3.1 核心配置文件对比

配置文件 功能描述 关键参数 与其他文件关联性
nrfr-client/wails.json 客户端构建配置 应用名称、输出文件名、前端命令 关联package.json的脚本定义
app/build.gradle.kts Android构建脚本 应用ID、版本号、依赖库 继承settings.gradle.kts的仓库配置
settings.gradle.kts Gradle项目设置 仓库地址、模块配置 为所有Gradle任务提供基础配置

3.3.2 版本号同步机制

应用版本号需在三个位置保持一致:

  1. app/build.gradle.kts中的versionName
  2. nrfr-client/app.go中的版本常量
  3. nrfr-client/wails.json中的productVersion

💡 最佳实践:创建版本号管理脚本,通过单个命令同步所有位置版本信息。

四、实战操作指南

4.1 快速启动流程

📌 准备工作

  1. 手机开启"开发者选项"及USB调试
  2. 安装Shizuku应用并授予权限
  3. 使用数据线连接手机与电脑

📌 操作步骤

  1. 启动Nrfr快速启动工具
  2. 在工具中选择已连接设备
  3. 点击"安装应用"按钮自动部署APK
  4. 按提示完成Shizuku权限授权
  5. 在手机应用中选择目标国家码并应用

4.2 高级功能使用

4.2.1 国家码修改

  1. 在主界面选择需要配置的SIM卡(双卡设备)
  2. 从预设列表选择目标国家/地区(如"日本-JP")
  3. 点击"应用设置"并等待配置完成
  4. 重启相关应用使设置生效

4.2.2 配置备份与恢复

// 备份配置示例代码(简化版)
val configManager = CarrierConfigManager(context)
val backup = configManager.exportCurrentConfig()
// 保存到文件
FileUtils.saveToFile(backup, "${context.filesDir}/backup.json")

💡 数据安全提示:配置文件包含敏感的运营商信息,建议加密存储或定期清理。

五、安全与注意事项

5.1 安全风险提示

  • 修改国家码可能导致部分运营商服务中断
  • 不建议频繁切换地区配置,可能触发运营商安全机制
  • 部分设备可能存在兼容性问题,建议先备份数据

5.2 故障排除指南

  • Shizuku连接失败:检查ADB服务状态,重启Shizuku
  • 设置不生效:确认目标应用已关闭,尝试重启手机
  • 配置丢失:升级系统可能导致配置重置,需重新应用设置
  • 应用崩溃:在"设置-应用"中清除Nrfr数据后重试

六、项目特性总结

6.1 核心优势

  • 安全可靠:无需Root,不修改系统文件,所有操作可逆
  • 简单高效:一键式操作,平均配置时间小于30秒
  • 持续维护:活跃的开发团队,定期更新以支持新系统版本
  • 完全开源:Apache-2.0许可,代码透明可审计

6.2 未来发展方向

  • 计划支持更多国家/地区的运营商配置
  • 开发无线连接模式,摆脱USB数据线限制
  • 增加配置文件分享功能,支持用户贡献预设
  • 集成更多设备兼容性检测工具

免责声明:本工具仅供学习研究使用,修改运营商配置可能违反部分地区法律法规或运营商协议,请谨慎使用。作者不对任何因使用本工具造成的损失负责。

💡 使用建议:在测试新配置前,建议先在非主力设备上验证,确认兼容性后再应用到日常使用设备。

登录后查看全文
热门项目推荐
相关项目推荐