<!--
SPDX-FileCopyrightText: 2024 Luca Weiss
SPDX-License-Identifier: CC-BY-SA-4.0
-->

# eSIM Manager

A LPA (Local Profile Assistant) app to manage an eSIM/eUICC in your device.

Designed for Linux phones using Phosh/GNOME Mobile.

* [Source Repository](https://codeberg.org/lucaweiss/lpa-gtk)
* [Issue Tracker](https://codeberg.org/lucaweiss/lpa-gtk/issues)

## Details

eSIM Manager (lpa-gtk) is a GTK4 + Libadwaita-based UI which is using
[lpac](https://github.com/estkme-group/lpac) to manage both built-in and removable eUICC cards.

For more information about LPA's please consult
<https://euicc-manual.osmocom.org/docs/lpa/known-solution/>

## Installation

You need the following dependencies installed:
* GTK4
* Libadwaita
* Python
* PyGObject
* lpac
* meson (build-time)
* Blueprint Compiler (build-time)

```
meson setup builddir -Dprefix=/usr
meson compile -C builddir
meson install -C builddir
```

## Development

Use `LPA_GTK_BACKEND=dummy` to make the app use a dummy backend which you can easily run on your PC
without any extra hardware. You can do all the operations as if an actual eUICC was connected.

## Known limitations / todo items

* Only Qualcomm phones supported for now (and only ones that use QMI + QRTR to communicate with the
  modem, so no 10-year-old phones supported, sorry)
    * Should work with minor changes on other platforms with an lpac backend, let me know if you can
      test! => e.g. https://codeberg.org/lucaweiss/lpa-gtk/issues/1
* No support for scanning QR codes for downloading an eSIM - instead you enter the code starting
  with LPA:1$ into the application => https://codeberg.org/lucaweiss/lpa-gtk/issues/14
