Войти

Показать полную графическую версию : Структура для пропатчивания системы\образа


Страниц : [1] 2 3 4 5

Smarty
25-05-2010, 22:14
Структура папок


Чтобы было понятно дальнейшее описание структуры папок, поймите следующий момент!
От расположения респатчеров в структуре папок зависит работоспособность пакета!
Зависимость файл - патчер должна быть соблюдена с абсолютной точностью!

Пример #1:
Вы хотите пропатчить файл в папке:
C:\WINDOWS\System32\ru-RU\,
значит в структуре папок патчер для этого файла должен лежать здесь:
X:\WORK\RESOURCES\WINDOWS\System32\ru-RU\

Пример #2:
Вы хотите пропатчить файл в папке:
C:\Program Files\Windows Media Player\,
значит в структуре папок патчер для этого файла должен лежать здесь:
X:\WORK\RESOURCES\Program Files\Windows Media Player\

Эта же структура подходит и для пропатчивания дистрибутива.


Итак, откройте текстовой файл из вложения, скопируйте ссылку на закачку
и скачайте Структуру папок.

Извлеките из скачанного архива папку WORK в удобное для вас место.

ВНИМАНИЕ! На 64-битных системах скрипты запускать только из Проводника!

Вы можете изменить скрипт под свои нужды, прочитав Ключи командной строки на странице патчера (http://forum.oszone.net/thread-151734.html)

Пропатчивание дистрибутива возможно только на Windows 7, т.к. монтирование
происходит утилитой DISM.EXE, которая в предыдущих системах по умолчанию отсутствует!
Это сделано специально, потому что перед обработкой дистрибутива надо проверить работу пропатченной
системы, а сделать это можно только на самой же Windows 7, виртуальная машина для этих целей не годится!
Например, при внесении изменений в файл SHELL32.DLL на некоторых системах наблюдаются
проблемы при воспроизведении звука на акустике 5.1!

Монтирование образа с редакцией Х происходит в папку \MOUNT,
которая создается и удаляется автоматически!
Редакция выбирается вами при запросе скрипта!

------------------------

FILES - для копирования файлов в систему (например, копирование вместе с пакетом оформления визуального стиля)
UPDATES - для обновлений системы в формате MSU и CAB
RESOURCES содержит 2 папки:
SHARED - для общих патчеров
EDITIONS - для патчеров конкретных редакций
В основном она предназначена для файла basebrd.dll.mui, содержащего
информацию о редакции системы, которая отображается при входе в систему и
при просмотре меню Справка - О программе...

Check.cmd - скрипт для проверки системы после обновлений
Run.cmd - основной скрипт, производящий пропатчивание установленной системы или дистрибутива
Unmount & Clear.cmd - "дежурный" скрипт.
Может понадобиться при тестировании интеграции пакета оформления в дистрибутив.
Демонтирует неудачно размонтированный образ и подчищает следы монтирования.
Ver.ini - информационный файл для создания деинсталлятора в апплете "Программы и компоненты"
W7Patcher.exe - патчер для х86
W7Patcher_х64.exe - патчер для х64

------------------------

Перед каждым действием выдается запрос на выполнение, отказ или пропуск.
При пропатчивании дистрибутива вы можете отказаться от интеграции обновлений,
но выполнить пропатчивание, можно интегрировать обновления, но не пропатчивать,
а можно выполнить и то и другое.
[hr]



Windows 7 Universal Patcher

Windows 7 Universal Patcher (W7Patcher) представляет собой оболочку для автоматического
применения патчей графических ресурсов, созданных редактором ресурсов Restorator.

По умолчанию при создании респатчера Ресторатор убирает "родное" расширение файла (mui, dll, exe...),
заменяя его на .exe и добавляет к имени файла Patch_.
При пропатчивании W7Patcher отсекает Patch_ и .exe от респатчера, поэтому при сохранении
следует изменить имя респатчера по умолчанию на Patch_имя_файла.расширение.exe.

Пример #1:
Если вы редактировали файл Shell32.dll, то созданный респатчер должен иметь вид Patch_Shell32.dll.exe.

Пример #2:
Если вы редактировали файл Explorer.exe, то созданный респатчер должен иметь вид Patch_Explorer.exe.exe.

Более подробное описание работы патчера по ссылке ниже.

Техническая поддержка и загрузка последней версии патчера (http://forum.oszone.net/thread-151734.html)

Все вопросы по работе патчера задавать в тему патчера!
[hr]


Restorator 2007

Редактирование ресурсов Windows с помощью программы Restorator (http://www.oszone.net/11352/Restorator)

Твик реестра для получения прав на файлы (http://tools.oszone.net/Smarty/FOLDER_STRUCTURE/Take OwnerShip.7z)
После применения твика в контекстное меню будет добавлен пункт "Стать Владельцем".
По умолчанию он скрыт, чтобы случайно не поменять права на другой файл, а появляется только при зажатии кнопки <SHIFT>!

Для исполняемых файлов (.ехе) твик не работает, поэтому получать на них права нужно вручную!

Получение прав на файлы вручную

Для получения прав и разрешений надо щелкнуть ПКМ на файле и выбрать "Свойства".
В открывшемся диалоге выбрать вкладку "Безопасность" и нажать кнопку "Дополнительно".

http://s60.radikal.ru/i167/0909/22/0e559e70434e.png (http://www.radikal.ru)

Далее в открывшемся диалоге выбираем вкладку "Владелец" и кнопку "Изменить".

http://s40.radikal.ru/i089/0909/84/d5c5758a5022.png (http://www.radikal.ru)

Далее выбираем логин пользователя\имя компьютера и нажимаем кнопку "Применить",
"ОК" в информационном диалоге и "ОК" в диалоге выбора владельца.

http://s03.radikal.ru/i176/0909/c6/9dab7840aac6.png (http://www.radikal.ru)

Теперь переходим на вкладку "Разрешения" и нажимаем кнопку "Изменить разрешения..."

http://i030.radikal.ru/0909/56/c1b6dff5e9d2.png (http://www.radikal.ru)

В следующем диалоге выбираем "Пользователи\имя компьютера" и нажимаем кнопку "Изменить".

http://s54.radikal.ru/i144/0909/0d/1a20837fee4b.png (http://www.radikal.ru)

Выбираем "Разрешить полный доступ" и жмем "ОК".

http://s61.radikal.ru/i173/0909/b7/c76490867d94.png (http://www.radikal.ru)

Далее кнопкой "ОК" закрываем все диалоги получения прав и разрешений.
Можно приступать к редактированию ресурсов файла!

[hr]


Сборка пакета оформления х86


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

Помните так же, что для структуры папок путь Х:\WORK\RESOURCES соответствует С:\ в системе!

При тестировании пакета не пропатчивайте систему повторно!
Сделайте откат изменений и проверяйте на "чистой" системе!
Это займет немного больше времени, но поможет избежать путаницы и появления ошибок!
[hr]


Сборка пакета оформления х64


Сборка пакета оформления только для 64-битной системы идентична сборке для х86 с той лишь разницей,
что при копировании респатчера в папку Х:\WORK\RESOURCES\PROGRAM FILES надо проверять
наличие такого же файла в системной папке C:\PROGRAM FILES (Х86) и, если такой файл там есть,
скопировать респатчер и в папку Х:\WORK\RESOURCES\PROGRAM FILES (Х86).
Соответственно и с остальными "двойными" папками!

Если файл - получатель существует только в папке C:\WINDOWS\SYSWOW64, то и респатчер кладется
только в папку Х:\WORK\RESOURCES\WINDOWS\SYSWOW64.
Если файл - получатель существует и в C:\WINDOWS\SYSTEM32 и в C:\WINDOWS\SYSWOW64,
то и копировать респатчер надо в папки Х:\WORK\RESOURCES\WINDOWS\SYSTEM32 и в Х:\WORK\RESOURCES\WINDOWS\SYSWOW64.
[hr]

Сборка пакета оформления х86 \ х64 из пакета х86


Во-первых учтите, что в некоторых файлах есть одинаковые диалоги, но отображаются они каждый на "своей" системе!
В качестве примера можете посмотреть диалоги в файле C:\Windows\System32\ru-RU\inetcpl.cpl.mui
Во-вторых, я буду исходить из того, что пакет для х86 уже сделан, т.к. эта система проще по структуре!

Как вы знаете, в 64-битной системе есть папки для х64 и х86.
С программными папками всё понятно: PROGRAM FILES для х64 и PROGRAM FILES (Х86) для х86 соответственно,
а с системными папками наоборот: SYSTEM32 для х64 и SYSWOW64 для х86!

Поскольку респатчеры не затрагивают программный код файлов, а только графические ресурсы,
то респатчеры, созданные для системы х86 подходят для пропатчивания системы х64!
Визуальные стили не привязаны к битности системы, поэтому подходят для обоих систем!

Можно просто скопировать содержимое папок PROGRAM FILES и SYSTEM32 в папки
PROGRAM FILES (Х86) и SYSWOW64 соответственно и пакет будет готов для работы
с 64-битной системой, но...

При использовании этого метода журнал патчера W7Patcher.log будет содержать записи об ошибках (пример):
C:\Windows\SysWOW64\authui.dll [FAIL] [0x00000003]
C:\Windows\System32\ru-RU\cmncliM.dll.mui [FAIL] [0x00000002]
так как содержание папок х64 и х86 не идентично!

Код [0x00000003] указывает, что не найден путь, т.е. конечная папка отсутствует
Код [0x00000002] указывает, что не найден файл - получатель

Вы можете убедиться в отсутствии файла или папки, пройдя по пути, указанному в журнале!
-----------------------

Для создания "чистого" пакета вам надо все 4 папки сравнить по содержанию с 64-битной системой
или с распакованным образом INSTALL.WIM из дистрибутива х64.

Операция проста, но однообразна.
Откройте в двухоконном менеджере файлов системную папку SYSTEM32 и аналогичную папку
с респатчерами и проверьте наличие в системе файла, для которого есть респатчер в папке SYSTEM32.
Если в системной папке такого файла нет, то респатчер из SYSTEM32 можно удалять, и т.д.!

Или пропатчить образ 64-битной системы и следуя ошибкам в журнале патчера
удалить респатчеры для несуществующих файлов.

Таким образом вы "вычистите" ненужные для х64 патчеры, но размер распакованного пакета будет больше!
[hr]

[hr]
Сжатие пакетов лучше производить бесплатным архиватором 7-ZIP (http://www.7-zip.org/), т.к. он дает лучшее сжатие!
[hr]
Вопросы по конкретным скриптам и случаям задавайте здесь, а не в теме патчера!

Smarty
01-06-2010, 21:36
Первый плюс перехода на DISM.EXE

Возможность интеграции обновлений перед пропатчиванием!

В скрипт для обработки дистрибутива после строки монтирования надо добавить строку:
DISM.EXE /IMAGE:"%~\WORK\MOUNT" /ADD-PACKAGE /PACKAGEPATH:"%~\WORK\UPDATES"
Соответственно, обновления должны лежать в папке ...\WORK\UPDATES" в виде *.MSU файлов.
Устанавливаются все обновления, находящиеся в папке.
[hr]
Это просто дополнительная возможность при использовании DISM.EXE.
Пользоваться ей или нет - решать вам!
Все вопросы по обновлениям - сюда (http://forum.oszone.net/thread-157632.html) !

Bond01
09-06-2010, 23:03
В скрипт для обработки дистрибутива после строки монтирования надо добавить строку: »
Соответственно, обновления должны лежать в папке ...\WORK\UPDATES" в виде *.MSU файлов. »
Smarty, можно поподробнее

Smarty
09-06-2010, 23:19
Bond01,
строка монтирования х64:
DISM.EXE /MOUNT-WIM /WIMFILE:C:\WORK\INSTALL.WIM /INDEX:4 /MOUNTDIR:C:\WORK\MOUNT
строка монтирования х86:
DISM.EXE /MOUNT-WIM /WIMFILE:C:\WORK\INSTALL.WIM /INDEX:5 /MOUNTDIR:C:\WORK\MOUNT
После этих строк добавить:
DISM.EXE /IMAGE:C:\WORK\MOUNT /ADD-PACKAGE /PACKAGEPATH:C:\WORK\UPDATES
В папке C:\WORK создайте папку \UPDATES и положите в нее обновления

Во вложении готовый скрипт!

Bond01
09-06-2010, 23:49
Smarty, я по учебнику делал вот так
START /WAIT /d "%Programfiles%\Windows AIK\Tools\Servicing" pkgmgr.exe /o:C:\Work\Mount;C:\Work\Mount\Windows /n:C:\Work\Updates\integrate.xml /s:C:\Work\Sandbox /l:C:\Work\Logs\integrate_updates.log
Получается ваш скрипт более новый?
В принципе я понял с первого раза, - только забыл про WAIK :)

Smarty
10-06-2010, 00:08
Bond01, учебник по Windows Vista?
На сайте ТекНет написано следующее:
Функциональность этого инструмента (pkgmgr.exe) является частью инструментов DISM.
Менеджер пакетов (pkgmgr.exe) включен во все установки Windows, и вы можете продолжать
использовать существующие сценарии.
Тем не менее, мы рекомендуем вам обновить окружение для поддержки DISM для всех установок Windows 7.
Более подробно можно почитать у нас на сайте (http://www.oszone.net/10037/Windows_7_DISM).

Bond01
10-06-2010, 01:27
обновления должны лежать в папке ...\WORK\UPDATES" в виде *.MSU файлов. »
Smarty, наверно уже не в тему пишу, но еще такой вопрос, - как быть если обновления у меня в .CAB архивах?

Smarty
10-06-2010, 07:13
Bond01, внутри всех файлов MSU лежат CABы.
Можно эти CABы вытащить и интегрировать их, но обновлений вышло
уже больше двухсот, поэтому лучше интегрировать как есть - и CABы и MSU.
А что за обновления у вас в САВах?

Bond01
10-06-2010, 10:30
А что за обновления у вас в САВах? »
Я интегрирую только критические, они у меня подготовленные/распакованные уже в CAB.

Smarty
20-06-2010, 22:13
ВСЕМ!
Обновлены скрипты и структура папок!
Изменения и ссылка - в шапке!

Polydyrak
24-06-2010, 03:53
Smarty,
Было бы очень удобно если бы некоторые параметры задавались в отдельном ini
например:
расположение install.wim (/WimFile)
папка для монтирования (/MountDir)
или даже можно проще, в самом начале скрипта задовать соответствующие переменные, чтоб можно было легко подредактировать и задать свой путь.
Хотя впринципе кому надо тот и сам сделает...

ну и в скрипты можно и интеграцию драйверов добавить:
DISM.exe /image:"%~dp0MOUNT" /Add-Driver /driver:"%~dp0DRIVERS" /recurse /ForceUnsigned
хотя это уже офтоп получится

Smarty
24-06-2010, 07:27
Polydyrak, хотя это уже офтоп получится »
Согласно п. 2.2 Общих Правил конференции:
2. Условия создания новых тем и ответов на существующие темы
2. Если вопрос касается тем нескольких форумов, достаточно задать свой вопрос только в одном из них.
Поскольку тема изначально рассматривала установку или интеграцию оформления,
а остальное - как доп. возможности, то не вижу препятствий для рассмотрения этих возможностей!

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

Можно выкладывать свои скрипты с доп. опциями, на которые делать ссылки в шапке...
Можно, попросить помощи у наших программеров для создания утилиты с GUI для облегчения выбора
нужных конкретному юзеру опций, но, как говорится, кто может - не хочет, а кто хочет - не может!
А пока будем ждать Интегратор от BoaSoft...

Smarty
15-07-2010, 19:27
ВСЕМ!

Структура папок обновлена!
Теперь возможно пропатчивание конкретных редакций системы!
Подробности в шапке...

OEM22
20-07-2010, 10:49
Smarty, А можно добавить в скрипт редакцию Enterprise ? Было бы вообще шикарно.)))

Smarty
20-07-2010, 11:00
OEM22, можно, но ближе к вечеру...
По Москве сейчас 10:57.
Надо обдумать это дело... может сделать все, тогда Enterprise будет иметь такой же индекс как Starter
и при пропатчивании Enterprise выбирать индекс 1...

OEM22
20-07-2010, 11:17
и при пропатчивании Enterprise выбирать индекс 1... »
Ага, то что надо, жду вечера.))) Заранее спасибо.

Smarty
20-07-2010, 12:24
OEM22, вечера не дождался, пробуйте...

Index 1 = ENTERPRISE или STARTER
(но в скрипте будет отображаться ENTERPRISE.
При работе с урезанным до одной редакции образом выбирать тоже Index 1 = ENTERPRISE)
Index 2 = HOME BASIC
Index 3 = HOME PREMIUM
Index 4 = PROFESSIONAL
Index 5 = ULTIMATE

ЗЫ.
Или прописать все редакции как они есть?

AlexS94
20-07-2010, 12:49
Или прописать все редакции как они есть? »
Можно, только толку маловато, так как ниже Home Premium, мало кто юзает)

OEM22
20-07-2010, 15:01
так как ниже Home Premium, мало кто юзает) »
Совершенно согласен, STARTER и HOME BASIC - это лишнее.

Smarty, и ещё один вопросик: в скрипте есть ключи, отвечающие за изменения размера шрифтов, они что автоматом срабатывают, т.к. никакого вопроса по этому поводу не задаётся?

Smarty
20-07-2010, 15:43
OEM22, да, забыл про эту строку написать...
cls
COLOR %clr%
echo Изменение шрифта* MS Shell Dlg...
Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes" /v "MS Shell Dlg" /t REG_SZ /d "Segoe UI" /f
echo.
echo.
echo Изменение шрифта* MS Shell Dlg 2...
Reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes" /v "MS Shell Dlg 2" /t REG_SZ /d "Segoe UI" /f
echo.
В 98 - 99% диалогов прописан шрифт MS Shell Dlg и как вариант MS Shell Dlg 2, значение которых берется из реестра.
Ладно ещё в MS Shell Dlg 2 прописан Tahoma, но в MS Shell Dlg прописан Microsoft Sans Serif!
По моему мнению он не очень подходит для диалогов новой системы! :wink:




© OSzone.net 2001-2012