Ok, me las arreglé para hacer esto. Está sucio pero bastante seguro hasta ahora.
La base de datos que contiene esa información se encuentra debajo de /var/db/DetachedSignatures
. Esta es una base de datos SQLite, por lo que puede modificarse fácilmente utilizando la herramienta sqlite3 incorporada. Aquí hay una sesión de ejemplo que elimina las entradas que coinciden con la palabra clave "eclipse":
# we're using sudo, so be careful
$ sudo sqlite /var/db/DetachedSignatures
# what tables does it contain?
sqlite> .tables
code global
# what are the column definitions in code?
sqlite> .schema code
CREATE TABLE code (
id integer primary key on conflict replace autoincrement not null,
global integer null references global (id),
identifier text not null,
architecture integer,
identification blob not null unique on conflict replace,
signature blob not null,
created text default current_timestamp
);
CREATE INDEX architecture_index on code (architecture);
CREATE INDEX id_index on code (identification);
CREATE INDEX identifier_index on code (identifier);
# what are the column definitions in global?
sqlite> .schema global
CREATE TABLE global (
id integer primary key on conflict replace autoincrement not null,
sign_location text not null,
signature blob null
);
CREATE INDEX location_index on global (sign_location);
Lo que nos interesa son code.identifier
y global.sign_location
.
sqlite> SELECT * FROM code WHERE identifier LIKE "%eclipse%";
sqlite> SELECT * FROM global WHERE sign_location LIKE "%eclipse%";
Eche un vistazo y haga una copia de seguridad antes de eliminar todas las entradas coincidentes de ambas consultas.
sqlite> DELETE FROM code WHERE identifier LIKE "%eclipse%";
sqlite> DELETE FROM global WHERE sign_location LIKE "%eclipse%";
También he reiniciado mi computadora portátil, aunque no sé si es realmente necesario.
Eso es todo!