Kamera irti pilvestä — oma firmware Conecto Bullet 6S:ään
Halvassa valvontakamerassa oli 8 MB flashia, ARMv5-ydin ja pakko käyttää Tuya-pilveä. Dumppasin firmwaren UARTin yli ja kirjoitin oman RTSP-palvelimen C:llä.

Ostin halvan valvontakameran ja huomasin heti ongelman: se toimi vain valmistajan sovelluksella. Video kulki Tuyan pilven kautta ulkomaiselle palvelimelle ja takaisin, latenssi oli sekunteja, ja jos internet oli poikki, kamera oli hyödytön. Halusin RTSP-virran omaan verkkoon ja laitteen joka ei ota yhteyttä ulos lainkaan.
Lopputulos: kamera pyörii nyt kokonaan omalla firmwarella, ilman internetiä, ja vaihtaa yönäköön itsestään.
Laitteisto
| Malli | Conecto Bullet Outdoor 6S |
| SoC | Anyka AK3918EN080 V300, ARMv5 (ARM926EJ-S) |
| Kenno | GC2053, 1080p |
| WiFi | RTL8188FTV, 2,4 GHz |
| RAM | 64 MB |
| Flash | 8 MB SPI NOR |
| Alkuperäinen | PPStrong A3 + Tuya, Linux 3.4.35, uClibc 0.9.33 |
1 — Sisään sarjaportin kautta
Purkaminen alkoi piirilevyltä. Sieltä löytyi UART-portti, jonka kautta sai käynnistyslokin ja lopulta pääsyn tiedostojärjestelmään. U-Boot oli suojattu salasanalla, joka löytyi suoraan bootloaderin merkkijonoista.
Ensimmäinen oikea työvaihe ei ollut kirjoittaminen vaan lukeminen: koko flash dumpattiin talteen ennen kuin mitään muutettiin. Se kopio pelasti laitteen kahdesti.
2 — Oma RTSP-palvelin
Mikään valmis binääri ei kelpaa: AK3918 on ARMv5 ja käyttöjärjestelmä nojaa vuosien takaiseen uClibciin. Kirjoitin video- ja äänivirran tarjoavan RTSP-palvelimen C:llä ja käänsin sen ristiin oikealla toolchainilla.
$ arm-anykav200-linux-uclibcgnueabi-gcc \
-Os -ffunction-sections -Wl,--gc-sections \
-o rtspd main.c rtsp.c audio.c
$ ls -l rtspd
-rwxr-xr-x 1 148K rtspd
Kahdeksan megatavun flash sanelee kaiken: jokainen kirjasto jota ei tarvita jätetään pois, ja -Os sekä --gc-sections ovat pakollisia eivätkä optimointia.
Ääni tuli perässä omana palvelimenaan, G.711 µ-law 8 kHz. Ilman RTCP:n Sender Reporteja ääni ja kuva erkanivat toisistaan minuuteissa, joten ne piti ankkuroida seinäkelloon.
3 — Yönäkö
IR-cut-suodatin ja IR-LEDit kytkeytyvät nyt automaattisesti valoisuuden mukaan. Kirkkaus luetaan suoraan ISP:n luminanssiarvosta, eikä kamera tarvitse siihen mitään ulkoista.
4 — Tiilaantuminen ja paluu
Ensimmäinen flashaus jäi kesken ja laite ei enää käynnistynyt. Koska alkuperäinen dumppi oli tallessa, kirjoitin recovery-firmwaren jolla kameran saa takaisin eloon UARTin yli. Se on nyt osa julkaisua: kukaan ei aloita tätä ilman paluulippua.
Mitä jäi käteen
- RTSP-video
rtsp://<ip>/ch0(1080p) ja/ch1(360p) - RTSP-ääni
rtsp://<ip>:8554/audio, TCP-interleaved - Automaattinen yönäkö
- Ei Tuyaa, ei pilveä, ei ulospäin avautuvia yhteyksiä
- Recovery-firmware UART-palautukseen
Sama SoC löytyy monesta muustakin halvasta PPStrong- ja Meari-pohjaisesta kamerasta, joten menetelmä ei ole sidottu tähän malliin.