From 8d0e239ecbf7e85642246b11aca15e2c3958bec2 Mon Sep 17 00:00:00 2001 From: Adam Green Date: Fri, 17 Nov 2017 13:11:34 +0000 Subject: [PATCH] pcscd: initial addon --- packages/addons/service/pcscd/changelog.txt | 2 + .../addons/service/pcscd/config/reader.conf | 10 ++++ packages/addons/service/pcscd/icon/icon.png | Bin 0 -> 64200 bytes packages/addons/service/pcscd/package.mk | 50 ++++++++++++++++++ .../service/pcscd/source/bin/pcscd.start | 34 ++++++++++++ .../addons/service/pcscd/source/default.py | 35 ++++++++++++ .../source/system.d/service.pcscd.service | 13 +++++ 7 files changed, 144 insertions(+) create mode 100644 packages/addons/service/pcscd/changelog.txt create mode 100644 packages/addons/service/pcscd/config/reader.conf create mode 100644 packages/addons/service/pcscd/icon/icon.png create mode 100644 packages/addons/service/pcscd/package.mk create mode 100755 packages/addons/service/pcscd/source/bin/pcscd.start create mode 100644 packages/addons/service/pcscd/source/default.py create mode 100644 packages/addons/service/pcscd/source/system.d/service.pcscd.service diff --git a/packages/addons/service/pcscd/changelog.txt b/packages/addons/service/pcscd/changelog.txt new file mode 100644 index 0000000000..428ea6227b --- /dev/null +++ b/packages/addons/service/pcscd/changelog.txt @@ -0,0 +1,2 @@ +100 +- initial addon diff --git a/packages/addons/service/pcscd/config/reader.conf b/packages/addons/service/pcscd/config/reader.conf new file mode 100644 index 0000000000..d9991a666c --- /dev/null +++ b/packages/addons/service/pcscd/config/reader.conf @@ -0,0 +1,10 @@ +# Gemalto reader with serial communication +# - n is the serial port to use n in [0..3] +# - reader is the reader name. It is needed for multi-slot readers. +# Possible reader values are: GemPCPinPad, GemCorePOSPro, GemCoreSIMPro, +# GemPCTwin (default value) +# example: /dev/ttyS0:GemPCPinPad +#FRIENDLYNAME "GemPCTwin serial" +#DEVICENAME /dev/ttySn[:reader] +#LIBPATH /storage/.kodi/addons/service.pcscd/drivers/serial/libccidtwin.so +#CHANNELID n diff --git a/packages/addons/service/pcscd/icon/icon.png b/packages/addons/service/pcscd/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..222be49f4b8a9d797927059e3cf5a2bb3e725fb1 GIT binary patch literal 64200 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
    b;4kZklULZ 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 literal 0 HcmV?d00001 diff --git a/packages/addons/service/pcscd/package.mk b/packages/addons/service/pcscd/package.mk new file mode 100644 index 0000000000..983c74398c --- /dev/null +++ b/packages/addons/service/pcscd/package.mk @@ -0,0 +1,50 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011-2011 Gregor Fuis (gujs@openelec.tv) +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ +PKG_NAME="pcscd" +PKG_VERSION="1.0" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://libreelec.tv" +PKG_URL="" +PKG_DEPENDS_TARGET="toolchain pcsc-lite libusb ccid" +PKG_SECTION="service" +PKG_SHORTDESC="Middleware to access a smart card using SCard API (PC/SC)" +PKG_LONGDESC="Middleware to access a smart card using SCard API (PC/SC)" +PKG_TOOLCHAIN="manual" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="PC/SC Smart Card Daemon" +PKG_ADDON_TYPE="xbmc.service" + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -Pa $(get_build_dir pcsc-lite)/.install_pkg/usr/sbin/pcscd $ADDON_BUILD/$PKG_ADDON_ID/bin/pcscd.bin + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccidtwin.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/ + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccid.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents/Linux/ + cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/Info.plist $ADDON_BUILD/$PKG_ADDON_ID/drivers/ifd-ccid.bundle/Contents + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config + cp -Pa $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/ +} diff --git a/packages/addons/service/pcscd/source/bin/pcscd.start b/packages/addons/service/pcscd/source/bin/pcscd.start new file mode 100755 index 0000000000..4eb58f0ab5 --- /dev/null +++ b/packages/addons/service/pcscd/source/bin/pcscd.start @@ -0,0 +1,34 @@ +#!/bin/sh + +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +. /etc/profile + +oe_setup_addon service.pcscd + +mkdir -p $ADDON_HOME/config + +chmod a+x $ADDON_DIR/bin/* + +if [ ! -f "$ADDON_HOME/config/reader.conf" ]; then + cp $ADDON_DIR/config/reader.conf $ADDON_HOME/config/reader.conf +fi + +exec pcscd.bin --foreground -c $ADDON_HOME/config/reader.conf diff --git a/packages/addons/service/pcscd/source/default.py b/packages/addons/service/pcscd/source/default.py new file mode 100644 index 0000000000..c2749857f9 --- /dev/null +++ b/packages/addons/service/pcscd/source/default.py @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of LibreELEC - https://libreelec.tv +# Copyright (C) 2017-present Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +import subprocess +import xbmc +import xbmcaddon + + +class Monitor(xbmc.Monitor): + + def __init__(self, *args, **kwargs): + xbmc.Monitor.__init__(self) + self.id = xbmcaddon.Addon().getAddonInfo('id') + + def onSettingsChanged(self): + subprocess.call(['systemctl', 'restart', self.id]) + + +if __name__ == "__main__": + Monitor().waitForAbort() diff --git a/packages/addons/service/pcscd/source/system.d/service.pcscd.service b/packages/addons/service/pcscd/source/system.d/service.pcscd.service new file mode 100644 index 0000000000..1434d18b61 --- /dev/null +++ b/packages/addons/service/pcscd/source/system.d/service.pcscd.service @@ -0,0 +1,13 @@ +[Unit] +Description=PCSC lite +After=graphical.target + +[Service] +ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.pcscd/bin/pcscd.start" +TimeoutStopSec=1 +Restart=always +RestartSec=2 +StartLimitInterval=0 + +[Install] +WantedBy=kodi.target