Windows Feature Experience Pack的讨论与研究
- 已编辑
- #28
Part 1.5 新旧交替的碰撞
上面我们已经看到了10X体验包对于文件管理器、IME、屏幕截图的影响,但是10X本来也不止这些,ShellExperience、ActivitySystem啥的都没激活,缺少接口的体验包很惨。
但是11的新体验能否被玩出花还不得而知。
UPD 2020/08/15 如果系统Shell不支持接入新的扩展,那么你获得的新体验将会十分有限。如果你在部署前提前替换体验包,系统会尝试部署扩展,但是一般都会得到损坏的Shell。不过也有例外,如22538的WFEP部署在22536上就可以正常开启新功能。
目前已知:Server 2022 可获得新输入法体验(仅限IME候选框),触摸键盘和剪贴板(剪贴板直接不存在了)还是旧的。
Build 21390 安装 Build 21996 的新版体验包:可获得完整的新版输入体验,其他照旧。
- #29
12x、22x、42x的版本都有了,就是不见32x的版本
- 已编辑
- #32
关于WFEP的来源和作用,我觉得可以总结为以下几点:
- WFEP是WCOS的开发成果(不过我觉得WCOS对于PC来说可能不是个好方案)
- (2022年3月24日更新:微软在11 22H2开发阶段把WFEP从FoD中移除了,直接整合进系统)
WFEP在Windows 10/11中作为以FoD形式出现的必备组件,与其它FoD共同组成了UUP更新文件的绝大部分内容。 - WFEP只是UI更新的一个途径,不会是UI更新的主要方式,重点是Feature。这个东西在SV中有个专项叫做Cherry Hill,用来专门更新文件资源管理器的UI和及其提供支持的GUI Shell。
B站主页君原话是这么说的:
WFEP更多的注重于系统中的非核心独立部件,如果要说在UI更新和提升稳定性方面应该起到相辅相成的作用,未来也是UI更新的一个途径,但不一定会是主要的途径。Win10和大部分过往的残留UI会争取在两个大更新内完成调整,而且很有可能会大大提前,拭目以待啦
之前回帖的勘误区
何木槿 这些组件都是Win32,整合进来必定会造成兼容性问题
我的意思其实是把Windows功能全部迁移到可选功能中(现在WMP等某些组件在Windows功能和可选功能中同时出现就很……),当时完全搞混了WFEP和可选功能
AlfaEstrella 啥旧版功能包,我没懂
我的意思是“Windows功能”,与之对应的“可选功能”是所谓的“新版功能包”。其实不存在这种说法,而且微软自身搞得就很混乱。不仅是增删改功能的方式混乱,而且释放FoD的文件位置也四处分布……
AlfaEstrella 更新UI用的方式
虽然是Shell Update Agent,但是如果此处把Shell仅仅理解为UI,那么我觉得你可能没区别开UI和Shell……
- #34
- 这两个没关系,你说uup FoD什么的还合理,undocked shell这就是个uwp啊..uup到现在也没有单独加任何的体验包,都是打在cab里面的
2.功能体验包又叫Undocked Shell Update,说白了就是更新UI用的方式(22000.1和22000.xxx的区别就在于CU里面带了体验包)
3.啥旧版功能包,我没懂
....what
- 已编辑
- #36
ThinkBou 估计后期WFEP会把旧版功能包(指需要在控Windows功能中才能关闭或启用的组件)整合进来
这些组件都是Win32,整合进来必定会造成兼容性问题
如果只是做个开关的话,WFEP是想变成新控制面板吗()
ThinkBou WFEP的想法可以溯源至当年WES
Embedded 可是有很多SKU的,不单单是Standard()
UUP就是UUP,统一更新平台,想法确实来自WES,在16年推出,WFEP就是WFEP(我在21390上面部署了22000的Windows Desktop Required Package,然后陆续打上其他三十来个cab,我就是Build 22000,这只是为更新Windows 提供了一种更灵活的方式。)
- 已编辑
- #37
第二铲
我觉得可以研究一下CShell与WFEP的关系。关键在于,Windows 10X到底用没用上CShell。
话说,10X的UUP更新文件貌似只有楼主手里有诶[tieba=huaji-reverse]
- 已编辑
- #38
ThinkBou 10X的GUI Shell实现是靠Modern UX Product App实现的,而11的新UI部分就是靠在体验包以及其他加载项里面堆料(包括Shell32.dll和其他我们熟知的的老朋友 这些老朋友的话并不是直接堆料,是以链接的形式注入Extension,Windows下的ShellExperiences、SystemResources、SEH[Shell Experience Host](UPD 2023/1/15:SEH已经名存实亡,Cobalt阶段还存在对它的引用,Nickle看起来是抛弃它了,文件大小没有什么变动,只是多了些引用到外面的链接)等等,还离不开UI.Xaml.CBS)
ThinkBou Windows 10X到底用没用上CShell。
用上了。CShell跟WCOS是绑定的,10X的话直接有一个CShell的包,与Modern UX App有着千丝万缕的联系,这个CShell的包装在普通Client上倒是不痛不痒,因为没有它的实现方式。
ThinkBou 话说,FactoryOS中不包含Modern UX Product App吗
是的,这东西本来就不是给Factory OS准备的,他的应用程序标题就叫Windows 10X。
- 已编辑
- #43
旧闻推送
- WFEP在传统Windows NT内核中刚开始应用时,Retail(通过商店推送,WindowsApp)的包名和后来不一样
- 这是Build 18917中的注册表信息,包名是MicrosoftWindows.UX.Client.ST
- 这是后来正式版的注册表信息,包名是MicrosoftWindows.Client
这个东西现在在商店中作为占位符出现,没有实际内容……
- 这是Build 18917中的注册表信息,包名是MicrosoftWindows.UX.Client.ST
有意思的是,后来在商店上架的Client的WFEP(Client)的PhoneProductId与18917的那个(UX.Client.ST)不同,而且在商店上架的10X的WFEP的PhoneProductId与这二者均不同
- 注册表中还有BuiltIn(通过UUP推送,SystemApp)的信息
- 这是Build 18917中BuiltIn所对应打包应用的AppxManifest,包名是MicrosoftWindows.UX.Inbox
值得注意的是,最开始不管是BuiltIn还是Retail均是作为WindowsApp出现的。 - 这是19041+的注册表,包名是MicrosoftWindows.Client.CBS(与之对比的是,10X的WFEP包名是MicrosoftWindows.Windows10X.CBS)
这个才是真的起作用的Windows Feature Experience Pack
(左侧是Windows 11 21H2的WFEP,右侧是Windows 10 21H2的WFEP,可以看到Win11的WFEP承担了更多功能)
- 这是Build 18917中BuiltIn所对应打包应用的AppxManifest,包名是MicrosoftWindows.UX.Inbox
有意思的是,10X中BuiltIn WFEP(Windows10X.CBS)与Client中BuiltIn WFEP(UX.Inbox/Client.CBS)的PhoneProductId相同,而且上面的那个Client.ST的PhoneProductId也与这二者相同,因此才能让10X的WFEP迁移到正常Client后还能正常运行。
何木槿 现在用CAB包装
何木槿 我觉得在Windows客户端版中用cab部署估计就是要承担更多任务(比如要承担部分Shell的内容),要求其必须作为SystemApp出现,并且由于涉及到未公开API需要通过Windows更新提供更完整的内容。
正如上面提到的,真正起作用的WFEP在Windows 10/11中是SystemApp,不是WindowsApp。所以很自然的,这玩意作为打包应用单独安装起作用是绝对不可能的。因此何木槿 何木槿 ,如果需要让WFEP完全生效,你需要把它部署为SystemApp。除此以外,你可能还需要一些API的支持……
- 已编辑
- #45
何木槿 不过CBS和ST是什么意思呢
如果你认为CBS是CameraBarcodeScannerPreview,那么Windows Feature Experience Pack可能不适合你。
何木槿 通过解包cab,然后安装里面的两个mun文件,就可以部署为SystemApp,因为这是通过更新服务部署的()
那么如果我想把10X的WFEP部署为10/11的SystemApp呢
何木槿 这些我都在18947以及之后的20H1 Builds里面发现过
所以是旧闻推送,省的你去火星接我了
何木槿 18947里面也已经出现了 Modern UX Product App的雏形,以及HtmlStart(
Build 18947是一个特殊的版本,出现这些东西其实很正常,毕竟那是rs_xbox分支。我认为这些东西要是在正常分支里出现了才不正常……