为什么在iOS 8.0上call_history.db为空?

为什么在iOS 8.0上call_history.db为空?,ios,jailbreak,Ios,Jailbreak,我有一个坏掉了的iOS 8.0设备,在手机应用程序中,我可以看到有通话记录,我刚刚从设备上打了几个电话,确保有通话记录条目。 但是,当我尝试访问/private/var/wireless/Library/CallHistory/call_history.db时,没有从数据库检索到任何行 那么,如果不是从这里,设备从哪里获取呼叫历史记录呢?AFAIK从CallHistory/call_history.db作为位置更改为CallHistoryDB/CallHistory.storedata发生在iO

我有一个坏掉了的iOS 8.0设备,在手机应用程序中,我可以看到有通话记录,我刚刚从设备上打了几个电话,确保有通话记录条目。 但是,当我尝试访问
/private/var/wireless/Library/CallHistory/call_history.db
时,没有从数据库检索到任何行

那么,如果不是从这里,设备从哪里获取呼叫历史记录呢?AFAIK从CallHistory/call_history.db作为位置更改为CallHistoryDB/CallHistory.storedata发生在iOS 8.3中,但我运行的是8.0

下面是代码,它将完成SQLITE_而不是SQLITE_行

  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*****
                ...

call\u history.db
(无线域)更改为
CallHistory.storedata
(主域)是在iOS 8.0上进行的,因此您查看的数据库错误

CallHistory.storedata
也是SQLite,即使它是CoreData数据库。

显然,表和字段是完全不同的。

为什么您认为数据库的方案是相同的?他们改变了。从Cydia下载iFile,您可以浏览文件系统并打开SQLite数据库。这样做更容易研究。或者将其复制到您的电脑。是否需要执行任何额外操作才能访问CallHistory.storedata?调用NSFileManager:fileExistsAtPath“/private/var/mobile/Library/CallHistoryDB/CallHistory.storedata”返回false。我是否需要向项目添加任何权限(例如访问新位置/文件)?嘿,香肠,即使我在检查/var/mobile/Library/CallHistoryDB/CallHistoryDB.storedata时得到的是false,但在检查/var/mobile/Library/CallHistoryDB时得到的是true。您是否获得了获取通话历史记录的解决方案?