Гочи не всегда перехватывает полные хендшейки и не всегда записывает валидные .pcap файлы — их невозможно преобразовать в .hc22000 из-за отсутствия некоторых данных (сами хендшейки в .pcap тоже отсутствовать могут).

Плагин aircrackonly удаляет невалидные .pcap файлы, но не все.
А т.к. мне нужны только настоящие хендшейки — придется писать свой скрипт (сюда у вас нет доступа) (учтите, сам скрипт старый, harcoded n shi, но логика понятна):

update_handshakes.sh
#!/usr/bin/env bash
# update_handshakes.sh:
#   deletes invalid pcaps, add that APs to whitelist, sync w pwnagotchi
 
#-------------------------------[Error handling]-------------------------------
function Error_Handler {
    local exit_code="$?"
    echo "Error: exit code: $exit_code" >&2
    exit "$exit_code"
}
set -eEuo pipefail
trap Error_Handler ABRT HUP INT QUIT TERM ERR
 
#-------------------------[Global variables/constants]-------------------------
# Dependencies. Packages
HCXPCAPNGTOOL_PKG_NAME='hcxpcapngtool'
TSHARK_PKG_NAME='tshark'
# Directories
PWNAGOTCHI_DIR="${HOME}/side-projects/pwnagotchi"
PCAP_FILES_DIR="${PWNAGOTCHI_DIR}/backups/root/handshakes"
HC22000_FILES_DIR="${PCAP_FILES_DIR}/hc22000"
# Files
PWNAGOTCHI_CONFIG_FILE="${PWNAGOTCHI_DIR}/backups/etc/pwnagotchi/config.toml"
PWNAGOTCHI_CONFIG_TEMPLATE_FILE="${PWNAGOTCHI_DIR}/etc/config-template.toml"
# Other
PWNAGOTCHI_SSH_HOSTNAME='root@10.0.0.2'
PCAP_QUANTITY_BEFORE="$(
    find "$PCAP_FILES_DIR" -maxdepth 1 -type f -name '*.pcap' | wc --lines
)"
 
#---------------------------------[Main code]----------------------------------
# If $HCXTOOLS_PKG_NAME not installed -> installs it
for package in "$HCXPCAPNGTOOL_PKG_NAME" "$TSHARK_PKG_NAME"; do
    type "$package" &> /dev/null || { echo "$package' is not installed"; exit 1; }
done
 
# If $HC22000_FILES_DIR dir not exist -> creates it
[[ -d "$HC22000_FILES_DIR" ]] || mkdir --parents "$HC22000_FILES_DIR"
 
# backup.sh
"${PWNAGOTCHI_DIR}/admin_scripts/backup.sh"
 
# Remove invalid pcaps
for pcap_file in "$PCAP_FILES_DIR"/*.pcap; do
    # Finding out the file name (w/o extension)
    filename="$(basename -s '.pcap' "$pcap_file")"
    # Output .hc22000 file
    output_file="${HC22000_FILES_DIR}/${filename}.hc22000"
 
    if [[ ! -f "$output_file" ]]; then
        hcxpcapngtool "$pcap_file" -o "$output_file" &> /dev/null
        [[ ! -f "$output_file" ]] && rm "$pcap_file"
        echo "$pcap_file was invalid -> will be DELETED"
    fi
done
 
find "$HC22000_FILES_DIR" -type f -name '*.pcap.hc22000' -delete
 
#----------------------------[Creating config.toml]----------------------------
cp "$PWNAGOTCHI_CONFIG_TEMPLATE_FILE" "$PWNAGOTCHI_CONFIG_FILE"
{
echo 'main.whiletist = ['
 
for pcap_file in "$PCAP_FILES_DIR"/*.pcap; do
    mac_address="$(
        tshark \
          -r "$pcap_file" \
          -e wlan.sa -Y "wlan.fc.type_subtype == 0x0008" -Tfields \
            | sort \
            | uniq \
            | head --lines=1
    )"
    [[ -n "$mac_address" ]] && echo "\"$mac_address\","
done
 
echo ']'
} >> "$PWNAGOTCHI_CONFIG_FILE"
 
#----------------------[Sync handshakes & config (rsync)]----------------------
echo 'Syncing with shmunk...'
rsync \
  --recursive --delete \
  "$PCAP_FILES_DIR"/ \
  "${PWNAGOTCHI_SSH_HOSTNAME}:/root/handshakes/"
rsync \
  "$PWNAGOTCHI_CONFIG_FILE" \
  "${PWNAGOTCHI_SSH_HOSTNAME}:/etc/pwnagotchi/config.toml"
 
#--------------------------------[Final output]--------------------------------
PCAP_QUANTITY_AFTER="$(
    find "$PCAP_FILES_DIR" -maxdepth 1 -type f -name '*.pcap' | wc --lines
)"
(( PCAP_QUANTITY_DIFF = PCAP_QUANTITY_AFTER - PCAP_QUANTITY_BEFORE ))
 
if (( PCAP_QUANTITY_DIFF > 0 )); then
    echo "+$PCAP_QUANTITY_DIFF pcaps 😎😎"
elif (( PCAP_QUANTITY_DIFF < 0 )); then
    echo "$PCAP_QUANTITY_DIFF pcaps 😐😐"
else
    echo "No quantity changes 🥱🥱"
fi