Comments 15
Интересно, как в комментариях сейчас всё сведут к холивару по новому дизайну
-25
А можно ли с помощью этих интерфейсов получить потребляемый приложением сетевой трафик с момента запуска процесса или вообще за всю жизнь?
-1
> в iOS 6 имеются больше 100 открытых для подключения MACH-портов с самыми разнообразными именами
а где можно список всех имен посмотреть?
а где можно список всех имен посмотреть?
0
Спасибо за статью!
C чего вы взяли, что MIG subsystem и Apple System Log facility не являются Private API в iOS? В официальной документации к iOS SDK их описание отсутствует.
Я не знаю, что имеется в виду под «незаконным», но реверс-инжинеринг запрещен правилами iOS Developer Program
Кстати, есть способ узнать мощность сигнала WiFi (RSSI) пользуясь только UIKit'ом. Но, правда, ни для чего более сложного (вроде режима шифрования) он не годится.
Под катом я расскажу, как узнать все это без применения Private API и Jailbreak.
C чего вы взяли, что MIG subsystem и Apple System Log facility не являются Private API в iOS? В официальной документации к iOS SDK их описание отсутствует.
Итак, мы реализовали часть SystemConfiguration.framework самостоятельно и получили необходимые данные не прибегая к Jailbreak или незаконному использованию библиотек.
Я не знаю, что имеется в виду под «незаконным», но реверс-инжинеринг запрещен правилами iOS Developer Program
В общем-то, Public API не дает возможности узнать ничего, кроме SSID, BSSID и сетевых настроек адаптера. А режим шифрования? мощность сигнала?
Кстати, есть способ узнать мощность сигнала WiFi (RSSI) пользуясь только UIKit'ом. Но, правда, ни для чего более сложного (вроде режима шифрования) он не годится.
+1
Пожалуйста :)
И да, привет :) Вашего коммента я ждал.
Они являются несомненно не документированным API. Но под Private API в данном контексте имелись ввиду Private-Frameworks.
Реверс-инжинеринг был излишним, так как я прозевал на ранней стадии research-a лежащие рядом MIG-дефинишены.
Если Вас не затруднит, поделитесь исходниками. Это действительно интересно.
И да, привет :) Вашего коммента я ждал.
Они являются несомненно не документированным API. Но под Private API в данном контексте имелись ввиду Private-Frameworks.
Реверс-инжинеринг был излишним, так как я прозевал на ранней стадии research-a лежащие рядом MIG-дефинишены.
Если Вас не затруднит, поделитесь исходниками. Это действительно интересно.
0
Есть такой класс-одиночка UIStatusBarServer, экземпляр которого поставляет актуальную информацию о состоянии сетей, заряде батареи и т.п. для элементов статус-бара. Вот собственно формат этой информации:
На примере этого проекта можно разобраться, как работать UIStatusBarServer'ом (не моё): Battery Chart
typedef struct { // from UIStatusBarServerThread
char itemIsEnabled[24];
char timeString[64];
int gsmSignalStrengthRaw;
int gsmSignalStrengthBars;
char serviceString[100];
char serviceCrossfadeString[100];
char serviceImages[2][100];
char operatorDirectory[1024];
unsigned int serviceContentType;
int wifiSignalStrengthRaw; // !
int wifiSignalStrengthBars;
unsigned int dataNetworkType;
int batteryCapacity;
unsigned int batteryState;
char batteryDetailString[150];
int bluetoothBatteryCapacity;
int thermalColor;
unsigned int thermalSunlightMode : 1;
unsigned int slowActivity : 1;
unsigned int syncActivity : 1;
char activityDisplayId[256];
unsigned int bluetoothConnected : 1;
unsigned int displayRawGSMSignal : 1;
unsigned int displayRawWifiSignal : 1;
unsigned int locationIconType : 1;
} StatusBarData;
На примере этого проекта можно разобраться, как работать UIStatusBarServer'ом (не моё): Battery Chart
+1
Здорово, спасибо.
С моей точки зрения уже становится интересно: «а откуда он вынул эту информацию?».
С моей точки зрения уже становится интересно: «а откуда он вынул эту информацию?».
-1
Скорее всего так:
Высокоуровневый API (UIKit) -> SpringBoard -> тот же MIG
У многих API даже названия дублируются, например UIApplication и SBApplication
Собственно, вот вся цепочка
Высокоуровневый API (UIKit) -> SpringBoard -> тот же MIG
У многих API даже названия дублируются, например UIApplication и SBApplication
Собственно, вот вся цепочка
-1
Ой, каюсь, забыл отметить, что использование Apple System Log проходит AppStore. (приложение LookoutApp)
0
У меня самого сложилось впечатление, что использовать Private API всё-таки можно, главное не наглеть :) Потому что примеров таких приложений — масса.
Еще есть мнение, что есть несколько градаций «законности» API. blog.programmableweb.com/2011/11/03/private-api/
Еще есть мнение, что есть несколько градаций «законности» API. blog.programmableweb.com/2011/11/03/private-api/
0
Sign up to leave a comment.
Нестандартный способ получить недоступную информацию на iOS