Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 68128)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 68129)
@@ -1293,4 +1293,6 @@
     const char *pszProxy                = NULL;
     const char *pszHostname             = NULL;
+    RTCList<RTCString> arrPackageSelectionAdjustments;
+    // advance options:
     Utf8Str     strAbsAuxiliaryBasePath;
     const char *pszAuxiliaryBasePath    = NULL;
@@ -1301,4 +1303,5 @@
     const char *pszPostInstallCommand   = NULL;
     const char *pszExtraInstallKernelParameters = NULL;
+    // start vm related options:
     const char *pszSessionType          = "headless";
 
@@ -1327,4 +1330,6 @@
         { "--proxy",                            'y', RTGETOPT_REQ_STRING },
         { "--hostname",                         'H', RTGETOPT_REQ_STRING },
+        { "--package-selection-adjustment",     's', RTGETOPT_REQ_STRING },
+        // advance options:
         { "--auxiliary-base-path",              'x', RTGETOPT_REQ_STRING },
         { "--image-index",                      'm', RTGETOPT_REQ_UINT32 },
@@ -1333,4 +1338,5 @@
         { "--post-install-command",             'P', RTGETOPT_REQ_STRING },
         { "--extra-install-kernel-parameters",  'I', RTGETOPT_REQ_STRING },
+        // start vm related options:
         { "--session-type",                     'S', RTGETOPT_REQ_STRING },
     };
@@ -1423,5 +1429,9 @@
                 break;
 
-            case 'x':  // --auxiliary-base-path
+            case 's':   // --package-selection-adjustment
+                arrPackageSelectionAdjustments.append(ValueUnion.psz);
+                break;
+
+            case 'x':   // --auxiliary-base-path
                 vrc = RTPathAbsCxx(strAbsAuxiliaryBasePath, ValueUnion.psz);
                 if (RT_FAILURE(vrc))
@@ -1435,5 +1445,5 @@
                 break;
 
-            case 'c':  // --script-template
+            case 'c':   // --script-template
                 vrc = RTPathAbsCxx(strAbsScriptTemplatePath, ValueUnion.psz);
                 if (RT_FAILURE(vrc))
@@ -1442,5 +1452,5 @@
                 break;
 
-            case 'C':  // --post-install-script-template
+            case 'C':   // --post-install-script-template
                 vrc = RTPathAbsCxx(strAbsPostInstallScriptTemplatePath, ValueUnion.psz);
                 if (RT_FAILURE(vrc))
@@ -1551,4 +1561,14 @@
             if (pszHostname)
                 CHECK_ERROR_BREAK(ptrUnattended, COMSETTER(Hostname)(Bstr(pszHostname).raw()));
+            if (arrPackageSelectionAdjustments.size() == 1)
+                CHECK_ERROR_BREAK(ptrUnattended, COMSETTER(PackageSelectionAdjustments)(Bstr(arrPackageSelectionAdjustments[0]).raw()));
+            else if (arrPackageSelectionAdjustments.size() > 1)
+            {
+                RTCString strAdjustments;
+                strAdjustments.join(arrPackageSelectionAdjustments, ";");
+                CHECK_ERROR_BREAK(ptrUnattended, COMSETTER(PackageSelectionAdjustments)(Bstr(strAdjustments).raw()));
+            }
+
+            // advanced options:
             if (fSetImageIdx)
                 CHECK_ERROR_BREAK(ptrUnattended, COMSETTER(ImageIndex)(idxImage));
@@ -1603,4 +1623,5 @@
             SHOW_STR_ATTR(Proxy,                         "proxy");
             SHOW_STR_ATTR(Hostname,                      "hostname");
+            SHOW_STR_ATTR(PackageSelectionAdjustments,   "packageSelectionAdjustments");
             SHOW_STR_ATTR(AuxiliaryBasePath,             "auxiliaryBasePath");
             SHOW_ATTR(    ImageIndex,                    "imageIndex",               ULONG, "%u");
