{"id":23910870,"url":"https://github.com/ishara-madu/4glteonlyapp","last_synced_at":"2026-06-10T23:31:18.552Z","repository":{"id":268377031,"uuid":"904132738","full_name":"ishara-madu/4GLTEOnlyApp","owner":"ishara-madu","description":"An open-source Android toolkit to force 4G/5G network modes, monitor live cellular metrics, and test internet speed. Built with Kotlin, Jetpack Compose, Room, and Clean Architecture (MVVM) featuring a custom Neumorphic UI.","archived":false,"fork":false,"pushed_at":"2026-06-07T10:37:39.000Z","size":34997,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-07T12:19:55.894Z","etag":null,"topics":["4g-lte","lte-network","mobile-data","network","ping","pingtest","source-code","speedtest"],"latest_commit_sha":null,"homepage":"https://ishara-madu.github.io/4GLTEOnlyApp","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ishara-madu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-16T10:08:09.000Z","updated_at":"2026-06-07T10:37:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c74eb57-f798-4d0c-a0d9-71e6883d5864","html_url":"https://github.com/ishara-madu/4GLTEOnlyApp","commit_stats":null,"previous_names":["ishara-madu/4g-lte-only-mode-app-lock-to-high-speed-networks","ishara-madu/4glteonlyapp"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ishara-madu/4GLTEOnlyApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishara-madu%2F4GLTEOnlyApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishara-madu%2F4GLTEOnlyApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishara-madu%2F4GLTEOnlyApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishara-madu%2F4GLTEOnlyApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ishara-madu","download_url":"https://codeload.github.com/ishara-madu/4GLTEOnlyApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ishara-madu%2F4GLTEOnlyApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34175887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["4g-lte","lte-network","mobile-data","network","ping","pingtest","source-code","speedtest"],"created_at":"2025-01-05T07:28:37.108Z","updated_at":"2026-06-10T23:31:18.546Z","avatar_url":"https://github.com/ishara-madu.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Force LTE Only\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp\" alt=\"Force LTE Only Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA powerful Android app to monitor, analyze, and optimize your LTE/5G connection\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ishara-madu/4GLTEOnlyApp/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/ishara-madu/4GLTEOnlyApp?style=flat-square\" alt=\"GitHub Release\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/ishara-madu/4GLTEOnlyApp/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/ishara-madu/4GLTEOnlyApp?style=flat-square\" alt=\"License\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://android.com\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/platform-Android-green?style=flat-square\" alt=\"Platform\"/\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/minSdk-24-blue?style=flat-square\" alt=\"Min SDK\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/targetSdk-36-blue?style=flat-square\" alt=\"Target SDK\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Table of Contents\n\n- [What's New](#whats-new)\n- [Features](#features)\n- [Screenshots](#screenshots)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Building from Source](#building-from-source)\n- [Project Structure](#project-structure)\n- [Architecture \u0026 Tech Stack](#architecture--tech-stack)\n- [Permissions](#permissions)\n- [How It Works](#how-it-works)\n- [Contributing](#contributing)\n- [License](#license)\n- [Support](#support)\n\n---\n\n## What's New 🚀\n\n- **Live Network Band Info:** Dynamically detects and displays the connected LTE/5G Band in real-time, handling required location permissions gracefully.\n- **LTE Only PRO (Premium Tier):** Integrated **RevenueCat** for robust subscription management. Users can upgrade to an ad-free Pro tier to unlock advanced network tools like the Game Servers Ping Analyzer and historical analytics.\n- **Google Play In-App Reviews:** Seamlessly integrates the native In-App Review API, intelligently and silently triggering after successful network switching flows without spamming the user.\n- **Massive Performance Optimizations:** App size reduced by over **50%** for release builds using aggressive **R8 shrinking**, strict resource minification, unused dependency stripping, and comprehensive **WebP** asset conversion, all without compromising UI/UX!\n\n---\n\n## Features\n\n### 📡 Network Monitoring\n- **Real-time Signal Analysis** - Monitor RSRP, RSRQ, RSSI, and SINR signal metrics.\n- **Carrier \u0026 Band Information** - View carrier name, network type, MCC/MNC codes, Cell ID, and live LTE/5G NR Band tracking.\n- **Connection Status** - Live connection state and roaming detection.\n\n### ⚡ Speed \u0026 Latency Testing\n- **Speed Tests** - Measure your actual download and upload speeds.\n- **Ping/Latency Test** - Check your network response time.\n- **Gaming Ping Analyzer (PRO)** - Real-time regional server latency tests tailored for global gaming servers.\n\n### 📊 Analytics\n- **Signal History Chart** - Visualize signal strength changes over time.\n- **Pro Analytics** - Review historical speed test results with clear, dynamic charts.\n- **Data Usage Tracking** - Monitor mobile and Wi-Fi data consumption.\n\n### 🎛️ Tools\n- **4G LTE Switcher** - Quick access to force LTE network mode via hidden system settings (with fallback dialer intents).\n- **APN Settings** - Direct link to configure your APN settings.\n- **Background Monitoring** - Continuous signal monitoring while the app is running.\n\n### 🎨 User Experience\n- **100% Jetpack Compose** - Built entirely with modern declarative UI.\n- **Neumorphic Design** - Beautiful, modern UI with soft shadows and depth.\n- **Theme Engine** - Dynamically adapts to Light, Dark, and System themes.\n- **Ad-Free Interface (PRO)** - Completely remove all banner, interstitial, and app-open ads.\n\n---\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/home.jpg\" width=\"230\" alt=\"Home Screen\" /\u003e\n  \u003cimg src=\"screenshots/analytics.jpg\" width=\"230\" alt=\"Analytics Dashboard\" /\u003e\n  \u003cimg src=\"screenshots/tools.jpg\" width=\"230\" alt=\"Speed Test\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screenshots/settings.jpg\" width=\"230\" alt=\"Settings\" /\u003e\n  \u003cimg src=\"screenshots/dark_theme.jpg\" width=\"230\" alt=\"Dark Theme\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Requirements\n\n- **Android Version**: 7.0 Nougat (API 24) or higher\n- **Device**: Any Android device with cellular capabilities\n- **Permissions**: Location and Phone State access required for signal and band monitoring\n\n---\n\n## Installation\n\n### From Google Play Store\n[![Play Store](https://img.shields.io/badge/Google_Play-414141?style=flat\u0026logo=google-play\u0026logoColor=white)](https://play.google.com/store/apps/details?id=com.pixeleye.lteonly)\n\n### From APK (Direct Download)\n1. Download the latest APK from the [Releases](https://github.com/ishara-madu/4GLTEOnlyApp/releases) page\n2. Enable \"Install from unknown sources\" in your device settings\n3. Open the downloaded APK file\n4. Tap Install\n\n---\n\n## Building from Source\n\n### Prerequisites\n\nBefore building, ensure you have the following installed:\n- **Android Studio** (Hedgehog or newer recommended)\n- **JDK 11** or higher\n- **Android SDK** with API Level 36\n- **Gradle** (included in the project)\n\n### Steps\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/ishara-madu/4GLTEOnlyApp.git\n   cd ForceLTEOnly\n   ```\n\n2. **Configure Security \u0026 Keys (local.properties)**\n   Create a `local.properties` file in the root directory and add your API keys:\n   ```properties\n   REVENUECAT_API_KEY=your_revenuecat_key_here\n   ADMOB_APP_ID=ca-app-pub-your_admob_app_id\n   ADMOB_BANNER_ID=ca-app-pub-your_banner_id\n   ADMOB_INTERSTITIAL_ID=ca-app-pub-your_interstitial_id\n   ADMOB_APP_OPEN_ID=ca-app-pub-your_app_open_id\n   ```\n\n3. **Open in Android Studio**\n   - Select \"Open an existing project\" and navigate to the cloned directory.\n   - Wait for Gradle sync to complete.\n\n4. **Build the Debug APK**\n   ```bash\n   ./gradlew assembleDebug\n   ```\n\n5. **Build the Release APK**\n   ```bash\n   ./gradlew assembleRelease\n   ```\n   *Note: Release builds are heavily optimized with R8. Ensure your keys are valid to prevent build failures.*\n\n---\n\n## Project Structure\n\n```\nForceLTEOnly/\n├── app/\n│   ├── src/\n│   │   └── main/\n│   │       ├── java/com/pixeleye/lteonly/\n│   │       │   ├── MainActivity.kt          # Main Compose entry point\n│   │       │   ├── LteOnlyApplication.kt    # Application class (RevenueCat/AdMob Init)\n│   │       │   ├── TelephonyService.kt      # Core signal \u0026 band monitoring\n│   │       │   ├── RadioInfoHelper.kt       # Opens LTE settings\n│   │       │   ├── PremiumUpgradeScreen.kt  # Custom RevenueCat Paywall UI\n│   │       │   ├── ProStateManager.kt       # Global premium state flow\n│   │       │   ├── AdManager.kt             # Strict AdMob implementation\n│   │       │   ├── Room DB \u0026 Repositories   # Local Data Persistence\n│   │       │   └── ui/\n│   │       │       └── theme/               # Material 3 \u0026 Neumorphic styling\n│   │       ├── res/                         # Compressed WebP Android resources\n│   │       └── AndroidManifest.xml\n│   ├── build.gradle.kts                     # App-level build logic\n│   └── proguard-rules.pro                   # Custom R8 keep rules\n├── gradle/                                  # Gradle wrapper\n├── build.gradle.kts                         # Root build file\n└── local.properties                         # Secret Keys (Git Ignored)\n```\n\n---\n\n## Architecture \u0026 Tech Stack\n\nThe app follows a clean, modular architecture pattern strictly adhering to modern Android development practices.\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                        UI Layer                              │\n│  (100% Jetpack Compose - Reactive State Flows)               │\n└─────────────────────────────────────────────────────────────┘\n                               │\n                               ▼\n┌─────────────────────────────────────────────────────────────┐\n│                      Domain Layer                            │\n│  (TelephonyService, RadioInfoHelper, ProStateManager)        │\n└─────────────────────────────────────────────────────────────┘\n                               │\n                               ▼\n┌─────────────────────────────────────────────────────────────┐\n│                       Data Layer                             │\n│  (Room Database, RevenueCat SDK, AdMob SDK, Data Repos)      │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Key Technologies Used\n\n| Category | Technology |\n|----------|------------|\n| **Language** | Kotlin 1.9+ |\n| **UI Framework** | **Jetpack Compose** (Material 3) |\n| **Architecture** | MVVM + Clean Architecture |\n| **Monetization** | **RevenueCat** (Purchases SDK) |\n| **Ads** | Google AdMob |\n| **Database** | Room Persistence Library |\n| **Async** | Kotlin Coroutines \u0026 Flow |\n| **Build System** | Gradle with Kotlin DSL |\n\n---\n\n## Permissions\n\nThe app requires the following permissions to function:\n\n| Permission | Purpose |\n|------------|---------|\n| `READ_PHONE_STATE` | Access signal strength and network information |\n| `ACCESS_FINE_LOCATION` | Required for accurate cell tower and **LTE Band** detection |\n| `ACCESS_COARSE_LOCATION` | Fallback location access |\n| `INTERNET` | Speed test functionality \u0026 API interactions |\n| `POST_NOTIFICATIONS` | Speed test reminders (Android 13+) |\n\n---\n\n## How It Works\n\n### Signal Monitoring\n1. The app uses Android's `TelephonyManager` to access cellular information.\n2. `CellInfoLte` and `CellInfoNr` provide detailed signal metrics and LTE bands.\n3. Data is stored in a Room database for historical analysis.\n\n### Network Mode Switching\n1. The app provides a shortcut button to open system Radio Info menus.\n2. From there, users can select their preferred network mode (LTE only, 5G preferred, etc.).\n3. Note: Direct programmatic network mode changes are restricted by Android for security.\n\n---\n\n## Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. **Fork the Repository**\n2. **Create a Feature Branch** (`git checkout -b feature/your-feature-name`)\n3. **Commit Your Changes** (`git commit -m \"Add: your feature description\"`)\n4. **Push and Create Pull Request**\n\n### Reporting Issues\n- Use GitHub Issues to report bugs\n- Include your Android version and device model\n- Provide steps to reproduce the issue\n\n---\n\n## License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Support\n\n### Get Help\n- 📖 Check the [Wiki](https://github.com/ishara-madu/4GLTEOnlyApp/wiki)\n- 🐛 Report bugs via [Issues](https://github.com/ishara-madu/4GLTEOnlyApp/issues)\n\n### Rate the App\nIf you find this app useful, please consider:\n- ⭐ Starring the repository\n- ⬇️ Rating on [Google Play Store](https://play.google.com/store/apps/details?id=com.pixeleye.lteonly)\n\n---\n\n## Acknowledgments\n- Built with **Jetpack Compose**\n- Monetization powered by **RevenueCat**\n- Design inspired by modern neumorphic UI trends\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ by \u003ca href=\"https://github.com/ishara-madu\"\u003eIshara Madhusanka\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishara-madu%2F4glteonlyapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fishara-madu%2F4glteonlyapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fishara-madu%2F4glteonlyapp/lists"}