Авторские статьи Читалка на linux

Discussion in 'Статьи' started by <Cyber-punk>, 15 Apr 2011.

  1. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Читалка на 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

    [​IMG]

    [​IMG]

    Через день мне курьер принес эту книгу. Вначале всё было хорошо. Но
    через день я заметил, что в углу экрана появилась маленькая трещинка.
    Всё бы ничего, если бы работал сенсорный экран. А он работал через раз.
    Мне это надоело, и я решил поковырять официальную прошивку 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


    [​IMG]


    После этого, еще немного побаловавшись в консоли, я понял, что это
    busybox v1.7.2. Посмотрев, что висит в процессах, я обратил внимание на
    интересное приложение - QBookApp. Оно было с параметром qws.

    [​IMG]


    Заинтересовавшись, я нашел бинарные файлы в папке /usr/local/qisda/bin.
    Бегло просмотрев их, я понял, что это как раз то, что нам нужно, – главные
    файлы читалки. Я запустил файл QBookApp.sh, и в консоль полилась туева
    хуча информации, а экран электронной книги два раза обновился.

    [​IMG]


    Я решил посмотреть, что будет, если я открою какую-нибудь книгу, и
    нажал в читалке «Продолжить чтение». В консоли началась бешеная
    загрузка шрифтов.

    [​IMG]


    При попытке завершить скрипт в консоли появился текст «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 скрипт.

    [​IMG]


    Этот файл был главным, управляющим скриптом, который запускался при
    старте системы. В нём меня заинтересовали строки с названием 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.

    [​IMG]

    Доработаем маленько скрипт, и получаем программу для загрузки и установки
    пакетов.
    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 -


    [​IMG]

    Все пакеты я качаю с http://ftp.us.debian.org/debian/pool/main/ для архитектуры
    armel. Давайте установим что-нибудь полезное, вроде g++ или apache2.
    Спустя два часа мой ридер превратился в полноценный веб сервер, с
    нормальным менеджером пакетов apt, и различнми утилитами, вроде aircrack-
    ng, nmap, etc. Но это всё только в консоле, а что же происходит на экране?
    На экране у нас обычный Qt. Можно писать, запускать и работать со своими
    программами. Вот вам маленький hello world:

    Code:
    #include <QApplication>
    #include <QPushButton>
    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. Результат:

    [​IMG]

    Что бы запустить телнет сервер достаточно ввести комманду inetd
    Все в ваших руках — пишите, компилируйте, настраивайте, наслаждайтесь!
    Никто вам не мешает написать свой браузер на Qt или сделать из читалки
    роутер (паяльник никто не отменял), вобщем как всегда, где линукс, там и
    простор для экспериментов!
    В этой статье мы рассмотрели то, как из обычной читалке на базе линукса,
    можно сделать компьютер на базе линукс.
    (с) cyber-punk

    P.S. http://live.xakep.ru/blog/linux/1239.html - статья на Хакере
     
    _________________________
    #1 <Cyber-punk>, 15 Apr 2011
    Last edited: 29 Apr 2011
    9 people like this.
  2. dupD0M

    dupD0M Elder - Старейшина

    Joined:
    18 May 2010
    Messages:
    1,130
    Likes Received:
    74
    Reputations:
    34
    отличная статейка!+++
     
  3. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    спасибо :)
     
    _________________________
  4. HBWS

    HBWS Member

    Joined:
    26 Nov 2010
    Messages:
    226
    Likes Received:
    22
    Reputations:
    0
    Статья понравилась. А вот по поводу читалки в апрельском номере Хакера есть целая статья про подобную вещь от Amazon. Вещь действительно стоящая и цена очень радует + бесплатный интернет почти по всему миру
     
  5. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Да, я читал. Хочу себе заказать из-за 3G))
     
    _________________________
  6. Gorev

    Gorev Level 8

    Joined:
    31 Mar 2006
    Messages:
    2,551
    Likes Received:
    1,259
    Reputations:
    274
    ++++ отлично, читал с интересом..
     
  7. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Лучше планшет. У меня PocketBook 701 на Андроиде. Тут тебе и вай-фай и пдф и джвю и проч. Правда, лучше брать модель получше: у меня тач не ахти какой хороший. Но юзать можно.
     
  8. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Спасибо.


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


    http://live.xakep.ru/blog/linux/1239.html - статья на Хакере
     
    _________________________
  9. верещагин

    верещагин New Member

    Joined:
    26 Dec 2010
    Messages:
    9
    Likes Received:
    4
    Reputations:
    0
    Спасибо за Амазон.
     
    1 person likes this.
  10. <Cyber-punk>

    <Cyber-punk> Smash the Stack

    Joined:
    1 Oct 2009
    Messages:
    658
    Likes Received:
    315
    Reputations:
    430
    Всегда пожалуйста!
     
    _________________________