How does Aarogya Setu App work Technically?

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.

Author Signature for Posts
IoT Blogs (0)

3 thoughts on “How does Aarogya Setu App work Technically?

Leave a Reply

Your email address will not be published. Required fields are marked *