mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Merge branch 'release-4.14.0' of https://github.com/sleuthkit/autopsy into 5923-FixRegripperError
This commit is contained in:
commit
c1e6c57fbe
@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
|||||||
OpenIDE-Module: org.sleuthkit.autopsy.core/10
|
OpenIDE-Module: org.sleuthkit.autopsy.core/10
|
||||||
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/core/Bundle.properties
|
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/core/Bundle.properties
|
||||||
OpenIDE-Module-Layer: org/sleuthkit/autopsy/core/layer.xml
|
OpenIDE-Module-Layer: org/sleuthkit/autopsy/core/layer.xml
|
||||||
OpenIDE-Module-Implementation-Version: 29
|
OpenIDE-Module-Implementation-Version: 30
|
||||||
OpenIDE-Module-Requires: org.openide.windows.WindowManager
|
OpenIDE-Module-Requires: org.openide.windows.WindowManager
|
||||||
AutoUpdate-Show-In-Client: true
|
AutoUpdate-Show-In-Client: true
|
||||||
AutoUpdate-Essential-Module: true
|
AutoUpdate-Essential-Module: true
|
||||||
|
@ -127,5 +127,5 @@ nbm.homepage=http://www.sleuthkit.org/
|
|||||||
nbm.module.author=Brian Carrier
|
nbm.module.author=Brian Carrier
|
||||||
nbm.needs.restart=true
|
nbm.needs.restart=true
|
||||||
source.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8.0-sources.jar
|
source.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8.0-sources.jar
|
||||||
spec.version.base=10.17
|
spec.version.base=10.18
|
||||||
|
|
||||||
|
@ -18,16 +18,21 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.communications.relationships;
|
package org.sleuthkit.autopsy.communications.relationships;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.sleuthkit.autopsy.coreutils.ImageUtils;
|
import org.sleuthkit.autopsy.coreutils.ImageUtils;
|
||||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||||
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.Account;
|
import org.sleuthkit.datamodel.Account;
|
||||||
import org.sleuthkit.datamodel.BlackboardArtifact;
|
import org.sleuthkit.datamodel.BlackboardArtifact;
|
||||||
import org.sleuthkit.datamodel.BlackboardAttribute;
|
import org.sleuthkit.datamodel.BlackboardAttribute;
|
||||||
import org.sleuthkit.datamodel.Content;
|
import org.sleuthkit.datamodel.Content;
|
||||||
import org.sleuthkit.datamodel.TskCoreException;
|
import org.sleuthkit.datamodel.TskCoreException;
|
||||||
|
import org.sleuthkit.datamodel.blackboardutils.FileAttachment;
|
||||||
|
import org.sleuthkit.datamodel.blackboardutils.MessageAttachments;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -121,12 +126,31 @@ class AccountSummary {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
// count the attachments from the TSK_ATTACHMENTS attribute.
|
||||||
|
BlackboardAttribute attachmentsAttr = artifact.getAttribute(new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ATTACHMENTS));
|
||||||
|
if (attachmentsAttr != null) {
|
||||||
|
String jsonVal = attachmentsAttr.getValueString();
|
||||||
|
MessageAttachments msgAttachments = new Gson().fromJson(jsonVal, MessageAttachments.class);
|
||||||
|
|
||||||
|
Collection<FileAttachment> fileAttachments = msgAttachments.getFileAttachments();
|
||||||
|
for (FileAttachment fileAttachment : fileAttachments) {
|
||||||
|
attachmentCnt++;
|
||||||
|
long attachedFileObjId = fileAttachment.getObjectId();
|
||||||
|
if (attachedFileObjId >= 0) {
|
||||||
|
AbstractFile attachedFile = artifact.getSleuthkitCase().getAbstractFileById(attachedFileObjId);
|
||||||
|
if (ImageUtils.thumbnailSupported(attachedFile)) {
|
||||||
|
mediaCnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // backward compatibility - email message attachments are derived files, children of the message.
|
||||||
attachmentCnt += artifact.getChildrenCount();
|
attachmentCnt += artifact.getChildrenCount();
|
||||||
for (Content childContent : artifact.getChildren()) {
|
for (Content childContent : artifact.getChildren()) {
|
||||||
if (ImageUtils.thumbnailSupported(childContent)) {
|
if (ImageUtils.thumbnailSupported(childContent)) {
|
||||||
mediaCnt++;
|
mediaCnt++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (TskCoreException ex) {
|
} catch (TskCoreException ex) {
|
||||||
logger.log(Level.WARNING, String.format("Exception thrown "
|
logger.log(Level.WARNING, String.format("Exception thrown "
|
||||||
+ "from getChildrenCount artifactID: %d",
|
+ "from getChildrenCount artifactID: %d",
|
||||||
|
@ -87,9 +87,9 @@ HtmlPanel.showImagesToggleButton.text=Download Images
|
|||||||
MediaViewImagePanel.tagsMenu.text_1=Tags Menu
|
MediaViewImagePanel.tagsMenu.text_1=Tags Menu
|
||||||
MediaPlayerPanel.progressLabel.text=00:00:00/00:00:00
|
MediaPlayerPanel.progressLabel.text=00:00:00/00:00:00
|
||||||
MediaPlayerPanel.audioSlider.toolTipText=
|
MediaPlayerPanel.audioSlider.toolTipText=
|
||||||
MediaPlayerPanel.rewindButton.text=\u2bc7\u2bc7
|
MediaPlayerPanel.rewindButton.text=
|
||||||
MediaPlayerPanel.fastForwardButton.text=\u2bc8\u2bc8
|
MediaPlayerPanel.fastForwardButton.text=
|
||||||
MediaPlayerPanel.playButton.text=\u25ba
|
MediaPlayerPanel.playButton.text=
|
||||||
MediaPlayerPanel.infoLabel.text=No Errors
|
MediaPlayerPanel.infoLabel.text=No Errors
|
||||||
MediaPlayerPanel.VolumeIcon.text=Volume
|
MediaPlayerPanel.VolumeIcon.text=Volume
|
||||||
MediaPlayerPanel.playBackSpeedLabel.text=Speed:
|
MediaPlayerPanel.playBackSpeedLabel.text=Speed:
|
||||||
|
@ -158,9 +158,9 @@ HtmlPanel.showImagesToggleButton.text=Download Images
|
|||||||
MediaViewImagePanel.tagsMenu.text_1=Tags Menu
|
MediaViewImagePanel.tagsMenu.text_1=Tags Menu
|
||||||
MediaPlayerPanel.progressLabel.text=00:00:00/00:00:00
|
MediaPlayerPanel.progressLabel.text=00:00:00/00:00:00
|
||||||
MediaPlayerPanel.audioSlider.toolTipText=
|
MediaPlayerPanel.audioSlider.toolTipText=
|
||||||
MediaPlayerPanel.rewindButton.text=\u2bc7\u2bc7
|
MediaPlayerPanel.rewindButton.text=
|
||||||
MediaPlayerPanel.fastForwardButton.text=\u2bc8\u2bc8
|
MediaPlayerPanel.fastForwardButton.text=
|
||||||
MediaPlayerPanel.playButton.text=\u25ba
|
MediaPlayerPanel.playButton.text=
|
||||||
MediaPlayerPanel.infoLabel.text=No Errors
|
MediaPlayerPanel.infoLabel.text=No Errors
|
||||||
MediaPlayerPanel.VolumeIcon.text=Volume
|
MediaPlayerPanel.VolumeIcon.text=Volume
|
||||||
MediaPlayerPanel.playBackSpeedLabel.text=Speed:
|
MediaPlayerPanel.playBackSpeedLabel.text=Speed:
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="131" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="117" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
</Layout>
|
</Layout>
|
||||||
@ -83,7 +83,7 @@
|
|||||||
<EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="5" max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
<Component id="buttonPanel" max="32767" attributes="0"/>
|
<Component id="buttonPanel" max="32767" attributes="0"/>
|
||||||
<Component id="playBackPanel" pref="0" max="32767" attributes="0"/>
|
<Component id="playBackPanel" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="14" max="-2" attributes="0"/>
|
||||||
<Component id="infoLabel" min="-2" max="-2" attributes="0"/>
|
<Component id="infoLabel" min="-2" max="-2" attributes="0"/>
|
||||||
@ -123,9 +123,21 @@
|
|||||||
<SubComponents>
|
<SubComponents>
|
||||||
<Component class="javax.swing.JButton" name="playButton">
|
<Component class="javax.swing.JButton" name="playButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/org/sleuthkit/autopsy/contentviewers/images/Play-arrow-01.png"/>
|
||||||
|
</Property>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.playButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.playButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[53, 29]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[53, 29]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[49, 29]"/>
|
||||||
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playButtonActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playButtonActionPerformed"/>
|
||||||
@ -138,6 +150,9 @@
|
|||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="fastForwardButton">
|
<Component class="javax.swing.JButton" name="fastForwardButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/org/sleuthkit/autopsy/contentviewers/images/Fast-forward-01.png"/>
|
||||||
|
</Property>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.fastForwardButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.fastForwardButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
@ -153,6 +168,9 @@
|
|||||||
</Component>
|
</Component>
|
||||||
<Component class="javax.swing.JButton" name="rewindButton">
|
<Component class="javax.swing.JButton" name="rewindButton">
|
||||||
<Properties>
|
<Properties>
|
||||||
|
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||||
|
<Image iconType="3" name="/org/sleuthkit/autopsy/contentviewers/images/Fast-rewind-01.png"/>
|
||||||
|
</Property>
|
||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.rewindButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.rewindButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
@ -172,6 +190,15 @@
|
|||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.VolumeIcon.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.VolumeIcon.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="horizontalTextPosition" type="int" value="2"/>
|
<Property name="horizontalTextPosition" type="int" value="2"/>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 29]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 29]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 19]"/>
|
||||||
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Constraints>
|
<Constraints>
|
||||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
|
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
|
||||||
@ -188,12 +215,16 @@
|
|||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.audioSlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.audioSlider.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="value" type="int" value="25"/>
|
<Property name="value" type="int" value="25"/>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[32767, 19]"/>
|
||||||
|
</Property>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[200, 21]"/>
|
<Dimension value="[200, 19]"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[200, 21]"/>
|
<Dimension value="[200, 30]"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="requestFocusEnabled" type="boolean" value="false"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
<AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="audioSlider.setUI(new CircularJSliderUI(audioSlider, new CircularJSliderConfiguration(new Dimension(15,15))));"/>
|
<AuxValue name="JavaCodeGenerator_InitCodePost" type="java.lang.String" value="audioSlider.setUI(new CircularJSliderUI(audioSlider, new CircularJSliderConfiguration(new Dimension(15,15))));"/>
|
||||||
@ -223,7 +254,7 @@
|
|||||||
<DimensionLayout dim="0">
|
<DimensionLayout dim="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<Component id="playBackSpeedLabel" min="-2" max="-2" attributes="0"/>
|
<Component id="playBackSpeedLabel" min="-2" pref="34" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="32767" attributes="0"/>
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
<Component id="playBackSpeedComboBox" min="-2" max="-2" attributes="0"/>
|
<Component id="playBackSpeedComboBox" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="13" max="-2" attributes="0"/>
|
||||||
@ -233,12 +264,15 @@
|
|||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="0" attributes="0">
|
<Group type="102" alignment="0" attributes="0">
|
||||||
<EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
|
||||||
<Group type="103" groupAlignment="3" attributes="0">
|
<Group type="103" groupAlignment="0" max="-2" attributes="0">
|
||||||
<Component id="playBackSpeedComboBox" alignment="3" min="-2" max="-2" attributes="0"/>
|
<Group type="102" attributes="0">
|
||||||
<Component id="playBackSpeedLabel" alignment="3" min="-2" max="-2" attributes="0"/>
|
<EmptySpace min="2" pref="2" max="-2" attributes="0"/>
|
||||||
|
<Component id="playBackSpeedLabel" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace max="32767" attributes="0"/>
|
<Component id="playBackSpeedComboBox" min="-2" max="-2" attributes="0"/>
|
||||||
|
</Group>
|
||||||
|
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
@ -260,14 +294,15 @@
|
|||||||
</Property>
|
</Property>
|
||||||
<Property name="selectedIndex" type="int" value="3"/>
|
<Property name="selectedIndex" type="int" value="3"/>
|
||||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[53, 23]"/>
|
<Dimension value="[53, 29]"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[53, 23]"/>
|
<Dimension value="[53, 29]"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[53, 23]"/>
|
<Dimension value="[53, 29]"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="requestFocusEnabled" type="boolean" value="false"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playBackSpeedComboBoxActionPerformed"/>
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="playBackSpeedComboBoxActionPerformed"/>
|
||||||
@ -281,6 +316,15 @@
|
|||||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.playBackSpeedLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MediaPlayerPanel.playBackSpeedLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 19]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 19]"/>
|
||||||
|
</Property>
|
||||||
|
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
|
<Dimension value="[34, 19]"/>
|
||||||
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
|
@ -61,6 +61,7 @@ import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
|
|||||||
import org.sleuthkit.datamodel.AbstractFile;
|
import org.sleuthkit.datamodel.AbstractFile;
|
||||||
import org.sleuthkit.datamodel.TskData;
|
import org.sleuthkit.datamodel.TskData;
|
||||||
import javafx.embed.swing.JFXPanel;
|
import javafx.embed.swing.JFXPanel;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JSlider;
|
import javax.swing.JSlider;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
@ -201,6 +202,9 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
private static final int PROGRESS_SLIDER_SIZE = 2000;
|
private static final int PROGRESS_SLIDER_SIZE = 2000;
|
||||||
private static final int SKIP_IN_SECONDS = 30;
|
private static final int SKIP_IN_SECONDS = 30;
|
||||||
|
|
||||||
|
private final ImageIcon playIcon = new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/contentviewers/images/Play-arrow-01.png"));
|
||||||
|
private final ImageIcon pauseIcon = new ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/contentviewers/images/Pause-01.png"));
|
||||||
|
|
||||||
private ExtractMedia extractMediaWorker;
|
private ExtractMedia extractMediaWorker;
|
||||||
|
|
||||||
//Serialize setting the value of the Video progress slider.
|
//Serialize setting the value of the Video progress slider.
|
||||||
@ -280,11 +284,11 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
public void stateChanged(GstObject go, State oldState, State currentState, State pendingState) {
|
public void stateChanged(GstObject go, State oldState, State currentState, State pendingState) {
|
||||||
if (State.PLAYING.equals(currentState)) {
|
if (State.PLAYING.equals(currentState)) {
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
playButton.setText("||");
|
playButton.setIcon(pauseIcon);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
playButton.setText("►");
|
playButton.setIcon(playIcon);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -821,7 +825,7 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
);
|
);
|
||||||
videoPanelLayout.setVerticalGroup(
|
videoPanelLayout.setVerticalGroup(
|
||||||
videoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
videoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGap(0, 131, Short.MAX_VALUE)
|
.addGap(0, 117, Short.MAX_VALUE)
|
||||||
);
|
);
|
||||||
|
|
||||||
progressSlider.setValue(0);
|
progressSlider.setValue(0);
|
||||||
@ -835,7 +839,11 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
|
|
||||||
buttonPanel.setLayout(new java.awt.GridBagLayout());
|
buttonPanel.setLayout(new java.awt.GridBagLayout());
|
||||||
|
|
||||||
|
playButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/contentviewers/images/Play-arrow-01.png"))); // NOI18N
|
||||||
org.openide.awt.Mnemonics.setLocalizedText(playButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.playButton.text")); // NOI18N
|
org.openide.awt.Mnemonics.setLocalizedText(playButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.playButton.text")); // NOI18N
|
||||||
|
playButton.setMaximumSize(new java.awt.Dimension(53, 29));
|
||||||
|
playButton.setMinimumSize(new java.awt.Dimension(53, 29));
|
||||||
|
playButton.setPreferredSize(new java.awt.Dimension(49, 29));
|
||||||
playButton.addActionListener(new java.awt.event.ActionListener() {
|
playButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
playButtonActionPerformed(evt);
|
playButtonActionPerformed(evt);
|
||||||
@ -849,6 +857,7 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0);
|
gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0);
|
||||||
buttonPanel.add(playButton, gridBagConstraints);
|
buttonPanel.add(playButton, gridBagConstraints);
|
||||||
|
|
||||||
|
fastForwardButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/contentviewers/images/Fast-forward-01.png"))); // NOI18N
|
||||||
org.openide.awt.Mnemonics.setLocalizedText(fastForwardButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.fastForwardButton.text")); // NOI18N
|
org.openide.awt.Mnemonics.setLocalizedText(fastForwardButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.fastForwardButton.text")); // NOI18N
|
||||||
fastForwardButton.addActionListener(new java.awt.event.ActionListener() {
|
fastForwardButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
@ -862,6 +871,7 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0);
|
gridBagConstraints.insets = new java.awt.Insets(5, 6, 0, 0);
|
||||||
buttonPanel.add(fastForwardButton, gridBagConstraints);
|
buttonPanel.add(fastForwardButton, gridBagConstraints);
|
||||||
|
|
||||||
|
rewindButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/contentviewers/images/Fast-rewind-01.png"))); // NOI18N
|
||||||
org.openide.awt.Mnemonics.setLocalizedText(rewindButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.rewindButton.text")); // NOI18N
|
org.openide.awt.Mnemonics.setLocalizedText(rewindButton, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.rewindButton.text")); // NOI18N
|
||||||
rewindButton.addActionListener(new java.awt.event.ActionListener() {
|
rewindButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
@ -877,6 +887,9 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
|
|
||||||
org.openide.awt.Mnemonics.setLocalizedText(VolumeIcon, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.VolumeIcon.text")); // NOI18N
|
org.openide.awt.Mnemonics.setLocalizedText(VolumeIcon, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.VolumeIcon.text")); // NOI18N
|
||||||
VolumeIcon.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
|
VolumeIcon.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
|
||||||
|
VolumeIcon.setMaximumSize(new java.awt.Dimension(34, 29));
|
||||||
|
VolumeIcon.setMinimumSize(new java.awt.Dimension(34, 29));
|
||||||
|
VolumeIcon.setPreferredSize(new java.awt.Dimension(34, 19));
|
||||||
gridBagConstraints = new java.awt.GridBagConstraints();
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
||||||
gridBagConstraints.gridx = 3;
|
gridBagConstraints.gridx = 3;
|
||||||
gridBagConstraints.gridy = 0;
|
gridBagConstraints.gridy = 0;
|
||||||
@ -891,8 +904,10 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
audioSlider.setMinorTickSpacing(5);
|
audioSlider.setMinorTickSpacing(5);
|
||||||
audioSlider.setToolTipText(org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.audioSlider.toolTipText")); // NOI18N
|
audioSlider.setToolTipText(org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.audioSlider.toolTipText")); // NOI18N
|
||||||
audioSlider.setValue(25);
|
audioSlider.setValue(25);
|
||||||
audioSlider.setMinimumSize(new java.awt.Dimension(200, 21));
|
audioSlider.setMaximumSize(new java.awt.Dimension(32767, 19));
|
||||||
audioSlider.setPreferredSize(new java.awt.Dimension(200, 21));
|
audioSlider.setMinimumSize(new java.awt.Dimension(200, 19));
|
||||||
|
audioSlider.setPreferredSize(new java.awt.Dimension(200, 30));
|
||||||
|
audioSlider.setRequestFocusEnabled(false);
|
||||||
audioSlider.setUI(new CircularJSliderUI(audioSlider, new CircularJSliderConfiguration(new Dimension(15,15))));
|
audioSlider.setUI(new CircularJSliderUI(audioSlider, new CircularJSliderConfiguration(new Dimension(15,15))));
|
||||||
gridBagConstraints = new java.awt.GridBagConstraints();
|
gridBagConstraints = new java.awt.GridBagConstraints();
|
||||||
gridBagConstraints.gridx = 4;
|
gridBagConstraints.gridx = 4;
|
||||||
@ -909,9 +924,10 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
|
|
||||||
playBackSpeedComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "0.25x", "0.50x", "0.75x", "1x", "1.25x", "1.50x", "1.75x", "2x" }));
|
playBackSpeedComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "0.25x", "0.50x", "0.75x", "1x", "1.25x", "1.50x", "1.75x", "2x" }));
|
||||||
playBackSpeedComboBox.setSelectedIndex(3);
|
playBackSpeedComboBox.setSelectedIndex(3);
|
||||||
playBackSpeedComboBox.setMaximumSize(new java.awt.Dimension(53, 23));
|
playBackSpeedComboBox.setMaximumSize(new java.awt.Dimension(53, 29));
|
||||||
playBackSpeedComboBox.setMinimumSize(new java.awt.Dimension(53, 23));
|
playBackSpeedComboBox.setMinimumSize(new java.awt.Dimension(53, 29));
|
||||||
playBackSpeedComboBox.setPreferredSize(new java.awt.Dimension(53, 23));
|
playBackSpeedComboBox.setPreferredSize(new java.awt.Dimension(53, 29));
|
||||||
|
playBackSpeedComboBox.setRequestFocusEnabled(false);
|
||||||
playBackSpeedComboBox.addActionListener(new java.awt.event.ActionListener() {
|
playBackSpeedComboBox.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
playBackSpeedComboBoxActionPerformed(evt);
|
playBackSpeedComboBoxActionPerformed(evt);
|
||||||
@ -919,13 +935,16 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
});
|
});
|
||||||
|
|
||||||
org.openide.awt.Mnemonics.setLocalizedText(playBackSpeedLabel, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.playBackSpeedLabel.text")); // NOI18N
|
org.openide.awt.Mnemonics.setLocalizedText(playBackSpeedLabel, org.openide.util.NbBundle.getMessage(MediaPlayerPanel.class, "MediaPlayerPanel.playBackSpeedLabel.text")); // NOI18N
|
||||||
|
playBackSpeedLabel.setMaximumSize(new java.awt.Dimension(34, 19));
|
||||||
|
playBackSpeedLabel.setMinimumSize(new java.awt.Dimension(34, 19));
|
||||||
|
playBackSpeedLabel.setPreferredSize(new java.awt.Dimension(34, 19));
|
||||||
|
|
||||||
javax.swing.GroupLayout playBackPanelLayout = new javax.swing.GroupLayout(playBackPanel);
|
javax.swing.GroupLayout playBackPanelLayout = new javax.swing.GroupLayout(playBackPanel);
|
||||||
playBackPanel.setLayout(playBackPanelLayout);
|
playBackPanel.setLayout(playBackPanelLayout);
|
||||||
playBackPanelLayout.setHorizontalGroup(
|
playBackPanelLayout.setHorizontalGroup(
|
||||||
playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(playBackPanelLayout.createSequentialGroup()
|
.addGroup(playBackPanelLayout.createSequentialGroup()
|
||||||
.addComponent(playBackSpeedLabel)
|
.addComponent(playBackSpeedLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addComponent(playBackSpeedComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(playBackSpeedComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addGap(13, 13, 13))
|
.addGap(13, 13, 13))
|
||||||
@ -933,11 +952,13 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
playBackPanelLayout.setVerticalGroup(
|
playBackPanelLayout.setVerticalGroup(
|
||||||
playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(playBackPanelLayout.createSequentialGroup()
|
.addGroup(playBackPanelLayout.createSequentialGroup()
|
||||||
.addGap(6, 6, 6)
|
.addGap(7, 7, 7)
|
||||||
.addGroup(playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
.addGroup(playBackPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
.addComponent(playBackSpeedComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addGroup(playBackPanelLayout.createSequentialGroup()
|
||||||
.addComponent(playBackSpeedLabel))
|
.addGap(2, 2, 2)
|
||||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
.addComponent(playBackSpeedLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addComponent(playBackSpeedComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addGap(10, 10, 10))
|
||||||
);
|
);
|
||||||
|
|
||||||
javax.swing.GroupLayout controlPanelLayout = new javax.swing.GroupLayout(controlPanel);
|
javax.swing.GroupLayout controlPanelLayout = new javax.swing.GroupLayout(controlPanel);
|
||||||
@ -969,7 +990,7 @@ public class MediaPlayerPanel extends JPanel implements MediaFileViewer.MediaVie
|
|||||||
.addGap(5, 5, 5)
|
.addGap(5, 5, 5)
|
||||||
.addGroup(controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
.addGroup(controlPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||||
.addComponent(buttonPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
.addComponent(buttonPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||||
.addComponent(playBackPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
|
.addComponent(playBackPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
.addGap(14, 14, 14)
|
.addGap(14, 14, 14)
|
||||||
.addComponent(infoLabel))
|
.addComponent(infoLabel))
|
||||||
);
|
);
|
||||||
|
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Fast-forward-01.png
Executable file
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Fast-forward-01.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 415 B |
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Fast-rewind-01.png
Executable file
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Fast-rewind-01.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 436 B |
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Pause-01.png
Executable file
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Pause-01.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 247 B |
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Play-arrow-01.png
Executable file
BIN
Core/src/org/sleuthkit/autopsy/contentviewers/images/Play-arrow-01.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 418 B |
@ -47,7 +47,7 @@ final class FileSearchData {
|
|||||||
UNIQUE(0, 1, Bundle.FileSearchData_Frequency_unique_displayName()),
|
UNIQUE(0, 1, Bundle.FileSearchData_Frequency_unique_displayName()),
|
||||||
RARE(1, 10, Bundle.FileSearchData_Frequency_rare_displayName()),
|
RARE(1, 10, Bundle.FileSearchData_Frequency_rare_displayName()),
|
||||||
COMMON(2, 100, Bundle.FileSearchData_Frequency_common_displayName()),
|
COMMON(2, 100, Bundle.FileSearchData_Frequency_common_displayName()),
|
||||||
VERY_COMMON(3, 0, Bundle.FileSearchData_Frequency_common_displayName()),
|
VERY_COMMON(3, 0, Bundle.FileSearchData_Frequency_verycommon_displayName()),
|
||||||
KNOWN(4, 0, Bundle.FileSearchData_Frequency_known_displayName()),
|
KNOWN(4, 0, Bundle.FileSearchData_Frequency_known_displayName()),
|
||||||
UNKNOWN(5, 0, Bundle.FileSearchData_Frequency_unknown_displayName());
|
UNKNOWN(5, 0, Bundle.FileSearchData_Frequency_unknown_displayName());
|
||||||
|
|
||||||
|
@ -404,15 +404,6 @@
|
|||||||
<Connection code="new DefaultListModel<ParentSearchTerm>()" type="code"/>
|
<Connection code="new DefaultListModel<ParentSearchTerm>()" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="enabled" type="boolean" value="false"/>
|
<Property name="enabled" type="boolean" value="false"/>
|
||||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="null"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="visibleRowCount" type="int" value="4"/>
|
<Property name="visibleRowCount" type="int" value="4"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Events>
|
<Events>
|
||||||
@ -457,12 +448,6 @@
|
|||||||
<Connection code="new DefaultListModel<String>()" type="code"/>
|
<Connection code="new DefaultListModel<String>()" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="enabled" type="boolean" value="false"/>
|
<Property name="enabled" type="boolean" value="false"/>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="visibleRowCount" type="int" value="3"/>
|
<Property name="visibleRowCount" type="int" value="3"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
@ -573,12 +558,6 @@
|
|||||||
<Connection code="new DefaultListModel<String>()" type="code"/>
|
<Connection code="new DefaultListModel<String>()" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="enabled" type="boolean" value="false"/>
|
<Property name="enabled" type="boolean" value="false"/>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="visibleRowCount" type="int" value="2"/>
|
<Property name="visibleRowCount" type="int" value="2"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
@ -631,12 +610,6 @@
|
|||||||
<Connection code="new DefaultListModel<String>()" type="code"/>
|
<Connection code="new DefaultListModel<String>()" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="enabled" type="boolean" value="false"/>
|
<Property name="enabled" type="boolean" value="false"/>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 30]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="visibleRowCount" type="int" value="2"/>
|
<Property name="visibleRowCount" type="int" value="2"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
|
@ -1328,9 +1328,6 @@ final class FileSearchPanel extends javax.swing.JPanel implements ActionListener
|
|||||||
|
|
||||||
parentList.setModel(new DefaultListModel<ParentSearchTerm>());
|
parentList.setModel(new DefaultListModel<ParentSearchTerm>());
|
||||||
parentList.setEnabled(false);
|
parentList.setEnabled(false);
|
||||||
parentList.setMaximumSize(null);
|
|
||||||
parentList.setMinimumSize(new java.awt.Dimension(0, 30));
|
|
||||||
parentList.setPreferredSize(new java.awt.Dimension(0, 30));
|
|
||||||
parentList.setVisibleRowCount(4);
|
parentList.setVisibleRowCount(4);
|
||||||
parentList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
|
parentList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
|
||||||
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
|
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
|
||||||
@ -1366,8 +1363,6 @@ final class FileSearchPanel extends javax.swing.JPanel implements ActionListener
|
|||||||
|
|
||||||
hashSetList.setModel(new DefaultListModel<String>());
|
hashSetList.setModel(new DefaultListModel<String>());
|
||||||
hashSetList.setEnabled(false);
|
hashSetList.setEnabled(false);
|
||||||
hashSetList.setMinimumSize(new java.awt.Dimension(0, 30));
|
|
||||||
hashSetList.setPreferredSize(new java.awt.Dimension(0, 30));
|
|
||||||
hashSetList.setVisibleRowCount(3);
|
hashSetList.setVisibleRowCount(3);
|
||||||
hashSetScrollPane.setViewportView(hashSetList);
|
hashSetScrollPane.setViewportView(hashSetList);
|
||||||
|
|
||||||
@ -1454,8 +1449,6 @@ final class FileSearchPanel extends javax.swing.JPanel implements ActionListener
|
|||||||
|
|
||||||
objectsList.setModel(new DefaultListModel<String>());
|
objectsList.setModel(new DefaultListModel<String>());
|
||||||
objectsList.setEnabled(false);
|
objectsList.setEnabled(false);
|
||||||
objectsList.setMinimumSize(new java.awt.Dimension(0, 30));
|
|
||||||
objectsList.setPreferredSize(new java.awt.Dimension(0, 30));
|
|
||||||
objectsList.setVisibleRowCount(2);
|
objectsList.setVisibleRowCount(2);
|
||||||
objectsScrollPane.setViewportView(objectsList);
|
objectsScrollPane.setViewportView(objectsList);
|
||||||
|
|
||||||
@ -1487,8 +1480,6 @@ final class FileSearchPanel extends javax.swing.JPanel implements ActionListener
|
|||||||
|
|
||||||
interestingItemsList.setModel(new DefaultListModel<String>());
|
interestingItemsList.setModel(new DefaultListModel<String>());
|
||||||
interestingItemsList.setEnabled(false);
|
interestingItemsList.setEnabled(false);
|
||||||
interestingItemsList.setMinimumSize(new java.awt.Dimension(0, 30));
|
|
||||||
interestingItemsList.setPreferredSize(new java.awt.Dimension(0, 30));
|
|
||||||
interestingItemsList.setVisibleRowCount(2);
|
interestingItemsList.setVisibleRowCount(2);
|
||||||
interestingItemsScrollPane.setViewportView(interestingItemsList);
|
interestingItemsScrollPane.setViewportView(interestingItemsList);
|
||||||
|
|
||||||
|
@ -290,11 +290,11 @@
|
|||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<EmptySpace min="0" pref="221" max="32767" attributes="0"/>
|
<EmptySpace min="0" pref="68" max="32767" attributes="0"/>
|
||||||
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
|
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" alignment="1" attributes="0">
|
<Group type="102" alignment="1" attributes="0">
|
||||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
||||||
<Component id="instancesScrollPane" pref="221" max="32767" attributes="0"/>
|
<Component id="instancesScrollPane" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
@ -331,9 +331,6 @@
|
|||||||
<Property name="cellRenderer" type="javax.swing.ListCellRenderer" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
<Property name="cellRenderer" type="javax.swing.ListCellRenderer" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||||
<Connection code="new InstancesCellRenderer()" type="code"/>
|
<Connection code="new InstancesCellRenderer()" type="code"/>
|
||||||
</Property>
|
</Property>
|
||||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
|
||||||
<Dimension value="[0, 50]"/>
|
|
||||||
</Property>
|
|
||||||
<Property name="visibleRowCount" type="int" value="2"/>
|
<Property name="visibleRowCount" type="int" value="2"/>
|
||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
|
@ -496,7 +496,6 @@ public class ResultsPanel extends javax.swing.JPanel {
|
|||||||
instancesList.setModel(instancesListModel);
|
instancesList.setModel(instancesListModel);
|
||||||
instancesList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
instancesList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
|
||||||
instancesList.setCellRenderer(new InstancesCellRenderer());
|
instancesList.setCellRenderer(new InstancesCellRenderer());
|
||||||
instancesList.setPreferredSize(new java.awt.Dimension(0, 50));
|
|
||||||
instancesList.setVisibleRowCount(2);
|
instancesList.setVisibleRowCount(2);
|
||||||
instancesScrollPane.setViewportView(instancesList);
|
instancesScrollPane.setViewportView(instancesList);
|
||||||
|
|
||||||
@ -510,11 +509,11 @@ public class ResultsPanel extends javax.swing.JPanel {
|
|||||||
);
|
);
|
||||||
instancesPanelLayout.setVerticalGroup(
|
instancesPanelLayout.setVerticalGroup(
|
||||||
instancesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
instancesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGap(0, 221, Short.MAX_VALUE)
|
.addGap(0, 68, Short.MAX_VALUE)
|
||||||
.addGroup(instancesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(instancesPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, instancesPanelLayout.createSequentialGroup()
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, instancesPanelLayout.createSequentialGroup()
|
||||||
.addGap(0, 0, 0)
|
.addGap(0, 0, 0)
|
||||||
.addComponent(instancesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 221, Short.MAX_VALUE)))
|
.addComponent(instancesScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
|
||||||
);
|
);
|
||||||
|
|
||||||
resultsSplitPane.setRightComponent(instancesPanel);
|
resultsSplitPane.setRightComponent(instancesPanel);
|
||||||
|
@ -16,7 +16,6 @@ EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnMsg=Possib
|
|||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnDetails=Compression ratio is {0}, skipping items in {1}.
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnDetails=Compression ratio is {0}, skipping items in {1}.
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnMsg.zipBomb=Possible ZIP bomb detected: {0}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnMsg.zipBomb=Possible ZIP bomb detected: {0}
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnDetails.zipBomb=The archive is {0} levels deep, skipping processing of {1}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnDetails.zipBomb=The archive is {0} levels deep, skipping processing of {1}
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.unknownPath.msg=Unknown item path in archive: {0}, will use: {1}
|
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.msg=Not enough disk space to unpack archive item: {0}, {1}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.msg=Not enough disk space to unpack archive item: {0}, {1}
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.details=The archive item is too large to unpack, skipping unpacking this item.
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.details=The archive item is too large to unpack, skipping unpacking this item.
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.errUnpacking.msg=Error unpacking {0}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.errUnpacking.msg=Error unpacking {0}
|
||||||
|
@ -28,7 +28,6 @@ EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnMsg=\u30a2
|
|||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnDetails=\u5727\u7e2e\u7387\u306f {0} \u3067\u3059\u3002{1} \u306e\u9805\u76ee\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059\u3002
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.isZipBombCheck.warnDetails=\u5727\u7e2e\u7387\u306f {0} \u3067\u3059\u3002{1} \u306e\u9805\u76ee\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059\u3002
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnMsg.zipBomb=ZIP\u7206\u5f3e\u304c\u691c\u51fa\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059: {0}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnMsg.zipBomb=ZIP\u7206\u5f3e\u304c\u691c\u51fa\u3055\u308c\u305f\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059: {0}
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnDetails.zipBomb=\u30a2\u30fc\u30ab\u30a4\u30d6\u306f {0} \u30ec\u30d9\u30eb\u306e\u6df1\u3055\u3067\u3059\u3002{1} \u306e\u51e6\u7406\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.warnDetails.zipBomb=\u30a2\u30fc\u30ab\u30a4\u30d6\u306f {0} \u30ec\u30d9\u30eb\u306e\u6df1\u3055\u3067\u3059\u3002{1} \u306e\u51e6\u7406\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.unknownPath.msg=\u30a2\u30fc\u30ab\u30a4\u30d6\u306e\u4e0d\u660e\u306a\u9805\u76ee\u30d1\u30b9: {0}\u3001\u6b21\u3092\u4f7f\u7528\u3057\u307e\u3059: {1}
|
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.msg=\u30a2\u30fc\u30ab\u30a4\u30d6\u9805\u76ee\u3092\u958b\u5c01\u3059\u308b\u305f\u3081\u306e\u5341\u5206\u306a\u30c7\u30a3\u30b9\u30af\u9818\u57df\u304c\u3042\u308a\u307e\u305b\u3093: {0}\u3001{1}
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.msg=\u30a2\u30fc\u30ab\u30a4\u30d6\u9805\u76ee\u3092\u958b\u5c01\u3059\u308b\u305f\u3081\u306e\u5341\u5206\u306a\u30c7\u30a3\u30b9\u30af\u9818\u57df\u304c\u3042\u308a\u307e\u305b\u3093: {0}\u3001{1}
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.details=\u30a2\u30fc\u30ab\u30a4\u30d6\u9805\u76ee\u304c\u5927\u304d\u3059\u304e\u3067\u958b\u5c01\u3067\u304d\u307e\u305b\u3093\u3002\u3053\u306e\u9805\u76ee\u306e\u958b\u5c01\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059\u3002
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.notEnoughDiskSpace.details=\u30a2\u30fc\u30ab\u30a4\u30d6\u9805\u76ee\u304c\u5927\u304d\u3059\u304e\u3067\u958b\u5c01\u3067\u304d\u307e\u305b\u3093\u3002\u3053\u306e\u9805\u76ee\u306e\u958b\u5c01\u3092\u30b9\u30ad\u30c3\u30d7\u3057\u307e\u3059\u3002
|
||||||
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.errUnpacking.msg={0} \u306e\u958b\u5c01\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
|
EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.errUnpacking.msg={0} \u306e\u958b\u5c01\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
|
||||||
|
@ -449,10 +449,6 @@ class SevenZipExtractor {
|
|||||||
} else {
|
} else {
|
||||||
pathInArchive = "/" + useName;
|
pathInArchive = "/" + useName;
|
||||||
}
|
}
|
||||||
String msg = NbBundle.getMessage(SevenZipExtractor.class,
|
|
||||||
"EmbeddedFileExtractorIngestModule.ArchiveExtractor.unpack.unknownPath.msg",
|
|
||||||
getArchiveFilePath(archiveFile), pathInArchive);
|
|
||||||
logger.log(Level.WARNING, msg);
|
|
||||||
}
|
}
|
||||||
return pathInArchive;
|
return pathInArchive;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -127,7 +127,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -2150,10 +2150,15 @@ public final class DrawableDB {
|
|||||||
public void deleteDataSource(long dataSourceID) throws SQLException, TskCoreException {
|
public void deleteDataSource(long dataSourceID) throws SQLException, TskCoreException {
|
||||||
dbWriteLock();
|
dbWriteLock();
|
||||||
DrawableTransaction trans = null;
|
DrawableTransaction trans = null;
|
||||||
|
String whereClause = "WHERE data_source_obj_id = " + dataSourceID;
|
||||||
|
String tableName = "image_gallery_groups";
|
||||||
try {
|
try {
|
||||||
trans = beginTransaction();
|
trans = beginTransaction();
|
||||||
deleteDataSourceStmt.setLong(1, dataSourceID);
|
deleteDataSourceStmt.setLong(1, dataSourceID);
|
||||||
deleteDataSourceStmt.executeUpdate();
|
deleteDataSourceStmt.executeUpdate();
|
||||||
|
if (caseDb.getCaseDbAccessManager().tableExists(tableName)) {
|
||||||
|
caseDb.getCaseDbAccessManager().delete(tableName, whereClause);
|
||||||
|
}
|
||||||
commitTransaction(trans, true);
|
commitTransaction(trans, true);
|
||||||
} catch (SQLException | TskCoreException ex) {
|
} catch (SQLException | TskCoreException ex) {
|
||||||
if (null != trans) {
|
if (null != trans) {
|
||||||
|
@ -119,7 +119,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
33
NEWS.txt
33
NEWS.txt
@ -1,3 +1,36 @@
|
|||||||
|
---------------- VERSION 4.14.0 --------------
|
||||||
|
Specialized UIs:
|
||||||
|
- New File Discovery UI that allows you to search and filter for certain types of files.
|
||||||
|
- New Map viewer that uses either Bing (when online) or offline map tiles.
|
||||||
|
- Communications UI shows country names for phone numbers and fixed bug in summary panel.
|
||||||
|
- Fixed bugs in timeline filtering.
|
||||||
|
- Refactored backend timeline filtering code based on The Sleuth Kit datamodel changes to remove JavaFX dependency.
|
||||||
|
|
||||||
|
Data Sources:
|
||||||
|
- Added limited support for APFS disk images. Does not include encrypted volumes or ones that span multiple disks. Uses contribution to The Sleuth Kit from Blackbag Technologies.
|
||||||
|
- New data source processor that parses “XRY File Exports”.
|
||||||
|
|
||||||
|
Content Viewers:
|
||||||
|
- Added a new “Context” viewer to show where a file came from. Currently shows what message a file was attached to or what URL a file was downloaded from.
|
||||||
|
- Added support to seek and change playback speed for videos in “Application” viewer.
|
||||||
|
- Improved support for Unicode HTML files in “Application” viewer.
|
||||||
|
- Added support for webp image files in “Application” viewer.
|
||||||
|
|
||||||
|
Ingest Modules:
|
||||||
|
- Keyword Search module uses Decodetect statistical encoding detection for plain text files. Fixes issues with incorrect detection of Japanese files.
|
||||||
|
- Embedded File Extractor module uses statistical analysis to determine encoding of file names in ZIP files. Fixes issues with ZIP files created on Windows Japanese computers.
|
||||||
|
- Solr (Keyword Search module) now uses Japanese-specific tokenization using Kuromoji.
|
||||||
|
- Fixed Shellbags module in RegRipper (used by Autopsy Recent Activity module) to fix parsing errors.
|
||||||
|
- Plaso module no longer generates an error if enabled for non-disk image data sources.
|
||||||
|
- Added support for message attachments that are stored as an external file system file. Expanded Email and Android modules to use this technique.
|
||||||
|
|
||||||
|
General:
|
||||||
|
- Fixed crashes by gstreamer when a video is selected.
|
||||||
|
- Added initial capability to delete a data source from a case (excludes data in the CR).
|
||||||
|
- Changed behavior of portable case menu item to automatically open the case and warn if it was already unpacked.
|
||||||
|
- Fixed bug that caused issues when case metadata had Unicode values.
|
||||||
|
- Added new Attachment APIs to the CommunicationsArtifactHelper class to support attachments stored as external file system files.
|
||||||
|
|
||||||
---------------- VERSION 4.13.0 --------------
|
---------------- VERSION 4.13.0 --------------
|
||||||
General:
|
General:
|
||||||
- Switch from Oracle JDK to OpenJDK.
|
- Switch from Oracle JDK to OpenJDK.
|
||||||
|
@ -60,7 +60,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -47,7 +47,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -38,7 +38,7 @@ PROJECT_NAME = "Autopsy User Documentation"
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 4.13.0
|
PROJECT_NUMBER = 4.14.0
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
@ -1025,7 +1025,7 @@ GENERATE_HTML = YES
|
|||||||
# The default directory is: html.
|
# The default directory is: html.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
HTML_OUTPUT = 4.13.0
|
HTML_OUTPUT = 4.14.0
|
||||||
|
|
||||||
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
|
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
|
||||||
# generated HTML page (for example: .htm, .php, .asp).
|
# generated HTML page (for example: .htm, .php, .asp).
|
||||||
|
@ -38,7 +38,7 @@ PROJECT_NAME = "Autopsy"
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 4.13.0
|
PROJECT_NUMBER = 4.14.0
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears a the top of each page and should give viewer a
|
# for a project that appears a the top of each page and should give viewer a
|
||||||
@ -1066,7 +1066,7 @@ GENERATE_HTML = YES
|
|||||||
# The default directory is: html.
|
# The default directory is: html.
|
||||||
# This tag requires that the tag GENERATE_HTML is set to YES.
|
# This tag requires that the tag GENERATE_HTML is set to YES.
|
||||||
|
|
||||||
HTML_OUTPUT = api-docs/4.13.0/
|
HTML_OUTPUT = api-docs/4.14.0/
|
||||||
|
|
||||||
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
|
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
|
||||||
# generated HTML page (for example: .htm, .php, .asp).
|
# generated HTML page (for example: .htm, .php, .asp).
|
||||||
|
@ -4,7 +4,7 @@ app.title=Autopsy
|
|||||||
### lowercase version of above
|
### lowercase version of above
|
||||||
app.name=${branding.token}
|
app.name=${branding.token}
|
||||||
### if left unset, version will default to today's date
|
### if left unset, version will default to today's date
|
||||||
app.version=4.13.0
|
app.version=4.14.0
|
||||||
### build.type must be one of: DEVELOPMENT, RELEASE
|
### build.type must be one of: DEVELOPMENT, RELEASE
|
||||||
#build.type=RELEASE
|
#build.type=RELEASE
|
||||||
build.type=DEVELOPMENT
|
build.type=DEVELOPMENT
|
||||||
|
22
thirdparty/rr-full/Parse/Win32Registry/Base.pm
vendored
22
thirdparty/rr-full/Parse/Win32Registry/Base.pm
vendored
@ -161,14 +161,26 @@ sub unpack_windows_time {
|
|||||||
# The equation can be found in several places on the Net.
|
# The equation can be found in several places on the Net.
|
||||||
# My thanks go to Dan Sully for Audio::WMA's _fileTimeToUnixTime
|
# My thanks go to Dan Sully for Audio::WMA's _fileTimeToUnixTime
|
||||||
# which shows a perl implementation of it.
|
# which shows a perl implementation of it.
|
||||||
my ($low, $high) = unpack("VV", $data);
|
my ($lo, $hi) = unpack("VV", $data);
|
||||||
my $filetime = $high * 2 ** 32 + $low;
|
# my $filetime = $high * 2 ** 32 + $low;
|
||||||
my $epoch_time = int(($filetime - 116444736000000000) / 10000000);
|
# my $epoch_time = int(($filetime - 116444736000000000) / 10000000);
|
||||||
|
|
||||||
|
my $epoch_time;
|
||||||
|
|
||||||
|
if ($lo == 0 && $hi == 0) {
|
||||||
|
$epoch_time = 0;
|
||||||
|
} else {
|
||||||
|
$lo -= 0xd53e8000;
|
||||||
|
$hi -= 0x019db1de;
|
||||||
|
$epoch_time = int($hi*429.4967296 + $lo/1e7);
|
||||||
|
};
|
||||||
|
$epoch_time = 0 if ($epoch_time < 0);
|
||||||
|
|
||||||
|
|
||||||
# adjust the UNIX epoch time to the local OS's epoch time
|
# adjust the UNIX epoch time to the local OS's epoch time
|
||||||
# (see perlport's Time and Date section)
|
# (see perlport's Time and Date section)
|
||||||
my $epoch_offset = timegm(0, 0, 0, 1, 0, 70);
|
# my $epoch_offset = timegm(0, 0, 0, 1, 0, 70);
|
||||||
$epoch_time += $epoch_offset;
|
# $epoch_time += $epoch_offset;
|
||||||
|
|
||||||
if ($epoch_time < 0 || $epoch_time > 0x7fffffff) {
|
if ($epoch_time < 0 || $epoch_time > 0x7fffffff) {
|
||||||
$epoch_time = undef;
|
$epoch_time = undef;
|
||||||
|
BIN
thirdparty/rr-full/rip.exe
vendored
BIN
thirdparty/rr-full/rip.exe
vendored
Binary file not shown.
BIN
thirdparty/rr-full/rr.exe
vendored
BIN
thirdparty/rr-full/rr.exe
vendored
Binary file not shown.
22
thirdparty/rr/Parse/Win32Registry/Base.pm
vendored
22
thirdparty/rr/Parse/Win32Registry/Base.pm
vendored
@ -161,14 +161,26 @@ sub unpack_windows_time {
|
|||||||
# The equation can be found in several places on the Net.
|
# The equation can be found in several places on the Net.
|
||||||
# My thanks go to Dan Sully for Audio::WMA's _fileTimeToUnixTime
|
# My thanks go to Dan Sully for Audio::WMA's _fileTimeToUnixTime
|
||||||
# which shows a perl implementation of it.
|
# which shows a perl implementation of it.
|
||||||
my ($low, $high) = unpack("VV", $data);
|
my ($lo, $hi) = unpack("VV", $data);
|
||||||
my $filetime = $high * 2 ** 32 + $low;
|
# my $filetime = $high * 2 ** 32 + $low;
|
||||||
my $epoch_time = int(($filetime - 116444736000000000) / 10000000);
|
# my $epoch_time = int(($filetime - 116444736000000000) / 10000000);
|
||||||
|
|
||||||
|
my $epoch_time;
|
||||||
|
|
||||||
|
if ($lo == 0 && $hi == 0) {
|
||||||
|
$epoch_time = 0;
|
||||||
|
} else {
|
||||||
|
$lo -= 0xd53e8000;
|
||||||
|
$hi -= 0x019db1de;
|
||||||
|
$epoch_time = int($hi*429.4967296 + $lo/1e7);
|
||||||
|
};
|
||||||
|
$epoch_time = 0 if ($epoch_time < 0);
|
||||||
|
|
||||||
|
|
||||||
# adjust the UNIX epoch time to the local OS's epoch time
|
# adjust the UNIX epoch time to the local OS's epoch time
|
||||||
# (see perlport's Time and Date section)
|
# (see perlport's Time and Date section)
|
||||||
my $epoch_offset = timegm(0, 0, 0, 1, 0, 70);
|
# my $epoch_offset = timegm(0, 0, 0, 1, 0, 70);
|
||||||
$epoch_time += $epoch_offset;
|
# $epoch_time += $epoch_offset;
|
||||||
|
|
||||||
if ($epoch_time < 0 || $epoch_time > 0x7fffffff) {
|
if ($epoch_time < 0 || $epoch_time > 0x7fffffff) {
|
||||||
$epoch_time = undef;
|
$epoch_time = undef;
|
||||||
|
BIN
thirdparty/rr/rip.exe
vendored
BIN
thirdparty/rr/rip.exe
vendored
Binary file not shown.
BIN
thirdparty/rr/rr.exe
vendored
BIN
thirdparty/rr/rr.exe
vendored
Binary file not shown.
@ -36,7 +36,7 @@
|
|||||||
<compile-dependency/>
|
<compile-dependency/>
|
||||||
<run-dependency>
|
<run-dependency>
|
||||||
<release-version>10</release-version>
|
<release-version>10</release-version>
|
||||||
<specification-version>10.17</specification-version>
|
<specification-version>10.18</specification-version>
|
||||||
</run-dependency>
|
</run-dependency>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user