2016-04-07 2 views
0

У меня есть взломанное устройство iOS 8.0, находящееся в тюрьме, и в приложении «Телефон» я вижу, что есть история вызовов, и я только что сделал несколько звонков с/на устройство, чтобы гарантировать, что должны быть записи истории звонков. Однако, когда я пытаюсь получить доступ к /private/var/wireless/Library/CallHistory/call_history.db, в базе данных нет строк.Почему call_history.db пуст на iOS 8.0?

Итак, где устройство получает историю звонков, если это не отсюда? AFAIK - это изменение из CallHistory/call_history.db, являющееся местом для CallHistoryDB/CallHistory.storedata, произошедшим в iOS 8.3, но я выполняю 8.0.

Введите код, который вы видите SQLITE_DONE вместо SQLITE_ROW.

NSString *callHisoryDatabasePath = @"/private/var/wireless/Library/CallHistory/call_history.db"; 
    BOOL callHistoryFileExist = FALSE; 
    callHistoryFileExist = [fileManager fileExistsAtPath:callHisoryDatabasePath]; 
    NSMutableArray *callHistory = [[NSMutableArray alloc] init]; 

    if(callHistoryFileExist) { 
     if ([fileManager isReadableFileAtPath:callHisoryDatabasePath]) { 
      sqlite3 *database; 
      if(sqlite3_open([callHisoryDatabasePath UTF8String], &database) == SQLITE_OK) { 
       sqlite3_stmt *compiledStatement; 
       NSString *sqlStatement = [NSString stringWithString:@"SELECT * FROM call;"]; 



      int errorCode = sqlite3_prepare_v2(database, [sqlStatement UTF8String], -1, 
               &compiledStatement, NULL); 
      if(errorCode == SQLITE_OK) { 
       int count = 1; 
       int result = sqlite3_step(compiledStatement); 
       while(result == SQLITE_ROW) {**** here result is SQLITE_DONE***** 
       ... 
+0

Почему вы предполагаете, что схема базы данных такая же? Они изменили его. Загрузите iFile из Cydia, и вы можете просматривать файловую систему и открывать базы данных SQLite. Гораздо проще исследовать этот путь. Или скопируйте его на свой компьютер. – creker

ответ

0

Переход от call_history.db (беспроводного домена) в CallHistory.storedata (домашнего домен) был сделан на IOS 8,0, так что вы смотрите на ту базе данных.

CallHistory.storedata - тоже SQLite, даже если это база данных CoreData.
Очевидно, что таблицы и поля совершенно разные.

+0

Есть ли что-то дополнительное, что нужно сделать для доступа к CallHistory.storedata? Вызов NSFileManager: fileExistsAtPath, поставляющий «/private/var/mobile/Library/CallHistoryDB/CallHistory.storedata», возвращает false. Нужно ли добавлять какие-либо права на проект, например, для доступа к новому местоположению/файлу? – Gruntcakes

+0

Эй Колбаса, даже я получаю ложь, когда я проверяю для /var/mobile/Library/CallHistoryDB/CallHistory.storedata Но верно, когда я проверяю/уаг/мобильный телефон/Library/CallHistoryDB вы получите ли решение получить звонок histroy? – Coder

Смежные вопросы