Untitled

 avatar
unknown
plain_text
a month ago
1.5 kB
3
Indexable
#!/system/bin/sh

# Package name and interval in seconds between runs
PACKAGE_NAME="$1"
INTERVAL=5  # Adjust this as needed

if [ -z "$PACKAGE_NAME" ]; then
    echo "Usage: $0 <package_name>"
    exit 1
fi

# Function to get the PID of the package
get_pid() {
    pid=$(pidof "$PACKAGE_NAME")
    echo "$pid"
}

# Output file paths
MEMINFO_FILE="/data/local/tmp/${PACKAGE_NAME}_meminfo.txt"
SMAP_FILE="/data/local/tmp/${PACKAGE_NAME}_smap.txt"
DMABUF_FILE="/data/local/tmp/${PACKAGE_NAME}_dmabuf.txt"

# Create or clear files
> "$MEMINFO_FILE"
> "$SMAP_FILE"
> "$DMABUF_FILE"

echo "Monitoring package: $PACKAGE_NAME"
echo "Output files:"
echo "  Meminfo: $MEMINFO_FILE"
echo "  Smaps: $SMAP_FILE"
echo "  Dmabuf dump: $DMABUF_FILE"

# Continuous monitoring loop
while true; do
    PID=$(get_pid)

    if [ -z "$PID" ]; then
        echo "$(date): Process $PACKAGE_NAME not running" | tee -a "$MEMINFO_FILE" "$SMAP_FILE" "$DMABUF_FILE"
    else
        echo "$(date): Process ID for $PACKAGE_NAME is $PID"
        echo "$(date): Running dumpsys meminfo..." | tee -a "$MEMINFO_FILE"
        dumpsys meminfo "$PACKAGE_NAME" >> "$MEMINFO_FILE" 2>&1

        echo "$(date): Running smaps..." | tee -a "$SMAP_FILE"
        cat "/proc/$PID/smaps" >> "$SMAP_FILE" 2>&1

        echo "$(date): Running dmabuf_dump..." | tee -a "$DMABUF_FILE"
        dmabuf_dump "$PID" >> "$DMABUF_FILE" 2>&1
    fi

    echo "Waiting for $INTERVAL seconds..."
    sleep "$INTERVAL"
done
Leave a Comment