Go to file
Coelacanthus dee7542145
feat: use pkgconfig instead of hard-coded PCSC path (#31)
Signed-off-by: Coelacanthus <CoelacanthusHex@gmail.com>
2024-01-05 19:43:28 +08:00
.github/workflows Make the cygwin cmake option independent of mingw (#28) 2023-12-28 12:40:41 +08:00
asn1 sed all asn1c header to dir local include 2023-10-10 23:07:35 +08:00
cjson add cJSON_AddStringOrNullToObject to make datastruct stable 2023-12-19 23:29:22 +08:00
cmake feat: use pkgconfig instead of hard-coded PCSC path (#31) 2024-01-05 19:43:28 +08:00
dlfcn-win32 feat: $PWD independent executable file (#23) 2023-12-16 20:24:19 +08:00
euicc fix: free memory 2024-01-05 13:12:51 +08:00
interface feat: use pkgconfig instead of hard-coded PCSC path (#31) 2024-01-05 19:43:28 +08:00
src fix: free memory 2024-01-05 13:12:51 +08:00
.gitignore building for macOS x86_64 2023-10-17 21:33:49 +08:00
CMakeLists.txt feat: use pkgconfig instead of hard-coded PCSC path (#31) 2024-01-05 19:43:28 +08:00
README.md Make the cygwin cmake option independent of mingw (#28) 2023-12-28 12:40:41 +08:00
README_en.md Make the cygwin cmake option independent of mingw (#28) 2023-12-28 12:40:41 +08:00

LPAC

中文

LPAC is a cross platform local profile agent program.

Features:

  • Support Activate Code and Confirm Code
  • Support custom IMEI sent to server
  • Support esim Discovery(Push)
  • Notification manage
  • Lookup eUICC chip info
  • etc

Download: Github Release

lpac is dynamic-linked, Release is built by Github action, if you can't run it you need to compile by yourself

Join our Telegram Group to discuss!

Usage

Linux dependency

You need to install pcscd and keep its daemon running to access pcsc smart card reader.

sudo apt install pcscd
sudo systemctl start pcscd

libpcsclite is alse needed

Compile

Linux

Debian/Ubuntu

sudo apt install build-essential cmake git g++ libpcsclite-dev libcurl4-openssl-dev
git clone --depth=1 https://github.com/estkme-group/lpac
cd lpac && mkdir build && cd build 
cmake .. 
make

macOS

WIP

Windows

Due to a bug in asn1c, the MinGW version of lpac cannot send notification successfully. Building with Cygwin seems to avoid it.

Windows need prebuilt libcurl.dll, you can replace the download link to newest curl version.

  • Build on Windows(Cygwin)

With gcc-core gcc-g++ make cmake unzip wget installed

git clone --depth=1 https://github.com/estkme-group/lpac
cd lpac && mkdir build && cd build
cmake -DCYGWIN=ON .. && make
# Download libcurl
wget https://curl.se/windows/dl-8.4.0_6/curl-8.4.0_6-win64-mingw.zip -O curl.zip && unzip curl.zip && mv curl-8.4.0_6-win64-mingw/bin/libcurl-x64.dll output/libcurl.dll

To run it outside Cygwin shell, you need copy cygwin1.dll to the program folder to distribute. cygwin1.dll is located in C:\cygwin64\bin\cygwin1.dll (Default Cygwin installation location)

  • Build on Linux(MINGW)
sudo apt install build-essential cmake git g++ libpcsclite-dev libcurl4-openssl-dev gcc-mingw-w64 g++-mingw-w64
git clone --depth=1 https://github.com/estkme-group/lpac
cd lpac && mkdir build && cd build
cmake -DLINUX_MINGW32=ON .. && make
# Download libcurl
wget https://curl.se/windows/dl-8.4.0_6/curl-8.4.0_6-win64-mingw.zip -O curl.zip && unzip curl.zip && mv curl-8.4.0_6-win64-mingw/bin/libcurl-x64.dll output/libcurl.dll
  • Build on Windows(MSYS2)
# MSYS2 MINGW64 system
pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-gcc
git clone --depth=1 https://github.com/estkme-group/lpac
cd lpac && mkdir build && cd build
cmake -DLINUX_MINGW32=ON .. && ninja
# Download libcurl
wget https://curl.se/windows/dl-8.4.0_6/curl-8.4.0_6-win64-mingw.zip -O curl.zip && unzip curl.zip && mv curl-8.4.0_6-win64-mingw/bin/libcurl-x64.dll output/libcurl.dll