New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UEFIReplace #134
Comments
Привет,
Изменения пока в отдельной ветке: Есть на чём проверить? P. S. Это же ты UBU занимаешься? Не хотите её портировать на macOS? Полезная штука, но вендор-lock вызывает острую неприязнь, ahem… |
Я не против создания бэкапов, но в данном случае создает некоторые неудобства при пакетной обработке. Те после завершения замены придется задавать обработку переименования bios.bin.patched в bios.bin. PS если честно я с МасОСькой не работал никогда, даже не представляю если у нее своя пакетная обработка. Сейчас бы под венду до ума довести и уменьшить зависимость от мумутула. |
Упс! Прошу прощения, а где пересобраный экзешник можно забрать на потестить? :)) |
Ну, теперь в принципе можно сохранить в тот же файл, указав его в output. Однако это должно происходить осознанно. В случае macOS там обычный bash, у которого очень даже гибкий скриптовой язык. Он используется в том числе в Linux, поэтому в Windows 10 можно попробовать прямо из надстройки Linux поверх Windows. Мануалов в том числе на русском в интернете масса. Системы сборки под Windows у меня нет, сделал отдельно тег, куда собрались файлы с данными изменениями. |
Уже забрал и протестил. |
Сейчас выявил еще одну большую неприятность. Думаю, что надо для SecType 18 указывать не основной GUID, а SubGuid мли сразу парой. |
Те строка должна быть более полной |
Рекурсию я поправил, опять наткнулся на грабли, что замена тела происходит через удаление старого и добавление нового после. Насчёт GUID/SubGUID. GUID — достаточно случайная величина, вбивать два — это как-то совсем ненормально. Прикрутил небольшой костыль, чтобы можно было для freeform subtype guid (0x18) указывать guid конкретно freeform. Не очень, но в принципе должно работать. Думаю, с ребятами ещё это надо будет обсудить, но пока попробуй. https://github.com/LongSoft/UEFITool/releases/tag/t19052018r3 |
Без костылей никак. У меня DtvVer сплошные костыли. :)) Ладно, лишь бы работало корректно. В общем прогнал сборку r3 по фрифоромам, меняет всё как нужно по SubGUID. Осталось еще 2 основных замены, это весь FFS и RAW. PS возвращаясь к теме о портировании UBU на другие ОСЬки. У меня уже были запросы, вся проблема в мумутуле. Если удастся от него избавиться от него хотя бы на 90% можно будет подумать. Пока мы сильно завязаны на нем.. |
В случае Raw секции у меня всё работает, пробовал на твоём файле вот так:
Если у тебя что-то не работает, то лучше приводи полный пример, что делаешь и как. В случае замены ffs целиком можно подумать, как это сделать. Сейчас заменяется содержимое в формате "replace body", в принципе можно добавить флажок, чтобы менялся ffs целиком ("replace as is"), но для этого опять же нужен конкретный пример. Сейчас мне не до UEFITool, но если подробно опишешь что не так, в свободное время постараюсь сделать. Восстановить test-case по сообщению выше трудновато. |
Хмм.. Значит, что то в самой RAW или я чего то не понимаю.
Только третья понятна, остальные сиди и думай, что там не так. 2 - По RAW, контейнер с микрокодами
Ну вот, что не так? Я уже перепробовал на всех популярных брендах с чипсетами от 6-ого до 370-ого Одна и та же картина. 3 - По FFS.
Вообще, если удастся менять RAW с микодами, то замена всего FFS не нужна будет, достаточно только менять header/GUID, те к примеру коммандой НУ вот так как то. |
Во, теперь понятнее. У тебя секция, которая состоит в виде файла без body. Понятное дело, что она не заменяется. Поправил. Делать так: |
Если не трудно, то объясни пожалуйста, если файл уже поменяли и тут же снова его хотим заменить, то замена не происходит, почему? (это про действия последовательно 3 и 4) За текушие изменения спасибо. Буду теститься дальше. :)) |
Проверь в UEFITool, там guid файла мог смениться. |
Проверил, GUID 91B4D9C1-141C-4824-8D02-3C298E36EB3F не сменился.
С одной стороны это хоршо, но вот из за комента не понятки. |
А, тогда понятно. В случае |
А в SecType чего ставить, что в голову вбредет или как? |
В соответствии с Type/Subtype UEFITool или по содержимому, как и раньше. |
То есть, если я меняю FFS non-body RAW, то 1. Если FFS с body РЕ32 то 10 и тд? |
Да, так должно работать. Но в случае с 1 можно и без -asis, когда надо заменить просто микрокод. |
Понял. Благодарствую. Поток пока не закрываю, мало ли чего вытестится. :)) |
Хорошо, давай тогда оно повисит хотя бы до конца недельки, а там можно релиз уже, чтобы никого не путать. |
Хорошо. Постараюсь за неделю. Еще одно замечание возникло, надо бы отключить сообщения от Парсера, а тто многие пользующие не понимают в нем и попросту замордуют вопросами. По ортированию надо будет в UEFIEtract добавить -о, при этчтобы FFS извлекался в расжатом виде, иначе версии файлов не увидеть На данный момент за извлечение муму отвечает, а втом виде который УЕ выдает задолбаещься пути папок считывать и прописывать.. |
Разобрался с последним скрином, были заданы сразу 2 аргумента - all -asis |
Привет, Насчёт микрокодов. Я правильно понимаю, что теперь есть какие-то сложности использования микрокодов отсюда? https://github.com/platomav/CPUMicrocodes В UBU далеко не всегда есть актуальные версии микрокодов, поэтому часто нужно брать из репозитория platomav, их как-то надо будет теперь конвертировать или UBU это сделает сама? UEFIExtract — это new_engine ветка, так что к ней можно будет вернуться после. Аргумент для пути сохранения вполне логичен, а вот по расжатию там надо будет подумать ещё. По поводу логов. Я редко использую Windows, а под cmd не писал ничего ещё больше, но разве там не работает самый обычный редирект сообщений? Типа:
Это функция ОС, зачем её дублировать в программе? |
Привет. По микодам. В UBU обычно для дектопных с 6 по 370 серии. чипсетов. Обновки берутся с репы Плато по той самой ссылке. Если нужны инженерики или более ранние версии, то пишем Плато и просим прислать. У него по моему уже полная коллекция. :)) Хорошо. Закончим с УР потом в новый движок кину пару предложений по УЕ и УФ (extract & finder) И по логам, их не надо. Потом поясню в новом движке. |
Так, ещё раз. Если тебе нужно скрыть сообщения парсера — это дело не UEFIReplace, а твоё собственное. Как я уже сказал, сообщения легко перенаправить в файл (в Unix это специальный файл Результат работы утилиты должен проверяться не по её логу, а по коду выхода из программы ( |
Мы говорим об одном, но имеем в виду разные вещи. Я тебя понял, и считаю, что сокрытие подобных сообщений — неприемлемый костыль, который не нужен в UEFIReplace. Подробный лог должен сохраняться в файл для изучения юзером при необходимости. Результат работы программы должен определяться по коду её выхода. То, что ты выводишь всё внутри UBU — это твоё право, но как говорится сам виноват. |
Уговорил, будут доставить вопросами по этим сообщениям буду отсылать сюда. :) |
Что-то странное, перепроверь всё ещё раз. Если реально так, кидай файл с примером и точную последовательность действий. Я пересмотрел сейчас весь код, и могу сказать, что на первый взгляд там всё корректно. Если -all не указывать, то логика осталась как раньше: происходит замена первого найденного вхождения (одной секции), и происходит завершение работы программы. Если -all указан, то в цикле будет совершён обход всех файлов. Никаких третьих вариантов быть не должно. |
Упс! Мой косяк в скрипте, забываю, что для мумутула надо подмену делать, чтобы до следфайлов докопаться. Прошу прощения, был не прав.. Без -all первый файл и выход, с -all все и выход В общем, основные замены работают. Можно топик закрывать. PS По -о в экстракторе и в файндере кое что поменять на следнеделе тогда новый поток открою |
Всем доброго здравия.
Если не трудно то внесите следующие изменения:
1 - убрать создание нового файла с расширением .patched,. То есть изменение сохранять в файл с тем же именем, что задан в комманднной строке.
2 - добавить новый ключ <ALL}ONE>.
2.1 - ALL - менять по всему файлу биос пока найден заданный GUID
2.2 - ONE - менять только один раз, как реализовано на данный момент
UEFIReplace <ALL|ONE>
Благодарю.
The text was updated successfully, but these errors were encountered: