ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=30)
-   -   Читалка на linux (https://forum.antichat.xyz/showthread.php?t=269969)

<Cyber-punk> 15.04.2011 23:01

Читалка на linux. Путь в маршрутизаторы

Читалка на linux



{intro}

Недавно, я захотел купить себе электронную книгу. Настроение и

средства были, а что ещё надо? Посмотрев новинки, я выбрал ONEXT

Touch&Read 001. Не буду вас томить и сразу приведу характеристики этого устройства:

Электронная книга ONEXT Touch&Read 001

Экран: Сенсорный емкостный дисплей SiPix 6’’ (600x800 точек), 16 градаций

серого


Процессор:Samsung 2416

400Mhz


Wi-Fi, Интернет-браузер

Операционная система: Linux 2.6

Память:128 Мб оперативной памяти, 2 Гб постоянной памяти

Интерфейс:Micro USB порт для подключения к ПК и заряда аккумулятора,

micro SD разъем с поддержкой SDHC (карт высокой емкости)


Аккумулятор:Li-Polymer 1530 mAh (до 10000 страниц без подзарядки)

Поддержка форматов книг : FB2, EPUB, TXT, PDF, HTML

Поддержка мультимедиа форматов: JPG, PNG, BMP, MP3

Размер:124х170х8,8 мм

Вес:240 грамм

ОС:Microsoft® Windows® 2000, XP, VistaTM, совместима с Microsoft® Windows 7

http://www.keepme.ru/upload/previews...51e5535084.jpg

http://www.keepme.ru/upload/previews...29520aef83.jpg

Через день мне курьер принес эту книгу. Вначале всё было хорошо. Но

через день я заметил, что в углу экрана появилась маленькая трещинка.

Всё бы ничего, если бы работал сенсорный экран. А он работал через раз.

Мне это надоело, и я решил поковырять официальную прошивку 3.0 для

этой книги. Скачал ее с сайта разработчика и приступил к детальному

анализу.

{part one}

Только бросив поверхностный взгляд, можно было понять, что это всего

лишь набор приложений и настроек. Проковырявшись два часа, я добавил

в установочный файл эту строку - chmod 666 /mnt/mmc0p1/mnt/etc/rc.d/init.d/inetd


Теперь при подключении к wi-fi точке у книги будет открыт 23 порт и

доступ по telnet.

Подключаемся и логинимся с данными по умолчанию root/SReader. Первая

команда uname –a. И вот результат: Linux Samsung 2.6.21.5-cfs-v19 #183 Mon Dec 20

09:52:27 CST 2010 armv5tejl unknown


http://www.keepme.ru/upload/previews...30e143487b.jpg

После этого, еще немного побаловавшись в консоли, я понял, что это

busybox v1.7.2. Посмотрев, что висит в процессах, я обратил внимание на

интересное приложение - QBookApp. Оно было с параметром qws.

http://www.keepme.ru/upload/previews...d5771f7f0c.jpg

Заинтересовавшись, я нашел бинарные файлы в папке /usr/local/qisda/bin.

Бегло просмотрев их, я понял, что это как раз то, что нам нужно, – главные

файлы читалки. Я запустил файл QBookApp.sh, и в консоль полилась туева

хуча информации, а экран электронной книги два раза обновился.

http://www.keepme.ru/upload/previews...b5c6fe2a11.jpg

Я решил посмотреть, что будет, если я открою какую-нибудь книгу, и

нажал в читалке «Продолжить чтение». В консоли началась бешеная

загрузка шрифтов.

http://www.keepme.ru/upload/previews...1cb3c0d61c.jpg

При попытке завершить скрипт в консоли появился текст «Turn off wifi...», и

соединение оборвалось.

Я попробовал запустить QBookApp –qws без управляющего скрипта. В

ответ он ругнулся:

[root@Samsung bin]# ./QBookApp -qws

./QBookApp: error while loading shared libraries: libcrengine-arm.so: cannot open shared object

file: No such file or directory


Тогда я попробовал с теми же параметрами запустить управляющий .sh

файл. Эффект был тот же. При попытке завершить скрипт отключался и wi-

fi.

{part two}

Оставив это дело, я обратил внимание на файл proftpd.conf в каталоге /etc.

Видимо это был конфигурационный файл FTP сервера. Обратившись к

логике, я набрал в консоли proftpd. В ответ он мне выдал ошибку о не

существовании группы “nogroup”. Лезть в конфиги мне было лень и я

просто создал группу nogroup. Но всё равно он ругнулся:

- IPv4 getaddrinfo 'Samsung' error: Name or service not known

- warning: unable to determine IP address of 'Samsung'

- error: no valid servers configured

- Fatal: error processing configuration file '/etc/proftpd.conf'


Я забил на это дело и начал копать дальше. Версия linux (busybox) была

сильно кастрирована и в ней отсутствовали какие-либо менеджеры

пакетов. В ней присутствовала только программа install, котрая могла

устанавливать программу из исходников. К сожалению, никаких

компиляторов, даже gcc, я не обнаружил. Поизучав систему ещё, я

обнаружил модули, загружённые в ядро - mt5921sta_spi, hspi_s3c2443,

spi_dev.
В корне системы лежал файл linuxrc с правами на исполнение.

Заглянув внутрь, я понял, что это очередной bash скрипт.

http://www.keepme.ru/upload/previews...a081957e13.jpg

Этот файл был главным, управляющим скриптом, который запускался при

старте системы. В нём меня заинтересовали строки с названием QEngineer.

Зайдя в папку /qdutil/em/, я заинтересовался файлом configuration.ini. Это

был файл настроек. В нем можно было включить и отключить разные

параметры (true\false). Видимо эта прошивка была создана не только для

электронной книги, потому что в этом файле были настройки не

существующих параметров, например Bluetooth или 3G.

Путём усердных поисков я нашёл эти комбинации клавиш, которых нет в

официальном FAQ.

Back + Zoom + power - перепрошивка

Back + Refresh + power - рекалибровка тачскрина

И непонятное

Left + Right + power - включение debug по USB

Back + Right + power - запуск сервисного приложения (QEngineer)


Я знаю что многим людям у которых были проблемы с экраном или экран не

функционировал, помогла рекалибровка экрана. Я не был исключением, и

после рекалибровки экрана получил полноценную электронную читалку.

Чтобы запустить Qengineer через консоль достаточно просто вызвать команду

/qdutil/em/start /qdutil/em/QEngineer

Поскольку в системе не установлен не один менеджер пакетов, то для того

что бы установить .deb пакет мы напишем маленький bash скрипт. В этом

примере мы установим nano т. к. мне редакто vi не по душе.

И вот наш скрипт:

mount / -o remount,rw

wget "http://ftp.us.debian.org/debian/pool/main/n/nano/nano-tiny_2.0.7-

5_armel.deb"

wget

"http://ftp.us.debian.org/debian/pool/main/s/slang2/libslang2_2.1.3-

3_armel.deb"

FILES=$(ls /root/*deb)

cd /

for NAME in $FILES ; do

ar -x "${NAME}"

tar zxf data.tar.gz

rm debian-binary data.tar.gz control.tar.gz

rm "${NAME}"

done

cd -

ln -sf /bin/nano-tiny /bin/nano


Таким образом мы получили редактор nano.

http://www.keepme.ru/upload/previews...5fcfbf84ca.png

Доработаем маленько скрипт, и получаем программу для загрузки и установки

пакетов.

mount / -o remount,rw

echo -n "Press enter adress..."

read -e AD

wget "$AD"

FILES=$(ls /root/*deb)

cd /

for NAME in $FILES ; do

ar -x "${NAME}"

tar zxf data.tar.gz

rm debian-binary data.tar.gz control.tar.gz

rm "${NAME}"

done

cd -


http://www.keepme.ru/upload/previews...fca832b1da.png

Все пакеты я качаю с http://ftp.us.debian.org/debian/pool/main/ для архитектуры

armel. Давайте установим что-нибудь полезное, вроде g++ или apache2.

Спустя два часа мой ридер превратился в полноценный веб сервер, с

нормальным менеджером пакетов apt, и различнми утилитами, вроде aircrack-

ng, nmap, etc. Но это всё только в консоле, а что же происходит на экране?

На экране у нас обычный Qt. Можно писать, запускать и работать со своими

программами. Вот вам маленький hello world:

Код:

#include
#include
int main(int argc, char** argv) {
QApplication app(argc, argv);
QPushButton btn("Hello World");
btn.setFont(QFont("PMN Caecilia LT", 240, QFont::Bold));
btn.show();
btn.showMaximized();
QObject::connect(&btn, SIGNAL(clicked()), &app, SLOT(quit()));
return app.exec();
}

Компилируем через g++, и запускаем /qdutil/em/start /tmp/hello. Результат:

http://www.keepme.ru/upload/previews...d503603c97.jpg

Что бы запустить телнет сервер достаточно ввести комманду inetd

Все в ваших руках — пишите, компилируйте, настраивайте, наслаждайтесь!

Никто вам не мешает написать свой браузер на Qt или сделать из читалки

роутер (паяльник никто не отменял), вобщем как всегда, где линукс, там и

простор для экспериментов!

В этой статье мы рассмотрели то, как из обычной читалке на базе линукса,

можно сделать компьютер на базе линукс.

(с) cyber-punk

P.S. http://live.xakep.ru/blog/linux/1239.html - статья на Хакере

dupD0M 16.04.2011 02:45

отличная статейка!+++

<Cyber-punk> 16.04.2011 11:26

Цитата:

Сообщение от dupD0M
отличная статейка!+++

спасибо

HBWS 16.04.2011 12:19

Статья понравилась. А вот по поводу читалки в апрельском номере Хакера есть целая статья про подобную вещь от Amazon. Вещь действительно стоящая и цена очень радует + бесплатный интернет почти по всему миру

<Cyber-punk> 18.04.2011 19:48

Цитата:

Сообщение от HBWS
Статья понравилась. А вот по поводу читалки в апрельском номере Хакера есть целая статья про подобную вещь от Amazon. Вещь действительно стоящая и цена очень радует + бесплатный интернет почти по всему миру

Да, я читал. Хочу себе заказать из-за 3G))

Gorev 18.04.2011 20:15

++++ отлично, читал с интересом..

.::f-duck::. 18.04.2011 20:20

Цитата:

said:
Да, я читал. Хочу себе заказать из-за 3G))

Лучше планшет. У меня PocketBook 701 на Андроиде. Тут тебе и вай-фай и пдф и джвю и проч. Правда, лучше брать модель получше: у меня тач не ахти какой хороший. Но юзать можно.

<Cyber-punk> 10.05.2011 18:58

Цитата:

Сообщение от Gorev
++++ отлично, читал с интересом..

Спасибо.

Цитата:

Сообщение от .::f-duck::.
Лучше планшет. У меня PocketBook 701 на Андроиде. Тут тебе и вай-фай и пдф и джвю и проч. Правда, лучше брать модель получше: у меня тач не ахти какой хороший. Но юзать можно.

Фишка в том что у амазонского ридера встроенная симка и интернет 3г на халяву! Платить не нужно, также можно jailbreak сделать и юзать читалку как модем.

http://live.xakep.ru/blog/linux/1239.html - статья на Хакере

верещагин 25.06.2011 19:36

Цитата:

Сообщение от HBWS
Статья понравилась. А вот по поводу читалки в апрельском номере Хакера есть целая статья про подобную вещь от Amazon. Вещь действительно стоящая и цена очень радует + бесплатный интернет почти по всему миру

Спасибо за Амазон.

<Cyber-punk> 16.07.2011 00:00

Цитата:

Сообщение от верещагин
Спасибо за Амазон.

Всегда пожалуйста!


Время: 22:59