Показать полную графическую версию : Windows 7 Universal Patcher
geepnozeex, однако...
Я обе папки - и SysWOW64 и System32 - успешно пропатчил ресурсами, подготовленными на х86 системе!
У вас в системных папках одинаковые файлы с разными ресурсами чтоль? Или вы не ресурсы, а код патчили?
Мало того, что вы себе, так ещё и людям голову морочите!
Mr dUSHA
30-04-2010, 19:21
Новая версия
Версия 10.4.30.1
Изменения в функционале деинсталлятора:
Теперь при пропатчивании системы с ключами -MU -SB, то есть с созданием пункта деинсталляции пакета в Панели управления, сам патчер копируется не в Program Files, как раньше, а в папку Windows.
Далее при деинсталляции этого пакета оформления через Панель управления удаляется как "точка отката", так и сам патчер из папки Windows, а также журнал его работы, расположенный там же. Таким образом, производится полная очистка системы с удалением всех хвостов от деинсталлированного пакета оформления.
Добавлен экспериментальный ключ -F2, меняющий не только размер шрифта из 9 на 8, но и его имя из Segoe UI на Segoe MI Шрифт Segoe MI - это переименованная Tahoma. Распространяется отдельно, по личному запросу конкретного экспериментатора. :)
Папка \Windows\winsxs теперь исключается из обработки, и никакие действия с файлами в этой папке производиться патчером не будут. Этим введена вынужденная защита от ламеров, не понимающих предназначения \Windows\winsxs, и уродующих ее содержимое.
Как обычно, оптимизация кода и мелкие исправления в большом количестве, которые сейчас уже и не вспомню... :)
Mr dUSHA, а можно узнать назначение папки winsxs?
Насколько я понимаю оттуда берутся файлы для восстановления системы.
Я прав?
geepnozeex
02-05-2010, 14:38
не патчить Windows\winsxs это круто - все слетает при обновлениях и восстановлении системы- я ламер ,я патчу не только winsxs но и всё остальное содержащее изменённые ресурсы.
например 10 файлов shell32.dll на x64 системе .
geepnozeex, я ламер »
Понятно...
все слетает при обновлениях и восстановлении системы »
Значит ключ -V добавлен в патчер зря?
geepnozeex
02-05-2010, 15:51
ключ -V - я из описания непонял что это и зачем.
у меня после прохода системной утилиты sfc /scannow ничего не сбрасывается на дефол,потому что пропатчено сразу всё.
а то понапридумывают какие то перепропатчивания - делать нужно так - пропатчил и забыл об этом
можно узнать назначение папки winsxs? »
Можно)
Все компоненты операционной системы находятся в папке WinSxS. Фактически мы можем назвать эту папку хранилищем компонентов. Каждый компонент имеет уникальное имя, которое включает в себя номер версии, язык локализации и процессорную архитектуру, для которой он был собран. Папка WinSxS - единственное место в системе, где находятся компоненты, а все остальные экземпляры, которые вы можете найти в системе - это отражения, всего лишь жесткие ссылки на системное хранилище. Позвольте мне повторить последнее утверждение - в операционной системе есть только один экземпляр (или полная копия данных)каждой версии каждого файла и этот экземпляр находится в папке WinSxS. Итак, если смотреть на вопрос с такой перспективы, то папка WinSxS содержит в себе абсолютно всю ОС. Это также объясняет, почему когда вы проводите операции типа проверки системных файлов (System File Checker, SFC), установки дополнительных ролей или функций, система не запрашивает диск.
Ссылка на всю статью (http://www.thevista.ru/page.php?id=10317).
Можно еще вот с этим ознакомится. (http://blogs.msdn.com/e7ru/archive/2008/11/24/9136456.aspx)
geepnozeex, а то понапридумывают какие то перепропатчивания - делать нужно так - пропатчил и забыл об этом »
А как быть с обновлениями?
geepnozeex
03-05-2010, 12:18
цитата из статьи по winsxs
" Папка WinSxS - единственное место в системе, где находятся компоненты, а все остальные экземпляры, которые вы можете найти в системе - это отражения, всего лишь жесткие ссылки на системное хранилище. Позвольте мне повторить последнее утверждение - в операционной системе есть только один экземпляр (или полная копия данных)каждой версии каждого файла и этот экземпляр находится в папке WinSxS."
делаем вывод что как раз только winsxs и нужно патчить ,а теперь с новой версией патчера это невозможно.
Smarty - а что с обновлениями? - у меня пропатчены все файлы в winsxs и winsxs\backup и обновления мне не страшны ,я проверял на системе только с патчами без обнов - ставил обновления и всё отлично .
тоже и с sfc /scannow
Boa Soft
03-05-2010, 12:38
" Папка WinSxS - единственное место в системе, где находятся компоненты, а все остальные экземпляры, которые вы можете найти в системе - это отражения, всего лишь жесткие ссылки на системное хранилище. Позвольте мне повторить последнее утверждение - в операционной системе есть только один экземпляр (или полная копия данных)каждой версии каждого файла и этот экземпляр находится в папке WinSxS." »
Это точно. В разных статьях - разное утверждение. В одних - в WinSxS лежат сами файлы, а в системных папках - хардлинки. В других - в системе файлы, а в WinSxS - хардлинки.
Так что, не совсем понятно "кто есть ху". Есть ли инструмент, для просмотра типа файла - чтобы отличить хардлинк от файла.
И, интересный вопрос. Вот, мы пытаемся патчить файл, на который установлен хардлинк. Изменится ли содержимое файлов по хардлинкам? И наоборот мы пытаемся патчить файл по хардлинку, изменится ли при этом файл, на который он указывает. Или же в этих случаях создаются копии файлов.
Так что, вопросов достаточно много.
geepnozeex, делаем вывод что как раз только winsxs и нужно патчить »
Флаг вам в руки!
а теперь с новой версией патчера это невозможно »
А предыдущую уже выкинули?
а что с обновлениями? - у меня пропатчены все файлы в winsxs и winsxs\backup и обновления мне не страшны ,
я проверял на системе только с патчами без обнов.»
А вы обновите!
И как, по вашему, быть в такой ситуации:
у меня в папке winsxs (х86) 4 файла shell32.dll (один в backup).
Версии файлов совпадают только в system32, backup и, соответственно,
в C:\Windows\winsxs\x86_microsoft-windows-shell32_31bf3856ad364e35_6.1.7600.16385_none_6bff8101734f8330.
Далее...
В system32 файл пропатчен, в других папках - нет. Оформление установлено.
Так где по вашему патчить-то? Попробуйте только папку winsxs и посмотрите, что будет.
Вопрос про хардлинки тоже интересен... но патчер работает...
geepnozeex
03-05-2010, 13:29
в общем я поступаю так - я патчу всё версии файлов ,где бы они не находились - и как результат ничто уже не может вернуть на моей системе дефолтный облик.
но !- недавно вышло обновление kb980408 которое содержит новый файл shell32.dll ,в связи с этим несколько поменялась локация файлов shell32.dll и появилось ещё 2 локации.
тут уж как не патчи до этого обновления ,всё равно картинка слетает в shell32.dll ,но это первый раз на моей памяти ,что бы добавляли новую версию файла.
подремонтировал я расположение папок для патча и вновь мне ничего не страшно.
geepnozeex, видно, тяжёлый случай...
Вместо того, чтобы так извращаться, не проще ли и не лучше ли
запустить скрипт такого содержания:
W7PATCHER.EXE -V [путь к папке с бэкапом] -P [путь к папке с патчерами] -R
Патчер сам сравнит версии файлов в системе и в бэкапе!
Если в системе появятся после обновления файлы новее, чем в бэкапе, то патчер опять же сам пропатчит
обновленные файлы и заменит оригиналы в папке бэкапа на новые.
Может ваше призвание - мазохизм, но адекватным людям голову не морочайте!
Всё уже придумано за вас и для вас!
ЗЫ. Пропатчьте ещё дистрибутив, а то вдруг там файлы обновятся!
geepnozeex
03-05-2010, 15:09
в системе не могут быть файлы новее чем в бэкапе - новая версия файла попадает в оба места(пример kb980408) ,иначе ,что система будет восстанавливаться из старых файлов?
smarty - насчёт мазохизма - эту свою дурь оставь при себе.
главное ,что мой принцип работы с патчером даёт нужные результаты.
Mr dUSHA
03-05-2010, 15:14
Так что, не совсем понятно "кто есть ху". Есть ли инструмент, для просмотра типа файла - чтобы отличить хардлинк от файла. »
Готовых програм я таких не припомню... Вроде FAR что-то такое показывал, но не факт...
В интернете встречаются исходники и примеры для такого, но там ребята реализуют это в драйверах, и соответственно на Native API только. Только на Win32 API это, как я понял, реализовать проблематично весьма.
И, интересный вопрос. Вот, мы пытаемся патчить файл, на который установлен хардлинк. Изменится ли содержимое файлов по хардлинкам? И наоборот мы пытаемся патчить файл по хардлинку, изменится ли при этом файл, на который он указывает. »
Нет. Создается копия.
Сама технология пропатчивания ресурсов в любой реализации (хоть у Майкрософта, хоть у сторонних редакторов) выглядит таким образом, что создается копия оригинала, в которой все секции кроме ресурсной копируются без изменений, потом собирается новая секция ресурсов из не изменяемых ресурсов оригинала, и новых изменяемых или добавляемых нами. После этого в конец файла дописываются те секции, которые идут после ресурсной (как правило, это реалокейшены), и корректируется РЕ-заголовок.
Что касается хардлинков, то оно у Майкрософта на уровне файловой системы так интересно реализовано, что если например у файла есть один хардлинк, и мы удаляем файл по оригинальному имени (соответственно удаляется первичная файловая запись из каталога), то на тело файла остается только ссылка из хардлинка, и при этом сам хардлинк не преобразуетсе в первичную файловую запись.
geepnozeex, эту свою дурь оставь при себе »
Это ты оставь при себе свои принципы работы, от котрых возникают твои вопросы!
Уже все насмотрелись и начитались! :)
Где у остальных проблем не возникает - у тебя постоянно находятся!
geepnozeex
03-05-2010, 18:13
по поводу хардлинков - эксперименты показывают что их нет,а есть физически существующие файлы в system32 и winsxs.
1) патчим только shell32.dll в system32 - после установки смотрим ресторатором shell32.dll в winsxs - он не пропатчен.
2) патчим только shell32.dll в winsxs - после установки смотрим shell32.dll в system32 - он не пропатчен,пропатчен только в winsxs.
очевидно что линков нет.
без патча winsxs файлы восстанавливаютя после sfc /scannow ,полюбому они существуют в двух местах как минимум.
Mr dUSHA
03-05-2010, 18:30
по поводу хардлинков - эксперименты показывают что их нет,а есть физически существующие файлы в system32 и winsxs. »
Особенно мне понравилось, что Майкрософт говорит, что линки есть, а ты говоришь, что их нет.
Эксперименты без знания теории - это "пальцем в небо".
shell32.dll из твого примера нельзя непосредственно редактировать на живой системе, поскольку он заблокирован. Оригинал перемещается в бэкап, создаваемый утилитой, при пропатчивании, а в Систем32 создается уже патченая копия его. Так что после пропатчивания на одно реальное тело оригинального фала указывают две ссылки - из бэкапа утилиты и из winsxs. А то, что получается в Систем32 - это уже совсем другой файл.
Smarty тебе выше уже написал, что все придумано до тебя.
Mr dUSHA, есть предложение создать новый ключ для патчера "-WS" который будет отвечать за пропатчивание или не пропатчивание папки WinSxS) Так не будет таких проблем, как у geepnozeex, и каждый сможет выбрать патчить или нет))
Я раньше патчил winsxs, был "ламером", просто не въехал в назначение ключа -V, плюс патчил систему после обновления))
P.S. Mr dUSHA не встречались с такой проблемой? http://forum.oszone.net/post-1404851-1133.html
2poisonS
15-05-2010, 22:06
Один момент, если создать патчер в Restorator с дальнейшем пропатчиванием с помощью утилиты. На версию файла это не как не отразиться? Т.е. версия файла останется прежней?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.