From add3c69f4badab22ce5b0177ce51c80c44bc59ef Mon Sep 17 00:00:00 2001 From: adam-m Date: Tue, 29 May 2012 15:10:26 -0400 Subject: [PATCH] No unalloc space add image wizard option --- .../autopsy/casemodule/AddImageAction.java | 2 + .../casemodule/AddImageVisualPanel1.form | 50 ++++++++++++----- .../casemodule/AddImageVisualPanel1.java | 56 ++++++++++++++----- .../casemodule/AddImageWizardPanel1.java | 1 + .../casemodule/AddImageWizardPanel2.java | 5 +- .../autopsy/casemodule/Bundle.properties | 1 + .../sleuthkit/autopsy/casemodule/Case.java | 4 +- 7 files changed, 89 insertions(+), 30 deletions(-) diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java index 21355a2a92..9191612312 100644 --- a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java +++ b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageAction.java @@ -71,6 +71,8 @@ public final class AddImageAction extends CallableSystemAction implements Presen static final String LOOKUPFILES_PROP = "lookupFiles"; // boolean: whether or not to skip processing orphan files on FAT filesystems static final String NOFATORPHANS_PROP = "nofatorphans"; + // boolean: whether or not to skip processing of unallocated space + static final String NOUNALLOC_PROP = "nounalloc"; static final Logger logger = Logger.getLogger(AddImageAction.class.getName()); diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form index ca1b883737..ec8cbfdcfc 100644 --- a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form +++ b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.form @@ -25,9 +25,10 @@ - + + @@ -47,13 +48,15 @@ - - - - - - + + + + + + + + @@ -80,16 +83,25 @@ - - - - + + + + + + + + + + + + + + - - + - + @@ -229,5 +241,15 @@ + + + + + + + + + + diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java index e838cfd222..83ead501b3 100644 --- a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java +++ b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageVisualPanel1.java @@ -115,6 +115,14 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { boolean getNoFatOrphans() { return noFatOrphansCheckbox.isSelected(); } + + /** + * + * @return true if no unalloc space processing is selected + */ + boolean getNoUnallocSpaceProcess() { + return noProcessUnallocSpace.isSelected(); + } @@ -213,6 +221,7 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { timeZoneLabel = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); noFatOrphansCheckbox = new javax.swing.JCheckBox(); + noProcessUnallocSpace = new javax.swing.JCheckBox(); setPreferredSize(new java.awt.Dimension(588, 308)); @@ -270,6 +279,13 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { org.openide.awt.Mnemonics.setLocalizedText(noFatOrphansCheckbox, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.noFatOrphansCheckbox.text")); // NOI18N noFatOrphansCheckbox.setToolTipText(org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.noFatOrphansCheckbox.toolTipText")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(noProcessUnallocSpace, org.openide.util.NbBundle.getMessage(AddImageVisualPanel1.class, "AddImageVisualPanel1.noProcessUnallocSpace.text")); // NOI18N + noProcessUnallocSpace.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + noProcessUnallocSpaceActionPerformed(evt); + } + }); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -277,6 +293,7 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(noProcessUnallocSpace) .addGroup(layout.createSequentialGroup() .addComponent(imgPathLabel) .addGap(18, 18, 18) @@ -293,12 +310,13 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { .addComponent(multipleSelectLabel) .addComponent(imgInfoLabel) .addComponent(jLabel1) - .addGroup(layout.createSequentialGroup() - .addComponent(timeZoneLabel) - .addGap(18, 18, 18) - .addComponent(timeZoneComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 253, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(noFatOrphansCheckbox) - .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(timeZoneLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(timeZoneComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 253, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(noFatOrphansCheckbox, javax.swing.GroupLayout.Alignment.LEADING))) .addContainerGap(39, Short.MAX_VALUE)) ); layout.setVerticalGroup( @@ -321,15 +339,21 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { .addComponent(imgPathBrowserButton)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(multipleSelectLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(timeZoneLabel) - .addComponent(timeZoneComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(timeZoneLabel) + .addComponent(timeZoneComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(noProcessUnallocSpace) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))) .addComponent(noFatOrphansCheckbox) - .addGap(18, 18, 18) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(21, 21, 21) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel1) .addContainerGap()) ); @@ -442,6 +466,11 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { this.wizPanel.moveFocusToNext(); }//GEN-LAST:event_imgPathBrowserButtonActionPerformed + +private void noProcessUnallocSpaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_noProcessUnallocSpaceActionPerformed +// TODO add your handling code here: +}//GEN-LAST:event_noProcessUnallocSpaceActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JRadioButton encase; @@ -454,6 +483,7 @@ final class AddImageVisualPanel1 extends JPanel implements DocumentListener { private javax.swing.JLabel jLabel2; private javax.swing.JLabel multipleSelectLabel; private javax.swing.JCheckBox noFatOrphansCheckbox; + private javax.swing.JCheckBox noProcessUnallocSpace; private static javax.swing.JRadioButton rawSingle; private javax.swing.JRadioButton rawSplit; private javax.swing.JComboBox timeZoneComboBox; diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java index 4063870630..babea16623 100644 --- a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java +++ b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel1.java @@ -214,6 +214,7 @@ class AddImageWizardPanel1 implements WizardDescriptor.Panel, settings.putProperty(AddImageAction.IMGPATHS_PROP, getComponent().getImagePaths()); settings.putProperty(AddImageAction.TIMEZONE_PROP, getComponent().getSelectedTimezone()); // store the timezone settings.putProperty(AddImageAction.NOFATORPHANS_PROP, Boolean.valueOf(getComponent().getNoFatOrphans())); + settings.putProperty(AddImageAction.NOUNALLOC_PROP, Boolean.valueOf(getComponent().getNoUnallocSpaceProcess())); //settings.putProperty(AddImageAction.LOOKUPFILES_PROP, getComponent().getLookupFilesCheckboxChecked()); //settings.putProperty(AddImageAction.SOLR_PROP, getComponent().getIndexImageCheckboxChecked()); diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java index b67056afc4..077eb09fbe 100644 --- a/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java +++ b/Case/src/org/sleuthkit/autopsy/casemodule/AddImageWizardPanel2.java @@ -49,6 +49,8 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel { private String timeZone; //whether to not process FAT filesystem orphans private boolean noFatOrphans; + //whether to not process unalloc space + private boolean noUnallocSpace; // task that will clean up the created database file if the wizard is cancelled before it finishes private AddImageAction.CleanupTask cleanupImage; // initialized to null in readSettings() // flag to control the availiablity of next action @@ -189,6 +191,7 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel { imgPaths = (String[]) settings.getProperty(AddImageAction.IMGPATHS_PROP); timeZone = settings.getProperty(AddImageAction.TIMEZONE_PROP).toString(); noFatOrphans = ((Boolean)settings.getProperty(AddImageAction.NOFATORPHANS_PROP)).booleanValue(); + noUnallocSpace = ((Boolean)settings.getProperty(AddImageAction.NOUNALLOC_PROP)).booleanValue(); component.changeProgressBarTextAndColor("", 0, Color.black); @@ -256,7 +259,7 @@ class AddImageWizardPanel2 implements WizardDescriptor.Panel { }); - process = currentCase.makeAddImageProcess(timeZone, noFatOrphans); + process = currentCase.makeAddImageProcess(timeZone, !noUnallocSpace, noFatOrphans); cancelledWhileRunning.enable(); try { process.run(imgPaths); diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/Bundle.properties b/Case/src/org/sleuthkit/autopsy/casemodule/Bundle.properties index 2b56070331..d3f1b9ed07 100755 --- a/Case/src/org/sleuthkit/autopsy/casemodule/Bundle.properties +++ b/Case/src/org/sleuthkit/autopsy/casemodule/Bundle.properties @@ -126,3 +126,4 @@ NewCaseVisualPanel2.examinerTextField.text= NewCaseVisualPanel2.optionalLabel.text=Optional: Set Case Number and Examiner AddImageVisualPanel1.noFatOrphansCheckbox.toolTipText= AddImageVisualPanel1.noFatOrphansCheckbox.text=Disable in-depth file recovery of FAT file systems (faster results, but may miss deleted files) +AddImageVisualPanel1.noProcessUnallocSpace.text=Disable recovery of unallocated space diff --git a/Case/src/org/sleuthkit/autopsy/casemodule/Case.java b/Case/src/org/sleuthkit/autopsy/casemodule/Case.java index 5dfff98817..4405fe4b20 100755 --- a/Case/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Case/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -172,8 +172,8 @@ public class Case { } } - AddImageProcess makeAddImageProcess(String timezone, boolean noFatOrphans) { - return this.db.makeAddImageProcess(timezone, true, noFatOrphans); + AddImageProcess makeAddImageProcess(String timezone, boolean processUnallocSpace, boolean noFatOrphans) { + return this.db.makeAddImageProcess(timezone, processUnallocSpace, noFatOrphans); } /**