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

AlexeyK

SGH Open Club
  • Постов

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

  • Посещение

Сообщения, опубликованные AlexeyK

  1. John2403, можно сделать. в аське иногда появляюсь инвизибл. пиши в off-line.

     

    Geolog, опиши как у тебя грузится прошивка. Порядок примерно такой.

    После загрузки определяется идентификатор прошивки, если прошивка грузится первый раз или нет сответствующего be файла, запускается сканирвоание прошивки. Результаты сканирования можно посмотреть на последней вкладке правого поля. После закрытия программы результаты сканирования сохраняются в be файл в папку \befiles.

    В файле должна быть строчка примерно следующего содержания:

     

    Bin ID="R1BC002" adr="0x65DF90" base="0x44020000" TYPE_ARM="LittleEndian"

     

    Скачал последнюю версию с исходниками (русская почему то отказалась работать).

     

    Откуда версия с исходниками? я их давно не выкладывал, только по почте посылал :ad: Видимо очень старая версия программы.

    И странно почему русская отказалась работать, так как программа изначально русская, перевод на другие языки производится после запуска программы ресурсами из lng файлов.

     

    <<be файл или binedit.ini файл>>

    что то я таки хам не обнаружил

     

    be файлы находятся в папке \befiles, создаётся после первого успешного сканирования прошивки.

    binedit.ini - там иписание MCC команд и для SE он не актуален. идинственное он обрабатывается также как be файл и выполняет начальную инициализацию программы. строчкой

    Bin base="0x44020000" можно принудительно задать базу для всех загружаемых прошивок, но не уверен, что это будет нормально работать. :)

  2. den_po, програма не верно определила длинну копируемого блока. и ты прав, по адресу 0x44000000 всё остаётся.

     

    адрес размещения векторов прерываний задаётся 1 битом в статусном регистре. доступ к нему можно получить через 15 сопроцессор. как правило адрес размещения векторов всегда 0x00000000

  3. John2403, попробую объяснить. в начале прошивки находятся вектора прерываний, которые после включения телефона ремапятся или копируются на одну из областей 0x00000000 или 0xFFFF0000, так уж устроена работа процессора. binedit выполняет туже операцию. вот по этому начало прошивки всегда и оказывается по нулевому адресу.

  4. John2403,

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

    Я грузил mbn файл от K750(R1BC002) и применял vkp патч, хотя формат патча практически не имеет значения.

     

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

    Удали R2CA001.be файл из папки befiles, а потом загрузи прошивку в mbn формате, так надёжнее.

  5. Eugine, естественно не все форматы. bif файлы понимает ещё одна программа. точно названия не помню, что то типа LG_Resman, с сайта LG_talks, она может откроет, так как для неё bif - базовый формат. Одно но, похожет проект прикрыт.

     

    Если надо, пиши в личку, дам координаты автора.

     

    PS. Поддержку других картинок могу сделать, только нужна прошивка и время, которого совсем нет :( .

  6. armagedon, в binedit есть компилятор, можно там написать что хочешь и скомпилировать

     

    0_адрес_где: BL 0x_адрес_куда

     

    или там ещё есть калькулятор переходов, можно там ввести

     

    Если хочешь сам считать, тогда так

     

    F123F456 -> 12345*2 - смещение от значения регистра PC (на 4 больше текущего адреса). старший бит знаковый. Это упрощённая форма, частный случай только для BL THUMB режима.

    Например

    FFFFFFF -> FFFFFF*2=1FFFFFE, так как старший бит 1 значит число отрицательное, т.е. -2

  7. dаs,

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

    Попробуй загрузить в программу прошивку в s3 формате.

    если программа сама не определит адрес загрузки то её можно помочь, записав строчку в be файл или binedit.ini файл

    Bin ID="X660XEFA1" adr="0x?????" base="0x20000000" TYPE_ARM="LittleEndian"

  8. По примеру сиеменс написал CGSN патч. Возможности:

    1. чтение данных из прошивки и оперативной памяти.

    2. зпись данных в оперативную память.

    3. запрос и резервирование блока памяти.

    4. освобождение ранее выделеного блока

    5. запуск кода с указанием значениий регистров и стека

    6. поиск в прошивке и оперативной памяти по Hex маске, например 45?78???AF56

     

    Примечание.

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

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

    - адреса и длины в патчах записываются в bigendian виде, данные регистров и стека в виде RAW данных прошивки. возврат данных соответсвенно такой же.

    - при запуске на выполнение кода thumb надо к адресу прибавить 1

     

    - патч проверен только для X600.

     

    Дополнительно небольшая програмка - терминал COM порта (поменял 27.01.07, предыдущая для нормального запуска требовала наличие записи в реестре с параметрами соединения. :arrow: )

     

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

    Кнопка "Выполнить" в терминале позволяет запустить код записанный в Hex формате в строке запроса.

     

    PS. Всё представленное выложено для тестирования с исходниками, так что предложения и комментарии принимаются.

    PSS. Выражаю огромную благодарность Alex/AT за исходники работы с COM портом

    X600XEDL2.ZIP

    X100XEDG1.ZIP

    D900XEFK2.ZIP

    meCOM.zip

  9. DJArtCorp, в последней версии моей программы сделал поиск AT комманд в прошивке с расшифровкой их параметров

    во вложении результаты сканирования для D900XEFH3.cla

    Нормальным завершением ответа на комманду является OK

    если получишь #OK#, то это означает, что передано только часть данных, для получения остальных отправь в порт ##> или для завершения передачи END>

    D900XEFH3.zip

  10. EvgeniyZ, в принципе в панельке с кнопками есть 3 кнопк: комментировать строки, раскомментировать строки и комментировать блок. Можно выделить часть кода и закоментировать сразу все строки обычными ; иногда это даже удобнее, чем комментировать блок. Хотя если не пользуешься встроенным редактором, это не существено.

  11. ЖенёкX460, отдельно этот блок компилируется нормально. видимо ошибка не в нём. Скорее всего exWriteFile определена гдето ещё. либо в другой части кода, или в символах. Первое можно поиском найти, второе можно исключить отменив в настройках использование символов от прошивки.

     

    Посмотри на вкладке "Метки" её значение.

     

    PS. Если лень искать, вышли весь код мне, конфиденциальность гарантирую.

  12. Buzzzzer, с багом разобрался, в следующей версии должно будет работать нормально. Пока убери галку в меню: "Утилиты" - "Корректировать данные блока при изменении его адреса."

     

    IronMaster, загрузку поправил в этой прошивке первые несколько байт располагаются по нулевому адресу, остальные уже с 0x4400000, теперь будет уточнять с какого грузить.

     

    PS. Спасибо за поздравления

  13. А в чём проблема :?: программа уже год как может при загрузке и сканировании прошивки определять адрес её загрузки. всё найденое сохраняется в be файл. единственное сканирование не запускается если не определён идентификатор прошивки.

     

    В общем эта должна работать - http://binedit.sgh.ru/binedit_SE.7z грузить можно и mbn

     

    Buzzzzer, ЖенёкX460, спасибо за баг, только не могу его повторить, напишите поднобнее, какие адреса блоков, на какие меняеете, обновляете ли данные отмены?

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