Работа с консольным утилитами может пригодится в том случае, если предполагается реализация удаленной работы с медиаплеером. Поднятие веб сервера, торент качалки или просто выключить медиаплеер. К примеру, единственным способом получить скриншот устройства (который я нашел) – это дамп фреймбуфера из консоли.
SSH подключение к Медиаплееру
Самым удобным способом удаленного подключения к медиаплееру - это подключение по ssh (security shell)
Для доступа по ssh надо установить DropBear SSH server II из Android Маркета.
После установки можно будет узнать/поменять параметры подключения.
Так с Ubuntu можно подключиться к устройству:
#: sudo ssh root@192.168.1.103
Пока что подключаемся через root пользователя.
Выключение устройства из консоли
На практике проверил, что медиаплеер 3Q 3QMMP-AB492HW можно выключить через консоль командами:
#: su
#: reboot -p
О возможных неполадках пока не известно
Как сделать скриншот экрана на медиаплеере
Поискав по play-маркету, я так и не нашел пристойных приложений позволяющих сделать скриншот (главный недостаток найденных приложений было использование для снятия скриншота недоступных на медиа плеере действий — мультитач, потрясти девайс или наклонить).
Пришлось снимать дамп с фреймбуфера.
#: cat /dev/graphics/fb0 > /home/$USER/screenshot.raw
Конвертация дампа
#: ffmpeg -vframes 1 -f rawvideo -pix_fmt rgb32 -s 1280x720 -i fb0.raw fb0.png
Как видно, чтобы с конвертировать дамп в обычное изображение надо знать текущее разрешение экрана. Это можно сделать с помощью Antutu Banchmark или System Tuner.
Боже, у вас нет ffmpeg?
Как обстоят дела в Windows я не в курсе, но в Ubuntu ffmpeg ставиться из пакетов.
BusyBox
BusyBox — это набор стандартных Unix утилит в одном исполняемом файле.
У меня установлен stericson.busybox из Play Market-а.
Перечислю интересные вещи.
Как узнать версию ядра Linux на медиаплеере:
#: busybox uname -a // версия ядра
Как вывести файл на экран;
#: busybox cat file.txt
Как создать директорию:
#: busybox mkdir dimonvideo
Как удалить файл (rm) или директорию (rm-r):
#: busybox rm -r 4da
Как скопировать файл (cp) или папку (cp -r):
#: busybox cp -r 4da ../test
Как переименование файл (mv)
#: busybox mv dimonvodeo DimonVideo
Как вывести полного пути к текущему каталогу
#: busybox pwd
Как вывести состояния оперативной памяти в мегабайтах
#: busybox free -m
Как вывести информации об использовании дисков
#: busybox df
Как вывести информации о объеме данных
#: busybox du
Вместе с busybox становится возможным писать скрипты awk и на bash:
#: busybox awk -f script.awk
Про awk:
http://www.ibm.com/developerworks/ru/library/l-awk1/
http://rus-linux.net/MyLDP/consol/awk.html
http://www.opennet.ru/docs/RUS/awk/
После того как мной был установлен пакет busybox на устройстве появился единственный консольный текстовый редактор vi. Так как все мои попытки запустить nano на устройстве провалились, то мне пришлось свыкнуться с мыслью что все же придется запомнить команды vi (http://ru.wikipedia.org/wiki/Vi).
Компиляторы gcc и g++ на android.
Главное ограничение кодинга под Android связано с тем, что большинство интерпретаторов и компиляторов идущих на Android идут без поддержки работы в консольном режиме. То есть возможность запуска из под ssh отсутствует. А перспектива кочеряжится с исходниками перед телевизором немного пугает.
Ковыряя форумы 4pda нашел описание среды разработки C/C++/Lua для Android Cctools (http://cctools.info/index.php?title=Main_Page)
который после установки тянет на устройство скомпилированную под armv7 сборку gcc 4.7. Которую для меня представляет наибольший интерес.
Компиляторы gcc, g++ будут находится по следующему пути
/data/data/com.pdaxrom.cctools/root/cctools/bin
Поэтому их надо добавить в переменную PATH
export PATH=$PATH:/data/data/com.pdaxrom.cctools/root/cctools/bin
Напомню, чтобы скомпилированную программу можно было запустить, ее надо переместить в раздел /data/local . SD карта при монтирована в режиме noexecute.
Поэтому потребуется немного такой магии;
#: busybox cp tst /data/local/tst
#: chmod 777 tst
#: ./tst
No comments:
Post a Comment