Fake-Setup Advanced
Fake-Setup Advanced представляет собой многофункциональную замену стандартного установщика (
Setup.exe)
Windows XP или
Windows 2003 Server для
графического этапа установки.
Основные функции Fake-установщика:
1. Запуск файлов-сценариев:
-
PreSetup.cmd на
Т-40 графического этапа установки для выполнения действий, которые необходимо выполнить перед началом установки ОС, такие, как копирование на жесткий диск и распаковка пользовательских пакетов драйверов, а также запуск разнообразных утилит для предварительной настройки установщика ОС.
-
PstSetup.cmd на
Т-0 графического этапа установки для выполнения действий, которые необходимо выполнить после окончания
графического этапа установки ОС.
PreSetup.cmd, PstSetup.cmd должны находиться рядом с установщиком, в папке
SYSTEM32.
2. Поддержка механизма интеграции пользовательских драйверов в дистрибутив для
графического этапа установки ОС путем сканирование дерева каталогов с пользовательскими драйверами и запись созданного списка каталогов в реестр перед началом установки ОС, для последующего использования этих драйверов установщиком ОС.
В список путей включаются только те папки, которые содержат файлы с расширением
INF, что является признаком присутствия в таких папках драйверов устройств.
Список путей к драйверам записывается в ключ реестра:
HKLM,Software\Microsoft\Windows\CurrentVersion,DevicePath
3. Патчи системных библиотек:
-
syssetup.dll и
setupapi.dll для комплексного решения всех проблем с автоматической установкой драйверов, не имеющих цифровых подписей, как на графическом этапе установки ОС, так и в обычном штатном режиме установки драйверов на работающей ОС.
-
syssetup.dll отключение запуска сканирования всех защищенных файлов на
Т-8 графического этапа установки (экономия 5-10 минут), отключения запуска
OOBE во время первой перезагрузки после графического этапа установки ОС.
4. Патчи системных библиотек:
-
sfc_os.dll, разрешающий использование ключа реестра
SfcDisable=0xFFFFFF9D для возможности полного отключения системы защиты файлов
SFC (WFP).
-
uxtheme.dll, реализующий возможность использования неподписанных тем рабочего стола.
5. Преобразование пути из параметра
sourcepath из файла
$winnt$.inf и установка глобальных переменных окружения
SrcDosPath и
SrcDosDrive, содержащих путь к дистрибутиву устанавливаемой ОС и букву дистрибутивного диска с двоеточием соответственно, для последующего использования программами и скриптами из
PreSetup.cmd, PstSetup.cmd.
Поддерживаются пути к дистрибутиву на CD-диске, RIS-сервере, жестком диске.
Разница между переменными окружения
SrcDosPath и
SrcDosDrive заключается в том, что первая указывает на папку, в которой расположена дистрибутивная папка
i386 (например когда установка ведется из мультизагрузочного диска с несколькими дистрибутивами ОС, на котором
i386 расположена не в корне диска), а вторая - только букву с двоеточием этого дистрибутивного диска. Но в случае с RIS-сервером переменная
SrcDosDrive будет содержать те же данные, что и
SrcDosPath, то есть ссылку на сетевую дистрибутивную папку RIS-сервера.
После окончания установки и перезагрузки эти переменные не удаляются, так что их можно использовать и при первом входе в систему, например в скриптах
RunOnce.
Распаковка драйверов из 7z-архивов, лежащих на дистрибутивном диске, одной строкой в
PreSetup.cmd может выглядеть как-то так:
%SrcDosPath%\OEM\bin\un7zip.exe %SrcDosPath%\OEM\DP\DP*.7z %SystemDrive%\
6. Запуск инсталлятора Windows XP/2003 непосредственно через функцию
InstallWindowsNt из библиотеки
syssetup.dll. В результате этого отпадает необходимость сохранения оригинального дистрибутивного файла
setup.exe, поскольку оригинал не делает никаких других дополнительных действий, кроме как вызов той же функции
InstallWindowsNt.
Ведение журнала:
Во время своей работы как в режиме установщика ОС,
Fake-Setup Advanced ведет файл журнала
fSetup.log, куда регистрируются производимые действия.
В этом режиме файл журнал создается в каталоге
%SystemRoot%.
Дополнительные функции автоконфигуратора:
читать дальше »
1. Генерация аддона Z-FakeSetupAdv для возможности интеграции данной программы в дистрибутив ОС с помощью пакета обновлений UpdatePack-XPSPх-Rus/UpdatePack-W2K3SP2-Rus x86.
Для этого программу необходимо запустить с ключом -makeaddon, то есть так:
Setup.exe -makeaddon
В результате чего она в текущем каталоге создаст подкаталог Z-FakeSetupAdv, куда будут сложены все необходимые для аддона файлы.
Далее можно внести необходимые Вам изменения в файлы fSetup.ini, PreSetup.cmd, PstSetup.cmd созданного таким образом аддона, и интегрировать этот аддон в дистрибутив ОС.
2. Автокорректировка файла KillWFP.lst в зависимости от настроек, заданных в fSetup.ini.
Для этого программа автоматически запускается с ключом -makeconfig из стартового скрипта START непосредственно перед началом интеграции аддона, в самом UpdatePack-XPSPх-Rus/UpdatePack-W2K3SP2-Rus x86 .
При запуске с ключом -makeconfig непосредственно в папке Z-FakeSetupAdv\Files аддона, программа анализирует содержимое файла fSetup.ini в каталоге Z-FakeSetupAdv\Files\ForceCopy аддона, и на его основе создает файл KillWFP.lst в корневом каталоге Z-FakeSetupAdv аддона.
Ключ -clean можно добавить в командную строку в файл START дополнительно к ключу -makeconfig. С его помощью кроме файла KillWFP.lst также на основе настроек из fSetup.ini будут пересобраны еще и файлы Txtsetup, Dosnet.
Примечание: Так как Fake-Setup Advanced выполняет патчи системных библиотек, отпадает необходимость добавлять эти, уже пропатченые вручную, библиотеки в дистрибутив дополнительно.
Настройка установщика ОС:
читать дальше »
Fake-Setup Advanced использует конфигурационный файл
fSetup.ini, в котором можно указать следующие параметры:
DrvFolder - определяет папку, в которой расположено дерево каталогов драйверов.
В этом параметре можно указывать как абсолютные, так и относительные пути, а также переменные окружения, например: DrvFolder=
%SystemDrive%\D, DrvFolder=
%SrcDosDrive%\D, DrvFolder=
%SystemRoot%\OEMDRV\D , и т.п…
PatchSfcOs - определяет, производить ли только патч библиотеки
sfc_os.dll для разрешение возможности использования ключа
SfcDisable=0xFFFFFF9D для полного отключения
SFC (WFP).
DisableSFC - определяет, отключать ли защиту файлов
SFC (WFP) после завершения установки ОС. Отключение защиты реализуется установкой в реестре параметра
SfcDisable=0xFFFFFF9D.
PatchUXTheme - определяет, производить ли патч библиотеки
uxtheme.dll для возможности использования неподписанных тем рабочего стола.
PatchThemeUI – Исправление ошибки в модуле, из-за которой при применении тем рабочего стола, в которых прописаны курсоры не меняется курсор
«ладошка» (HAND). Патчем меняется
LINK на
HAND.
SaPatchUnsignDrvInst - определяет, производить ли патчи дискового файла библиотеки
setupapi.dll для дальнейшего использования преимуществ от патчей отключения понижения ранга неподписанных драйверов и отключение сброса политики проверки цифровой подписи из 0 в 1 в обычном режиме работы ОС, после ее установки.
SaPatchNewDevPopUP - определяет, производить ли патчи дискового файла библиотеки
Setupapi.dll для дальнейшего использования преимуществ от патча отключение всплытия
«Мастера нового оборудования» в обычном режиме работы ОС, после ее установки.
SsDisableOOBE - определяет, производить ли мемпатч библиотеки
Syssetup.dll во время GUI-этапа установки для отключения запуска
OOBE при первой перезагрузке после окончания графического этапа установки ОС.
PreSetup - включает запуск файла-сценария
PreSetup.cmd на
Т-40.
PostSetup - включает запуск файла-сценария
PstSetup.cmd на
Т-0.
PreSetupHide - запуск
PreSetup.cmd в скрытом или видимом консольном окне, если
1 или
0 соответственно.
PostSetupHide - запуск
PstSetup.cmd в скрытом или видимом консольном окне, если
1 или
0 соответственно.
DelDrvAfterInst - удаление папки с драйверами
DrvFolder после завершения установки ОС.
Значения параметров по-умолчанию (если параметр отсутствует, либо отсутствует сам файл
fSetup.ini):
[Options]
DrvFolder=%SystemDrive%\D
PreSetup=0
PreSetupHide=1
PostSetup=0
PostSetupHide=1
PatchSfcOs=1
DisableSFC=1
PatchUXTheme=1
PatchThemeUI=1
SsDisableOOBE=0
SaPatchUnsignDrvInst=1
SaPatchNewDevPopUP=1
DelDrvAfterInst=0
Обязательные не отключаемые патчи, применяемые в начале графического этапа установки ОС для загруженных в память образов библиотек, (дисковые файлы при этом не изменяются):
читать дальше »
syssetup.dll
- Отключение проверки цифровых подписей драйверов на графическом этапе установки ОС.
- Отключение защиты Syssetup.inf от изменений.
- Отключение запуска системы SFC для принудительного сканирования всех защищенных файлов на Т-8 графического этапа.
setupapi.dll
- Отключение понижения ранга драйверов с отсутствующей цифровой подписью при поиске наиболее подходящего драйвера для устройства.
- Отключение сброса политики цифровой подписи из 0 (Ignore) в 1 (Warn).
- Отключение всплытия «Мастера нового оборудования».
Патчер системных библиотек:
читать дальше »
Будучи запущенной в уже установленной и работающей ОС с одним или несколькими ключами командной строки, программа выполняет функцию патчера системных библиотек sfc_os.dll, Uxtheme.dll, Syssetup.dll, Setupapi.dll.
Соответствие ключей:
--psfc - sfc_os.dll - Разрешение возможности использования ключа SfcDisable = 0xFFFFFF9D для полного отключения SFC.
--pth-ux - uxtheme.dll - Разрешение возможности использования неподписанных тем рабочего стола.
--pth-ui - themeui.dll – Исправление ошибки в модуле, из-за которой при применении тем рабочего стола, в которых прописаны курсоры не меняется курсор «ладошка» (HAND). Патчем меняется LINK на HAND.
--pth-all - uxtheme.dll, themeui.dll – Применение всех патчей для этих библиотек.
--pss-main - syssetup.dll - Применение всех основных патчей кроме патча запуска OOBE.
--pss-oobe - syssetup.dll - Применение патча отключения запуска OOBE.
--pss-all - syssetup.dll - Применение всех возможных патчей для этой библиотеки.
--psa-drv - setupapi.dll - Отключение понижения ранга неподписанных драйверов и отключение сброса политики проверки цифровой подписи из 0 (Ignore) в 1 (Warn).
--psa-popup - Setupapi.dll - Отключение всплытия «Мастера нового оборудования» если в системе используются патченые файлы SysSetup.dll, Desk.Cpl, MmSys.Cpl, NetCfgx.dll…
--psa-all - setupapi.dll - Применение всех возможных патчей для этой библиотеки.
--s <SOURCE_DIR_PATH> - Папка-источник с оригинальными файлами для патчера системных библиотек.
--d <DESTINATION_DIR_PATH> - Папка назначения, в которую будут сложены пропатченые файлы.
Если параметры --s и --d не указаны, то все манипуляции производятся с файлами в папке %SystemRoot%\System32.
Если указан только параметр --s, то пропатченые файлы, оригиналы которых взяты из указанной папки-источника, складываются в %SystemRoot%\System32.
Если указан только параметр --d, то исходные оригинальные файлы берутся из системной папки %SystemRoot%\System32, патчатся, и складываются в указанную папку назначения.
Для того, чтобы примененные патчи системных файлов, находящихся в папке %SystemRoot%\System32, вступили в силу, компьютер необходимо перезагрузить.
Ведение журнала:
Во время своей работы в режиме патчера системных библиотек, Fake-Setup Advanced ведет файл журнала fSetup.log, куда регистрируются производимые действия.
В этом режиме файл журнала создается в каталоге самой программы.
Настройка патчера системных библиотек (для использования его в составе другого аддона патчера/твикера):
читать дальше »
При использовании
Fake-Setup Advanced в виде патчера DLL-библиотек в составе какого-либо DEL-аддона, помимо ручного указания в командной строке запуска патчера ключей
--pss-*,
--pss-*, и т.д., нужные патчи можно также включить посредством конфигурационного файла
pConfig.ini, в котором в секции
[Patcher] можно указать следующие параметры:
PatchSfcOs - применение патча библиотеки
sfc_os.dll для разрешение возможности использования ключа
SfcDisable=0xFFFFFF9D для полного отключения
SFC (WFP).
PatchUXTheme - определяет, производить ли патч библиотеки
uxtheme.dll для возможности использования неподписанных тем рабочего стола.
PatchThemeUI – Исправление ошибки в модуле, из-за которой при применении тем рабочего стола, в которых прописаны курсоры не меняется курсор
«ладошка» (HAND). Патчем меняется
LINK на
HAND.
SaPatchUnsignDrvInst - применение патча библиотеки
setupapi.dll для отключения понижения ранга неподписанных драйверов и отключение сброса политики проверки цифровой подписи из 0 в 1.
SaPatchNewDevPopUP - применение патчей библиотеки
setupapi.dll для отключение всплытия
«Мастера нового оборудования».
SsMain - применение всех основных патчей библиотеки
syssetup.dll кроме патча запуска
OOBE.
SsDisableOOBE - применение патча библиотеки
syssetup.dll для отключения запуска
OOBE при первой перезагрузке после окончания графического этапа установки ОС.
Для указания патчеру о необходимости прочитать настройки из файла
pConfig.ini нужно использовать один из ключей командной строки:
--pconf-L0 - означает, что конфигурационный файл лежит
в том же каталоге, что и сам патчер.
--pconf-L1 - означает, что конфигурационный файл лежит в каталоге
на один уровень выше от самого патчера.
--pconf-L2 - означает, что конфигурационный файл лежит в каталоге
на два уровня выше от самого патчера.
Смысл ключей
--pconf-L1 и
--pconf-L2 заключается в том, что в составе DEL-аддона может располагаться в какой-то подпапке этого аддона, а конфигурационный файл как правило удобней располагать в корневой папке аддона.
Таким образом запуск патчера должен выглядеть как-то так:
Setup.exe --pconf-L0 --s <ORIG_FILES_DIR> --d <PATCHED_FILES_DIR>
Пример файла
pConfig.ini:
[Patcher]
PatchSfcOs=1
PatchUXTheme=1
PatchThemeUI=1
SsMain=1
SsDisableOOBE=1
SaPatchUnsignDrvInst=1
SaPatchNewDevPopUP=1
Описание всех патчей, которые умеет выполнять Fake-Setup Advanced:
читать дальше »
sfc_os.dll
- Разрешение возможности использования ключа реестра
HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,SfcDisable со значением
0xFFFFFF9D для возможности полного отключения
SFC.
uxtheme.dll
- Разрешение возможности использования неподписанных тем рабочего стола.
themeui.dll
- Исправление ошибки в модуле, из-за которой при применении тем рабочего стола, в которых прописаны курсоры не меняется курсор
«ладошка» (HAND). Патчем меняется
LINK на
HAND.
setupapi.dll
- Отключение понижения ранга неподписанных драйверов при выборе наиболее подходящего драйвера установщиком для нового найденного устройства, что предотвращает автоматическую установку старого подписанного драйвера из дистрибутивного комплекта ОС в том случае, если имеется более новый сторонний драйвер с отсутствующей цифровой подписью.
Этим патчем снимается необходимость удаления из дистрибутива старых подписанных MS-овских драйверов для автоматической установки новых но не подписанных.
- Отключение сброса политики проверки цифровой подписи из
0 (Ignore) в
1 (Warn), если происходит замена защищенного подписанного драйвера сторонним не подписанным.
- Отключение всплытия
«Мастера нового оборудования» для ручной установки драйвера при подключении новых устройств, для которых в драйверных архивах ОС уже имеются драйвера, если в системе используются патченые файлы
SysSetup.dll, Desk.Cpl, MmSys.Cpl, NetCfgx.dll, и другие…
Сам баг и его решение описаны
здесь, а подробнее о механизме возникновения проблемы
здесь.
syssetup.dll
- Отключение проверки цифровых подписей драйверов на графическом этапе установки ОС. При этом обе политики (
Driver Signing и
Non-Driver Signing) проверки цифровой подписи будут установлены в
0 (Ignore), а соотетствующие параметры в файле
winnt.sif будут
проигнорированы.
- Отключение защиты файла
syssetup.inf от изменений для возможности тонкой настройки процесса установки ОС.
- Отключение запуска системы
SFC(WFP) для принудительного сканирования всех защищенных системных файлов на
Т-8 графического этапа установки (экономия времени на установку ОС - 5-10 минут).
- Отключение запуска
OOBE во время первой перезагрузки после графического этапа установки ОС.
Встроенный в Fake-Setup Advanced патчер поддерживает следующие версии библиотек:
читать дальше »
SYSSETUP.DLL
- 5.1.2600.5512
- 5.2.3790.4226
- 5.2.3790.3959
SETUPAPI.DLL
- 5.1.2600.5603
- 5.1.2600.5512
- 5.2.3790.4511
- 5.2.3790.3959
SFC_OC.DLL
- 5.1.2600.5512
- 5.2.3790.3959
UXTHEME.DLL
- 6.0.2900.5512
- 6.0.3790.3959
THEMEUI.DLL
- 6.0.2900.5512
- 6.0.3790.3959
История изменений:
читать дальше »
Версия 12.3.14- Небольшая модификация функционала по заказу для opel431.
- В bin-патчере удалена поддержка sxs.dll.
- Всякие разные мелкие правки, накопившиеся за эти годы

Версия 9.11.24- Добавлен патч библиотеки THEMEUI.DLL.
- В патчере расширена поддержка версий библиотек SYSSETUP.DLL, SETUPAPI.DLL.
- Ключ патчера --pth заменен на 3 ключа --pth-ux, --pth-ui, --pth-all. Также в конфигурационные файлы fSetup.ini и pConfig.ini добавлен новый параметр PatchThemeUI.
Версия 9.08.18- Исправлен функционал параметра DelDrvAfterInst. Теперь все гарантировано удаляется.
- Косметические правки по расширению детализации журнала работы fSetup.log.
Версия 9.07.24- Добавлен новый параметр DelDrvAfterInst в конфигурационный файл fSetup.ini, включающий удаление папки с драйверами DrvFolder после завершения установки ОС.
Версия 9.06.17- Теперь в режиме патчера библиотек журнал работы создается в каталоге, в котором расположена сама программа, а не в %SystemRoot%, как во время установки ОС.
Версия 9.06.11- Исправлена ошибка некорректного разбора параметров командной строки, которая при определенных обстоятельствах могла приводить к неадекватному поведению утилиты.
- Добавлен параметр VeryVerboseSaLog в конфигурационный файл fSetup.ini, включающий очень детализированное ведение журнала установки Setupapi.log.
- Добавлена функция получения освобождения пропатчиваемых файлов у системы SFC, если патчинг производится на живой системе в каталоге System32 обходным путем без перезагрузки, через комбинацию ключей --s %SystemRoot%\System32 --d %SystemRoot%\System32.
- Исправлено имя параметра настройки PatchSfcOs
Версия 9.05.27- Добавлен патч отключения запуска OOBE во время первой перезагрузки после графического этапа установки ОС.
- Полностью переработаны все ключи командной строки и настройки программы.
Читайте документацию в шапке темы.
Версия 9.04.24- Добавлена полная поддержка Windows 2003 Server.
- В патчере поддержка для всех библиотек для WinXP версий ниже 5512 удалена.
С этого момента будут поддерживаться только версии библиотек WinXP из SP3 (5512) и более новые (из хотфиксов). SP2 уже ИМХО анахронизм, и поддерживать его смысла не вижу.
Аналогичным образом для Win2003 будет поддержка только библиотек начиная из SP2 версий 3959 и выше.
Версия 9.03.10- Поддержка для утилиты UserMake для реализации автологона пользователя созданого на Т-40.
Версия 9.02.25- В предыдущей версии была ошибка при обработке файлов в System32, из-за которой SFC после патча восстанавливала патченые файлы. Вкралась ошибка, когда делал функционал ключей --s: и --d:.
Версия 9.02.18- Добавлены новые ключи --s и --d для возможности указания патчеру папки источника оригинальных файлов и папки назначения для пропатченых файлов.
- Изменен патч «Отключение сброса политики цифровой подписи из 0 (Ignore) в 1 (Warn)», поскольку предыдущий вариант мог вызывать некорректную установку некоторых драйверов, имена файлов которых присутствуют в списке защиты SFC, и не были выведены из него на этапе сборки дистрибутива.
- Добавлен ключ командной строки --pss.
Версия 9.02.02- Исправлен ошибочный запуск файлового патчера во время конфигурирования аддона (ключ -makeconfig) во время интеграции его в дистрибутив.
Версия 9.01.29- Параметр DrvFolder в файле fSetup.ini теперь принимает абсолютные, относительные пути, а также пути с переменными окружения, например: DrvFolder=%SystemDrive%\D
- Параметр DrvOnDistrib в файле fSetup.ini больше не используется программой.
Чтоб указать, что папка с драйверами расположена на дистрибутивном диске, достаточно просто в fSetup.ini задать к ней путь с помощью переменной окружения, например: DrvFolder=%SrcDosDrive%\OEMDRV
Версия 9.01.21- Разделены патчи Setupapi.dll и для параметра PatchSetupAPI теперь допустимы 3 значения:
0 - без патчей;
1 - только патч всплытия «Мастера нового оборудования»;
2 – применение всех патчей. - Добавлен новый ключ командной строки --psa-all, который означает применение всех патчей для Setupapi.dll, в то время как ключ --psa применяет только патч всплытия «Мастера нового оборудования»
Версия 9.01.18- Исправлена ошибка в механизме запускающем скрипт PstSetup.cmd.
- Добавлен новый патч для Setupapi.dll, решающий проблемы, описанные в этой теме: http://forum.oszone.net/thread-128881.html.
Версия 8.12.22- Изменен способ отключения защиты SFC. Теперь при DisableSFC=0 защита включается уже при первой загрузке после окончания установки.
Версия 8.12.15- Добавлен патч библиотеки syssetup.dll версии 5.1.2600.2659
Версия 8.12.11- Добавлено создание переменной окружения SrcDosDrive, содержащей только букву дистрибутивного диска с двоеточием, в отличии от SrcDosPath, которая содержит полный путь к i386 в случае с мультидистрибутивным диском.
- DrvOnDistrib теперь может принимать три значения: 0,1,2.
- Новые ключи командной строки --psfc --pth --psa.
Запущенная с ними программа превращается в патчер системных библиотек sfc_os.dll Uxtheme.dll Setupapi.dll. - Для ключа -makeconfig добавлен дополнительный вместе с ним используемый ключ -clean который заставляет пересобрать кроме файла KillWFP.lst еще и файлы Txtsetup и Dosnet.
Версия 8.12.02- Реализовано преобразование пути из параметра sourcepath файла $winnt$.inf и установка глобальной переменной окружения SrcDosPath, содержащей путь к дистрибутиву устанавливаемой ОС, для последующего использования программами и скриптами. Поддерживаются пути к дистрибутиву на CD-диске, RIS-сервере, жестком диске.
- Добавлен параметр DrvOnDistrib в файле fSetup.ini, указывающий на то, что папка с драйверами находится не в корне системного диска, а в корне дистрибутива.
- Добавлено ведение журнала. Журнал пишется в %WINDIR%\fSetup.log
- Исправлена ошибка переполнения буфера, приводившая к падению программы при сканировании очень большого количества папок с драйверами для составления списка путей к ним.
Версия 8.11.26- Добавлены ключи командной строки -makeaddon (автогенерация аддона) и -makeconfig (автонастройка аддона);
- Добавлен патчер дискового файла Setupapi.dll;
- Переработаны механизмы патчеров;
- PstSetup.cmd теперь выполняется только если оригинальный установщик ОС отработал успешно.
- Множество правок, оптимизаций и багофиксов.
Программа Setup.exe в прикрепленном файле представляет собой гибрид швейцарского ножа и матрешки
:
- Во-первых, это полноценный Fake-Setup;
- Во-вторых, это автогенератор и автоконфигуратор аддона для интеграции себя же в дистрибутив.
- В-третьих, это патчер системных библиотек на работающей ОС.
Для генерации аддона выполните команду Setup.exe -makeaddon