Патчим Nokia N73 до загрузки. Принцип работы Domain
____Нижеописанное может пригодится владельцам N73, смарфонов с не съемной памятью и тем у кого на данный момент просто нет в наличии карты памяти, а пользоваться прелестями патчей хочется. Ну и в принципе как общая информация будет полезна всем, особенно новичкам в симбиане, возможностях ее взлома и модифицирования.
____Для начала советую ознакомиться со следующей статьей
____Так получилось что Nokia N73 стал ярким исключение из возможности пропатчивать систему до загрузке. В принципе причину проблемы нашли довольно быстро. Суть заключается в том что по причине хитрой задумки (ну или кривости рук) нокиевких инженеров и программистов, на N73 считывание данных с карты памяти начинается только после полной загрузки смарфона. Когда как у всех остальных карта читается непосредственно после нажатия кнопки включения.
Обойти это ограничение на N73 можно путем переделки ромпачера на полноценную работу с диска С. Патчер сам устанавливается на диск С, работает с патчами расположенными на там же, ну и основа системы domainSrv.exe тоже должен работать с диска С. При таком раскладе у смартфона есть все те же возможности что и при работе с карты памяти, но появляется очень большая проблема. Раз патчи берутся с диска С то в случае ошибки в виде отказа смарфона загружать ( по причине кривости этих самых патчей и файлов с которыми он работают ) загрузка без карты памяти пробему не решит (туже проблемы мы наблюдаем в смартфонах с с не съемной памятью). Останется только делать форматирование смартфона с 3 кнопок, да вот не задача, даже формат может не сработать в некоторых случаях. Вот и останется единственное решение, в виде посещения сервис центра и перепрошивки сматфона программатором. А ведь это в большинстве случаев денежка.
Поэтому раньше я не советовал пользоваться этой системой владельцам N73, овчинка выделки не стоит.
Почесав репу, недавно я все-таки придумал как обойти вышеописанные опасности, благо все просто до безобразия, хотя и крайне извращено по сути, но зато работает четко. Для простоты назовем это системой отката.
____Чем отсылать по всем уголкам сайта для поиска нужных компонентов, решил сразу собрать полноценную систему (скачать которую можно тут: или ) и лишь только описать принцип ее работы.
Принцип работы Domain
____Основу пропатчивания до загрузки составляет domainSrv.exe, файл с таким же именем расположен на диске Z и если упростить отвечает за загрузку части системы. Если специально модифицированный domainSrv.exe положить на диск С или карту памяти, то при включении смарфона в первую очередь будет запускаться именно он, а не файл на диске Z. Модифицированный domainSrv.exe запускает несколько наших файлов (если находит), а после запускает оригинальный domainSrv.exe с диска Z и система продолжает грузиться штатным образом.
Модифицированный domainSrv.exe запускает следующие файлы в указанном порядке очередности:
Где 0RDAutoStart.exe это файл автозапуска ромпатчера, именно при его запуске применяются патчи на которых стоит галочка автозагрузки, в настройках ропатчера.
Boot0.exe, Boot1.exe, Boot2.exe это любые exe из папки C:/sys/bin/ файлы которые вы назовете этими именами, пример использования описан в статье
____По мимо всего прочего, автором модифицированного domainSrv.exe был создан bootcopy.exe. При запуске этого exe происходит считывание содержимого файла BootCopy.DAT, в котором можно прописать прямой путь до любого файла и путь куда этот файл нужно скопировать. Переименовав BootCopy.DAT в Boot0.exe или Boot1.exe, можно скопировать любой файл из системы (на диске С), или перезаписать (заменить) этот файл. Это полезно в случае если файл невозможно скопировать или заменить при полностью включенном смарте. Например, файл с базой контактов.
Принцип работы системы отката.
____Теперь перейдем непосредственно к описанию системы отката, основан он в первую очередь на том самом bootcopy.exe, который переделан для использования файла DisableP.DAT (тот же BootCopy.DAT) с корня диска С, а не карты.
bootcopy.exe переименнованый в boot0.exe при включении смартфона считывает содержимое файла DisableP.DAT, где прописаны две команды: 1. c:\\0RDAutoStart.exe - c:\\sys\\bin\\0RDAutoStart.exe - т.е. скопировать (c заменой) 0RDAutoStart.exe (это рабочий 0RDAutoStart.exe) из корня диска с в папку c:\\sys\\bin\\, подменив тем самым тот который там был 2. c:\\DisableP.exe - c:\\0RDAutoStart.exe - т.е. скопировать DisableP.exe (нулевой файл) в RDAutoStart.exe, проще говоря переименовать DisableP.exe в RDAutoStart.exe и тем самым заменить исходный RDAutoStart.exe.
____Что в итоге мы получаем, при первом включении смартфона оригинальный, рабочий 0RDAutoStart.exe копируется в папку c:\\sys\\bin\\ и тем самым он будучи запущенным через domainSrv.exe может применить патчи находящиеся в автозагрузке.
При втором включении смартфона уже нулевой файл 0RDAutoStart.exe копируется в папку c:\\sys\\bin\\, в итоге получаем что система уже не патчится при загрузке.
____Получаем следующее, смартфон при первой загрузке применяет патчи, а если перезагрузиться еще раз, то загружается уже без патчей.
Это страховка от сбоя, но согласитесь не очень то удобная, в таком виде.
Добавляем к ней следующее:
При полном включении смартфона, системной автозагрузкой включается приложение EnableRP (фактически это тот же bootcopy.exe, только в обертке полноценного приложения). EnableRP читает содержимое файла EnableRP.DAT в котором прописана команда: c:\\EnableP.exe - c:\\0RDAutoStart.exe - т.е. скопировать EnableP.exe (это переименованный, рабочий 0RDAutoStart.exe) в 0RDAutoStart.exe.
____Что в общем итоге мы получаем?
Если смартфон загружается полностью то при каждой перезагрузке он будет применять патчи до загрузки системы, но стоит смартфону не загрузиться полностью (к примеру зависнуть на загрузке или выдать ошибку самотестирования) то достаточно просто вытащить батарейку, втавить обратно, и включить его. Он загрузится как не в чем не бывало, без применения патчей. Минус в том что откат сработает если заряжать смартфон из выключенного состояния, т.к. он в том случае тоже не полностью загружается.
Возможно на первый взгляд все это покажется очень запутанным, но на самом деле все просто до безобразия, достаточно только понять суть.
____В принципе в таком виде, система гарантирована защищена от критических сбоев вызванными кривыми патчами, даже если вы не понимаете как это все работает (но сами понимаете 100% гарантию даже всевышний не дает).
Поэтому я настоятельно советую, без сознания дела не ковырять вышеуказанные файлы, ибо не безопасно.
____В принципе вышеописанную сборка можно использовать для всех патчей, но на мой взгляд в некоторых случаях удобнее если сборка используется только для патчей которым действительно нужно применение до загрузки системы, а для остальных патчей использовать обычный ромпатчер с автозагрузкой или ромпатчер-плюс.
____Я не гарантирую что все вышеуказанное будет работать на все сто, у меня при тестах работало, у других тестеров тоже, что будет у остальных я без понятия, в теории все работает прекрасно, а практика себя покажет.
В общем то все.
Бонус: замена заставок включения/выключения.
Для замены заставок с помощью патча c2z воспользуйтесь файлами:
Для замеша сплеша до ручек воспользуйтесь прикрепленным архивом, содержимое папки С скопировать в корень диска С, добавить патч c2z4bin (для N73 это c2z4bin_THUMB.rmp) в автозагрузку.
Для замены заставки выключения можно воспользоваться патчем 11. Change Shutdown image из
Ручки пока можно поменять только с c2z.
Автор: ваш покорный слуга.
Выражаю благодарности:
- за подсказки по перепаковке ромпатчера. - за превращение bootcopy.exe в полноценое приложение. . - за тестирование, ну и именно он подтолкнул меня к желанию заняться всем вышеописанным
Прикрепленный файл #1: (10.47 кб)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем зарегистрироваться, либо войти на сайт под своим именем для получения полного доступа. [зеркало1]
Вот интересно. А при попытке запуска приложения при зарядке, не сработает ли система отката? Я конечно понимаю, что она итак срабатывает постоянно. Но, думаю, вы меня поняли;)
matfey77, я забыл указать одну штуку, при зарядке смарта из выключенного состояния система отката сработвт тоже, т.е. при включении смарта после зарядки патчи не применятся. По поводу приложения на зарядке, там все аналогично, но запуску самого приложения это не мешает, т.е. если оно на зарядке запускалось и без саистемы отката то и с ней будет запускаться, а если и раньше не работало то тут уж ничего не поделаешь.
Че то у меня он как то долго грузился... По моему он перегрузился раз и потом включился. PS: Поставил стартер патч, после ввода пина никакой заставки не было. Еще.. Попробовал Jbak Сделал Boot1 Ничего не произошло..(
Откат работает просто отлично. Уже раз двадцать спасал Вот только, поделился бы кто готовыми файлами для замены *ручек* и сплеша включения , чтобы без c2z работало... А то ни ума, ни времени у самого не хватает. И запустить что-либо в режиме зарядки тоже не выходит:(
steffan, ручки не сменить без c2z по ходу (специфика исполняющих файлов у N73 такая), а вот сплешь можно и заставку выключения вроде тоже. Пришли мне в личку файл SplashScreen.exe из папки Z:/sys/bin/ собере пак для сплеша. Еще пришли Starter_Arm.rsc из папки Z:/resource/
molosar, а что делать с файлами SplashScreen.exe Starter_Arm.rsc? Или может статья какая есть? А то из обменника сплешь никакой не могу запустить...ошибка самотестирования...
Kilnik, сегодня простараюсь собрать полный пак замены заставок, всеми возможными способами. Но вот ручки можно поменять только с патчем c2z. Остальное (сплешь и выключение) можно и без него.
Получилось поменять сплеш(с c2z) но вместе с картинкой вылетела ошибка самотестирования...На выключение все ок работает) Я так понял это все из за c2z ошибка вылетает... Если сделаешь все рабочим буду оч благодарен))
molosar, а что делать с файлами SplashScreen.exe Starter_Arm.rsc? Или может статья какая есть? А то из обменника сплешь никакой не могу запустить...ошибка самотестирования...
вообще их удали..они не нужны при исползовании патча с2z ------------- Добавлено в 22.10:
Kilnik
Получилось поменять сплеш(с c2z) но вместе с картинкой вылетела ошибка самотестирования...На выключение все ок работает) Я так понял это все из за c2z ошибка вылетает... Если сделаешь все рабочим буду оч благодарен))
применяй патч с2z в паре с с2z4bin и проверь не остались ли хвосты от прежних попыток изменить картинки..