honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

ATOM Camのファームアップが待ちきれないので魔改造して便利に使う

honeylab.hatenablog.jp

こちらで入手したATOM Camですが、一般販売も始まったようです。
(現在メーカ直販のみ、amazonは予約中のようです)

今後のファームアップデートとして、NAS対応やONVIF対応などが挙がっているようですが、開発中とのことです。
その中で、専用アプリを介さないとダウンロードできないmicroSDカードの中身を自動的に転送するという機能を無理やり実装しました。
こちら、完全にメーカーサポート外ですし、やり方を間違えるとセキュリティ上の懸念もありますので、
こんなこともできるのか、という参考程度に見ておいてください。

まず、ATOM Camに仕込まれているfactorycheck機能を利用して、
microSDカード上に保存した任意のスクリプトを実行できる機能を利用します。
これは、そのうちアップデートでふさがれるかもしれませんし、ふさがれないかもしれません。
もしふさがれたとしても、現状の仕組みだとファームアップ用のファイルを改変する、という方法で逃れることができるのですが。
これは、Linuxというオープンなシステムを使用しているが故の仕方のないことだと思ってください。
物理的にふたを開けて内部にアクセスさえできれば、ぶっちゃけなんでもできるのです。


前置きはさておき、factorycheck機能の詳細は、別の方が書いているブログを参考にしてください。ここからはリンクは張りません。

必要なスクリプト まず例の test.shはこんな感じ

#!/bin/sh

/system/bin/hl_client &
/system/bin/iCamera_app &

/media/mmc/run.sh

 これだけ。

で、mmcカード上に run.shというファイルを以下のように作成します。

#!/bin/sh

echo 'script from mmc'
cd /media/mmc
while true;
do
        echo "check mmc mp4"
    FILE=`find . -name "*.mp4" | sort | tail -n 1`
if [ $FILE = $LASTFILE ]; then
  echo "not changed"
else
        echo -n "file updated [$FILE]"
        REMOTEPATH=`echo $FILE | sed 's/.//' | sed 's/\///g'`
        echo $REMOTEPATH
        /media/mmc/busybox ftpput -u atomcam -p atomcam 192.168.0.14 $REMOTEPATH
 $FILE
fi
    LASTFILE=$FILE
    sleep 10
done

このスクリプトを見てわかるように、適当なディレイをもってmicroSDカード内のmp4ファイルを検索し、
一番新しいものをftpputコマンドで転送する、という仕組みになっています。
ところで、内蔵busyboxにはftpputコマンドがありませんので、コンパイルする必要があります。
適当なLinux環境で、buildrootを使って作るのがらくちんです。
私は、buildroot-2015.11 を使いました。
f:id:honeylab:20200522013849p:plain
ターゲットオプションはこんな感じ。


内蔵のbusybox
f:id:honeylab:20200522014828p:plain
のようにちょっと心もとないですが、

自分で作成したbusybox
f:id:honeylab:20200522014807p:plain
のように何でも使えるようになります。

そして、ftpで送りつける先のマシンを設定してやると…
f:id:honeylab:20200522014111p:plain
このように、どっかのftpサーバに一分毎のファイルを送り付けることができるようになります。
便利!

ATOM Cam自体にftpサーバ機能やhttpサーバ機能を持たせることもできますが、そっちをサーバにすると
侵入されてファイルを持っていかれるという可能性が発生します。
そのため、若干でも可能性の低い、ftpクライアントを使用する、という方法にしています。

…今更ftp ?? まぁそれは許して(本当にどうにかしたいならscpでもなんでも自分でコンパイルして配置してね!)