Snapshots

Many applications require combinations of filesystem and registry entries. To facilitate containerization of these applications, Turbo Studio can snapshot application installations and automatically configure them based on modifications made to the host system during setup.

Process

Snapshots use before and after images of the host machine to determine configuration:

  • Before: This snapshot is taken prior to installing the application and captures the state of the host device without the target application installed.

  • After: This snapshot is taken after installing the application and captures all changes to the host device during application installation. Turbo Studio then computes the changes between the before and after snapshots, and inserts these changes into the configuration.

Complete the following steps to use the Snapshot feature:

  1. Prepare the host device: Install Turbo Studio onto a clean machine. IMPORTANT: Taking a snapshot on a base OS image with application components already installed will result in an unreliable snapshot capture.

  2. Capture the before image: Select Capture Before on the Virtual Application tab on the ribbon bar. This may take several minutes to complete.

  3. (Optional) Save the Before Snapshot: Saving the before snapshot enables you to skip this step in subsequent applications from the same clean machine. Select the down arrow underneath Capture Before and choose Save Snapshot. Turbo Studio automatically saves the most recently captured before snapshot. This snapshot is reset once the Capture and Diff is complete.

  4. Install your application: Install the appication as you would normally. If the application setup requests a reboot, save the Before Snapshot, then proceed with the reboot.

  5. Capture the after image: On the Virtual Application tab on the ribbon bar, select Capture and Diff. This captures the After Snapshot, computes the deltas between the two snapshots, and populates the image with the delta entries.

  6. Review the filesystem and registry entries: Remove any files or settings not required for proper execution. Removing unused entries will reduce image size. Be careful to avoid removal of required resources, as it will cause your image to fail to function properly.

Capture Application Updates via Snapshot

Container updates can be captured within Turbo Studio via snapshots.

Complete the following steps to capture an update via snapshots:

  1. Install the native version of the application on a clean machine.

  2. Select Capture Before.

  3. Install necessary updates to the native application.

  4. Select Capture and Diff to create the after snapshot. This captures the deltas between the original and updated versions.

  5. Set the Project Type to Component, then select Build to create the SVM.

This process only captures changes between the original executable and installed updates. You can then apply the resulting SVM to the original virtual package.

Best Practices

  • Performing the snapshot on a clean machine ensures that all dependencies are installed by the application setup. Installing on a machine with existing components can inadvertently include dependencies in the before snapshot and exclude them from the final output.

  • If you configure a clean machine using whole-machine virtualization tools such as Microsoft Virtual PC and save a before snapshot based on this image you can snapshot many distinct containers in rapid succession by reverting the whole-machine virtual state and using the same before snapshot.

  • Most applications should be configured by performing the snapshot on the earliest (least common denominator) target operating system. A small number of applications may require multi-platform merge for successful deployment across all operating system variants.

  • When selecting a folder to save the Capture and Diff snapshot, select Make New Folder in Turbo Studio. This folder will not be included in the snapshot. If the folder is included in the Capture and Diff snapshot, remove it using the Filesystem tab.

  • Before beginning the pruning process, save a backup of the Capture and Diff snapshot (snapshot.xappl). Revert to the original Capture and Diff snapshot in the event of an error.

  • Run and use the native application to understand what registry keys and folders are updated at runtime. This will help determine the proper isolation settings for folders and registry keys.

  • To determine if a folder should be set to full isolation or merge isolation, decide if the user would want access to files created within that folder outside the container environment. If yes, the folder should be set to merge, if no, full.

  • Remove uninstall shortcuts during the pruning process.

Snapshotting Google Chrome Install

Below is a walkthrough of the steps required to snapshot Google Chrome.

Start with a Clean Virtual Machine

Studio clean virtual machine

When using the snapshot method to containerize an application, it is important to start with a clean system so that no components are missed during the capture and diff process.

The snapshot process can be performed on a virtual machine or a physical machine. Typically a virtual machine is used so that the system can easily be reset in case the process needs to be repeated.

There are many options for virtual machine software including VMWare Workstation, Oracle Virtual Box (free) and Microsoft Virtual PC. In this example I will be using Oracle Virtual Box.

In this example we will create a snapshot of Google Chrome.

Studio Chrome template

Using the Wizard to Capture the Application Install

Select the third option in the Wizard, Snapshot a third-party application or component.

Studio snapshot a third-party application or component

Select Next on the following screen to capture the "before" snapshot.

Studio snapshot install

Chrome can be installed in two different locations on the system. The standard location is underneath the Current User profile. There is another enterprise installer available on the Google website for installing Chrome under Program Files. In this example the enterprise location will be used, but both approaches will be discussed in the following steps.

Launch Chrome.

Close the open tabs and then exit Chrome (ensure it is not running in the background by checking the system tray and task manager) .

Studio snapshot Chrome

Navigate to Services. Disable both Google Chrome update services.

Studio snapshot services

Open %LOCALAPPDATA%\Google\Chrome\User Data\Default\Preferences with Notepad. Configure the preferences as you see fit. In this example, we set the following configuration:

{ 
  "homepage" : "http://www.google.com", 
  "homepage_is_newtabpage" : true, 
  "browser" : { 
	"show_home_button" : true, 
	"check_default_browser" : false
  },

	"download": {
	"directory_upgrade": true,
	"extensions_to_open": "",
	"prompt_for_download": true

  },
  "bookmark_bar" : { 
	"show_on_all_tabs" : true 
  }, 
  "distribution" : { 
	"msi" : true,
	"system_level" : true,
	"verbose_logging" : true,
	"skip_first_run_ui" : true, 
	"show_welcome_page" : true, 
	"import_search_engine" : true, 
	"import_history" : false, 
	"create_all_shortcuts" : false,   
	"do_not_launch_chrome" : true, 
	"make_chrome_default" : false 
  }, 
  "first_run_tabs" : [ 
	"welcome_page", 
	"new_tab_page" 
  ] 
}

Studio snapshot preferences

Return to the Turbo Studio wizard. Click Next.

Studio snapshot install

Click Next.

Studio snapshot capture after

Create a folder named Chrome and Click OK.

Studio snapshot browse

Click Next.

Studio snapshot startup file

Click Next.

Studio snapshot sandbox location

Click Next.

Studio snapshot output file

Enter filename as chrome49 and then click Save.

Studio snapshot output file browse

Navigate to FileSystem and delete the Update folder found in the install directory.

Studio snapshot filesystem

Delete the Installer folder.

Studio snapshot delete Installer folder

Navigate to Local Application Data (Low Integrity). Delete the Microsoft folder, if it exists.

Studio snapshot delete Microsoft folder

Navigate to Application Data. Delete the Microsoft folder, if it exists.

Studio snapshot rename folder

Navigate to Registry then navigate to current user root > software. Delete the Microsoft folder.

Repeat this step for:

local machine root\SOFTWARE\Wow6432Node\Microsoft
local machine root\SOFTWARE\Microsoft

Studio snapshot delete Microsoft registry

Navigate to Registry then navigate to current user root > SOFTWARE and set the Google key's isolation setting to Full.

Repeat this for: local machine root\SOFTWARE\Wow6432Node\Google

Studio snapshot edit registry

Navigate to Settings->Process Configuration.

Check the checkboxes for Enable windows class isolation and Always launch child processes as current user.

Studio snapshot process configuration

Set the project type to component and then click Build.

Studio snapshot project type

Click Ok to finish and close Turbo Studio.

Studio snapshot complete

Copy the created Chrome foldeer that contains the svm file from your VM to a fileshare.

Read /docs/deploying for information about deploying the application.

Questions? Talk to us.