Lava can be used to do functional tests on real hardware. It can be easily installed on PureOS, an FSDG compliant GNU/Linux distribution.
Labgrid has features similar to Lava but it is probably easier to learn because it's probably way easier to get started with it.
The OsmoGSMTester project is able to be interfaced with the Android RIL through ofono and can emulate a GSM network with the help of a compatible GSM base station or SDR.
This presentation from 2019 has many insights on what kind of issue we might expect in interfacing it with smartphones.
The Simtrace 2 project can be used, along with SIM card readers to programmatically feed a SIM card to a smartphone. This can be used to run test on real networks.
Serial port and USB:
Buttons:
Battery:
Antenna connector and GSM tower or SDR:See also the links inside the Serial_port article for more background on how to get serial port access on devices like the Galaxy SIII (GT-I9300) or the Galaxy SII (GT-I9100).
See https://git.replicant.us/contrib/GNUtoo/test-infrastructure.git for the source of the file.
Device | Modem antenna connector | Compatible software | Comments |
Motorolla C155 | MS-147 | * OsmocomBB * Old Nuttx revisions |
Could be used as reference phone as it's probably already supported by the Osmocom testing infrastructure |
Galaxy SII (GT-I9100) | MS-162 | * Replicant 4.0, 4.2, 6.0 * Upstream Linux (partial) |
|
Galaxy Nexus (GT-I9250) | ? | * Replicant 4.0, 4.2, 6.0 | We can get some GSM traces in wireshark with xgoldmon |
Galaxy SIII (GT-I9300) | ? | * Replicant 4.0, 4.2, 6.0 * Upstream Linux (partial) |
When trying to enable protocol tracing in modems we can connect the device modem (somewhat directly) to a laptop
Questions:It might be possible to have a pure software test infrastructure with libsamsung-ipc.
It could be done more or less like that:
test script <-> ipc-modem or other programs <-> libsamsung-ipc <-> Linux kernel <-> VHCI <-> software sending USB packets
We have several choices for the Linux kernel:
Kernels | Comments |
User mode Linux (ARCH=um) | (+) Very lightweight, runs completely in userspace (-) Requires patches for USB / VHCI |
Linux + libvirt + kvm | (-) Require some virtualization setup that requires dedicated RAM (+) Probably works unpatched |
Project | Description | comments |
gnuk | USB token software | can build for gnulinux |
choptix | Library used by gnuk | More simple examples |
simtrace2 ? | SIM tracing and MITM tool | Probably uses vusb for testing too |
So it might be possible to modify them to send some simple USB packets captured with wireshark / tshark / tcpdump.