Adding Media Transfer Protocol Device (MTP Device) support for Windows 10 N

1

I'm using Windows 10 N Anniversary Update, the one with no media bloatware like WMP. However I wish my iPhone was accessible with File Explorer to copy photos. It turns out you have to install Media Feature Pack for Windows 10 N (KB3133719) to get it working.

The KB3133719-x64.msu.msu file itself is just around 100 MB. However when you install it it takes ~500 MB of space which is 40 MB more than if you install regular Windows 10 non-N (yes I had to install several virtual machines to figure it).

This is absolutely not reasonable because the MTP Device drivers included in KB3133719-x64.msu.msu only take up about 3 MB! The works part is the BK3133719 package installation is permanent and you cannot remove it from your N system afterwards with DISM (tried it, Remove-Package returns an error).

I managed to extract CAB from MSU and extract driver INF & DLL of interest from CAB. However when I try to apply driver to my iPhone in Device Manager (you have to use shift-Restart > Troubleshooting > Advanced > Startup settings to install unsigned driver because driver signature is inherited from extracted CAB, according to Microsoft, sorry can't re-find article) the wizard says the device cannot be added because Device class is missing. Actually, yes, the device class "Portable device" is missing in Windows 10 N.

So I wonder if anyone could help me to 1) add "Portable device" class manually to my Windows 10 system (I can get all DLLs from CAB of the KB3133719) or 2) get the Windows-Portable-Device-Package actually out from CAB inside KB3133719-x64.msu.msu and make it install only the driver.

I already tried editing Media-Feature-Pack MUM (it's found inside CAB, I removed all string lines except Windows-Portable-Device) & making new signed CAT for it (used makecat.exe) then re-packing and re-signing the CAB (yes I installed my custom generated certificate to Trusted Publishers & Trusted root), thanks to this awesome guide. However I get the error (file not found) upon installing signed CAB package to a fresh 10 N virtual machine. When I sign the CAB generated from extracted untouched files everything installs fine. So I assume I do everything right when it comes to signing but there's some double-check somewhere (probably reference to other packages inside Windows-Portable-Device MUM) that I cannot figure out.

Please help!

Here's what I am doing:

    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.

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

I found absolutely no information about error 0x80090352 & Windows Update.

P.S. iPhone is perfectly accessible from File Explorer after I apply update in 10 N virtual machine. So it's a matter of escaping loosing 500 MB for Microsoft bloatware I never going to use.

windows
drivers
mtp
asked on Super User Dec 18, 2016 by username1 • edited Dec 18, 2016 by username1

1 Answer

0

OK I figured it out and posted a response in my own thread at another forum, feel free to check out how to partially uninstall Media Feature Pack for Windows 10 N in no time: https://www.tenforums.com/drivers-hardware/72798-media-transfer-protocol-device-mtp-device-support-windows-10-n.html#post895405

answered on Super User Dec 19, 2016 by username1 • edited Dec 20, 2016 by username1

User contributions licensed under CC BY-SA 3.0