Beiträge von harlekyn

    Zitat

    Original geschrieben von JackJona
    "SpeedTest" und "iHandy Taschenlampe kostenlos" habe ich gelöscht, nun ist wieder alles sauber.

    Es muss irgendwas aus Cydia gewesen sein, eine "normale" App kann dir keine Werbung in den Einstellungen einblenden.

    Zitat

    Original geschrieben von Webjogi
    schon versucht bringt aber nichts

    Dann hast du vermutlich was falsch gemacht. Den Hinweis mit der PIN von iTunes kann man getrost ignorieren, einfach die PIN am Geraet eingeben und dann funktioniert das.

    Zitat

    Brauch das iphone zur Aktivierung eine Verbindung zum Mobilfunknetz?

    Nein. Ich hab meins mit einer inaktiven SIM aktiviert.

    Selbst ist der Mann ;)


    Die Anrufhistorie wird in der call_history.db gespeichert, unter iOS 4 liegt sie in "/private/var/wireless/Library/CallHistory/".


    Das ist eine normale SQLite Datenbank. SQLite unterstuetzt Trigger. Und einen solchen hab ich nun auf die call-Tabelle gelegt, sodass ich kontrollieren kann, ob ein Datensatz geloescht wird.


    Mein Trigger hier sorgt dafuer, dass die Anrufe der letzten 30 Tage erhalten bleiben:

    Code
    CREATE TRIGGER keep_call_history DELETE ON call
    WHEN ( datetime(old.date, 'unixepoch', 'localtime') > datetime('now', 'localtime', '-30 days') )
    BEGIN
    SELECT RAISE(FAIL, 'not older than 30 days');
    END;


    Dieser Ansatz hat den Vorteil, dass einfach nur das delete nicht ausgefuehrt wird. Das Telephony-Framework setzt fuer alle Datensatze, die ueber die standardmaessigen 100 hinausgehen, nach jedem Anruf ein delete ab. Was man sonst so an Loesungen findet, fuegt die geloeschten Datensaetze einfach wieder in die call-Tabelle ein. Dies fuehrt aber zu einer deutlich hoeheren Last, und man hat keine echte Kontrolle darueber, dass immer nur die neuesten Datensaetze erhalten bleiben.


    Diese Modifikation bleibt auch nach einem Restore erhalten, solange man ein Backup einspielt.


    Wenn man den Trigger wieder loswerden moechte, genuegt ein

    Code
    drop trigger keep_call_history;


    Schritt-fuer-Schritt Anleitung:
    - Voraussetzung: Jailbreak, SSH-Zugang, APT 0.7 (ueber Cydia).
    1. per SSH mit dem iPhone verbinden, dazu muss das iPhone per WLAN im gleichen Netz wie der Rechner sein.
    2. sqlite3 installieren, falls nicht schon vorhanden: apt-get update; apt-get install sqlite3
    3. Backup der Call History DB anfertigen: cp /private/var/wireless/Library/CallHistory/call_history.db /var/root/call_history.db.backup
    4. Call History DB oeffnen: sqlite3 /private/var/wireless/Library/CallHistory/call_history.db
    5. Am sqlite> prompt das Statement fuer den Trigger (siehe oben) per copy & paste einfuegen, Zeile fuer Zeile.
    6. Mit STRG+D den sqlite3 Client beenden
    7. Fertig!