Главная > iOS > iPhone — импорт истории звонков

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

Categories: iOS Tags:
  1. Пока что нет комментариев.
Похожие публикации