____Нижеописанное может пригодится владельцам N73, смарфонов с не съемной памятью и тем у кого на данный момент просто нет в наличии карты памяти, а пользоваться прелестями патчей хочется. Ну и в принципе как общая информация будет полезна всем, особенно новичкам в симбиане, возможностях ее взлома и модифицирования.
____Для начала советую ознакомиться со следующей статьей Патчим систему до загрузки. Новые возможности смарта на Symb
____Так получилось что Nokia N73 стал ярким исключение из возможности пропатчивать систему до загрузке. В принципе причину проблемы нашли довольно быстро. Суть заключается в том что по причине хитрой задумки (ну или кривости рук) нокиевких инженеров и программистов, на N73 считывание данных с карты памяти начинается только после полной загрузки смарфона. Когда как у всех остальных карта читается непосредственно после нажатия кнопки включения.
Обойти это ограничение на N73 можно путем переделки ромпачера на полноценную работу с диска С. Патчер сам устанавливается на диск С, работает с патчами расположенными на там же, ну и основа системы domainSrv.exe тоже должен работать с диска С. При таком раскладе у смартфона есть все те же возможности что и при работе с карты памяти, но появляется очень большая проблема. Раз патчи берутся с диска С то в случае ошибки в виде отказа смарфона загружать ( по причине кривости этих самых патчей и файлов с которыми он работают ) загрузка без карты памяти пробему не решит (туже проблемы мы наблюдаем в смартфонах с с не съемной памятью). Останется только делать форматирование смартфона с 3 кнопок, да вот не задача, даже формат может не сработать в некоторых случаях. Вот и останется единственное решение, в виде посещения сервис центра и перепрошивки сматфона программатором. А ведь это в большинстве случаев денежка.
Поэтому раньше я не советовал пользоваться этой системой владельцам N73, овчинка выделки не стоит.
Почесав репу, недавно я все-таки придумал как обойти вышеописанные опасности, благо все просто до безобразия, хотя и крайне извращено по сути, но зато работает четко.
Для простоты назовем это системой отката.
____Чем отсылать по всем уголкам сайта для поиска нужных компонентов, решил сразу собрать полноценную систему (скачать которую можно тут: на снове классического ромпатчера или на основе ромпатчер плюса) и лишь только описать принцип ее работы.
____Основу пропатчивания до загрузки составляет domainSrv.exe, файл с таким же именем расположен на диске Z и если упростить отвечает за загрузку части системы. Если специально модифицированный domainSrv.exe положить на диск С или карту памяти, то при включении смарфона в первую очередь будет запускаться именно он, а не файл на диске Z. Модифицированный domainSrv.exe запускает несколько наших файлов (если находит), а после запускает оригинальный domainSrv.exe с диска Z и система продолжает грузиться штатным образом.
Модифицированный domainSrv.exe запускает следующие файлы в указанном порядке очередности:
1. Boot0.exe
2. Оригинальный domainSrv.exe
3. Boot1.exe
4. 0RDAutoStart.exe
5. Boot2.exe
Где 0RDAutoStart.exe это файл автозапуска ромпатчера, именно при его запуске применяются патчи на которых стоит галочка автозагрузки, в настройках ропатчера.
Boot0.exe, Boot1.exe, Boot2.exe это любые exe из папки C:/sys/bin/ файлы которые вы назовете этими именами, пример использования описан в статье Новый способ Backup
____По мимо всего прочего, автором модифицированного 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 воспользуйтесь файлами:
Splashscreen.mif
startup.mbm
Startup.mif
STARTUP.r16
SysAp.mif
из статьи замена заставок вкл. и выкл. на н73ме
Если без c2z.
Для замеша сплеша до ручек воспользуйтесь прикрепленным архивом, содержимое папки С скопировать в корень диска С, добавить патч c2z4bin (для N73 это c2z4bin_THUMB.rmp) в автозагрузку.
Для замены заставки выключения можно воспользоваться патчем 11. Change Shutdown image из архива файлов
Ручки пока можно поменять только с c2z.
Автор: ваш покорный слуга.
Выражаю благодарности:
CODeRUS - за подсказки по перепаковке ромпатчера.
arok - за превращение bootcopy.exe в полноценое приложение.
s.k.a.m. - за тестирование, ну и именно он подтолкнул меня к желанию заняться всем вышеописанным
Прикрепленный файл #1: splashscreen_by_molosar_in_2011200912518_articles.zip (10.47 кб)
Поставил RPDomainPlus, появилось две папки FDomain внутри которой еще четыре пустых папки
0RDAutostartFalse, 0RDAutostartTrue, Boot1False,
ServerTrue. И вторая папка RDomain в которую я положил c2z.rmp, c2z4bin_ THUMB.rmp, Open4All RP+.rmp. эти три патча зеленые, поставил в авто запуск все как положено. Файл Wsini.ini изменил, поставил вместо 90градусов 270. Положил на С: в то место где он стоит на диске Z: и не фига не получается . Может я что то пропустил или не так сделал не знаешь...
0 ответить