This project is essentially my final thesis from college,
called RAAS (Remote Acquisition Android Smartphone).
RAAS/CAF is a Django 5 web app I built to perform secure, remote forensic
acquisitions of Android devices over VPN. It streams raw partitions
via ADB & Netcat, supports live monitoring, interruption-safe resume,
and SHA-256 verification—outputting FTK-compatible images.
Role:
Lead Developer & Designer
Tech Stack:
Django · Celery · ADB · WebSocket
Tested:
USB & Wireless Scenarios
Published:
Jan 2025 (Kominfo)
Key Features
Live & resumable block-level imaging via dd|nc.
SHA-256 hashing before/after capture for forensic integrity.
WebSocket-powered real-time progress dashboard.
Encrypted VPN transport and Django security middleware.
Sample Source Code
# In acquisition/tasks.py
from subprocess import Popen
def build_and_run_acquisition(serial, partition, seek, port):
dd_cmd = '/data/local/busybox dd'
nc_cmd = '/data/local/busybox nc'
adb_shell = (
f"adb -s {serial} shell \"su 0 -c "
f"'{dd_cmd} if=/dev/block/{partition} bs=512"
+ (f" skip={seek}" if seek else "")
+ f" | {nc_cmd} -l -p {port}'\""
)
# start remote process on device
Popen(adb_shell, shell=True)
# listener on server side (example)
server_cmd = (
f"nc -l {port} | dd of=/data/acquisitions/{serial}.dd bs=512"
+ (f" seek={seek}" if seek else "")
+ " conv=fsync"
)
Popen(server_cmd, shell=True)