一:藍牙開關(guān)狀態(tài)調(diào)研
1.可以獲取到附近藍牙設(shè)備的信息壶笼,獲取不到連接狀態(tài)和歷史連接列表
2.可以獲取到當(dāng)前音頻輸出是否是藍牙輸出
詳情如下:
1.可以獲取到附近藍牙設(shè)備的信息,獲取不到連接狀態(tài)和歷史連接列表
獲取藍牙設(shè)備信息參考:
博客藍牙4.0**BLE **:http://www.reibang.com/p/b62081c427a4
demo:https://github.com/CherishJoyBy/Bluetooth4.0Demo
博客傳統(tǒng)藍牙:http://www.reibang.com/p/3b404bd672a8
demo: https://github.com/xuzhengquan/BlueToothDemo/
其他:http://www.reibang.com/p/0879319f5c47
2.可以獲取到當(dāng)前音頻輸出是否是藍牙輸出 -代碼如下:
AVAudioSessionRouteDescription *currentRount = [AVAudioSession sharedInstance].currentRoute;
AVAudioSessionPortDescription *outputPortDesc = currentRount.outputs[0];
**if**([outputPortDesc.portType isEqualToString:@"BluetoothA2DPOutput"]){
NSLog(@"當(dāng)前輸出的線路是藍牙輸出雁刷,并且已連接");
**return** **YES**;
}**else**{
NSLog(@"當(dāng)前是spearKer輸出");
**return** **NO**;
}
二: Airdrop分享信息調(diào)研
1.系統(tǒng)文件分享可以hook并獲取到分享文件的路徑
2.微信的分享可以hook到分享行為,獲取不到文件
詳情如下:
1.系統(tǒng)文件分享可以hook并獲取到分享文件的路徑
通過hook UIViewController_presentViewController方法保礼,如果當(dāng)前vc是[UIActivityViewController class]沛励,獲取到當(dāng)前vc的activityItemValues责语,便利這個values對象數(shù)組,獲取到分享的文件路徑或內(nèi)容
2.微信的分享可以hook到分享行為目派,獲取不到文件
通過hook UIApplication_openUR方法坤候,如果當(dāng)前使用的是微信分享協(xié)議:@"sendreq/?wechat_app_bundleId”,則說明正在使用微信分享企蹭,獲取不到具體分享內(nèi)容
三:usb調(diào)研
1.可以通過電量是否是充電狀態(tài)獲取設(shè)備是否連線—有誤判不準(zhǔn)確
2.獲取不到usb連接行為白筹。目前可以通過mac和iphone通過usb協(xié)議傳輸數(shù)據(jù)但是需要兩端同時支持,暫時無法僅從iphone獲取到當(dāng)前是否連接
參考項目:libimobiledevice, DarkLightning ,peertalk谅摄,github上有源碼
博客: http://www.zhaoxiaodan.com/ios/ituns與iphone的通信協(xié)議usbmuxd解析.html
https://iosre.com/t/usbmuxd-idevice-usb/1482
libimobiledevice使用 http://www.reibang.com/p/a282fbcafaad
詳情如下:
Mac端應(yīng)用通過 PTUSBDeviceDidAttachNotification: 4170徒河,這個通知獲取當(dāng)前USB連接的設(shè)備,然后和設(shè)備發(fā)起網(wǎng)絡(luò)請求
這個過程送漠,iPhone先開啟的服務(wù)顽照,相當(dāng)于server,例如iPhone的app中起一個端口2345服務(wù)
Mac通過usb接口去訪問iPhone設(shè)備指定端口的服務(wù)發(fā)送數(shù)據(jù)包闽寡,例如訪問http://127.0.0.1:2345
通知信息如下:
NSConcreteNotification 0x600000c90000 {name = PTUSBDeviceDidAttachNotification; object = <PTUSBHub: 0x600000010180>; userInfo = {
DeviceID = 4170;
MessageType = Attached;
Properties = {
ConnectionSpeed = 480000000;
ConnectionType = USB;
DeviceID = 4170;
LocationID = 336592896;
ProductID = 4776;
SerialNumber = "00008020-001459EC3E32002E";
UDID = "00008020-001459EC3E32002E";
USBSerialNumber = 00008020001459EC3E32002E;
};
}}
四:關(guān)于外設(shè):
需要定義外設(shè)協(xié)議才能追蹤行為代兵,需要定制化分析
https://blog.csdn.net/qq_34047841/article/details/72822480
demo: EADemo
EADemo( https://developer.apple.com/library/content/samplecode/EADemo/Introduction/Intro.html )