現在のATOMCamのアプリは、24時間連続録画による分刻みの録画がmicroSD内に残りますが、
動き・音声検知した動画はかならずクラウドにアップされ、ローカルには残りません。
仕組みとして、検知した動画は/tmp/alarm_reocord.mp4という固定ファイルに一旦保存され、
クラウドにアップされると消去されてしまうからです。
※よく考えると、検知動画14日以上を有料化プランするような話もあったので
技術的なものに加え、その方法のほうが都合がいいのかもしれません…
というわけで、この検知ファイルをローカルに保存しつつ、
例えば自分のNASやslackなどに投稿するためのhackスクリプトです
hackなので、そのうち使えなくなるかもしれません。
※公式で実装してくれるのが一番うれしいんですがね
making tar script
#!/bin/sh # making Test.tar script cd /media/mmc mkdir work cd work touch factory mkdir Test touch Test/factoryTestProcess touch Test/singleBoadTest touch Test/checksum cat > Test/test.sh << EOF #!/bin/sh /media/mmc/pre.sh /system/bin/hl_client & /system/bin/iCamera_app & /media/mmc/post.sh EOF chmod a+x Test/test.sh tar cfv Test.tar Test factory cp Test.tar /media/mmc
mmc/pre.sh
#!/bin/sh echo "exploit pre app functions" > /dev/ttyS1 cp -r /bin /tmp/bin busybox rm /tmp/bin/rm mount /tmp/bin /bin cp /media/mmc/norm.sh /tmp/bin/norm.sh ln -s /tmp/bin/norm.sh /bin/rm
mmc/post.sh
#!/bin/sh echo "exploit post app functions" > /dev/ttyS1
mmc/norm.sh
#!/bin/sh if [ -e $1 ]; then echo "$1 is file parameter" FILE=$1 OPT=$2 fi if [ -e $2 ]; then echo "$2 is file parameter" FILE=$2 OPT=$1 fi if [[ "$FILE" = "/tmp/alarm.jpg" || "$FILE" = "/tmp/alarm_record.mp4" ]]; then FMT=`date +"%Y%m%d_%H%M%S"` echo $FMT > /dev/ttyS1 mkdir /media/mmc/alarm_files/ str=`echo ${FILE} | awk -F "/" '{ print $NF }'` echo "basename:${str}" OUTPATH="/media/mmc/alarm_files/"$FMT"_"$str echo "outpath:$OUTPATH" > /dev/ttyS1 cp $FILE $OUTPATH fi busybox rm $1 $2
カメラアプリ内でrmが呼ばれていることを利用して、ファイルを横取りします。
引数処理が適当なので自分でrmコマンドを使おうとすると変になるけど
全体の動作としてはちゃんと動きます(そのうち直す)