Resilience Theatre

Personal projects for resilience

User Tools

Site Tools


pinephone:introduction

Out-Of-Band with Pinephone

This page presents my out-of-band communication code running on Pinephone.

Pinephone is NOT and Android phone and it does not run on Qualcomm SoC. It's essentially embedded Linux computer with Display, Wifi, LTE and Allwinner A64 SoC. It can boot from MicroSD card or internal eMCC storage device.

:!: Please note that this presented information is still work in progress1)

Features

OOB-Comm software is small embedded Linux firmware and simple user interface. It allows you to message and voice call between devices, with various network configurations and with ephemeral approach.

  • Linux kernel, QT based user interface
  • OOB-Comm communication software stack
  • Messages point-to-point
  • Full Duplex Voice point-to-point
  • Double layered tunneling with selectable protocols
  • One-Time-Pad encryption
  • Communication is ephemeral

Small constellation

When devices are keyed to constellation, they can connect point-to-point with each others. In networks, where devices are behind NAT connection - like cellular networks, you can utilize gateway server in public location to circumvent NAT. In this scenario, this server element does not store any details on communication content or identifying data of communication parties.

If devices are located to tactical networks, fiber connection or similar - they can be configured for direct connection between each others.

By default system has ten participants and they can connect, message and voice call between each others.

Fundamental difference

Even pinephone hardware looks like an mobile phone - concept of OOB-Comm is far from mobile phones. First difference is that devices are not registered anyhow to any infrastructure element (like Telco's subscriber database). Secondly, all communication is ephemeral - meaning everything happens without store-and-forward functionality and none of communication is written to local storage on devices or anywhere in server storage.

Ephemeral nature of this communication requires also participants to be available at the same time with devices connected. Third, concept of One-Time-Pad means that cryptography is Quantum Proof and always out-of-band keyed.

Delivering device (keys) to another party requires always physical meet and delivery process.

Connecting for Comms

Solution is based on direct tunneled connection between devices. Any communication between parties requires this connection and it's handled separately from communication itself. Meaning you need to connect before communication.

  • To message between devices, you need first select device to connect. Then send Message.
  • To have speech between devices, you need first select device to connect. Then activate Voice.

User controls

Voice communication

You can also have full duplex voice communication between devices. This requires external USB-C HF set connected to Pinephone. First you need connect to remote party and then activate voice communication by pressing “Go Secure” button.

  • Please note that only connection initiator is able to activate voice connection by pressing Go Secure.

Battery lifetime: ~ 3.5 h

Current battery lifetime is not that great. You can find very detailed2) information3) about this.

Here is current discharge graph measured by me, when device is in idle mode with WIFI and LTE connected. IDLE mode here is 3 CPU cores stopped and one running.

Keyboard case

There is also user interface variant with landscape option. It's highly experimental and does not support automatic rotation by any means. Currently this is different executable and is likely staying this way.

:!: Using keyboard case affects to USB-C usage on Pinephone:

  • You should only charge combo via keyboard USB-C connector.
  • Internal speaker & microphone works, but are 'impossible' to use with keyboard case
  • 3.5mm HF is preferred for voice communication
  • USB-C attached headset is not tested (with keyboard case)
  • Using Pinephone USB-C with keyboard case needs to be checked

Software Bill Of Materials (SBOM)

Following zip file contains 'pkg-stats.html' and 'pkg-stats.json' files produced by buildroot:

make pkg-stats

Dependency graph

Click to zoom.

Example video

Short example how Pinephone is booted, message is sent and then peer is disconnected.

pinephone/introduction.txt · Last modified: 2023/04/09 05:25 by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki