jbremer / vmcloak-deps

Dependency repository for VMCloak.
6 stars 5 forks source link

Flash dependency approach #12

Open dspruell opened 9 years ago

dspruell commented 9 years ago

Have a local dependency of Flash I'm looking to send PR for, but wanted to check on approach.

Adobe distributes old Flash versions as a large ZIP archive containing a full suite of files, including Windows and OS X installers, and both debug and standard builds.

120M    fp_11.4.402.287_archive.zip
Archive:  fp_11.4.402.287_archive.zip
Zip file size: 125520345 bytes, number of entries: 17
fp_11.4.402.287_archive/11_4_r402_287/
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_mac.dmg
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_mac_sa.app.zip
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_win.exe
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_win.msi
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_win_sa.exe
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_winax.exe
fp_11.4.402.287_archive/11_4_r402_287/flashplayer11_4r402_287_winax.msi
fp_11.4.402.287_archive/11_4_r402_287/uninstall_flashplayer11_4r402_287_mac.dmg
fp_11.4.402.287_archive/11_4_r402_287/uninstall_flashplayer11_4r402_287_win.exe
fp_11.4.402.287_archive/11_4_r402_287_debug/
fp_11.4.402.287_archive/11_4_r402_287_debug/flashplayer11_4r402_287_mac_debug.dmg
fp_11.4.402.287_archive/11_4_r402_287_debug/flashplayer11_4r402_287_mac_sa_debug.app.zip
fp_11.4.402.287_archive/11_4_r402_287_debug/flashplayer11_4r402_287_win_debug.exe
fp_11.4.402.287_archive/11_4_r402_287_debug/flashplayer11_4r402_287_win_sa_debug_32bit.exe
fp_11.4.402.287_archive/11_4_r402_287_debug/flashplayer11_4r402_287_winax_debug.exe
fp_11.4.402.287_archive/readme.txt

The way we handled this locally was to extract specific installers of interest (2 of them) from the archive into the .vmcloak/deps/files/ directory, and then configured hashes.txt and repo.ini. This would require the user to do the same and because it requires manual user interaction, would probably need to be accompanied with documentation; it has the advantage of requiring no modifications to VMCloak and means that the large archive only has to be downloaded once.

In theory it could be possible to extend the dependency system to support specifying an archive file and then working from specific paths within the archive; something like this:

  1. Add an archive option to entry syntax in repo.ini, specifying the base filename of the archive
  2. Add the URL for that archive in urls.txt
  3. Add hashes for the archive and target files in the archive in hashes.txt

Just some ideas, maybe there are better approaches too. How should we handle this?

jbremer commented 9 years ago

There's a https://github.com/jbremer/vmcloak-files/ repository that can be used for this. If no url is provided in urls.txt, it'll try to download the file from this github repository. Or, at least, that was the idea. If you provide the original URL or zip file with these files I can give it a try for you :) I'm also open to suggestions, but it's kind of sad to have a seperate vmcloak-deps and vmcloak-files repository, but that's the way I did it for now.. I didn't want to have all the binaries in the vmcloak-deps repository. Alternatively there are some Git plugins for handling big binary files, I think, but I haven't looked into that and if it requires people to install a Git plugin that's kind of meh.

dspruell commented 9 years ago

Was trying this guy, I believe:

http://download.macromedia.com/pub/flashplayer/installers/archive/fp_11.4.402.287_archive.zip

Also:

hashes.txt

flashplayer11_4r402_287_win.msi = a3c9471223b0b1584deef03f52fdcf3336cdce40
flashplayer11_4r402_287_winax.msi = 99fb61ed221df9125698e78d659ee1fc93b97c60

repo.ini

[flash11_plugin]
# https://forums.adobe.com/docs/DOC-2643
filename = flashplayer11_4r402_287_win.msi
description = Flash Player plugin 11.4.402.287
arguments = /qn

[flash11_activex]
# https://forums.adobe.com/docs/DOC-2643
filename = flashplayer11_4r402_287_winax.msi
description = Flash Player ActiveX control 11.4.402.287
arguments = /qn