-- -- TEHTRIS-iPhone-PRIVACY.SQL version 0.3 -- -- History: -- version 0.1: Creation of this SQL file by TEHTRI-Security -- version 0.2: Patch from Andreas Kurtz who had not the same SQL schema than us -- version 0.3: Sqlite secure deletion and sqlite auto vacuum added -- -- More information proposed here: -- http://blog.tehtri-security.com/2011/04/disabling-iphone-tracking-do-it.html -- -- Created by TEHTRI-Security (www.tehtri-security.com - @tehtris) -- -- BEGIN PATCH From Andreas Kurtz DROP TRIGGER WifiLocationIncrementRowCount; DROP TRIGGER WifiLocationDecrementRowCount; DELETE FROM WifiLocation; CREATE TRIGGER privacy_in_WifiLocation AFTER INSERT ON WifiLocation BEGIN DELETE FROM WifiLocation; END; -- END -- TEHTRIS PRAGMA secure_delete; PRAGMA secure_delete = 1; PRAGMA auto_vacuum; PRAGMA auto_vacuum = 1; VACUUM; DROP TRIGGER CdmaCellLocationHarvestIncrementRowCount; DROP TRIGGER CdmaCellLocationHarvestDecrementRowCount; DROP TRIGGER CdmaCellLocationLocalIncrementRowCount; DROP TRIGGER CdmaCellLocationLocalDecrementRowCount; DROP TRIGGER CdmaCellLocationLocalDeleteBoundingBoxes; DROP TRIGGER CdmaCellLocationIncrementRowCount; DROP TRIGGER CdmaCellLocationDecrementRowCount; DROP TRIGGER CdmaCellLocationDeleteBoundingBoxes; DROP TRIGGER CellLocationHarvestIncrementRowCount; DROP TRIGGER CellLocationHarvestDecrementRowCount; DROP TRIGGER WifiLocationHarvestIncrementRowCount; DROP TRIGGER WifiLocationHarvestDecrementRowCount; DROP TRIGGER LocationHarvestIncrementRowCount; DROP TRIGGER LocationHarvestDecrementRowCount; DROP TRIGGER CellLocationIncrementRowCount; DROP TRIGGER CellLocationDecrementRowCount; DROP TRIGGER CellLocationDeleteBoundingBoxes; DROP TRIGGER CellLocationLocalIncrementRowCount; DROP TRIGGER CellLocationLocalDecrementRowCount; DROP TRIGGER CellLocationLocalDeleteBoundingBoxes; DELETE FROM TableInfo; DELETE FROM CdmaCellLocationHarvest; DELETE FROM CdmaCellLocationHarvestCounts; DELETE FROM CdmaCellLocationLocal; DELETE FROM CdmaCellLocationLocalCounts; DELETE FROM CdmaCellLocationLocalBoxes_node; DELETE FROM CdmaCellLocationLocalBoxes_rowid; DELETE FROM CdmaCellLocationLocalBoxes_parent; DELETE FROM CdmaCellLocation; DELETE FROM CdmaCellLocationCounts; DELETE FROM CdmaCellLocationBoxes_node; DELETE FROM CdmaCellLocationBoxes_rowid; DELETE FROM CdmaCellLocationBoxes_parent; DELETE FROM Fences; DELETE FROM CompassCalibration; DELETE FROM Location; DELETE FROM Wifi; DELETE FROM Cell; DELETE FROM CellLocationHarvest; DELETE FROM CellLocationHarvestCounts; DELETE FROM WifiLocationHarvest; DELETE FROM WifiLocationHarvestCounts; DELETE FROM LocationHarvest; DELETE FROM LocationHarvestCounts; DELETE FROM CellLocation; DELETE FROM CellLocationCounts; DELETE FROM CellLocationBoxes_node; DELETE FROM CellLocationBoxes_rowid; DELETE FROM CellLocationBoxes_parent; DELETE FROM CellLocationLocal; DELETE FROM CellLocationLocalCounts; DELETE FROM CellLocationLocalBoxes_node; DELETE FROM CellLocationLocalBoxes_rowid; DELETE FROM CellLocationLocalBoxes_parent; CREATE TRIGGER privacy_in_TableInfo AFTER INSERT ON TableInfo BEGIN DELETE FROM TableInfo; END; CREATE TRIGGER privacy_in_CdmaCellLocationHarvest AFTER INSERT ON CdmaCellLocationHarvest BEGIN DELETE FROM CdmaCellLocationHarvest; END; CREATE TRIGGER privacy_in_CdmaCellLocationHarvestCounts AFTER INSERT ON CdmaCellLocationHarvestCounts BEGIN DELETE FROM CdmaCellLocationHarvestCounts; END; CREATE TRIGGER privacy_in_CdmaCellLocationLocal AFTER INSERT ON CdmaCellLocationLocal BEGIN DELETE FROM CdmaCellLocationLocal; END; CREATE TRIGGER privacy_in_CdmaCellLocationLocalCounts AFTER INSERT ON CdmaCellLocationLocalCounts BEGIN DELETE FROM CdmaCellLocationLocalCounts; END; CREATE TRIGGER privacy_in_CdmaCellLocationLocalBoxes_node AFTER INSERT ON CdmaCellLocationLocalBoxes_node BEGIN DELETE FROM CdmaCellLocationLocalBoxes_node; END; CREATE TRIGGER privacy_in_CdmaCellLocationLocalBoxes_rowid AFTER INSERT ON CdmaCellLocationLocalBoxes_rowid BEGIN DELETE FROM CdmaCellLocationLocalBoxes_rowid; END; CREATE TRIGGER privacy_in_CdmaCellLocationLocalBoxes_parent AFTER INSERT ON CdmaCellLocationLocalBoxes_parent BEGIN DELETE FROM CdmaCellLocationLocalBoxes_parent; END; CREATE TRIGGER privacy_in_CdmaCellLocation AFTER INSERT ON CdmaCellLocation BEGIN DELETE FROM CdmaCellLocation; END; CREATE TRIGGER privacy_in_CdmaCellLocationCounts AFTER INSERT ON CdmaCellLocationCounts BEGIN DELETE FROM CdmaCellLocationCounts; END; CREATE TRIGGER privacy_in_CdmaCellLocationBoxes_node AFTER INSERT ON CdmaCellLocationBoxes_node BEGIN DELETE FROM CdmaCellLocationBoxes_node; END; CREATE TRIGGER privacy_in_CdmaCellLocationBoxes_rowid AFTER INSERT ON CdmaCellLocationBoxes_rowid BEGIN DELETE FROM CdmaCellLocationBoxes_rowid; END; CREATE TRIGGER privacy_in_CdmaCellLocationBoxes_parent AFTER INSERT ON CdmaCellLocationBoxes_parent BEGIN DELETE FROM CdmaCellLocationBoxes_parent; END; CREATE TRIGGER privacy_in_Fences AFTER INSERT ON Fences BEGIN DELETE FROM Fences; END; CREATE TRIGGER privacy_in_CompassCalibration AFTER INSERT ON CompassCalibration BEGIN DELETE FROM CompassCalibration; END; CREATE TRIGGER privacy_in_Location AFTER INSERT ON Location BEGIN DELETE FROM Location; END; CREATE TRIGGER privacy_in_Wifi AFTER INSERT ON Wifi BEGIN DELETE FROM Wifi; END; CREATE TRIGGER privacy_in_Cell AFTER INSERT ON Cell BEGIN DELETE FROM Cell; END; CREATE TRIGGER privacy_in_CellLocationHarvest AFTER INSERT ON CellLocationHarvest BEGIN DELETE FROM CellLocationHarvest; END; CREATE TRIGGER privacy_in_CellLocationHarvestCounts AFTER INSERT ON CellLocationHarvestCounts BEGIN DELETE FROM CellLocationHarvestCounts; END; CREATE TRIGGER privacy_in_WifiLocationHarvest AFTER INSERT ON WifiLocationHarvest BEGIN DELETE FROM WifiLocationHarvest; END; CREATE TRIGGER privacy_in_WifiLocationHarvestCounts AFTER INSERT ON WifiLocationHarvestCounts BEGIN DELETE FROM WifiLocationHarvestCounts; END; CREATE TRIGGER privacy_in_LocationHarvest AFTER INSERT ON LocationHarvest BEGIN DELETE FROM LocationHarvest; END; CREATE TRIGGER privacy_in_LocationHarvestCounts AFTER INSERT ON LocationHarvestCounts BEGIN DELETE FROM LocationHarvestCounts; END; CREATE TRIGGER privacy_in_CellLocation AFTER INSERT ON CellLocation BEGIN DELETE FROM CellLocation; END; CREATE TRIGGER privacy_in_CellLocationCounts AFTER INSERT ON CellLocationCounts BEGIN DELETE FROM CellLocationCounts; END; CREATE TRIGGER privacy_in_CellLocationBoxes_node AFTER INSERT ON CellLocationBoxes_node BEGIN DELETE FROM CellLocationBoxes_node; END; CREATE TRIGGER privacy_in_CellLocationBoxes_rowid AFTER INSERT ON CellLocationBoxes_rowid BEGIN DELETE FROM CellLocationBoxes_rowid; END; CREATE TRIGGER privacy_in_CellLocationBoxes_parent AFTER INSERT ON CellLocationBoxes_parent BEGIN DELETE FROM CellLocationBoxes_parent; END; CREATE TRIGGER privacy_in_CellLocationLocal AFTER INSERT ON CellLocationLocal BEGIN DELETE FROM CellLocationLocal; END; CREATE TRIGGER privacy_in_CellLocationLocalCounts AFTER INSERT ON CellLocationLocalCounts BEGIN DELETE FROM CellLocationLocalCounts; END; CREATE TRIGGER privacy_in_CellLocationLocalBoxes_node AFTER INSERT ON CellLocationLocalBoxes_node BEGIN DELETE FROM CellLocationLocalBoxes_node; END; CREATE TRIGGER privacy_in_CellLocationLocalBoxes_rowid AFTER INSERT ON CellLocationLocalBoxes_rowid BEGIN DELETE FROM CellLocationLocalBoxes_rowid; END; CREATE TRIGGER privacy_in_CellLocationLocalBoxes_parent AFTER INSERT ON CellLocationLocalBoxes_parent BEGIN DELETE FROM CellLocationLocalBoxes_parent; END; -- --