Jump to content
Old Phone Forum
  • Login

    You are currently not logged in to the forum.

    To comment, upload files, subscribe to answers - you need to login.

Recommended Posts

Так бы сразу и сказал...

Глюк в 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

А почему на твоём скриншоте этой проблемы нет ? Судя по адресам - ведь та же самая прошивка…

Алексей давал мне исхи, я это исправил.


5073IA3.png

Share this post


Link to post
Share on other sites

и ешё подскажите как сохранить изменения в прошивки в виде патча

я меняю код, нажимаю AMR компилятор, после компиляции открываю файл и вижу что он пустой (всмысле нет инфы что менять в прошивке)

я на 99 процентов уверен что я делою не так, но уже третий час пытаюсь разобраться и без толку

Share this post


Link to post
Share on other sites

Алексей давал мне исхи, я это исправил.

А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилось :67:


Сложность программы растет до тех пор, пока не превысит способности программиста!!!

Share this post


Link to post
Share on other sites

А исправленую версию с согласия Алексея можешь выложить??? Для брадкомов бы тоже пригодилось

С согласия могу.

А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет...


5073IA3.png

Share this post


Link to post
Share on other sites

С согласия могу.

А что у брадкомов не так, может я чего не заметил? МСС там вроде как нет...

Проблема Юра не в мсс, а в адресации. Она же тоже начинается с 0х80000000. И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой. А при компиляции приходиться адреса почти все вручную переписывать.

Т.е. сначала компилируешь без основания 0х800000000, потом применяешь патч.... добавляешь к каждому адресу снова базу, потом уже все копируешь и компилируешь уже как .hex :67:


Сложность программы растет до тех пор, пока не превысит способности программиста!!!

Share this post


Link to post
Share on other sites

И поэтому при поиске/компиляции/и прочем бинедит просто вылетает с ошибкой.

Вроде не вылетал...

Адреса относительных ссылок на данные не находил только, явное указание числа в коде искалось. А другими поисками я и не пользовался...

 

при компиляции приходиться адреса почти все вручную переписывать.

Можно компилировать сразу с нормальной базой, только следить, чтобы LDR/ADR были на адресе, кратном 4.

Я так патч в полсотни строк делал :67:

  • Like 1

5073IA3.png

Share this post


Link to post
Share on other sites

может не правильно выразился. в sysol есть таблицы данных, называемые МСС инструкции. Они имеют строго определённую структуру. из которой достаточно легхко получить структуру почти всех меню телефона. В agere такой таблицы нет. есть функции в которые рисуют меню и пункты.

Т.е. и там и там естественно используется код, но в agere данные перемешаны с кодом, а в sysol нет - код отдельно, данные отдельно.

 

Конечно можно :28: и в 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
С согласия могу.
Как-нибудь этот вопрос решить возможно ? А то я смотрю у всех новых 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

Выкладываю BinEdit с моими правками.

Многое делалось "методом научного тыка" в отладчике и только на прошивке C3322, на других может не работать/работать неправильно.

 

Архив перезалил.

Компилятор с исправлениями от AlexeyK, более полными + скорость компиляции выше.

BinEdit.rar

Edited by vvyura
  • Like 16

5073IA3.png

Share this post


Link to post
Share on other sites

Обнаружил что неработает компиляция для многих простейших патчей.

Возвращаю старый 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

f2065,

Замечал у себя такое, если вместо

adr r0, =metka

написать

adr r0, metka

компилировалось правильно и без ошибок, поэтому я не стал с этим заморачиваться.

 

В предыдущем сообщении обновил BinEdit - уже без этой ошибки.

  • Like 4

5073IA3.png

Share this post


Link to post
Share on other sites

А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделять

Share this post


Link to post
Share on other sites

А почему у меня некоторые числа и слова в проге маркированы черным маркером? Например, во вкладке код или в арм компиляторе. Приходится, чтоб увидеть под маркером текст, его выделять

Попробуй скачать из первого поста архив binedit_add и в папку с бинедитом распаковать.

Share this post


Link to post
Share on other sites

Спасибо. Всё норм заработало. А аз обновлением проги на этом форуме следить, а то на официальном сайте только за 2008 год прога выложена?

Share this post


Link to post
Share on other sites

BinEdit (версия от 2010 - тоже) неправильно компилирует BEQ-переход если в этой зоне есть автоматическая оптимизация…

 

Например если код такой вот получался (тут всё правильно):

20A72C50: 0228 CMP R0, #0x2

20A72C52: 7FD0 BEQ loc_20A72D54

 

и ниже этого BEQ написать типа MOV R1, 0x600 - BinEdit сделает оптимизацию (команды то такой у процессора нет), а вышестоящий BEQ скомпилирует в виде кода 80D0 - получается отрицательное значение и переход совсем в другую сторону… Но BinEdit никакой ошибки не указывает! Пишет только про факт оптимизации.

 

20A72C50: 0228 CMP R0, #0x2

20A72C52: 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

Давно такой вопрос возник: можно ли сделать так, чтобы БинЕдит при сканировании любой прошивки всегда выдавал запрос на ввод имени идентификатора? А то при сканировании прошивки с нормальным именем идентификатор по-умолчанию - название модели телефона... И получается, что при открытии разных прошивок для одной и той же модели используется один и тот же be-файл, который далеко не ко всем прошивкам подходит...

Share this post


Link to post
Share on other sites

Это имхо как раз у прошивок с ненормальными ID.

Обычно проблемы нет - он сам находит типа Bin ID="B5722XXJK3" adr="0x20031DDC"

Есть проблема с тем что он местами учитывает имя файла, а не ID. И в итоге для разных патченных прошивок у которых другое имя файла - получаются проблемы. Приходится BE-файл дублировать с именем прошивки. BE-файлы ищутся не по ID, а по именам файлов.

  • Like 1

Нужен какой-то патч на C3322i, C3322, C3592, B5722, S5610, E1080, E1081, и прочие Swift/Infineon ? Обращайтесь в ЛС или E.F2065@gmail.com

Share this post


Link to post
Share on other sites

Да вот лучше бы искались по ID, а не по имени :28: Возможно сначала выразился не совсем правильно, если на конкретном примере - после сканирования прошивки S5620XEJB3 создается be-файл по имени S5620.be. И в дальнейшем, если открывать прошивки S5620XEJE1, S5620MFJF1 и т.п. используется тот же самый be-файл, который к ним не подходит, т.к. ремап разный во всех прошивках.

Share this post


Link to post
Share on other sites

Надо 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

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

Надо BE-файл переименовать по имени прошивки, ID без разницы…

Он тогда не присваивает BE к прошивке.... только если моделью телефона назвать открывается правильно


Патчи: S5233TXEJF1 | S5230MMGJK2 | S3650XEIJ2 | S5560XEJD1

Android 4.3 DeODEX Root

Sony Xperia Z1

Share this post


Link to post
Share on other sites

Не могу добиться, чтобы в sym были записи __rt_memclr и __rt_memclr_w.

Вроде сохраняю как положено, обе записи показывает на вкладке Символы. Но после перезапуска BinEdit остается только та, которую сохранил последней.

 

P.S. Всё, разобрался. Вспомнил что кто-то (вроде FRAER) писал о том BinEdit не видит первую строку sym'а. А эта запись как раз первой и оказывается.

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал.

235670-16-02-12)1329365651_thumb.jpg


С троллями и даунами в полемику не вступаю.

Качественное конвертирование видео для Monte S5620

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, чем забить синее пространство (на скрине), чтобы получить переход на адрес 000003С0. Может, какой калькулятор есть? Я уже весь мозг сломал.

Судя по некоторым признакам - это прошивка от S5620... Ведь можно же и описание прошивки вставить, чтоб адресация правильной была, и сим-файл сделать, чтоб все это осмысленнее выглядело. Ну а по вопросу - компилятор для этого есть, но тут переход слишком длинный получается, выделенных 4-х байт на него не хватит.. А какой переход? Если с возвратом - попробуй редирект на него поискать или сам сделать, если без - то обычная врезка - 8 байт.

 

P.S. А судя по адресу перехода, случайно не MasterPatch 2.0 портируется? Тогда адрес изменения неверно найден.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...