OSCam/de/What is OSCam

Aus Streamboard Wiki
Zur Navigation springen Zur Suche springen

OSCam Übersicht OSCam Home OSCam Accueil OSCam Home

Was kann OSCam?!

Das Wichtigste zuvor: OSCam ist Open Source

OSCam steht für Open Source Conditional Access Modul und ist eine non-profit Gemeinschaftsarbeit zahlreicher Entwickler aus dem In- und Ausland. Die Entwicklungsarbeit ist öffentlich. Der Fortschritt kann über die Oscam-Timeline http://streamboard.gmc.to:8001/timeline anhand der changesets und tickets verfolgt werden. Die Entwicklungsschritte werden in sogenannten svn's in aufsteigender Nummerierung festgehalten und stehen für eine entsprechende Compilierung zur Verfügung (siehe unter Plattformen).

"work in progress" bedingt aber auch, dass in dieser Dokumentation natürlich immer nur Momentaufnahmen der Entwicklung berücksichtigt werden können, bei deren Bearbeitung die Mithilfe der user gefragt ist!

Begonnen hat die Entwicklung von OSCam als reiner Card-Server. Später ist auch die Client-Seite hinzu gekommen. Damit soll schließlich gewährleistet fireworks werden, das möglichst alles "aus einer Hand" kommt.

Cardserver

Wie der Vorgänger MPCS ist OSCam in der Hauptsache ein protokoll- und plattformübergreifender Cardserver.

Client

Der Clientbereich wird in den Dateien mit den Parametern für dvbapi gesteuert. Ziel ist die komplette Abdeckung der Bereiche Server und Clients innerhalb eines Protokolls, ohne auf fremde Protokolle mit closed source zurückgreifen zu müssen. Dennoch wird auch weiterhin die Einbindung der gebräulichsten Protokolle solcher closed Sourcen fortgeführt, allerdings ohne eine Verantwortlichkeit dafür, was in diesen black boxes mit den Daten und Commands passiert.

Überblick über die Abhängigkeiten von Server und Client:

(Mit freundlicher Genehmigung von Alno aus seinem Workshop 2 zu diesem Thema)

Module

Damit der Speicherbedarf möglischst gering gehalten werden kann, ist OSCam modular aufgebaut. Man muss also von OSCam nur die Module auswählen, die man wirklich benötigt und nicht einen unnötigen Ballast von nicht benötigten Programm- und Dateiteilen mit herumschleppen. Server mit nur geringem Speicherangebot sind dafür dankbar!

Die Auswahl erfolgt vor dem Kompilieren. Da das Kompilieren den fortgeschrittenen Usern vorbehalten bleibt, wird es in dieser Doku nicht behandelt. Im streamboard gibt es ausführliche Threads, die sich mit dem Kompilieren befassen. Dort können sich interessierte User informieren.

Trotzdem werden nachfolgend die Module aufgeführt, damit man bei der Auswahl der im Board veröffentlichten Binaries entscheiden kann, welche Version passt.

Die ausgewählten Module werden hier dokumentiert:

oscam.version

Webif support
Webif with SSL support
Dvbapi
Gbox support
Anticasc support
ECM doublecheck
Irdeto guessing
Debug
LED support
Qboxhd-LED support
Log history
Monitor
camd33
Camd35 UDP
Camd35 TCP
Newcamd
Cccam
Radegast
Serial
ConstCW
Cardreader
Nagra
Irdeto
Conax
Cryptoworks
Seca
Viaccess
Videoguard
Dre
Tongfang

Bei Benutzung des Webinterface kann man sich diese Datei anzeigen lassen.

Verwaltung der Module

Das Skript config.sh bietet eine einfache Möglichkeit

  • der Anzeige aller vorhandenen und davon ausgewählten
    • Module
    • Protokolle und
    • Reader
  • der Änderung dieser Auswahl und schließlich
  • der Sicherung für nächsten Abruf eines build, wenn man selbst compiliert.

Für den Fall, dass dieses Skript nicht gefunden wird oder nicht vorhanden ist wird der code hier abgebildet:

<syntaxhighlight lang="bash">

  1. !/bin/bash

tempfile=/tmp/test$$ tempfileconfig=/tmp/oscam-config.h configfile=oscam-config.h DIALOG=${DIALOG:-`which dialog`}

height=30 width=65 listheight=16

if [ -z "${DIALOG}" ]; then echo "Please install dialog package." 1>&2 exit 1 fi

cp -f $configfile $tempfileconfig

addons="WEBIF HAVE_DVBAPI WITH_STAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG CS_WITH_DOUBLECHECK CS_LED QBOXHD_LED CS_LOGHISTORY MODULE_MONITOR WITH_SSL WITH_SSLv3 WITH_LB LCDSUPPORT IPV6SUPPORT" protocols="MODULE_CAMD33 MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_GBOX MODULE_RADEGAST MODULE_SERIAL MODULE_CONSTCW MODULE_PANDORA" readers="WITH_CARDREADER READER_NAGRA READER_IRDETO READER_CONAX READER_CRYPTOWORKS READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG"

check_test() { if [ "$(cat $tempfileconfig | grep "^#define $1$")" != "" ]; then echo "on" else echo "off" fi }

disable_all() { for i in $1; do sed -i -e "s/^#define ${i}$/\/\/#define ${i}/g" $tempfileconfig done }

enable_package() { for i in $(cat $tempfile); do strip=$(echo $i | sed "s/\"//g") sed -i -e "s/\/\/#define ${strip}$/#define ${strip}/g" $tempfileconfig done }

print_components() { clear echo "You have selected the following components:" echo -e "\nAdd-ons:" for i in $addons; do printf "\t%-20s: %s\n" $i $(check_test "$i") done

echo -e "\nProtocols:" for i in $protocols; do printf "\t%-20s: %s\n" $i $(check_test "$i") done

echo -e "\nReaders:" for i in $readers; do printf "\t%-20s: %s\n" $i $(check_test "$i") done cp -f $tempfileconfig $configfile }

menu_addons() { ${DIALOG} --checklist "\nChoose add-ons:\n " $height $width $listheight \ WEBIF "Web Interface" $(check_test "WEBIF") \ HAVE_DVBAPI "DVB API" $(check_test "HAVE_DVBAPI") \ WITH_STAPI "STAPI (DVB API required)" $(check_test "WITH_STAPI") \ IRDETO_GUESSING "Irdeto guessing" $(check_test "IRDETO_GUESSING") \ CS_ANTICASC "Anti cascading" $(check_test "CS_ANTICASC") \ WITH_DEBUG "Debug messages" $(check_test "WITH_DEBUG") \ CS_WITH_DOUBLECHECK "ECM doublecheck" $(check_test "CS_WITH_DOUBLECHECK") \ CS_LED "LED" $(check_test "CS_LED") \ QBOXHD_LED "QboxHD LED" $(check_test "QBOXHD_LED") \ CS_LOGHISTORY "Log history" $(check_test "CS_LOGHISTORY") \ MODULE_MONITOR "Monitor" $(check_test "MODULE_MONITOR") \ WITH_SSL "OpenSSL support" $(check_test "WITH_SSL") \ WITH_SSLv3 "OpenSSL v3 only support" $(check_test "WITH_SSLv3") \ WITH_LB "Loadbalancing" $(check_test "WITH_LB") \ LCDSUPPORT "LCD support" $(check_test "LCDSUPPORT") \ IPV6SUPPORT "IPv6 support (experimental)" $(check_test "IPV6SUPPORT") \ 2> ${tempfile}

opt=${?} if [ $opt != 0 ]; then return; fi

disable_all "$addons" enable_package }

menu_protocols() { ${DIALOG} --checklist "\nChoose protocols:\n " $height $width $listheight \ MODULE_CAMD33 "camd 3.3" $(check_test "MODULE_CAMD33") \ MODULE_CAMD35 "camd 3.5 UDP" $(check_test "MODULE_CAMD35") \ MODULE_CAMD35_TCP "camd 3.5 TCP" $(check_test "MODULE_CAMD35_TCP") \ MODULE_NEWCAMD "newcamd" $(check_test "MODULE_NEWCAMD") \ MODULE_CCCAM "CCcam" $(check_test "MODULE_CCCAM") \ MODULE_GBOX "gbox" $(check_test "MODULE_GBOX") \ MODULE_RADEGAST "radegast" $(check_test "MODULE_RADEGAST") \ MODULE_SERIAL "Serial" $(check_test "MODULE_SERIAL") \ MODULE_CONSTCW "constant CW" $(check_test "MODULE_CONSTCW") \ MODULE_PANDORA "Pandora" $(check_test "MODULE_PANDORA") \ 2> ${tempfile}

opt=${?} if [ $opt != 0 ]; then return; fi

disable_all "$protocols" enable_package }

menu_reader() { ${DIALOG} --checklist "\nChoose reader:\n " $height $width $listheight \ READER_NAGRA "Nagravision" $(check_test "READER_NAGRA") \ READER_IRDETO "Irdeto" $(check_test "READER_IRDETO") \ READER_CONAX "Conax" $(check_test "READER_CONAX") \ READER_CRYPTOWORKS "Cryptoworks" $(check_test "READER_CRYPTOWORKS") \ READER_SECA "Seca" $(check_test "READER_SECA") \ READER_VIACCESS "Viaccess" $(check_test "READER_VIACCESS") \ READER_VIDEOGUARD "NDS Videoguard" $(check_test "READER_VIDEOGUARD") \ READER_DRE "DRE Crypt" $(check_test "READER_DRE") \ READER_TONGFANG "Tongfang" $(check_test "READER_TONGFANG") \ 2> ${tempfile}

opt=${?} if [ $opt != 0 ]; then return; fi

menuitem=`cat $tempfile` if [ "$menuitem" != "" ]; then echo -n " \"WITH_CARDREADER\"" >> ${tempfile} fi disable_all "$readers" enable_package }

while true; do ${DIALOG} --menu "\nSelect category:\n " $height $width $listheight \ Add-ons "Add-ons" \ Protocols "Network protocols" \ Reader "Reader" \ Save "Save" \ 2> ${tempfile}

opt=${?} if [ $opt != 0 ]; then clear; rm $tempfile; rm $tempfileconfig; exit; fi

menuitem=`cat $tempfile` case $menuitem in Add-ons) menu_addons;; Protocols) menu_protocols;; Reader) menu_reader;; Save) print_components; rm $tempfile; rm $tempfileconfig; exit;; esac

</syntaxhighlight>


Diese Seite in anderen Sprachen - This page in other languages - Cette page dans d'autres langues - Queste pagine in altre Lingue

[[OSCam/de/{{#titleparts:OSCam/de/What_is_OSCam|3|3}}|Deutsch]] [[OSCam/en/{{#titleparts:OSCam/de/What_is_OSCam|3|3}}|English]] [[OSCam/fr/{{#titleparts:OSCam/de/What_is_OSCam|3|3}}|Français]] [[OSCam/it/{{#titleparts:OSCam/de/What_is_OSCam|3|3}}|Italiano]]