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

    Вы сейчас не залогинены на форуме.

    Для возможности комментариев, загрузки файлов, подписок на ответы - вам надо войти.

Задаем вопросы по теме "Портирование патчей, для начинающих"


Рекомендуемые сообщения

РЕБЯТ, СИЛЬНО НЕ БЕЙТЕ) вот решил попробвать научится портануть пару пачей с одной прошивки s5230 на другую s5230! нашол фаг, скачал бин едит, 2 прошивки! и дальше дело не здвинулось)))))) фаг по старым телефонам! короче загружаю прошивку и бин едит начинает задавать много вопросов на которых в фаге не слова! вот например введите индификатор прошивки, уточните адрес загрузки и т.д. ? методом тыка понажимал! вроде как прошивка загрузилась! но выскочило пару предупреждений что чтото не найдено! взял патч от той прошивки что загрузил и ввел в нех редакторе <nord offset="0x8C1499C4 (выделено красным) в итоге ничего не получил! обьясните хоть вкратце минимум того что нужно знать :(

Идентификатор прошивки - название прошивки (не обязательно в принципе)

Адрес загрузки 80100000 (На всех broadcomах)

остальное по умолчанию

взял патч от той прошивки что загрузил и ввел в нех редакторе <nord offset="0x8C1499C4

далее копируешь значение по этому адресу и ищешь его в прошивке на которую портируешь. Адрес по которому находится это же значение во второй прошивке (на которую портируешь) копируешь и вставляешь в поле адреса патча (<nord offset="0xnnnnnnn) Ну это основа простейших патчей.... остальное в теме [Alastor]'a

Изменено пользователем S5233T
  • Like 2

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

Android 4.3 DeODEX Root

Sony Xperia Z1

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 947
  • Создана
  • Последний ответ

Топ авторов темы

помнится be-файл надо создать и в папку be закинуть...

нужны правильные remap блоки, тогда и будут адреса 0x8C...

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

помнится be-файл надо создать и в папку be закинуть...

нужны правильные remap блоки, тогда и будут адреса 0x8C...

так что, мне требуется еще какойто бе- фаел! где достать это все?

Ссылка на комментарий
Поделиться на другие сайты

так что, мне требуется еще какойто бе- фаел! где достать это все?

.be кубом при распаковке прошивки создаётся...галочку только поставь создать BE...

remap блоки если я не ошибаюсь должны быть уже в нём прописаны

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

Android 4.3 DeODEX Root

Sony Xperia Z1

Ссылка на комментарий
Поделиться на другие сайты

Кубом при распаковке создаётся...галочку только поставь...

ок! спасибо! ща попробую! :idea:

Изменено пользователем shaman92
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Как на броадкомах искать адрес в оперативке?

 

NEG R0, R0

LDR R1, =0x0015052F Это как я понял адрес в оперативке мобилки.... как его найти на S5233T?

 

 

P.S. портирую (пытаюсь) ForceDisableAxel с MMGJK2

P.P.S. попытался оставить так как есть - при входе в меню - ребут

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

Android 4.3 DeODEX Root

Sony Xperia Z1

Ссылка на комментарий
Поделиться на другие сайты

S5233T,

пробуй искать по местам использования этого адреса:

ищешь где используется этот адрес в исходной прошивке, потом ищешь в своей прошивке аналогичное место и смотришь по аналогии там уже свой адрес... :)

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

Как на броадкомах искать адрес в оперативке?

 

NEG R0, R0

LDR R1, =0x0015052F Это как я понял адрес в оперативке мобилки.... как его найти на S5233T?

P.S. портирую (пытаюсь) ForceDisableAxel с MMGJK2

P.P.S. попытался оставить так как есть - при входе в меню - ребут

 

Это точно не опера, а скарее всего индекс текста

А ребут может быть конечно по многим причинам.....

На 5230 при просмотре картинок меню "Опции" не такое как на 5233Т

Samsung X700+1Gb(APACER) ->>K6->>X700XEFC3_by_Omich V2 портировал zizu -->> Samsung D900i-->>Samsung E740-->>Samsung Star TV (GT-S5233T)--> Ушел на Android

 

-=SON=-.gif

Ссылка на комментарий
Поделиться на другие сайты

1.

А можно в меню (именно MCC_DISPLAY_MENU, а не MCC_DISPLAY_FOCUS) сделать разные строки ?

Checkbox и несколько radiobutton ?

Чего-то не нашёл у мобилы нигде примера, даже в *#looktest#

Тип строк задаётся 6 аргументом MCC_DISPLAY_MENU - 0x20 радиокнопки, 0x30 чекбоксы. Глобально, на всё меню…

Но вот как бы потом в самом меню переопределить тип для соответствующих lk_AddMenu ?

 

2.

Не могу найти простого образца radiobuttons в FOCUS.

Везде у FOCUS попадается всё что угодно, любая экзотика, но только не простой список radiobuttons.

А все radiobuttons - только через MENU.

Хотя в *#looktest# есть примеры FOCUS radiobuttons, но они как-то глючно там выведены с какими-то артефактами, и не работают сами…

 

 

Мне итоге надо сделать такое меню:

Вариант1 ( )

Вариант2 ( )

Вариант3 ( )

Доп.Опция [ ]

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

Ссылка на комментарий
Поделиться на другие сайты

f2065, мне кажется - возможности мобилы этого не позволят стандартно (т.к. радиокнопка - это все-таки элемент меню, а чекбокс - это фокус)

Выход из проблемы - если создавать фокусы типа Userbox (не знаю, можно ли другими средствами сделать это), а вместо радиокнопки [вкл/выкл] / чекбокса [вкл/выкл] - просто рисовать соответствующую иконку. Пользователь разницы не заметит, а вот для программиста - это будет выглядеть не по стандартному. Как-то так.

Ссылка на комментарий
Поделиться на другие сайты

Мне итоге надо сделать такое меню:

Вариант1 ( )

Вариант2 ( )

Вариант3 ( )

Доп.Опция [ ]

сделай один спин (прокручивающийся влево-вправо) и один чекбокс, вот и все дела :(

 

" post=577773]

а чекбокс - это фокус

кстати можно сделать чекбоксовое меню (по крайней мере всплывающее точно), но у меню тип задается строго, либо оно обычное, либо радио, либо чекбокс, либо пользовательская картинка, ну или т.п.

а смешанные не сделаешь...

Ссылка на комментарий
Поделиться на другие сайты

сделай один спин (прокручивающийся влево-вправо) и один чекбокс, вот и все дела :(
Ну да, именно это в ExtBlackList и сделано…

Только на B5722 спины работают отвратительно (много места занимают кнопки, мало места под текст, да и с ёмкостного тачскрина они управляются очень нечётко и медленно. Поэтому хочу от них избавится. Видимо в крайнем случае сделаю связанные чекбоксы…

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

Ссылка на комментарий
Поделиться на другие сайты

а можете подробнее написать чем пользуется обычный патчекопатель,писатель,портир.

есть задача. портануть один патч из одной модели в другую, на одной платформе Swift.

какие нюансы?

Ссылка на комментарий
Поделиться на другие сайты

подавляющее большинство использует BinEdit

ну это понятно.

тел. e2370

интересует как определить платформу новый или старый Swift.

стандартными ли средствами можно снять дамп? (Open Simple Flasher Dumper )

как я понял оптимальный вариант работы и копания с *.dif файлами

есть ли эмулятор для тестирования дампа. возможно в какой-то програме

Ссылка на комментарий
Поделиться на другие сайты

интересует как определить платформу новый или старый Swift.

а что значит новый или старый Swift? :)

В чем разница?

Open Simple Flasher Dumper

очень маловероятно

стандартными ли средствами можно снять дамп? (Open Simple Flasher Dumper )

как я понял оптимальный вариант работы и копания с *.dif файлами

скачай чистую прошивку и копай ее :)

есть ли эмулятор для тестирования дампа. возможно в какой-то програме

нет

  • Like 1
Ссылка на комментарий
Поделиться на другие сайты

а что значит новый или старый Swift? :)

В чем разница?

хм :) прочитал в факе. возможно имелось ввиду модели телефонов.

где-то вообще есть класификация телефонов по платформе?

например какие телефоны "ближе" всего к e2370. откуда можно смотреть патчи и искать подобные ресурсы.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

1 Какой в BinEdit указывать - адрес загрузки прошивки в Hex формате , адрес начала оперативной памяти и длинну оперативной памяти, для C5212iXEJH3.

2 Пытаюсь перенести патч Автовозврат после звонка(только для ФМрадио) с C5212XEIB5 на C5212iXEJH3, адрес где надо делать замен кода вроде определил(конец звонка и возврат в радио), так как телефон(патч установлен) при включенном радио после звонка зависает. Я так понимаю надо менять код на который я поменял, BinEdit говорит что в новом коде идет проверка на равенство переменных и переход в точку 120. Вопрос возникает какую переменную надо заменить и в какую точку произвести переход. Также 120 это адрес или условная метка в коде? Или может что-то я не понимаю и это делается как то по другому?

Вот код моего(неправильного) патча

<nord offset="0x78D970" from="52000000000000000000000000000000" to="1A0000000000000078BE4B2100000000" />

Ссылка на комментарий
Поделиться на другие сайты

1 Какой в BinEdit указывать - адрес загрузки прошивки в Hex формате , адрес начала оперативной памяти и длинну оперативной памяти, для C5212iXEJH3.
Главное потом в BE-файле правильно указать параметры MCC, он их криво детектит. Надо типа

… KolFunMCC="255"

MCCParam Len="16" count="8" adr1="0" len1="1" adr2="1" len2="1" adr3="2" len3="2" adr4="4" len4="2" adr5="6" len5="2" adr6="8" len6="4" adr7="12" len7="2" adr8="14" len8="2"

иначе MCC выглядит не так как надо

 

2 Пытаюсь перенести патч Автовозврат после звонка(только для ФМрадио) с C5212XEIB5 на C5212iXEJH3, адрес где надо делать замен кода вроде определил(конец звонка и возврат в радио), так как телефон(патч установлен) при включенном радио после звонка зависает.
если исходный патч этот

то…

 

Сморим что такое 1A на правой вкладке MCC, узнаём что для исходной прошивки это значит команда MCC_TRANSF.

 

207081C0: DCM MCC_USER_EVENT_START ;Начало вызова пользовательских событий

207081D0: DCM MCC_USER_TIMER 0x6 0x36 0x3633 ;MCC_USER_TIMER

207081E0: DCM MCC_USER_EVENT 0x6 0xA973 0 0 loc_20708260 ;Пользовательское событие 43379 (адрес обработки 0x20708260)

207081F0: DCM MCC_USER_KEY 0x6 0xE 0 0 loc_20708260 ;По кнопке "левая софт" переход на адрес 0x20708260

20708200: DCM MCC_USER_KEY 0x6 0xD 0 0 loc_20708260 ;По кнопке "i или нет" переход на адрес 0x20708260

20708210: DCM MCC_USER_KEY 0x6 0xF 0 0 loc_20FEE588 ;По кнопке "правая софт" переход на адрес 0x20FEE588

20708220: DCM MCC_USER_KEY 0x6 0x9 0 0 loc_20708FA8 ;По кнопке "вкл/выкл" переход на адрес 0x20708FA8

20708230: DCM MCC_USER_KEY 0x6 0x2 0 0 loc_20FEE588 ;По кнопке "С" переход на адрес 0x20FEE588

20708240: DCM MCC_USER_EVENT_WAIT 0 0 0xFFFF ;Задержка 65535 с

20708250: DCM MCC_TRANSF 0 0 0 0 loc_20708FA8 ;Переход на адрес 0x20708FA8

 

 

20795964: DCM MCC_INIT_RESTORE ;Подготовка окна

20795974: DCM MCC_CALL 0 0 0 0 loc_20BC1BB4 ;Вызов подпрограммы по адресу 0x20BC1BB4

20795984: DCM MCC_QUESTION 0 0x86C 0x58 0x2C loc_18306 0xFFFF ;MCC_QUESTION

20795994: DCM MCC_IF 0x8 0x1 0xE 0 loc_214BBE78 ;Если x1=8 x2=1 x3=14 то переход на 0x214BBE78

207959A4: DCM MCC_ELSEIF 0x8 0x1 0xD 0 loc_214BBE78 ;Или если x1=8 x2=1 x3=13 то переход на 0x214BBE78

207959B4: DCM MCC_ELSEIF 0x8 0x1 0x18 0 loc_214BBE78 ;Или если x1=8 x2=1 x3=24 то переход на 0x214BBE78

207959C4: DCM MCC_ELSEIF 0x8 0x1 0xF 0 loc_202DE378 ;Или если x1=8 x2=1 x3=15 то переход на 0x202DE378

207959D4: DCM MCC_ELSEIF 0x8 0x1 0x2 0 loc_202DE378 ;Или если x1=8 x2=1 x3=2 то переход на 0x202DE378

207959E4: DCM MCC_ELSEIF 0x8 0x1 0x1 0 loc_202DE378 ;Или если x1=8 x2=1 x3=1 то переход на 0x202DE378

207959F4: DCM MCC_EXIT

 

открываем новую прошивку, находим места:

 

20727A5C: DCM MCC_USER_EVENT_START ;Начало вызова пользовательских событий

20727A6C: DCM MCC_USER_TIMER 0x6 0x36 0x3633 ;MCC_USER_TIMER

20727A7C: DCM MCC_USER_EVENT 0x6 0xAD53 0 0 loc_20BD12A8 ;Пользовательское событие 44371 (адрес обработки 0x20BD12A8)

20727A8C: DCM MCC_USER_KEY 0x6 0xE 0 0 loc_20BD12A8 ;По кнопке "левая софт" переход на адрес 0x20BD12A8

20727A9C: DCM MCC_USER_KEY 0x6 0xD 0 0 loc_20BD12A8 ;По кнопке "i или нет" переход на адрес 0x20BD12A8

20727AAC: DCM MCC_USER_KEY 0x6 0xF 0 0 loc_2199AA64 ;По кнопке "правая софт" переход на адрес 0x2199AA64

20727ABC: DCM MCC_USER_KEY 0x6 0x9 0 0 loc_2150800C ;По кнопке "вкл/выкл" переход на адрес 0x2150800C

20727ACC: DCM MCC_USER_KEY 0x6 0x2 0 0 loc_2199AA64 ;По кнопке "С" переход на адрес 0x2199AA64

20727ADC: DCM MCC_USER_EVENT_WAIT 0 0 0xFFFF ;Задержка 65535 с

20727AEC: DCM MCC_TRANSF 0 0 0 0 loc_2150800C ;Переход на адрес 0x2150800C

 

2078D970: DCM MCC_INIT_RESTORE ;Подготовка окна

2078D980: DCM MCC_CALL 0 0 0 0 loc_219F6058 ;Вызов подпрограммы по адресу 0x219F6058

2078D990: DCM MCC_QUESTION 0 0x86C 0x58 0x2C loc_18306 0xFFFF ;MCC_QUESTION

2078D9A0: DCM MCC_IF 0x8 0x1 0xE 0 loc_2154CF1C ;Если x1=8 x2=1 x3=14 то переход на 0x2154CF1C

2078D9B0: DCM MCC_ELSEIF 0x8 0x1 0xD 0 loc_2154CF1C ;Или если x1=8 x2=1 x3=13 то переход на 0x2154CF1C

2078D9C0: DCM MCC_ELSEIF 0x8 0x1 0x18 0 loc_2154CF1C ;Или если x1=8 x2=1 x3=24 то переход на 0x2154CF1C

2078D9D0: DCM MCC_ELSEIF 0x8 0x1 0xF 0 loc_20C8CE6C ;Или если x1=8 x2=1 x3=15 то переход на 0x20C8CE6C

2078D9E0: DCM MCC_ELSEIF 0x8 0x1 0x2 0 loc_20C8CE6C ;Или если x1=8 x2=1 x3=2 то переход на 0x20C8CE6C

2078D9F0: DCM MCC_ELSEIF 0x8 0x1 0x1 0 loc_20C8CE6C ;Или если x1=8 x2=1 x3=1 то переход на 0x20C8CE6C

2078DA00: DCM MCC_EXIT ;Завершение МСС скрипта

 

 

в итоге, патч должен быть таким:

.binid C5212iXEJH3

.start 0x2078D970

.mcc MCC_TRANSF 0 0 0 0 0x2154CF1C

.start 0x20727A5C

.mcc MCC_TRANSF 0 0 0 0 0x20BD12A8

  • Like 4

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

Ссылка на комментарий
Поделиться на другие сайты

Главное потом в BE-файле правильно указать параметры MCC, он их криво детектит. Надо типа

… KolFunMCC="255"

MCCParam Len="16" count="8" adr1="0" len1="1" adr2="1" len2="1" adr3="2" len3="2" adr4="4" len4="2" adr5="6" len5="2" adr6="8" len6="4" adr7="12" len7="2" adr8="14" len8="2"

иначе MCC выглядит не так как надо

 

А адреса какие указывать при сканировании прошивки(загрузки прошивки в Hex формате , начала оперативной памяти и длинну оперативной памяти)?

Ссылка на комментарий
Поделиться на другие сайты

sashaqwe,

оставляй то, что предлагает бинедит

Тогда - реальный адрес заменяемого кода 0x0078D970, а в бинедите 0x2078D970, которого реально даже не существует; максимальный адрес в CLA 0x01BAFB0B.

Боюсь что при использовании какихто других функций(свойсв) Бинедита могут быть тоже сюрпризы

Изменено пользователем sashaqwe
Ссылка на комментарий
Поделиться на другие сайты

Тогда - реальный адрес заменяемого кода 0x0078D970, а в бинедите 0x2078D970, которого реально даже не существует; максимальный адрес в CLA 0x01BAFB0B.

Боюсь что при использовании какихто других функций(свойсв) Бинедита могут быть тоже сюрпризы

Вот как раз адреса 0x20000000…0x21FFFFFF для наших прошивок реальные.

Они грузятся в мобилу именно с этого адреса, а не с нуля.

  • Like 1

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

Ссылка на комментарий
Поделиться на другие сайты

Вот код патча "Автовозврат в Java" для C5212iXEJH3:

<nord offset="0x11F02E0" from="D4A48020" to="08021F21" />

который я создал на основании патча для C5212XEIB5 - нашел MCC код в своей прошивке который соответстует C5212XEIB5 и в патче заменил адрес на свой, затем место в C5212XEIB5 в MCC где встречается hex-код которым заменяем и соответствено нахожу в своей прошивке которым и заменяю в патче. А как выглядит код асемблера который приводит к данному патчу? и если можно объясните почему такой?

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
×
  • Создать...