
Language: English | 日本語 | 简体中文
NekokoLPA2 is a cross-platform eSIM management app for working with local eUICCs, external readers, and remote reader endpoints. It is designed for users who need more control over profile operations, transport choices, and card visibility than a typical carrier app exposes.
Get started · Readers and platforms · VoWiFi and IMS · Build from source · Troubleshooting
Choosing a download: Android variants and desktop builds · OTBridge versus the rooted app.
Android OMAPI: restart regression and recovery.
An external reader manages the card connected to that reader. It does not turn an iPhone's internal eSIM into an externally accessible card. Android's internal-card access depends on the available OMAPI, bridge, or modem interface and the card's access rules.
OTBridge can enable Telephony support and help bypass OMAPI ARA-M restrictions without requiring NekokoLPA2 itself to be installed as a privileged appExperimental reader-backed Wi-Fi calling is available through the iOS Manage screen. It requires an external SIM reader, not the phone's internal SIM; see build instructions and limitations.
Experimental desktop VoWiFi/SMS is also included on Windows, macOS and Linux. VoWiFi is disabled on Android and for OMAPI adapters. Desktop sessions require a reader with direct raw basic-channel APDUs; see setup and restrictions.
| Connection Type | Android | iOS | macOS | Linux | Windows | Chrome |
|---|---|---|---|---|---|---|
| BLE readers | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| USB CCID readers | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Remote readers | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OMAPI | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Telephony / TMAPI | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
OTBridge provider |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| SE HAL (Shizuku) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| WebUSB SCRP / WebCard | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
Notes:
- Telephony / TMAPI and OTBridge are Android-only paths.
- OTBridge is intended for rooted Android setups where Telephony access or OMAPI policy bypass is needed.
- SE HAL is experimental and off by default. It needs Shizuku, and works only where the device lets shell call the Secure Element HAL.
- Chrome support refers to the web build running in a Chromium browser with the required browser APIs available.
Translations are managed on Crowdin.
SCT-BT-<UID> and TES-BT-<UID>, plus 9eSIM B0 Plus readers named 9eSIM followed by eight digits. Six-character 9eSIM suffixes continue to use the NineESIM protocol. TYBLE uses the BLE platforms listed above.OTBridge can enable Telephony support and bypass OMAPI ARA-M restrictions while keeping the main app unprivilegedOTBridge provider on Android when it is installed.OTBridge can expose Telephony/TMAPI access and help bypass OMAPI ARA-M restrictions while keeping NekokoLPA2 itself on the normal app path.| Feature | Windows / macOS / Linux | iOS | Android | Browser |
|---|---|---|---|---|
| Experimental desktop SMS over IMS | Opt-in, external raw-APDU reader | — | Disabled | — |
| Reader-backed Wi-Fi calling | — | External USB CCID or supported RED BLE reader | Disabled | — |
| VoWiFi through OMAPI | Disabled | Disabled | Disabled | — |
The desktop implementation provides SMS. The iOS Manage screen uses a separate reader-backed calling implementation; see its build instructions, background limits and verification notes.
The desktop IMS client handles AKA resynchronization with AUTS, binary RES values, quoted Digest challenges, auth/auth-int quality-of-protection negotiation, nonce counts, and supported MD5/SHA-256 digest variants. It correlates final SIP responses to the outstanding transaction, retains the registrar's ordered Service-Route values, and honors a valid 423 Min-Expires response with one bounded retry.
These paths have unit and local SIP-peer regression tests. Carrier provisioning, ePDG access, SIM policy and network behavior still determine whether a real subscription registers and exchanges SMS. This is experimental software, and the project does not claim universal carrier compatibility. See implementation details, research references and remaining limits.
The public repository includes TYBLE readers, SIM probing and desktop VoWiFi/SMS without a private overlay. Use the Flutter version pinned in CI, currently 3.47.2. Android's QRTR transport also requires Rust 1.89 or later. Native desktop builds require that platform's Flutter build toolchain.
git clone --branch master https://github.com/iebb/NekokoLPA2.git
cd NekokoLPA2
flutter pub get
flutter devices
flutter run -d macos # choose an available device from flutter devices
For reader-backed iOS calling, first follow the source-built Go framework and codec instructions. GM_PSK_URL can be supplied as a non-secret --dart-define; leaving it empty still builds the app, with GM PSKs limited to those already cached.
dart analyze lib test
flutter test --no-pub
flutter build web --release --no-pub
Format the Dart files you change. Add user-facing strings only to l10n/app_en.arb, then run flutter gen-l10n; Crowdin owns the translated ARB files. When adding a plugin, regenerate its registry with dart run scripts/generate_plugin_registry.dart. Maintainers working with a private overlay should use --public for the committed registry.
| Symptom | Check |
|---|---|
| Bluetooth reader is missing | Enable Bluetooth, allow the platform permissions, enable that reader type and scan again. Linux has no BLE transport in this app. |
| An Android card refuses OMAPI | Check its access rules or use a supported bridge/reader. VoWiFi is unavailable through OMAPI. |
| The VoWiFi setting is absent | Desktop VoWiFi is unavailable on Android, iOS and 9eSIM-branded builds. iOS calling has its own Manage entry. |
| IMS registration or SMS fails | Check reader eligibility, SIM carrier provisioning, the reported SIP status and the IMS limitations. A passing build does not establish carrier support. |
When reporting a problem, include the app version, operating system, reader model and a redacted error. Remove subscriber identities, activation codes, phone numbers, raw APDUs and authentication material from shared logs.
See CHANGELOG.md for release history and user-facing changes.
For issues, feature requests, or questions, please visit our GitHub Issues.
NekokoLPA2 is released under the MIT License.
The NekokoLPA cat mascot artwork was created by @sanzennami. Reference use is OK, but the mascot SHOULD NOT be used as your own logo, app icon, shop avatar, or dominant brand mark without agreement. You may include it as part of a logo or image only when it does not exceed 10% of the entire logo or image and the use does not imply official endorsement. See NOTICE and BRANDING.md.
© 2026 Nekoko.
Community/Open Android builds can use the secret-free reproducible recipe, with the committed public signing key. The shared build tools, lineage helper, Windows installer helpers and update/config service are maintained in this repository. Branding overlays provide configuration and artwork separately.
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|