New
#1
Media Transfer Protocol Device (MTP Device) support for Windows 10 N
Hey everyone,
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 <update> 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.
Here's what I'm doing & where I'm stuck:
I found absolutely no information about error 0x80090352 & Windows Update.Code:via http://woshub.com/how-to-sign-an-unsigned-driver-for-windows-7-x64/ via http://stackoverflow.com/questions/19411440/makecab-create-a-cab-file-from-all-the-files-in-a-folder 1. Download Visual Studio Community 2015: https://www.microsoft.com/en-us/download/details.aspx?id=48146 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 https://msdn.microsoft.com/en-us/library/windows/desktop/aa386968(v=vs.85).aspx) 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 (https://social.technet.microsoft.com/wiki/contents/articles/15260.windows-update-agent-error-codes.aspx) 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\Ilya\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\Ilya\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\Ilya\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. # # # # # # # # # # # # # # # # # # # #
Please help!
Last edited by username1; 18 Dec 2016 at 19:46.