Skip to content

Robustez v2: SSV/hosts + FileVault + daemon disable + dominios (de #170) - #1

Merged
aquilu merged 6 commits into
mainfrom
fix/hosts-data-volume
Jul 26, 2026
Merged

Robustez v2: SSV/hosts + FileVault + daemon disable + dominios (de #170)#1
aquilu merged 6 commits into
mainfrom
fix/hosts-data-volume

Conversation

@aquilu

@aquilu aquilu commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Resumen

Endurece bypass-mdm-v2.sh para Apple Silicon / macOS moderno (volumen de sistema sellado, FileVault, macOS 26) portando las mejoras de robustez del PR upstream assafdori#170, más un fix SSV y hardening de shell. Incluye bypass-mdm-v3.sh de assafdori#170 como referencia de estudio. main no se toca hasta fusionar este PR.

Cambios (6 commits)

  1. 783cbd7 — fix(v2): /etc/hosts al volumen Data. En Apple Silicon el volumen de sistema es un snapshot sellado de solo lectura; el /etc/hosts que el SO lee vive en el volumen Data (vía firmlink /private). Antes se escribía en el volumen de sistema → el bloqueo no surtía efecto.
  2. 19ec510 — agregar bypass-mdm-v3.sh de Add v3: Apple Silicon / SSV-aware bypass (fixes macOS 26 re-enrollment + FileVault Recovery) assafdori/bypass-mdm#170 (referencia; no altera v2).
  3. 7937476 — feat(v2): detección del Data por rol APFS + unlock FileVault. Reemplaza la detección por nombre por resolve_data_volume() (rol APFS + diskutil apfs unlockVolume). Resuelve el fallo "Could not detect data volume" en Macs con FileVault. 3 niveles de fallback.
  4. d3e89c4 — feat(v2): deshabilitar el daemon de enrollment (durable). launchd override en el volumen Data (com.apple.ManagedClient.enroll, com.apple.mdmclient.daemon.runatboot) que sobrevive al reseal del volumen de sistema tras una actualización de macOS. cloudconfigurationd ya no existe en macOS 26.
  5. bc80fe1 — feat(v2): lista de dominios mejorada. Lee el host MDM propio de la organización del registro DEP y lo bloquea; agrega acmdm.apple.com; bloquea IPv6 además de IPv4. Deja gdmf.apple.com y albert.apple.com sin bloquear (romperían Software Update / iMessage).
  6. b62f795 — harden: set -o pipefail en v2 y clear-dep.

Nota sobre set -euo pipefail

Se evaluó set -euo pipefail (sugerido en la revisión de assafdori#173) y se descartó -e/-u tras verificar empíricamente que romperían este script: set -e aborta en diskutil mount (que falla a propósito antes del unlock FileVault), en mdm_host=$(… | grep …) cuando no hay match, y en available_uid=$(find_available_uid) en su fallback. Se usa set -o pipefail, la misma elección deliberada del autor de v3 (assafdori#170).

Caveats (no bloqueantes)

  • No probado en ejecución. Los cambios corren desde Recovery sobre un Mac real (posiblemente cifrado), entorno no simulable aquí. Validado solo con bash -n. La verificación funcional queda pendiente en hardware afectado.
  • La ruta de disabled.plist (/private/var/db/com.apple.xpc.launchd/) puede variar entre versiones de macOS; el autor de Add v3: Apple Silicon / SSV-aware bypass (fixes macOS 26 re-enrollment + FileVault Recovery) assafdori/bypass-mdm#170 la reporta verificada en macOS 26.5.1 (Apple Silicon).
  • Límite duro (sin cambios): esto es supresión local; el equipo sigue en el inventario DEP de la organización (Apple Business/School Manager).

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jr7dqrEvWGX9ngBHvhq7HL

@aquilu
aquilu merged commit ebdf59e into main Jul 26, 2026
@aquilu
aquilu deleted the fix/hosts-data-volume branch July 26, 2026 19:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant