aunchagaonkar/Anchor
Locate your lost device via SMS
A privacy-focused Android application that enables you to locate and control your lost or stolen device remotely via SMS commands. No internet required, no servers involved - just direct SMS communication between your devices.
Purpose
Anchor provides comprehensive remote control of your Android device through secure SMS commands, helping you recover lost or stolen devices:
- Device Location: Get precise GPS coordinates with Google Maps link
- Remote Ring: Make your device ring at maximum volume, even when silenced
- Device Status: Check battery level, charging status, and screen state
- Call Back: Make your device call you immediately
- Sound Control: Remotely change device sound mode (Normal/Vibrate/Silent)
- Service Check: Verify the tracking service is active
Use Cases
- Locate lost device using GPS coordinates
- Ring device to find it nearby
- Get device status when lost
- Make device call you back
- Control device remotely when stolen
- Track device location for recovery
The app operates completely offline using SMS, providing:
- No Internet Required: Works via cellular SMS
- No Data Collection: All operations are local
- Privacy-First: No servers, no tracking, no analytics
- Secure: Password protection and phone whitelist
Features
- 7 SMS Commands: Complete remote control of your device
- Password Protected: All commands require authentication
- Phone Whitelist: Restrict control to trusted contacts only
- Custom Prefix: Personalize your command trigger word
- Privacy-Focused: No internet permissions, all operations are local
- Modern Material Design 3 Interface: Clean, intuitive UI built with Jetpack Compose
Configuration
SMS Commands
The app supports 7 remote control commands:
Device Location:
locate- Get GPS coordinates and Google Maps link
Device Control:
ring- Play loud alarm at maximum volumeinfo- Get battery level, charging status, screen statecallme- Make device call you back immediatelysound [mode]- Change sound mode (normal/vibrate/silent)
Service Management:
ping- Check if Anchor service is runninghelp- Get list of all available commands
Command Configuration
- Open the app and navigate to Command Settings
- Set your Command Prefix (default:
PIN) - Create a strong Command Password
- Save the configuration
Whitelist Setup (Recommended)
- Navigate to Phone Whitelist
- Enable whitelist protection
- Add trusted phone numbers:
- Import from contacts, or
- Add manually
- Only whitelisted numbers can control your device
Requirements
- Android 8.0 (Oreo, API 26) or higher
- Active SIM card with SMS capability
- GPS/Location services
- Phone call capability
Installation
- Download the latest APK from the Releases page
- Install on your Android device
- Open the app and grant required permissions:
- SMS (Read & Send)
- Location (Precise & Background)
- Phone (Make Calls)
- Display Over Other Apps
- Configure your command prefix and password
- Set up phone number whitelist for security
- Test with a ping command from trusted number
Project Structure
app/
├── src/main/java/com/supernova/anchor/
│ ├── MainActivity.kt # Main entry point
│ ├── SettingsActivity.kt # App settings
│ ├── PermissionsActivity.kt # Permission management
│ ├── CommandSettingsActivity.kt # Command configuration
│ ├── WhitelistActivity.kt # Phone whitelist management
│ ├── AboutActivity.kt # App information
│ ├── receiver/
│ │ └── SmsReceiver.kt # SMS command receiver
│ ├── service/
│ │ └── OverlayDisplayService.kt # Alert display service
│ └── utils/
│ ├── SmsCommandProcessor.kt # Command processing logic
│ ├── LocationUtils.kt # GPS location services
│ ├── WhitelistManager.kt # Whitelist management
│ ├── PermissionManager.kt # Permission handling
│ ├── AppSettings.kt # Settings storage
│ └── RingtonePlayer.kt # Ring command handler
├── src/main/res/ # Resources (layouts, strings, etc.)
└── build.gradle.kts # App build configuration
.github/workflows/ # CI/CD pipelines
├── build.yml # Continuous Integration
└── release.yml # Release automation
gradle/
├── libs.versions.toml # Version catalog
└── wrapper/ # Gradle wrapper
build.gradle.kts # Root build configuration
settings.gradle.kts # Project settings
Building from Source
# Clone the repository
git clone https://github.com/aunchagaonkar/anchor.git
cd anchor
# Build debug APK
./gradlew assembleDebug
# Build release APK
./gradlew assembleReleaseSecurity & Privacy
What We DON'T Do
- No internet access
- No data collection
- No analytics or tracking
- No third-party services
- No background data sync
- No user accounts
What We DO
- SMS-only communication
- Password protection
- Phone number whitelist
- Local data storage only
- Open source code
- Transparent operations
Security Best Practices
- Use a strong, unique password (12+ characters)
- Enable phone whitelist protection
- Only add trusted contacts to whitelist
- Regularly review whitelist entries
- Keep the app updated
- Never share your command password
TODO
- SMS command processing
- GPS location tracking
- Remote device ring
- Call back feature
- Sound mode control
- Password protection
- Phone whitelist
- Rate limiting for commands
- Geofencing alerts
- Multi-language support
Contributing
Contributions are welcome! Please follow these guidelines:
Getting Started
- Fork the repository
- Create a feature branch (
git checkout -b feature/feature-name) - Make your changes following the project's code style
- Test your changes thoroughly
- Commit your changes (
git commit -m 'Add feature-name') - Push to the branch (
git push origin feature/feature-name) - Open a Pull Request
Code Style
- Follow Kotlin coding conventions
- Use meaningful variable and function names
- Add documentation for public APIs
- Maintain clean architecture principles
- Follow Material Design guidelines for UI changes
Testing
- Test on multiple Android versions (8.0+)
- Verify all SMS commands work correctly
- Test permission flows
- Validate security features
- Test on different devices/manufacturers
Reporting Issues
- Use the GitHub issue tracker
- Provide detailed reproduction steps
- Include device information and Android version
- Attach relevant logs when possible
LICENSE
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Dependencies and Credits
Core Dependencies
- Jetpack Compose: Modern UI framework
- Material Design 3: UI components and theming
- Play Services Location: GPS location services
- Kotlin Coroutines: Asynchronous operations
- AndroidX Libraries: Core Android components
Permissions Used
- SMS: Receive and send command messages
- Location: Determine device position
- Phone: Make callback calls
- Display Over Other Apps: Show alerts
Special thanks to the Android development community and the maintainers of the open-source libraries used in this project.
Disclaimer
Important: This app is designed to help you locate and control YOUR OWN device if it's lost or stolen. It is NOT intended for:
- Surveillance or tracking others
- Covert monitoring
- Unauthorized access to devices
Using this app to track others without their knowledge may be illegal in your jurisdiction. Always comply with local laws and respect privacy rights.
Legal:
- Use only on devices you own or have permission to track
- Comply with local privacy and surveillance laws
- Disable before selling/transferring device
Made with ❤️ from Ameya
⭐ Star this repo if you find it useful!


