iPhone — импорт истории звонков
1. Из локальной резервной копии через iBackupBot экспортировать /System Files/WirelessDomain/Library/CallHistory/call_history.db
2. Подготовить csv для загрузки в формате (выгружено через iPhoneBackupBrowser, важно: в длительности здесь важны только секунды, т.к. это полное кол-во секунд)
"From","To","Start date","Duration" "Me","+79210000000","2013-03-01 20:00:42","0h 26m 1611s" "+79210000000","Me","2013-03-02 10:41:52","0h 05m 335s"
3. Подготовить sql запросы — скрипт на php:
<?php $csvFile='calls.csv'; $outputFile='insert_calls.sql'; $handle=fopen($csvFile,'r'); if(!$handle){ die("Cannot open CSV file.\n"); } $sql="BEGIN TRANSACTION;\n"; $header=fgetcsv($handle); $rowId=1; ini_set('date.timezone','Etc/GMT-3'); while(($data=fgetcsv($handle))!==false){ list($from,$to,$startDate,$duration)=$data; $from=trim($from,'"'); $to=trim($to,'"'); $startDate=trim($startDate,'"'); $duration=trim($duration,'"'); preg_match('/(\d+)s$/',$duration,$matches); $totalSeconds=isset($matches[1])?intval($matches[1]):0; if($from==='Me'){ $flags=5; $address=$to; } else{ $flags=4; $address=$from; } $timestamp=strtotime($startDate); $mcc='255'; $mnc='01'; $sql.="INSERT INTO call VALUES($rowId,'$address',$timestamp,$totalSeconds,$flags,-1,'','$mcc','$mnc',1,0,NULL,NULL);\n"; $rowId++; } $sql.="COMMIT;\n"; fclose($handle); file_put_contents($outputFile,$sql); echo "SQL file generated: $outputFile\n"; ?>
4. В DB Browser for SQLite выполнить подготовленные запросы, записать изменения.
5. В iBackupBot импортировать БД обратно.
6. Восстановить резервную копию через iTunes