Merge remote-tracking branch 'upstream/release-4.4.0' into develop

This commit is contained in:
Richard Cordovano 2017-05-22 17:58:17 -04:00
commit face5c1b33
16 changed files with 101 additions and 193 deletions

View File

@ -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: 18 OpenIDE-Module-Implementation-Version: 19
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

View File

@ -140,11 +140,28 @@ public class Case {
private volatile ExecutorService caseLockingExecutor; private volatile ExecutorService caseLockingExecutor;
private CoordinationService.Lock caseDirLock; private CoordinationService.Lock caseDirLock;
private SleuthkitCase caseDb; private SleuthkitCase caseDb;
private SleuthkitErrorReporter sleuthkitErrorReporter;
private CollaborationMonitor collaborationMonitor; private CollaborationMonitor collaborationMonitor;
private Services caseServices; private Services caseServices;
private boolean hasDataSources; private boolean hasDataSources;
/*
* Get a reference to the main window of the desktop application to use to
* parent pop up dialogs and initialize the application name for use in
* changing the main window title.
*
* TODO (JIRA-2231): Make the application name a RuntimeProperties item set
* by Installers.
*/
static {
WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
@Override
public void run() {
mainFrame = WindowManager.getDefault().getMainWindow();
appName = mainFrame.getTitle();
}
});
}
/** /**
* An enumeration of case types. * An enumeration of case types.
*/ */
@ -634,28 +651,6 @@ public class Case {
"Case.exceptionMessage.cannotLocateMainWindow=Cannot locate main application window" "Case.exceptionMessage.cannotLocateMainWindow=Cannot locate main application window"
}) })
private static void openAsCurrentCase(Case newCurrentCase, boolean isNewCase) throws CaseActionException, CaseActionCancelledException { private static void openAsCurrentCase(Case newCurrentCase, boolean isNewCase) throws CaseActionException, CaseActionCancelledException {
if (RuntimeProperties.runningWithGUI() && null == mainFrame) {
/*
* Get a reference to the main window of the desktop application to
* use to parent pop up dialogs and initialize the application name
* for use in changing the main window title. This is tricky and
* fragile. The application name aspect can be resolved thus:
*
* TODO (JIRA-2231): Make the application name a RuntimeProperties
* item set by Installers.
*
* And the getting of the main frame should be resolved when the
* code is refactored to separate the presentation layer fomr the
* business layer.
*
* TODO (JIRA-multiple): Make it possible to run "headless."
*/
assert (!SwingUtilities.isEventDispatchThread());
SwingUtilities.invokeLater(() -> {
mainFrame = WindowManager.getDefault().getMainWindow();
appName = mainFrame.getTitle();
});
}
synchronized (caseActionSerializationLock) { synchronized (caseActionSerializationLock) {
if (null != currentCase) { if (null != currentCase) {
try { try {
@ -1815,7 +1810,6 @@ public class Case {
*/ */
@Messages({ @Messages({
"Case.progressMessage.switchingLogDirectory=Switching log directory...", "Case.progressMessage.switchingLogDirectory=Switching log directory...",
"Case.progressMessage.settingUpTskErrorReporting=Setting up SleuthKit error reporting...",
"Case.progressMessage.clearingTempDirectory=Clearing case temp directory...", "Case.progressMessage.clearingTempDirectory=Clearing case temp directory...",
"Case.progressMessage.openingCaseLevelServices=Opening case-level services...", "Case.progressMessage.openingCaseLevelServices=Opening case-level services...",
"Case.progressMessage.openingApplicationServiceResources=Opening application service case resources...", "Case.progressMessage.openingApplicationServiceResources=Opening application service case resources...",
@ -1831,18 +1825,6 @@ public class Case {
throw new CaseActionCancelledException(Bundle.Case_exceptionMessage_cancelledByUser()); throw new CaseActionCancelledException(Bundle.Case_exceptionMessage_cancelledByUser());
} }
/*
* Hook up a SleuthKit layer error reporter.
*/
progressIndicator.progress(Bundle.Case_progressMessage_settingUpTskErrorReporting());
sleuthkitErrorReporter
= new SleuthkitErrorReporter(MIN_SECS_BETWEEN_TSK_ERROR_REPORTS, NbBundle.getMessage(Case.class,
"IntervalErrorReport.ErrorText"));
caseDb.addErrorObserver(this.sleuthkitErrorReporter);
if (Thread.currentThread().isInterrupted()) {
throw new CaseActionCancelledException(Bundle.Case_exceptionMessage_cancelledByUser());
}
/* /*
* Clear the temp subdirectory of the case directory. * Clear the temp subdirectory of the case directory.
*/ */
@ -2077,8 +2059,8 @@ public class Case {
"Case.progressMessage.shuttingDownNetworkCommunications=Shutting down network communications...", "Case.progressMessage.shuttingDownNetworkCommunications=Shutting down network communications...",
"Case.progressMessage.closingApplicationServiceResources=Closing case-specific application service resources...", "Case.progressMessage.closingApplicationServiceResources=Closing case-specific application service resources...",
"Case.progressMessage.closingCaseLevelServices=Closing case-level services...", "Case.progressMessage.closingCaseLevelServices=Closing case-level services...",
"Case.progressMessage.closingCaseDatabase=Closing case database...", "Case.progressMessage.closingCaseDatabase=Closing case database..."
"Case.progressMessage.shuttingDownTskErrorReporting=Shutting down SleuthKit error reporting..."}) })
private void close(ProgressIndicator progressIndicator) { private void close(ProgressIndicator progressIndicator) {
IngestManager.getInstance().cancelAllIngestJobs(IngestJob.CancellationReason.CASE_CLOSED); IngestManager.getInstance().cancelAllIngestJobs(IngestJob.CancellationReason.CASE_CLOSED);
@ -2119,10 +2101,6 @@ public class Case {
if (null != caseDb) { if (null != caseDb) {
progressIndicator.progress(Bundle.Case_progressMessage_closingCaseDatabase()); progressIndicator.progress(Bundle.Case_progressMessage_closingCaseDatabase());
caseDb.close(); caseDb.close();
if (null != sleuthkitErrorReporter) {
progressIndicator.progress(Bundle.Case_progressMessage_shuttingDownTskErrorReporting());
caseDb.removeErrorObserver(sleuthkitErrorReporter);
}
} }
/* /*
@ -2391,6 +2369,17 @@ public class Case {
} }
/**
* Gets the application name.
*
* @return The application name.
* @deprecated
*/
@Deprecated
public static String getAppName() {
return appName;
}
/** /**
* Creates a new, single-user Autopsy case. * Creates a new, single-user Autopsy case.
* *
@ -2632,16 +2621,4 @@ public class Case {
deleteReports(reports); deleteReports(reports);
} }
/**
* Sets the name of the keyword search index for the case.
*
* @param textIndexName The text index name.
*
* @throws CaseMetadataException
* @deprecated Do not use.
*/
@Deprecated
public void setTextIndexName(String textIndexName) throws CaseMetadataException {
}
} }

View File

@ -1,85 +0,0 @@
/*
* Autopsy Forensic Browser
*
* Copyright 2011-2017 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> org
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.sleuthkit.autopsy.casemodule;
import java.util.logging.Level;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
import org.sleuthkit.datamodel.SleuthkitCase;
/**
* Acts as a bridge between the Sleuthkit Java bindings classes and Autopsy by
* implementing the SleuthkitCase$ErrorObserver interface. All errors are
* written to the Autopsy logs. If a GUI is running, errors are also batched up
* and reported periodically to the user via the notification area in the lower
* right hand corner of the main application window.
*/
class SleuthkitErrorReporter implements SleuthkitCase.ErrorObserver {
private static final Logger LOGGER = Logger.getLogger(SleuthkitErrorReporter.class.getName());
private final int milliSecondsBetweenReports;
private final String message;
private long newProblems;
private long totalProblems;
private long lastReportedDate;
/**
* Create a new IntervalErrorReprotData instance and subscribe for TSK error
* notifications for the current case.
*
* @param secondsBetweenReports Minimum number of seconds between reports.
* It will not warn more frequently than this.
* @param message The message that will be shown when warning
* the user.
*/
SleuthkitErrorReporter(int secondsBetweenReports, String message) {
this.newProblems = 0;
this.totalProblems = 0;
this.lastReportedDate = 0; // arm the first warning by choosing zero
this.milliSecondsBetweenReports = secondsBetweenReports * 1000; // convert to milliseconds
this.message = message;
}
/**
* Call this to add problems to the class. When the time threshold is met
* (or if this is the first problem encountered), a warning will be shown to
* the user.
*
* @param context The context in which the error occurred.
* @param errorMessage A description of the error that occurred.
*/
@Override
public void receiveError(String context, String errorMessage) {
LOGGER.log(Level.SEVERE, String.format("%s error in the SleuthKit layer: %s", context, errorMessage));
this.newProblems += 1;
this.totalProblems += newProblems;
long currentTimeStamp = System.currentTimeMillis();
if ((currentTimeStamp - lastReportedDate) > milliSecondsBetweenReports) {
this.lastReportedDate = currentTimeStamp;
MessageNotifyUtil.Notify.error(message, context + ", " + errorMessage + " "
+ this.newProblems + " "
+ NbBundle.getMessage(SleuthkitErrorReporter.class, "IntervalErrorReport.NewIssues")
+ " " + this.totalProblems + " "
+ NbBundle.getMessage(SleuthkitErrorReporter.class, "IntervalErrorReport.TotalIssues")
+ ".");
this.newProblems = 0;
}
}
}

View File

@ -64,7 +64,6 @@ public final class UserPreferences {
private static final String MESSAGE_SERVICE_PORT = "MessageServicePort"; //NON-NLS private static final String MESSAGE_SERVICE_PORT = "MessageServicePort"; //NON-NLS
public static final String PROCESS_TIME_OUT_ENABLED = "ProcessTimeOutEnabled"; //NON-NLS public static final String PROCESS_TIME_OUT_ENABLED = "ProcessTimeOutEnabled"; //NON-NLS
public static final String PROCESS_TIME_OUT_HOURS = "ProcessTimeOutHours"; //NON-NLS public static final String PROCESS_TIME_OUT_HOURS = "ProcessTimeOutHours"; //NON-NLS
public static final String AGENCY_LOGO_IMAGE_PATH = "AgencyLogoImagePath"; //NON-NLS
private static final int DEFAULT_PROCESS_TIMEOUT_HR = 60; private static final int DEFAULT_PROCESS_TIMEOUT_HR = 60;
private static final String DEFAULT_PORT_STRING = "61616"; private static final String DEFAULT_PORT_STRING = "61616";
private static final int DEFAULT_PORT_INT = 61616; private static final int DEFAULT_PORT_INT = 61616;

View File

@ -27,7 +27,7 @@ Format_OperatingSystem_Value={0} version {1} running on {2}
LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy&trade; is a digital forensics platform based on The Sleuth Kit&trade; and other tools. <br><ul><li>General Information: <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>.</li><li>Training: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/autopsy-training">http://www.basistech.com/autopsy-training</a></li><li>Commercial Support: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/digital-forensics/autopsy/support/">http://www.basistech.com/digital-forensics/autopsy/support/</a></li></ul>Copyright &copy; 2003-2017. </div> LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy&trade; is a digital forensics platform based on The Sleuth Kit&trade; and other tools. <br><ul><li>General Information: <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>.</li><li>Training: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/autopsy-training">http://www.basistech.com/autopsy-training</a></li><li>Commercial Support: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/digital-forensics/autopsy/support/">http://www.basistech.com/digital-forensics/autopsy/support/</a></li></ul>Copyright &copy; 2003-2017. </div>
URL_ON_IMG=http://www.sleuthkit.org/ URL_ON_IMG=http://www.sleuthkit.org/
URL_ON_HELP=http://sleuthkit.org/autopsy/docs/user-docs/4.3/ URL_ON_HELP=http://sleuthkit.org/autopsy/docs/user-docs/4.4/
FILE_FOR_LOCAL_HELP=file:/// FILE_FOR_LOCAL_HELP=file:///
INDEX_FOR_LOCAL_HELP=/docs/index.html INDEX_FOR_LOCAL_HELP=/docs/index.html

View File

@ -241,9 +241,8 @@ public class ImageUtils {
* *
* @param file the AbstractFile to test * @param file the AbstractFile to test
* @param mimeTypePrefix a MIME 'top-level type name' such as "image/", * @param mimeTypePrefix a MIME 'top-level type name' such as "image/",
* including the "/". In addition to the list of * including the "/". In addition to the list of supported MIME types, any
* supported MIME types, any type that starts with * type that starts with this prefix will be regarded as supported
* this prefix will be regarded as supported
* @param supportedMimeTypes a collection of mimetypes that are supported * @param supportedMimeTypes a collection of mimetypes that are supported
* @param supportedExtension a collection of extensions that are supported * @param supportedExtension a collection of extensions that are supported
* *
@ -368,8 +367,8 @@ public class ImageUtils {
* @param fileID the fileID to get the cached thumbnail location for * @param fileID the fileID to get the cached thumbnail location for
* *
* @return A File object representing the location of the cached thumbnail. * @return A File object representing the location of the cached thumbnail.
* This file may not actually exist(yet). Returns null if there was * This file may not actually exist(yet). Returns null if there was any
* any problem getting the file, such as no case was open. * problem getting the file, such as no case was open.
*/ */
private static File getCachedThumbnailLocation(long fileID) { private static File getCachedThumbnailLocation(long fileID) {
return cacheFileMap.computeIfAbsent(fileID, id -> { return cacheFileMap.computeIfAbsent(fileID, id -> {
@ -537,8 +536,8 @@ public class ImageUtils {
/** /**
* Functional interface for methods that extract a property out of an * Functional interface for methods that extract a property out of an
* ImageReader. Initially created to abstract over * ImageReader. Initially created to abstract over
* {@link #getImageHeight(org.sleuthkit.datamodel.AbstractFile)} and * getImageHeight(org.sleuthkit.datamodel.AbstractFile) and
* {@link #getImageWidth(org.sleuthkit.datamodel.AbstractFile)} * getImageWidth(org.sleuthkit.datamodel.AbstractFile)
* *
* @param <T> The type of the property. * @param <T> The type of the property.
*/ */
@ -554,9 +553,8 @@ public class ImageUtils {
* file. * file.
* *
* @param file the file to extract the data from * @param file the file to extract the data from
* @param errorTemplate a message template used to log errors. Should * @param errorTemplate a message template used to log errors. Should take
* take one parameter: the file's unique path or * one parameter: the file's unique path or name.
* name.
* @param propertyExtractor an implementation of {@link PropertyExtractor} * @param propertyExtractor an implementation of {@link PropertyExtractor}
* used to retrieve the specific property. * used to retrieve the specific property.
* *
@ -980,8 +978,8 @@ public class ImageUtils {
* @return a thumbnail for the given image or a default one if there was a * @return a thumbnail for the given image or a default one if there was a
* problem making a thumbnail. * problem making a thumbnail.
* *
* @deprecated use {@link #getThumbnail(org.sleuthkit.datamodel.Content, int) * @deprecated use getThumbnail(org.sleuthkit.datamodel.Content, int)
* } instead. * instead.
*/ */
@Nonnull @Nonnull
@Deprecated @Deprecated
@ -999,8 +997,8 @@ public class ImageUtils {
* @return File object for cached image. Is guaranteed to exist, as long as * @return File object for cached image. Is guaranteed to exist, as long as
* there was not an error generating or saving the thumbnail. * there was not an error generating or saving the thumbnail.
* *
* @deprecated use {@link #getCachedThumbnailFile(org.sleuthkit.datamodel.Content, int) * @deprecated use getCachedThumbnailFile(org.sleuthkit.datamodel.Content,
* } instead. * int) instead.
* *
*/ */
@Nullable @Nullable

View File

@ -1,6 +1,7 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
AutoUpdate-Show-In-Client: true AutoUpdate-Show-In-Client: true
OpenIDE-Module: org.sleuthkit.autopsy.experimental OpenIDE-Module: org.sleuthkit.autopsy.experimental/10
OpenIDE-Module-Implementation-Version: 2
OpenIDE-Module-Layer: org/sleuthkit/autopsy/experimental/autoingest/layer.xml OpenIDE-Module-Layer: org/sleuthkit/autopsy/experimental/autoingest/layer.xml
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties
OpenIDE-Module-Specification-Version: 1.0 OpenIDE-Module-Specification-Version: 1.0

View File

@ -1,5 +1,5 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
OpenIDE-Module: org.sleuthkit.autopsy.imagegallery/2 OpenIDE-Module: org.sleuthkit.autopsy.imagegallery/2
OpenIDE-Module-Implementation-Version: 2 OpenIDE-Module-Implementation-Version: 3
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/imagegallery/Bundle.properties OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/imagegallery/Bundle.properties

View File

@ -44,7 +44,7 @@ public final class OpenHelpAction implements ActionListener {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
try { try {
Desktop.getDesktop().browse(URI.create("http://sleuthkit.org/autopsy/docs/user-docs/4.3/image_gallery_page.html")); //NON-NLS Desktop.getDesktop().browse(URI.create("http://sleuthkit.org/autopsy/docs/user-docs/4.4/image_gallery_page.html")); //NON-NLS
} catch (IOException ex) { } catch (IOException ex) {
Logger.getLogger(OpenHelpAction.class.getName()).log(Level.SEVERE, "failed to open help page", ex); //NON-NLS Logger.getLogger(OpenHelpAction.class.getName()).log(Level.SEVERE, "failed to open help page", ex); //NON-NLS
} }

View File

@ -1,7 +1,7 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
AutoUpdate-Show-In-Client: true AutoUpdate-Show-In-Client: true
OpenIDE-Module: org.sleuthkit.autopsy.keywordsearch/6 OpenIDE-Module: org.sleuthkit.autopsy.keywordsearch/6
OpenIDE-Module-Implementation-Version: 16 OpenIDE-Module-Implementation-Version: 17
OpenIDE-Module-Install: org/sleuthkit/autopsy/keywordsearch/Installer.class OpenIDE-Module-Install: org/sleuthkit/autopsy/keywordsearch/Installer.class
OpenIDE-Module-Layer: org/sleuthkit/autopsy/keywordsearch/layer.xml OpenIDE-Module-Layer: org/sleuthkit/autopsy/keywordsearch/layer.xml
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/keywordsearch/Bundle.properties OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/keywordsearch/Bundle.properties

View File

@ -63,6 +63,24 @@
<specification-version>10.7</specification-version> <specification-version>10.7</specification-version>
</run-dependency> </run-dependency>
</dependency> </dependency>
<dependency>
<code-name-base>org.sleuthkit.autopsy.corelibs</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<release-version>3</release-version>
<specification-version>1.1</specification-version>
</run-dependency>
</dependency>
<dependency>
<code-name-base>org.sleuthkit.autopsy.keywordsearch</code-name-base>
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<release-version>6</release-version>
<specification-version>6.3</specification-version>
</run-dependency>
</dependency>
</module-dependencies> </module-dependencies>
<public-packages> <public-packages>
<package>org.sleuthkit.autopsy.recentactivity</package> <package>org.sleuthkit.autopsy.recentactivity</package>

View File

@ -1,6 +1,6 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
AutoUpdate-Show-In-Client: false AutoUpdate-Show-In-Client: false
OpenIDE-Module: org.sleuthkit.autopsy.testing/3 OpenIDE-Module: org.sleuthkit.autopsy.testing/3
OpenIDE-Module-Implementation-Version: 9 OpenIDE-Module-Implementation-Version: 10
OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/testing/Bundle.properties OpenIDE-Module-Localizing-Bundle: org/sleuthkit/autopsy/testing/Bundle.properties

View File

@ -1,5 +1,5 @@
#Updated by build script #Updated by build script
#Tue, 21 Mar 2017 17:07:16 -0400 #Mon, 22 May 2017 15:46:42 -0400
LBL_splash_window_title=Starting Autopsy LBL_splash_window_title=Starting Autopsy
SPLASH_HEIGHT=314 SPLASH_HEIGHT=314
SPLASH_WIDTH=538 SPLASH_WIDTH=538
@ -8,4 +8,4 @@ SplashRunningTextBounds=0,289,538,18
SplashRunningTextColor=0x0 SplashRunningTextColor=0x0
SplashRunningTextFontSize=19 SplashRunningTextFontSize=19
currentVersion=Autopsy 4.3.0 currentVersion=Autopsy 4.4.0

View File

@ -1,4 +1,4 @@
#Updated by build script #Updated by build script
#Tue, 21 Mar 2017 17:07:16 -0400 #Mon, 22 May 2017 15:46:42 -0400
CTL_MainWindow_Title=Autopsy 4.3.0 CTL_MainWindow_Title=Autopsy 4.4.0
CTL_MainWindow_Title_No_Project=Autopsy 4.3.0 CTL_MainWindow_Title_No_Project=Autopsy 4.4.0

View File

@ -7,7 +7,7 @@ app.name=${branding.token}
app.version=4.4.0 app.version=4.4.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=RELEASE
project.org.sleuthkit.autopsy.experimental=Experimental project.org.sleuthkit.autopsy.experimental=Experimental
project.org.sleuthkit.autopsy.imagegallery=ImageGallery project.org.sleuthkit.autopsy.imagegallery=ImageGallery

View File

@ -5,7 +5,7 @@ your needs.
See the developer guide for more details and how to use and load See the developer guide for more details and how to use and load
the modules. the modules.
http://sleuthkit.org/autopsy/docs/api-docs/4.3/index.html http://sleuthkit.org/autopsy/docs/api-docs/4.4/index.html
Each module in this folder should have a brief description about what they Each module in this folder should have a brief description about what they
can do. can do.