Взалмывая GoPro
May. 15th, 2015 08:55 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Gopro интереснейший гаджет. Очень навороченный для своих размеров, но все же как и многие экшн камеры ограничен. Ограничения управления iso, а это бывает очень критично, к примеру, при съемке луны, и ограниченный диапазон интервалов для съемки таймлапс.

Но не все так плачевно. Совершив акт вандализма обнаружилась у прошки операционная система - кусочек unix, и не удивительно, многие создают свои девайсы на таких кусочках, даже андроид и айось на ядре юникса. А дальше больше - производитель встроил в прошку busybox - набор консольных приложений, вот где зарыты недокументированные возможности!!!
Бузибоск в GoPro оказался богатым на приложения, или как их еще называют команды командной строки
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 секунд - пишем в файлик следующее

Но не все так плачевно. Совершив акт вандализма обнаружилась у прошки операционная система - кусочек unix, и не удивительно, многие создают свои девайсы на таких кусочках, даже андроид и айось на ядре юникса. А дальше больше - производитель встроил в прошку busybox - набор консольных приложений, вот где зарыты недокументированные возможности!!!
Бузибоск в GoPro оказался богатым на приложения, или как их еще называют команды командной строки
Не проверил, все ли команды работают, но можно побибикать или текст похабненький на экранчик вывести, как на фото. но самое интересное это 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"
Чтобы это значило:
пауза в 1 секунду - даем проснуться gopro
потом преводим прошку в режим фото
пауза на тот интервал времени, который необходим (минус секунда, которую мы дали на пробуждение гаджета)
снимаем
сообщаем прошке что будем выпонять срипт еще раз
и перезапускаем выполнение
Затем...
перед сохранением надо отфоматировать файл в unix кодировку:
правка -> формат конца строк -> unix кодировка
и
кодировки -> кодировать в UTF (без BOM)
и сохраняем как ... тип файла unix срипт, только не забудьте поправить расширение с sh на ash
Закидываем получившийся файлик в корень карточки и включаем прошку, началась съемка задананными интервалами.
Так просто gopro раскроется перед вами и исполнит "три желания"
Как играться с исо и выдержками, если вам это интересно, тоже расскажу.
Вот так и появилась в моем журнале новая рубрика - "hack"