{"id":50708038,"url":"https://github.com/abhishekmallav/mobile-sms-server","last_synced_at":"2026-06-09T13:01:56.330Z","repository":{"id":360249273,"uuid":"1249337493","full_name":"abhishekmallav/Mobile-SMS-Server","owner":"abhishekmallav","description":"An Android app that turns your Android phone into a local SMS gateway. A free local alternative to cloud SMS APIs (like Twilio) for feature development and automated alerts, powered by Flask and Kivy.","archived":false,"fork":false,"pushed_at":"2026-05-25T15:48:14.000Z","size":127,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T17:30:23.934Z","etag":null,"topics":["android","buildozer","flask","kivy","local-development","pyjnius","python","rest-api","sms-api","sms-gateway","sms-messages","twilio-sms"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abhishekmallav.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-25T15:40:12.000Z","updated_at":"2026-05-25T15:54:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/abhishekmallav/Mobile-SMS-Server","commit_stats":null,"previous_names":["abhishekmallav/mobile-sms-server"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/abhishekmallav/Mobile-SMS-Server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekmallav%2FMobile-SMS-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekmallav%2FMobile-SMS-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekmallav%2FMobile-SMS-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekmallav%2FMobile-SMS-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhishekmallav","download_url":"https://codeload.github.com/abhishekmallav/Mobile-SMS-Server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekmallav%2FMobile-SMS-Server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34107866,"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-09T02:00:06.510Z","response_time":63,"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":["android","buildozer","flask","kivy","local-development","pyjnius","python","rest-api","sms-api","sms-gateway","sms-messages","twilio-sms"],"created_at":"2026-06-09T13:01:53.085Z","updated_at":"2026-06-09T13:01:56.320Z","avatar_url":"https://github.com/abhishekmallav.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mobile SMS Server\n\nAn Android application built with Python that turns your smartphone into a local area network HTTP gateway. Connect to your phone via REST API from your computer to programmatically send SMS messages over WiFi.\n\n## The Intuition Behind the Project\n\n**Why pay for cloud SMS APIs when you already have a phone plan?**\n\nDuring feature development, developers often need a way to test and send automated SMS messages (like OTPs or server alerts) locally. Cloud services like Twilio or Plivo charge per message. Nowadays, we barely use the SMS quota provided with our mobile recharges. This project was born out of the idea to utilize that unused SMS quota to act as a free, local SMS microservice substitute to cloud services for local development. \n\nBy running a lightweight Flask server on the Android device (packaged via Kivy and Buildozer), and bridging Python to native Android Java APIs using `pyjnius`, it converts your phone into a powerful programmable hardware node. All communication operates entirely locally on your device and network, ensuring maximum privacy.\n\n## Features\n\n- **100% Local and Private**: The app operates entirely on your local network. No external servers or cloud services are involved.\n- **RESTful API**: Simple HTTP POST endpoints to trigger mobile functions.\n- **SMS Gateway**: Send text messages programmatically via `android.telephony.SmsManager`.\n- **Simple UI**: A Kivy-built dashboard on the phone displaying the local network IP and real-time HTTP request logs.\n- **Background Execution**: Flask runs cleanly in a daemonized background thread with Native Android Persistent Notifications.\n\n*Note on Camera Permission: The app requests Camera permission solely for a test endpoint that toggles the device flashlight. This endpoint exists purely to verify the Python-to-Java JNI hardware connection is functioning properly, independent of carrier SMS statuses.*\n\n## Project Structure\n\n```text\nMobile-SMS-Server\n |-- main.py          # Kivy application, UI layout, and Android permission requests\n |-- server.py        # Flask HTTP server and log management (runs in background)\n |-- sms.py           # PyJNIus bridge for Android native SMS sending\n |-- flashlight.py    # PyJNIus bridge for Android Camera2 API (Torch mode)\n |-- notification.py  # PyJNIus bridge for Android persistent notifications\n |-- buildozer.spec   # Buildozer packaging configuration for the Android APK\n |-- README.md        # Project documentation\n```\n\n## Setup \u0026 Installation\n\n### Option 1: Download the APK\nYou can download the pre-built APK directly from the **Releases** tab of this repository and install it directly onto your Android device.\n\n### Option 2: Build from Source\nEnsure you have Python installed along with the required system dependencies for Android compilation (Ubuntu/Debian):\n```bash\nsudo apt update\nsudo apt install -y git zip unzip openjdk-17-jdk autoconf libtool pkg-config zlib1g-dev libffi-dev libssl-dev cmake\n```\n\nUse `uv` (recommended) or `pip` to set up your environment:\n```bash\nuv venv\nsource .venv/bin/activate\nuv pip install kivy flask pyjnius buildozer cython\n```\n\nConnect your Android phone via USB (with Developer Options \u0026 USB Debugging enabled) and run:\n```bash\nbuildozer android debug deploy run logcat\n```\n*Note: The first build pulls the Android SDK/NDK and will take quite a while (60 - 90 minutes). Subsequent builds only take a few minutes.*\n\n## Usage\n\n1. Open the **SMS Server** app on your Android device.\n2. Tap **Start Server**. It will display the phone's IP address (e.g., `Server IP: 192.168.1.100 : 5000`).\n3. Send requests from any computer on the same WiFi network.\n\n**Test Connection:**\n```bash\ncurl http://\u003cPHONE_IP\u003e:5000/api/test\n```\n\n**Send an SMS:**\n```bash\ncurl -X POST http://\u003cPHONE_IP\u003e:5000/api/sms \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"number\": \"+1234567890\", \"message\": \"123456 is your verification code.\"}'\n```\n\n**Toggle Flashlight (Server Connection Test):**\n```bash\ncurl -X POST http://\u003cPHONE_IP\u003e:5000/api/flashlight \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"state\": true}'\n```\n\n## Author\n\n* Developed by **Abhishek**\n* GitHub: [@abhishekmallav](https://github.com/abhishekmallav)\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/abhishekmallav)\n[![Gmail](https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white)](mailto:abhimallav1439@gmail.com?subject=Hello%20There\u0026body=Just%20wanted%20to%20say%20hi!)\n[![Instagram](https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge\u0026logo=instagram\u0026logoColor=white)](https://www.instagram.com/abhishekmallav)\n[![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=x\u0026logoColor=white)](https://www.x.com/abhishekmallav)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhishekmallav%2Fmobile-sms-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhishekmallav%2Fmobile-sms-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhishekmallav%2Fmobile-sms-server/lists"}