Перейти к содержанию
Old Phone Forum

dаs

Администраторы ROOT
  • Постов

    2 828
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент dаs

  1. slavanap, а ты хотел смарт за 2 тысячи рублей? с большинтвом самсунгов всё нормально в плане прошивки и патчей.
  2. Champ, странно, что не сделали Вибро + Мелодия. Значит исправится только патчем, выйдет который или нет - неизвестно.
  3. ZhekSooN, AlexeyK, спасибо, вот и я чему-нибудь здесь научусь. Но всё-таки эффективнее самому формировать сигнатуру, ибо автоматически сформированная сигнатура нашлась очень много раз.
  4. Итак, в окне компилятора мы имеем следующий текст: Процесс переноса(портирования) патча обычо заключается в подмене адресов. Начинаем с подмены адресов функций, которые объявлены через .equ: 1) uhActivateVibrator Нам известно название функции. Первым делом нужно попытаться найти функцию по названию в Символах. Для этого переходим на вкладку Символы (в окне с прошивкой U300), вставляем название функции (uhActivateVibrator) в самое верхнее текстовое поле (где справа значок лупы) и жмём на эту самую лупу или на Enter. Когда программа находит функцию, она выделяет строку с ней, но в нашем случае этого не произошло. Можете попробовать поискать функцию в символах U600 и увидите, что там эта функция найдётся. В символах U300 этой функции нет, значит придётся её искать. Самый первый и лёгкий способ поиска функции - по HEX коду её начала. Такой способ проходит только когда прошивки сильно похожи между собой. Итак, мы нашли функцию uhActivateVibrator в символах U600. Строка с этой функцией выделилась, кликаем по ней 2 раза, чтобы программа перешла в прошивке на это место. Переходим на вкладку Код и смотрим, как выглядит функция: 1 столбик - это адрес расположения команды 2 столбик - это HEX код команды 3 столбик - это непосредственно команда 4 столбик - это операнды для команды 5 столбик - это комментарии По HEX коду в разных прошивках обычно совпадают только те команды, которые не содержат в себе адреса или смещения. Команды, которые в операндах содержат адрес (переходы, вызовы функций BL и др.) или смещение (например, LDR R0,[R1,смещение]) имеют различный HEX код. Дальше мы это учтём, а сейчас нам нужно скопировать HEX-код начала нашей функции до команды BL. Почему до команды BL? ну просто это оптимальный вариант, и такой последовательности байт хватит, чтобы найти функцию в U300. Чтобы выделить, запоминаем HEX-код той команды, до которой нам нужно выделить. В нашем случае это команда BL UHVibrator, которая имеет код 52F41CFA. Запомните визуально этот код и перейдите на вкладку Hex. Теперь нам нужно выделить байты до 52F41CFA, т.е. 70B5041C394D07D001202860 (выделяем мышкой). Теперь нажимаем Ctrl + C, чтобы скопировать. Итак, мы скопировали в буфер обмена HEX-последовательность, содержащию коды команды начала функции uhActivateVibrator до вызова BL. Теперь переходим в окно с прошивкой U300, переходим в нём на вкладку Поиск и вставляем из буфера при помощи Ctrl + V в текстовое поле нашу последовательность. Пытаемся найти такую последовательность, нажам на Enter. Как видите, результатов поиска нет, потому что в этой последовательности есть коды команды с адресами, которые имеют другой код в прошивке U300. При поиске в программе BinEdit те символы, которые могут быть любыми, можно заменить знаком ?. Переходим в окно с прошивкой U600, переходим на вкладку Код и и ищем команды, которые могли помешать нашему поиску. Очевидно, что это команда LDR R5, =0x30007F78, потому что она содержит адрес. Смотрим код этой команды слева: 394D, переходим в окно с прошивкой U300 и смотрим на нашу последовательность. Находим глазами код "мешающей" команды 394D, стираем это в последовательности, а вместо него ставим ????, т.к. там могут быть любые символы. Получается, что теперь мы будем искать 70B5041C????07D001202860, но поиск этой последовательности тоже ничего не даёт. Переходим в окно с прошивкой U600 и дальше смотрим, какая команда нам может ещё мешать. Очевидно, что это BEQ loc_20570402, т.к. она тоже содержит адрес. Опять смотрим на её код 07D0, переходим в окно с U300 и заменяем 07D0 в нашей последовательности вопросами. Получается, что мы будем искать 70B5041C????????01202860. Жмём Enter и Вуаля! Появились результаты поиска. Жмём на Плюсик слева, раскроется список найденных адресов, он у нас один. Жмём по нему 2 раза левой кнопкой. Программа BinEdit не понятно почему имеет такую особенность переходить на на сам адрес, а на адрес - 0x10. Наш адрес - это 2029672E, а программа перешла на 2029671E. В окне с кодом кликнем 2 рзаа левой кнопкой слева на адрес 2029672E, чтобы перейти уже конкретно на него. Теперь можно визуально сравнить как выглядят функции в U600 и U300. Визально они немного не похожи, но будьте уверены, чтобы мы нашли uhActivateVibrator в U300, просто по каким-то причинам она немного отличается. Пример получился сложным, обычно в начале функции побольше команд без адресов, и поиск не составляет особого труда. Итак, адрес функции uhActivateVibrator в U300 - 2029672E (функции в основном начинаются с команды PUSH). Переходим в окно компилятора и заменяем вверху адрес для функции uhActivateVibrator с 0x205703EA на 0x2029672E. Как переваришь, оптисывайся, продолжим.
  5. Ну да, на U600 мы щас на Си пишем. Но конечно же врезки и возврат из них всё равно пишутся на асме, но с СИ куда легче.
  6. Shinshilla, так ты читай описание патча, патч изменяет телефон так, как в нём написано наверное большой размер слишком у тех, что Запрещено.
  7. Champ, а разве такого нет по стандарту в типе оповещения? Allexey, может скоро и портируем патч MissedCall.
  8. Diforp, Тем пока точно нет.
  9. Slk2slk, а прошивал E840XEHB1?
  10. Shinshilla, ну вот этот номер порта и надо выставлять в OptiFlash. В чём тогда проблема?
  11. Shinshilla, кабель родной? когда зажимаешь *, втыкаешь кабель в выключенный телефон и отпускаешь *, в диспетчере устройств появляется новое оборудование?
  12. Недавно узнал, почему многие программисты весят больше людей других профессий У программисто в 1 кг - 1024 грамма
  13. Shinshilla, да, т.к. у тебя версия прошивка в телефоне совпадает с версией прошивки, для которой сделаны патчи, прошивку можешь не прошивать. Только смотри обязательно, чтобы при прошивке патчей не стояла галочка Erase All Unused, иначе телефон убьёшь. Ты по какой инструкции действуешь?
  14. Как хорошо, что никто из участников не остался без приза. Поздравляю!
  15. Романтик, а платформа какая выбрана?
  16. RuSS56, как только сдам сессию - портирую.
  17. Романтик, расскажи, как ты прошиваешь.
  18. юля, ну в режим прошивки то телефон входит? надо шить прошивку от U600G.
  19. юля, увы. Шей тогда обратно прошивку от U600G.
  20. dima911, прошивку от U600G точно можно, а вот насчёт прошивки от U600B гарантировать ничего не могу.
  21. dаs

    U600

    HDA, мда, странно как-то. юля, я уже несколько месяцев думаю, что можно, но никто не хочет пробовать.
×
×
  • Создать...