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.

Sign in to follow this  

Recommended Posts

Дорогие патч-мейкеры!

 

Решил тут реализовать одну идею и столкнулся с такой проблемой: почему-то во всех версиях патча для моделей телфонов, начиная с х700 пропали такие мега-полезные функции как выделение/очистка блока памяти и запуск кода по адресу с параметрами (реализованные в первой версии для телефонов X100/X600), что сводит на нет огромный отладочный (и не только) потенциал этого патча?!

 

Впрочем, патч для х100, выложенный когда-то Алексеем (AlexeyK) тоже не работает, о причинах говорить не буду, не разбирался пока.

 

Идея была следующая:

- динамическое выделение памяти в телефоне командой с компьютера

- запись туда нужного кода (возможна в данной реализации)

- запуск кода

- чтение результата (возможно в данной реализации)

- очистка памяти.

 

Варианты применения - безграничны! Но... увы!

 

Кстати, с некоторых пор интерфейс патча переработан, да и набор команд (их номера), существенно отличаются. Это также вызывает проблемы с унификацией интерфейса :28:


X100 → X700 → i9300

Share this post


Link to post
Share on other sites

Решил тут реализовать одну идею и столкнулся с такой проблемой: почему-то во всех версиях патча для моделей телфонов, начиная с х700 пропали такие мега-полезные функции как выделение/очистка блока памяти и запуск кода по адресу с параметрами (реализованные в первой версии для телефонов X100/X600), что сводит на нет огромный отладочный (и не только) потенциал этого патча?!

 

Впрочем, патч для х100, выложенный когда-то Алексеем (AlexeyK) тоже не работает, о причинах говорить не буду, не разбирался пока.

 

странно, именно так и было всё задумано тогда, и вроде работало. в самом патче минимум проверок на адекватность данных, может по этому. для запуска thumb кода надо к адресу прибавлят +1.

 

PS. Привет, давно не было слышно. :28:


Одна из последних версий binedit здесь.

AlexeyK.gif

Share this post


Link to post
Share on other sites

странно, именно так и было всё задумано тогда, и вроде работало. в самом патче минимум проверок на адекватность данных, может по этому. для запуска thumb кода надо к адресу прибавлят +1.

 

PS. Привет, давно не было слышно. :(

привет! Ага, давно не было, тоже рад видеть ) Что-то странное происходит. Залил патч, он на "AT+CGSN" выдает IMEI, на "AT+CGSN=?" отвечает OK, а на всё остальное - "+CME ERROR: 3"... Получается, что патч нифига не установлен или просто не работает ))

 

Извиняюсь, прошил еще раз другой версией флешера, всё работает :28:

 

А что касается новых моделей, так в них эти функции просто не реализованы, в частности: http://OldPh.one/index.php?showtopic=38211?p=...mp;#entry407064

Edited by stepan_v

X100 → X700 → i9300

Share this post


Link to post
Share on other sites

А что касается новых моделей, так в них эти функции просто не реализованы, в частности: http://OldPh.one/index.php?showtopic=38211?p=...mp;#entry407064

у первых вариантов переноса патча на линейку swift были проблемы с некоторыми функциями патча, вот их и наверное и упразднили :59: . Кстати одно исправление в указанном патче можно было не делать. чтобы не убивались начальные нули надо заключать параметры в кавычки. так было и на X100.


Одна из последних версий binedit здесь.

AlexeyK.gif

Share this post


Link to post
Share on other sites
чтобы не убивались начальные нули надо заключать параметры в кавычки. так было и на X100.

ага, видел.

 

молодые ребята, горячие :ad: Привыкли решать проблемы "в лоб", не пытаясь разобраться в сути явления ) Сорри, никого не хотел обидеть :59:


X100 → X700 → i9300

Share this post


Link to post
Share on other sites

Потому что например я предпологал что в примерах патча описание правильное. А потом выясняется, что даже в базовых версиях описание одно, а BinEdit шлёт совсем иначе команды (и они при этом работают). А в терминале зато - ничего не работает, если набирать так как указано в описаниях патчей.


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

Share this post


Link to post
Share on other sites

Смотрю я тут исходники CGSN начальные (которые в архиве с каким-то BinEdit были)…

Про CGSN=4 (запуск кода)

там после запуска используется процедура BinaryToHexString, которая обрабатывает не 4-байтные слова, а массив единичных байт.

 

В результате, такой вот код к примеру делаем:

 

ldr r1, =0x1ABCDEF1

ldr r2, =0x2ABCDEF2

ldr r3, =0x3ABCDEF3

ldr r4, =0x4ABCDEF4

ldr r5, =0x5ABCDEF5

ldr r6, =0x6ABCDEF6

ldr r7, =0x7ABCDEF7

ldr r0, =0x8ABCDEF8

mov r8, r0

ldr r0, =0x9ABCDEF9

mov r9, r0

ldr r0, =0xAABCDEFA

mov r10, r0

ldr r0, =0xBABCDEFB

mov r11, r0

ldr r0, =0xCABCDEFC

mov r12, r0

ldr r0, =0x0ABCDEF0

 

и в ответ нам приходит:

F0DEBC0AF1DEBC1AF2DEBC2AF3DEBC3AF4DEBC4AF5DEBC5AF6DEBC6AF7DEBC7AF8DEBC8AF9DEBC9AFADEBCAAFBDEBCBAFCDEBCCA

 

ну и BinEdit это интерпретирует как:

F0DEBC0A

F1DEBC1A

F2DEBC2A

F3DEBC3A

F4DEBC4A

F5DEBC5A

F6DEBC6A

F7DEBC7A

F8DEBC8A

F9DEBC9A

FADEBCAA

FBDEBCBA

FCDEBCCA

 

Вопрос. Это так и должно быть ? Или там в патче ошибка которую никто не проверял ?

 

А то я сейчас исправлю (вместо BinaryToHexString циклом Long2Hex сделаю выдачу 0ABCDEF01ABCDEF1…СABCDEFС) - а потом опять кто-нибудь скажет что надо было разбиратся в сути отсутстивя документировани…


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

Share this post


Link to post
Share on other sites

Вопрос. Это так и должно быть ? Или там в патче ошибка которую никто не проверял ?

 

А то я сейчас исправлю (вместо BinaryToHexString циклом Long2Hex сделаю выдачу 0ABCDEF01ABCDEF1…СABCDEFС) - а потом опять кто-нибудь скажет что надо было разбиратся в сути отсутстивя документировани…

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

Кстати при запуске, байты тоже не правильно попадали в регистры.

 

Патч писался для X100-X600, там BigEndian и такой проблемы не было :) и очень странно что до сих пор этого никто не заметил.


Одна из последних версий binedit здесь.

AlexeyK.gif

Share this post


Link to post
Share on other sites

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

Кстати при запуске, байты тоже не правильно попадали в регистры.

Зря я это написал :o При запуске - верни лучше как было , так нагляднее и единообразнее. Лучше со стороны патча исправить

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

Share this post


Link to post
Share on other sites

Зря я это написал :ak: При запуске - верни лучше как было , так нагляднее и единообразнее. Лучше со стороны патча исправить

Ждём исправленную версию 1.3. Я так понял, уже без #

Можешь в определения внести константы для D880XEHJ1:

 

.ifdef D880XEHJ1
.equ a_atp_Result 0x3088E454
.equ s_atp_CurrentCommandInfo 0x3088F4F4
.equ gs_look 0x306048B8
.equ CGSNCommand 0x2062F844
.equ SendDataReq 0x217209E4
.equ memcpy 0x205A2E3C
.equ s_RunMcc 0x217841EC
.equ s_rep01 0x2114A51C
.equ s_rep02 0x2114A524
.equ s_rep03 0x2114EBCC
.equ s_rep04 0x20156FDB
.equ s_rep05 0x2062E2B5
.equ s_patch 0x20861B5E
.endif

Сам ищу, чем скомпилить.... свой кейл пал в неравной борьбе с живностью, новый, с сайта, изуродовали так, что на нём ничего путёвого не напишешь... Народ, на чём вы компилите? Может, у кого завалялся KARM240 или что-то в этом роде?. Кстати, по-моему, первая версия патча писана на Сях....или я не прав?

Edited by KonstanT

Share this post


Link to post
Share on other sites
Ждём исправленную версию 1.3.
Ждём когда будет BinEdit с исправленным багом CR-LF… В патче будет выдача LittleEndian как и прежде. А пока патч раздаётся только другим патчерам

 

Я так понял, уже без #
Да. Теперь аргументы должны быть в кавычках (binedit кстати так сам и шлёт). Ну и режим запуска кода в памяти мобилы вернулся. Можно разные функции кода быстро исследовать методом тыка не прошивая патчи в мобилу, а запуская их прямо в ОЗУ.

 

Можешь в определения внести константы для D880XEHJ1:
Под D880XEHG2 патч есть. А под HJ1 вроде бы патчи не пишем.

 

Народ, на чём вы компилите?
В BinEdit есть встроенный ARM/Thumb компилятор.

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

Share this post


Link to post
Share on other sites

Под D880XEHG2 патч есть. А под HJ1 вроде бы патчи не пишем.

???

Ну да ладно, если это - дело принципа - тогда не включай! :)

В BinEdit есть встроенный ARM/Thumb компилятор.

Действительно, есть. Но я имел в виду профессиональную тулу.

Share this post


Link to post
Share on other sites
Народ, на чём вы компилите? Может, у кого завалялся KARM240 или что-то в этом роде?. Кстати, по-моему, первая версия патча писана на Сях....или я не прав?

Вроде как все компилят в BinEdit... ну может пару патчеров ща перешли на IAR....


Жизнь - пьяный поэт, я - слово.

Я жесток и грустен, когда ему херово.

Жизнь - старый поэт, жизнь - усталый поэт,

А я... Что я? Его инструмент!...

 

Разработка Broadcom: http://www.rk-team.net/

Новости проекта QuB на Twitter

Share this post


Link to post
Share on other sites

Действительно, есть. Но я имел в виду профессиональную тулу.

В чём критерий профессиональности? Может чего доработать надо?

Компилятор в binedit написан с учётом пожелений пользователей и компилирует ARM код GNU ASM и частично Keil. Плюс несколько доработок под Samsung.

Вот описание http://binedit.sgh.ru/readme3.php

  • Like 2

Одна из последних версий binedit здесь.

AlexeyK.gif

Share this post


Link to post
Share on other sites

Люди, а как делать и снимать показания этого патча. С помощу чего! :(


Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Share this post


Link to post
Share on other sites

Панька,

BinEdit, Меню Инструменты - Подключение к телефону

  • Like 1

Share this post


Link to post
Share on other sites

CGSN патча для е200 найти немогу. Помогите найти. Раньше вроде был :(


Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Share this post


Link to post
Share on other sites

CGSN патча для е200 найти немогу. Помогите найти. Раньше вроде был :(

Держи на GD6

CGSN.rar

  • Like 1

Ты только пришёл? Тогда: ЧИТАЙ! Если прочитал, то начни от СЮДА!

Share this post


Link to post
Share on other sites

Терменал ругается что отсуствует патч. Что делать? Но пачт применённый к прошивке


Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Share this post


Link to post
Share on other sites

Терменал ругается что отсуствует патч. Что делать? Но пачт применённый к прошивке

Не обращать на это внимание и продолжать дальше работать :(


Ты только пришёл? Тогда: ЧИТАЙ! Если прочитал, то начни от СЮДА!

Share this post


Link to post
Share on other sites

ничо не рaботaт. ни оdнa комaнda. опиши пож. кaк исп. комaнdи


Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Share this post


Link to post
Share on other sites

Панька,

в настнойках отключи проверку наличия CGSN патча.


Одна из последних версий binedit здесь.

AlexeyK.gif

Share this post


Link to post
Share on other sites

Панька,

в настнойках отключи проверку наличия CGSN патча.

Ребята может я чото не то делаю.

Беру "AT+CGSN=5" кидаю в окно терминала ижму "Передать", в нижнем окне пишет "AT+CGSN=5 ОК", жму "Прочитать" ничо не происходит! Помогите пож. :):)


Счастливый обладатель лицензионной Windows 7

Для друзей просто ' Паня '

Share this post


Link to post
Share on other sites

Ребята может я чото не то делаю.

Беру "AT+CGSN=5" кидаю в окно терминала ижму "Передать", в нижнем окне пишет "AT+CGSN=5 ОК", жму "Прочитать" ничо не происходит! Помогите пож. :):)

Не понял, а чего ты вообще ждёшь от CGSN=5 ? Там ещё аргументы надо.

И вообще, есть разные ветки CGSN-патча, где CGSN=5 имеет совсем разные действия.

В принципе, новые BinEdit заточен под версию CGSN v1.3, которая в настоящее время есть только под D780, D880, D980, C5212, M3510. Для всех прочих - при необходимости могу тоже собрать, исходник в принципе универсальный (только см. на базе M3510 v.1.3.1, у более древних - 1.3 - универсальность хромает).

 

и в BinEdit нет надобности вводить CGSN-команды в терминале, там напрямую они работают через интерфейс: поиск, мсс, монитор памяти, запуск кода и т.д.

  • 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

сделал CGSN v.1.4

две новые команды:

 

CGSN=6,"AAAAAAAA" - читает 32-битное слово с указанного адреса

CGSN=9,"AAAAAAAA","WWWWWWWW" - пишет 32-битное слово по указанному адресу.

 

Применяются они для работы с портами.

Поскольку через CGSN=4 оказалсь нельзя запустить код обращающийся к портам - мобила виснет, какие-то аппаратные ограничения доступа к памяти исполняемого кода.

 

вообще хочу найти порт управления фмтюнером…


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

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
Sign in to follow this  



×
×
  • Create New...