Softroot 1.4.1

15.10.10 | Автор: | Категория: Nook, Разработка | Метки: , , ,

Это описание того, как я получил root на своем Nook с прошивкой 1.4.1 (новая ревизия железа).

Вы можете распространять и использовать эту публикацию для любых целей.
Я буду очень признателен, если бы оставите ссылку на мое авторство этого метода :) — cdump
Кажется, что я первый, кто получил root на 1.4.1 :)

Все описанное вы делаете на свой страх и риск, я не даю никаких гарантий.

Описание найденных уязвимостей

Служба обновления прошивки через Wifi/3G использует SyncML для получения информации о новой версии. Ответ сервера B&N выглядит следующим образом:

<SoftwareData TargetName=»Bravo» PlatformName=»Bravo1″
MajorVersion=»1″ MinorVersion=»4″ URL=»signed_bravo_update-delta-1.4.0-release.dat»
FileSize=»27836556″ LastUpdated=»1277118600″ DownloadOver3G=»false»/>

Nook скачивает файл в /system/media/sdcard/filename.dat, и если его размер оказывается равным, указанному в SyncML — перемещает его в /system/media/sdcard/signed_bravo_update.dat и запускает стандартный механизм обновления прошивки (проверка контрольной суммы и пр.) Первый баг состоит в том, что если размер файла заявленный в SyncML и фактический размер загруженного файла отличаются, то скачанный файл не будет ни перемещен, ни удален.

Отрывок кода, который формирует путь, куда загружается файл:

String var2 = var1.getUrl();
StringBuilder var5 = (new StringBuilder()).append(«/system/media/sdcard/»);
String var7 = var5.append(var2).toString();
File var4 = new File(var7);

где var1.getUrl() возвращает значение URL из SyncML. Вставив в URL что-то вроде ../../../init.rc мы получим в var7  /system/media/sdcard/../../../init.rc, что для пути файла эквивалентно /init.rc. Это означает, что мы может загрузить свой файл в любое место системы. Но оказалось, что у сервиса обновлений недостаточно прав для записи в любое место.
В файле /init.rc я нашел следующую запись

chmod 0777 /etc/wifi_stop.sh

Это означает, что в /etc/wifi_stop.sh может писать абсолютно любой пользователь!

Сам процесс

  1. Изменил на WiFi роутере в настройках DHCP адрес DNS на ip своего ноутбука
  2. Настроил dns-сервер BIND на ноутбуке, чтобы он резолвил ‘sync.barnesandnoble.com» and »edmfiletransfer.barnesandnoble.com» на мой IP.
  3. Настроил в веб-сервере lighttpd с модулем mod_rewrite следующие перенаправления:
  4. <pre>url.rewrite-once = (
    «^/sync/001/Default.aspx.*» => «nook.pl»,
    «^/edmfiletransfer.*» => «file.dat»
    )</pre>

    И поместил в «document-root» сервера файлы:
    nook.pl — http://pastebin.com/NWLcej83
    file.dat — http://pastebin.com/c4i03Rvd
    Внимание: «FileSize» на 22 строчке в nook.pl НЕ ДОЛЖЕН быть равен реальному размеру file.dat (и использовал на единицу больший размер). Если он окажется равен, ваш wifi_stop.sh будет перемещен и nook, возможно, будет работать некоректно.

  5. Подключился к WiFi с нука, разрегистрировал его (settings->device->..) и зарегистрировал снова. Это запустило проверку обновлений прошивки и вывело сообщение об «update fail» — все хорошо, так и должно быть.
  6. Выключил и снова включил WiFi на нуке (Airplane mode, например) и подключился по adb
  7. Изменил /init.rc чтобы включить adb при загрузке и вернул /etc/wifi_stop.sh в первоначальное состояние (удалил строчку про /sbin/adbd).
  8. Вернул настройки DHCP роутера в начальное состояние

Заключение

Это описание очень кратко описывает процесс получения рута, я думаю вскоре, кто-ни-будь сможет запустить у себя DNS сервер и прописать соотв. правила mod_rewrite. Тогда пользователям для получения рута останется лишь изменить настройки роутера и проделать несложные изменения по adb.

Если у вас есть какие-то вопросы, я постараюсь ответить на них в комментариях.

UPD: вытащил образ 1.4.1: http://www.multiupload.com/QOVUVGT9UM

Be Sociable, Share!
Комментариев: 65

65 Comments on “Softroot 1.4.1”

  1. flyer 16.10.10, 00:36

    Сначала я обрадовался. Только самое понятное — это то, что в роутере DHCP настройки изменить надо. Эт я могу. А вот ни BIND, ни lighttpd раньше в глаза не видывал. Скачал — посмотрел, ничего не понял, может кто нибудь накатает инструкцию для чайников с подробной настройкой и bind и lighttpd?

  2. cdump 16.10.10, 00:39

    flyer, Nomad1 на the-ebook.org (http://www.the-ebook.org/forum/viewtopic.php?p=482525#482525) написал, что собирается завтра сделать статью «для обычных пользователей».

  3. nookworld.com 16.10.10, 01:13

    грешным делом подумал что путь к руссификации открыт.

    а тут…

  4. Nomad 16.10.10, 01:20

    грешным делом это он и есть.

  5. ibloo.net 16.10.10, 10:10

    Здравствуйте… Мой нук только в пути ко мне) Я хотел бы узнать, а зачем все эти вышеприведенные действия? Как я понимаю доступ к Root это доступ к файловой системе, и он нужен для взлома?

  6. cdump 16.10.10, 11:43

    ibloo.net, это и есть взлом. С помощью adb теперь можно устанавливать любые приложения.

  7. pavlyku 16.10.10, 13:39

    Спасибо! Хорошая новость.

  8. TSV 16.10.10, 14:21

    Отличная новость! Мне кажется, её настолько долго ждали, что сейчас не все верят своему счастью (:

  9. Nomad 16.10.10, 18:05

    Мануал:
    http://blog.runserver.net/2010/10/nook_16.html

  10. JohnySilver 16.10.10, 19:33

    кто-нибудь еще пробовал?

  11. myNOOK 16.10.10, 20:29

    Nomad: круто, отлична инструкция! Думаю, что в пакет еще стоит добавить пропатченный ReaderEpub, чтобы внешние шрифты заработали. Тогда уж точно перепрошиваться смысла не будет.

  12. oibeda 16.10.10, 23:28

    Добавите софтину, которая позволяет читать pdf в альбомной ориентации, если такая софтина существует в природе. Будет очень здорово. Спасибо.

  13. myNOOK 16.10.10, 23:37

    oibeda: был же пост про apdf viewer, что мешает установить его через маркет?

  14. ArcKain 17.10.10, 00:23

    Nomad:Спасибо! все нормально только вот 217.20.163.111 недоступен..

  15. Neosinyak 17.10.10, 00:24

    MyNook: Не подскажете ли вы где можно взять тот самый пропатченный ReaderEpub, чтобы внешние шрифты заработали? Буду очень признателен.

  16. ArcKain 17.10.10, 00:31

    Извиняюсь, все работает! спасибо

  17. ibloo.net 17.10.10, 00:49

    Я новенький с Nook, подскажите, или дайте линк что делать для установки прошивки от mynook.ru на 1.4.1

  18. st.jimmy.art 17.10.10, 11:05

    ArcKain: +1

    217.20.163.111 действительно не пингуется

  19. Nomad 17.10.10, 11:18

    пинг отключен много лет назад. вы проверяйте через веб — если http://runserver.net открывается, то все хорошо.

  20. alexag 17.10.10, 15:41

    Softroot для 1.4.2 через «сервис» на http://runserver.net прошел успешно. :-)
    Спасибо за отличную работу!

  21. dpupkov 17.10.10, 16:02

    Спасибо! Всё заработало с первой попытки! :-)

  22. st.jimmy.art 17.10.10, 17:57

    всё почти получилось, как только нашел, как правильно прописывать hosts на роутере. пользовался паком и root.sh от Nomad, но не заработал fb2reader — вылетает с ошибкой при запуске, через appmanager удалить себя или переустановить не дает.

    очень жду возможности прикрутить русскую клавиатуру =)

  23. Nomad 17.10.10, 18:42

    попробуйте списать fbreader с нука на компьютер и установить через adb install. я завтра перешью свой нук заново и попробую отладить пакет с программами

  24. hungrymarvin 17.10.10, 20:03

    Спасибо, всё получилось)

  25. batonoman 17.10.10, 21:49

    Ребята, может кто знает, как прописать hosts на d-link’е?

  26. DanNsk 17.10.10, 22:22

    Товарищи, обьясните плиз — зарутовал, все поставилось, но adb connect — говорит connection failed.

    BTW fbreader тоже выпадает, но все равно спасибо огромное.

  27. st.jimmy.art 17.10.10, 22:45

    у меня dlink dir-320 с олеговской прошивкой. делал так: залез на роутер по ssh через putty, добавил в /usr/local/etc/ фаил hosts и вписал туда строки
    217.20.163.111 sync.barnesandnoble.com
    217.20.163.111 edmfiletransfer.barnesandnoble.com
    после выполнил следующие команды для сохранения изменений:
    flashfs save
    flashfs commit
    flashfs enable
    reboot
    После перезагрузки роутера вписанные строки hosts добавились в /etc/hosts и подмена адресов заработала
    Может быть кому нибудь поможет это =)
    ПС. сам в линуксах нуб нубом

  28. ArcKain 18.10.10, 07:57

    а как теперь откатится назад? мой нук стал разряжаться буквально за ночь..

  29. DanNsk 18.10.10, 09:44

    2ArcKain вы вайфай залоченый не оставили ?

  30. СергейКА 18.10.10, 10:32

    Получил Root-а на всех семейных nook-ах :) (все 100317… и v 1.4.1.)
    Спасибо cdump-у за способ и Nomad-у за реализацию некоторого упрощения процесса!

    FBReader падает, но разберёмся. Теперь у меня вопрос по прошивке:
    можно ли теперь поставить версию 1.5.1 от mynook.ru?

    Там ведь трабл возникал именно при попытке получить рута (понижение прошивки не срабатывало и делало из нука кирпич). Вот теперь у нас есть рут. Кто разбирается, можете спрогнозировать — возможны проблемы при прошивке версией 1.5.1 ?

  31. Nikolay_Ch 18.10.10, 11:21

    А когда авторы прошивки исправят баг с быстрым разрядом батареи?

  32. Nomad 18.10.10, 11:34

    Именнно прошивку 1.5.1, 2.4.1 и пр. на основе 1.4.0 ставить на устройства с 1.4.1 нельзя ни в коем случае
    , пока не будет сделана специальная версия для этих устройств!
    Фикс вылета fbreader и доступ по adb будет сегодня. А вот с батареей вопрос не по мою душу.

  33. ArcKain 18.10.10, 13:37

    DanNsk: wifi был отключен, зарядил в 11 ночи и лег спать, утром заряда осталось 7% через пару минут уже 2% .. на следующий день тоже самое

  34. Kator 18.10.10, 14:14

    Вообщем, насколько понимаю, это первый шаг к разлочке Nook с новой ревизией?

  35. DanNsk 18.10.10, 15:22

    2 ArcKain: у меня тот же пэккедж поставился. При WiFi переключеннорм в AirplaneMode за 48 часов сел по минимуму, как и до этого.

  36. Nomad 18.10.10, 16:16

    Сделал пакет, полностью повторяющий все файлы прошивки Mynook.ru, со всеми программами, волпейпером, русским языком и пр.
    Лужит по той же ссылке: http://runserver.net/nook/mynook_package.zip

    Чтобы установить поверх старого пакета можно отресетить устройство на заводскую прошивку (трюк с выключением с зажатой Power на 12 секунд 6 раз, но это очистит все папки), либо чуть сложнее, через adb. Для этого надо:
    - записать на устройство куда-либо nookWifiLocker.apk (http://nookdevs.googlecode.com/files/nookWifiLocker.apk);
    - развернуть архив на устройство, как делали в первый раз, рядом с my documents;
    - открыть FileManager, выбрать там nookWifiLocker.apk и установить нажатием на иконку;
    - выбрать в установленом WiFi Locker’е Stop ADB, а затем Start ADB;
    - подключиться к adb и выполнить команду
    [code]sh /system/media/sdcard/root.sh[/code]

    После перезагрузки будет полная копия прошивки от Mynook, за исключением дополнительных шрифтов, которые уже руками можно класть в my fonts и пр.

    P.S. У меня при таком обновлении не заработала книжная полка от Nookdevs. Пришлось ее удалить руками и установить через файл менеджер, тогда стало все в норме. При установке начисто работает сразу.
    P.P.S. Изначально язык системы будет английским, надо запустить программу Language для смены языка.

  37. mseJak 18.10.10, 16:16

    когда будет прошивка от mynook под устройства 1.4.1???

  38. Nomad 18.10.10, 16:36

    mseJak
    именно прошивать 1.4.1 устройства довольно рискованно.
    пакет постом выше делает 1в1 то же самое без перепрошивки, только записью/заменой существующих файлов.

  39. cdump 18.10.10, 16:56

    ArcKain, я успешно откатился на 1.4.1 /reanimaciya-nook/ этим способом.
    Откат делал тоже из-за очень быстрой разрядки батарии (ночь при отключенном WiFi).
    После повторного рута 1. не стал удалить FirmwareUpdate (заблокировал возможное обновление, прописав записи в /etc/hostst на нуке) 2. отключаю adb через WiFi Locker — в итоге заряд держит так же, как на оригинальной 1.4.1

  40. Nomad 18.10.10, 17:09

    я не удивлюсь, если с моим первым пакетом устройства быстрее разряжались из-за недостающих файлов для Mynook.ru Launcher или других программ. Потому и выложил пакет сделаный diff’ом двух прошивок. А может, такое свойство русской прошивки и ничего тут поделать нельзя.. но сам я ей не пользуюсь, потому ничего не могу посоветовать.

  41. ArcKain 18.10.10, 22:46

    Всем спасибо, все работает! ушел читать книжки ))

  42. emale 19.10.10, 10:28

    ArcKain как заряд держит?

  43. Suhoii 19.10.10, 10:35

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

  44. cac2s 19.10.10, 11:33

    Nomad, неужели положили сервер? О_о
    буквально утром стягивал mynook_package.zip…

  45. СергейКА 19.10.10, 12:20

    Nomad, спасибо.
    Сделал ресет (6х12сек) и поставил твой пакет (от 18.10.2010).
    Всё работает (и FBReader в том числе :) ).

    Wifi отключен, батарею за ночь не жрёт (с вечера 85% — днём 69%). Кстати, и с прошлым (первым вариантом) пакетом не жрало. Может у меня все нуки особые? ;)

    Есть пара вопросов только (может это и не к тебе):
    1. в новом лончере нет аудиоплеера (иконки). это так и задумано?
    2. как в лончере сделать «папку», например, «Игры», чтобы туда сбросить несколько иконок (Судоку, Шахматы,…) ?
    читал, что можно, а как — не понял.
    туплю … :(

  46. Nomad 19.10.10, 13:35

    cac2s
    сомневаюсь — там сайты игровых серверов подняты, у них по 3-5 тысяч человек в день бывает и выдерживает. вроде как у провайдера была профилактика, внешние каналы лежали.

    СергейКА
    Скажу честно, в настройке лаунчера от Mynook.ru не силен — сам им не пользуюсь, спросите тут на форуме или поищите по блогу. А вообще, там ведь есть кнопка для обычного B&N Home, там должнен быть плеер.

  47. myNOOK 19.10.10, 14:32

    СергейКА:
    1й вопрос — в FAQ в разделе Прошивка от MyNook

    2й — в нашем лаунчере никак, вроде бы можно в нукдевовском, но я не пробовал.

  48. cac2s 19.10.10, 14:50

    , а что и куда нужно подкинуть, чтобы получить возможность чтения epub’ов с кириллицей без установки всего пака от mynook.ru?

  49. cac2s 19.10.10, 18:34

    хм… неужели, это настолько секретно? :-/

  50. Nomad 19.10.10, 18:41

    cac2s
    Я подозреваю, что это ReaderEpub.apk (можно взять из моего пакета или прошивки 1.5.1), записанный в /system/app
    но с уверенностью может сказать лишь его разработчик.

  51. cac2s 19.10.10, 19:31

    Nomad, спасибо за подозрительное :) подтверждение моих предположений.
    На работе не мог проверить, т.к. к моменту появления их не смог проверить — nook разрядился, а шнур дома оставил. Сейчас опробую и отпишу.
    Вот только, думаю, придется поэкспериментировать с расположением шрифтов: или класть их в /system/fonts, предварительно переименовав, или в /system/media/sdcard/my\ fonts)

  52. cac2s 19.10.10, 20:23

    готово.

    1. заменил ReaderEpub.apk
    2. содзал папку my fonts на sd’шке, а в ней font1, font2, font3
    3. вкинул туда (font1, font2, font3) три предпочтительных мне шрифта, предварительно переименовав их по аналогии с кастомными шрифтами в mynook’овской прошивкой (normal.ttf, bold.ttf, italic.ttf, bold_italic.ttf)
    4. reboot

  53. Nomad 19.10.10, 20:52

    имхо, для EPub легче все-таки встраивать шрифты в книгу )

  54. cac2s 19.10.10, 21:03

    Nomad, кому как :) мне проще один раз настроить и забыть.
    з.ы.: единственный вариант, когда встраивать нужно — в css epab’а прописаны кастомные конкретные шрифты, невшитые в книгу (что пока? не встречал)
    в общем, теперь каждый сможет выбрать предпочтительный для него вариант

  55. ArcKain 19.10.10, 21:22

    emale: прошил вторым пакетом, батарея держится нормально :)

  56. Niklex 27.10.10, 12:23

    Хочу поблагодарить за хак и есть такой вопрос, имело ли смысл так подробно описывать способ взлома? Теперь его 100% закроют в следующей прошивке, а когда будет найдена следующая дыра неизвестно.

  57. Nomad 27.10.10, 12:37

    хак закроют, но все-равно ведь на наши устройства можно будет прошить 1.4.0 или 1.4.1, где дырка есть.
    только когда выпустят устройства залоченые под 1.5.0 это будет актуально.

  58. cdump 27.10.10, 15:14

    Я думаю, что баг бы закрыли и без столь подробного описания.
    p.s. в процессе поиска этого бага, я нашел еще несколько. Возможно, их так же можно раскрутить до получения рута с помощью них. Озвучивать сейчас их конечно не буду, когда появится проблема с рутом — тогда и посмотрим.

  59. nekotwi 27.10.10, 16:13

    у меня вопрос как зарегистрировать нук? у меня wi-fi на ноуте настроен как точка доступа, интернет расшарен. Нук нормально подключается, синхронизирует часы и в браузере интернет работает, но shop не работает и регистрация не проходит — сначала долгое ожидание, потом ошибка c6000. судя по логам wireshark сервер b&n отказывается устанавливать со мной соединение. соединение не через VPN потому что честного VPN у меня нет, а hotspot shield, на ноуте работает но подключение не шарится.

  60. ssh1 01.11.10, 18:03

    Добрый день.
    Прошился на обновленную прошивку удачно.
    После того как начал жрать батарею решил откатиться , залил 1.0.0 в корень устройства. Теперь жалею, надо было сначала прочитать про возможные проблемы.
    Пишет «restoring to factory fallback» и переодически уходит в ребут.
    Есть ли какие нибудь способы залить заводскую прошивку 1.4.1 обратно ?

  61. Nikolay_Ch 17.11.10, 23:05

    Админы… Разместите новость:
    http://lenta.ru/news/2010/11/17/nookcolor/

  62. Nikolay_Ch 17.11.10, 23:07

    Прошу прощения… глюкнул браузер — не в ту новость полезло

  63. СергейКА 22.11.10, 15:50

    ssh1
    пока нет.
    Следи за новостями
    (заодно смотри за изысканиями «rusky» в ветке
    /ruting-nukov-s-1-4-1-i-1-4-2/comment-page-2/#comment-2655 )

  64. taptygin 18.12.10, 10:11

    Ребятушки! А что же 1.4.3 так и нельзя победить? Или рут подходит и для неё?

  65. myNOOK 19.12.10, 02:00

    taptygin: читайте следующие посты, все НУКи уже рутятся


Оставить ответ:

Вы должны авторизироваться, чтобы добавлять комментарии.