This repository contains an LSPosed module that restores or unlocks certain IMS-related features that Samsung has restricted on some Galaxy devices. It works by replacing/patching runtime res/raw IMS configuration files so the device and system apps perceive compatible settings for VoWiFi, VoLTE, ViLTE, RCS and SMS over IP.
This README documents device requirements, the exact manual activation workflow (pulling
imsservice.apk, extracting the raw JSON files, editing them, compiling the module), credits, and legal/disclaimer notes.
- Replace runtime IMS configuration files via YukiHookAPI hooks.
- Restore VoWiFi / VoLTE / ViLTE / RCS / SMS over IP behavior on supported Samsung Galaxy devices.
- Minimal, transparent module that only replaces the four IMS raw files in
res/raw/.
Before using this module, ensure your device meets all of the following:
- Root access (Magisk).
- LSPosed installed and working as your host for runtime modules.
- A Samsung Galaxy device (One UI 6 or newer).
- The module must be enabled in LSPosed (see Installation section).
If your device or software version is outside these constraints the module may not work and could cause instability.
The module replaces the JSON resources from the stock imsservice.apk:
res/raw/*.json
These files usually live inside the system imsservice APK supplied by Samsung. Replacing them at runtime allows IMS subsystems to read alternate operator/device-compatible values.
Follow these steps exactly. The instructions assume you have adb and a working Android build environment (Android Studio / Gradle) for the LSPosed module project.
Make sure you have the ability to uninstall the app via TWRP recovery if something goes wrong with your device.
- Connect your device via USB and enable
adb. - Find the package path (example):
# show installed package path for imsservice
adb shell pm path com.sec.imsservice
# example output: package:/system/priv-app/imsservice/imsservice.apk- Pull the APK to your PC (adjust the path from previous command):
adb pull /system/priv-app/imsservice/imsservice.apk ./imsservice-stock.apkNote: Paths may vary by device / firmware. If
pm pathfails, search common locations such as/system/priv-app/,/product/priv-app/or use a root file explorer on the device.
Using unzip (quick):
unzip imsservice-stock.apk "res/raw/*" -d ./ims-raw-extracted
# then copy specific files
cp ims-raw-extracted/res/raw/*.json ./app/src/main/res/raw/
- Open the files in a text editor and change the values necessary for your operator (PLMN, MCC/MNC, feature toggles, SIP/RCS endpoints, IMS profiles, etc.).
- Validate JSON after editing (e.g.
jq . file.jsonor an editor with JSON linting).
Important: Changing incorrect fields can break telephony/IMS behavior. Only change values you understand. If unsure, test incremental small edits rather than sweeping changes.
Make sure the files exist at:
app/src/main/res/raw/*.json
If the raw/ folder does not exist yet, create it.
From the project root, build the module APK with Gradle (example):
# debug build
./gradlew assembleDebug
# or release
./gradlew assembleReleaseOR USE ANDROID STUDIO
- Install the generated APK on the device:
adb install -r app/build/outputs/apk/debug/app-debug.apk- Open LSPosed Manager on the device and enable the module for
com.sec.imsservice. - Reboot the device for hooks to take effect.
- Verify behavior (make a test VoWiFi/VoLTE call, check RCS availability, etc.).
- This module edits runtime configuration used by system services. It does not exfiltrate user data intentionally. However, incorrect edits can change how the device communicates with operator or vendor services.
- Only use edited configuration files from sources you trust (preferably your own device's stock files).
This software is provided as-is. Use at your own risk. The author(s) hold no responsibility for damage, service loss, or warranty voiding caused by using this module. This project may affect emergency calling or carrier services — proceed with caution.
Thanks to the projects and communities that made this work possible:
