Topic: Snappy Driver Installer
Snappy Driver Installer is an application for installing/updating drivers on PCs running Microsoft Windows using driverpacks or included folders with drivers. It can be used to install drivers on newly assembled PCs at places where Internet isn't available. Users can also use the software to keep their drivers up to date.
Main website
http://code.google.com/p/snappy-driver-installer
Features
Written in C/C++.
Licensed under GNU GPL v3 (Open source).
The state of the art in algorithm of finding best matching drivers for any devices.
Tiny size(less than 400Kb).
Fast indexing of driverpacks, start up, driver installation.
Support for installation from both driverpacks and folders at the same time.
Unattended installation(/autoinstall switch) with PC rebooting when necessary.
Creation of snapshots of systems so other users could emulate foreign systems.
Virus warnings informing user that the media with the application compromised.
Multilingual interface.
Themes.
Comparison of Snappy Driver Installer(SDI) and Stand Alone Driverpack(SAD)
SAD requires user to put driverpacks in designated folders so that they can be found. SDI doesn’t put these restrictions. User can put driverpacks anywhere in the “drivers” folders or its subfolder. SDI can figure out which drivers are compatible with the current OS without taking driverpack’s location and its filename into account.
SAD can install drivers from unpacked drivers(method 1) or from driverpacks(method 2). SDI can do both methods at the same time unlike SAD which doesn’t allow.
SAD doesn’t create a restore point when run in silent mode. SDI creates a restore point unless –norestorepnt switch is used.
SDI is able to determine whether or not restarting system is needed and can be configured to execute two different commands based on it. See documentation for -finishrb_cmd:<cmd> and -finish_cmd:<cmd> switches. SAD restarts the system even when it’s not required.
SDI can be run completely unattended (-autoinstall –autoclose "-finishrb_cmd:Shutdown.exe -r -t 15" ). If during installation new devices appear(happens with nested devices), SDI will do another pass to make sure it install all drivers.
SAD wastes a lot of time and disk space to extract whole driverpacks. SDI extracts only drivers which are about to be installed. It’s faster because some driverpacks can be skipped if they don’t contain needed drivers, there is no need to process whole driverpacks if all files are found before the end of archive is reached, processing whole archive to reach a file at the end of the archive is still faster than extracting whole archive to a disk.
SAD uses DPInst.exe to install drivers. This tool is doing a poor job in choosing optimal drivers and installing them. DriverPack Solution used to use it and I found out that DPInst was installing the wrong drivers when a more optimal driver was available. I was unable to force DPInst to install the correct driver no matter which switches were used. These drivers had to be installed manually via Device Manager or devcon. Even when DPInst installs the correct driver, it sometimes isn’t installed properly and needs some fixing which is usually done be Finisher. It should be noted that if the same driver is installed via Device Manager, it works well and doesn’t need any manual tinkering. At some point DriverPack Solution switched to installing drivers via devcon which greatly improved success rate and valid drivers no longer have to be excluded from driverpacks because they cannot be installed via DPInst. SDI doesn’t have to use devcon because it can call the Win32API function directly.
Comparison of Snappy Driver Installer(SDI), DriverPack Sulution(DPS_), Drivers Installer Assistant (DIA).
Algorithm of choosing drivers to install.
DPS_ and DIA are evenly matched. They inspect the same information about drivers and share the same limitations.
SDI extracts more information from inf files and additionally processes cat files. For each device is created a list of compatible drivers pulled from all driverpacks and the list is sorted so that best drivers go to the top of the list. DPS_ and DIA can’t compare drivers when they are in different driverpacks which may result in installing both drivers.
Installation method
DPS_ – devcon (works as well as Device Manager)
DIA – DPInst (has many flaws)
SDI – Win32API (works as well as Device Manager)
Application size
DPS_ - 34 Mb (291 files)
DIA - 44 Mb (189 files)
SDI - 680 Kb (43 files), excluding localization and themes - 390 ??(one file).
Driverpack indexing time
DPS_ - 280 secs (4:40)
DIA - 123 secs (2:03)
SDI - 19 secs
Note: driverpacks must be repacked so that cat files are bundled with inf files
Application startup time
DPS_ - 10 secs
DIA - 3 secs
SDI – 0.5 secs