Indian Government has decided to Open Source the code of Aarogya Setu APP. Let’s try to discuss how this code works technically.
There are three basic things on which this App based:
1. BLE (BlueTooth Low Energy)
2. GAP
3. GATT Server
But first, let’s understand some basic BLE concepts.
Also known as
1. BlueTooth SMART
2. Single-Mode
This BLE is subset of BlueTooth Classic. BLE is low powered, has low-cost , has Low-bandwidth and shows Low Latency.
BLE sends small packets and it’s MTU (Maximum Transmission Unit) is 20 bytes/packet.
What is GAP (Generic Access Profile)?
GAP defines rules of communication between two BLE devices.
1. Peripheral devices: These are low power and resource-constrained devices that advertise/broadcast themselves and wait for a central device to connect. Here, in this Aarogya Setu APP Mobile/SmartPhone device acts as a peripheral device in this project.
2. A central device: In this case also smartphone or a powerful device that initiates a connection with peripheral BLE devices.
So in cases of Aarogya Setu APP both Peripheral device and Central device is smartphone.
A peripheral device can connect to only a single central device at a time. Once a connection has been established, peripheral devices stop advertising themselves. A central device, on the other hand, can connect to several peripheral devices and can relay messages among peripheral devices.
But here in case of Aarogya Setu APP every smartphone is Peripheral and Central device . So they get information about the other device if they come in contact.
Generic Attribute Profile (GATT)
Once BLE devices have established a connection, the GATT defines how data is going to get transmitted over the connection. Devices can assume different roles as we have discussed above:
1. GATT Server – Can define attribute that the GATT Client can request. What you are trying to get from device.
2. GATT Client – Send requests to the GATT Server. GATT Client reads or writes to attribute on the server
Here in our case both of these are installed on each smartphone. So every smart phone is running two services GATT Server and GATT Client.
Services
A GATT server offers one or more services. Here in case of Arogya Setu APP we are trying to get device information service. There are other services also which we can use or group in profile.
Each service is recognized by a Universally Unique Identifier (UUID). For BLE Services, the UUID is 16-bit and for custom it is 128-bit.
Service can contain more information in the form of Array.
Security
Aarogya Setu APP is using SSL Pinning. It is a technique that we use on the client-side to avoid man-in-the-middle attack by validating the server certificates again even after SSL handshaking.
Conclusion
This is one of the best technical APP in limited time frame and reached 50 million downloads in just 13 days. There may be many use case of this architecture. Like checking Heart Beat and Blood Pressure etc with IoT Sensor devices.
FireBase and Google Services.
Arogya Setu APP is using Firebase and Google Services
You can use below Git Hub URL for Arogya Setu Android Code.
https://github.com/nic-delhi/AarogyaSetu_Android
Thanks, Keep reading and comment.
—
https://waterfallmagazine.com
I’m more than happy to uncover this page. I wanted
to thank you for your time due to this wonderful read!!
I definitely really liked every part of it and i also have you book-marked to see
new things in your website.
Thank you and we will keep your expectation.
Thanks!! I have added couple of new feature like Push Notification if any new post will come up. I have also added Bookmark in each post.