[Forensics-changes] [guymager] 01/01: Adding upstream version 0.7.3

Michael Prokop mika at moszumanska.debian.org
Mon Feb 3 13:13:58 UTC 2014


This is an automated email from the git hooks/post-receive script.

mika pushed a commit to annotated tag upstream/0.7.3
in repository guymager.

commit c51511d36cfe9356e4f47dde980e23d5e150f949
Author: Michael Prokop <mika at debian.org>
Date:   Mon Feb 3 12:08:24 2014 +0100

    Adding upstream version 0.7.3
---
 aaff.cpp             |   2 +-
 aaff.h               |   2 +-
 aewf.cpp             |  10 ++-
 aewf.h               |   2 +-
 changelog            |  21 ++++-
 common.h             |   2 +-
 compileinfo.h        |   2 +-
 config.cpp           |  33 ++++++--
 config.h             |  10 ++-
 device.cpp           |  51 ++++++++++--
 device.h             |  17 +++-
 devicelistmodel.h    |   2 +-
 dlgabort.cpp         |   2 +-
 dlgabort.h           |   2 +-
 dlgacquire.cpp       |  18 +++-
 dlgacquire.h         |   2 +-
 dlgacquire_private.h |   2 +-
 dlgautoexit.cpp      |   2 +-
 dlgautoexit.h        |   2 +-
 dlgdirsel.cpp        |   2 +-
 dlgdirsel.h          |   2 +-
 dlgdirsel_private.h  |   2 +-
 dlgmessage.cpp       |   2 +-
 dlgmessage.h         |   2 +-
 dlgwait.cpp          |   2 +-
 dlgwait.h            |   2 +-
 error.cpp            |   2 +-
 error.h              |  24 +++---
 fifo.cpp             |   2 +-
 fifo.h               |   6 +-
 file.cpp             |  13 ++-
 file.h               |   2 +-
 guymager.cfg         |  38 +++++++--
 guymager.pro         |   2 +-
 guymager_cn.ts       | 165 ++++++++++++++++++++-----------------
 guymager_de.ts       | 161 ++++++++++++++++++++----------------
 guymager_en.ts       | 163 ++++++++++++++++++++-----------------
 guymager_fr.ts       | 155 ++++++++++++++++++++---------------
 guymager_it.ts       | 155 +++++++++++++++++++----------------
 guymager_nl.ts       | 115 ++++++++++++++------------
 hash.cpp             |   2 +-
 hash.h               |   2 +-
 info.cpp             |   2 +-
 info.h               |   2 +-
 infofield.cpp        |   2 +-
 infofield.h          |   2 +-
 itemdelegate.cpp     |   2 +-
 itemdelegate.h       |   2 +-
 main.cpp             |   7 +-
 main.h               |   2 +-
 mainwindow.cpp       |  10 ++-
 mainwindow.h         |   5 +-
 md5.cpp              |   2 +-
 md5.h                |   2 +-
 media.cpp            |   2 +-
 media.h              |   2 +-
 modules.h            |   2 +-
 qtutil.cpp           |   2 +-
 qtutil.h             |   2 +-
 runstats.cpp         |   2 +-
 runstats.h           |   2 +-
 sha1.cpp             |   2 +-
 sha1.h               |   2 +-
 sha256.cpp           |   2 +-
 sha256.h             |   2 +-
 table.cpp            |  10 ++-
 table.h              |   2 +-
 thread.cpp           |   2 +-
 thread.h             |   2 +-
 threadcompress.cpp   |  24 ++++--
 threadcompress.h     |   2 +-
 threadhash.cpp       |   2 +-
 threadhash.h         |   2 +-
 threadread.cpp       |   2 +-
 threadread.h         |   2 +-
 threadscan.cpp       |  68 ++++++++++++----
 threadscan.h         |   2 +-
 threadwrite.cpp      | 226 ++++++++++++++++++++++++++++++++++++++-------------
 threadwrite.h        |   2 +-
 util.cpp             |   2 +-
 util.h               |   2 +-
 81 files changed, 1011 insertions(+), 608 deletions(-)

diff --git a/aaff.cpp b/aaff.cpp
index df533bd..832923d 100644
--- a/aaff.cpp
+++ b/aaff.cpp
@@ -9,7 +9,7 @@
 //  Module:         Multithreaded AFF (AAFF = Advanced AFF)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/aaff.h b/aaff.h
index bb1b17b..f863c5c 100644
--- a/aaff.h
+++ b/aaff.h
@@ -9,7 +9,7 @@
 //  Module:         Multithreaded AFF (AAFF = Advanced AFF)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/aewf.cpp b/aewf.cpp
index cfaecc5..3f00930 100644
--- a/aewf.cpp
+++ b/aewf.cpp
@@ -9,7 +9,7 @@
 //  Module:         Multithreaded AEWF (AEWF = Advanced EWF)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -312,6 +312,7 @@ const QString AewfGetExtension (uint SegmentFileNr)
 
 // AewfCompress: No need to have an extra check if compression is set to "none". If this is the case, pAewf->ZipCompressionLevel
 // is set to 0 and compress2 won't do any compression (see libz / compress2 documentation).
+// As well, no need to check for compression level "empty", as AewfZipCompressionLevel is set to 0 in this case (see AewfInit)
 static APIRET AewfCompress (void *pDst, ulong *pDstLen, const void* pSrc, unsigned SrcLen)
 {
    int rc;
@@ -1276,9 +1277,10 @@ APIRET AewfInit (void)
    // ------------------
    switch (CONFIG(EwfCompression))
    {
-      case LIBEWF_COMPRESSION_NONE: AewfZipCompressionLevel = 0; AewfEwfCompressionLevel = 0x00; break;
-      case LIBEWF_COMPRESSION_FAST: AewfZipCompressionLevel = 1; AewfEwfCompressionLevel = 0x01; break;
-      case LIBEWF_COMPRESSION_BEST: AewfZipCompressionLevel = 9; AewfEwfCompressionLevel = 0x02; break;
+      case LIBEWF_COMPRESSION_NONE : AewfZipCompressionLevel = 0; AewfEwfCompressionLevel = 0x00; break;
+      case LIBEWF_COMPRESSION_EMPTY: AewfZipCompressionLevel = 0; AewfEwfCompressionLevel = 0x00; break;
+      case LIBEWF_COMPRESSION_FAST : AewfZipCompressionLevel = 1; AewfEwfCompressionLevel = 0x01; break;
+      case LIBEWF_COMPRESSION_BEST : AewfZipCompressionLevel = 9; AewfEwfCompressionLevel = 0x02; break;
       default: CHK_EXIT (ERROR_AEWF_INVALID_COMPRESSION_LEVEL)
    }
 
diff --git a/aewf.h b/aewf.h
index bec446b..24991ce 100644
--- a/aewf.h
+++ b/aewf.h
@@ -9,7 +9,7 @@
 //  Module:         Multithreaded AEWF (AEWF = Advanced EWF)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/changelog b/changelog
index d20e406..04c066b 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,22 @@
+guymager-beta (0.7.3-1) unstable; urgency=low
+  * Removed logical image format LVF
+  * Following patches by Thorsten Glaser <tg at mirbsd.de>, adapted by Guy:
+    Add new libewf formats: Encase7, Linen6, Linen7
+    Port to newer libewf API to fix FTBFS (Closes: #729651)
+  * Removed bug when SHA1 was the only selected hash algorithm
+  * Wrong NativePath, ByPath and Interface display when moving device
+    from one port to another without refreshing device list in between.
+  * New cfg parameter AffEnabled
+ -- Guy Voncken <vogu00 at gmail.com>  Fri, 17 Dec 2014 16:00:00 +0100
+
+guymager-beta (0.7.2-1) unstable; urgency=low
+  * Adding support for empty block compression
+  * GUI Status text corrected when all verfications are off
+  * Scanning also /usr/lib64 for libparted
+  * New screen columns NativePath, ByPath and Interface adedd
+  * RegExp search for hidden and local devices adedd
+ -- Guy Voncken <vogu00 at gmail.com>  Wed, 12 Dec 2013 09:00:00 +0100
+
 guymager-beta (0.7.1-1) unstable; urgency=low
   * Duplicate image creation
   * New RunStats module
@@ -14,7 +33,7 @@ guymager-beta (0.7.1-1) unstable; urgency=low
   * Removed race condition where write thread would write hash into image
     before it has been calculated by hash thread.
   * SHA-1 support added
- -- Guy Voncken <vogu00 at gmail.com>  Thu, 15 Mar 2012 16:45:00 +0100
+ -- Guy Voncken <vogu00 at gmail.com>  Thu, 15 Mar 2013 16:45:00 +0100
 
 guymager-beta (0.6.13-1) unstable; urgency=low
   * Package dependency to udisks added (for recent Ubuntu)
diff --git a/common.h b/common.h
index 3ddae74..f9bab37 100644
--- a/common.h
+++ b/common.h
@@ -9,7 +9,7 @@
 //  Module:         Standard include file
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/compileinfo.h b/compileinfo.h
index eeb30b2..1004e04 100644
--- a/compileinfo.h
+++ b/compileinfo.h
@@ -12,7 +12,7 @@
 // See .pro file as well.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/config.cpp b/config.cpp
index c7144a5..83a8cda 100644
--- a/config.cpp
+++ b/config.cpp
@@ -9,7 +9,7 @@
 //  Module:         Application configuration data
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -29,6 +29,8 @@
 #include "common.h"
 
 #include <limits.h>
+#include <unistd.h>
+
 //#include "proc/sysinfo.h"  // Required in order to get smp_num_cpus for finding out the number of CPUs in the system
 
 #include <qcolor.h>
@@ -272,7 +274,10 @@ static t_ToolCfgSet SetArrEwfFormat[] =
    {  "FTK"     ,         LIBEWF_FORMAT_FTK    },
    {  "Linen5"  ,         LIBEWF_FORMAT_LINEN5 },
    {  "Linen6"  ,         LIBEWF_FORMAT_LINEN6 },
-   {  "LVF"     ,         LIBEWF_FORMAT_LVF    },
+   #if (LIBEWF_VERSION >= 20130416)
+   {  "Encase7" ,         LIBEWF_FORMAT_ENCASE7},
+   {  "Linen7"  ,         LIBEWF_FORMAT_LINEN7 },
+   #endif
    {  "Guymager",         t_File::AEWF         }, // AEWF format is a format on its own (for the function calls) and at the same time a
    {  "AEWF"    ,         t_File::AEWF         }, // subformat of EWF (for the user interface). Looks a bit strange at first sight, but
    {   NULL     ,         0                    }  // probably is the best compromise.
@@ -283,10 +288,11 @@ static t_ToolCfgSet SetArrEwfCompression[] =
 {
    // Name in cfg file  Corresponding value
    // ----------------------------------------
-   {  "None",           LIBEWF_COMPRESSION_NONE},
-   {  "Fast",           LIBEWF_COMPRESSION_FAST},
-   {  "Best",           LIBEWF_COMPRESSION_BEST},
-   {   NULL ,           0                      }
+   {  "None",           LIBEWF_COMPRESSION_NONE },
+   {  "Empty",          LIBEWF_COMPRESSION_EMPTY},
+   {  "Fast",           LIBEWF_COMPRESSION_FAST },
+   {  "Best",           LIBEWF_COMPRESSION_BEST },
+   {   NULL ,           0                       }
 };
 
 #define CONFIG_COMPRESSIONTHREADS_AUTO -1
@@ -410,6 +416,7 @@ static t_ToolCfgParamDesc CfgParamDescArr[] =
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"EwfCompression"                , CFGTYPE_SET    , ELT(EwfCompression)                ,                0,       0,       0, INIARR(SetArrEwfCompression)    }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"EwfCompressionThreshold"       , CFGTYPE_DOUBLE , ELT(EwfCompressionThreshold)       ,                0,     0.0,     1.0, NULL                            }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"EwfNaming"                     , CFGTYPE_SET    , ELT(EwfNaming)                     ,                0,       0,       0, INIARR(SetArrEwfNaming)         }, CFG_FILLUP_FORLINT},
+   {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"AffEnabled"                    , CFGTYPE_SET    , ELT(AffEnabled)                    ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"AffCompression"                , CFGTYPE_INTEGER, ELT(AffCompression)                ,                0,       1,       9, NULL                            }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"AffMarkBadSectors"             , CFGTYPE_SET    , ELT(AffMarkBadSectors)             ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"SpecialFilenameChars"          , CFGTYPE_STRING , ELT_SIZ(SpecialFilenameChars)      ,                         0,       0, NULL                            }, CFG_FILLUP_FORLINT},
@@ -439,6 +446,7 @@ static t_ToolCfgParamDesc CfgParamDescArr[] =
    {CFGASSIGN_BOTH_MULTIPLE, CfgIniJobs , {"LimitJobs"                     , CFGTYPE_SET    , ELT(LimitJobs)                     ,                0,       1,       8, INIARR(SetArrMaximumJobs)       }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"JobMaxBadSectors"              , CFGTYPE_INTEGER, ELT(JobMaxBadSectors)              ,                0,       0,99999999, NULL                            }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"JobDisconnectTimeout"          , CFGTYPE_INTEGER, ELT(JobDisconnectTimeout)          ,                0,       0,99999999, NULL                            }, CFG_FILLUP_FORLINT},
+   {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"LocalHiddenDevicesUseRegExp"   , CFGTYPE_SET    , ELT(LocalHiddenDevicesUseRegExp)   ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"SignalHandling"                , CFGTYPE_SET    , ELT(SignalHandling)                ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"WriteToDevNull"                , CFGTYPE_SET    , ELT(WriteToDevNull)                ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
    {CFGASSIGN_BOTH_MULTIPLE, NULL       , {"UseMemWatch"                   , CFGTYPE_SET    , ELT(UseMemWatch)                   ,                0,       0,       0, INIARR(SetArrBoolean)           }, CFG_FILLUP_FORLINT},
@@ -696,6 +704,12 @@ APIRET CfgReadConfiguration (t_pcchar pCfgFileName)
    CHK (ToolCfgScanConfiguration (pCfgFileName, "", &CfgParamDescArr[0], &CfgTableDescArr[0]))
    CHK (ToolCfgLogConfiguration (CfgParamDescArr))
 
+   if (!CONFIG(AffEnabled) && (CONFIG(DefaultFormat) == t_File::AAFF))
+   {
+      LOG_INFO ("Problem in configuration detected: AffEnabled is off, but AFF is set as default format. Please correct settings for parameter AffEnabled or DefaultFormat.")
+      CHK (ERROR_CFG_INCOHERENCY_DETECTED)
+   }
+
    return NO_ERROR;
 }
 
@@ -717,12 +731,14 @@ QString CfgGetMacAddress (void)
 APIRET CfgIniLang (t_pToolCfgParamDesc pCfgParamDesc, t_pchar *ppErrorText)
 {
    QString Language = CONFIG(Language);
+   QString LanguageSystem;
 
    *ppErrorText = NULL;
    if (Language.compare ("AUTO", Qt::CaseInsensitive) == 0)
    {
-      QString LocaleName = QLocale::system().name();
-      Language = LocaleName.split('_')[0];
+//      LanguageSystem = QLocale::system().name();       // This is not reliable. Qt seems to use LC_NUMERIC for selecting the language, which
+      LanguageSystem = QString (getenv ("LANGUAGE"));    // is not what we want. So, let's read the LANGUAGE evironment variable ourselves.
+      Language = LanguageSystem.split('_')[0];
       snprintf (CONFIG(Language), sizeof(CONFIG(Language)), "%s", QSTR_TO_PSZ(Language));
 
       LOG_INFO ("Parameter %s set to 'AUTO', switching to language '%s'", pCfgParamDesc->DataDesc.pName, CONFIG(Language))
@@ -1429,6 +1445,7 @@ APIRET CfgInit (void)
    int         i;
 
    CHK (TOOL_ERROR_REGISTER_CODE (ERROR_CFG_ONLY_TEMPLATE_GENERATED))
+   CHK (TOOL_ERROR_REGISTER_CODE (ERROR_CFG_INCOHERENCY_DETECTED))
 
    pCfgData = &CfgLocal.CfgData;
    memset (pCfgData, CONFIG_DUMMY_FILL, sizeof (t_CfgData));
diff --git a/config.h b/config.h
index 7e2d294..fff1dfe 100644
--- a/config.h
+++ b/config.h
@@ -7,7 +7,7 @@
 //                  Section Nouvelles Technologies
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -118,6 +118,9 @@ typedef enum
    EWFNAMING_FTK
 } t_CfgEwfNaming;
 
+const int LIBEWF_COMPRESSION_EMPTY = 100; // Take care not to collide with LIBEWF definitions LIBEWF_COMPRESSION_FAST, LIBEWF_COMPRESSION_BEST etc.
+
+
 // ATTENTION: The data of the following structure is filled in by the CFG tool. As this
 // one doesn't know about 'bool' (it's written in ANSI C), bool MUST not be used here.
 // ------------------------------------------------------------------------------------
@@ -168,6 +171,7 @@ typedef struct
    int                  EwfCompression;
    double               EwfCompressionThreshold;
    t_CfgEwfNaming       EwfNaming;
+   int                  AffEnabled;
    int                  AffCompression;
    int                  AffMarkBadSectors;
    char                 SpecialFilenameChars[CFG_MAX_MISC_LEN+1];
@@ -185,6 +189,7 @@ typedef struct
    int                  LimitJobs;
    int                  JobMaxBadSectors;
    int                  JobDisconnectTimeout;
+   int                  LocalHiddenDevicesUseRegExp;
 
    int                  SignalHandling;
    int                  WriteToDevNull;
@@ -358,7 +363,8 @@ void CfgFontPrint (void);
 
 enum
 {
-   ERROR_CFG_ONLY_TEMPLATE_GENERATED = ERROR_BASE_CFG + 1
+   ERROR_CFG_ONLY_TEMPLATE_GENERATED = ERROR_BASE_CFG + 1,
+   ERROR_CFG_INCOHERENCY_DETECTED
 };
 
 
diff --git a/device.cpp b/device.cpp
index 5f063cf..c54170e 100644
--- a/device.cpp
+++ b/device.cpp
@@ -11,7 +11,7 @@
 //                  window.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -170,6 +170,9 @@ void t_Device::Initialise (void)
 //   this->SerialNumber      = QString();
 //   this->LinuxDevice       = QString();
 //   this->Model             = QString();
+//   this->NativePath        = QString();
+//   this->ByPath            = QString();
+//   this->Interface         = QString();
    this->Local                = false;
    this->SectorSize           = 0;
    this->SectorSizePhys       = 0;
@@ -231,7 +234,9 @@ void t_Device::Initialise (void)
 }
 
 void t_Device::InitialiseDeviceSpecific (const QString &SerialNumber, const QString &LinuxDevice, const QString &Model,
-                                         quint64 SectorSize, quint64 SectorSizePhys, quint64 Size)
+                                         quint64 SectorSize, quint64 SectorSizePhys, quint64 Size,
+                                         const QString &NativePath, const QString &ByPath, const QString &Interface)
+
 {                                        //lint !e578: Declaration of symbol 'Xxx' hides symbol 't_Device::Xxx'
    this->SerialNumber   = SerialNumber;
    this->LinuxDevice    = LinuxDevice;
@@ -241,6 +246,9 @@ void t_Device::InitialiseDeviceSpecific (const QString &SerialNumber, const QStr
    this->SectorSize     = SectorSize;
    this->SectorSizePhys = SectorSizePhys;
    this->Size           = Size;
+   this->NativePath     = NativePath;
+   this->ByPath         = ByPath;
+   this->Interface      = Interface;
 
 //   #define FAKE_DEVICE_SIZE
    #ifdef FAKE_DEVICE_SIZE
@@ -255,13 +263,16 @@ void t_Device::InitialiseDeviceSpecific (const QString &SerialNumber, const QStr
 }
 
 t_Device::t_Device (const QString &SerialNumber, const QString &LinuxDevice, const QString &Model,
-                    quint64 SectorSize, quint64 SectorSizePhys, quint64 Size) :
+                    quint64 SectorSize, quint64 SectorSizePhys, quint64 Size,
+                    const QString &NativePath,
+                    const QString &ByPath,
+                    const QString &Interface) :
    Error        (this),
    Acquisition1 (this, 1),
    Acquisition2 (this, 2)
 {                   //lint !e578: Declaration of symbol 'Xxx' hides symbol 't_Device::Xxx'
    Initialise ();
-   InitialiseDeviceSpecific (SerialNumber, LinuxDevice, Model, SectorSize, SectorSizePhys, Size);
+   InitialiseDeviceSpecific (SerialNumber, LinuxDevice, Model, SectorSize, SectorSizePhys, Size, NativePath, ByPath, Interface);
 }
 
 t_Device::t_Device (const QString &SerialNumber, const PedDevice *pPedDev) :
@@ -272,7 +283,7 @@ t_Device::t_Device (const QString &SerialNumber, const PedDevice *pPedDev) :
    Initialise ();
    InitialiseDeviceSpecific (SerialNumber, pPedDev->path, pPedDev->model,
                                            (quint64) pPedDev->sector_size, (quint64) pPedDev->phys_sector_size,
-                                           (quint64) pPedDev->length * (quint64) pPedDev->sector_size);
+                                           (quint64) pPedDev->length * (quint64) pPedDev->sector_size, NativePath, ByPath, Interface);
 }
 
 t_Device::~t_Device()
@@ -287,7 +298,8 @@ t_Device::~t_Device()
 
 bool t_Device::HasHashThread (void) const
 {
-   return CONFIG (UseSeparateHashThread) && (Acquisition1.CalcMD5 ||
+   return CONFIG (UseSeparateHashThread) && (Acquisition1.CalcMD5  ||
+                                             Acquisition1.CalcSHA1 ||
                                              Acquisition1.CalcSHA256);
 }
 
@@ -347,6 +359,21 @@ QVariant t_Device::GetLinuxDevice (t_pDevice pDevice)
    return pDevice->LinuxDevice;
 }
 
+QVariant t_Device::GetNativePath (t_pDevice pDevice)
+{
+   return pDevice->NativePath;
+}
+
+QVariant t_Device::GetByPath (t_pDevice pDevice)
+{
+   return pDevice->ByPath;
+}
+
+QVariant t_Device::GetInterface (t_pDevice pDevice)
+{
+   return pDevice->Interface;
+}
+
 QVariant t_Device::GetModel (t_pDevice pDevice)
 {
    return pDevice->Model;
@@ -355,6 +382,7 @@ QVariant t_Device::GetModel (t_pDevice pDevice)
 QVariant t_Device::GetState (t_pDevice pDevice)
 {
    QString StrState;
+   bool    HasVerifications;
 
    switch (pDevice->State)
    {
@@ -432,11 +460,16 @@ QVariant t_Device::GetState (t_pDevice pDevice)
       case VerifyPaused : StrState = t_MainWindow::tr("Device disconnected, verification paused"); break;
       case Cleanup      : StrState = t_MainWindow::tr("Cleanup" ); break;
       case Finished     : StrState = t_MainWindow::tr("Finished");
+                          HasVerifications =  (pDevice->Acquisition1.VerifySrc) ||
+                                              (pDevice->Acquisition1.VerifyDst) ||
+                                              ((pDevice->Acquisition2.VerifyDst) && pDevice->Duplicate);
                           if (pDevice->Duplicate)
                           {
                              if (!pDevice->Error.Get() && !pDevice->Error.Get(1) && !pDevice->Error.Get(2) && pDevice->HashMatch())
                              {
-                                StrState += t_MainWindow::tr("Verified & ok", "Status column");
+                                if (HasVerifications)
+                                     StrState += " - " + t_MainWindow::tr("Verified & ok", "Status column");
+//                                else StrState += " - " + t_MainWindow::tr("ok"           , "Status column");
                              }
                              else
                              {
@@ -460,7 +493,9 @@ QVariant t_Device::GetState (t_pDevice pDevice)
                           {
                              if (!pDevice->Error.Get() && !pDevice->Error.Get(1) && pDevice->HashMatch())
                              {
-                                StrState += " - " + t_MainWindow::tr("Verified & ok", "Status column");
+                                if (HasVerifications)
+                                     StrState += " - " + t_MainWindow::tr("Verified & ok", "Status column");
+//                                else StrState += " - " + t_MainWindow::tr("ok"           , "Status column");
                              }
                              else
                              {
diff --git a/device.h b/device.h
index ec31b05..3583cc8 100644
--- a/device.h
+++ b/device.h
@@ -7,7 +7,7 @@
 //                  Section Nouvelles Technologies
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -261,11 +261,17 @@ class t_Device
    public:
       t_Device (const QString &SerialNumber=QString(), const PedDevice *pPedDev=NULL);
       t_Device (const QString &SerialNumber, const QString &LinuxDevice, const QString &Model,
-                                             quint64 SectorSize, quint64 SectorSizePhys, quint64 Size=0);
+                                             quint64 SectorSize, quint64 SectorSizePhys, quint64 Size=0,
+                                             const QString &NativePath = QString(),
+                                             const QString &ByPath     = QString(),
+                                             const QString &Interface  = QString());
      ~t_Device ();
 
       static QVariant GetSerialNumber        (t_pDevice pDevice);
       static QVariant GetLinuxDevice         (t_pDevice pDevice);
+      static QVariant GetNativePath          (t_pDevice pDevice);
+      static QVariant GetByPath              (t_pDevice pDevice);
+      static QVariant GetInterface           (t_pDevice pDevice);
       static QVariant GetModel               (t_pDevice pDevice);
       static QVariant GetState               (t_pDevice pDevice);
       static QVariant GetAddStateInfo        (t_pDevice pDevice);
@@ -445,12 +451,15 @@ class t_Device
    private:
       void Initialise (void);
       void InitialiseDeviceSpecific (const QString &SerialNumber, const QString &LinuxDevice, const QString &Model,
-                                    quint64 SectorSize, quint64 SectorSizePhys, quint64 Size);
-
+                                    quint64 SectorSize, quint64 SectorSizePhys, quint64 Size,
+                                    const QString &NativePath, const QString &ByPath, const QString &Interface);
 
    public:  QString                   SerialNumber;
             QString                   Model;
             QString                   LinuxDevice;      // for instance /dev/hda
+            QString                   NativePath;       // for instance /sys/devices/pci0000:00/0000:00:1f.2/ata8/host7/target7:0:0/7:0:0:0/block/sdd
+            QString                   ByPath;           // for instance /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
+            QString                   Interface;        // for instance usb, ata, virtual
             bool                      Local;            // it's a local device (cannot be acquired)
             quint64                   SectorSize;
             quint64                   SectorSizePhys;
diff --git a/devicelistmodel.h b/devicelistmodel.h
index b544039..54691d1 100644
--- a/devicelistmodel.h
+++ b/devicelistmodel.h
@@ -10,7 +10,7 @@
 //                  screen
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgabort.cpp b/dlgabort.cpp
index 6eb39a4..b041676 100644
--- a/dlgabort.cpp
+++ b/dlgabort.cpp
@@ -9,7 +9,7 @@
 //  Module:         Dialog that is opened when aborting an acquisition
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgabort.h b/dlgabort.h
index a6c5d52..ff1e7e6 100644
--- a/dlgabort.h
+++ b/dlgabort.h
@@ -9,7 +9,7 @@
 //  Module:         Dialog that is opened when aborting an acquisition
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgacquire.cpp b/dlgacquire.cpp
index 7c60e78..c12aab9 100644
--- a/dlgacquire.cpp
+++ b/dlgacquire.cpp
@@ -9,7 +9,7 @@
 //  Module:         Acquisition dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -678,7 +678,16 @@ t_DlgAcquire::t_DlgAcquire (t_pDevice pDevice, bool Clone, t_pDeviceList pDevice
 
       pLayoutFormat->addWidget  (pOwn->pRadioButtonFormatDD );
       pLayoutFormat->addWidget  (pOwn->pRadioButtonFormatEWF);
-      pLayoutFormat->addWidget  (pOwn->pRadioButtonFormatAFF);
+      if (CONFIG(AffEnabled))
+      {
+         pLayoutFormat->addWidget  (pOwn->pRadioButtonFormatAFF);
+      }
+      else
+      {
+         pOwn->pRadioButtonFormatAFF->hide();
+         pOwn->pRadioButtonFormatAFF->setEnabled(false);
+         pOwn->pRadioButtonFormatAFF->setChecked(false);
+      }
 
       if (Duplicate)
       {
@@ -1236,7 +1245,7 @@ void t_DlgAcquire::Accept (bool DuplicatePressed)
             return;
          }
          SplitSize = NumValue * UnitIndexToMultiplier (DlgAcquireGetField(CFG_DLGACQUIRE_SPLITFILEUNIT)->pComboBox->currentIndex());
-         #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015))
+         #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015) && (LIBEWF_VERSION != 20130416))
             #error "Please check EWF documentation for newer Encase formats and adjust following code"
          #endif
          if (pOwn->pRadioButtonFormatEWF->isChecked())
@@ -1257,9 +1266,10 @@ void t_DlgAcquire::Accept (bool DuplicatePressed)
             {
                if ((SplitSize > EWF_MAX_SEGMENT_SIZE) || (SplitSize < EWF_MIN_SEGMENT_SIZE))
                {
+                  // function libewf_segment_file_write_chunks_section_correction() only uses INT64_MAX chunk size for Encase6 not Encase7
                   t_MessageBox::information (this, tr ("Incorrect value", "Dialog title"),
                                                    tr ("The split size for the configured EWF format must be in the range %1 - %2 MiB. "
-                                                       "For bigger files, switch to ""Encase6"" format or later (see Guymager configuration file, parameter EwfFormat).")
+                                                       "For bigger files, switch to ""Encase6"" format or ""Guymager"" (see Guymager configuration file, parameter EwfFormat).")
                                                    .arg(EWF_MIN_SEGMENT_SIZE/(1024*1024))
                                                    .arg(EWF_MAX_SEGMENT_SIZE/(1024*1024)), QMessageBox::Ok);
                   return;
diff --git a/dlgacquire.h b/dlgacquire.h
index 5ce5d32..2b05cfd 100644
--- a/dlgacquire.h
+++ b/dlgacquire.h
@@ -9,7 +9,7 @@
 //  Module:         Acquisition dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgacquire_private.h b/dlgacquire_private.h
index ef567f6..df9ebc7 100755
--- a/dlgacquire_private.h
+++ b/dlgacquire_private.h
@@ -9,7 +9,7 @@
 //  Module:         Private definitions of acquisition dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgautoexit.cpp b/dlgautoexit.cpp
index d6a4826..fc049f6 100644
--- a/dlgautoexit.cpp
+++ b/dlgautoexit.cpp
@@ -9,7 +9,7 @@
 //  Module:         Auto exit dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgautoexit.h b/dlgautoexit.h
index c97fa27..c755602 100644
--- a/dlgautoexit.h
+++ b/dlgautoexit.h
@@ -9,7 +9,7 @@
 //  Module:         Auto exit dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgdirsel.cpp b/dlgdirsel.cpp
index e6a94bd..dc93bfb 100644
--- a/dlgdirsel.cpp
+++ b/dlgdirsel.cpp
@@ -9,7 +9,7 @@
 //  Module:         Directory selection dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgdirsel.h b/dlgdirsel.h
index 185bd3a..8506c29 100644
--- a/dlgdirsel.h
+++ b/dlgdirsel.h
@@ -9,7 +9,7 @@
 //  Module:         Directory selection dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgdirsel_private.h b/dlgdirsel_private.h
index 9cea854..a6f2b71 100644
--- a/dlgdirsel_private.h
+++ b/dlgdirsel_private.h
@@ -9,7 +9,7 @@
 //  Module:         Private definitions of directory selection dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgmessage.cpp b/dlgmessage.cpp
index 96cb7c4..0125548 100644
--- a/dlgmessage.cpp
+++ b/dlgmessage.cpp
@@ -9,7 +9,7 @@
 //  Module:         Different message boxes we need all the time
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgmessage.h b/dlgmessage.h
index edc68e4..912fa10 100644
--- a/dlgmessage.h
+++ b/dlgmessage.h
@@ -9,7 +9,7 @@
 //  Module:         Different message dialogs and boxes we need all the time
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgwait.cpp b/dlgwait.cpp
index 161cdff..ef276a3 100644
--- a/dlgwait.cpp
+++ b/dlgwait.cpp
@@ -9,7 +9,7 @@
 //  Module:         Wait dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/dlgwait.h b/dlgwait.h
index 0c759f0..92addc5 100644
--- a/dlgwait.h
+++ b/dlgwait.h
@@ -9,7 +9,7 @@
 //  Module:         Wait dialog
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/error.cpp b/error.cpp
index 661dd26..179d2d5 100644
--- a/error.cpp
+++ b/error.cpp
@@ -9,7 +9,7 @@
 //  Module:         Error handling utilities
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/error.h b/error.h
index 4ab3e26..35278b8 100644
--- a/error.h
+++ b/error.h
@@ -9,7 +9,7 @@
 //  Module:         Error handling utilities
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -82,17 +82,17 @@ APIRET ErrorDeInit (void);
 
 
 
-#define CHK_EXIT(Func)                        \
-   {                                          \
-      APIRET ec;                              \
-      /*lint -save -e506 -e774 -e1551*/       \
-      if ((ec = Func) != NO_ERROR)            \
-      {                                       \
-         (void)ToolErrorCheck (__FFL__, ec);  \
-         ErrorExit ();                        \
-      }                                       \
-      /*lint -restore */                      \
-   }
+#define CHK_EXIT(Func)                     \
+{                                          \
+   APIRET ec;                              \
+   /*lint -save -e506 -e774 -e1551*/       \
+   if ((ec = Func) != NO_ERROR)            \
+   {                                       \
+      (void)ToolErrorCheck (__FFL__, ec);  \
+      ErrorExit ();                        \
+   }                                       \
+   /*lint -restore */                      \
+}
 
 
 #define CHK_EXIT_POPUP_MSG(Func,pMsg)         \
diff --git a/fifo.cpp b/fifo.cpp
index 6f64bd8..938fe13 100644
--- a/fifo.cpp
+++ b/fifo.cpp
@@ -9,7 +9,7 @@
 //  Module:         The central queues for pipelined data processing
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/fifo.h b/fifo.h
index cd031b6..30d8695 100644
--- a/fifo.h
+++ b/fifo.h
@@ -9,7 +9,7 @@
 //  Module:         The central queues for pipelined data processing
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -38,11 +38,11 @@
 #ifndef _LIBEWF_H
    #include <libewf.h>
 
-   #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015))
+   #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015) && (LIBEWF_VERSION != 20130416))
       #error "Please check EWF documentation for newer Encase formats and adjust following code"
    #endif
 
-   #if (LIBEWF_VERSION == 20111015)
+   #ifndef LIBEWF_HANDLE
       #define LIBEWF_HANDLE libewf_handle_t
    #endif
 
diff --git a/file.cpp b/file.cpp
index aa2cdef..9813c5e 100644
--- a/file.cpp
+++ b/file.cpp
@@ -9,7 +9,7 @@
 //  Module:         Everything related to file names, extension names, paths...
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -79,6 +79,11 @@ APIRET t_File::GetFormatDescription (t_Format Format, bool Clone, int DdSplitDec
             case LIBEWF_FORMAT_SMART  : SubFormat="Smart"   ; break;
             case LIBEWF_FORMAT_LVF    : SubFormat="LVF"     ; break;
             case LIBEWF_FORMAT_LINEN5 : SubFormat="Linen5"  ; break;
+            case LIBEWF_FORMAT_LINEN6 : SubFormat="Linen6"  ; break;
+            #if (LIBEWF_VERSION >= 20130416)
+            case LIBEWF_FORMAT_ENCASE7: SubFormat="Encase7" ; break;
+            case LIBEWF_FORMAT_LINEN7 : SubFormat="Linen7"  ; break;
+            #endif
             case AEWF                 : SubFormat="Guymager"; break;
             default                   : CHK (ERROR_FILE_INVALID_EWF_FORMAT)
          }
@@ -126,10 +131,14 @@ APIRET t_File::GetFormatExtension (t_Format Format, bool Clone, int DdSplitDecim
             case LIBEWF_FORMAT_ENCASE5:
             case LIBEWF_FORMAT_ENCASE6:
             case LIBEWF_FORMAT_LINEN5 :
+            case LIBEWF_FORMAT_LINEN6 :
+            #if (LIBEWF_VERSION >= 20130416)
+            case LIBEWF_FORMAT_ENCASE7:
+            case LIBEWF_FORMAT_LINEN7 :
+            #endif
             case LIBEWF_FORMAT_FTK    :
             case AEWF                 : Wild=".E??"; Human=".Exx"; break;
             case LIBEWF_FORMAT_SMART  : Wild=".s??"; Human=".sxx"; break;
-            case LIBEWF_FORMAT_LVF    : Wild=".l??"; Human=".lxx"; break;
             default                   : CHK (ERROR_FILE_INVALID_EWF_FORMAT)
          }
          break;
diff --git a/file.h b/file.h
index 584b49c..d1f29a3 100644
--- a/file.h
+++ b/file.h
@@ -10,7 +10,7 @@
 //                  etc
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/guymager.cfg b/guymager.cfg
index 481b97a..a4acbae 100644
--- a/guymager.cfg
+++ b/guymager.cfg
@@ -152,9 +152,9 @@ REM dialog. The table reflects the column order, i.e. the top most column in the
 REM as the first one left in the GUI. Columns may also be repeated in order to have them displayed more
 REM than once.
 REM    ColumnName       The column name reference. This may be one of the following: SerialNr, LinuxDevice,
-REM                     Model, State, AdditionalStateInfo, Size, HiddenAreas, BadSectors, Progress, AverageSpeed,
-REM                     TimeRemaining, FifoUsage, SectorSizeLog, SectorSizePhys, CurrentSpeed, Examiner and
-REM                     UserField. See below for further details on column UserField.
+REM                     Model, NativePath, ByPath, Interface, State, AdditionalStateInfo, Size, HiddenAreas,
+REM                     BadSectors, Progress, AverageSpeed, TimeRemaining, FifoUsage, SectorSizeLog, SectorSizePhys,
+REM                     CurrentSpeed, Examiner and UserField. See below for further details on column UserField.
 REM    Alignment        Alignment inside the table cell: LEFT, RIGHT or CENTER.
 REM    MinWidth         On startup, Guymager gives every column the size it needs for showing its contents. But
 REM                     certain columns change their content length while Guymager is running. As it might be
@@ -180,6 +180,9 @@ TABLE Columns None
        'SerialNr'                LEFT              0        YES         YES
        'LinuxDevice'             LEFT              0        YES         YES
        'Model'                   LEFT              0        YES         YES
+       'NativePath'              LEFT              0         NO          NO
+       'ByPath'                  LEFT              0         NO          NO
+       'Interface'               LEFT              0         NO          NO
        'State'                   LEFT            200        YES          NO
        'AdditionalStateInfo'     LEFT              0         NO          NO
        'Size'                    RIGHT             0        YES         YES
@@ -255,8 +258,14 @@ REM                          require only very little RAM and still are as fast
 REM                          the program uses libewf i order to create the EWF images.
 REM                          Select Guymager or Encase6 in order to be able to produce segment files bigger than 2GiB.
 REM
-REM EwfCompression           The compression level for EWF images. Possible values are: None, Fast, Best.
-REM                          See ewflib for more information.
+REM EwfCompression           The compression level for EWF images. Possible values are:
+REM                              None   No compression at all, images become very big. Not recommended.
+REM                              Empty  With this setting, Guymager does no compression, except if a block contains 
+REM                                     zero bytes only. Such blocks are replaced by their compressed equivalent. 
+REM                                     Optimal settings for slow systems.
+REM                              Fast   Fast Z compression. Optimal setting for most imagers.
+REM                              Best   Best Z compression. Images normally become slightly smaller than
+REM                                     with setting "Fast", but CPU load grows heavily. Not recommended.
 REM
 REM EwfCompressionThreshold  This threshold indicates a minimal compression ratio that must be achieved or else the
 REM                          data is stored uncompressed. The default value is 0.999 which means, that a chunk will
@@ -275,6 +284,11 @@ REM                             FTK  After ZZZ follows E14972, E14973 and so on.
 REM                                  Guymager version 0.6.10 and later.
 REM                          Attention: This parameter only has effect if EwfFormat is set to Guymager.
 REM
+REM AffEnabled               Simson Garfinkel, the inventor of the AFF format, recommends not to use AFF any longer.
+REM                          Therefore, this switch has been introduced and it is 'false' by default. You might use EWF
+REM                          instead.
+REM                          Switch AffEnabled on in case you need to generate AFF images.
+REM
 REM AffCompression           The compression level for AFF images. Valid range: 1 - 9. A value of 1 results in a
 REM                          fast, minimal compression and 9 in a slow, high compression.
 REM                          See aff documentation for more information.
@@ -317,6 +331,7 @@ EwfFormat               = Guymager
 EwfCompression          = FAST
 EwfCompressionThreshold = 0.999
 EwfNaming               = FTK
+AffEnabled              = false
 AffCompression          = 1
 AffMarkBadSectors       = TRUE
 SpecialFilenameChars    = ''
@@ -862,11 +877,20 @@ ENDTABLE
 
 REM Tables LocalDevices and HiddenDevices
 REM The local devices may be entered here. Guymager will mark them colored and will not allow to acquire them. The
-REM table allows for entering the Linux device path, the serial number or the model. Examples:
-REM    '/dev/hda'
+REM table allows for entering the Linux device path, serial number, model, native path or by path. Examples:
+REM    '/dev/sda'
 REM    'S042J10XC57542'
 REM
 REM Table HiddenDevices works the same way, except that devices listed here won't appear at all in the Guymaer GUI.
+REM
+REM LocalHiddenDevicesUseRegExp defines whether the given strings for local and hidden devices should be interpreted
+REM as regular expressions or not. Example: With LocalHiddenDevicesUseRegExp switched on, the following string would
+REM match all loop devices in the range 10-15 (i.e. /dev/loop10 .. /dev/loop15):
+REM   '/dev/loop1[0-5]'
+REM
+REM For both (reg. exp. on and off) the comparison is case independent.
+
+LocalHiddenDevicesUseRegExp = false
 
 TABLE LocalDevices NoName
    REM Device
diff --git a/guymager.pro b/guymager.pro
index 5e2e15f..cf5355c 100644
--- a/guymager.pro
+++ b/guymager.pro
@@ -9,7 +9,7 @@
 #  Qt project file
 # ****************************************************************************
 
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 #
 # This file is part of guymager.
 #
diff --git a/guymager_cn.ts b/guymager_cn.ts
index d51c872..cc9a2a7 100644
--- a/guymager_cn.ts
+++ b/guymager_cn.ts
@@ -4,13 +4,13 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="main.cpp" line="+465"/>
+        <location filename="main.cpp" line="+466"/>
         <source>Guymager needs to be started with root rights in order to perform acquisitions. You are not root and thus won't be able to acquire devices.
 Continue anyway?</source>
         <translation type="unfinished">GUYMAGER需要以管理员的身份运行,你目前不是管理员权限,确定继续吗?</translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation type="unfinished">删除 %1</translation>
     </message>
@@ -22,7 +22,7 @@ Continue anyway?</source>
     </message>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation type="unfinished">确定</translation>
@@ -41,7 +41,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51,7 +51,7 @@ Continue anyway?</source>
         <translation type="unfinished">A高级司法镜像</translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation type="unfinished">GUYMAGER 无法扫描到设备</translation>
     </message>
@@ -71,7 +71,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation type="unfinished">创建一个克隆</translation>
     </message>
@@ -153,7 +153,7 @@ remaining</source>
         <translation type="unfinished">设备名</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+6"/>
         <source>Size</source>
         <translation type="unfinished">大小</translation>
     </message>
@@ -167,12 +167,12 @@ remaining</source>
         <translation type="obsolete">备注</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-382"/>
+        <location filename="dlgacquire.cpp" line="-383"/>
         <source>Remark</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.h" line="-8"/>
+        <location filename="mainwindow.h" line="-11"/>
         <source>SerialNr</source>
         <translation type="unfinished"></translation>
     </message>
@@ -183,6 +183,21 @@ remaining</source>
     </message>
     <message>
         <location line="+2"/>
+        <source>NativePath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>State</source>
         <translation type="unfinished"></translation>
     </message>
@@ -269,7 +284,7 @@ remaining</source>
         <translation type="unfinished">格式化文件</translation>
     </message>
     <message>
-        <location line="+83"/>
+        <location line="+84"/>
         <source>Destination</source>
         <translation type="unfinished">目标</translation>
     </message>
@@ -279,7 +294,7 @@ remaining</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+548"/>
+        <location line="+549"/>
         <source>The filenames contain special characters which are not allowed. Guymager suggests the following changes:
 	Image filename: %1
 	Info filename: %2
@@ -290,7 +305,7 @@ Do you accept these changes?</source>
 是否同意此项变化</translation>
     </message>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation type="unfinished">案件序列号</translation>
@@ -330,19 +345,19 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-255"/>
+        <location filename="dlgacquire.cpp" line="-256"/>
         <source>Select destination directory</source>
         <comment>Dialog title</comment>
         <translation type="unfinished">选择目标目录</translation>
     </message>
     <message>
-        <location line="-368"/>
+        <location line="-369"/>
         <location line="+1"/>
         <source>(file extension %1)</source>
         <translation type="unfinished">文件扩展名%1</translation>
     </message>
     <message>
-        <location line="+627"/>
+        <location line="+629"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation type="unfinished">特殊字符</translation>
@@ -358,13 +373,13 @@ Do you accept these changes?</source>
         <translation type="unfinished">信息目录</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-1015"/>
+        <location filename="dlgacquire.cpp" line="-1017"/>
         <source>...</source>
         <comment>The directory browse button</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+902"/>
+        <location line="+903"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation type="unfinished">访问被拒绝</translation>
@@ -402,7 +417,7 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation type="unfinished">本地设备,不能写入</translation>
     </message>
@@ -422,7 +437,12 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished">可以进行拷贝</translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+806"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -442,7 +462,7 @@ Do you accept these changes?</source>
         <translation type="unfinished">图像或信息文件已存在,确定覆盖吗?</translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation type="unfinished">拷贝%1</translation>
@@ -479,20 +499,20 @@ Do you accept these changes?</source>
         <translation type="unfinished">(文件扩展名%1或%2)</translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation type="unfinished">错误的值</translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation type="unfinished">分卷大小“%1”是无效的。只能输入一个正数。</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation type="unfinished">信息文件已存在。确定覆盖吗?</translation>
     </message>
@@ -502,7 +522,7 @@ Do you accept these changes?</source>
         <translation type="unfinished">拆分文件单位</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-138"/>
+        <location filename="dlgacquire.cpp" line="-139"/>
         <source>The split size for the selected image format must be in the range %1MiB - %2EiB.</source>
         <translation type="unfinished">为选定的镜像格式拆分大小,必须在%1Mib - %2EiB 范围内。</translation>
     </message>
@@ -511,12 +531,7 @@ Do you accept these changes?</source>
         <translation type="obsolete">EWF格式的拆分大小必须在%1 - %2 MiB范围内。如果需要支持更大的文件,使用Encase6 格式或更高版本(参考配置文件,参数EwfFormat)</translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+153"/>
+        <location line="+165"/>
         <source>Large amount of segment files</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -539,7 +554,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-990"/>
+        <location filename="dlgacquire.cpp" line="-992"/>
         <source>Selected for first acquisition</source>
         <translation type="unfinished"></translation>
     </message>
@@ -556,7 +571,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+714"/>
+        <location line="+716"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -578,7 +593,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-540"/>
+        <location line="-541"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation type="unfinished"></translation>
@@ -590,12 +605,12 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-176"/>
+        <location line="-177"/>
         <source>Duplicate image settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+802"/>
+        <location line="+804"/>
         <source>There possibly is not enough space left on the destination path.
 Source data size: %1
 Free space on destination: %2
@@ -794,7 +809,7 @@ Guymager will exit automatically in %1 seconds.</source>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation type="unfinished">本地设备</translation>
     </message>
@@ -818,7 +833,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="obsolete">中止-错误:原因“none”</translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation type="unfinished">用户中断</translation>
     </message>
@@ -831,7 +846,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="obsolete">中止 - 硬盘读取错误</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation type="unfinished">&R重新扫描</translation>
     </message>
@@ -841,7 +856,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+343"/>
+        <location line="+346"/>
         <source>There are active acquisitions. Do you really want to abort them and quit?</source>
         <translation type="unfinished">There are active acquisitions. 你确定放弃并退出?</translation>
     </message>
@@ -881,7 +896,7 @@ Using libguytools %5</source>
         <translation type="unfinished">退出</translation>
     </message>
     <message>
-        <location line="-338"/>
+        <location line="-341"/>
         <source>&Devices</source>
         <translation type="unfinished">&D设备</translation>
     </message>
@@ -924,7 +939,7 @@ Using libguytools %5</source>
         <translation type="obsolete">正在验证中</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+322"/>
+        <location filename="device.cpp" line="+350"/>
         <source>Device disconnected, acquisition paused</source>
         <translation type="unfinished">设备断开,暂停获取</translation>
     </message>
@@ -946,7 +961,7 @@ Using libguytools %5</source>
         <translation type="obsolete">中止 - 镜像文件验证错误</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+103"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation type="unfinished">未知</translation>
@@ -1013,7 +1028,7 @@ Using libguytools %5</source>
         <translation type="unfinished">无法选择设备或文件。因为大小为0字节。</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation type="unfinished">用于拷贝操作</translation>
     </message>
@@ -1023,7 +1038,7 @@ Using libguytools %5</source>
         <translation type="unfinished">取消中 ...</translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation type="unfinished"></translation>
@@ -1040,7 +1055,7 @@ Using libguytools %5</source>
         <translation type="unfinished">在获取完成后退出</translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1056,7 +1071,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-431"/>
+        <location filename="device.cpp" line="-466"/>
         <source>Acquisition start failure</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1111,7 +1126,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1121,14 +1136,14 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1159,7 +1174,7 @@ Linked with libguytools %6</source>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1179,7 +1194,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-358"/>
+        <location line="-393"/>
         <source>Too many bad sectors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1189,7 +1204,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+266"/>
+        <location line="+294"/>
         <source>Queued</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1232,7 +1247,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished">设备信息</translation>
     </message>
     <message>
-        <location line="+526"/>
+        <location line="+528"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation type="unfinished">成功完成</translation>
@@ -1273,7 +1288,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-161"/>
+        <location line="-163"/>
         <source>During verification, %1 bad sectors have been encountered. The sector numbers are:</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1297,7 +1312,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+74"/>
+        <location line="+76"/>
         <source>(during acquisition)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1313,7 +1328,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-627"/>
+        <location line="-629"/>
         <source>Linux device:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1325,7 +1340,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+628"/>
+        <location line="+630"/>
         <location line="+24"/>
         <source>Acquisition started:: %1</source>
         <comment>Info file</comment>
@@ -1352,19 +1367,19 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-154"/>
+        <location line="-155"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+74"/>
         <source>MD5 hash:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-601"/>
+        <location line="-603"/>
         <source>Version:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1394,13 +1409,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+665"/>
+        <location line="+667"/>
         <source>Verification speed:: %1 MByte/s (%2 hours, %3 minutes and %4 seconds)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-624"/>
+        <location line="-626"/>
         <source>Source verification:: on</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1412,7 +1427,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+521"/>
+        <location line="+523"/>
         <source>(during source verification)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1424,7 +1439,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-569"/>
+        <location line="-571"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1448,7 +1463,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1503,7 +1518,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation type="unfinished"></translation>
@@ -1556,7 +1571,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+820"/>
+        <location line="+822"/>
         <source>Generated image files and their MD5 hashes</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1572,12 +1587,12 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-835"/>
+        <location line="-837"/>
         <source>Cannot be acquired - see additional state info field</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+716"/>
+        <location line="+718"/>
         <source>Aborted because of info file write error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1594,13 +1609,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-657"/>
+        <location line="-659"/>
         <source>Hash calculation:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1630,13 +1645,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-592"/>
+        <location line="-594"/>
         <source>Hidden areas: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+710"/>
+        <location line="+712"/>
         <source>Acquisition/verification aborted - file list may be incomplete</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/guymager_de.ts b/guymager_de.ts
index 85439d7..89558f7 100644
--- a/guymager_de.ts
+++ b/guymager_de.ts
@@ -4,7 +4,7 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="main.cpp" line="+464"/>
+        <location filename="main.cpp" line="+465"/>
         <source>Missing root rights</source>
         <comment>Dialog title</comment>
         <translation>Keine Root-Rechte</translation>
@@ -17,13 +17,13 @@ Continue anyway?</source>
 Trotzdem fortfahren?</translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation>Lösche %1</translation>
     </message>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation>Ok</translation>
@@ -42,17 +42,17 @@ Trotzdem fortfahren?</translation>
         <translation>Linux dd-Image</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation>EWF-Format, Unterformat %1</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Advanced forensic image</source>
-        <translation>AFF format</translation>
+        <translation>AFF-Format</translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation>Guymager kann die angeschlossenen Geräte nicht abfragen.</translation>
     </message>
@@ -72,7 +72,7 @@ Trotzdem fortfahren?</translation>
         <translation>Methode "%1"</translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation>Erstellen eines Klons</translation>
     </message>
@@ -185,6 +185,23 @@ Gerät</translation>
     </message>
     <message>
         <location line="+1"/>
+        <source>NativePath</source>
+        <translation>Nativer
+Pfad</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation>By
+Pfad</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation>Schnittstelle</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>State</source>
         <translation>Status</translation>
     </message>
@@ -262,7 +279,7 @@ Geschwindigkeit
         <translation type="obsolete">Bemerkungen</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-382"/>
+        <location filename="dlgacquire.cpp" line="-383"/>
         <source>Remark</source>
         <translation>Bemerkung</translation>
     </message>
@@ -299,7 +316,7 @@ Geschwindigkeit
 <context>
     <name>t_DlgAcquire</name>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation>Fallnummer</translation>
@@ -344,7 +361,7 @@ Geschwindigkeit
         <translation>Dateiformat</translation>
     </message>
     <message>
-        <location line="+83"/>
+        <location line="+84"/>
         <source>Destination</source>
         <translation>Ziel</translation>
     </message>
@@ -360,7 +377,7 @@ Geschwindigkeit
         <translation>Zielverzeichnis auswählen</translation>
     </message>
     <message>
-        <location line="+255"/>
+        <location line="+256"/>
         <source>The filenames contain special characters which are not allowed. Guymager suggests the following changes:
 	Image filename: %1
 	Info filename: %2
@@ -371,13 +388,13 @@ Do you accept these changes?</source>
 Sind Sie mit diesen Änderungen einverstanden?</translation>
     </message>
     <message>
-        <location line="-623"/>
+        <location line="-625"/>
         <location line="+1"/>
         <source>(file extension %1)</source>
         <translation>(Datei-Endung %1)</translation>
     </message>
     <message>
-        <location line="+627"/>
+        <location line="+629"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation>Sonderzeichen</translation>
@@ -393,13 +410,13 @@ Sind Sie mit diesen Änderungen einverstanden?</translation>
         <translation>Info-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-1015"/>
+        <location filename="dlgacquire.cpp" line="-1017"/>
         <source>...</source>
         <comment>The directory browse button</comment>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+902"/>
+        <location line="+903"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation>Kein Zugriff</translation>
@@ -437,7 +454,7 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation>Der Schreibzugriff auf das Verzeichnis	%1schlug fehl. Dies könnte an unzureichenden Zugriffsrechten oder an Sonderzeichen im Dateinamen liegen. Bitte wählen Sie ein anderes Verzeichnis.</translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation>Lokales Gerät, nicht beschreibbar</translation>
     </message>
@@ -457,7 +474,12 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation>Bereit zum Klonen</translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+806"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation>Die Split-Grösse für das konfigurierte EWF-Format muss im Bereich %1 MiB - %2 MiB liegen. Grössere Dateien sind mit den Format Encase6 oder Guymager möglich (siehe Guymager Konfigurationsdatei, Parameter EwfFormat).</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -476,7 +498,7 @@ Sind Sie mit diesen Änderungen einverstanden?</translation>
         <translation>Die Image- oder Info-Dateien existieren bereits. Möchten Sie sie überschreiben?</translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation>Gerät %1 klonen</translation>
@@ -513,20 +535,20 @@ Sind Sie mit diesen Änderungen einverstanden?</translation>
         <translation>(Datei-Endung %1 oder %2)</translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation>Ungültiger Wert</translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation>Die Grösse %1 für die Split-Dateien ist ungültig. Bitte geben Sie einen positiven Wert ein.</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation>Die Info-Datei existiert bereits. Möchten Sie sie überschreiben?</translation>
     </message>
@@ -540,7 +562,7 @@ Sind Sie mit diesen Änderungen einverstanden?</translation>
         <translation> </translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-138"/>
+        <location filename="dlgacquire.cpp" line="-139"/>
         <source>The split size for the selected image format must be in the range %1MiB - %2EiB.</source>
         <translation>Die Split-Grösse für das gewählte Datei-Format muss im Bereich %1 MiB - %2 EiB liegen.</translation>
     </message>
@@ -549,12 +571,11 @@ Sind Sie mit diesen Änderungen einverstanden?</translation>
         <translation type="obsolete">Die Split-Grösse für das konfigurierte EWF-Format muss im Bereich %1 MiB - %2 MiB liegen. Grössere Dateien sind ab dem Format Encase6 möglich (siehe Guymager Konfigurationsdatei, Parameter EwfFormat).</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation>Die Split-Grösse für das konfigurierte EWF-Format muss im Bereich %1 MiB - %2 MiB liegen. Grössere Dateien sind ab dem Format Encase6 möglich (siehe Guymager Konfigurationsdatei, Parameter EwfFormat).</translation>
+        <translation type="obsolete">Die Split-Grösse für das konfigurierte EWF-Format muss im Bereich %1 MiB - %2 MiB liegen. Grössere Dateien sind ab dem Format Encase6 möglich (siehe Guymager Konfigurationsdatei, Parameter EwfFormat).</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+165"/>
         <source>Large amount of segment files</source>
         <comment>Dialog title</comment>
         <translation>Anzahl Image-Segmente</translation>
@@ -589,7 +610,7 @@ Möchten Sie die Akquisition trotzdem starten?</translation>
         <translation>SHA-1 berechnen</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-990"/>
+        <location filename="dlgacquire.cpp" line="-992"/>
         <source>Selected for first acquisition</source>
         <translation>Als 1. Akquisitionsziel ausgewählt</translation>
     </message>
@@ -606,7 +627,7 @@ Möchten Sie die Akquisition trotzdem starten?</translation>
         <translation>Duplizierter Klon von %1</translation>
     </message>
     <message>
-        <location line="+714"/>
+        <location line="+716"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation>Ziel bereits belegt </translation>
@@ -628,7 +649,7 @@ Möchten Sie die Akquisition trotzdem starten?</translation>
         <translation>Die Info-Datei ist bereits durch das erste Image belegt.</translation>
     </message>
     <message>
-        <location line="-540"/>
+        <location line="-541"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation>Zurück...</translation>
@@ -640,12 +661,12 @@ Möchten Sie die Akquisition trotzdem starten?</translation>
         <translation>Image duplizieren...</translation>
     </message>
     <message>
-        <location line="-176"/>
+        <location line="-177"/>
         <source>Duplicate image settings</source>
         <translation>Einstellungen für dupliziertes Image</translation>
     </message>
     <message>
-        <location line="+802"/>
+        <location line="+804"/>
         <source>There possibly is not enough space left on the destination path.
 Source data size: %1
 Free space on destination: %2
@@ -847,7 +868,7 @@ Guymager beendet sich automatisch in %1 Sekunden.</translation>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation>Lokales Gerät</translation>
     </message>
@@ -871,7 +892,7 @@ Guymager beendet sich automatisch in %1 Sekunden.</translation>
         <translation type="obsolete">Abbruch - Fehler "Reason none"</translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation>Abbruch durch Benutzer</translation>
     </message>
@@ -884,7 +905,7 @@ Guymager beendet sich automatisch in %1 Sekunden.</translation>
         <translation type="obsolete">Abbruch - Lesefehler</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation>&Auffrischen</translation>
     </message>
@@ -894,7 +915,7 @@ Guymager beendet sich automatisch in %1 Sekunden.</translation>
         <translation>F5</translation>
     </message>
     <message>
-        <location line="+343"/>
+        <location line="+346"/>
         <source>There are active acquisitions. Do you really want to abort them and quit?</source>
         <translation>GUYMAGER hat noch Akquisitionen laufen. Möchten Sie diese abbrechen und das Programm verlassen?</translation>
     </message>
@@ -938,7 +959,7 @@ Benutzt libguytools %5</translation>
         <translation>GUYMAGER verlassen</translation>
     </message>
     <message>
-        <location line="-338"/>
+        <location line="-341"/>
         <source>&Devices</source>
         <translation>&Geräte</translation>
     </message>
@@ -981,7 +1002,7 @@ Benutzt libguytools %5</translation>
         <translation type="obsolete">Verifikation läuft</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+322"/>
+        <location filename="device.cpp" line="+350"/>
         <source>Device disconnected, acquisition paused</source>
         <translation>Gerät abgeschaltet, Akquisition unterbrochen</translation>
     </message>
@@ -1003,7 +1024,7 @@ Benutzt libguytools %5</translation>
         <translation type="obsolete">Abgebrochen - Fehler bei Verifizierung</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+103"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation>k.A.</translation>
@@ -1070,7 +1091,7 @@ Benutzt libguytools %5</translation>
         <translation>Das Gerät bzw. die Datei kann nicht ausgewählt werden da seine Grösse 0 Byte beträgt.</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation>Belegt durch Klon-Operation</translation>
     </message>
@@ -1080,7 +1101,7 @@ Benutzt libguytools %5</translation>
         <translation>Abbruch angefragt...</translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation>keine</translation>
@@ -1105,7 +1126,7 @@ Benutzt libguytools %5</translation>
         <translation type="obsolete">Abbruch - Startfehler Akquisition</translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation>(inaktiv, da das Guymager-interne EWF-Modul konfiguriert ist)</translation>
     </message>
@@ -1127,7 +1148,7 @@ Benutzt libewf %4 %5
 Benutzt libguytools %6</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-431"/>
+        <location filename="device.cpp" line="-466"/>
         <source>Acquisition start failure</source>
         <translation>Startfehler Akquisition</translation>
     </message>
@@ -1182,7 +1203,7 @@ Benutzt libguytools %6</translation>
         <translation>Image 2 Schreibfehler Info-Datei</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation>Akquisition läuft</translation>
     </message>
@@ -1192,14 +1213,14 @@ Benutzt libguytools %6</translation>
         <translation>Verifizierung läuft</translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation>Verifiziert & ok</translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation>Image 1 Fehler</translation>
     </message>
@@ -1230,7 +1251,7 @@ Benutzt libguytools %6</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation>Verifikation Quellmedium schlug fehl</translation>
     </message>
@@ -1255,7 +1276,7 @@ Benutzt libguytools %6</translation>
         <translation>Verifikation schlug fehl</translation>
     </message>
     <message>
-        <location line="-358"/>
+        <location line="-393"/>
         <source>Too many bad sectors</source>
         <translation>Zu viele schlechte Sektoren</translation>
     </message>
@@ -1265,7 +1286,7 @@ Benutzt libguytools %6</translation>
         <translation>Gerät abgeschaltet - Timeout</translation>
     </message>
     <message>
-        <location line="+266"/>
+        <location line="+294"/>
         <source>Queued</source>
         <translation>In Warteschlange</translation>
     </message>
@@ -1308,7 +1329,7 @@ Benutzt libguytools %6</translation>
         <translation>Geräte-Informationen</translation>
     </message>
     <message>
-        <location line="+526"/>
+        <location line="+528"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation>Erfolgreich beendet</translation>
@@ -1349,7 +1370,7 @@ Benutzt libguytools %6</translation>
         <translation>Status: %1</translation>
     </message>
     <message>
-        <location line="-161"/>
+        <location line="-163"/>
         <source>During verification, %1 bad sectors have been encountered. The sector numbers are:</source>
         <comment>Info file</comment>
         <translation>Während der MD5-Verifizierung wurden %1 defekte Sektoren festgestellt. Die Sektor-Nummern sind:</translation>
@@ -1373,7 +1394,7 @@ Benutzt libguytools %6</translation>
         <translation>Bei der Akquisition wurden keine defekte Sektoren entdeckt.</translation>
     </message>
     <message>
-        <location line="+74"/>
+        <location line="+76"/>
         <source>(during acquisition)</source>
         <comment>Info file</comment>
         <translation>(während der Akquisition)</translation>
@@ -1389,7 +1410,7 @@ Benutzt libguytools %6</translation>
         <translation>Akquisition vor Beginn der MD5-Verifizierung abgebrochen</translation>
     </message>
     <message>
-        <location line="-627"/>
+        <location line="-629"/>
         <source>Linux device:: %1</source>
         <comment>Info file</comment>
         <translation>Linux-Gerät:: %1</translation>
@@ -1401,7 +1422,7 @@ Benutzt libguytools %6</translation>
         <translation>Grösse:: %1 (%2)</translation>
     </message>
     <message>
-        <location line="+628"/>
+        <location line="+630"/>
         <location line="+24"/>
         <source>Acquisition started:: %1</source>
         <comment>Info file</comment>
@@ -1428,19 +1449,19 @@ Benutzt libguytools %6</translation>
         <translation>Geschwindigkeit Akquisition:: %1 MByte/s (%2 Stunden, %3 Minuten und %4 Sekunden)</translation>
     </message>
     <message>
-        <location line="-154"/>
+        <location line="-155"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation>--</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+74"/>
         <source>MD5 hash:: %1</source>
         <comment>Info file</comment>
         <translation>MD5-Hash:: %1</translation>
     </message>
     <message>
-        <location line="-601"/>
+        <location line="-603"/>
         <source>Version:: %1</source>
         <comment>Info file</comment>
         <translation>Version:: %1</translation>
@@ -1470,7 +1491,7 @@ Benutzt libguytools %6</translation>
         <translation>Version libguytools:: %1</translation>
     </message>
     <message>
-        <location line="+665"/>
+        <location line="+667"/>
         <source>Verification speed:: %1 MByte/s (%2 hours, %3 minutes and %4 seconds)</source>
         <comment>Info file</comment>
         <translation>Geschwindigkeit MD5-Verifizierung:: %1 MByte/s (%2 Stunden, %3 Minuten und %4 Sekunden)</translation>
@@ -1481,7 +1502,7 @@ Benutzt libguytools %6</translation>
         <translation type="obsolete">Hash-Berechnung:: aus</translation>
     </message>
     <message>
-        <location line="-624"/>
+        <location line="-626"/>
         <source>Source verification:: on</source>
         <comment>Info file</comment>
         <translation>Verifikation Quellmedium:: ein</translation>
@@ -1493,7 +1514,7 @@ Benutzt libguytools %6</translation>
         <translation>Verifikation Quellmedium:: aus</translation>
     </message>
     <message>
-        <location line="+521"/>
+        <location line="+523"/>
         <source>(during source verification)</source>
         <comment>Info file</comment>
         <translation>(während der Verifikation des Quellmediums)</translation>
@@ -1520,7 +1541,7 @@ Benutzt libguytools %6</translation>
         <translation type="obsolete">Hash-Berechnung:: SHA-256</translation>
     </message>
     <message>
-        <location line="-569"/>
+        <location line="-571"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation>Image-Pfad und Datei:: %1</translation>
@@ -1544,7 +1565,7 @@ Benutzt libguytools %6</translation>
         <translation>Verifikation Image-Datei:: aus</translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation>Abbruch wegen Image-Lesefehler während der Verifizierung</translation>
@@ -1599,7 +1620,7 @@ Benutzt libguytools %6</translation>
         <translation>Versuchen Sie eine erneute Akquisition.</translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation>Sondergerät entfernen</translation>
@@ -1652,7 +1673,7 @@ Benutzt libguytools %6</translation>
         <translation>Gerät durch Klon-Operation belegt - kann nicht akquiriert werden</translation>
     </message>
     <message>
-        <location line="+820"/>
+        <location line="+822"/>
         <source>Generated image files and their MD5 hashes</source>
         <comment>Info file</comment>
         <translation>Erzeugte Image-Dateien und ihre MD5-Hashwerte</translation>
@@ -1672,12 +1693,12 @@ Benutzt libguytools %6</translation>
         <translation>Keine MD5-Hashes verfügbar (der Konfigurationsparameter CalcImageFileMD5 ist abgeschaltet)</translation>
     </message>
     <message>
-        <location line="-835"/>
+        <location line="-837"/>
         <source>Cannot be acquired - see additional state info field</source>
         <translation>Kann nicht akquiriert werden - siehe Status-Zusatzinformation</translation>
     </message>
     <message>
-        <location line="+716"/>
+        <location line="+718"/>
         <source>Aborted because of info file write error</source>
         <comment>Info file</comment>
         <translation>Abbruch wegen Fehler beim Schreiben der Image-Datei</translation>
@@ -1694,13 +1715,13 @@ Benutzt libguytools %6</translation>
         <translation>Keine MD5-Hashes verfügbar (das ausgewählte EWF-Format unterstützt das Hashen der Image-Dateien nicht)</translation>
     </message>
     <message>
-        <location line="-657"/>
+        <location line="-659"/>
         <source>Hash calculation:: %1</source>
         <comment>Info file</comment>
         <translation>Hash-Berechnung:: %1</translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation>Abbruch wegen Quellmedium-Lesefehler</translation>
@@ -1730,13 +1751,13 @@ Benutzt libguytools %6</translation>
         <translation>SHA1-Hash Image verifiziert:: %1</translation>
     </message>
     <message>
-        <location line="-592"/>
+        <location line="-594"/>
         <source>Hidden areas: %1</source>
         <comment>Info file</comment>
         <translation>Versteckte Bereiche: %1</translation>
     </message>
     <message>
-        <location line="+710"/>
+        <location line="+712"/>
         <source>Acquisition/verification aborted - file list may be incomplete</source>
         <translation>Akquisition / Verifikation abgebrochen - die Dateiliste ist möglicherweise unvollständig </translation>
     </message>
diff --git a/guymager_en.ts b/guymager_en.ts
index de7d263..9389ef2 100644
--- a/guymager_en.ts
+++ b/guymager_en.ts
@@ -4,13 +4,13 @@
 <context>
     <name>QObject</name>
     <message>
-        <location filename="main.cpp" line="+465"/>
+        <location filename="main.cpp" line="+466"/>
         <source>Guymager needs to be started with root rights in order to perform acquisitions. You are not root and thus won't be able to acquire devices.
 Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -22,7 +22,7 @@ Continue anyway?</source>
     </message>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation type="unfinished"></translation>
@@ -41,7 +41,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51,7 +51,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -71,7 +71,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation type="unfinished"></translation>
     </message>
@@ -107,6 +107,23 @@ device</translation>
     </message>
     <message>
         <location line="+1"/>
+        <source>NativePath</source>
+        <translation>Native
+path</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation>By
+path</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation>Interface</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>State</source>
         <translation>State</translation>
     </message>
@@ -180,7 +197,7 @@ speed
 [MB/s]</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-382"/>
+        <location filename="dlgacquire.cpp" line="-383"/>
         <source>Remark</source>
         <translation>Remark</translation>
     </message>
@@ -222,7 +239,7 @@ speed
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+83"/>
+        <location line="+84"/>
         <source>Destination</source>
         <translation type="unfinished"></translation>
     </message>
@@ -232,7 +249,7 @@ speed
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+548"/>
+        <location line="+549"/>
         <source>The filenames contain special characters which are not allowed. Guymager suggests the following changes:
 	Image filename: %1
 	Info filename: %2
@@ -240,7 +257,7 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation>Case number</translation>
@@ -280,19 +297,19 @@ Do you accept these changes?</source>
         <translation>Info filename (without extension)</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-255"/>
+        <location filename="dlgacquire.cpp" line="-256"/>
         <source>Select destination directory</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-368"/>
+        <location line="-369"/>
         <location line="+1"/>
         <source>(file extension %1)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+627"/>
+        <location line="+629"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -308,13 +325,13 @@ Do you accept these changes?</source>
         <translation>Info directory</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-1015"/>
+        <location filename="dlgacquire.cpp" line="-1017"/>
         <source>...</source>
         <comment>The directory browse button</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+902"/>
+        <location line="+903"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -352,7 +369,7 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation type="unfinished"></translation>
     </message>
@@ -372,7 +389,12 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+806"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -390,7 +412,7 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation type="unfinished"></translation>
@@ -427,20 +449,20 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -450,17 +472,12 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-138"/>
+        <location filename="dlgacquire.cpp" line="-139"/>
         <source>The split size for the selected image format must be in the range %1MiB - %2EiB.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+153"/>
+        <location line="+165"/>
         <source>Large amount of segment files</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -483,7 +500,7 @@ Do you accept such a large amount of files?</source>
         <translation>Calculate SHA-1</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-990"/>
+        <location filename="dlgacquire.cpp" line="-992"/>
         <source>Selected for first acquisition</source>
         <translation type="unfinished"></translation>
     </message>
@@ -500,7 +517,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+714"/>
+        <location line="+716"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -522,7 +539,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-540"/>
+        <location line="-541"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation type="unfinished"></translation>
@@ -534,12 +551,12 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-176"/>
+        <location line="-177"/>
         <source>Duplicate image settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+802"/>
+        <location line="+804"/>
         <source>There possibly is not enough space left on the destination path.
 Source data size: %1
 Free space on destination: %2
@@ -724,7 +741,7 @@ Guymager will exit automatically in %1 seconds.</source>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation type="unfinished"></translation>
     </message>
@@ -744,12 +761,12 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation type="unfinished"></translation>
     </message>
@@ -759,7 +776,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+343"/>
+        <location line="+346"/>
         <source>There are active acquisitions. Do you really want to abort them and quit?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -787,7 +804,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-338"/>
+        <location line="-341"/>
         <source>&Devices</source>
         <translation type="unfinished"></translation>
     </message>
@@ -822,7 +839,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+322"/>
+        <location filename="device.cpp" line="+350"/>
         <source>Device disconnected, acquisition paused</source>
         <translation type="unfinished"></translation>
     </message>
@@ -832,7 +849,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+103"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation type="unfinished"></translation>
@@ -899,7 +916,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation type="unfinished"></translation>
     </message>
@@ -909,7 +926,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation type="unfinished"></translation>
@@ -926,7 +943,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -942,7 +959,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-431"/>
+        <location filename="device.cpp" line="-466"/>
         <source>Acquisition start failure</source>
         <translation type="unfinished"></translation>
     </message>
@@ -997,7 +1014,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1007,14 +1024,14 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1045,7 +1062,7 @@ Linked with libguytools %6</source>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1065,7 +1082,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-358"/>
+        <location line="-393"/>
         <source>Too many bad sectors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1075,7 +1092,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+266"/>
+        <location line="+294"/>
         <source>Queued</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1118,7 +1135,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+526"/>
+        <location line="+528"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1154,7 +1171,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-161"/>
+        <location line="-163"/>
         <source>During verification, %1 bad sectors have been encountered. The sector numbers are:</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1178,7 +1195,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+74"/>
+        <location line="+76"/>
         <source>(during acquisition)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1194,7 +1211,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-627"/>
+        <location line="-629"/>
         <source>Linux device:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1206,7 +1223,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+628"/>
+        <location line="+630"/>
         <location line="+24"/>
         <source>Acquisition started:: %1</source>
         <comment>Info file</comment>
@@ -1233,19 +1250,19 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-154"/>
+        <location line="-155"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+74"/>
         <source>MD5 hash:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-601"/>
+        <location line="-603"/>
         <source>Version:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1275,13 +1292,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+665"/>
+        <location line="+667"/>
         <source>Verification speed:: %1 MByte/s (%2 hours, %3 minutes and %4 seconds)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-624"/>
+        <location line="-626"/>
         <source>Source verification:: on</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1293,7 +1310,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+521"/>
+        <location line="+523"/>
         <source>(during source verification)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1305,7 +1322,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-569"/>
+        <location line="-571"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1329,7 +1346,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1384,7 +1401,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation type="unfinished"></translation>
@@ -1437,7 +1454,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+820"/>
+        <location line="+822"/>
         <source>Generated image files and their MD5 hashes</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1453,12 +1470,12 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-835"/>
+        <location line="-837"/>
         <source>Cannot be acquired - see additional state info field</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+716"/>
+        <location line="+718"/>
         <source>Aborted because of info file write error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1475,13 +1492,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-657"/>
+        <location line="-659"/>
         <source>Hash calculation:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1511,13 +1528,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-592"/>
+        <location line="-594"/>
         <source>Hidden areas: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+710"/>
+        <location line="+712"/>
         <source>Acquisition/verification aborted - file list may be incomplete</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/guymager_fr.ts b/guymager_fr.ts
index c726388..92f7505 100644
--- a/guymager_fr.ts
+++ b/guymager_fr.ts
@@ -5,7 +5,7 @@
     <name>QObject</name>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation>Ok</translation>
@@ -24,12 +24,12 @@
         <translation>Image brute Linux dd</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation>Format EWF, sous-format %1 </translation>
     </message>
     <message>
-        <location filename="main.cpp" line="+464"/>
+        <location filename="main.cpp" line="+465"/>
         <source>Missing root rights</source>
         <comment>Dialog title</comment>
         <translation>Droits «root»</translation>
@@ -42,7 +42,7 @@ Continue anyway?</source>
 Continuer quand-même?</translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation>Efface %1</translation>
     </message>
@@ -52,7 +52,7 @@ Continuer quand-même?</translation>
         <translation>Format AFF</translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation>Guymager ne peut déterminer les médias connectés.</translation>
     </message>
@@ -72,7 +72,7 @@ Continuer quand-même?</translation>
         <translation>Essayer la méthode "%1"</translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation>Création d'un clone</translation>
     </message>
@@ -187,6 +187,23 @@ Linux</translation>
     </message>
     <message>
         <location line="+1"/>
+        <source>NativePath</source>
+        <translation>Chemin d'accès
+natif</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation>Chmein d'accès
+'by'</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation>Interface</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>State</source>
         <translation>Etat</translation>
     </message>
@@ -266,7 +283,7 @@ actuelle
         <translation type="obsolete">Remarques</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-382"/>
+        <location filename="dlgacquire.cpp" line="-383"/>
         <source>Remark</source>
         <translation>Remarque</translation>
     </message>
@@ -303,7 +320,7 @@ actuelle
 <context>
     <name>t_DlgAcquire</name>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation>Numéro d'affaire</translation>
@@ -354,7 +371,7 @@ actuelle
         <translation>(extension %1)</translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>Destination</source>
         <translation>Destination</translation>
     </message>
@@ -370,7 +387,7 @@ actuelle
         <translation>Sélectionner le répertoire de destination</translation>
     </message>
     <message>
-        <location line="+260"/>
+        <location line="+261"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation>Charactères spéciaux</translation>
@@ -397,13 +414,13 @@ Acceptez-vous ces changement?</translation>
         <translation>Répertoire info</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-1010"/>
+        <location filename="dlgacquire.cpp" line="-1012"/>
         <source>...</source>
         <comment>The directory browse button</comment>
         <translation>...</translation>
     </message>
     <message>
-        <location line="+902"/>
+        <location line="+903"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation>Accès refusé</translation>
@@ -443,7 +460,7 @@ This may be due to insufficient access rights or unsupported filename characters
 possiblement à cause de droits d'accès insuffisants. Veuillez choisir un autre répertoire.</translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation>Média local - ne peut être modifié</translation>
     </message>
@@ -463,7 +480,12 @@ possiblement à cause de droits d'accès insuffisants. Veuillez choisir un
         <translation>Bon pour clonage</translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+806"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation>La taille des fragments pour le format EWF configuré doit être comprise entre %1 et %2 MiB. Des fichiers plus grands sont possibles en utilisant les format Encase6 ou Guymager (voir fichier de configuration, paramètre EwfFormat).</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -482,7 +504,7 @@ Acceptez-vous ces changement?</translation>
         <translation>Les fichiers image ou info de ce nom existent déjà. Voulez vous les réécrire?</translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation>Cloner %1</translation>
@@ -519,20 +541,20 @@ Acceptez-vous ces changement?</translation>
         <translation>(extension %1 ou %2)</translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation>Valeur non-valable</translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation>La valeur %1 pour la taille des fragments n'est pas valable. Veuillez entrer une valuer positive.</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation>Un fichier info de ce nom existe déjà. Voulez vous le réécrire?</translation>
     </message>
@@ -546,7 +568,7 @@ Acceptez-vous ces changement?</translation>
         <translation> </translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-138"/>
+        <location filename="dlgacquire.cpp" line="-139"/>
         <source>The split size for the selected image format must be in the range %1MiB - %2EiB.</source>
         <translation>La taille des fragments du format selectionné doit être comprise entre %1 MiB - %2 EiB.</translation>
     </message>
@@ -555,12 +577,11 @@ Acceptez-vous ces changement?</translation>
         <translation type="obsolete">La taille des fragments pour le format EWF configuré doit être comprise entre %1 - %2 MiB. Des fichiers plus grands sont possibles à partir du format Encase6 (voir fichier de configuration, paramètre EwfFormat).</translation>
     </message>
     <message>
-        <location line="+11"/>
         <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation>La taille des fragments pour le format EWF configuré doit être comprise entre %1 et %2 MiB. Des fichiers plus grands sont possibles à partir du format Encase6 (voir fichier de configuration, paramètre EwfFormat).</translation>
+        <translation type="obsolete">La taille des fragments pour le format EWF configuré doit être comprise entre %1 et %2 MiB. Des fichiers plus grands sont possibles à partir du format Encase6 (voir fichier de configuration, paramètre EwfFormat).</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+165"/>
         <source>Large amount of segment files</source>
         <comment>Dialog title</comment>
         <translation>Grand nombre de segments d'image</translation>
@@ -594,7 +615,7 @@ Voulez vous toujours lancer l'acquisition?</translation>
         <translation>Calculer SHA-1</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-990"/>
+        <location filename="dlgacquire.cpp" line="-992"/>
         <source>Selected for first acquisition</source>
         <translation>Déjà selectionné pour la 1ère acquisition</translation>
     </message>
@@ -611,7 +632,7 @@ Voulez vous toujours lancer l'acquisition?</translation>
         <translation>Clone dupliqué de %1</translation>
     </message>
     <message>
-        <location line="+714"/>
+        <location line="+716"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation>Destination occupée</translation>
@@ -633,7 +654,7 @@ Voulez vous toujours lancer l'acquisition?</translation>
         <translation>Le fichier info indiquée sera déjà utilisé pour le premier fichier image.</translation>
     </message>
     <message>
-        <location line="-540"/>
+        <location line="-541"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation>Retour...</translation>
@@ -645,12 +666,12 @@ Voulez vous toujours lancer l'acquisition?</translation>
         <translation>Dupliquer fichier image...</translation>
     </message>
     <message>
-        <location line="-176"/>
+        <location line="-177"/>
         <source>Duplicate image settings</source>
         <translation>Paramètres de l'image dupliquée</translation>
     </message>
     <message>
-        <location line="+802"/>
+        <location line="+804"/>
         <source>There possibly is not enough space left on the destination path.
 Source data size: %1
 Free space on destination: %2
@@ -852,7 +873,7 @@ Guymager set terminera automatiquement dans %1 secondes.</translation>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation>Média local</translation>
     </message>
@@ -876,7 +897,7 @@ Guymager set terminera automatiquement dans %1 secondes.</translation>
         <translation type="obsolete">Abandon - raison «none»</translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation>Abandonné par l'utilisateur</translation>
     </message>
@@ -889,7 +910,7 @@ Guymager set terminera automatiquement dans %1 secondes.</translation>
         <translation type="obsolete">Abandon - erreur grave de lecture </translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation>&Actualiser</translation>
     </message>
@@ -934,7 +955,7 @@ Guymager set terminera automatiquement dans %1 secondes.</translation>
         <translation>A propos de &Qt</translation>
     </message>
     <message>
-        <location line="+323"/>
+        <location line="+326"/>
         <source>Exit GUYMAGER</source>
         <comment>Dialog title</comment>
         <translation>Quitter GUYMAGER</translation>
@@ -986,7 +1007,7 @@ Utilise libguytools %5</translation>
         <translation type="obsolete">Vérification en cours</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+322"/>
+        <location filename="device.cpp" line="+350"/>
         <source>Device disconnected, acquisition paused</source>
         <translation>Média déconnecté, acquisition suspendue</translation>
     </message>
@@ -1008,7 +1029,7 @@ Utilise libguytools %5</translation>
         <translation type="obsolete">Abandon - erreur d'écriture</translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+103"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation>Inconnu</translation>
@@ -1026,7 +1047,7 @@ Utilise libguytools %5</translation>
         <translation>Oui</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="-428"/>
+        <location filename="mainwindow.cpp" line="-431"/>
         <source>Rescan devices and update table</source>
         <translation>Actualiser la liste des médias connectés</translation>
     </message>
@@ -1075,7 +1096,7 @@ Utilise libguytools %5</translation>
         <translation>Le fichier ou média ne peut être sélectionné parce que sa taille est de 0 octets.</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation>Occupé par clonage</translation>
     </message>
@@ -1085,7 +1106,7 @@ Utilise libguytools %5</translation>
         <translation>Abandon en cours...</translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation>aucune</translation>
@@ -1110,7 +1131,7 @@ Utilise libguytools %5</translation>
         <translation type="obsolete">Abandon - Démarrage échoué</translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation>(inactif, Guymager est configuré d'utiliser son propre module EWF)</translation>
     </message>
@@ -1132,7 +1153,7 @@ Utilise libewf %4 %5
 Utilise libguytools %6</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-431"/>
+        <location filename="device.cpp" line="-466"/>
         <source>Acquisition start failure</source>
         <translation>Démarrage échoué</translation>
     </message>
@@ -1187,7 +1208,7 @@ Utilise libguytools %6</translation>
         <translation>Fichier info 1 erreur d'écriture</translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation>Acquisition en cours</translation>
     </message>
@@ -1197,14 +1218,14 @@ Utilise libguytools %6</translation>
         <translation>Vérification en cours</translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation>Vérification réussie</translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation>image 1 échouée</translation>
     </message>
@@ -1235,7 +1256,7 @@ Utilise libguytools %6</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation>Vérification media échouée</translation>
     </message>
@@ -1260,7 +1281,7 @@ Utilise libguytools %6</translation>
         <translation>Vérification échouée</translation>
     </message>
     <message>
-        <location line="-358"/>
+        <location line="-393"/>
         <source>Too many bad sectors</source>
         <translation>trop de secteurs mauvais</translation>
     </message>
@@ -1270,7 +1291,7 @@ Utilise libguytools %6</translation>
         <translation>Média déconnecté - délai d'attente dépassé</translation>
     </message>
     <message>
-        <location line="+266"/>
+        <location line="+294"/>
         <source>Queued</source>
         <translation>En file d'attente</translation>
     </message>
@@ -1313,7 +1334,7 @@ Utilise libguytools %6</translation>
         <translation>Information média</translation>
     </message>
     <message>
-        <location line="+526"/>
+        <location line="+528"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation>Terminé avec succès</translation>
@@ -1354,7 +1375,7 @@ Utilise libguytools %6</translation>
         <translation>Etat: %1</translation>
     </message>
     <message>
-        <location line="-161"/>
+        <location line="-163"/>
         <source>During verification, %1 bad sectors have been encountered. The sector numbers are:</source>
         <comment>Info file</comment>
         <translation>Pendant la vérification, %1 mauvais secteurs ont été rencontrés. Leurs numéros sont les suivants:</translation>
@@ -1378,7 +1399,7 @@ Utilise libguytools %6</translation>
         <translation>Aucun mauvais secteur n'a été renconté pendant l'acquisition.</translation>
     </message>
     <message>
-        <location line="+74"/>
+        <location line="+76"/>
         <source>(during acquisition)</source>
         <comment>Info file</comment>
         <translation>(pendant l'acquisition)</translation>
@@ -1394,7 +1415,7 @@ Utilise libguytools %6</translation>
         <translation>Acquisition abandonnée avant de commencer vérification</translation>
     </message>
     <message>
-        <location line="-627"/>
+        <location line="-629"/>
         <source>Linux device:: %1</source>
         <comment>Info file</comment>
         <translation>Média Linux:: %1</translation>
@@ -1406,7 +1427,7 @@ Utilise libguytools %6</translation>
         <translation>Capacité:: %1 (%2)</translation>
     </message>
     <message>
-        <location line="+628"/>
+        <location line="+630"/>
         <location line="+24"/>
         <source>Acquisition started:: %1</source>
         <comment>Info file</comment>
@@ -1433,19 +1454,19 @@ Utilise libguytools %6</translation>
         <translation>Vitesse de l'acquisition:: %1 MByte/s (%2 heures, %3 minutes et %4 secondes)</translation>
     </message>
     <message>
-        <location line="-154"/>
+        <location line="-155"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation>--</translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+74"/>
         <source>MD5 hash:: %1</source>
         <comment>Info file</comment>
         <translation>Hash MD5:: %1</translation>
     </message>
     <message>
-        <location line="-601"/>
+        <location line="-603"/>
         <source>Version:: %1</source>
         <comment>Info file</comment>
         <translation>Version:: %1</translation>
@@ -1475,7 +1496,7 @@ Utilise libguytools %6</translation>
         <translation>Version libguytools:: %1</translation>
     </message>
     <message>
-        <location line="+665"/>
+        <location line="+667"/>
         <source>Verification speed:: %1 MByte/s (%2 hours, %3 minutes and %4 seconds)</source>
         <comment>Info file</comment>
         <translation>Vitesse de la vérification:: %1 MByte/s (%2 heures, %3 minutes et %4 secondes)</translation>
@@ -1486,7 +1507,7 @@ Utilise libguytools %6</translation>
         <translation type="obsolete">Calculer valeurs hash:: non</translation>
     </message>
     <message>
-        <location line="-624"/>
+        <location line="-626"/>
         <source>Source verification:: on</source>
         <comment>Info file</comment>
         <translation>Relire et vérifier media:: oui</translation>
@@ -1498,7 +1519,7 @@ Utilise libguytools %6</translation>
         <translation>Relire et vérifier media:: non</translation>
     </message>
     <message>
-        <location line="+521"/>
+        <location line="+523"/>
         <source>(during source verification)</source>
         <comment>Info file</comment>
         <translation>(pendant la vérification)</translation>
@@ -1525,7 +1546,7 @@ Utilise libguytools %6</translation>
         <translation type="obsolete">Calculer valeurs hash:: SHA-256</translation>
     </message>
     <message>
-        <location line="-569"/>
+        <location line="-571"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation>Répertoire et fichier image:: %1</translation>
@@ -1549,7 +1570,7 @@ Utilise libguytools %6</translation>
         <translation>Vérification image:: non</translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation></translation>
@@ -1604,7 +1625,7 @@ Utilise libguytools %6</translation>
         <translation>Vous pouvez essayer une nouvelle acquisition du média.</translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation>Effacer média spécial</translation>
@@ -1657,7 +1678,7 @@ Utilise libguytools %6</translation>
         <translation>Occupé par opération de clonage - ne peut être  acquéré</translation>
     </message>
     <message>
-        <location line="+820"/>
+        <location line="+822"/>
         <source>Generated image files and their MD5 hashes</source>
         <comment>Info file</comment>
         <translation>Fichiers image et leur valeurs hash MD5</translation>
@@ -1677,12 +1698,12 @@ Utilise libguytools %6</translation>
         <translation>Valeurs hashs MD5 non disponibles (le paramètre de configuration CalcImageFileMD5 est désactivé)</translation>
     </message>
     <message>
-        <location line="-835"/>
+        <location line="-837"/>
         <source>Cannot be acquired - see additional state info field</source>
         <translation>Ne peut être acquéré - voir informations d'état suppl.</translation>
     </message>
     <message>
-        <location line="+716"/>
+        <location line="+718"/>
         <source>Aborted because of info file write error</source>
         <comment>Info file</comment>
         <translation>Abandonné à cause d'une erreur lors de l'écriture du fichier info</translation>
@@ -1699,13 +1720,13 @@ Utilise libguytools %6</translation>
         <translation>Valeurs hashs MD5 non disponibles (le format EWF choisi ne supporte pas le calcul des valeurs hash des fichiers image)</translation>
     </message>
     <message>
-        <location line="-657"/>
+        <location line="-659"/>
         <source>Hash calculation:: %1</source>
         <comment>Info file</comment>
         <translation>Calculer valeurs hash:: %1</translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation>Abandonné à cause d'une erreur lors de la lecture du media source</translation>
@@ -1735,13 +1756,13 @@ Utilise libguytools %6</translation>
         <translation>Hash SHA-1 image vérifié:: %1</translation>
     </message>
     <message>
-        <location line="-592"/>
+        <location line="-594"/>
         <source>Hidden areas: %1</source>
         <comment>Info file</comment>
         <translation>Espaces cachés: %1</translation>
     </message>
     <message>
-        <location line="+710"/>
+        <location line="+712"/>
         <source>Acquisition/verification aborted - file list may be incomplete</source>
         <translation>Abandon de l'acquisition / vérification - la liste de fichiers est probablement incomplète </translation>
     </message>
diff --git a/guymager_it.ts b/guymager_it.ts
index b7f913d..2c31be5 100644
--- a/guymager_it.ts
+++ b/guymager_it.ts
@@ -5,7 +5,7 @@
     <name>QObject</name>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation type="unfinished"></translation>
@@ -24,12 +24,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="main.cpp" line="+464"/>
+        <location filename="main.cpp" line="+465"/>
         <source>Missing root rights</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -41,7 +41,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation type="unfinished"></translation>
     </message>
@@ -51,7 +51,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -71,7 +71,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation type="unfinished"></translation>
     </message>
@@ -89,7 +89,7 @@ Continue anyway?</source>
 <context>
     <name>t_DeviceListModel</name>
     <message>
-        <location line="-382"/>
+        <location line="-383"/>
         <source>Remark</source>
         <translation type="unfinished"></translation>
     </message>
@@ -110,6 +110,21 @@ Continue anyway?</source>
     </message>
     <message>
         <location line="+1"/>
+        <source>NativePath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>State</source>
         <translation type="unfinished"></translation>
     </message>
@@ -201,7 +216,7 @@ Continue anyway?</source>
 <context>
     <name>t_DlgAcquire</name>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation type="unfinished"></translation>
@@ -252,7 +267,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>Destination</source>
         <translation type="unfinished"></translation>
     </message>
@@ -268,7 +283,7 @@ Continue anyway?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+260"/>
+        <location line="+261"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -292,13 +307,13 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-1010"/>
+        <location filename="dlgacquire.cpp" line="-1012"/>
         <source>...</source>
         <comment>The directory browse button</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+902"/>
+        <location line="+903"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -336,7 +351,7 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation type="unfinished"></translation>
     </message>
@@ -356,7 +371,12 @@ This may be due to insufficient access rights or unsupported filename characters
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+806"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -374,7 +394,7 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation type="unfinished"></translation>
@@ -411,20 +431,20 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -434,17 +454,12 @@ Do you accept these changes?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-138"/>
+        <location filename="dlgacquire.cpp" line="-139"/>
         <source>The split size for the selected image format must be in the range %1MiB - %2EiB.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+153"/>
+        <location line="+165"/>
         <source>Large amount of segment files</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -467,7 +482,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-990"/>
+        <location filename="dlgacquire.cpp" line="-992"/>
         <source>Selected for first acquisition</source>
         <translation type="unfinished"></translation>
     </message>
@@ -484,7 +499,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+714"/>
+        <location line="+716"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -506,7 +521,7 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-540"/>
+        <location line="-541"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation type="unfinished"></translation>
@@ -518,12 +533,12 @@ Do you accept such a large amount of files?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-176"/>
+        <location line="-177"/>
         <source>Duplicate image settings</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+802"/>
+        <location line="+804"/>
         <source>There possibly is not enough space left on the destination path.
 Source data size: %1
 Free space on destination: %2
@@ -708,7 +723,7 @@ Guymager will exit automatically in %1 seconds.</source>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation type="unfinished"></translation>
     </message>
@@ -728,12 +743,12 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation type="unfinished"></translation>
     </message>
@@ -778,7 +793,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+323"/>
+        <location line="+326"/>
         <source>Exit GUYMAGER</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -806,7 +821,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+322"/>
+        <location filename="device.cpp" line="+350"/>
         <source>Device disconnected, acquisition paused</source>
         <translation type="unfinished"></translation>
     </message>
@@ -816,7 +831,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+96"/>
+        <location line="+103"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation type="unfinished"></translation>
@@ -834,7 +849,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="-428"/>
+        <location filename="mainwindow.cpp" line="-431"/>
         <source>Rescan devices and update table</source>
         <translation type="unfinished"></translation>
     </message>
@@ -883,7 +898,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation type="unfinished"></translation>
     </message>
@@ -893,7 +908,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation type="unfinished"></translation>
@@ -910,7 +925,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -926,7 +941,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-431"/>
+        <location filename="device.cpp" line="-466"/>
         <source>Acquisition start failure</source>
         <translation type="unfinished"></translation>
     </message>
@@ -981,7 +996,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation type="unfinished"></translation>
     </message>
@@ -991,14 +1006,14 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1029,7 +1044,7 @@ Linked with libguytools %6</source>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1049,7 +1064,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-358"/>
+        <location line="-393"/>
         <source>Too many bad sectors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1059,7 +1074,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+266"/>
+        <location line="+294"/>
         <source>Queued</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1102,7 +1117,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+526"/>
+        <location line="+528"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1138,7 +1153,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-161"/>
+        <location line="-163"/>
         <source>During verification, %1 bad sectors have been encountered. The sector numbers are:</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1162,7 +1177,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+74"/>
+        <location line="+76"/>
         <source>(during acquisition)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1178,7 +1193,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-627"/>
+        <location line="-629"/>
         <source>Linux device:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1190,7 +1205,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+628"/>
+        <location line="+630"/>
         <location line="+24"/>
         <source>Acquisition started:: %1</source>
         <comment>Info file</comment>
@@ -1217,19 +1232,19 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-154"/>
+        <location line="-155"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+73"/>
+        <location line="+74"/>
         <source>MD5 hash:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-601"/>
+        <location line="-603"/>
         <source>Version:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1259,13 +1274,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+665"/>
+        <location line="+667"/>
         <source>Verification speed:: %1 MByte/s (%2 hours, %3 minutes and %4 seconds)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-624"/>
+        <location line="-626"/>
         <source>Source verification:: on</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1277,7 +1292,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+521"/>
+        <location line="+523"/>
         <source>(during source verification)</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1289,7 +1304,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-569"/>
+        <location line="-571"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1313,7 +1328,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1368,7 +1383,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation type="unfinished"></translation>
@@ -1421,7 +1436,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+820"/>
+        <location line="+822"/>
         <source>Generated image files and their MD5 hashes</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1437,12 +1452,12 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-835"/>
+        <location line="-837"/>
         <source>Cannot be acquired - see additional state info field</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+716"/>
+        <location line="+718"/>
         <source>Aborted because of info file write error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1459,13 +1474,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-657"/>
+        <location line="-659"/>
         <source>Hash calculation:: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
@@ -1495,13 +1510,13 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-592"/>
+        <location line="-594"/>
         <source>Hidden areas: %1</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+710"/>
+        <location line="+712"/>
         <source>Acquisition/verification aborted - file list may be incomplete</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/guymager_nl.ts b/guymager_nl.ts
index 57044a7..b8cadbd 100644
--- a/guymager_nl.ts
+++ b/guymager_nl.ts
@@ -5,7 +5,7 @@
     <name>QObject</name>
     <message>
         <location filename="dlgabort.cpp" line="+82"/>
-        <location filename="dlgacquire.cpp" line="+794"/>
+        <location filename="dlgacquire.cpp" line="+795"/>
         <location filename="dlgdirsel.cpp" line="+100"/>
         <source>Ok</source>
         <translation>Ok</translation>
@@ -24,7 +24,7 @@
         <translation>Linux dd "raw" image</translation>
     </message>
     <message>
-        <location line="+18"/>
+        <location line="+23"/>
         <source>Expert Witness Format, sub-format %1</source>
         <translation>Expert Witness Formaat, sub-formaat %1</translation>
     </message>
@@ -34,7 +34,7 @@
         <translation>Advanced forensic image</translation>
     </message>
     <message>
-        <location filename="main.cpp" line="+464"/>
+        <location filename="main.cpp" line="+465"/>
         <source>Missing root rights</source>
         <comment>Dialog title</comment>
         <translation>Root rechten benodigd</translation>
@@ -46,12 +46,12 @@ Continue anyway?</source>
         <translation>Guymager moet gestart worden met "root"-rechten om media veilig te kunnen stellen. U bent op dit moment geen "root", en daarom zult u geen media veilig kunnen stellen.</translation>
     </message>
     <message>
-        <location filename="threadwrite.cpp" line="+1358"/>
+        <location filename="threadwrite.cpp" line="+1468"/>
         <source>Deleting %1</source>
         <translation>%1 aan het verwijderen</translation>
     </message>
     <message>
-        <location filename="threadscan.cpp" line="+970"/>
+        <location filename="threadscan.cpp" line="+1010"/>
         <source>Guymager cannot scan the devices connected to this computer.</source>
         <translation>Guymager kan geen lijst samenstellen met aangesloten apparaten.</translation>
     </message>
@@ -71,7 +71,7 @@ Continue anyway?</source>
         <translation>Probeer methode "%1"</translation>
     </message>
     <message>
-        <location filename="file.cpp" line="-23"/>
+        <location filename="file.cpp" line="-28"/>
         <source>Creation of a clone</source>
         <translation>Maak een exacte kopie ("Clone")</translation>
     </message>
@@ -158,7 +158,7 @@ usage
         <translation type="obsolete">FIFO Wachtrijen</translation>
     </message>
     <message>
-        <location line="-382"/>
+        <location line="-383"/>
         <source>Remark</source>
         <translation type="unfinished"></translation>
     </message>
@@ -175,7 +175,22 @@ usage
     <message>
         <location line="+1"/>
         <source>Model</source>
-        <translation type="unfinished">Model</translation>
+        <translation>Model</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>NativePath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>ByPath</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Interface</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
@@ -190,7 +205,7 @@ usage
     <message>
         <location line="+1"/>
         <source>Size</source>
-        <translation type="unfinished">Grootte</translation>
+        <translation>Grootte</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -205,7 +220,7 @@ usage
     <message>
         <location line="+1"/>
         <source>Progress</source>
-        <translation type="unfinished">Voortgang</translation>
+        <translation>Voortgang</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -270,7 +285,7 @@ usage
 <context>
     <name>t_DlgAcquire</name>
     <message>
-        <location filename="config.h" line="+261"/>
+        <location filename="config.h" line="+266"/>
         <location filename="table.cpp" line="+309"/>
         <source>EwfCaseNumber</source>
         <translation>Zaaknummer</translation>
@@ -337,7 +352,7 @@ usage
         <translation>(Bestandsextensie %1)></translation>
     </message>
     <message>
-        <location line="+60"/>
+        <location line="+61"/>
         <source>Destination</source>
         <translation>Bestemming</translation>
     </message>
@@ -353,7 +368,12 @@ usage
         <translation>Selecteer de bestemmingsmap</translation>
     </message>
     <message>
-        <location line="+260"/>
+        <location line="+222"/>
+        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or Guymager (see Guymager configuration file, parameter EwfFormat).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+39"/>
         <source>Special characters</source>
         <comment>Dialog title</comment>
         <translation>Speciale karakters</translation>
@@ -370,7 +390,7 @@ Do you accept these changes?</source>
 Wilt u deze wijzigingen accepteren?</translation>
     </message>
     <message>
-        <location line="-108"/>
+        <location line="-109"/>
         <source>Access denied</source>
         <comment>Dialog title</comment>
         <translation>Toegang verboden</translation>
@@ -410,7 +430,7 @@ This may be due to insufficient access rights or unsupported filename characters
 Dit kan kan komen door onvoldoende rechten of niet-ondersteunde karakters in de bestandsnaam. Kies een andere map als bestemming.</translation>
     </message>
     <message>
-        <location line="-739"/>
+        <location line="-740"/>
         <source>Local device, cannot be written</source>
         <translation>Lokaal apparaat, kan niet geschreven worden</translation>
     </message>
@@ -430,7 +450,7 @@ Dit kan kan komen door onvoldoende rechten of niet-ondersteunde karakters in de
         <translation>Ok voor kloon</translation>
     </message>
     <message>
-        <location line="+835"/>
+        <location line="+837"/>
         <source>The info filename contains special characters which are not allowed. Guymager suggests the following changes:
 	%1
 Do you accept these changes?</source>
@@ -450,7 +470,7 @@ Wilt u deze wijzigingen accepteren?</translation>
         <translation>Het image- of infobestand bestaat al. Overschrijven?</translation>
     </message>
     <message>
-        <location line="-775"/>
+        <location line="-777"/>
         <source>Clone %1</source>
         <comment>Dialog title, %1 is the device (for instance /dev/hdc)</comment>
         <translation>Kloon %1</translation>
@@ -487,20 +507,20 @@ Wilt u deze wijzigingen accepteren?</translation>
         <translation>(bestandsextensie %1 of %2)</translation>
     </message>
     <message>
-        <location line="+563"/>
+        <location line="+564"/>
         <location line="+15"/>
-        <location line="+11"/>
+        <location line="+12"/>
         <source>Incorrect value</source>
         <comment>Dialog title</comment>
         <translation>Incorrecte waarde</translation>
     </message>
     <message>
-        <location line="-25"/>
+        <location line="-26"/>
         <source>The split file size "%1" is not valid. Only positive numbers can be entered.</source>
         <translation>De grootte van de delen van het bestand is niet correct. Alleen positieve getallen kunnen ingevoerd worden.</translation>
     </message>
     <message>
-        <location line="+153"/>
+        <location line="+154"/>
         <source>The info file already exists. Do you want to overwrite it?</source>
         <translation>Het infobestand bestaat al. Wilt u het overschrijven?</translation>
     </message>
@@ -519,7 +539,7 @@ Wilt u deze wijzigingen accepteren?</translation>
         <translation type="unfinished">Bereken SHA-1</translation>
     </message>
     <message>
-        <location filename="dlgacquire.cpp" line="-933"/>
+        <location filename="dlgacquire.cpp" line="-935"/>
         <source>Selected for first acquisition</source>
         <translation type="unfinished"></translation>
     </message>
@@ -541,7 +561,7 @@ Wilt u deze wijzigingen accepteren?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+154"/>
+        <location line="+155"/>
         <location line="+21"/>
         <source>Back...</source>
         <translation type="unfinished"></translation>
@@ -558,12 +578,7 @@ Wilt u deze wijzigingen accepteren?</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>The split size for the configured EWF format must be in the range %1 - %2 MiB. For bigger files, switch to Encase6 format or later (see Guymager configuration file, parameter EwfFormat).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+69"/>
+        <location line="+81"/>
         <source>Destination in use</source>
         <comment>Dialog title</comment>
         <translation type="unfinished"></translation>
@@ -793,7 +808,7 @@ Guymager will exit automatically in %1 seconds.</source>
 <context>
     <name>t_MainWindow</name>
     <message>
-        <location filename="device.cpp" line="+363"/>
+        <location filename="device.cpp" line="+391"/>
         <source>Local device</source>
         <translation>Lokaal apparaat</translation>
     </message>
@@ -848,7 +863,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="obsolete">Afgebroken - Fout: Reden is 'geen'</translation>
     </message>
     <message>
-        <location line="-325"/>
+        <location line="-353"/>
         <source>Aborted by user</source>
         <translation>Afgebroken door de gebruiker</translation>
     </message>
@@ -861,7 +876,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation type="obsolete">Afgebroken - apparaat kan niet gelezen worden</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="+278"/>
+        <location filename="mainwindow.cpp" line="+281"/>
         <source>&Rescan</source>
         <translation>&Herscannen</translation>
     </message>
@@ -906,7 +921,7 @@ Guymager will exit automatically in %1 seconds.</source>
         <translation>Over &Qt></translation>
     </message>
     <message>
-        <location line="+323"/>
+        <location line="+326"/>
         <source>Exit GUYMAGER</source>
         <comment>Dialog title</comment>
         <translation>GUYMAGER Afsluiten</translation>
@@ -962,7 +977,7 @@ Using libguytools %5</translation>
         <translation type="obsolete">Afgebroken - Image bestand verificatie fout</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="+419"/>
+        <location filename="device.cpp" line="+454"/>
         <source>Unknown</source>
         <comment>Media info string for informing about hidden areas (HPA/DCO)</comment>
         <translation>Onbekend</translation>
@@ -980,7 +995,7 @@ Using libguytools %5</translation>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="mainwindow.cpp" line="-428"/>
+        <location filename="mainwindow.cpp" line="-431"/>
         <source>Rescan devices and update table</source>
         <translation>Herscan de apparaten en ververs de tabel</translation>
     </message>
@@ -1029,7 +1044,7 @@ Using libguytools %5</translation>
         <translation>Het apparaat of bestand kan niet geselecteerd worden, omdat het 0 bytes bevat.</translation>
     </message>
     <message>
-        <location filename="device.cpp" line="-161"/>
+        <location filename="device.cpp" line="-168"/>
         <source>Used in clone operation</source>
         <translation>Wordt al gebruikt voor een Clone operatie</translation>
     </message>
@@ -1039,7 +1054,7 @@ Using libguytools %5</translation>
         <translation>Afbreken...</translation>
     </message>
     <message>
-        <location line="+156"/>
+        <location line="+163"/>
         <source>none</source>
         <comment>column hidden areas</comment>
         <translation>geen</translation>
@@ -1051,7 +1066,7 @@ Using libguytools %5</translation>
         <translation>onbekend</translation>
     </message>
     <message>
-        <location line="-431"/>
+        <location line="-466"/>
         <source>Acquisition start failure</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1116,7 +1131,7 @@ Using libguytools %5</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+248"/>
+        <location line="+276"/>
         <source>Running</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1126,14 +1141,14 @@ Using libguytools %5</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
-        <location line="+24"/>
+        <location line="+53"/>
+        <location line="+26"/>
         <source>Verified & ok</source>
         <comment>Status column</comment>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-19"/>
+        <location line="-20"/>
         <source>image 1 failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1164,7 +1179,7 @@ Using libguytools %5</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+18"/>
+        <location line="+20"/>
         <source>source verification failed</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1189,7 +1204,7 @@ Using libguytools %5</translation>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+399"/>
+        <location line="+402"/>
         <source>(not used as Guymager currently is configured to use its own EWF module)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1326,13 +1341,13 @@ Linked with libguytools %6</source>
         <translation>Er zijn geen sectoren met fouten aangetroffen tijdens het veiligstellen.</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+40"/>
         <source>--</source>
         <comment>Info file</comment>
         <translation>--</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Finished successfully</source>
         <comment>Info file</comment>
         <translation>Met succes klaar</translation>
@@ -1455,7 +1470,7 @@ Linked with libguytools %6</source>
         <translation type="obsolete">Hash berekening:: SHA-256</translation>
     </message>
     <message>
-        <location line="-631"/>
+        <location line="-633"/>
         <source>Image path and file name:: %1</source>
         <comment>Info file</comment>
         <translation>Pad en bestandsnaam van imagebestand:: %1</translation>
@@ -1479,7 +1494,7 @@ Linked with libguytools %6</source>
         <translation>Image verificatie:: uit</translation>
     </message>
     <message>
-        <location line="+533"/>
+        <location line="+535"/>
         <source>Aborted because of image read error during verification</source>
         <comment>Info file</comment>
         <translation>Afgebroken vanwege een leesfout van het imagebestand tijdens de verificatie</translation>
@@ -1534,7 +1549,7 @@ Linked with libguytools %6</source>
         <translation>U kunt proberen om het apparaat nogmaals veilig te stellen.</translation>
     </message>
     <message>
-        <location line="-798"/>
+        <location line="-800"/>
         <source>Remove special device</source>
         <comment>Context menu</comment>
         <translation>Verwijder speciaal apparaat</translation>
@@ -1604,7 +1619,7 @@ Linked with libguytools %6</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+532"/>
+        <location line="+534"/>
         <source>Aborted because of source read error</source>
         <comment>Info file</comment>
         <translation type="unfinished"></translation>
diff --git a/hash.cpp b/hash.cpp
index 752ee81..3144588 100644
--- a/hash.cpp
+++ b/hash.cpp
@@ -9,7 +9,7 @@
 //  Module:         Hash wrapper functions for uniform hash interface
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/hash.h b/hash.h
index c94a5f6..dea63cb 100644
--- a/hash.h
+++ b/hash.h
@@ -9,7 +9,7 @@
 //  Module:         Hash wrapper functions for uniform hash interface
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/info.cpp b/info.cpp
index 2b2b119..12d8189 100644
--- a/info.cpp
+++ b/info.cpp
@@ -9,7 +9,7 @@
 //  Module:         Information about the acquisition, creates the info file
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/info.h b/info.h
index 49aa544..f395eba 100644
--- a/info.h
+++ b/info.h
@@ -9,7 +9,7 @@
 //  Module:         Information about the acquisition, creates the info file
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/infofield.cpp b/infofield.cpp
index 25e2c3f..266e73a 100644
--- a/infofield.cpp
+++ b/infofield.cpp
@@ -9,7 +9,7 @@
 //  Module:         The info field area
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/infofield.h b/infofield.h
index 8738317..7928f6b 100644
--- a/infofield.h
+++ b/infofield.h
@@ -9,7 +9,7 @@
 //  Module:         The info field area
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/itemdelegate.cpp b/itemdelegate.cpp
index 33c5776..eeae847 100644
--- a/itemdelegate.cpp
+++ b/itemdelegate.cpp
@@ -10,7 +10,7 @@
 //                  in t_Table.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/itemdelegate.h b/itemdelegate.h
index 597bf8f..16dd87e 100644
--- a/itemdelegate.h
+++ b/itemdelegate.h
@@ -10,7 +10,7 @@
 //                  in t_Table.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/main.cpp b/main.cpp
index da0c8ec..5111b6c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -11,7 +11,7 @@
 //                  deinitialisation.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -33,6 +33,7 @@
 #include <signal.h>
 #include <locale.h>
 #include <pwd.h>
+#include <unistd.h>
 
 #include <QApplication>
 #include <QtGui>
@@ -507,11 +508,11 @@ static APIRET MainGo (int argc, char *argv[], bool *pAutoExit)
 
    // Initialise libewf
    // -----------------
-   #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015))
+   #if ((LIBEWF_VERSION != 20100226) && (LIBEWF_VERSION != 20080501) && (LIBEWF_VERSION != 20111015) && (LIBEWF_VERSION != 20130416))
       #error "Please check EWF documentation for newer Encase formats and adjust following code"
    #endif
 
-   #if (LIBEWF_VERSION == 20111015)
+   #if (LIBEWF_VERSION >= 20130416)
       libewf_notify_set_stream  (stderr, NULL);
       libewf_notify_set_verbose (CONFIG (VerboseLibewf) ? 1 : 0);
    #else
diff --git a/main.h b/main.h
index 670751b..6754cd7 100644
--- a/main.h
+++ b/main.h
@@ -9,7 +9,7 @@
 //  Module:         Main
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/mainwindow.cpp b/mainwindow.cpp
index a08208a..c68c1b5 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -10,7 +10,7 @@
 //                  widget
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -66,6 +66,9 @@ static t_MainWindowColumn MainWindowColumnArr[] =
    { MAINWINDOW_COLUMN_SerialNr           , t_Device::GetSerialNumber  , t_ItemDelegate::DISPLAYTYPE_STANDARD },
    { MAINWINDOW_COLUMN_LinuxDevice        , t_Device::GetLinuxDevice   , t_ItemDelegate::DISPLAYTYPE_STANDARD },
    { MAINWINDOW_COLUMN_Model              , t_Device::GetModel         , t_ItemDelegate::DISPLAYTYPE_STANDARD },
+   { MAINWINDOW_COLUMN_NativePath         , t_Device::GetNativePath    , t_ItemDelegate::DISPLAYTYPE_STANDARD },
+   { MAINWINDOW_COLUMN_ByPath             , t_Device::GetByPath        , t_ItemDelegate::DISPLAYTYPE_STANDARD },
+   { MAINWINDOW_COLUMN_Interface          , t_Device::GetInterface     , t_ItemDelegate::DISPLAYTYPE_STANDARD },
    { MAINWINDOW_COLUMN_State              , t_Device::GetState         , t_ItemDelegate::DISPLAYTYPE_STATE    },
    { MAINWINDOW_COLUMN_AdditionalStateInfo, t_Device::GetAddStateInfo  , t_ItemDelegate::DISPLAYTYPE_STANDARD },
    { MAINWINDOW_COLUMN_Size               , t_Device::GetSizeHuman     , t_ItemDelegate::DISPLAYTYPE_STANDARD },
@@ -555,11 +558,14 @@ void t_MainWindow::SlotScanFinished (t_pDeviceList pNewDeviceList)
       if (!NewDevice)
       {
          pDev->Checked = true;
+         pDev->NativePath  = pNewDev->NativePath;     // The device might have been connected to a
+         pDev->ByPath      = pNewDev->ByPath;         // different port.
+         pDev->Interface   = pNewDev->Interface;
          if ((pDev->GetState() == t_Device::AcquirePaused) ||
              (pDev->GetState() == t_Device::VerifyPaused))
          {
             LOG_INFO ("Switching %s to connected again", QSTR_TO_PSZ(pNewDev->LinuxDevice))
-               pDev->LinuxDevice = pNewDev->LinuxDevice;    // Linux may choose a new path when reconnecting the device
+            pDev->LinuxDevice = pNewDev->LinuxDevice;    // Linux may choose a new path when reconnecting the device
             if (pDev->GetState() == t_Device::AcquirePaused)  // (1)
                  pDev->SetState (t_Device::Acquire);
             else pDev->SetState (t_Device::Verify );
diff --git a/mainwindow.h b/mainwindow.h
index e7b9e0c..f1c267a 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -7,7 +7,7 @@
 //                  Section Nouvelles Technologies
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -42,6 +42,9 @@
 #define MAINWINDOW_COLUMN_SerialNr             QT_TRANSLATE_NOOP("t_DeviceListModel", "SerialNr"           )
 #define MAINWINDOW_COLUMN_LinuxDevice          QT_TRANSLATE_NOOP("t_DeviceListModel", "LinuxDevice"        )
 #define MAINWINDOW_COLUMN_Model                QT_TRANSLATE_NOOP("t_DeviceListModel", "Model"              )
+#define MAINWINDOW_COLUMN_NativePath           QT_TRANSLATE_NOOP("t_DeviceListModel", "NativePath"         )
+#define MAINWINDOW_COLUMN_ByPath               QT_TRANSLATE_NOOP("t_DeviceListModel", "ByPath"             )
+#define MAINWINDOW_COLUMN_Interface            QT_TRANSLATE_NOOP("t_DeviceListModel", "Interface"          )
 #define MAINWINDOW_COLUMN_State                QT_TRANSLATE_NOOP("t_DeviceListModel", "State"              )
 #define MAINWINDOW_COLUMN_AdditionalStateInfo  QT_TRANSLATE_NOOP("t_DeviceListModel", "AdditionalStateInfo")
 #define MAINWINDOW_COLUMN_Size                 QT_TRANSLATE_NOOP("t_DeviceListModel", "Size"               )
diff --git a/md5.cpp b/md5.cpp
index bbb32a5..3fe5ae8 100644
--- a/md5.cpp
+++ b/md5.cpp
@@ -9,7 +9,7 @@
 //  Module:         MD5 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/md5.h b/md5.h
index 8e2f431..8065962 100644
--- a/md5.h
+++ b/md5.h
@@ -9,7 +9,7 @@
 //  Module:         MD5 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/media.cpp b/media.cpp
index 393c9b9..862da7b 100644
--- a/media.cpp
+++ b/media.cpp
@@ -11,7 +11,7 @@
 //                  copied from Mark Lord's famous hdparm.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/media.h b/media.h
index f0e3bb9..f2e343d 100644
--- a/media.h
+++ b/media.h
@@ -9,7 +9,7 @@
 //  Module:         Module for special media function, like HPA/DCO and others
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/modules.h b/modules.h
index 38d7e73..3c111ac 100644
--- a/modules.h
+++ b/modules.h
@@ -9,7 +9,7 @@
 //  Module:         Central application error code managment
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/qtutil.cpp b/qtutil.cpp
index 26dfb04..45b5e84 100644
--- a/qtutil.cpp
+++ b/qtutil.cpp
@@ -9,7 +9,7 @@
 //  Module:         Different Qt utility functions
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/qtutil.h b/qtutil.h
index 109cb6b..5266633 100644
--- a/qtutil.h
+++ b/qtutil.h
@@ -9,7 +9,7 @@
 //  Module:         Different Qt utility functions
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/runstats.cpp b/runstats.cpp
index c7dc846..c107398 100644
--- a/runstats.cpp
+++ b/runstats.cpp
@@ -10,7 +10,7 @@
 //                  others
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/runstats.h b/runstats.h
index c2bfefb..2258091 100644
--- a/runstats.h
+++ b/runstats.h
@@ -10,7 +10,7 @@
 //                  others
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/sha1.cpp b/sha1.cpp
index 6a6f529..8164de9 100644
--- a/sha1.cpp
+++ b/sha1.cpp
@@ -9,7 +9,7 @@
 //  Module:         SHA1 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/sha1.h b/sha1.h
index 1d431c9..137f3da 100644
--- a/sha1.h
+++ b/sha1.h
@@ -9,7 +9,7 @@
 //  Module:         SHA1 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/sha256.cpp b/sha256.cpp
index 08d3fc4..faac8d2 100644
--- a/sha256.cpp
+++ b/sha256.cpp
@@ -9,7 +9,7 @@
 //  Module:         SHA256 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/sha256.h b/sha256.h
index ebf4f47..80a21af 100644
--- a/sha256.h
+++ b/sha256.h
@@ -9,7 +9,7 @@
 //  Module:         SHA256 calculation
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/table.cpp b/table.cpp
index 1cf820a..c6c1963 100644
--- a/table.cpp
+++ b/table.cpp
@@ -9,7 +9,7 @@
 //  Module:         The table widget (central widget of the application)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -781,6 +781,7 @@ static APIRET TableTimestampToISO (const QDateTime &Timestamp, QString &Str)
 APIRET t_Table::InfoAcquisitionEnd0 (t_pAcquisition pAcquisition)
 {
    t_pDevice pDevice = pAcquisition->pDevice;
+   QString    None;
    QString    MD5;
    QString    MD5VerifySrc;
    QString    MD5VerifyDst;
@@ -803,9 +804,10 @@ APIRET t_Table::InfoAcquisitionEnd0 (t_pAcquisition pAcquisition)
    CHK (InfoAcquisitionBadSectors (pAcquisition, false))
    if (pAcquisition->VerifySrc)
       CHK (InfoAcquisitionBadSectors (pAcquisition, true))
-   MD5 = tr("--", "Info file");  SHA1          = MD5;   SHA256          = MD5;
-   MD5VerifySrc = MD5;           SHA1VerifySrc = MD5;   SHA256VerifySrc = MD5;
-   MD5VerifyDst = MD5;           SHA1VerifyDst = MD5;   SHA256VerifyDst = MD5;
+   None= tr("--", "Info file");
+   MD5          = None;     SHA1          = None;   SHA256          = None;
+   MD5VerifySrc = None;     SHA1VerifySrc = None;   SHA256VerifySrc = None;
+   MD5VerifyDst = None;     SHA1VerifyDst = None;   SHA256VerifyDst = None;
 
    switch (pDevice->GetState())
    {
diff --git a/table.h b/table.h
index 6ea3c0f..ff55c95 100644
--- a/table.h
+++ b/table.h
@@ -9,7 +9,7 @@
 //  Module:         The table widget (central widget of the application)
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/thread.cpp b/thread.cpp
index 4e50bd6..fa07359 100644
--- a/thread.cpp
+++ b/thread.cpp
@@ -9,7 +9,7 @@
 //  Module:         Thread base class
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/thread.h b/thread.h
index e9395a4..7cf66bd 100644
--- a/thread.h
+++ b/thread.h
@@ -9,7 +9,7 @@
 //  Module:         Thread base class
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadcompress.cpp b/threadcompress.cpp
index b6a2fad..80bdca9 100644
--- a/threadcompress.cpp
+++ b/threadcompress.cpp
@@ -9,7 +9,7 @@
 //  Module:         Multi-threaded compression
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -28,8 +28,6 @@
 
 #include <QtCore>
 
-//#include "libewf.h"
-
 #include "common.h"
 #include "device.h"
 #include "threadcompress.h"
@@ -168,12 +166,20 @@ void t_ThreadCompress::run (void)
                }
                else
                {
-                  CompressedSize = CompressedMaxSize;   // Must be initialised with the max buffer size (we use this one instead of MULTITHREADED_COMPRESSION_FIFO_BLOCK_SIZE in order to check if ti works as tols in the zlib docu)
-                  rc = libewf_raw_write_prepare_buffer (pEwfHandle, pFifoBlockIn ->Buffer, pFifoBlockIn->DataSize,
-                                                                    pFifoBlockOut->Buffer, &CompressedSize,
-                                                                   &pFifoBlockOut->EwfCompressionUsed,
-                                                                   &pFifoBlockOut->EwfChunkCRC,
-                                                                   &pFifoBlockOut->EwfWriteCRC);
+                  CompressedSize = CompressedMaxSize;  // Must be initialised with the max buffer size (we use this one instead of MULTITHREADED_COMPRESSION_FIFO_BLOCK_SIZE in order to check if it works as written in the zlib docu)
+                  #if (LIBEWF_VERSION < 20130416)
+                     rc = libewf_raw_write_prepare_buffer (pEwfHandle, pFifoBlockIn ->Buffer, pFifoBlockIn->DataSize,
+                                                                       pFifoBlockOut->Buffer, &CompressedSize,
+                                                                      &pFifoBlockOut->EwfCompressionUsed,
+                                                                      &pFifoBlockOut->EwfChunkCRC,
+                                                                      &pFifoBlockOut->EwfWriteCRC);
+                  #else
+                     rc = libewf_handle_prepare_write_chunk(pEwfHandle, pFifoBlockIn ->Buffer, pFifoBlockIn->DataSize,
+                                                                        pFifoBlockOut->Buffer, &CompressedSize,
+                                                                       &pFifoBlockOut->EwfCompressionUsed,
+                                                                       &pFifoBlockOut->EwfChunkCRC,
+                                                                       &pFifoBlockOut->EwfWriteCRC, NULL);
+                  #endif
                   if (pFifoBlockOut->EwfCompressionUsed)
                   {
                      pFifoBlockOut->EwfDataSize = CompressedSize;                        // Data to be forwarded is contained in
diff --git a/threadcompress.h b/threadcompress.h
index b3279ee..52ee4e3 100644
--- a/threadcompress.h
+++ b/threadcompress.h
@@ -9,7 +9,7 @@
 //  Module:         Multi-threaded compression
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadhash.cpp b/threadhash.cpp
index 20c8101..9af016b 100644
--- a/threadhash.cpp
+++ b/threadhash.cpp
@@ -9,7 +9,7 @@
 //  Module:         Thread for calculating hashes
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadhash.h b/threadhash.h
index d71a9cf..6059cf3 100644
--- a/threadhash.h
+++ b/threadhash.h
@@ -9,7 +9,7 @@
 //  Module:         Thread for calculating hashes
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadread.cpp b/threadread.cpp
index 0b2a36d..312f5c0 100644
--- a/threadread.cpp
+++ b/threadread.cpp
@@ -9,7 +9,7 @@
 //  Module:         Thread for reading data.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadread.h b/threadread.h
index d7ede25..4e86d81 100644
--- a/threadread.h
+++ b/threadread.h
@@ -9,7 +9,7 @@
 //  Module:         Thread for reading data.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadscan.cpp b/threadscan.cpp
index f900642..19709dd 100644
--- a/threadscan.cpp
+++ b/threadscan.cpp
@@ -9,7 +9,7 @@
 //  Module:         Thread for scanning the connected devices
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -30,6 +30,7 @@
 #include <QtDBus/QtDBus>
 
 #include <dlfcn.h>
+#include <unistd.h>
 
 #include "toolconstants.h"
 
@@ -54,7 +55,7 @@
 const int THREADSCAN_WAIT_MAX         = 30000;
 const int THREADSCAN_WAIT_GRANULARITY = 100;
 
-const QString ThreadScanLibPartedSearchDirs     = "/lib,/usr/lib,/usr/local/lib";       // Separate directories by commas
+const QString ThreadScanLibPartedSearchDirs     = "/lib,/usr/lib,/usr/lib64,/usr/local/lib";       // Separate directories by commas
 const QString ThreadScanLibPartedSearchPattern  = "libparted*.so*";
 const int     ThreadScanLibPartedSearchMaxDepth = 1; // Max. depth for recursing into directories indicated under
                                                      // ThreadScanLibPartedSearchDirs, 0=only directory indicated, 1=also descend 1 below, ...
@@ -72,14 +73,48 @@ t_ThreadScanWorker::t_ThreadScanWorker (t_ThreadScan *pThreadScan)
 //  Utility functions used by workers
 // -----------------------------------
 
+
+static bool ThreadScanDeviceIsListed (QStringList *pList, t_pDevice pDevice)
+{
+   bool Listed=false;
+
+   if (CONFIG(LocalHiddenDevicesUseRegExp))
+   {
+      QRegExp RegExp;
+
+      RegExp.setCaseSensitivity(Qt::CaseInsensitive);
+      foreach (QString Str, *pList)
+      {
+         RegExp.setPattern (Str);
+         Listed = (RegExp.indexIn(pDevice->SerialNumber) != -1) ||
+                  (RegExp.indexIn(pDevice->LinuxDevice ) != -1) ||
+                  (RegExp.indexIn(pDevice->Model       ) != -1) ||
+                  (RegExp.indexIn(pDevice->NativePath  ) != -1) ||
+                  (RegExp.indexIn(pDevice->ByPath      ) != -1) ||
+                  (RegExp.indexIn(pDevice->Interface   ) != -1);
+         if (Listed)
+            break;
+      }
+   }
+   else
+   {
+      Listed = pList->contains (pDevice->SerialNumber, Qt::CaseInsensitive) ||
+               pList->contains (pDevice->LinuxDevice , Qt::CaseInsensitive) ||
+               pList->contains (pDevice->Model       , Qt::CaseInsensitive) ||
+               pList->contains (pDevice->NativePath  , Qt::CaseInsensitive) ||
+               pList->contains (pDevice->ByPath      , Qt::CaseInsensitive) ||
+               pList->contains (pDevice->Interface   , Qt::CaseInsensitive);
+   }
+   return Listed;
+}
+
 static APIRET ThreadScanSetLocal (t_pDevice pDevice)
 {
    QStringList *pLocalDevices;
 
    CHK_EXIT (CfgGetLocalDevices (&pLocalDevices))
-   pDevice->Local = pLocalDevices->contains (pDevice->SerialNumber) ||
-                    pLocalDevices->contains (pDevice->LinuxDevice ) ||
-                    pLocalDevices->contains (pDevice->Model       );
+   pDevice->Local = ThreadScanDeviceIsListed (pLocalDevices, pDevice);
+
    return NO_ERROR;
 }
 
@@ -89,9 +124,7 @@ static bool ThreadScanIsHidden (t_pDevice pDevice)
    bool          Hidden;
 
    CHK_EXIT (CfgGetHiddenDevices (&pHiddenDevices))
-   Hidden = pHiddenDevices->contains (pDevice->SerialNumber) ||
-            pHiddenDevices->contains (pDevice->LinuxDevice ) ||
-            pHiddenDevices->contains (pDevice->Model       );
+   Hidden = ThreadScanDeviceIsListed (pHiddenDevices, pDevice);
    return Hidden;
 }
 
@@ -796,6 +829,9 @@ void t_ThreadScanWorkerDevKit::SlotRescan (void)
    QVariant        Category;
    QVariant        SerialNumber;
    QVariant        LinuxDevice;
+   QVariant        NativePath;
+   QVariant        ByPath;
+   QVariant        Interface;
    QVariant        Vendor;
    QVariant        Product;
    QVariant        Size;
@@ -855,11 +891,14 @@ void t_ThreadScanWorkerDevKit::SlotRescan (void)
                continue;
          }
 
-         CHK_EXIT (GetProperty (DevKitDevice, "device-size"      , Size        ))
-         CHK_EXIT (GetProperty (DevKitDevice, "drive-serial"     , SerialNumber))
-         CHK_EXIT (GetProperty (DevKitDevice, "drive-vendor"     , Vendor      ))
-         CHK_EXIT (GetProperty (DevKitDevice, "drive-model"      , Product     ))
-         CHK_EXIT (GetProperty (DevKitDevice, "device-block-size", BlockSize   ))
+         CHK_EXIT (GetProperty (DevKitDevice, "device-size"               , Size        ))
+         CHK_EXIT (GetProperty (DevKitDevice, "drive-serial"              , SerialNumber))
+         CHK_EXIT (GetProperty (DevKitDevice, "drive-vendor"              , Vendor      ))
+         CHK_EXIT (GetProperty (DevKitDevice, "drive-model"               , Product     ))
+         CHK_EXIT (GetProperty (DevKitDevice, "device-block-size"         , BlockSize   ))
+         CHK_EXIT (GetProperty (DevKitDevice, "native-path"               , NativePath  ))
+         CHK_EXIT (GetProperty (DevKitDevice, "device-file-by-path"       , ByPath      ))
+         CHK_EXIT (GetProperty (DevKitDevice, "drive-connection-interface", Interface   ))
 
          CHK_EXIT (ThreadScanCheckForceSerialNumber (QSTR_TO_PSZ(LinuxDevice.toString()), &SerialNumber))
 
@@ -883,7 +922,8 @@ void t_ThreadScanWorkerDevKit::SlotRescan (void)
 
 
          pDevice = new t_Device (SerialNumber.toString(), LinuxDevice.toString(), Model,
-                                 BlockSize.toULongLong(), BlockSize.toULongLong(), Size.toULongLong());
+                                 BlockSize.toULongLong(), BlockSize.toULongLong(), Size.toULongLong(),
+                                 NativePath.toString(), ByPath.toString(), Interface.toString());
          if (ThreadScanIsHidden(pDevice))
          {
             delete pDevice;
diff --git a/threadscan.h b/threadscan.h
index 888bc6e..24c64ae 100644
--- a/threadscan.h
+++ b/threadscan.h
@@ -7,7 +7,7 @@
 //                  Section Nouvelles Technologies
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/threadwrite.cpp b/threadwrite.cpp
index fc4f841..50bef26 100644
--- a/threadwrite.cpp
+++ b/threadwrite.cpp
@@ -9,7 +9,7 @@
 //  Module:         Thread for writing data.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
@@ -329,15 +329,31 @@ class t_OutputFileDD: public t_OutputFile
 //                                           EWF FORMAT
 // ------------------------------------------------------------------------------------------------
 
-#define CHK_LIBEWF(Fn)                                                 \
-{                                                                      \
-   int rclibewf = (Fn);                                                \
-   if (rclibewf != 1)                                                  \
-   {                                                                   \
-      LOG_ERROR ("[%s] Error in libewf function: %s, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), #Fn, rclibewf) \
-      return ERROR_THREADWRITE_LIBEWF_FAILED;                          \
-   }                                                                   \
-}
+#if (LIBEWF_VERSION >= 20130416)
+   #define CHK_LIBEWF(Fn)                                                 \
+   {                                                                      \
+      int rclibewf = (Fn);                                                \
+      if (rclibewf != 1)                                                  \
+      {                                                                   \
+         const int BuffLen = 1024;                                        \
+         char    *pBuff    = (char*) malloc(BuffLen);                     \
+         libewf_error_sprint (poLibewfErr, pBuff, BuffLen);                \
+         LOG_ERROR ("[%s] Error in libewf function: %s, rc=%d [%s]", QSTR_TO_PSZ (poDevice->LinuxDevice), #Fn, rclibewf, pBuff) \
+         free(pBuff);                                                     \
+         return ERROR_THREADWRITE_LIBEWF_FAILED;                          \
+      }                                                                   \
+   }
+#else
+   #define CHK_LIBEWF(Fn)                                                 \
+   {                                                                      \
+      int rclibewf = (Fn);                                                \
+      if (rclibewf != 1)                                                  \
+      {                                                                   \
+         LOG_ERROR ("[%s] Error in libewf function: %s, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), #Fn, rclibewf) \
+         return ERROR_THREADWRITE_LIBEWF_FAILED;                          \
+      }                                                                   \
+   }
+#endif
 
 class t_OutputFileEWF: public t_OutputFile
 {
@@ -346,6 +362,9 @@ class t_OutputFileEWF: public t_OutputFile
           t_OutputFile (pThreadWrite)
       {
          poFile                  = NULL;
+         #if (LIBEWF_VERSION >= 20130416)
+            poLibewfErr          = NULL;
+         #endif
          poAcquisition           = NULL,
          poDevice                = NULL;   //lint -esym(613,t_OutputFileEWF::poDevice)  Prevent lint from telling us about possible null pointers in the following code
          poVerifyBuff            = NULL;
@@ -363,17 +382,25 @@ class t_OutputFileEWF: public t_OutputFile
 
       APIRET Open (t_pAcquisition pAcquisition, bool Verify)
       {
-         QString         Uname;
-         QString         GuymagerVersion;
-         LIBEWF_HANDLE *pFile;
-         char          *pAsciiFileName;
-         QByteArray      AsciiFileName = (pAcquisition->ImagePath + pAcquisition->ImageFilename).toAscii();
+         QString          Uname;
+         QString          GuymagerVersion;
+         LIBEWF_HANDLE  *pFile=NULL;
+         char           *pAsciiFileName;
+         QByteArray       AsciiFileName = (pAcquisition->ImagePath + pAcquisition->ImageFilename).toAscii();
 
          poAcquisition          = pAcquisition;
          poDevice               = pAcquisition->pDevice;
          oHasCompressionThreads = poDevice->HasCompressionThreads();
          oVerification          = Verify;
 
+         #if (LIBEWF_VERSION >= 20130416)
+            if (libewf_handle_initialize(&pFile, &poLibewfErr) != 1)
+            {
+               LOG_INFO ("[%s] Error while initialising libewf handle", QSTR_TO_PSZ (poDevice->LinuxDevice))
+               return ERROR_THREADWRITE_OPEN_FAILED;
+            }
+         #endif
+
          if (Verify)
          {
             QFileInfoList FileInfoList;
@@ -396,7 +423,12 @@ class t_OutputFileEWF: public t_OutputFile
             }
 
             CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Calling libewf_open"))
-            pFile = libewf_open (poImageFilenameArr, oImageFileCount, libewf_get_flags_read());
+            #if (LIBEWF_VERSION >= 20130416)
+               if (libewf_handle_open(pFile, poImageFilenameArr, oImageFileCount, LIBEWF_ACCESS_FLAG_READ, &poLibewfErr) != 1)
+                  pFile = NULL;
+            # else
+               pFile = libewf_open (poImageFilenameArr, oImageFileCount, libewf_get_flags_read());
+            #endif
             CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Returning from libewf_open"))
             if (pFile == NULL)
             {
@@ -410,28 +442,16 @@ class t_OutputFileEWF: public t_OutputFile
          {
             char *pAsciiFileName = AsciiFileName.data();
 
-            pFile = libewf_open (&pAsciiFileName, 1, LIBEWF_OPEN_WRITE);
+            #if (LIBEWF_VERSION >= 20130416)
+               if (libewf_handle_open(pFile, &pAsciiFileName, 1, LIBEWF_OPEN_WRITE, &poLibewfErr) != 1)
+                  pFile = NULL;
+            #else
+               pFile = libewf_open (&pAsciiFileName, 1, LIBEWF_OPEN_WRITE);
+            #endif
+
             if (pFile == NULL)
                return ERROR_THREADWRITE_OPEN_FAILED;
 
-            #define STR_AND_LEN(QStr) QStr.toAscii().data(), strlen(QStr.toAscii().data())
-
-            CHK_LIBEWF (libewf_set_format             (pFile, (uint8_t) CONFIG (EwfFormat)))
-            CHK_LIBEWF (libewf_set_media_size         (pFile, poDevice->Size))
-            CHK_LIBEWF (libewf_set_bytes_per_sector   (pFile, (unsigned int) poDevice->SectorSize))
-            CHK_LIBEWF (libewf_set_sectors_per_chunk  (pFile, poDevice->FifoBlockSize / poDevice->SectorSize))
-            CHK_LIBEWF (libewf_set_segment_file_size  (pFile, poAcquisition->SplitFileSize))
-            CHK_LIBEWF (libewf_set_compression_values (pFile, CONFIG (EwfCompression), 0)) // last parameter must be set to 0, else, only empty-block compression is done
-            CHK_LIBEWF (libewf_set_media_type         (pFile, poDevice->Removable ? LIBEWF_MEDIA_TYPE_REMOVABLE : LIBEWF_MEDIA_TYPE_FIXED))
-            CHK_LIBEWF (libewf_set_volume_type        (pFile, LIBEWF_VOLUME_TYPE_PHYSICAL))
-            CHK_LIBEWF (libewf_set_error_granularity  (pFile, 1))
-
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"case_number"    , STR_AND_LEN(poAcquisition->CaseNumber    )))
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"description"    , STR_AND_LEN(poAcquisition->Description   )))
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"examiner_name"  , STR_AND_LEN(poAcquisition->Examiner      )))
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"evidence_number", STR_AND_LEN(poAcquisition->EvidenceNumber)))
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"notes"          , STR_AND_LEN(poAcquisition->Notes         )))
-
             CHK (ToolSysInfoUname (Uname))
             GuymagerVersion = QString("guymager ") + QString(pCompileInfoVersion);
             if (CONFIG (AvoidEncaseProblems))
@@ -440,10 +460,56 @@ class t_OutputFileEWF: public t_OutputFile
                Uname           = Uname          .left (THREADWRITE_ENCASE_MAXLEN_OSVERSION    );
             }
 
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_operating_system", STR_AND_LEN(Uname)))
-            CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_software_version", STR_AND_LEN(GuymagerVersion)))
 
-            #undef STR_AND_LEN
+            #if (LIBEWF_VERSION >= 20130416)
+               #define MOD_QSTR(QStr) (const uint8_t *)QStr.toUtf8().data(), strlen(QStr.toUtf8().data())
+               #define MOD_STR(pStr)  (const uint8_t *)pStr, strlen((const char *)pStr)
+               #define SET_UTF8_STRING(Field,Value)                                                                     \
+                  if (Value.length())        /* libewf fails when setting an empty string, so let's check this here */  \
+                     CHK_LIBEWF (libewf_handle_set_utf8_header_value (pFile, MOD_STR(Field), MOD_QSTR(Value), &poLibewfErr))
+
+               uint8_t media_flags = 0;
+
+               CHK_LIBEWF (libewf_handle_set_format              (pFile, (uint8_t) CONFIG (EwfFormat)                  , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_media_size          (pFile, poDevice->Size                                , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_bytes_per_sector    (pFile, (unsigned int) poDevice->SectorSize           , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_sectors_per_chunk   (pFile, poDevice->FifoBlockSize / poDevice->SectorSize, &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_maximum_segment_size(pFile, poAcquisition->SplitFileSize                  , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_compression_values  (pFile, CONFIG (EwfCompression), 0                    , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_media_type          (pFile, poDevice->Removable ? LIBEWF_MEDIA_TYPE_REMOVABLE : LIBEWF_MEDIA_TYPE_FIXED, &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_get_media_flags         (pFile, &media_flags                                  , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_media_flags         (pFile, media_flags | LIBEWF_MEDIA_FLAG_PHYSICAL      , &poLibewfErr))
+               CHK_LIBEWF (libewf_handle_set_error_granularity   (pFile, 1                                             , &poLibewfErr))
+
+               SET_UTF8_STRING("case_number"             , poAcquisition->CaseNumber    )
+               SET_UTF8_STRING("description"             , poAcquisition->Description   )
+               SET_UTF8_STRING("examiner_name"           , poAcquisition->Examiner      )
+               SET_UTF8_STRING("evidence_number"         , poAcquisition->EvidenceNumber)
+               SET_UTF8_STRING("notes"                   , poAcquisition->Notes         )
+               SET_UTF8_STRING("acquiry_operating_system", Uname                        )
+               SET_UTF8_STRING("acquiry_software_version", GuymagerVersion              )
+            #else
+               #define MOD_QSTR(QStr) QStr.toAscii().data(), strlen(QStr.toAscii().data())
+               CHK_LIBEWF (libewf_set_format             (pFile, (uint8_t) CONFIG (EwfFormat)))
+               CHK_LIBEWF (libewf_set_media_size         (pFile, poDevice->Size))
+               CHK_LIBEWF (libewf_set_bytes_per_sector   (pFile, (unsigned int) poDevice->SectorSize))
+               CHK_LIBEWF (libewf_set_sectors_per_chunk  (pFile, poDevice->FifoBlockSize / poDevice->SectorSize))
+               CHK_LIBEWF (libewf_set_segment_file_size  (pFile, poAcquisition->SplitFileSize))
+               CHK_LIBEWF (libewf_set_compression_values (pFile, CONFIG (EwfCompression), 0)) // last parameter must be set to 0, else, only empty-block compression is done
+               CHK_LIBEWF (libewf_set_media_type         (pFile, poDevice->Removable ? LIBEWF_MEDIA_TYPE_REMOVABLE : LIBEWF_MEDIA_TYPE_FIXED))
+               CHK_LIBEWF (libewf_set_volume_type        (pFile, LIBEWF_VOLUME_TYPE_PHYSICAL))
+               CHK_LIBEWF (libewf_set_error_granularity  (pFile, 1))
+
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"case_number"             , MOD_QSTR(poAcquisition->CaseNumber    )))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"description"             , MOD_QSTR(poAcquisition->Description   )))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"examiner_name"           , MOD_QSTR(poAcquisition->Examiner      )))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"evidence_number"         , MOD_QSTR(poAcquisition->EvidenceNumber)))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"notes"                   , MOD_QSTR(poAcquisition->Notes         )))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_operating_system", MOD_QSTR(Uname                        )))
+               CHK_LIBEWF (libewf_set_header_value (pFile, (char *)"acquiry_software_version", MOD_QSTR(GuymagerVersion              )))
+            #endif
+            #undef MOD_STR
+            #undef MOD_QSTR
 
          }
          poFile = pFile; // Only set poFile at the very end, so the CompressionThreads won't use it until everything is initialised
@@ -461,15 +527,29 @@ class t_OutputFileEWF: public t_OutputFile
          if (oHasCompressionThreads)
          {
             Size = pFifoBlock->EwfDataSize;
-            Written = libewf_raw_write_buffer (poFile, pFifoBlock->Buffer, Size, pFifoBlock->DataSize,
-                                                                                 pFifoBlock->EwfCompressionUsed,
-                                                                                 pFifoBlock->EwfChunkCRC,
-                                                                                 pFifoBlock->EwfWriteCRC);
+            #if (LIBEWF_VERSION >= 20130416)
+               uint8_t checksum_buffer[ 4 ];
+               Written = libewf_handle_write_chunk(poFile, pFifoBlock->Buffer, Size, pFifoBlock->DataSize,
+                                                                                     pFifoBlock->EwfCompressionUsed,
+                                                                                     checksum_buffer,
+                                                                                     pFifoBlock->EwfChunkCRC,
+                                                                                     pFifoBlock->EwfWriteCRC,
+                                                                                     NULL);
+            #else
+               Written = libewf_raw_write_buffer (poFile, pFifoBlock->Buffer, Size, pFifoBlock->DataSize,
+                                                                                    pFifoBlock->EwfCompressionUsed,
+                                                                                    pFifoBlock->EwfChunkCRC,
+                                                                                    pFifoBlock->EwfWriteCRC);
+            #endif
          }
          else
          {
             Size = pFifoBlock->DataSize;
-            Written = libewf_write_buffer (poFile, pFifoBlock->Buffer, Size);
+            #if (LIBEWF_VERSION >= 20130416)
+               Written = libewf_handle_write_buffer (poFile, pFifoBlock->Buffer, Size, NULL);
+            #else
+               Written = libewf_write_buffer (poFile, pFifoBlock->Buffer, Size);
+            #endif
          }
 
          if (Written != Size)
@@ -501,7 +581,11 @@ class t_OutputFileEWF: public t_OutputFile
          ToRead = GETMIN (Remaining, poDevice->FifoBlockSize);
 
          CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Calling libewf_read_buffer"))
-         Read = libewf_read_buffer (poFile, poVerifyBuff, ToRead);
+         #if (LIBEWF_VERSION >= 20130416)
+            Read = libewf_handle_read_buffer (poFile, poVerifyBuff, ToRead, NULL);
+         #else
+            Read = libewf_read_buffer (poFile, poVerifyBuff, ToRead);
+         #endif
          CHK_EXIT (poThreadWrite->SetDebugMessage ("Verification: Returning from libewf_read_buffer"))
 
          if (Read != (ssize_t)ToRead)
@@ -520,11 +604,11 @@ class t_OutputFileEWF: public t_OutputFile
 
       APIRET Close (void)
       {
-         QList<quint64> BadSectors;
-         quint64        i, Count;
-         quint64        From, To, Next;
-         int            rc;
-         int            j;
+         QList<quint64>   BadSectors;
+         quint64          i, Count;
+         quint64          From, To, Next;
+         int              rc;
+         int              j;
 
          if (poFile == NULL)
             CHK (ERROR_THREADWRITE_NOT_OPENED)
@@ -550,7 +634,11 @@ class t_OutputFileEWF: public t_OutputFile
                      To = Next;
                      i++;
                   }
-                  CHK_LIBEWF (libewf_add_acquiry_error(poFile, From, To - From + 1))
+                  #if (LIBEWF_VERSION >= 20130416)
+                     CHK_LIBEWF (libewf_handle_append_acquiry_error (poFile, From, To - From + 1, NULL))
+                  #else
+                     CHK_LIBEWF (libewf_add_acquiry_error(poFile, From, To - From + 1))
+                  #endif
                }
             }
          }
@@ -558,16 +646,35 @@ class t_OutputFileEWF: public t_OutputFile
          // Write hash
          // ----------
          if (!oVerification && poDevice->HasCompressionThreads() && poAcquisition->CalcMD5)
-            CHK_LIBEWF (libewf_set_md5_hash (poFile, (uint8_t*)&poDevice->MD5Digest, HASH_MD5_DIGEST_LENGTH))
-
-         // Close and cleanup
-         // -----------------
-         rc = libewf_close (poFile);
-         if (rc != 0)
          {
-            LOG_ERROR ("[%s] Error in libewf function: libewf_close, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), rc)
-            return ERROR_THREADWRITE_LIBEWF_FAILED;
+            #if (LIBEWF_VERSION >= 20130416)
+               CHK_LIBEWF (libewf_handle_set_md5_hash (poFile, (uint8_t*)&poDevice->MD5Digest, HASH_MD5_DIGEST_LENGTH, NULL))
+            #else
+               CHK_LIBEWF (libewf_set_md5_hash (poFile, (uint8_t*)&poDevice->MD5Digest, HASH_MD5_DIGEST_LENGTH))
+            #endif
          }
+         // Close and cleanup
+         // -----------------
+         #if (LIBEWF_VERSION >= 20130416)
+            rc = libewf_handle_close(poFile, NULL);
+            if (rc != 0)
+            {
+               LOG_ERROR ("[%s] Error in libewf function: libewf_handle_close, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), rc)
+               return ERROR_THREADWRITE_LIBEWF_FAILED;
+            }
+            if (libewf_handle_free(&poFile, NULL) != 1)
+            {
+               LOG_ERROR ("[%s] Error in libewf function: libewf_handle_free, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), rc)
+               return ERROR_THREADWRITE_LIBEWF_FAILED;
+            }
+         #else
+            rc = libewf_close (poFile);
+            if (rc != 0)
+            {
+               LOG_ERROR ("[%s] Error in libewf function: libewf_close, rc=%d", QSTR_TO_PSZ (poDevice->LinuxDevice), rc)
+               return ERROR_THREADWRITE_LIBEWF_FAILED;
+            }
+         #endif
 
          if (poVerifyBuff)
          {
@@ -595,6 +702,9 @@ class t_OutputFileEWF: public t_OutputFile
 
    private:
       LIBEWF_HANDLE *poFile;
+      #if (LIBEWF_VERSION >= 20130416)
+         libewf_error_t *poLibewfErr;
+      #endif
       t_pAcquisition poAcquisition;
       t_pDevice      poDevice;
       bool            oVerification;
diff --git a/threadwrite.h b/threadwrite.h
index 769f7ab..182e8d6 100644
--- a/threadwrite.h
+++ b/threadwrite.h
@@ -9,7 +9,7 @@
 //  Module:         Thread for writing data.
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/util.cpp b/util.cpp
index f052aba..bf47627 100644
--- a/util.cpp
+++ b/util.cpp
@@ -9,7 +9,7 @@
 //  Module:         Different utility functions
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //
diff --git a/util.h b/util.h
index 7284934..2df136c 100644
--- a/util.h
+++ b/util.h
@@ -9,7 +9,7 @@
 //  Module:         Different utility functions
 // ****************************************************************************
 
-// Copyright 2008, 2009, 2010, 2011, 2012, 2013 Guy Voncken
+// Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014 Guy Voncken
 //
 // This file is part of guymager.
 //

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/guymager.git



More information about the forensics-changes mailing list