自定义国家/地区和运营商设置资产

国家/地区和运营商设置资产 (COSA) 是一个移动运营商配置文件数据库。 它作为预配程序包包含在 Windows 10 中。 将 SIM 插入启用 COSA 的基于 Windows 的设备时,预配框架会尝试通过在 COSA 中搜索匹配的配置文件和 APN 来建立手机网络连接。

注意

此功能仅在 Windows 10 桌面版 1703 及更高版本(家庭版、专业版、企业版和教育版)中受支持

可以在桌面映像期间使用 OEM 生成的预配程序包扩展 COSA。 这使 OEM 能够将新的 COSA 配置文件引入数据库,以及替换或扩展现有的 Windows COSA 配置文件。 例如,你可以通过创建包含设置的应答文件,为当前不在 COSA 中的移动虚拟网络运营商 (MVNO) 或移动套餐的新合作伙伴添加配置文件。 你还可以使用现有应答文件中的 Replace 运算符更改或删除现有配置文件。

重要

  • 请务必阅读下面的设备上市后如何支持 COSA OEM 生成的预配程序包部分。
  • 通常,只应添加未包含在 Windows COSA 数据库中的 APN。  如果替换 COSA 中已经存在的条目,而移动运营商将来更改这些条目,它们将不会自动更新,因为数据库将在 OEM COSA 包中查找这些条目。
  • 建议查阅计划添加的移动运营商的最新 APN,确保如果有数据设备特定的 APN,则将这些 APN 添加到 OEM COSA 文件(以防运营商对平板电脑使用与手机不同的 APN)。
  • Microsoft 建议移动运营商向 Microsoft 提交为扩展 COSA 而进行的任何配置文件更改。 若要了解详情,请参阅 COSA/APN 数据库提交

重要

Microsoft 正在收集以下与 COSA 相关的遥测数据:

  • AfterMarketProfile - 在 OEM 包添加新配置文件时发布。 数据包括配置文件 ID(通常是 GUID)以及配置文件的目标信息(例如 MCC、MNC、SPN 等)。
  • ProfileReplaced - 在 OEM 包替换 COSA 配置文件时发布。 数据是配置文件 ID。
  • ProfileSuppressedByAfterMarketProfile - 当 OEM 包包含匹配的配置文件,而 COSA 配置文件也匹配时发布。 遥测数据包含配置文件 ID。

添加新配置文件

你可以使用以下步骤添加尚未包含在 COSA 数据库中的新配置文件。

  1. 创建应答文件或编辑包含新配置文件设置的现有应答文件。 下面是一个示例:

    • 请确保将 <ID> 标记信息替换为你自己的 GUID。
     <?xml version="1.0" encoding="UTF-8"?>
    <WindowsCustomizations>
     <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
       <ID>{7240F79C-7567-4BA3-95C0-ABD31D02A385}</ID>
       <Name>COSAPC.Extension</Name>
       <Version>5.0</Version>
       <OwnerType>OEM</OwnerType>
     </PackageConfig>
     <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
       <Customizations>
         <Targets>
           <Target Id="12345678-abcd-1111-aaaa-1ead5bca0320">
             <TargetState>
               <Condition Name="Mcc" Value="901" />
               <Condition Name="Mnc" Value="37" />
               <Condition Name="ICCID" Value="range:8988247000100000000,8988247000199999997" />
               <Condition Name="uiname" Value="Contoso (OEM)" />
               <Condition Name="uiorder" Value="0" />
             </TargetState>
           </Target>
           <Target Id="87654321-abcd-1111-aaaa-1ead5bca0320">
             <TargetState>
               <Condition Name="Mcc" Value="001" />
               <Condition Name="Mnc" Value="01" />
               <Condition Name="uiname" Value="Fabrikam (OEM)" />
               <Condition Name="uiorder" Value="0" />
             </TargetState>
           </Target>
         </Targets>
         <Profile Name="Fabrikam (OEM)">
           <TargetRefs>
             <TargetRef Id="87654321-abcd-1111-aaaa-1ead5bca0320" />
           </TargetRefs>
           <Settings>
             <Connections>
               <Cellular>
                 <Connection ConnectionName="Fabrikam (OEM)_i0$(__MVID)@WAP">
                   <PurposeGroups>{3e5545d2-1137-4dc8-a198-33f1c657515f}</PurposeGroups>
                   <AlwaysOn>1</AlwaysOn>
                   <FriendlyName>Fabrikan Connect</FriendlyName>
                   <AccessPointName>apn</AccessPointName>
                   <IPType>IPv4v6</IPType>
                   <AlwaysOn>1</AlwaysOn>
                   <Roaming>5</Roaming>
                 </Connection>
               </Cellular>
             </Connections>
             <DataMarketplace>
               <PerSimSettings>
                 <SettingsForSim SimIccid="$(__ICCID)">
                   <SupportDataMarketplace>1</SupportDataMarketplace>
                   <DataMarketplaceRoamingUIEnabled>0</DataMarketplaceRoamingUIEnabled>
                 </SettingsForSim>
               </PerSimSettings>
             </DataMarketplace>
           </Settings>
         </Profile>
         <Profile Name="Contoso (OEM)">
           <TargetRefs>
             <TargetRef Id="12345678-abcd-1111-aaaa-1ead5bca0320" />
           </TargetRefs>
           <Settings>
             <Connections>
               <Cellular>
                 <Connection ConnectionName="Contoso (OEM)_i0$(__MVID)@WAP">
                   <PurposeGroups>{3e5545d2-1137-4dc8-a198-33f1c657515f}</PurposeGroups>
                   <AlwaysOn>1</AlwaysOn>
                   <FriendlyName>Contoso Connect</FriendlyName>
                   <AccessPointName>apn</AccessPointName>
                   <IPType>IPv4v6</IPType>
                   <AlwaysOn>1</AlwaysOn>
                   <Roaming>5</Roaming>
                 </Connection>
               </Cellular>
             </Connections>
             <DataMarketplace>
               <PerSimSettings>
                 <SettingsForSim SimIccid="$(__ICCID)">
                   <SupportDataMarketplace>1</SupportDataMarketplace>
                   <DataMarketplaceRoamingUIEnabled>0</DataMarketplaceRoamingUIEnabled>
                 </SettingsForSim>
               </PerSimSettings>
             </DataMarketplace>
           </Settings>
         </Profile>
       </Customizations>
     </Settings>
    </WindowsCustomizations>
    
  2. 创建包含应答文件的预配程序包。 有关详细信息,请参阅生成预配程序包

  3. 将预配程序包 (PPKG) 放在以下位置:%WINDIR%\Provisioning\COSA\OEM。

  4. 执行必要的验证测试。

下面是与 APN 相关的用途组列表。

类型 标识符
Internet 3E5545D2-1137-4DC8-A198-33F1C657515F
LTE 附加 11A6FE68-5B47-4859-9CB6-1EAC96A8F0BD
购买 95522B2B-A6D1-4E40-960B-05E6D3F962AB
管理 2FFD9261-C23C-4D27-8DCF-CDE4E14A3364

有关 COSA 设置的完整列表,请参阅规划 COSA/APN 数据库提交

设备上市后如何支持 COSA OEM 生成的预配程序包

在将 COSA OEM 生成的预配程序包添加到设备映像之前,请考虑设备上市后用于更新 COSA OEM 生成的包的机制。 下面是有关映像配置和更新的其他说明。

  1. COSA OEM 生成的预配程序包需要从 PBR 迁移中排除,以避免出现重复条目,请参阅排除文件和设置
    • 若要测试排除文件是否成功,你需要一个实施了 PBR 的出厂映像,然后转到“设置”->“更新”->“重置此电脑”,重置后应该仍然能够在“设置”->“网络”->“手机网络”中看到自定义 APN。 此外,%WINDIR%\Provisioning\COSA\OEM 文件夹中应该只有一个 OEM COSA 预配程序包。

示例

<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/MyFileExclusions">
  <component type="Documents" context="System">
    <displayName>File exclusions</displayName>
    <role role="Data">
      <rules>       
        <unconditionalExclude>
          <objectSet>
            <pattern type="File">%SystemDrive%\Windows\Provisioning\Cosa\OEM\* [*]</pattern>
          </objectSet>
        </unconditionalExclude>
      </rules>
    </role>
  </component>
</migration>
  1. 对于通过 COSA OEM 生成的预配程序包添加的任何运营商,都需要由 OEM 维护,以防移动运营商将来发生变化,因此应确保通过某种机制在将来更新这些包。

    • 包更新由驱动程序和 Windows 更新处理
    • 你需要确保设备上已有适用于手机网络组件的设备驱动程序,并且 INF 文件设置为复制 PPKG
    • 请按照本文档中的说明来创作 INF 文件。示例:
       [SourceDisksNames]
       1 = %DiskId1%
    
       [SourceDisksFiles]
       ContosoCosaCustomization.ppkg = 1
       ContosoCosaCustomizationWithDataClass.xml = 1
       ; other driver package files omitted from example for brevity
    
       [DestinationDirs]
       CosaCustomization.CopyList =10,Provisioning\Cosa\OEM
       ; other CopyFiles sections in DestinationDirs omitted from example for brevity
    
       ; Manufacturer and Models sections omitted for brevity. Assume Models section indicates a DDInstall section of ContosoInstallSection
    
       [ContosoInstallSection]
       CopyFiles=CosaCustomization.CopyList
    
       [CosaCustomization.CopyList]
       ContosoCosaCustomization.ppkg
       ContosoCosaCustomizationWithDataClass.xml
    
    • 出厂映像上需要预先加载驱动程序,这样,如果将来更新 Windows 更新中的驱动程序,设备会扫描和查找此驱动程序的更新版本,以便进行下载和安装。
    • 你应该使用与测试预发布设备或驱动程序的驱动程序更新相同的机制,通过 Windows 更新来测试更新机制。
    • 如果你有用于更新 COSA OEM 生成的预配程序包的替代机制,请确保在运行一键重置以测试最终用户方案后,该机制在出厂映像和设备上都有效。

    注意

    在以下条件下将应用 PPKG。 根据设计,在将 PPKG 复制到指定位置时不会应用它们

    • 在系统空闲时 OS 重启后
    • 在系统处于空闲状态时用户登录之后
  2. 如果移动运营商更新了任何预配信息(例如 APN),并且设备是 COSA OEM 为该移动运营商生成的预配程序包,OEM 需要获取新的预配信息并在交付的设备上通过 Windows 更新更新 COSA OEM 生成的预配程序包。