|
|||||||
Взлом Nokia N900Это обсуждение темы Взлом Nokia N900 в разделе FAQ и ЧАВО по телефонам и смартфонам Nokia, часть категории Смартфоны и телефоны Nokia; Мы будем лезть в разные штуки и менять разные вещи, которые не предусмотрены для изменения разработчиками. Это делается очень легко ... |
![]() |
| Опции темы |
|
|
#1 | ||
|
Администратор
Регистрация: 01.04.2009
Сообщений: 176
Телефон: Nokia 5800 XMusic
Загрузки: 12
Закачек: 10 Записей в дневнике: 1
Репутация: 10
|
Мы будем лезть в разные штуки и менять разные вещи, которые не предусмотрены для изменения разработчиками. Это делается очень легко и подвластно даже обычному пользователю, если у него будет желание. Я не буду рассказывать как пропатчить ядро или увести аппарат в высокопроизводительный режим, просто покажу несколько полезный улучшений, которые могут пригодиться каждому.
Цитата:
![]() Разбираем и собираем N900. На заглавной страничке отображен процесс разобранного N900. Есть официальный сервисное руководство. Но на публичном доступе оно не доступно. Раздается сервисным центрам, на сколько я знаю. Но в сети валяются экземпляры и вы можете их найти при желании: ключевые слова Nokia, Service Manual RX-51. Выложить я не имею права это — противоречит копирайту: Цитата:
Картинку я взял не с этого документа, а вот отсюда, достаточно популярный и распространенный ресурс, и лично от них я получил разрешение на перепубликацию (они уверяют, что обладают правами публикации этого изображения и имеют право разрешить перепубликовать). Но при первом же обращении с указанием на неправомерность распространение данной информации от представителей компании Nokia я уберу эту картинку. Ну так вот в этом документе все описано с картинками и от разборки других аппаратов особенно не отличается. Прошу свои извинения за то что не могу выложить документ, а собственную инструкцию сделать не могу, уж очень свой аппарат жалко для этого разбирать :-). Перепрошивка N900. В предыдущих публикациях я описывал много интересных приложений и многие из них находятся в репозиториях extra-testing и даже extra-devel. Это значит что эти приложения не только не гарантируют, что работать будут стабильно, они еще не гарантируют что они не поломают Вам телефон :-) Плюс к этому некоторые инструкции их этой публикации могут сделать из вашего N900 кирпич. Поэтому я сначала решил показать как восстановить аппарат в таком случае. В качестве дополнительного материала на русском языке можете посмотреть перевод Maemo.org Wiki на Fruct. Nokia в этом плане молодцы и перепрошить N900 можно на любой ОС (имею ввиду большую тройку Linux/MacOS/Windows, а не действительно все ОС :-) ). Что нам нужно: 1. Инструмент для прошивки — flasher. качаем тут. вот такие файлики нас там интересуют (версии могут отличаться, так как могут появиться следующие версии, но названия должны остаться теми-же либо похожими): maemo_flasher-3.5_2.5.2.2.exe — версия для Windows 7, XP, Vista. maemo_flasher-3.5_2.5.2.2.tar.gz — версия для Линукса. maemo_flasher-3.5_2.5.2.2_i386.deb — версия для Debian семейств линуксов. maemo_flasher-3.5_2.5.2.2_i386.dmg — версия для Intel Mac OS. maemo_flasher-3.5_2.5.2.2_ppc.dmg — версия для PPC Mac OS. 2. Качаем отсюда образ образ корневой системы и, если нужно, образ eMMC(это та память, которая 32 ГБ). <a href=«href=»tablets-dev.nokia.com/nokia_N900.php">Качаем по этой ссылке. Там нужно ввести IMEI. ![]() Он находится под батарейкой или в «Параметры»->«О продукте». Там в всплывающем окне последняя строчка. ![]() Также можно его разобыть, если ввести на клавиатуре телефона *#06#. Потом принимаем лицензионное соглашение, нажав кнопку «I accept». Нас интересует вот этот файл: RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin или более поздний, если будет (выбирайте регион «Европа», так как Африка и Штаты не подходят, за исключением случаев, если телефон у вас был куплен именно там). И вот этот RX-51_2009SE_1.2009.41-1.VANILLA_PR_EMMC_MR0_ARM.bin, если вы надумали перепрошить eMMC. Еще, на продаваемом аппарате предзалиты карты того региона в котором он продается, а в этом образе никаких карт нет, но это не страшно, можно восмользоваться Map Loader'ом, для устранения этой неприятности. Зачем это может понадобиться я расскажу ниже, но если вы не знаете, нужно ли вам это, то значит не нужно. Замечания по установке flasher на Linux. Если у вас 64-разрядный Debian линукс и вы ставите из deb файла, то нужно выполнить вот такую команду в директории, куда вы сохранили пакет sudo dpkg -i --force-architecture ./maemo_flasher-3.5_2.5.2.2_i386.debЗамечания по установке flasher на Mac OS. Тут ничего делать не нужно, единственное, что нужно знать, так это то, что flasher можно найти в /usr/bin. Замечания по установке flasher на Windows. Пакет по умолчанию поставиться в %Program Files%/maemo/. В Windows 7 необходимо отключить проверку подписи драйверов. Сделать это просто. Заходим в меню «Пуск» и выбираем программу cmd. По ней правой клавишей и «Запустить от Администратора». ![]() В окне интерпретатора вводим такие вот команды: bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKSВ результате должно появиться что-то типа такого: ![]() Немного про прошивку eMMC. Это флэш образ, в дереве каталогов он находится в /home/user/MyDocs. Перепрошивка может потребоваться только в том случае, если вы хотите получить девственно чистый аппарат или у вас девелоперская версия телефона. Если нужно просто перепрошить кирпич, то не нужно прошивать eMMC!!! Все делается с консоли и абсолютно одинаково работает на всех вышеуказанных ОС. Единственная проблема может возникнуть с Windows 7. Но я об этом напишу чуть ниже. Предупреждение: Зарядите телефон полностью, будет очень плохо, если батарея сядет во время прошивки. Во время прошивки аппарат не заряжается по USB!!! Итак, мы все скачали, установили утилиту flasher. Запускаем консоль (под виндой — командный интерпретатор cmd, но я его все равно буду называть консолью :-)). И в консоли пишем такие вот слова: Windows: Код:
cd "%ProgramFiles%\maemo\flasher-3.5" flasher-3.5.exe -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R Код:
sudo flasher-3.5 -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R Код:
sudo /usr/bin/flasher-3.5 -F RX-51_2009SE_3.2010.02-8_PR_COMBINED_MR0_ARM.bin -f -R Suitable USB device not found, waiting 0. Если Вы собираетесь перепрошить eMMC, то заблаговременно отсоедините заднюю крышку и подденьте чем-нибудь батарейку (только не переусердствуйте, чтоб она не выпала во время перепрошивки ). 1.Если устройство подключено по USB, то отключите его. 2. Выключите его (при выключении с подключенным USB аппарат полностью не выключается, так что следуйте шагу номер 1). 3. Зажимаем кнопку «u» на клавиатуре и подключите USB шнур. 4. Должен появиться логотип Nokia (иногда на очень блеклом фоне, с очень слабой подсветкой, реже на ярком белом фоне) и в правом углу верхнем значек USB. Если Вы все сделали правильно то пойдут бежать надписи, сообщающие о различных этапах прошивки. Устройство уйдет в перезагружку. На это перепрошивка закончена. Просто все, не правда ли? Если вы собираетесь прошивать eMMC, то в этот момент нужно выдернуть батарейку, предотвратив загрузку ОС. Прошивать eMMC можно только после прошивки rootfs и НИ В КОЕМ СЛУЧАЕ НЕЛЬЗЯ ПЕРЕГРУЖАТЬСЯ МЕЖДУ ПРОШИВКОЙ ROOTFS И EMMC ОБРАЗА !!!!. Теперь для желающих прошить eMMC. и выполняем те-же команды, что и выше, только шьем уже другой образ: Windows:Появиться опять надпись об отсутсвующем устройстве: flasher v2.5.2 (Oct 21 2009) Image 'mmc', size 241163 kB Version RX-51_2009SE_1.2009.41-1.VANILLA Suitable USB device not found, waiting. Вставляем USB кабель в устройство и ждем пока пройдет процесс. Вставляем назад батарейку и просто подключаем USB без кнопки «u». Выглядеть он будет вот таким образом: USB device found found at bus 001, device address 006.У меня процесс занял чуть меньше минуты. После этого устройство уйдет в перезагрузку. Все готово. Проблемы и пути их решения. Если у вас сообщение на *nix'ах «Permission denied» (если вы взяли flasher из tar.gz), тогда сделайте так chmod +x ./flasher-3.5Если в *nix'ах у вас появилось сообщение «Error claiming USB interface: Device or resource busy», тогда выполните команду sudo modprobe -r cdc_phonetFlasher не может найти устройство, тогда проделайте следующее:
В общем с прошивкой разобрались, процесс легкий и безгеморойный (по крайней мере я не встретил трудностей под MacOS 10.6, Linux Ubuntu 9.10 и Windows XP). Тюним раскладку клавиатуры. Зачем это может понадобиться? 1. Если вам не нравиться текущая раскладка (например вы пишете на Python'e на устройстве и Вас раздражает отсутствие "=" на клавиатуре, приходится каждый раз вызывать таблицу дополнительных символов) или хотите добавить пару символов. 2. Если у вас «серый» телефон и «синенькие» символы не совпадают с символами в русской раскладке, плюс в буржуйских версиях 4 стрелочки, а в русской 2. Из-за этого начинается конфуз. Я купил серый аппарат именно по той причине, что английские буквы больше гравированных русских и это очень и очень удобно. Но столкнулся с проблемой несоответствия дополнительных символов. Начиная от точки с запятой и заканчивая знаком доллара и скобок. Вот так выглядит русская клавиатура: ![]() А вот так выглядит гравированная буржуйская: ![]() Как видите не совпадает. Ну решение оказалось копеешным. Все что нужно, это поменять раскладку. В N900 применяется стандартное X-расширение xkb. Файл с настройкой раскладок можно найти: /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 Подробно о формате файла и настройках xkb можно посмотреть тут, тут и тут. Там очень много букв, так что опишу тут не очень подробно, но достаточно, чтоб можно было менять на свое усмотрение. Итак, если открыть этот файл, то он большой, чтоб его перепечатывать. Расскажу об основных частях. За основу любой раскладки взята английская — базовая, вот так выглядит эта секция: Тут используется 4 уровня. Каждая запись — это символ, комментариями они отделены на ряды на клавиатуре. В данной раскладке используется 4 уровня (4 разных значения можно получить с помощью одной кнопки). Итак как переключаются эти уровни: Shift(на клавиатуре стрелка вверх) — увеличивает на один уровень в любом случае. Нужно либо держать, либо нажать один раз и любая следующая клавиша увеличит значение при нажатии на уровень, либо два раза нажать — получится Caps Lock режим, то есть все последующие нажатия кнопок будут увеличены на один уровень. Fn(синяя стрелка на клавиатуре) — увеличивает на два уровня вверх. В комбинации с Shift увеличивает на три уровня вверх. Итак получаем, чтоб получить из таблицы символов нужный символ, согласно таблице, для примера возьмем первую кнопку:
«А как-же переключение раскладки?» — спросите Вы. А все просто. Давайте посмотрим на секцию с русской раскладкой: Первое, что бросается в глаза — это количество уровней. В данном случае их 8, а не 4. Все логично. На уровне 1-4 располагается английская раскладка, а на уровнях 5-8 — русская. Об этом так-же говорит вот эта запись: Для повышения или понижения уровня используется комбинация Ctrl+Пробел. Для пользователей она известна как переключение раскладки, что и есть повышения уровня на 4. Когда вы переключили раскладку на русскую (тем самым повысив все дальнейшие нажатия на 4) то клавиши Shift и Fn работают по тому-же принципу:
Но есть одно ограничение, чтоб вы не написали в уровнях 7 и 8, значения все равно будут браться с уровней 3,4. Но лучше в уровнях 7 и 8 все-же записать самому те-же значения что и для 3 и 4, во избежании возможных проблем. Второе, на что нужно обратить внимание — это вот эта запись: Она подключает 2-х кнопочный курсор (что мне не нравиться и плюс у меня на клавишах 4 кнопки курсора). Давайте рассмотрим секцию с кнопочками: Первая секция «arrows_2btns» используется в русской раскладке и еще в ряде других, где на клавиатуре только две клавиши отведены для курсора. Свойство type[Group1] = «PC_FN_LEVEL2» — как раз и определяет то, что на клавише две функции. Во второй секции «arrows_4btns» 4 клавиши отведены на курсор и на каждой клавише всего по одной функции (как же расточительно :-) ), об этом говорит атрибут type[Group1] = «ONE_LEVEL». Вот тут можно разогнаться по полной, можно повесить на курсор 6 значений при двойной раскладке, что я и сделал, вот ниже мой вариант:
|
||
|
|
|
|
|
#2 |
|
Администратор
Регистрация: 01.04.2009
Сообщений: 176
Телефон: Nokia 5800 XMusic
Загрузки: 12
Закачек: 10 Записей в дневнике: 1
Репутация: 10
|
В моем варианте в русской и английской раскладке курсор остается курсором. Fn позволяет печатать русские буквы, которые у меня не влезли в обычные кнопки — Э, Б, Ю, Ъ. Комбинация Fn с Shift печатают заглавные и прописные символы. Из-за вышеуказанных ограничений 3,4 и 7,8 уровней русские буквы будут печататься при любой раскладке, но не велика потеря. Теперь кнопки курсора несут 3-х функциональную нагрузку (стрелка и большая и маленькая буква). Если учитывать, что есть комбинации с Ctrl + стрелка дает Home, End, PgUp, и PgDwn с соответствующей стрелкой, получаем 4 функции вместо 2-х, как в оригинале.
В добавок ко всему, я изменил саму секцию «ru», теперь у меня на «серой» клавиатуре синие кнопки (Fn — комбинации) совпадают с тем, что написано на клавиатуре. Спорными оказались несколько кнопок. ,;=ЧЪ — сильно много функций, все не влазит. Я убрал твердый знак и перенес его на стрелку вправо. Еще один недостаток, запятая, только в английской раскладке, думаю перенести ее вместо знака фунтов стерлингов в русской раскладке. .:? Ж — ну тут все влезло, только точка опять присутствует только в английской раскладке, можно перенести ее вместо знака доллара или евро. <курсор влево>БЮ — хочется, чтоб курсор оставался всегда курсором и буквы можно было использовать как заглавные так и прописные. С такими требованиями не влазит это все на одну клавишу. Поэтому перенес на <курсор клавишу вниз> мой вариант можно сказать у меня с сайта вот по этой ссылке. Там лежит файлик rx-51. Файл располагается в /usr/share/X11/xkb/symbols/nokia_vndr. Скопируйте новый вариант файла (мой или свой) в любое место на устройстве и из xterm нужно выполнить такие вот команды: sudo gainrootБудьте предельно внимательны, если вы положите плохой файл rx-51 и перезагрузите устройство, то оно не сможет загрузиться и придется перепрошивать устройство. В общем отличный простой способ изменить раскладку по Вашему усмотрению. Например тем, кто работает часто в консоли, было бы полезно добавить «пайп» "|". Ну и так далее. Чтоб закрыть тему с кнопками, отмечу, что также можно поменять и таблицу дополнительных символов, которая появляется при нажатии на Fn+Ctrl. Но тут уже все не так просто. Сложность в том, что эти символы хранятся в бинарном виде. И для того, чтоб сформировать собственную таблицу, необходимо собрать специальный компилятор этого формата, написать свою конфигурацию, скомпилировать. Для заинтересовавшихся, вот ссылка на Maemo Wiki. Освобождаем место на RootFS Вот эта проблема для меня была сюрпризом. Rootfs — корневая файловая система, где находится ядро и самое необходимое (модули ядра, файлы конфигурации системы) для запуска системы. Располагается Rootf естественно в напаянном NAND Flash, а не на eMMC. Чтоб было понятно, небольшой экскурс по типам памяти. NOR-flash — тип флэш памяти, который позволяет получить байт с произвольного места (random-access for reading), и большим плюсом является выполнение программ прям из адресного пространства NOR — execute in place (XIP). Недостаток — цена. Обычно используется для хранения настроек и разной мелочи. Энергонезависимая память. Кратко — что-то вроде энергонезависимой RAM. Ну и в последнее время NOR сильно отстает от NAND по объему информации. NAND — значительно дешевле NOR. Скорость записи в NAND намного быстрее чем в NOR. Но основной недостаток — это то, что NAND блочное устройство и читать с него можно только блоками (в зависимости от микросхемы это может быть 512/2048/4096 байт). SD/MMC карты — это как раз представители NAND. И для ясности еще один термин — SoC — System on Chip. Переводится как «система в одной микросхеме» или «Система на кристале». Чтоб не распыляться, вот определение и характеристики термина. Таким образом в «голом» N900 у нас такие вот такие вот виды памяти:
![]() Ну а теперь подробней про rootfs. Весь 256Mb NAND отформатирован как UBIFS. UBIFS — это замена популярному JFFS2. Разница в том, что UBIFS умеет кэшировать и на больших объемах получается хороший прирост производительности. Недостаток, что UBIFS сложнее (он работает поверх UBI, который работает поверх MTD), а JFFS2 работает напрямую с NAND. Ну еще UBIFS появился только в 2007 году и работает с ядром начиная с версии 2.6.27. Именно поэтому практически во всех встраиваемых устройствах используется JFFS2. Но инженеры из Nokia приняли смелое решение использовать UBIFS. Подробней об этой файловой системе можно почитать здесь и здесь. В NAND располагается загрузчик, ядро и корневая директория — "/" плюс разные системные файлы, необходимы для загрузки. На «голом» устройстве должно быть около 100Мб свободно. Проблема в том, что если вы подключаете много репозиториев, то кэш apt'а раздувается очень сильно. Плюс некоторые библиотеки тоже устанавливаются в rootfs и у меня уже через неделю rootfs переполнился. Это очень печально и приходится предпринимать дополнительные действия по предотвращению этого. При переполнении rootfs система начинает тормозить и обновление каталогов приложений невозможно (некуда сохранять кэш). В идеале все что можно лучше перенести в VFAT, но это опасно, так как он отмонтируется при подключении к компу. Можно все перетащить в /home, как это сделано для /opt. Именно на этом и основывается мой метод. Состояние заполненности можно проверить, выполнив команду в терминале: df -hСамый простой способ все перенести — это создать скрипт с вот таким содержимым: #!/bin/shнапример вы создали файл с именем free_my_rootfs.sh выполните в консоли: chmod +x free_my_rootfs.shЭтот скрипт переносит иконки, видео «рукопожатие» стартующее при включении, кэш apt'a и локали системы. Дополнительно можно еще перетащить питон «optify python» (если перевести, то «перетащить python в /opt»): sudo gainrootПриложение «Карты» тоже хранятся в rootfs (сами карты кэшируются на самый большой раздел), можно сделать так: sudo gainroot |
|
|
|
|
|
#3 |
|
Освоился
Регистрация: 03.11.2011
Сообщений: 46
Телефон: Nokia 5320 XMusic
Загрузки: 0
Закачек: 0
Репутация: 0
|
А какие преимущество пользователю дает вышеописанная процедура и для чего это вообще нужно? Я конечно не самый ламер, и не разработчик прошивок но первая моя мысль: зачем?
|
|
|
|
|
|
#4 |
|
Новичок
Регистрация: 11.04.2012
Сообщений: 1
Телефон: Другой
Загрузки: 0
Закачек: 0
Репутация: 0
|
Кто нибудь освобождал rootfs таким способом?Как мне создать такой скрипт(см.ниже)?Я уже 2 раза нарвался на перепрошивку.
ЦИТИРУЮ: Самый простой способ все перенести — это создать скрипт с вот таким содержимым: #!/bin/sh # Nokia N900 Maemo 5 script to free up space on rootfs # ignoring errors when creating dirs that may already exist # Moving ?? icons to /home/opt mkdir -p /home/opt/usr/share/icons 2> /dev/null cp -r /usr/share/icons/* /home/opt/usr/share/icons rm -r /usr/share/icons ln -s /home/opt/usr/share/icons /usr/share/icons # Moving video on start-up to /home/opt mkdir -p /home/opt/usr/share/hildon-welcome 2> /dev/null cp -r /usr/share/hildon-welcome/* /home/opt/usr/share/hildon-welcome rm -r /usr/share/hildon-welcome ln -s /home/opt/usr/share/hildon-welcome /usr/share/hildon-welcome # ?? mkdir -p /home/opt/usr/share/pixmaps 2> /dev/null cp -r /usr/share/pixmaps/* /home/opt/usr/share/pixmaps rm -r /usr/share/pixmaps ln -s /home/opt/usr/share/pixmaps /usr/share/pixmaps # Moving 'apt cache' to /home/opt - Valid until Bug 5746 is fixed. mkdir -p /home/opt/var/cache/apt 2> /dev/null cp -r /var/cache/apt/* /home/opt/var/cache/apt rm -r /var/cache/apt ln -s /home/opt/var/cache/apt /var/cache/apt # Moving locales Source mv /usr/share/locale /opt ln -s /opt/locale /usr/share/locale Что нужно сделать для этого? chmod +x free_my_rootfs.sh ./free_my_rootfs.sh Это 2 разные команды?что значает вторая? Во второй строчке это путь к файлу от корня надо указать,что это за точка? ./free_my_rootfs.sh |
|
|
|
![]() |
| Метки |
| hack, nokia n900, взлом |
| Опции темы | |
|
|
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Репозиторий MeeGo станет общедоступным также и для N900 | Nicesoft | Мобильные новости | 0 | 28.03.2010 23:55 |