Este repositorio contiene, tal cual, el archivo que decide qué puede y qué no puede borrar Leaner, junto con sus tests. Se publica para que cualquiera pueda auditar esa decisión sin fiarse de nuestra palabra.
Leaner pide «Acceso total al disco» y borra archivos. Es razonable querer ver el código que pone los límites antes de concederle eso.
PathPolicy es la autoridad única: la app la consulta al escanear y otra vez justo antes
de cada eliminación, de modo que un error en cualquier escáner no puede traducirse en borrar
algo fuera de política.
- Lista blanca de ámbitos: la carpeta del usuario,
$TMPDIRy —solo al desinstalar— el.appelegido dentro de/Applications. Nada más es elegible. - Vetos absolutos:
/System,/Library,/usr,/bin,/sbin,/etc,/var,/private,/opt,/Volumes,/Network… - Vetos dentro del home: Mail, Mensajes, Fotos, llaveros, iCloud Drive, contenedores de Apple, Calendarios, Recordatorios, Safari…
- Nunca el propio home ni sus carpetas de primer nivel, ni las de primer nivel de
~/Library. - Bibliotecas de datos protegidas por extensión (
.photoslibrary,.musiclibrary,.sparsebundle…): ni se borran ni se recorren. - Preferencias, cookies,
LaunchAgentsy contenedores solo los toca el desinstalador, y solo para la app que se está desinstalando.
git clone https://github.com/leaner-app/path-policy
cd path-policy
swift testLos tests son los mismos que corren en la app y cubren los casos que importan: que un hijo de
~/Library/Caches se pueda borrar pero la carpeta Caches no; que no se pueda escapar del
ámbito declarado con ..; que las zonas prohibidas sigan prohibidas aunque el escáner se
equivoque; y que las excepciones (descargas de Mail, copias de iPhone) no abran la puerta a
otros contenedores de Apple.
VERSION indica a qué versión publicada de Leaner corresponde esta copia y el sha256 del
archivo, para que puedas comprobar que es exactamente el que se compiló.
El resto de la app (interfaz, escáneres, desinstalador, actualizador) es de código cerrado. Este repositorio no pretende ser una biblioteca reutilizable: es una pieza publicada para poder ser revisada.
MIT. Ver LICENSE.