Skip to content

add_macos_jna.sh #7937

Open
Open
@NEW-BOOTY

Description

@NEW-BOOTY

#!/bin/bash

Copyright © 2025 Devin B. Royal.

All Rights Reserved.

This script adds the macOS-specific JNA (Java Native Access) library path to the Autopsy configuration.

set -e # Exit immediately if a command exits with a non-zero status.
set -u # Treat unset variables as errors.
set -o pipefail # Catch errors in pipelines.

LOG_FILE="add_macos_jna.log"

Logging function

log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}

Validate script execution

log_message "Starting add_macos_jna.sh script."

Define the JNA library path for macOS

JNA_LIB_PATH="/usr/local/lib/jna"

Check if JNA library path exists

if [ ! -d "$JNA_LIB_PATH" ]; then
log_message "JNA library path not found: $JNA_LIB_PATH"
log_message "Please install JNA for macOS using Homebrew: brew install jna"
exit 1
fi

Locate Autopsy's configuration file

AUTOPSY_CONF_DIR="${HOME}/autopsy-4.21.0"
AUTOPSY_CONF_FILE="${AUTOPSY_CONF_DIR}/etc/autopsy.conf"

if [ ! -f "$AUTOPSY_CONF_FILE" ]; then
log_message "Autopsy configuration file not found: $AUTOPSY_CONF_FILE"
log_message "Ensure that Autopsy is correctly installed and configured."
exit 1
fi

Backup the existing configuration file

BACKUP_CONF_FILE="${AUTOPSY_CONF_FILE}.bak.$(date '+%Y%m%d%H%M%S')"
cp "$AUTOPSY_CONF_FILE" "$BACKUP_CONF_FILE"
log_message "Backup created for the configuration file: $BACKUP_CONF_FILE"

Add the JNA library path to the configuration file

if grep -q "jna.library.path" "$AUTOPSY_CONF_FILE"; then
sed -i '' "s|jna.library.path=.*|jna.library.path=${JNA_LIB_PATH}|" "$AUTOPSY_CONF_FILE"
log_message "Updated JNA library path in the configuration file."
else
echo "jna.library.path=${JNA_LIB_PATH}" >> "$AUTOPSY_CONF_FILE"
log_message "Added JNA library path to the configuration file."
fi

log_message "JNA library path successfully configured for Autopsy."
log_message "Script execution completed successfully."
exit 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions