Fix WiFi sanitization for NetworkManager (RPi OS Bookworm+)
Modern Raspberry Pi OS uses NetworkManager instead of wpa_supplicant. WiFi connections are stored in /etc/NetworkManager/system-connections/. - Add removal of NetworkManager WiFi connections - Update validation to check both locations - Fixes WiFi credentials being baked into distributable images 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -121,6 +121,17 @@ EOF
|
|||||||
rm -f "$BOOT_MOUNT/wpa_supplicant.conf" 2>/dev/null || true
|
rm -f "$BOOT_MOUNT/wpa_supplicant.conf" 2>/dev/null || true
|
||||||
echo " Removed boot partition WiFi config"
|
echo " Removed boot partition WiFi config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Remove NetworkManager connections (RPi OS Bookworm+)
|
||||||
|
if [ -d /etc/NetworkManager/system-connections ]; then
|
||||||
|
# Remove all WiFi connections (files containing type=wifi)
|
||||||
|
for conn in /etc/NetworkManager/system-connections/*; do
|
||||||
|
if [ -f "$conn" ] && grep -q "type=wifi" "$conn" 2>/dev/null; then
|
||||||
|
rm -f "$conn"
|
||||||
|
echo " Removed NetworkManager: $(basename "$conn")"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -320,7 +331,22 @@ fi
|
|||||||
|
|
||||||
# Check WiFi (only for full sanitize)
|
# Check WiFi (only for full sanitize)
|
||||||
if [ "$SOFT_RESET" = false ]; then
|
if [ "$SOFT_RESET" = false ]; then
|
||||||
|
WIFI_FOUND=false
|
||||||
|
|
||||||
|
# Check wpa_supplicant
|
||||||
if grep -q "psk=" /etc/wpa_supplicant/wpa_supplicant.conf 2>/dev/null; then
|
if grep -q "psk=" /etc/wpa_supplicant/wpa_supplicant.conf 2>/dev/null; then
|
||||||
|
WIFI_FOUND=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check NetworkManager
|
||||||
|
for conn in /etc/NetworkManager/system-connections/*; do
|
||||||
|
if [ -f "$conn" ] && grep -q "type=wifi" "$conn" 2>/dev/null; then
|
||||||
|
WIFI_FOUND=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$WIFI_FOUND" = true ]; then
|
||||||
echo -e " ${RED}[FAIL]${NC} WiFi credentials still present"
|
echo -e " ${RED}[FAIL]${NC} WiFi credentials still present"
|
||||||
VALIDATION_ERRORS=$((VALIDATION_ERRORS + 1))
|
VALIDATION_ERRORS=$((VALIDATION_ERRORS + 1))
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user