Adicionando suporte ao dispositivo de protocolo de transferência de mídia (dispositivo MTP) para Windows 10 N


1

Estou usando o Windows 10 N Anniversary Update, aquele sem nenhum bloatware de mídia como o WMP. No entanto, eu gostaria que meu iPhone fosse acessível com o File Explorer para copiar fotos. Acontece que você precisa instalar o Media Feature Pack para Windows 10 N ( KB3133719 ) para fazê-lo funcionar.

O arquivo KB3133719-x64.msu.msu em si tem apenas cerca de 100 MB. No entanto, quando você instala, são necessários ~ 500 MB de espaço, 40 MB a mais do que se você instalasse o Windows 10 normal não-N (sim, eu tive que instalar várias máquinas virtuais para descobrir).

Isso não é absolutamente razoável, porque os drivers de dispositivo MTP incluídos no KB3133719-x64.msu.msu ocupam apenas cerca de 3 MB! A parte funcional é que a instalação do pacote BK3133719 é permanente e você não pode removê-lo do seu sistema N posteriormente com o DISM (tentei, o Remove-Package retorna um erro).

Consegui extrair o CAB do MSU e extrair o driver INF & DLL de interesse do CAB. No entanto, quando tento aplicar o driver ao meu iPhone no Gerenciador de dispositivos (você precisa usar Shift-Reiniciar> Solução de problemas> Avançado> Configurações de inicialização para instalar o driver não assinado porque a assinatura do driver é herdada do CAB extraído, de acordo com a Microsoft, desculpe - consulte o artigo), o assistente diz que o dispositivo não pode ser adicionado porque está faltando a classe Device. Na verdade, sim, a classe de dispositivo "Dispositivo portátil" está ausente no Windows 10 N.

Então, eu me pergunto se alguém poderia me ajudar a 1) adicionar a classe "Dispositivo portátil" manualmente ao meu sistema Windows 10 (eu posso obter todas as DLLs do CAB do KB3133719) ou 2) obter o pacote Windows-Portable-Device-Package realmente CAB dentro de KB3133719-x64.msu.msu e faça com que instale apenas o driver.

Eu já tentei editar o MUM do Media-Feature-Pack (encontrado no CAB, removi todas as linhas de string, exceto o Windows-Portable-Device) e criei um novo CAT assinado para ele (usado makecat.exe), re-empacotando e assinando novamente o CAB (sim, instalei meu certificado gerado personalizado nos Editores confiáveis ​​e raiz confiável), graças a este guia incrível . No entanto, recebo o erro (arquivo não encontrado) ao instalar o pacote CAB assinado em uma nova máquina virtual de 10 N. Quando assino o CAB gerado a partir de arquivos intocados extraídos, tudo é instalado corretamente. Portanto, presumo que faço tudo certo no que diz respeito à assinatura, mas há alguma verificação dupla em algum lugar (provavelmente referência a outros pacotes no MUM do Windows-Portable-Device) que não consigo descobrir.

Por favor ajude!

Aqui está o que estou fazendo:

    Modifying Windows Update Package

via (link removed - not enough reputation points)
via (link removed - not enough reputation points)

1. Download Visual Studio Community 2015: (link removed - not enough reputation points)
Configure Visual Studio Community 2015 installation: check "Universal Windows App Development Tools > Tools (1.4.1) and Windows 10 SDK"

2. Unarchive (using WinRAR or expand command) KB3133719-x64.msu.msu > microsoft-windows-mediafeaturepack-oob-package-original.cab > microsoft-windows-mediafeaturepack-oob-package-original

3. Edit adn save using Notepad .\microsoft-windows-mediafeaturepack-oob-package-original\Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum
   to delete all update entries except:
   - Microsoft-Media-Foundation-Package
   - Microsoft-Media-Foundation-WOW64-Package
   - Microsoft-Windows-Portable-Devices-Package

2. Run Command Prompt as Administator

cd "C:\Program Files (x86)\Windows Kits\8.1\bin\x64"

makecert -r -sv C:\Certificate.pvk -n CN="Generic Certificate" -eku 1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.6 C:\Certificate.cer

(Password - None)

Note (according to (link removed - not enough reputation points))
To find EKU, double-click any CAT from original CAB and View Signature > View Certificate > Details > Copy to File > Save as CER
Double-click CER > Details > Enchanced Key Usage contains numbers:
Code Signing (1.3.6.1.5.5.7.3.3)
Windows System Component Verification (1.3.6.1.4.1.311.10.3.6)
This determines a certificate is valid for Windows Update installations.
Otherwise DISM returns error:
0x800B0110 -2146762480 CERT_E_WRONG_USAGE The certificate is not valid for the requested usage
((link removed - not enough reputation points))

cert2spc C:\Certificate.cer C:\Certificate.spc

pvk2pfx -pvk C:\Certificate.pvk -spc C:\Certificate.spc -pfx C:\Certificate.pfx

3. Install Certificate.cer to Local Computer > Trusted Publishers and Trusted Root Certification Authorities Stores

4. Create CDF file using Notepad

# # # # # # # # # # # # # # # # # # # # 

[CatalogHeader]
Name=Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0.cat
ResultDir=.\
PublicVersion=0x00000001
EncodingType=

[CatalogFiles]
<HASH>Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0=.\Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0.mum

# # # # # # # # # # # # # # # # # # # # 

Copy CDF & MUM to "C:\Program Files (x86)\Windows Kits\8.1\bin\x64"

5. Continue to Command Prompt as Administator:

makecat Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0.cdf

signtool sign /f C:\Certificate.pfx /t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\Microsoft-Windows-MediaFeaturePack-OOB-Package~31bf3856ad364e35~amd64~~10.0.14393.0.cat"

Copy CAT to C:\Users\User\Downloads\KB3133719-x64.msu\microsoft-windows-mediafeaturepack-oob-package

6. Run Windows PowerShell & input script, press Enter

# # # # # # # # # # # # # # # # # # # # 

function compress-directory([string]$dir, [string]$output)
{
    $ddf = ".OPTION EXPLICIT
.Set CabinetNameTemplate=$output
.Set DiskDirectory1=.
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
"
    $dirfullname = (get-item $dir).fullname
    $ddfpath = ($env:TEMP+"\temp.ddf")
    $ddf += (ls -recurse $dir | ? {!$_.psiscontainer}|select -expand fullname|%{'"'+$_+'" "'+$_.SubString($dirfullname.length+1)+'"'}) -join "`r`n"
    $ddf
    $ddf | Out-File -encoding UTF8 $ddfpath
    makecab /F $ddfpath
    rm $ddfpath
    rm setup.inf
    rm setup.rpt
}

# # # # # # # # # # # # # # # # # # # # 

7. Input PowerShell commands:

cd C:\Users\User\Downloads\KB3133719-x64.msu

compress-directory .\microsoft-windows-mediafeaturepack-oob-package .\microsoft-windows-mediafeaturepack-oob-package.cab

8. Continue to Command Prompt as Administator:

signtool sign /f C:\Certificate.pfx /t http://timestamp.verisign.com/scripts/timstamp.dll /v "C:\Users\User\Downloads\KB3133719-x64.msu\microsoft-windows-mediafeaturepack-oob-package.cab"

# # # # # # # # # # # # # # # # # # # # 

Here's error I get when install signed CAB using DISM

Deployment Image Servicing and Management tool
Version: 10.0.14393.0

Image Version: 10.0.14393.0

Processing 1 of 1 - Adding package Microsoft-Windows-MediaFeaturePack-OOB-Package_Wrapper~31bf3856ad364e35~amd64~~10.0.14393.0
[==========================100.0%==========================]
An error occurred - Microsoft-Windows-MediaFeaturePack-OOB-Package_Wrapper Error: 0x80090352

Error: 0x80090352

DISM failed. No operation was performed.
For more information, review the log file.

# # # # # # # # # # # # # # # # # # # # 

Não encontrei absolutamente nenhuma informação sobre o erro 0x80090352 e o Windows Update.

O PS iPhone fica perfeitamente acessível no File Explorer depois de aplicar a atualização na máquina virtual 10 N. Portanto, é uma questão de perder 500 MB para o bloatware da Microsoft que nunca vou usar.

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.