Для моего личного проекта я пытаюсь восстановить силу сигнала iPhone в iPhone. Я полностью осознаю, что это в стране недокументированного добра, поэтому, пожалуйста, воздержитесь от ответов "No Appstore". :)
В любом случае, я читал о предыдущих приложениях WiFi Network Scanner ( WiFi Stumbler ), но боюсь, что большинство (если не все) отражают устаревшую документацию SDK. Надеемся, что этот вопрос также предоставит некоторые централизованные / полезные материалы с последним iPhone SDK 3.1.2.
Вот мой неполный / неработающий код:
.h
void *libHandle;
void *airportHandle;
int (*open)(void *);
int (*bind)(void *, NSString *);
int (*close)(void *);
int (*scan)(void *, NSArray **, void *);
.m
libHandle = dlopen("/System/Library/PrivateFrameworks/MobileWiFi.framework/MobileWiFi",RTLD_LAZY);
open = dlsym(libHandle, "Apple80211Open");
bind = dlsym(libHandle, "Apple80211BindToInterface");
close = dlsym(libHandle, "Apple80211Close");
scan = dlsym(libHandle, "Apple80211Scan");
open(&airportHandle);
bind(airportHandle, @"en0");
NSLog(@"Result %@",libHandle);
При запуске на устройстве он будет производить мой самый любимый ...
Тип исключения: EXC_BAD_ACCESS (SIGSEGV)
Я думаю, что вызов динамической загрузки, ничего не загружается. Каталог: / System / Library / PrivateFrameworks / содержит только файл Info.plist без двоичных файлов или псевдонимов.
Возможно, вы делаете что-то ужасно неправильное (неправильный каталог?) ... спасибо за помощь!
Также как продолжение. Чтобы извлечь информацию о WiFi, это можно сделать:
GetInfoCopy = dlsym(libHandle, "Apple80211GetInfoCopy");
И мои вопросы: 1) Кому-нибудь повезло с этим? 2) Как получить дамп заголовка, как я использовал бы с class-dump для библиотек Objective-C (потому что MobileWifi в C)?