Nrfr:免Root SIM卡国家码修改工具完全指南
2026-02-06 04:14:40作者:殷蕙予
一、核心功能解析
1.1 项目定位与价值
Nrfr是一款免Root的SIM卡国家码修改工具(国家码:标识SIM卡所属国家/地区的代码),通过系统级API调用实现运营商配置调整,解决国际漫游兼容性问题,帮助用户突破区域限制服务访问。
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卡信息的解读方式:
- 通过Shizuku获取必要系统权限(无需Root)
- 调用隐藏API修改运营商配置参数
- 实现配置持久化,确保重启后设置保持
- 提供一键还原功能,保障系统安全
三、开发与使用指南
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 版本号同步机制
应用版本号需在三个位置保持一致:
app/build.gradle.kts中的versionNamenrfr-client/app.go中的版本常量nrfr-client/wails.json中的productVersion
💡 最佳实践:创建版本号管理脚本,通过单个命令同步所有位置版本信息。
四、实战操作指南
4.1 快速启动流程
📌 准备工作:
- 手机开启"开发者选项"及USB调试
- 安装Shizuku应用并授予权限
- 使用数据线连接手机与电脑
📌 操作步骤:
- 启动Nrfr快速启动工具
- 在工具中选择已连接设备
- 点击"安装应用"按钮自动部署APK
- 按提示完成Shizuku权限授权
- 在手机应用中选择目标国家码并应用
4.2 高级功能使用
4.2.1 国家码修改
- 在主界面选择需要配置的SIM卡(双卡设备)
- 从预设列表选择目标国家/地区(如"日本-JP")
- 点击"应用设置"并等待配置完成
- 重启相关应用使设置生效
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数据线限制
- 增加配置文件分享功能,支持用户贡献预设
- 集成更多设备兼容性检测工具
免责声明:本工具仅供学习研究使用,修改运营商配置可能违反部分地区法律法规或运营商协议,请谨慎使用。作者不对任何因使用本工具造成的损失负责。
💡 使用建议:在测试新配置前,建议先在非主力设备上验证,确认兼容性后再应用到日常使用设备。
登录后查看全文
热门项目推荐
相关项目推荐
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0193- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00
项目优选
收起
deepin linux kernel
C
27
12
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
601
4.04 K
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
69
21
Ascend Extension for PyTorch
Python
441
531
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
112
170
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.46 K
824
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
922
770
暂无简介
Dart
846
204
React Native鸿蒙化仓库
JavaScript
321
375
openGauss kernel ~ openGauss is an open source relational database management system
C++
174
249

