Softroot 1.4.1
Это описание того, как я получил 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 может писать абсолютно любой пользователь!
Сам процесс
- Изменил на WiFi роутере в настройках DHCP адрес DNS на ip своего ноутбука
- Настроил dns-сервер BIND на ноутбуке, чтобы он резолвил ‘sync.barnesandnoble.com» and »edmfiletransfer.barnesandnoble.com» на мой IP.
- Настроил в веб-сервере lighttpd с модулем mod_rewrite следующие перенаправления:
- Подключился к WiFi с нука, разрегистрировал его (settings->device->..) и зарегистрировал снова. Это запустило проверку обновлений прошивки и вывело сообщение об «update fail» — все хорошо, так и должно быть.
- Выключил и снова включил WiFi на нуке (Airplane mode, например) и подключился по adb
- Изменил /init.rc чтобы включить adb при загрузке и вернул /etc/wifi_stop.sh в первоначальное состояние (удалил строчку про /sbin/adbd).
- Вернул настройки DHCP роутера в начальное состояние
<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, возможно, будет работать некоректно.
Заключение
Это описание очень кратко описывает процесс получения рута, я думаю вскоре, кто-ни-будь сможет запустить у себя DNS сервер и прописать соотв. правила mod_rewrite. Тогда пользователям для получения рута останется лишь изменить настройки роутера и проделать несложные изменения по adb.
Если у вас есть какие-то вопросы, я постараюсь ответить на них в комментариях.
UPD: вытащил образ 1.4.1: http://www.multiupload.com/QOVUVGT9UM
Комментариев: 65
Сначала я обрадовался. Только самое понятное — это то, что в роутере DHCP настройки изменить надо. Эт я могу. А вот ни BIND, ни lighttpd раньше в глаза не видывал. Скачал — посмотрел, ничего не понял, может кто нибудь накатает инструкцию для чайников с подробной настройкой и bind и lighttpd?
flyer, Nomad1 на the-ebook.org (http://www.the-ebook.org/forum/viewtopic.php?p=482525#482525) написал, что собирается завтра сделать статью «для обычных пользователей».
грешным делом подумал что путь к руссификации открыт.
а тут…
грешным делом это он и есть.
Здравствуйте… Мой нук только в пути ко мне) Я хотел бы узнать, а зачем все эти вышеприведенные действия? Как я понимаю доступ к Root это доступ к файловой системе, и он нужен для взлома?
ibloo.net, это и есть взлом. С помощью adb теперь можно устанавливать любые приложения.
Спасибо! Хорошая новость.
Отличная новость! Мне кажется, её настолько долго ждали, что сейчас не все верят своему счастью (:
Мануал:
http://blog.runserver.net/2010/10/nook_16.html
кто-нибудь еще пробовал?
Nomad: круто, отлична инструкция! Думаю, что в пакет еще стоит добавить пропатченный ReaderEpub, чтобы внешние шрифты заработали. Тогда уж точно перепрошиваться смысла не будет.
Добавите софтину, которая позволяет читать pdf в альбомной ориентации, если такая софтина существует в природе. Будет очень здорово. Спасибо.
oibeda: был же пост про apdf viewer, что мешает установить его через маркет?
Nomad:Спасибо! все нормально только вот 217.20.163.111 недоступен..
MyNook: Не подскажете ли вы где можно взять тот самый пропатченный ReaderEpub, чтобы внешние шрифты заработали? Буду очень признателен.
Извиняюсь, все работает! спасибо
Я новенький с Nook, подскажите, или дайте линк что делать для установки прошивки от mynook.ru на 1.4.1
ArcKain: +1
217.20.163.111 действительно не пингуется
пинг отключен много лет назад. вы проверяйте через веб — если http://runserver.net открывается, то все хорошо.
Softroot для 1.4.2 через «сервис» на http://runserver.net прошел успешно. :-)
Спасибо за отличную работу!
Спасибо! Всё заработало с первой попытки! :-)
всё почти получилось, как только нашел, как правильно прописывать hosts на роутере. пользовался паком и root.sh от Nomad, но не заработал fb2reader — вылетает с ошибкой при запуске, через appmanager удалить себя или переустановить не дает.
очень жду возможности прикрутить русскую клавиатуру =)
попробуйте списать fbreader с нука на компьютер и установить через adb install. я завтра перешью свой нук заново и попробую отладить пакет с программами
Спасибо, всё получилось)
Ребята, может кто знает, как прописать hosts на d-link’е?
Товарищи, обьясните плиз — зарутовал, все поставилось, но adb connect — говорит connection failed.
BTW fbreader тоже выпадает, но все равно спасибо огромное.
у меня 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 и подмена адресов заработала
Может быть кому нибудь поможет это =)
ПС. сам в линуксах нуб нубом
а как теперь откатится назад? мой нук стал разряжаться буквально за ночь..
2ArcKain вы вайфай залоченый не оставили ?
Получил Root-а на всех семейных nook-ах :) (все 100317… и v 1.4.1.)
Спасибо cdump-у за способ и Nomad-у за реализацию некоторого упрощения процесса!
FBReader падает, но разберёмся. Теперь у меня вопрос по прошивке:
можно ли теперь поставить версию 1.5.1 от mynook.ru?
Там ведь трабл возникал именно при попытке получить рута (понижение прошивки не срабатывало и делало из нука кирпич). Вот теперь у нас есть рут. Кто разбирается, можете спрогнозировать — возможны проблемы при прошивке версией 1.5.1 ?
А когда авторы прошивки исправят баг с быстрым разрядом батареи?
Именнно прошивку 1.5.1, 2.4.1 и пр. на основе 1.4.0 ставить на устройства с 1.4.1 нельзя ни в коем случае
, пока не будет сделана специальная версия для этих устройств!
Фикс вылета fbreader и доступ по adb будет сегодня. А вот с батареей вопрос не по мою душу.
DanNsk: wifi был отключен, зарядил в 11 ночи и лег спать, утром заряда осталось 7% через пару минут уже 2% .. на следующий день тоже самое
Вообщем, насколько понимаю, это первый шаг к разлочке Nook с новой ревизией?
2 ArcKain: у меня тот же пэккедж поставился. При WiFi переключеннорм в AirplaneMode за 48 часов сел по минимуму, как и до этого.
Сделал пакет, полностью повторяющий все файлы прошивки 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 для смены языка.
когда будет прошивка от mynook под устройства 1.4.1???
mseJak
именно прошивать 1.4.1 устройства довольно рискованно.
пакет постом выше делает 1в1 то же самое без перепрошивки, только записью/заменой существующих файлов.
ArcKain, я успешно откатился на 1.4.1 /reanimaciya-nook/ этим способом.
Откат делал тоже из-за очень быстрой разрядки батарии (ночь при отключенном WiFi).
После повторного рута 1. не стал удалить FirmwareUpdate (заблокировал возможное обновление, прописав записи в /etc/hostst на нуке) 2. отключаю adb через WiFi Locker — в итоге заряд держит так же, как на оригинальной 1.4.1
я не удивлюсь, если с моим первым пакетом устройства быстрее разряжались из-за недостающих файлов для Mynook.ru Launcher или других программ. Потому и выложил пакет сделаный diff’ом двух прошивок. А может, такое свойство русской прошивки и ничего тут поделать нельзя.. но сам я ей не пользуюсь, потому ничего не могу посоветовать.
Всем спасибо, все работает! ушел читать книжки ))
ArcKain как заряд держит?
Подскажите, появилось ли решение для владельцев кирпичей?
Nomad, неужели положили сервер? О_о
буквально утром стягивал mynook_package.zip…
Nomad, спасибо.
Сделал ресет (6х12сек) и поставил твой пакет (от 18.10.2010).
Всё работает (и FBReader в том числе :) ).
Wifi отключен, батарею за ночь не жрёт (с вечера 85% — днём 69%). Кстати, и с прошлым (первым вариантом) пакетом не жрало. Может у меня все нуки особые? ;)
Есть пара вопросов только (может это и не к тебе):
1. в новом лончере нет аудиоплеера (иконки). это так и задумано?
2. как в лончере сделать «папку», например, «Игры», чтобы туда сбросить несколько иконок (Судоку, Шахматы,…) ?
читал, что можно, а как — не понял.
туплю … :(
cac2s
сомневаюсь — там сайты игровых серверов подняты, у них по 3-5 тысяч человек в день бывает и выдерживает. вроде как у провайдера была профилактика, внешние каналы лежали.
СергейКА
Скажу честно, в настройке лаунчера от Mynook.ru не силен — сам им не пользуюсь, спросите тут на форуме или поищите по блогу. А вообще, там ведь есть кнопка для обычного B&N Home, там должнен быть плеер.
СергейКА:
1й вопрос — в FAQ в разделе Прошивка от MyNook
2й — в нашем лаунчере никак, вроде бы можно в нукдевовском, но я не пробовал.
, а что и куда нужно подкинуть, чтобы получить возможность чтения epub’ов с кириллицей без установки всего пака от mynook.ru?
хм… неужели, это настолько секретно? :-/
cac2s
Я подозреваю, что это ReaderEpub.apk (можно взять из моего пакета или прошивки 1.5.1), записанный в /system/app
но с уверенностью может сказать лишь его разработчик.
Nomad, спасибо за подозрительное :) подтверждение моих предположений.
На работе не мог проверить, т.к. к моменту появления их не смог проверить — nook разрядился, а шнур дома оставил. Сейчас опробую и отпишу.
Вот только, думаю, придется поэкспериментировать с расположением шрифтов: или класть их в /system/fonts, предварительно переименовав, или в /system/media/sdcard/my\ fonts)
готово.
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
имхо, для EPub легче все-таки встраивать шрифты в книгу )
Nomad, кому как :) мне проще один раз настроить и забыть.
з.ы.: единственный вариант, когда встраивать нужно — в css epab’а прописаны кастомные конкретные шрифты, невшитые в книгу (что пока? не встречал)
в общем, теперь каждый сможет выбрать предпочтительный для него вариант
emale: прошил вторым пакетом, батарея держится нормально :)
Хочу поблагодарить за хак и есть такой вопрос, имело ли смысл так подробно описывать способ взлома? Теперь его 100% закроют в следующей прошивке, а когда будет найдена следующая дыра неизвестно.
хак закроют, но все-равно ведь на наши устройства можно будет прошить 1.4.0 или 1.4.1, где дырка есть.
только когда выпустят устройства залоченые под 1.5.0 это будет актуально.
Я думаю, что баг бы закрыли и без столь подробного описания.
p.s. в процессе поиска этого бага, я нашел еще несколько. Возможно, их так же можно раскрутить до получения рута с помощью них. Озвучивать сейчас их конечно не буду, когда появится проблема с рутом — тогда и посмотрим.
у меня вопрос как зарегистрировать нук? у меня wi-fi на ноуте настроен как точка доступа, интернет расшарен. Нук нормально подключается, синхронизирует часы и в браузере интернет работает, но shop не работает и регистрация не проходит — сначала долгое ожидание, потом ошибка c6000. судя по логам wireshark сервер b&n отказывается устанавливать со мной соединение. соединение не через VPN потому что честного VPN у меня нет, а hotspot shield, на ноуте работает но подключение не шарится.
Добрый день.
Прошился на обновленную прошивку удачно.
После того как начал жрать батарею решил откатиться , залил 1.0.0 в корень устройства. Теперь жалею, надо было сначала прочитать про возможные проблемы.
Пишет «restoring to factory fallback» и переодически уходит в ребут.
Есть ли какие нибудь способы залить заводскую прошивку 1.4.1 обратно ?
Админы… Разместите новость:
http://lenta.ru/news/2010/11/17/nookcolor/
Прошу прощения… глюкнул браузер — не в ту новость полезло
ssh1
пока нет.
Следи за новостями
(заодно смотри за изысканиями «rusky» в ветке
/ruting-nukov-s-1-4-1-i-1-4-2/comment-page-2/#comment-2655 )
Ребятушки! А что же 1.4.3 так и нельзя победить? Или рут подходит и для неё?
taptygin: читайте следующие посты, все НУКи уже рутятся