AndroCom is a groundbreaking Android application that empowers users to communicate without an active internet connection. It enables encrypted text messaging, voice calls, and video calls over an ad hoc network established using a Raspberry Pi 3B+, making it perfect for use in remote areas, during internet outages, or in emergency situations.
AndroCom’s core features include:
- Offline Communication: Communicate using text, voice, and video without internet by connecting to a local ad hoc network.
- Ad Hoc Network: Utilizes Raspberry Pi 3B+ to create a temporary, decentralized communication network.
- Encrypted Messages: Ensures security and privacy through AES encryption.
- Voice and Video Calls: Allows users to make voice and video calls within the ad hoc network.
- Scalability: Multiple devices can connect to the ad hoc network for group communication.
- User Blocking and Mute Features: Provides the ability to block or mute other users for enhanced control over communication.
AndroCom leverages a range of technologies to provide its functionality:
- Programming Languages:
- Kotlin & Java for the Android application.
- Bash & Python for Raspberry Pi scripts.
- Networking:
- UDP for broadcasting active users across the network.
- TCP/IP for message exchange and voice/video call handling.
- Encryption:
- AES (Advanced Encryption Standard) ensures end-to-end encrypted communication.
- Hardware:
- Raspberry Pi 3B+ provides the ad hoc network capabilities, allowing devices to connect without relying on existing infrastructure.
- Databases:
- SQLite for storing local data on the Android devices.
The architecture of AndroCom revolves around the creation of an ad hoc network using a Raspberry Pi 3B+, which acts as the central hub for communication. Devices running the AndroCom app connect to this network, enabling them to communicate without relying on the internet.
Key Components:
- Client Application (Android):
- Handles user authentication, message transmission, and voice/video calls.
- Ad Hoc Network:
- Created using Raspberry Pi, which broadcasts available users and facilitates communication.
- Encryption Module:
- AES-based encryption for all text messages, calls, and video transmissions.
Flow:
- Raspberry Pi runs a server to manage the ad hoc network.
- Devices connect to this network and exchange data using the AndroCom app.
- Communication is secured through encryption and is sent over the ad hoc network without touching the internet.
- Raspberry Pi 3B+ with Raspbian OS installed.
- Android Studio for building and running the Android app.
- Python installed on Raspberry Pi for server-side scripting.
- Clone the repo:
git clone https://github.com/imharris24/AndroCom.git
- Navigate to the Raspberry Pi setup script:
cd AndroCom/RaspberryPi bash setup.sh
- Follow the script instructions to set up the ad hoc network on your Raspberry Pi.
- Clone the repository to your local machine:
git clone https://github.com/imharris24/AndroCom.git
- Open the project in Android Studio.
- Build the APK and run the app on your device.
- Ensure your Android device is connected to the ad hoc network in Wifi settings.
- Launch the AndroCom app and complete the profile setup.
- Start chatting, making voice calls, or video calls with connected users!
- Open the Chat section from the app.
- Select an active user and start typing your message.
- Hit Send and the message will be delivered securely over the ad hoc network.
- Select a user from the Active Users list.
- Tap the Call button to initiate a voice call.
- You can mute/unmute the microphone during the call.
- Choose a user from the chat or active users list.
- Tap the Video Call button to start a video call.
- You can switch between the front and rear cameras or mute the camera during the call.
Planned enhancements for AndroCom include:
- Enhanced User Interface: A more polished and user-friendly UI for better interaction.
- File Transfer: Adding the ability to securely transfer files over the ad hoc network.
- Group Calls: Expanding functionality to support group voice and video calls.
- Network Optimization: Improvements to handle a larger number of active users in the ad hoc network.
This project is licensed under the MIT License. See the LICENSE file for more details.
Contributors: