Взалмывая GoPro

May 15, 2015 08:55

Gopro интереснейший гаджет. Очень навороченный для своих размеров, но все же как и многие экшн камеры ограничен. Ограничения управления iso, а это бывает очень критично, к примеру, при съемке луны, и ограниченный диапазон интервалов для съемки таймлапс.




Но не все так плачевно. Совершив акт вандализма обнаружилась у прошки операционная система - кусочек unix, и не удивительно, многие создают свои девайсы на таких кусочках, даже андроид и айось на ядре юникса. А дальше больше - производитель встроил в прошку busybox - набор консольных приложений, вот где зарыты недокументированные возможности!!!

Бузибоск в GoPro оказался богатым на приложения, или как их еще называют команды командной строки

[Spoiler (click to open)]acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash, awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif, nbd-client, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot, reformime, remove-shell, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont, setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum, sha256sum, sha512sum, showkey, slattach, sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true, tty, ttysize, tunctl, ubiattach, ubidetach, ubimkvol, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpd, udpsvd, umount, uname, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog, wc, wget, which, who, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip
Не проверил, все ли команды работают, но можно побибикать или текст похабненький на экранчик вывести, как на фото. но самое интересное это ash - это интерпретатор скриптов, а значит можно создавать целые сценарии поведения прошки.

Так же там нашелся пакет приложений под незамысловатым названием "t", под этой буковкой и скрыта вся сущность gopro - именно этот пакет и отличает прошку от огрызка и андрюшки. Там находятся все управляющие процессом съемки команды.

Как все сложно получилось, но написал все это чтобы осмыслить совершенное.

Ну не я ж первый влез в прошивку gopro, испанский 15-ти!!! летний паренег KonradIT это сделал уже год назад и выложил в общий достут свои результаты.
Он и показал как правильно пользоваться скрытыми возможностями через ash.
ASH запущен как daemon и готов к выполнению автозагрузочного скрипта autoexec. Не требуется телнетится и запускать интерпретатор, он уже выполняется резидентно.
Какие страшные слова, на деле все очень просто - надо создать файлик с названием autoexec.ash текстовым редактором, не блокнотом, для этих целей лучше воспользоваться notepad+

К примеру мы хотим создать таймлапс с интервалом в X+1 секунд - пишем в файлик следующее

sleep 1
t app appmode photo
sleep X
t app button shutter PR
d:\autoexec.ash
REBOOT yes

Чтобы это значило:
пауза в 1 секунду - даем проснуться gopro
потом преводим прошку в режим фото
пауза на тот интервал времени, который необходим (минус секунда, которую мы дали на пробуждение гаджета)
снимаем
сообщаем прошке что будем выпонять срипт еще раз
и перезапускаем выполнение

Затем...
перед сохранением надо отфоматировать файл в unix кодировку:
правка -> формат конца строк -> unix кодировка
и
кодировки -> кодировать в UTF (без BOM)

и сохраняем как ... тип файла unix срипт, только не забудьте поправить расширение с sh на ash
Закидываем получившийся файлик в корень карточки и включаем прошку, началась съемка задананными интервалами.
Так просто gopro раскроется перед вами и исполнит "три желания"

Как играться с исо и выдержками, если вам это интересно, тоже расскажу.

Вот так и появилась в моем журнале новая рубрика - " hack"

своими руками, лайфхак, гаджет

Previous post Next post
Up