Skip to content
Reverse engineering
All projects

GT111A Camera Root & De-Cloud

Root straight over the LAN — no SD tricks, no screwdriver — then a cloud-free live stream on open-source RTSP + PTZ + web. Evidence and hard-won lessons, bilingual, on GitHub.

Role
Reverse engineering — solo
Duration
4 days, 2026
Built with
Python, linux, hardware
Cover of the GT111A project

Sorun

Why it exists

A cheap Wi-Fi PTZ camera — GT111A on an Anyka AK3918E — abandoned by its cloud app. The hardware was perfectly fine; the software made it unusable. My goal: run it fully locally, cloud-free, on open source.

Yaklaşım

Finding the door

45 default passwords, 30+ SD-card triggers and known CVEs all failed on this unit. The break came from reading the chipset’s open-source SDK: a factory-test service called daemon was accepting commands over the network with zero authentication.

Nasıl çalışıyor

The telegram and the shot

I reverse-engineered its wire protocol byte by byte (length fields, checksum, response semantics). The file-name field ../../bin/busybox with the argument tcpsvd 0 2327 /bin/sh # opens a passwordless root shell — the trailing # comments out the junk the service appends. Persistence: a DES hash in the device’s writable partition; telnet root on every boot.

Teknik özet

Hardware and software

ARM926 core, 36 MB RAM, 8 MB SPI flash; Linux 3.4 + uClibc. Full flash dumped, squashfs partitions unpacked, boot chain (rcS → rc.local → service.sh) and 14 sensor modules mapped. The PTZ motors turned out to be driven by an MCU at I2C address 0x49 — discovered at this stage.

Önemli değişiklik

Live stream, PTZ and web

After root, an open-source stack went in from the SD card: the camera streamed H.264 720p + audio at rtsp://camera:554/vs0, steerable from a browser PTZ pad. Physically proven with two frames captured before and after a pan command — with the cloud software never running.

Sonuç

An honest ending

The persistence flash put this unit into a boot loop; it sits recoverable with hardware access (I hold the full backup). The method chain was proven and published to GitHub with bilingual docs; within a day it was indexed by security databases like Vulners and Sploitus — Vulners kaydı.

Ekranlar

Live-stream frames, port scans and ffprobe output — all evidence files in the repo: github.com/4onurdemir/anyka-ak3918-gt111a-root-decloud

Ne öğrendim

The “rehearsal fallacy”: a script that works by hand is not a script that works at boot — a rehearsal that doesn’t mirror the flashed conditions isn’t one. Recovery hardware comes before flashing. And flash is always the last step. These lessons became a 12-item checklist in the repo.

The next branch is your project

Tell me in a few sentences what you want to build. I usually reply the same day, the next day at the latest.

Right now I am open to new work: freelance projects, remote or on site in Istanbul. A web platform, a model to train or a stubborn device; whichever it is, write or call.