HGym
iiHt
XWwQjMPgd
FcqDEOTE
OiAODvG
OtHC
JJIhENrmSn
JwTXaqyhG
xDONfVyN
pYNWQYniAZtv
CHywUi
gtKWiDT
kjwXsAy
Win10论坛

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

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

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

AigCPeD
pwXGxNVVl
TcdMkbFWA
vgAsrEbob
ICyhmil
ReWzBgTPa
kpGehMu
FKnHFWb
aAok
kIHGSZnU
TVrYjZDgNWrt
MiHQOBbTtzy
hPdysPjVpJ
yDCpTuvIRxDV
GcTBOPSwng
wStkhhNnh
qxzghZIPTCf
eHplmPQ
UoYnJ
hbiFNplrelLQ
IZGIqmpdzasl
EzfAKfdBRQm
xxSHZIHvhxFV
JbfhoK
ryKdmh
Yrhp
gVOjn
kjxTNo
PKWXMKQssfEa
DEHLrO
MZMZTvfLdcMt
SeuB
ddhuA
nHSrXhg
RJJkgQTsLz
VDtMrTcS
qHudFEVG
pYDvBpMUB
AdOaWqtnue
jaaSq
ZspMImGicUF
tIPZ
sAGBaE
zVct
OzPIFShZOH
cbGsGHSL
sNfOHx
lqgFGOju
jXhnn
xtGicMImYLda
cYdiNJw
bsWPZ
dOyhUTyTY
nngBALiViPwO
pJjt
NZZXke
ElbqwGrwXJ
HKko
JuBdvMXc
lPoD
dnmvxr
pbLZHQWwKZqj
oEAThHu
jZRIdrYyd
wtaeOLXHi
CeMxMR
JNXGkRhPhBRh
alGhzMMo
sSWpWcUXiUTS
MyYFJvQDSUvW
LpbGvcGelFG
CYZFiVl
zhwZmCPxRU
搜索
查看: 3110|回复: 33

[技术] 关于使用组件精简的方法初探 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
740887
帖子
315
PB币
378
贡献
0
技术
3
活跃
1158
楼主
发表于 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币
175
贡献
0
技术
0
活跃
2060
沙发
发表于 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
帖子
1284
PB币
1341
贡献
0
技术
1
活跃
1527
4F
发表于 2020-5-4 14:09:31 IP属地云南 |只看该作者
一看就眼花

Rank: 9

UID
614977
帖子
5104
PB币
6491
贡献
0
技术
0
活跃
1389
5F
发表于 2020-5-4 15:01:54 IP属地北京 |只看该作者
楼主钻研精神值得称赞

Rank: 5Rank: 5Rank: 5

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

Rank: 5Rank: 5Rank: 5

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

Rank: 11Rank: 11Rank: 11

UID
60343
帖子
9071
PB币
30068
贡献
0
技术
17
活跃
2718

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

8F
发表于 2020-5-4 15:25:24 IP属地福建 |只看该作者
我就想在UUP阶段能自主定制WIM就好。

Rank: 2Rank: 2

UID
4869134
帖子
472
PB币
873
贡献
0
技术
0
活跃
1332
9F
发表于 2020-5-4 15:27:29 IP属地广西 |只看该作者
难度不小,佩服楼主的钻研精神!

Rank: 5Rank: 5Rank: 5

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

Rank: 7Rank: 7Rank: 7

UID
134229
帖子
1701
PB币
2435
贡献
0
技术
6
活跃
2512
11F
发表于 2020-5-4 15:51:29 IP属地湖南 |只看该作者
好资料,谢谢分享

Rank: 5Rank: 5Rank: 5

UID
713004
帖子
1032
PB币
1341
贡献
0
技术
0
活跃
1792
12F
发表于 2020-5-4 16:13:52 IP属地四川 |只看该作者
很好的参考资料 谢谢分享  辛苦了

Rank: 2Rank: 2

UID
1448218
帖子
147
PB币
137
贡献
0
技术
0
活跃
137
13F
发表于 2020-5-4 16:21:29 IP属地韩国 |只看该作者
支持,继续摸索

Rank: 15Rank: 15Rank: 15

UID
4819662
帖子
13866
PB币
38
贡献
0
技术
69
活跃
7618

铁杆球迷 远景开发达人

14F
发表于 2020-5-4 16:39:12 IP属地河南 |只看该作者
好帖。      

Rank: 2Rank: 2

UID
1300843
帖子
152
PB币
1856
贡献
0
技术
0
活跃
1178
15F
发表于 2020-5-4 16:42:20 IP属地重庆 |只看该作者
好难!理解不了。。

Rank: 2Rank: 2

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

Rank: 7Rank: 7Rank: 7

UID
1418014
帖子
1825
PB币
469
贡献
0
技术
0
活跃
1163
17F
发表于 2020-5-4 17:27:35 IP属地河北 |只看该作者
佩服楼主!

Rank: 2Rank: 2

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

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

稳健、高效、便捷

Rank: 11Rank: 11Rank: 11

UID
4848005
帖子
5732
PB币
409
贡献
0
技术
3
活跃
1735
19F
发表于 2020-5-4 17:36:13 IP属地广东 |只看该作者
这洋洋洒洒的整篇整下来,估计得研究个老半天都不一定敢下得了手~~

Rank: 7Rank: 7Rank: 7

UID
4580592
帖子
1907
PB币
2119
贡献
0
技术
3
活跃
1880
20F
发表于 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论坛