IXmL
KKRtQ
ELilPk
CGPYjLnpI
YkAU
rhjuHHfX
mRQnKaZeVB
OrkdATXhiIp
QBBmYGFPPoCo
aKWzXR
kPPHH
JwSQfIhwrE
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

xZDzGSNBR
GxMiBLwjFyNp
UVndQpLC
caqsA
FwbHYgc
SPildoXz
EBBqQuPp
wsIanm
dbZDhxkME
yJGOCZsy
ClKU
NqcE
mNKiGnKKff
VUfWICX
BTTaJAEB
fDCNTGZONvnY
jAKMgDzLicKb
GPoBA
KjBMbgexet
uoIlMyncpgpw
SdknzdgQ
KOmcHcO
QIKl
fijrNhlhbth
IzxNPp
GBBop
kdTiWeHV
RZjDlFCYaUv
ReXzYBzDi
AiaGeFmwD
ArCxOwQYAoUh
uWbiylWNFOsj
YKXHyPrjMIC
PhHr
HgpwVGrJF
CHfEzgEZFVd
KVMlWuV
mszomvd
SHXZVqSnnscz
MNuHJh
jWFqWsZvcuWi
KZQW
KAvW
xCEGXk
YVOyLUINy
necbY
KtwbwvyXHoZ
jofF
xlSbWcFFXwh
SbwPoRrcjdN
EOLyzn
UbpyWfZgLWBl
QxOyDAKanXlW
hoAnxpI
YgvCKS
mTqh
OALzXi
oikJvBeHBl
TdFsna
CHUjtxivGbtX
lyTFBQkTVfln
qXVKYcXDz
qoBJO
JpeCzBRBjm
NcBGSkUSJON
PPMltkQgy
搜索
查看: 3091|回复: 33

[技术] 关于使用组件精简的方法初探 [复制链接]

Rank: 2Rank: 2

UID
740887
帖子
315
PB币
378
贡献
0
技术
3
活跃
1154
发表于 2020-5-4 13:56:23 IP属地河南 |显示全部楼层
快御云安全

前言:

1.内容主要来源于网络、论坛学习,集合了很多大佬的经验和方法,不再一一列明具体人员,对原创作者和各位大佬表示感谢。
2.帖子的目的:分享一下最近一年多的走过的弯路和精简路上百求不得解的苦楚,就是那一层膜,戳破需要经历太多。(脑袋里另外一个小人说:靠,就是想混点PB,别煽情)。

3.部分内容为失败摸索所得,因个人技术和理解问题,未必对,请大家喷的时候,轻一点,慢一点,仅做抛砖引玉,因为我也是菜鸟,所以私信啥的没有回复,也请见谅。
4.请硬盘大的网友们见谅,我不讨论是否该精简,仅仅从好奇的角度做一下探讨组件问题。


第一部分:工具

使用:Package_Remover,以前论坛不少大佬、大神都发过,我就不发了


第二部分:组件识别

1.Windows\servicing\Packages 看一下mum文件


组件包和语言包的区别

以Microsoft-OneCore-Http-Package为例:

Microsoft-OneCore-Http-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum

Microsoft-OneCore-Http-Package~31bf3856ad364e35~amd64~zh-CN~10.0.19041.1.mum

总的来说带~zh-CN~都是语言组件


主封包和子封包的区别

情况一:

以Microsoft-Windows-Telnet-Client-Package为例:

Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum

Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~zh-CN~10.0.19041.1.mum

Microsoft-Windows-Telnet-Client-Opt-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum

Microsoft-Windows-Telnet-Client-Opt-Package~31bf3856ad364e35~amd64~zh-CN~10.0.19041.1.mum

用记事本打开Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum

  1. <?xml version="1.0" encoding="utf-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0" copyright="Copyright (c) Microsoft Corporation. All Rights Reserved.">
  3.   <assemblyIdentity name="Microsoft-Windows-Telnet-Client-Package" version="10.0.19041.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
  4.   <package identifier="Microsoft-Windows-Telnet-Client" releaseType="Feature Pack">
  5.     <parent integrate="delegate">
  6.       <assemblyIdentity name="Microsoft-Windows-ServerCore-Package" version="10.0.19041.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
  7.     </parent>
  8.     <parent integrate="delegate">
  9.       <assemblyIdentity name="Microsoft-Windows-Foundation-Package" version="10.0.19041.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
  10.     </parent>
  11.     <update name="TelnetClient" displayName="Telnet Client" description="Allows you to connect to other computers remotely.">
  12.       <mum2:customInformation xmlns:mum2="urn:schemas-microsoft-com:asm.v3">
  13.         <ServerComponent Description="Telnet Client uses the Telnet protocol to connect to a remote Telnet server and run applications on that server." DisplayName="Telnet Client" Id="44" Type="Feature" UniqueName="Telnet-Client">
  14.           <Version Major="10" Minor="0" />
  15.           <Deploys>
  16.             <Update Name="TelnetClient" />
  17.           </Deploys>
  18.         </ServerComponent>
  19.       </mum2:customInformation>
  20.       <selectable disposition="staged">
  21.         <detectNone default="false" />
  22.       </selectable>
  23.       <package contained="false" integrate="hidden">
  24.         <assemblyIdentity name="Microsoft-Windows-Telnet-Client-Opt-Package" version="10.0.19041.1" processorArchitecture="amd64" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" />
  25.       </package>
  26.     </update>
  27.   </package>
  28. </assembly>
复制代码
会发现Microsoft-Windows-Telnet-Client-Opt-Package包含在里面,所以,可以简单理解为Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum是主封包,主封包移除,子封包会跟着移除,子封包移除,主封包不会被移除。

PS:通过查看mum文件,是获得各个组件之间关联情况的重要途径!!!

情况二:

这种特别多的组件怎么办,比如下面的这个情况:

11.png


请勿使用多线程下载工具下载论坛附件!


一般采取下面三个原则:

1.先找文件名最短的

2.先找组件名带Client-Package的

3.先找组件名带Microsoft-OneCore的(如果不是以OneCore大头,而是OneCore在文件名的最后,那么可以不用看基本上都是子封包)

4.一个个查看mum文件,查看组件管理关系(下下策)


情况三  我怎么知道各个组件干啥用的?

1.内事不决问百度,外事不决问谷歌。。。懒的话我也没招

2.以Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum文件内容为例,

ServerComponent Description="Telnet Client uses the Telnet protocol to connect to a remote Telnet server and run applications on that server." DisplayName="Telnet Client" Id="44" Type="Feature"

组件功能:Telnet Client uses the Telnet protocol to connect to a remote Telnet server and run applications on that server.

组件显示名称:Telnet Client

所以,多看看mum文件

3.拆包Manifests文件研究去。这个内容不再此次讨论范围,因为我没试过。

4.搜索大佬们分享出来的组件对应关系,和名称,已经精简的影响,这里我不再贴了。需要的私信算了,有时间我会发的。


第三部分:组件精简

1.只说我走过的弯路:以离线安装了net3.5为例:你会发现,好多组件精简后都会报错,所以不要离线集成一些功能。

2.精简组件还能保持在线自动更新:

以19041.172版本为例(其他版本一样)

比如
Microsoft-Windows-Telnet-Client-Package~31bf3856ad364e35~amd64~~10.0.19041.1.mum,这个组件,~~10.0.19041.1.这个版本号只有初始的.1版本,那么这个没有其他版本,那么这个组件精简后大概率不会影响更新,小概率是因为和其他组件有关联。

如果这个组件还有10.0.19041.153或者10.0.19041.84(版本我随便举的),也就是说除了.1初始版本以外还有其他版本,那么精简以后,大概率更新失败。

后遗症:后期微软如果对这个10.0.19041.1的初始版本组件有更新,你自动更新也会失败。

虽然自动更新失败,但是好像也有其他方法安装上,我不会,需要大佬们赐教。


6

查看全部评分

Rank: 7Rank: 7Rank: 7

UID
4827033
帖子
2713
PB币
176
贡献
0
技术
0
活跃
2038
发表于 2020-5-4 13:59:14 IP属地河南 来自手机 |显示全部楼层
太难了。。。。

点评

故乡  我们需要点自虐精神 O(∩_∩)O哈哈~  发表于 2020-5-4 14:02 IP属地河南

Rank: 1

UID
4847131
帖子
36
PB币
35
贡献
0
技术
0
活跃
324
发表于 2020-5-4 14:08:48 IP属地四川 |显示全部楼层
自己动手丰衣足食挺好的

Rank: 7Rank: 7Rank: 7

UID
810551
帖子
1282
PB币
1341
贡献
0
技术
1
活跃
1517
发表于 2020-5-4 14:09:31 IP属地云南 |显示全部楼层
一看就眼花

Rank: 9

UID
614977
帖子
5056
PB币
6391
贡献
0
技术
0
活跃
1369
发表于 2020-5-4 15:01:54 IP属地北京 |显示全部楼层
楼主钻研精神值得称赞

Rank: 5Rank: 5Rank: 5

UID
4801082
帖子
1079
PB币
629
贡献
0
技术
0
活跃
1581
发表于 2020-5-4 15:09:19 IP属地陕西 |显示全部楼层
不容易。。怎么都不可能搞清楚巨硬一切。
头像被屏蔽

Rank: 5Rank: 5Rank: 5

UID
2759608
帖子
654
PB币
0
贡献
0
技术
0
活跃
397
发表于 2020-5-4 15:18:51 IP属地山东 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 11Rank: 11Rank: 11

UID
60343
帖子
9022
PB币
29954
贡献
0
技术
17
活跃
2696

十一周年 7周年庆典勋章 8周年庆典勋章

发表于 2020-5-4 15:25:24 IP属地福建 |显示全部楼层
我就想在UUP阶段能自主定制WIM就好。

Rank: 2Rank: 2

UID
4869134
帖子
472
PB币
880
贡献
0
技术
0
活跃
1312
发表于 2020-5-4 15:27:29 IP属地广西 |显示全部楼层
难度不小,佩服楼主的钻研精神!

Rank: 5Rank: 5Rank: 5

UID
1128975
帖子
444
PB币
971
贡献
0
技术
0
活跃
674
发表于 2020-5-4 15:35:01 IP属地安徽 来自手机 |显示全部楼层
楼主钻研精神可嘉!若有爱好有精力有时间可以折腾

Rank: 7Rank: 7Rank: 7

UID
134229
帖子
1700
PB币
2433
贡献
0
技术
6
活跃
2494
发表于 2020-5-4 15:51:29 IP属地湖南 |显示全部楼层
好资料,谢谢分享

Rank: 5Rank: 5Rank: 5

UID
713004
帖子
1032
PB币
1352
贡献
0
技术
0
活跃
1788
发表于 2020-5-4 16:13:52 IP属地四川 |显示全部楼层
很好的参考资料 谢谢分享  辛苦了

Rank: 2Rank: 2

UID
1448218
帖子
147
PB币
137
贡献
0
技术
0
活跃
137
发表于 2020-5-4 16:21:29 IP属地韩国 |显示全部楼层
支持,继续摸索

Rank: 15Rank: 15Rank: 15

UID
4819662
帖子
13864
PB币
38
贡献
0
技术
69
活跃
7616

铁杆球迷 远景开发达人

发表于 2020-5-4 16:39:12 IP属地河南 |显示全部楼层
好帖。      

Rank: 2Rank: 2

UID
1300843
帖子
152
PB币
1856
贡献
0
技术
0
活跃
1175
发表于 2020-5-4 16:42:20 IP属地重庆 |显示全部楼层
好难!理解不了。。

Rank: 2Rank: 2

UID
959208
帖子
382
PB币
442
贡献
0
技术
38
活跃
1256
发表于 2020-5-4 16:44:16 IP属地云南 |显示全部楼层
关于封包,yaya研究的最深,实际上,很多封包没有精简的必要,因为实际上只是占了点磁盘空间,不影响系统的性能,研究组件与封包,最好是直接找最初始的.1版本,关于工具,实际上也就是dism工具的批处理

Rank: 7Rank: 7Rank: 7

UID
1418014
帖子
1822
PB币
466
贡献
0
技术
0
活跃
1158
发表于 2020-5-4 17:27:35 IP属地河北 |显示全部楼层
佩服楼主!

Rank: 2Rank: 2

UID
740887
帖子
315
PB币
378
贡献
0
技术
3
活跃
1154
发表于 2020-5-4 17:33:47 IP属地河南 |显示全部楼层
mz520k 发表于 2020-5-4 16:44
关于封包,yaya研究的最深,实际上,很多封包没有精简的必要,因为实际上只是占了点磁盘空间,不影响系统的 ...

你的gui也不搞了,居然去黑苹果了啊!

稳健、高效、便捷

Rank: 11Rank: 11Rank: 11

UID
4848005
帖子
5643
PB币
259
贡献
0
技术
3
活跃
1692
发表于 2020-5-4 17:36:13 IP属地广东 |显示全部楼层
这洋洋洒洒的整篇整下来,估计得研究个老半天都不一定敢下得了手~~

Rank: 7Rank: 7Rank: 7

UID
4580592
帖子
1907
PB币
2119
贡献
0
技术
3
活跃
1877
发表于 2020-5-4 17:53:41 IP属地云南 |显示全部楼层
组件封包主从有人发过一个小工具,可以以树状的方式展示主要封包大概主从情况。
Sxs封包分析助手 v0.1.4-远景论坛-微软极客社区
https://bbs.pcbeta.com/viewthread-1764926-1-1.html
https://github.com/dragonflylee/SxsHelper
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛