iPhone Anrufhistorie auf 30 Tage erweitern, so geht's!

  • Servus,


    das iPhone zeigt ja nur die letzten 100 ein- und ausgehenden Verbindungen in der Anrufhistorie an.


    Kennt jemand eine Moeglichkeit, diese zu erweitern? Es gab mal fuer eine uralte OS-Version einen Patch, aber ich suche eine Loesung fuer iOS4 / iPhone 4.


    Danke!

  • 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!

  • Hast du noch mehr so Klasse Tips?



    Nutze zwar seit 2 Jahren nen iPhone mit jailbreak. Aber deine Tipps sind immer gigantisch und auf solche kleinen angenehmen Sachen kommt man selbst nicht :).

  • Danke fuer die Blumen :) Aber soviele Threads eroeffne ich doch garnicht...


    Ich hab das inzwischen alles mal als .deb zusammengepackt, mit ein wenig Glueck erscheint es demnaechst im BigBoss Repository.

  • Hat hier noch jemand ein Geraet mit Jailbreak und iOS < 4.0? Falls ja wuerde mich der Speicherort der call_history.db interessieren. Per SSH als root geht das mit diesem Einzeiler:

    Code
    find / -name call_history.db


    Bitte die Ausgabe incl. Firmware-Version hier posten. Danke!

  • Kann's dir vom iPad sagen 3.21
    /private/var/mobile/Library/CallHistory/call_history.db



    Puh copy Paste iPad nervt:D

  • Danke! Das passt zu den Infos die ich ueber die Firmware 3.x gefunden habe. Wobei ich mich ja frage, was das iPad mit einer Anrufhistorie will... ;)

  • Um das alles ein wenig zu vereinfachen habe ich die Aenderungen in einem Cydia Package namens "Extended Call History" zusammengefasst. Das Paket tut das gleiche wie hier bereits beschrieben; sollte die call_history.db bereits manuell angepasst worden sein, empfehle ich, den Trigger erst manuell zu entfernen, bevor das Paket installiert wird.


    Das Paket ist ueber das Repository apt.17z.de zu beziehen. Das Repository muss ggf. erst noch zu Cydia hinzugefuegt werden, das geht ueber "Verwalten" -> "Quellen".


    Wer's ausprobieren moechte: Nur zu, ich freu' mich ueber ein kurzes Feedback :) Bitte aber vorher ein Backup ueber iTunes machen, sicher ist sicher.


    Wenn das Paket wieder ueber Cydia entfernt wird, wird auch die Erweiterung der Anruf-Historie rueckgaengig gemacht. Eintraege in der Anrufliste jenseits der Standardgrenze von 100 Stueck werden automatisch entfernt, sobald der naechste Anruf getaetigt wird.

  • Zitat

    Original geschrieben von harlekyn
    Danke! Das passt zu den Infos die ich ueber die Firmware 3.x gefunden habe. Wobei ich mich ja frage, was das iPad mit einer Anrufhistorie will... ;)


    Na, die Anrufe protokollieren, die man per Headset damit führt.



    Gerhard

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!