Windows XP SP1源代码编译方法(笔记)

NT版本   : 5.1
编译号   :2600
编译时间 : 2001年8月17日11点48分

第一步 : 搭建编译环境
  使用VMWare搭建Windows XP的编译环境,注意系统要使用英文版。

第二步 : 设置编译参数

1.将原代码解压到虚拟机的XP系统中的C盘C:\NT目录或者D盘D:\NT目录下。

2.取消所有源代码的只读属性

3.打补丁:解压winxpsp1_perpatched_v1.rar覆盖到原代码,winxpsp1_perpatched_v1.rar是我根据win2003_prepatched_v10a补丁修改的Windows XP XP SP1补丁,网上最新的win2003_prepatched_v10a是给Windows Server 2003修改的补丁,在Windows XP SP1中实测不可用。

winxpsp1_perpatched_v1.rar https://download.csdn.net/download/MYMOTOE6/88722939

4.将NT\tools\razzle.cmd创建快捷方式到桌面,然后点属性编辑razzle.cmd,
    target   :%windir%\system32\cmd.exe /k C:\NT\tools\razzle.cmd free officialbuild 
    Start in : C:\NT

第三步 : 开始编译

1.点击运行razzle.cmd,中间会弹出记事本,点击关闭即可。运行完成后显示当前在管理员权限表示成功。

2.输入build /cZP 或者 perl tools\timebuild.pl -NOCLEANBUILD -NOSYNC -NOSCORCH开始编译

  打开build.log和build.err文件可以查看错误和日志。

  编译完成后的二进制输出文件在 : C:\binaries.x86fre 

  注:输入build /cZP 编译速度要快,timebuild.pl 经过漫长的等待后将编译出所有的发行版本。

第四步 : 制作ISO

  将C:\binaries.x86fre 中的内容全部移动到 C:\svcpack.x86fre\usa\* 目录


 1.运行perl tools\timebuild.pl -NOCLEANBUILD -NOSYNC -NOSCORCH -RESUME 或者 tools\postbuild.cmd 将编译出所有的发行版本。

 2.运行tools\postbuild.cmd -sku:{pro} 将编译出单独的发行版本

   目录在:C:\binaries.x86fre\pro目录中

 3.运行tools\oscdimg.cmd pro 将制作出可安装的ISO

   ISO安装镜像在 :C:pro.iso 


   注 :Windows XP SP1 的tools目录的编译工具可正常编译,但是在制作ISO的时候命令1默认是编译所有的版本SP补丁包,需要调整编译配置,正常编译完成后我直接替换Windows Server 2003的编译工具到Windows XP SP1 目录NT\tools,输入2的制作命令制作出了可安装ISO。

第五步 :用虚拟机开始安装自己编译的Windows XP系统。

   将pro.iso复制到主机系统,开始体验。哈哈!


备注:
  构建编译环境命令    : NT\tools\razzle.cmd

  编译命令            : NT\tools\timebuild.pl //速度很慢

  编译命令            : build                 //速度快点

  构建Windows PE 命令 : NT\tools\makewinpeimg.cmd

  构建媒体中心版本命令: NT\tools\sp\mkmedctr.cmd

  构建平板电脑版本命令: NT\tools\sp\mktabcab.cmd

  丢失文件检查命令    : NT\tools\postbuildscripts\missingfilecheck.cmd

  填充丢失的文件命令  : NT\tools\populatefromvbl.pl 

SKU : 

  per 家庭版

  pro 专业版

  bla WEB版

  srv 服务器版

  ent 高级服务器版

  sbs 小企业版

  ads 企业版

  dtc 数据中心版

启动问题修复 :

  目前Windows XP SP1 原代码缺少的最重要的文件是: winlogon.exe和一些驱动文件


-------------------------------------------------------------
  BIOS->MBR->ntldr

  ntldr                  yes  Windows NT 引导器

  ntdetect.com     yes  Windows NT 硬件检测

  hal.dll                 yes  Windows NT 硬件隔离层

-------------------------------------------------------------
说明 :

  BIOS->MBR->ntldr

  ntldr            yes  Windows NT 引导器

  ntbootdd.sys     no   Windows NT 磁盘驱动

  pagefile.sys      yes   Windows NT 虚拟内存文件

  ntdetect.com     yes  Windows NT 硬件检测

  hal.dll          yes  Windows NT 硬件隔离层

  ntoskrnl.exe     yes  Windows NT 内核

  smss.exe         yes  Windows NT 会话管理器

  win32k.sys       yes  Windows NT 内核模式中的Win32子系统

  csrss.exe        yes  Windows NT 用户模式中的Win32子系统

  autochk.exe      yes  Windows NT 磁盘检查

  winlogon.exe     no   Windows NT 登陆
  
  msgina.dll       yes  Windows NT 登陆认证策略相关模块

  logonui.exe      yes  Windows NT 系统的登录界面

  services.exe     yes  Windows NT 服务和控制

  svchost.exe      yes  Windows NT 服务宿主进程

  wmiprvse.exe     yes  Windows NT WMI操作

  winmgmt.exe      yes  Windows NT Windows管理服务,用于系统管理员创建Windows管理脚本。

  lsass.exe        yes  Windows NT 安全管理器

  wscntfy.exe      no   Windows NT Windows安全中心通知

  wuacult.exe      yes  Windows NT 自动更新

  spoolsv.exe      yes  Windows NT 管理所有本地和网络打印队列及控制所有打印工作。

  alg.exe          yes  Windows NT 网络连接共享和网络连接防火墙。

  verclsid.exe     yes  Windows NT XP 安全更新程序

  userinit.exe     yes  Windows NT 管理不同的启动顺序

  exprorer.exe     yes  Windows NT 桌面和文件资源管理器

  boot.ini              Windows NT 启动选项配置文件

可选 :
 
  bootsect.dos     no   Windows NT OS Loader 对 DOS 与 Windows NT 进行多重开机

  bootfont.bin     no   Windows NT 中文版开机时的中文字形

  psxss.exe        no   Windows NT Posix 环境子系统

库 :

  pidgen.dll       yes  Windows NT 操作系统重要的模块,用于管理产品序列号。


由于XP SP1 是已补丁的方式编译,默认的输出目录被指定到D:\svcpack.x86fre\usa,而编译出来的二进制文件保存在D:\D:\binaries.x86fre,会造成制作ISO的时候找不到文件。经研究有几个重要的环境变量需要设置正确:

  文件名 : razzle.cmd

    set SvcPackDir=%_NTDRIVE%\svcpack
    修改为:
    set SvcPackDir=%_NTDRIVE%\binaries

  set _NTPOSTBLD=%SvcPackDir%%_ArgSepChar%%_BuildArch%%_ArgEmulDir%%_BuildType%
    
  _NTPostBld  编译出来的目录  默认 D:\svcpack.x86fre

  SvcPackDir  服务包的目录    默认:D:\svcpack

  _BuildArch  处理器的类型    默认:x86

  _BuildType  编译类型        默认:fre

  文件名 : ntenv.cmd

    if "%_NTDRIVE%" == "" set _NTDRIVE=D: 设置默认驱动D盘,在其它盘修改这里即可。


  文件名 : pbuildenv.pm
  
    #  $ENV{_NTPOSTBLD} .= "\\$ENV{LANG}"; 注释掉这行不需要添加usa目录。

  postbuild.cmd 调用 pbuild.cmd

  pbuild.cmd    根据 pbuild.dat中的顺序调用子程序。
  
  pbuildenv.pm  设置编译环境


  


  

  

  
  

  
  

  

  
  
  


 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值