f2065 8,060 Report post Posted August 26, 2011 Так бы сразу и сказал...Глюк в BinEdite, он спотыкается на MCC_BS. И это не единственная проблема.А почему на твоём скриншоте этой проблемы нет ? Судя по адресам - ведь та же самая прошивка… Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
vvyura 3,149 Report post Posted August 26, 2011 А почему на твоём скриншоте этой проблемы нет ? Судя по адресам - ведь та же самая прошивка…Алексей давал мне исхи, я это исправил. Share this post Link to post Share on other sites
gluk-v48 53 Report post Posted August 26, 2011 и ешё подскажите как сохранить изменения в прошивки в виде патчая меняю код, нажимаю AMR компилятор, после компиляции открываю файл и вижу что он пустой (всмысле нет инфы что менять в прошивке)я на 99 процентов уверен что я делою не так, но уже третий час пытаюсь разобраться и без толку Share this post Link to post Share on other sites
Дамир 4,853 Report post Posted August 26, 2011 Алексей давал мне исхи, я это исправил.А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилось Сложность программы растет до тех пор, пока не превысит способности программиста!!! Share this post Link to post Share on other sites
vvyura 3,149 Report post Posted August 26, 2011 А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилосьС согласия могу.А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет... Share this post Link to post Share on other sites
Дамир 4,853 Report post Posted August 26, 2011 С согласия могу.А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет...Проблема Юра не в мсс, а в адресации. Она же тоже начинается с 0х80000000. И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой. А при компиляции приходиться адреса почти все вручную переписывать.Т.е. сначала компилируешь без основания 0х800000000, потом применяешь патч.... добавляешь к каждому адресу снова базу, потом уже все копируешь и компилируешь уже как .hex Сложность программы растет до тех пор, пока не превысит способности программиста!!! Share this post Link to post Share on other sites
vvyura 3,149 Report post Posted August 26, 2011 И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой. Вроде не вылетал... Адреса относительных ссылок на данные не находил только, явное указание числа в коде искалось. А другими поисками я и не пользовался... при компиляции приходиться адреса почти все вручную переписывать.Можно компилировать сразу с нормальной базой, только следить, чтобы LDR/ADR были на адресе, кратном 4.Я так патч в полсотни строк делал 1 Share this post Link to post Share on other sites
alexche 1 Report post Posted September 24, 2011 может не правильно выразился. в sysol есть таблицы данных, называемые МСС инструкции. Они имеют строго определённую структуру. из которой достаточно легхко получить структуру почти всех меню телефона. В agere такой таблицы нет. есть функции в которые рисуют меню и пункты.Т.е. и там и там естественно используется код, но в agere данные перемешаны с кодом, а в sysol нет - код отдельно, данные отдельно. Конечно можно и в binedit и в winhex, кому где проще. Надо немного разобрать код отвечающий за эту полосу и убрать или заменить его. Я вроде начинал смотреть, но по некоторым причинам, от меня не сильно зависящим, забросил это занятие. это таблица, где хнанятся адреса этих функций. По 4 байта на адрес. надо сначала найти начало таблицы - поиск блищайшего используемого адреса к началу прошивки. конечно нет, просто их имена и адреса есть в прошивке. Вот программа их и выводит. Чтобы получить более менее полный список надо найти файл символов для исследуемой прошивки.Как уже писал CallBack - это функции обратного вызова. т.е. предположим есть какая то универсальная функция, которая выполняет однотипную операцию, но иногда в её работе возникают исключительные оерации требующие доолнительной обработки. Так вот при запуске таких универсальных функций её за одно передаётся адрес функции CallBack и она запускается при необходимости. Примеров такого использования может быть много. Например создание списка в меню - универсальная функция, а передавая её разные callback функции, которые возвращают элементы списка, можно получить разные списки. Вот кусок ager-овской прошивки. Можно спросить, что там примерно зашито?http://OldPh.one/index.php?showtopic=50748&Old=ifolder_ru_/25929910 Фанат микропроцессоров (CPU FAN)***Если не вставляет Gauss, попробуйте Tesla! (к рекламе ламп). Share this post Link to post Share on other sites
f2065 8,060 Report post Posted October 21, 2011 С согласия могу.Как-нибудь этот вопрос решить возможно ? А то я смотрю у всех новых Swift адреса 0x90140000 и BinEdit глючит… Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
vvyura 3,149 Report post Posted October 24, 2011 (edited) Выкладываю BinEdit с моими правками.Многое делалось "методом научного тыка" в отладчике и только на прошивке C3322, на других может не работать/работать неправильно. Архив перезалил.Компилятор с исправлениями от AlexeyK, более полными + скорость компиляции выше.BinEdit.rar Edited November 2, 2011 by vvyura 16 Share this post Link to post Share on other sites
f2065 8,060 Report post Posted October 30, 2011 Обнаружил что неработает компиляция для многих простейших патчей.Возвращаю старый binedit.exe - нормально, ставлю правленный - при компиляции ошибки…«Метка находится за пределами допустимого» про все ADR-ссылкиЧто для B5722XXJK3, что для C3510XXJL1 одинаковая проблема.Но вот старый BE этот же проект компилирует без проблем. Например вот некомпилируемый исходник - Counter_files_sending_Bluetooth_v1_C3510XXJI1_asm.rarОднако 2 десятка других патчей уже скомпилировал - ошибок не было, вот только на этом… Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
vvyura 3,149 Report post Posted November 2, 2011 f2065, Замечал у себя такое, если вместо adr r0, =metka написать adr r0, metka компилировалось правильно и без ошибок, поэтому я не стал с этим заморачиваться. В предыдущем сообщении обновил BinEdit - уже без этой ошибки. 4 Share this post Link to post Share on other sites
E)l(ik 0 Report post Posted November 3, 2011 А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделять Share this post Link to post Share on other sites
master 3,361 Report post Posted November 3, 2011 А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделятьПопробуй скачать из первого поста архив binedit_add и в папку с бинедитом распаковать. Share this post Link to post Share on other sites
E)l(ik 0 Report post Posted November 3, 2011 Спасибо. Всё норм заработало. А аз обновлением проги на этом форуме следить, а то на официальном сайте только за 2008 год прога выложена? Share this post Link to post Share on other sites
f2065 8,060 Report post Posted November 10, 2011 BinEdit (версия от 2010 - тоже) неправильно компилирует BEQ-переход если в этой зоне есть автоматическая оптимизация… Например если код такой вот получался (тут всё правильно):20A72C50: 0228 CMP R0, #0x220A72C52: 7FD0 BEQ loc_20A72D54 и ниже этого BEQ написать типа MOV R1, 0x600 - BinEdit сделает оптимизацию (команды то такой у процессора нет), а вышестоящий BEQ скомпилирует в виде кода 80D0 - получается отрицательное значение и переход совсем в другую сторону… Но BinEdit никакой ошибки не указывает! Пишет только про факт оптимизации. 20A72C50: 0228 CMP R0, #0x220A72C52: 80D0 BEQ loc_20A72B56 Исходник на котором этот баг проявляется (ключевое значение - max_pages): BinEditBug20111110.rar Пытался просто повторить эту ситуацию простым кодом из 128 NOP - не, там при переходе границы из-за оптимизации - BinEdit ругается что B-переход не достаёт… Так что нужна совокупность каких-то ещё условий где этот баг случается незаметно. Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
master 3,361 Report post Posted November 20, 2011 Давно такой вопрос возник: можно ли сделать так, чтобы БинЕдит при сканировании любой прошивки всегда выдавал запрос на ввод имени идентификатора? А то при сканировании прошивки с нормальным именем идентификатор по-умолчанию - название модели телефона... И получается, что при открытии разных прошивок для одной и той же модели используется один и тот же be-файл, который далеко не ко всем прошивкам подходит... Share this post Link to post Share on other sites
f2065 8,060 Report post Posted November 20, 2011 Это имхо как раз у прошивок с ненормальными ID.Обычно проблемы нет - он сам находит типа Bin ID="B5722XXJK3" adr="0x20031DDC" Есть проблема с тем что он местами учитывает имя файла, а не ID. И в итоге для разных патченных прошивок у которых другое имя файла - получаются проблемы. Приходится BE-файл дублировать с именем прошивки. BE-файлы ищутся не по ID, а по именам файлов. 1 Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
master 3,361 Report post Posted November 20, 2011 Да вот лучше бы искались по ID, а не по имени Возможно сначала выразился не совсем правильно, если на конкретном примере - после сканирования прошивки S5620XEJB3 создается be-файл по имени S5620.be. И в дальнейшем, если открывать прошивки S5620XEJE1, S5620MFJF1 и т.п. используется тот же самый be-файл, который к ним не подходит, т.к. ремап разный во всех прошивках. Share this post Link to post Share on other sites
f2065 8,060 Report post Posted November 20, 2011 Надо BE-файл переименовать по имени прошивки, ID без разницы… Видимо с бродкомовскими прошивками такая проблема, с свифт имена файла получаются полные… Разве что с новыми прошивками где файл прошивки назван просто ER_FLASH_REGION2_CB - у BE тоже вот проблемы если попеременно копать несколько таких прошивок - имя BE-файла у них одно… Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
f2065 8,060 Report post Posted December 26, 2011 BinEdit (ни оригинал, ни версия от vvyura) отказываются импортировать новые DEF-файлы… В частности от C3300iXXKD1_XEKE1. Анализ файлов показал что у новых файлов есть раздел:/* Ramdump */ Просто удаляю его - и файл вроде бы нормально импортируется. Хотя учитывая этот факт - можно подозревать и DEF ужа давно не импортируется корректно, может там ещё есть какие-то строчки из-за которых что-то теряется (что изначально должно было импортироваться). Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com Share this post Link to post Share on other sites
StarII 393 Report post Posted December 26, 2011 Надо BE-файл переименовать по имени прошивки, ID без разницы… Он тогда не присваивает BE к прошивке.... только если моделью телефона назвать открывается правильно Патчи: S5233TXEJF1 | S5230MMGJK2 | S3650XEIJ2 | S5560XEJD1Android 4.3 DeODEX RootSony Xperia Z1 Share this post Link to post Share on other sites
Alex&r 2,235 Report post Posted February 14, 2012 Не могу добиться, чтобы в sym были записи __rt_memclr и __rt_memclr_w.Вроде сохраняю как положено, обе записи показывает на вкладке Символы. Но после перезапуска BinEdit остается только та, которую сохранил последней. P.S. Всё, разобрался. Вспомнил что кто-то (вроде FRAER) писал о том BinEdit не видит первую строку sym'а. А эта запись как раз первой и оказывается. Share this post Link to post Share on other sites
dddemyan 284 Report post Posted February 16, 2012 Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал. С троллями и даунами в полемику не вступаю.Качественное конвертирование видео для Monte S5620 Share this post Link to post Share on other sites
master 3,361 Report post Posted February 16, 2012 Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал.Судя по некоторым признакам - это прошивка от S5620... Ведь можно же и описание прошивки вставить, чтоб адресация правильной была, и сим-файл сделать, чтоб все это осмысленнее выглядело. Ну а по вопросу - компилятор для этого есть, но тут переход слишком длинный получается, выделенных 4-х байт на него не хватит.. А какой переход? Если с возвратом - попробуй редирект на него поискать или сам сделать, если без - то обычная врезка - 8 байт. P.S. А судя по адресу перехода, случайно не MasterPatch 2.0 портируется? Тогда адрес изменения неверно найден. Share this post Link to post Share on other sites