KidShield is a powerful, open-source parental control solution designed for Android devices. It empowers parents to monitor their children's digital activity, enforce usage boundaries, and ensure online safety with minimal impact on device performance.
⚠️ Educational Use Only This project is intended for educational purposes to demonstrate advanced Android concepts such as persistent background services, permissions, and Firebase integration. Do not use this application for unlawful or unethical monitoring. Only install it on devices you own or have explicit permission to monitor. The developers assume no responsibility for misuse.
-
Real-time Location Tracking Receive frequent location updates and visualize the child's position on an interactive map.
-
App Blocker View and remotely block/unblock installed applications on the child's device.
-
Call & SMS Log Monitoring Securely access communication logs to stay informed.
-
Persistent Background Service Runs as a foreground service that resists termination by the system or user.
-
Auto-Restart on Boot Ensures the monitoring service restarts automatically after device reboot.
KidShield is built using a modern hybrid architecture optimized for reliability and battery efficiency:
-
Persistent Foreground Service Executes every 2 seconds to check if the currently active app is in the blocked list and takes immediate action.
-
AlarmManager for Periodic Sync Handles heavier sync tasks (location, SMS, call logs) every 1-5 minutes for optimal power usage.
- Android Studio (latest recommended)
- Physical Android device (emulators may not support all features)
git clone https://github.com/nvd2710/KidShield.git
cd KidShield-
Go to Firebase Console.
-
Create a new project.
-
Enable Email/Password in Authentication settings.
-
Set up Realtime Database:
- Choose "Start in test mode"
- Set rules for authenticated access:
{
"rules": {
"users": {
"$uid": {
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid"
}
}
}
}-
Register your Android app in Firebase:
- Use package name:
com.yousafdev.KidShield - Download
google-services.jsonand place it inKidShield/app/
- Use package name:
-
Go to Google Cloud Console
-
Enable Maps SDK for Android
-
Create and restrict an API Key:
- Restrict to package
com.yousafdev.KidShield - Add your debug SHA-1 key
- Restrict to package
-
Insert API key in
AndroidManifest.xml:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_API_KEY_HERE" />- Connect your Android device
- Run the project from Android Studio
- Register as a parent and child to explore all features
We welcome all contributions! Feel free to:
- Submit issues
- Suggest improvements
- Create pull requests to fix bugs or add features