Я создаю приложение, для которого требуются данные из журнала вызовов iPhone (только для чтения).
Журнал вызовов представляет собой базу данных sqlite, расположенную по адресу " / User / Library / CallHistory / call_history.db ". Я использовал взломанное устройство для извлечения журнала.
Однако при попытке открыть это местоположение с помощью команды sqlite_open3 () я получаю ошибку SQLITE_ERROR , которая в соответствии с документацией библиотеки означает «ошибка SQL или отсутствующая база данных». В попытке отладить ошибку, я использовал NSFileManager для перечисления папки ('/ User / Library /'). Может показаться, что он возвращает «отфильтрованный» набор результатов, который исключает папку «CallHistory» вместе с несколькими другими папками.
Файловая система использует серию псевдонимов, чтобы создать иллюзию традиционной файловой структуры OS X, и я не знаю, влияют ли они на мои результаты.
Журнал вызовов присутствует только на устройстве, а не на симуляторе . Мне не удалось заставить его работать на iPhone 1-го поколения с установленным программным обеспечением 2.1.
Это код, который я использовал для проверки вывода
NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath: @"/private/var/mobile/Library/"];
while( bar = [dirnum nextObject])
{
//Uncomment if you don't want to log sub folders
//[dirnum skipDescendents];
NSLog(bar);
}
У меня есть подозрение, что Apple блокирует доступ к каталогу как часть своей стратегии песочницы, однако на данном этапе у меня нет никаких доказательств. Однако я могу получить доступ к адресной книге без каких-либо проблем, поэтому я немного растерялся.
Спасибо