So, what I want is just to scan the environment and see if any packages are sent without pairing or connecting to a device. Just a general scan of bluetooth in the air and being able to see some of what comes up, like packages exchanged and maybe some information of them. Everything I've read so far is about pairing or connecting first.
Thanks in advance!
The question is old, but since nobody gave an answer I try to fill the gap.
Bluetooth is, because of its technical specifications (frequency hopping etc.), difficult to sniff. A monitor mode like in WiFi doesn't exist out of the box. You would need to scan all Bluetooth channels at the same time. And then there is the challenge that since you managed to detect something, you need to know the next hop (to which channel the devices jump next). There are commercial hardware that can do that. Also some open source projects come up like Ubertooth, but with less capabilities.
You could try to purchase an Ubertooth and play with it.
Related
I have electric shutter switches (schneider electric, Model: DT1_IT10) that can be controled with an android app via bluetooth (You connect them by long-pressing on the shutter switch and then add them on the phone). I thought that when the app can control them, i can control them, too. So i want to write a remote control in GO.
But i dont have any experience and just need a starting point. So the questions are:
Is this even possible? Maybe the Bluetooth connection is secured?
How and where do i get informations about how to connect to such a device? I couldnt find any information on the manufacturer page.
Yes, this is possible. The magics of free software (as in freedom, not beer) enables us to do whatever we want with the things we own. Protect FOSS, protect our freedom.
Political agenda aside, to answer your questions:
Bluetooth connections are secured, yes. But that does not mean we can't peek and see how they work.
I would start by sniffing the connections (see this and this) and dumping whatever traffic is going through. While doing that, I'd check some libraries for bluetooth in Go (this and this might give you a good idea on that).
It'll not be easy (I've done a few things like that in the past) but if you're into that kind of thing, it'll definitely be fun :)
I am currently trying to develop a mobile application for both iOS and Android. It basically will be a game buzzer app, determining which of the players is granted a right to answer a specific questions.
The problem is that I struggle to determine which technology / framework I should use for that. Now, some details:
In this app there will be a "base" - it is the phone that gives
"start" signal for all the other players. Each buzzer pressed before this signal corresponds to a false start. Eventually, information
about which player is granted a right to answer or is penalized due
to false start should be displayed on the base device.
App is done for people who have no access to the internet. All the
communication should exists given ONLY mobile phones with no data
plan.
Max number of communicating devices is 9 (1 base and 8 players)
I investigated a lot of resources and this is what I discovered:
Regular WLAN with TCP sockets and etc won't help, since it assumes that all devices are connected to same wireless access point - it violates my requirements.
Regular bluetooth won't help either. This would work across a specific platform, but making Android talk to iOS is impossible.
Situation with Wi-Fi direct is same as with regular bluetooth. Both platforms support this, but Apple's MultipeerConnectivity framework works only with iOS devices.
Now the last option I am left with is BLE. Both platforms support this and are able to intercommunicate (acting both as central or peripheral devices). However, due to my requirements for an app, I assume that base device should act as peripheral, and according to (sometimes conflicting) articles on Internet, one can't connect several central devices to single peripheral.
Now, my questions:
I still assume I might have done some mistakes in the bullet points above, so please, correct me if I am somewhere wrong.
Now when I am left only with BLE option, are there any possible solutions to the above issue? Maybe it is possible to use all devices as centrals (?). I recently saw this example, where everything works cool. Sorry in advance, if I said something stupid.
Of course, there is a counterexample - FireChat, which employs OpenGarden's MeshKit. But the framework is not available. I tried communicating OpenGarden people, but no response. Does anyone know if it is planned to go opensource soon, or maybe there exists any analog of this?
Try the Hype SDK by Hype Labs. It's a multi-transport, multi-hop mesh SDK. It supports interoperable Bluetooth Low Energy (and other transports as well). The SDK is currently in private beta but will be made available upon approval of the subscription.
We were given a bluetooth device that we were asked to connect both iOS and Android devices to a particular custom peripheral.
The demo app seems to bring up a list of devices, asking which to use, then brings up a list of protocols, which includes one defined in the info.plist under "Supported external accessory protocols" as com.(company).bt.
I looked all over and found nothing about this process being standard with Bluetooth, and the entire workflow appears to be different on Android. I've tried using the bluetooth sample app to connect to this device but the red connected LED never lights up, and depending on the UUID given, I either receive 1 byte or 7. The sample code I was given doesn't even touch the InputStream unless the stream has reached 16 bytes (Which of course, never happens)
Is there some sort of guide on how to connect to this device? Based on what I read from the code, a message isn't even sent until the user presses a button, but the LED is lit long before this is even an option in iOS.
Edit: I finally found something from clicking around - it seems that the plist entry has to do with mfi (Which I guess the documentation is only available to those in the program?) With that said, does that mean this device will only work with iOS devices?
As you mentioned connection in Android and iOS is done differently.
The protocol defined in info.plist should be the protocol you are meant to use with the particular Bluetooth chip you have.
There is a guide explaining how to connect in iOS, you should probably also check which Bluetooth version it is. If it is lower than Bluetooth 4.0 (BLE- Bluetooth Low Energy) or not. I assume it isn't BLE since you mentioned it is MFI...
1)If it is BLE use Core Bluetooth
2)Otherwise have a look at the following link: Introduction to Stream Programming Guide for Cocoa.
It is a bit hard to understand what you mean about the red LED because we don't know what device you are using. Considering you are receiving some bytes from the device it means that the communication was established. You can start debugging and perhaps understand better the code by changing it to "touch" the InputStream even if 1 byte is received...
Hope this helps.
Cheers!
EDIT: Just read the title again, I am not sure what you mean by saying you want to convert the code to Android? You only described your attempt to connect in iOS.
A quick Google search would give you the following links for Android guide:
1) Bluetooth (not BLE)
2) BLE
I'm a bit unsure of where to post this question, so if anyone thinks I'm in the wrong place and knows where I should be posting it could you please point me in the right direction? Much Appreciated :)
Moving on to my question,
I am working on a project that allows location tracking of a person inside a building by placing usb bluetooth dongles around some rooms (in laptops or usb plugs etc) and saving their information in a database. Using an Android phone I then wanted to be able to discover the devices as I walk around with it on me and then calculate a location using the closest 3.
The problem I'm having is that my Android device will not discover the dongles that I have plugged into various laptops unless I set them to "Receive a file" i.e. discoverable (I assume). Does anyone know if it's possible to set them to be discoverable at all times or make it a default setting so I can plug it into sockets?
If this is not an option, is it possible to find the closest dongles while they are not set to discoverable?
Thanks!
This may require an native application to do this. There is no setting for this in the base OS. But to my knowledge you should be able to call the discovery process through the Bluetooth APIs.
I was reading following article and I come up to know about RF(Radio frequency) signals are the medium of communication between connect mobile phone calls.
Idea came in my mind to have android app kind of RF scanner which secretly eavesdrop on mobile phone conversations around you.
I know i need more research but i quickly want to know if it is possible with android apps or not ?
enter link description here
Android does not offer APIs to do this. They are buried in radio kernel, which comes from pphone vendor. So answer is negative. It is possible but not with android.
PS: COTS solutions doing this are usually restricted in export and pretty expensive.
Honestly I don't see why this would be impossible. The pitfall of building an app like this would be:
a. user will most likely need a rooted phone and some kind of custom radio with their kernel. This shouldn't be a huge issue though as most users looking for something like this should have the know how to root their phone.
b. you wouldn't be able to release this on the market. as soon as google caught wind of such a malicious app they would remove it immediately.
Catching the signal of other conversation is not enough, cause signal is at least encrypted!