Skip to content

nvd2710/KidShield

Repository files navigation

KidShield — Android Parental Control Application

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.


✨ Features

  • 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.


🚀 Architecture Overview

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.


🖼️ Screenshots

Parent Dashboard

Parent Dashboard

Child Detail View

Child Detail View

App Blocker

App Blocker App Blocker

📖 Project Setup Guide

Prerequisites

  • Android Studio (latest recommended)
  • Physical Android device (emulators may not support all features)

✅ Step 1: Clone the Repository

git clone https://github.com/nvd2710/KidShield.git
cd KidShield

✅ Step 2: Firebase Setup

  1. Go to Firebase Console.

  2. Create a new project.

  3. Enable Email/Password in Authentication settings.

  4. 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"
      }
    }
  }
}
  1. Register your Android app in Firebase:

    • Use package name: com.yousafdev.KidShield
    • Download google-services.json and place it in KidShield/app/

✅ Step 3: Google Maps API Key

  1. Go to Google Cloud Console

  2. Enable Maps SDK for Android

  3. Create and restrict an API Key:

    • Restrict to package com.yousafdev.KidShield
    • Add your debug SHA-1 key
  4. Insert API key in AndroidManifest.xml:

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

⚠️ Only replace YOUR_API_KEY_HERE with your actual API key. Do NOT modify com.google.android.geo.API_KEY.

✅ Step 4: Build & Run

  • Connect your Android device
  • Run the project from Android Studio
  • Register as a parent and child to explore all features

📈 Contributing

We welcome all contributions! Feel free to:

  • Submit issues
  • Suggest improvements
  • Create pull requests to fix bugs or add features

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages