Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 68090)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 68091)
@@ -3767,5 +3767,5 @@
   <interface
     name="IUnattended" extends="$unknown"
-    uuid="663fc677-ca00-4a24-b940-8741f76a898a"
+    uuid="68d72757-773b-4c13-9956-b5aa0a28e4a7"
     wsmap="managed"
     reservedMethods="4" reservedAttributes="16"
@@ -3779,5 +3779,5 @@
       <ol>
         <li>Call <link to="IMachine::createUnattendedInstaller"/> to create the object</li>
-        <li>Set the IUnattended attributes.</li>
+        <li>Set the relevant IUnattended attributes.</li>
         <li>Call <link to="IUnattended::prepare"/> for the object to check the
             attribute values and create an internal installer instance.</li>
@@ -3861,4 +3861,75 @@
     </attribute>
 
+    <attribute name="timeZone" type="wstring">
+      <desc>
+        The guest time zone specifier.
+
+        This is unfortunately guest OS specific.
+
+        Windows XP and earlier takes the index number from this table:
+        https://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx
+
+        Windows Vista and later takes the time zone string from this table:
+        https://technet.microsoft.com/en-us/library/cc749073(v=ws.10).aspx
+
+        Linux usually takes the TZ string from this table:
+        https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+
+        The default is currently UTC/GMT, but this may change to be same as
+        the host later.
+
+        TODO: Investigate automatic mapping between linux and the two windows
+              time zone formats.
+        TODO: Take default from host (this requires mapping).
+      </desc>
+    </attribute>
+
+    <attribute name="locale" type="wstring">
+      <desc>
+        The 5 letter locale identifier, no codesets or such.
+
+        The format is two lower case language letters (ISO 639-1), underscore ('_'),
+        and two upper case country letters (ISO 3166-1 alpha-2).  For instance
+        'en_US', 'de_DE', or 'ny_NO'.
+
+        The default is taken from the host if possible, with 'en_US' as fallback.
+      </desc>
+    </attribute>
+
+    <attribute name="country" type="wstring">
+      <desc>
+        The 2 upper case letter country identifier, ISO 3166-1 alpha-2.
+
+        This is used for mirrors and such.
+
+        The default is taken from the host when possible, falling back on
+        <link to="IUnattended::locale"/>.
+      </desc>
+    </attribute>
+
+    <attribute name="proxy" type="wstring">
+      <desc>
+        Proxy incantation to pass on to the guest OS installer.
+
+        This is important to get right if the guest OS installer is of the type
+        that goes online to fetch the packages (e.g. debian-*-netinst.iso) or
+        to fetch updates during the install process.
+
+        Format: [schema=]schema://[login@password:]proxy[:port][;...]
+
+        The default is taken from the host proxy configuration (once implemented).
+      </desc>
+    </attribute>
+
+    <attribute name="packageSelectionAdjustments" type="wstring">
+      <desc>
+        Guest OS specific package selection adjustments.
+
+        This is a semicolon separated list of keywords, and later maybe guest OS
+        package specifiers.  Currently the 'minimal' is the only recognized value,
+        and this only works with a selection of linux installers.
+      </desc>
+    </attribute>
+
     <attribute name="auxiliaryBasePath" type="wstring">
       <desc>
@@ -3876,4 +3947,5 @@
       <desc>
         The image index on installation CD/DVD used to install.
+
         Used only with Windows installation CD/DVD:
         https://technet.microsoft.com/en-us/library/cc766022%28v=ws.10%29.aspx
@@ -3924,18 +3996,66 @@
     </attribute>
 
-    <!-- See no point in having this any more.
-    <method name="loadSettings">
-      <desc>
-        Loads attributes from a file.
-
-        The internal rule is "attribute = value" like for instance
-        "isoPath = /correct/path/to/the/iso".  One line - one parameter.
-      </desc>
-
-      <param name="filename" type="wstring" dir="in">
-        <desc>File path.</desc>
-      </param>
-    </method>
-    -->
+    <attribute name="extraInstallKernelParameters" type="wstring">
+      <desc>
+        Extra kernel arguments passed to the install kernel of some guests.
+
+        This is currently only picked up by linux guests.  The exact parameters
+        are specific to the guest OS being installed of course.
+
+        After <link to="IUnattended::prepare"/> is called, it can be read to see
+        which parameters are being used.
+      </desc>
+    </attribute>
+
+    <attribute name="detectedOSTypeId" type="wstring" readonly="yes">
+      <desc>
+        The detected OS type ID (<link to="IGuestOSType::id"/>).
+
+        Set by <link to="IUnattended::detectIso"/> or <link to="IUnattended::prepare"/>.
+
+        Not yet implemented.
+      </desc>
+    </attribute>
+
+    <attribute name="detectedOSVersion" type="wstring" readonly="yes">
+      <desc>
+        The detected OS version string.
+
+        Set by <link to="IUnattended::detectIso"/> or <link to="IUnattended::prepare"/>.
+
+        Not yet implemented.
+      </desc>
+    </attribute>
+
+    <attribute name="detectedOSFlavor" type="wstring" readonly="yes">
+      <desc>
+        The detected OS flavor (e.g. server, desktop, etc)
+
+        Set by <link to="IUnattended::detectIso"/> or <link to="IUnattended::prepare"/>.
+
+        Not yet implemented.
+      </desc>
+    </attribute>
+
+    <attribute name="detectedOSHints" type="wstring" readonly="yes">
+      <desc>
+        Space separated list of other stuff detected about the OS and the
+        installation ISO.
+
+        Set by <link to="IUnattended::detectIso"/> or <link to="IUnattended::prepare"/>.
+
+        Not yet implemented.
+      </desc>
+    </attribute>
+
+    <method name="detectIsoOS">
+      <desc>
+        Detects the OS on the ISO given by <link to="IUnattended::isoPath"/> and sets
+        <link to="IUnattended::detectedOSTypeId"/>, <link to="IUnattended::detectedOSVersion"/>
+        <link to="IUnattended::detectedOSFlavor"/>, and <link to="IUnattended::detectedOSHints"/>.
+
+        Not yet implemented.
+      </desc>
+    </method>
 
     <method name="prepare">
@@ -3944,5 +4064,7 @@
 
         This will instantiate the installer based on the guest type associated
-        with the machine (see <link to="IMachine::OSTypeId"/>).
+        with the machine (see <link to="IMachine::OSTypeId"/>).  It will also
+        perform <link to="IUnattended::detectIsoOS"/> if not yet called on the
+        current <link to="IUnattended::isoPath"/> value.
       </desc>
     </method>
