{"id":23956652,"url":"https://github.com/Ackites/Nrfr","last_synced_at":"2025-09-12T14:32:01.125Z","repository":{"id":270549409,"uuid":"910702543","full_name":"Ackites/Nrfr","owner":"Ackites","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-01T08:19:08.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-01T08:25:58.681Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ackites.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-01T05:57:30.000Z","updated_at":"2025-01-01T08:19:11.000Z","dependencies_parsed_at":"2025-01-01T08:26:30.900Z","dependency_job_id":"6c8d7334-9e38-4612-8e70-457a8bb8d04c","html_url":"https://github.com/Ackites/Nrfr","commit_stats":null,"previous_names":["ackites/nrfr"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ackites%2FNrfr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ackites%2FNrfr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ackites%2FNrfr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ackites%2FNrfr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ackites","download_url":"https://codeload.github.com/Ackites/Nrfr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232747693,"owners_count":18570504,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-06T16:01:26.426Z","updated_at":"2025-09-12T14:32:01.109Z","avatar_url":"https://github.com/Ackites.png","language":"TypeScript","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eNrfr\u003c/h1\u003e\n  \u003cp\u003e🌍 免 Root 的 SIM 卡国家码修改工具，让你的网络更自由\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/badge/platform-Android-3DDC84?logo=android\" alt=\"Platform\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Android-8+-3DDC84?logo=android\" alt=\"Android Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Go-1.21+-00ADD8?logo=go\" alt=\"Go Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/React-19-61DAFB?logo=react\" alt=\"React Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/TypeScript-5-3178C6?logo=typescript\" alt=\"TypeScript Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Tailwind-3-38B2AC?logo=tailwind-css\" alt=\"Tailwind Version\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Wails-2-000000?logo=wails\" alt=\"Wails Version\"\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n      \u003cimg src=\"https://img.shields.io/github/stars/Ackites/Nrfr?style=flat\" alt=\"Stars\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/forks/Ackites/Nrfr?style=flat\" alt=\"Forks\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/issues/Ackites/Nrfr?style=flat\" alt=\"Issues\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/last-commit/Ackites/Nrfr?style=flat\" alt=\"Last Commit\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/release/Ackites/Nrfr?style=flat\" alt=\"Release\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/downloads/Ackites/Nrfr/total?style=flat\" alt=\"Downloads\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/Ackites/Nrfr?style=flat\" alt=\"License\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Follow-@actkites-1DA1F2?logo=x\u0026style=flat\" alt=\"Follow on X\"\u003e\n  \u003c/p\u003e\n\n  \u003cdiv style=\"display: flex; justify-content: center; align-items: center; gap: 20px; margin: 20px 0;\"\u003e\n    \u003cimg src=\"docs/images/client.png\" alt=\"快速启动工具界面\" width=\"500\"\u003e\n    \u003cimg src=\"docs/images/app.png\" alt=\"Android 应用界面\" width=\"220\"\u003e\n  \u003c/div\u003e\n   \u003cbr\u003e\n\u003c/div\u003e\n\nNrfr 是一款强大的 SIM 卡国家码修改工具，无需 Root 权限即可修改 SIM 卡国家码。本项目完全基于 Android 系统原生 API 实现，不依赖\nXposed、Magisk 等任何第三方框架，仅通过调用系统级接口实现功能。通过修改国家码，你可以：\n\n- 🌏 解锁运营商限制，使用更多本地功能\n- 🔓 突破某些区域限制的应用和服务\n- 🛠️ 解决国际漫游时的兼容性问题\n- 🌐 帮助使用海外 SIM 卡获得更好的本地化体验\n- ⚙️ 解决部分应用识别 SIM 卡地区错误的问题\n\n## 📱 使用案例\n\n### 运营商配置优化\n\n- 手机无法正确识别运营商配置\n- 某些运营商特定功能无法使用\n- 网络配置与当地运营商不匹配\n\n### 运营商参数适配\n\n- 运营商功能配置不完整\n- 网络参数与运营商默认配置不匹配\n- 运营商特定服务无法正常启用\n\n### 漫游网络识别\n\n- 漫游时运营商名称显示异常\n- 网络配置与漫游地运营商不匹配\n- 运营商特定功能无法使用\n\n### TikTok 区域限制解除\n\n- TikTok 网络错误\n- 无法正常使用 TikTok 的完整功能\n\n### Samsung Health 区域限制解除\n\n- 无法通过 Samsung Health 的首次 SIM 卡检测\n- 无法同步健康数据\n- 无法正常使用 Samsung Health 的完整功能\n\n你可以：\n\n1. 使用 Nrfr 修改 SIM 卡国家码为支持的地区（如 JP、US 等）\n2. 重新打开 TikTok，就可以正常使用了\n\n## 💡 实现原理\n\nNrfr 通过调用 Android 系统级 API（CarrierConfigLoader）修改系统内的运营商配置参数，而**不是直接修改 SIM 卡**。这种实现方式：\n\n- 完全在系统层面工作，不会对 SIM 卡本身进行任何修改或造成损坏\n- 仅改变系统对 SIM 卡信息的读取方式\n- 基于 Android 原生 API 实现，不依赖任何第三方框架（如 Xposed、Magisk 等）\n- 通过 Shizuku 仅提供必要的权限支持\n- 所有修改都是可逆的，随时可以还原\n\n## ✨ 特性\n\n- 🔒 安全可靠\n   - 无需 Root 权限\n   - 不修改系统文件\n   - 不影响系统稳定性\n   - 不会对 SIM 卡造成任何影响\n- 🔄 功能完善\n   - 支持随时还原修改\n   - 支持双卡设备，可分别配置\n   - 一次修改永久生效，重启后保持\n- 🚀 简单易用\n   - 一键启动工具\n   - 智能检测设备和 SIM 卡状态\n   - 自动安装所需应用\n   - 简洁优雅的用户界面\n   - 轻量且高效，安装包体积小\n\n## ⚠️ 注意事项\n\n- 需要安装并启用 Shizuku\n- 修改国家码可能会影响运营商服务，请谨慎操作\n- 部分设备可能不支持修改国家码\n- 如需还原设置，请使用应用内的还原功能\n\n## 🚀 快速开始\n\n下载页面有两个文件，一个是含快速启动工具的压缩包，另一个就只是 APK 安装包。**推荐使用快速启动工具**，请按照以下步骤操作：\n\n1. 准备手机\n    - 启用开发者选项（具体的自己查一下）\n    - 进入开发者选项，开启 USB 调试\n    - 开启 USB 调试（安全设置），如果有就开启\n    - 开启 USB 安装（允许通过 USB 安装应用）\n    - 如果提示未知来源应用安装，请允许从此来源安装\n\n2. 连接手机到电脑\n    - 使用数据线将手机连接到电脑\n    - 在手机上允许 USB 调试授权\n\n3. 下载并启动 Nrfr 快速启动工具\n    - 从 Release 页面下载最新版本的快速启动工具\n    - 解压并运行 Nrfr 快速启动工具\n    - 工具会自动检测已连接的设备\n\n4. 安装必要组件\n    - 工具会自动安装 Shizuku 到手机\n    - 按照提示启用 Shizuku\n    - 等待工具自动安装 Nrfr 应用\n\n5. 修改国家码\n    - 在手机上打开 Nrfr 应用\n    - 选择需要修改的 SIM 卡\n    - 设置目标国家码\n    - 应用修改\n\n修改完成后无需重启设备，设置会立即生效并永久保持。如需还原，请使用应用内的还原功能。\n\n## 📦 构建\n\n项目包含两个部分：快速启动工具（桌面端）和手机应用（Android）。\n\n### 快速启动工具 (nrfr-client)\n\n```bash\n# 进入客户端目录\ncd nrfr-client\n\n# 安装依赖\nnpm install\n\n# 开发模式\nwails dev\n\n# 构建发布版本\nwails build\n```\n\n### Android 应用 (app)\n\n```bash\n# 进入 Android 应用目录\ncd app\n\n# 使用 Gradle 构建 Debug 版本\n./gradlew assembleDebug\n```\n\n构建完成后，可以在以下位置找到生成的文件：\n\n- 快速启动工具: `nrfr-client/build/bin/`\n- Android 应用: `app/build/outputs/apk/`\n\n## 📝 依赖项\n\n- [Shizuku](https://shizuku.rikka.app/) - 用于提供特权服务\n- [ADB](https://developer.android.com/tools/adb) - Android 调试桥接\n\n## 🤝 贡献\n\n欢迎提交 Pull Request 和 Issue！在提交之前，请确保：\n\n- 代码经过测试\n- 遵循现有的代码风格\n- 更新相关文档\n- 描述清楚改动的目的和影响\n\n## 📄 许可证\n\n本项目采用 [Apache-2.0](LICENSE) 许可证。\n\n## ⚠️ 免责声明\n\n本工具仅供学习和研究使用。使用本工具修改系统设置可能会影响设备的正常使用，请自行承担风险。作者不对任何可能的损失负责。\n\n## 💖 支持\n\n如果你觉得这个项目有帮助：\n\n- 在 X 上关注 [@actkites](https://x.com/intent/follow?screen_name=actkites)\n- 给项目点个 Star ⭐\n- 分享给更多的人\n\n## ⭐ Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Ackites/Nrfr\u0026type=Date)](https://star-history.com/#Ackites/Nrfr\u0026Date)\n\n## 🙏 鸣谢\n\n- [Shizuku](https://shizuku.rikka.app/) - 感谢 Shizuku 提供的特权服务支持\n\n## 🚀 赞助商\n\n\u003cdiv\u003e\n  \u003cp\u003e\u003cstrong\u003e本项目 CDN 加速及安全防护由 Tencent EdgeOne 赞助\u003c/strong\u003e\u003c/p\u003e\n  \u003ca href=\"https://edgeone.ai/zh?from=github\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://edgeone.ai/media/34fe3a45-492d-4ea4-ae5d-ea1087ca7b4b.png\" alt=\"Tencent EdgeOne\" width=\"200\"\u003e\n  \u003c/a\u003e\n  \u003cp\u003e\u003ca href=\"https://edgeone.ai/zh?from=github\" target=\"_blank\"\u003e亚洲最佳CDN、边缘和安全解决方案 - Tencent EdgeOne\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n[![Powered by DartNode](https://dartnode.com/branding/DN-Open-Source-sm.png)](https://dartnode.com \"Powered by DartNode - Free VPS for Open Source\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAckites%2FNrfr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAckites%2FNrfr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAckites%2FNrfr/lists"}