KidShield

Your open-source Android parental control companion

⚠️ Educational Purpose

This app is built for learning Android development concepts like background services, Firebase, and permissions. Only use it on devices you own or have permission to monitor. The developers are not responsible for misuse.

✨ What It Does

📍

Location Tracking

See where the device is in real-time on a map

🔒

App Blocker

Block and unblock apps remotely

📞

Call & SMS Logs

View communication history

⚙️

Always Running

Service that stays active in background

🔁

Auto Restart

Restarts after phone reboots

🔋

Battery Friendly

Optimized to save battery life

🏗️ How It Works

KidShield uses a smart combination of Android services to monitor devices efficiently. A foreground service checks every 2 seconds if blocked apps are running, while AlarmManager handles syncing location and logs every few minutes to save battery.

Foreground Service AlarmManager Firebase Google Maps WorkManager MVVM Kotlin LiveData

📸 Screenshots

Want to see what KidShield looks like? Check out all the screenshots and UI previews on the GitHub repository!

🚀 Setup Instructions

What You Need

Android Studio Android Phone Firebase Account Google Maps API

Installation Steps

  1. Clone the repo from GitHub
  2. Create a Firebase project and enable email authentication
  3. Set up Firebase Realtime Database with security rules
  4. Download google-services.json and put it in the app folder
  5. Get a Google Maps API key
  6. Add the API key to AndroidManifest.xml
  7. Build and run on your Android device
  8. Register parent and child accounts

Firebase Rules

{ "rules": { "users": { "$uid": { ".read": "auth != null && auth.uid == $uid", ".write": "auth != null && auth.uid == $uid" } } } }

API Key Setup

<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY_HERE" />

📄 License & Contributing

This project uses the License (MIT). Feel free to use it, but please give credit and link back to the original repo.

Found a bug? Have an idea? Contributions are welcome! Open an issue or submit a pull request on GitHub.