Чтение контактов с SIM-карты в взломанном iPhone - PullRequest
5 голосов
/ 16 марта 2012

Я работаю над приложением, которое должно читать контакты с SIM-карты. Я знаю, что это невозможно, используя официальный Apple SDK. Я разрабатываю это приложение для взломанных iPhone .

Я много искал, но единственный ответ, который я получил, НЕ ВОЗМОЖЕН.

Любая помощь на пути действительно будет оценена.

1 Ответ

1 голос
/ 19 марта 2012
NSString *addressbookDatabasePath = @"/private/var/wireless/Library/AddressBook/addressbook.db";
addressbookFileExist = [fileManager fileExistsAtPath:addressbookDatabasePath];
[fileManager release];
NSMutableArray *addressbook = [[NSMutableArray alloc] init];

if(addressbookFileExist) {
if ([fileManager isReadableFileAtPath:addressbookDatabasePath]) {
    sqlite3 *database;
    if(sqlite3_open([addressbookDatabasePath 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;

            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                // Read the data from the result row
                NSMutableDictionary *addressbookItem = [[NSMutableDictionary alloc] init];
                int numberOfColumns = sqlite3_column_count(compiledStatement);
                NSString *data;
                NSString *columnName;

                for (int i = 0; i < numberOfColumns; i++) {
                    columnName = [[NSString alloc] initWithUTF8String:
                                (char *)sqlite3_column_name(compiledStatement, i)];
                    data = [[NSString alloc] initWithUTF8String:
                            (char *)sqlite3_column_text(compiledStatement, i)];

                    [addressbookItem setObject:data forKey:columnName];

                    [columnName release];
                    [data release];
                }
                [callHistory addObject:callHistoryItem];
                [callHistoryItem release];
                count++;
            }
        }
        else {
            NSLog(@"Failed to retrieve table");
            NSLog(@"Error Code: %d", errorCode);
        }
        sqlite3_finalize(compiledStatement);
    }
}
}
...