4.0· Personalizando la estética de la instalación de Windows(http://img560.imageshack.us/img560/7784/e4ju.png)
Ahora que ya sabemos automatizar la instalación de Windows... hagámosla bonita, ¿no?, cambiemosle todas las "florituras" y colores >:D.
En esta parte del tutorial aprenderemos a personalizar las imágenes que usa el instalador de Windows, y de esta manera lo pondré punto y final a la personalización de la instalación, ya llegaremos a lo verdaderamente interesante en los siguientes volumenes del tutorial ;).
Nota: Se aconseja un cierto nivel de conocimientos sobre la edición de imágenes
BMP (Bitmap) y sus transparencias, y opcionalmente conocimientos de archivos
ICO (Iconos).
Nota: Vuelvo a recordar que este tutorial está basado y orientado en una imagen ISO de Windows 8.1 x64.
· ¿Que herramientas necesitaremos? Un editor de recursos, recomiendo la aplicación
Restorator 2009, puero pueden usar
Resource Hacker,
Anolis Resourcer, o su herramienta favorita.
Un editor de imágenes, recomiendo la aplicación
Photoshop, pero pueden usar
Microsoft Paint , cualquier otro e incluso pueden descargar imágenes (válidas) de Internet.
Opcional: Un grabador de imágenes ISO para testear nuestra instalación personalizada, recomiendo la herramienta
OSCDIMG que se encuentra ubicada en
%WinKit%\oscdimg\oscdimg.exe Opcional: Una máquina virtual para testear la ISO, recomiendo la aplicación
VirtualBox.
4.1· Ubicación de los recursos de imágenes de la instalaciónDentro del DVD de Windows hay 3 librerías que contienen imágenes Bitmap e Iconos:
·
...\Sources\spwizimg.dll·
...\Sources\w32uiimg.dll·
...\Sources\arunimg.dllY el archivo Bitmap ubicado en
...\Sources\Background.bmpAparte, los mismos archivos se encuentran dentro de la imagen
Boot.wim en las mismas ubicaciones, y esos archivos dentro de la imagen son las que debemos modificar.
Dentro de la imagen
Boot.wim además hay otro archivo Bitmap ubicado en
...\Windows\System32\Setup.bmpNota: Si queremos hacer una modificación muy básica entonces solo debemos tener en cuenta la librería
spwizimg.dllEste es el contenido de las 3 librerías:
Nota: Los números son el nombre del recurso.
· spwizimg.dllBitmaps:
(http://img560.imageshack.us/img560/921/fcau.png)
· w32uiimg.dllBitmaps:
(http://img819.imageshack.us/img819/3563/h6zq.png)
Iconos:
(http://img811.imageshack.us/img811/3500/tjzb.png)
· arunimg.dllBitmaps:
(http://img850.imageshack.us/img850/9671/wuj2.png)
Iconos:
(http://img835.imageshack.us/img835/2276/r00r.png)
4.2· Identificando los recursos de imagen que utiliza el instaladorEstos son los nombres de algunos recursos
Bitmap que se usan en la instalación de Windows, en el punto
3.1 del tutorial pueden enlazar el nombre del recurso para saber en que librería se encuentra.
(http://img842.imageshack.us/img842/5771/vqms.png)
(http://img607.imageshack.us/img607/2746/9qma.png)
(http://img819.imageshack.us/img819/5355/drvm.png)
(http://img513.imageshack.us/img513/9762/tncj.png)
(http://img594.imageshack.us/img594/1827/loao.png)
(http://img838.imageshack.us/img838/3796/32z4.png)
(http://img607.imageshack.us/img607/9580/qaks.png)
(http://img62.imageshack.us/img62/5043/qmwg.png)
4.3· Modificando los recursos de imágenesPueden modificar los recursos de las librerías que se encuentran en el DVD de Windows, pero les recuerdo que los recursos que nos interesan modificar son los de las librerías que se encuentran dentro de la imagen Boot.wim (la cual ya expliqué como se puede montar en el punto
3.2 del tutorial), se encuentran en el índice de imagen
2.
En este punto la verdad es que no puedo ayudar mucho ni creo poder dar explicaciones útiles, es cosa tuya saber como editar una imagen y reemplazarla con un editor de recursos, si no sabes... ¿para que leiste hasta aquí?. ¡ ánimo !
4.3· Automatizar la tarea de personalización de recursos de imágenes...¿Te creiste que no iba a ayudar? >:D
Al empezar este tutorial dije que iba a proporcionar todas mis herramientas y creaciones en todos los temas, así que si te parece algo complicado la edición de recursos entonces estás de suerte!
Voy a explicar una manera muy sencilla de automatizar todo este tutorial utilizando un Script Batch y un archivo de texto, pero antes que nada quiero comentarles que en este enlace pueden descargar todo lo necesario que voy a comentar, y un ejemplo completo con imagenes y PSD's, para los que no les guste leer instrucciones largas :P
http://www.mediafire.com/download/bf17fpnjpqi30fd/WIM_Resource_Replacer.zipActualizado:
http://www.mediafire.com/download/ktzms7i09qt4n2b/wim+resource+replacer+0.2.rarEstas son las instrucciones:
Por un lado deben descargar el editor de recursos
Anolis Resourcer, ¿porque?, porque es con el que yo manejo de manera commandline :P
Lo pueden descargar aquí: http://anolis.codeplex.com/releases/view/32286
Por otro lado deben conocer las ubicaciones de las librerías que quieren modificar y/o archivos que quieren reemplazar, en el caso de las librerías deben conocer también los nombres de los recursos que quieren modificar (los tienen en el punto 4.1 del tutorial), y obviamente también deben tener las imagenes modificadas.
Conociendo y teniendo los archivos necesarios que acabo de mencionar, deben crear un archivo de texto delimitado por puntos y comas, estos archivos los parseará/procesará el script que luego les mostraré.
La sintaxis que deben usar para delimitar los recursos en el archivo de texto, para reemplazar archivos es:
Ruta relativa del archivo que va a ser reemplazado;Ruta relativao absoluta del archivo que se copiará
La sintaxis que deben usar para delimitar los recursos en el archivo de texto, para librerías de recursos de imágenes es:
Ruta relativa del recurso a modificar;Nombre del recurso;Ruta del recurso modificado
Nota: ¡ No se debe escribir la ruta absoluta del directorio montado !
Lean esta ayuda que escribí para entender la sintaxis del archivo de texto delimitado:
CitarResourceList Help - By Elektro
##############################
========================
To add or replace files:
========================
Syntax: OutFile;InFile
· Outfile:
Indicates the file that will be Created/Replaced.
Should be written as a relative mount filepath.
· InFile:
Indicates the file that will be copied to the OutFile.
Should be written as an absolute filepath.
Examples:
---------
Sources\Background.bmp;.\Resources\Background.bmp
Sources\Background.bmp;C:\Resources\Background.bmp
=====================
To replace resources:
=====================
Syntax: ResourceFile;ResourceName;InResource
· ResourceFile:
Indicates the dll file that will be opened to replace resources inside.
Should be written as a relative mount filepath.
· ResourceName:
Indicates the resource name that will be replaced inside the resource file.
· InResource:
Indicates the resource to copy inside the resource file.
Should be written as an absolute filepath.
Examples:
---------
Sources\spwizimg.dll;517;.\Resources\517.bmp
Sources\spwizimg.dll;517;C:\Resources\517.bmp
Esto es un ejemplo de un archivo delimitado escrito de forma correcta:
Resources.txtSources\Background.bmp;.\Resources\Background.bmp
Windows\System32\Setup.bmp;.\Resources\Setup.bmp
Sources\spwizimg.dll;405;.\Resources\405.bmp
Sources\spwizimg.dll;407;.\Resources\407.bmp
Sources\spwizimg.dll;408;.\Resources\408.bmp
Sources\spwizimg.dll;516;.\Resources\516.bmp
Sources\spwizimg.dll;517;.\Resources\517.bmp
Sources\w32uiimg.dll;207;.\Resources\207.bmp
A continuación, lo único que tienen que hacer es ejecutar este Script, el Script se encargará de montar la imagen, reemplazar archivos (si especificaron alguno) y/o reemplazar recursos de imagenes si especificaron alguno, después desmontará la imagen y listo.
Antes de poder automatizar esta tarea usando mi Script primero deben configurar las rutas de los valores
WindowsImage,
MountDir,
Anolis,
Dism, y
ResourceList que se encuentran documentados en la cabecera del archivo.
WIM Resource Replacer.bat@Echo Off & Title WIM Resource Replacer - By Elektro
Mode Con Cols=150 Lines=50
REM ======
REM About:
REM ======
:: Header Info.
Echo+
Echo -----------------------------------------------------------------------------------------
Echo This script mounts a Windows Image ^(WIM^) to replace image resources of a resource file.
Echo -----------------------------------------------------------------------------------------
Echo+
REM ====================
REM User defined values:
REM ====================
:: User defined values.
REM This value indicates whether the Windows Image should be mounted.
REM True = 'DISM' will try to mount the 'WIM' image.
REM False = 'DISM' will not try to mount the WIM image.
REM Set this value to 'FALSE' if the 'WIM' image is already mounted in the specified mount directory,
REM Otherwise, keep it as 'TRUE'.
Set "MountImage=True"
REM This value indicates whether the Windows Image should be unmounted at the end.
REM True = 'DISM' will try to unmount the 'WIM' image.
REM False = 'DISM' will not try to unmount the WIM image.
REM Set this value to 'FALSE' if you want to keep the image mounted to make other changes,
REM Otherwise, keep it as 'TRUE'.
Set "UnmountImage=True"
REM This value indicates the 'WIM' image to be mounted.
Set "WindowsImage=%UserProfile%\Desktop\win 8 .1\win\sources\Boot.wim"
REM This value indicates the Image Index of the 'WIM' image.
Set "ImageIndex=2"
REM This value indicates the directory where to mount the 'WIM' image.
Set "MountDir=%HomeDrive%\WinBootMount"
REM This value indicates the location of Anolis Resourcer 'Anolis.exe' file.
Set "Anolis=%CD%\Tools\Anolis.exe"
REM This value indicates the textfile that contains the Recource files to replace.
Set "ResourceList=%CD%\Resources.txt"
REM This value indicates the location of a custom 'DISM.exe' file if needed.
REM Default location:
REM "%SystemRoot%\System32\Dism.exe"
Set "Dism=%CD%\Tools\Dism\Dism.exe"
REM This value indicates the location of the logfile that will record 'DISM' exceptions.
Set "DismLogfile=%UserProfile%\Desktop\Dism.log"
REM This value indicates the logging-level of the 'DISM' process.
REM 1 = Errors only
REM 2 = Errors and warnings
REM 3 = Errors, warnings, and informational
REM 4 = All of the information listed previously, plus debug output
Set /A "DismLogLevel=2"
REM =====
REM Main:
REM =====
Call :CheckErrors
Call :CreateLog
Call :CreateMountDir
Call :Mount
CLS
Call :ParseResources
Call :Unmount
Echo+
Echo [i] Done!
Pause&Exit
REM ========
REM Methods:
REM ========
:CreateLog
:: Create the 'DISM' logfile with 'ANSI' encoding,
:: this is necessary to record a non-default 'DISM' loglevel such as '1' or '2'.
Echo+ >"%DismLogfile%"
:: Record initial info.
(
Echo+
Echo Automated DISM processing:
Echo ==========================
Echo+
Echo WIM Resource Replacer
Echo+
Echo [i] Date: %DATE% - %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
Echo+
Echo [i] Mount Image?...: %MountImage%
Echo [i] Unmount Image?.: %UnmountImage%
Echo+
Echo [i] Windows Image..: %WindowsImage%
Echo [i] Image Index....: %ImageIndex%
Echo [i] Mount Directory: %MountDir%
Echo+
Echo [i] Dism Path......: %Dism%
Echo [i] Dism Logfile...: %DismLogfile%
Echo [i] Dism Log Level.: %DismLogLevel%
Echo+
Echo [i] Anolis Path....: %Anolis%
Echo+
Echo ===========================
)>"%DismLogfile%"
:: Display initial info.
Type "%DismLogfile%"
Goto:EOF
:CreateMountDir
:: Create the mount directory.
(
If Not Exist "%MountDir%" If /I "%MountImage%" EQU "True" (
MkDir "%MountDir%" 2>NUL
)
) || (
Echo+
Echo [X] Error trying to create the directory "%MountDir%" to mount the Windows Image.
Echo [i] Ensure that you have Admin rights to create the directory.
Echo [i] Ensure that the directory name does not contains illegal characters.
Echo+
Pause&Exit
)
Goto:EOF
:Mount
:: Mounts the Windows Image into the mount directory.
If /I "%MountImage%" EQU "True" (
"%Dism%" /Mount-Image /ImageFile:"%WindowsImage%" /Index:"%ImageIndex%" /MountDir:"%MountDir%" /English /LogPath:"%DismLogfile%" /LogLevel:"%DismLogLevel%" || (
Echo+
Echo [X] Error mounting the Image Index "%ImageIndex%" in "%MountDir%"
Echo [i] Ensure that the Image Index exist.
Echo [i] Ensure that you have Admin rights to write inside the directory.
Echo [i] Ensure that the directory is not already mounted.
Echo [i] Ensure that the directory is fully empty.
Echo+
REM Try to unmount the failed image and discard changes.
If /I "%UnmountImage%" EQU "True" (
"%Dism%" /Unmount-WIM /Discard /MountDir:"%MountDir%"
)
Exit
)
)
Goto:EOF
:ParseResources
For /F "UseBackQ Tokens=1,2,* Delims=;" %%a In ("Resources.txt") Do (
If /I "%%~xa" EQU ".dll" (Call :ReplaceResource "%MountDir%\%%~a" "%%~b" "%%~c")
If /I "%%~xa" NEQ ".dll" (Call :CopyFile "%MountDir%\%%~a" "%%~b")
)
Goto:EOF
:Unmount
:: Unmount the Windows Image commiting changes.
If /I "%UnmountImage%" EQU "True" (
"%Dism%" /Unmount-WIM /Commit /MountDir:"%MountDir%" /English /LogPath:"%DismLogfile%" /LogLevel:"%DismLogLevel%"
)
Goto:EOF
:TakeOwn
Takeown.exe /F "%~f1" 1>NUL
ICacls.exe "%~f1" /Grant "%UserName%":"F" 1>NUL
Goto:EOF
:CopyFile
Echo [+] Copying "%~2" to "%~1"
If Not Exist "%~2" (
Echo [X] Can't locate the input file "%~2". | MORE
Goto:EOF
)
Call :TakeOwn "%~f1"
Copy /Y "%~f2" "%~f1" 1>NUL
Goto:EOF
:ReplaceResource
Echo [+] Replacing Resource Name "%~2" with "%~3" in resource file "%~f1"
If Not Exist "%~1" (
Echo [X] Can't locate the resource file to open "%~1". | MORE
Goto:EOF
)
If Not Exist "%~3" (
Echo [X] Can't locate the resource to copy "%~3". | MORE
Goto:EOF
)
Call :TakeOwn "%~1"
If /I "%~x3" EQU ".bmp" (
Start /W "Anolis" "%Anolis%" -op:upd -src:"%~f1" -type:Bitmap -name:"%~2" -lang:1033 -file:"%~f3")
)
If /I "%~x3" EQU ".ico" (
Start /W "Anolis" "%Anolis%" -op:upd -src:"%~f1" -type:Icon -name:"%~2" -lang:1033 -file:"%~f3")
)
Goto:EOF
REM ====================
REM File Error Controls:
REM ====================
:CheckErrors
:: WIM File Error-Check.
If /I "MountImage" EQU "True" If Not Exist "%WindowsImage%" (
Echo [X] Windows Image not found in: "%WindowsImage%" | MORE
Pause&Exit
)
:: ResourceList File Error-Check.
If Not Exist "%ResourceList%" (
Echo [X] Resource-List file not found in: "%ResourceList%" | MORE
Pause&Exit
)
:: DISM File Error-Check.
If Not Exist "%DISM%" (
Echo [X] DISM process not found in: "%DISM%" | MORE
Pause&Exit
)
:: Anolis Resourcer File Error-Check.
If Not Exist "%Anolis%" (
Echo [X] Anolis process not found in: "%Anolis%" | MORE
Pause&Exit
)
Goto:EOF
4.4· Obteniendo resultadosUna vez hayan montado la imagen
Boot.wim para modificar los recursos de imágenes que queramos, deben desmontar la imagen WIM y guardar los cambios (lease el punto
3.3 del tutorial si no sabes hacerlo).
Nota: Si usaste mi Script para reemplazar recursos entonces no tienes porque desmontar nada.
Ya solo nos quedará generar la ISO y testearla en un DVD, ¡¡ aquí os muestro el resultado visual del ejemplo que hice para este tutorial !! :
(http://img837.imageshack.us/img837/2859/h35j.png)
(http://img827.imageshack.us/img827/9511/jd55.png)
(http://img845.imageshack.us/img845/6140/oaeh.png)
(http://img833.imageshack.us/img833/4888/cwsq.png)
(http://img607.imageshack.us/img607/7853/zaic.png)
(http://img853.imageshack.us/img853/3481/boe7.png)
¡ Les invito a postear sus modificaciones en este tema !
Definitivamente es mejor usar
Anolis Resourcer ofrece una interfaz simple pero muy util y facil de usar.
aqui dejo lo que me mostro para la edición ya lo demás es simplemente reemplazar archivos!!!!
spwizimg.dll
(http://thumbs.subefotos.com/ff3d2290ec112d6aac04609f4b57affeo.jpg) (http://subefotos.com/ver/?ff3d2290ec112d6aac04609f4b57affeo.png)
w32uiimg.dll
(http://thumbs.subefotos.com/dfb9b5ad8c28f8c6135e48e31056f875o.jpg) (http://subefotos.com/ver/?dfb9b5ad8c28f8c6135e48e31056f875o.png)
arunimg.dll
(http://thumbs.subefotos.com/a9321b0f226979259cf3cd39cad53b89o.jpg) (http://subefotos.com/ver/?a9321b0f226979259cf3cd39cad53b89o.png)
solo es tener las imagenes listas para reemplazar y comenzar a trabajar, voy a trabajar en las dos versiones que quiero:
1) Batman Arkham City2) Bible BlackYeah maese elektro perdona la demora es que no habia tenido tiempo de trabajar, pero fue muy facil, era solo cuestión de trabajar un poco, en esta semana me voy a poner a conseguir las imagenes y pronto mostrare mis skins yeah!!!! ;-) ;-) ;-) ;-)
gracias por el tuto!!!
Up al tema, yo se que soy el unico por aquí, pero dejo unos arreglos que hice en las interfaces, ya tiene una pinta mucho mejor.
Voy a trabajar en el skin de batman y cuando tenga todo listo (actualizaciones, programas, drivers, etc.) trabajare con el modding de bible black ohhh yeah.
También debo trabajar en mejores diseños, para que queden más acorde al estilo de cada modding.
Aquí unos cuantos resultados hechos con un poco de esfuerzo y mucha paciencia:
(http://fotos.subefotos.com/9c09062c94d635c6ddedcb2b7eb7e1f4o.png)
(http://fotos.subefotos.com/8f1ab652a69ea70f1276a8b67b53ac05o.png)
Se nota el cambio??? ;-) ;-) ;-)
Hola Estoy Haciendo Un Proyecto,.. Se Trata de Crear Un Windows Desantendido Y Lo Unico Que Me Hace Falta Es Cambiar El Nombre de La edicion de Windows, por ejemplo; "Windows 7 Ultimate, A Windows 7 Mi Edition"