-
Notifications
You must be signed in to change notification settings - Fork 0
/
Install_Oscam_Cacheex.sh
137 lines (107 loc) · 4.4 KB
/
Install_Oscam_Cacheex.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash
# Função para verificar se o script está sendo executado como root
check_root() {
if [ "$EUID" -ne 0 ]; then
echo "Por favor, execute como root"
exit
fi
}
# Função para instalar todas as dependências e compilar o OSCam com suporte a cache exchange e CW cycle check
install_oscam_with_options() {
echo "Atualizando os pacotes..."
apt update && apt upgrade -y
echo "Instalando as dependências necessárias, incluindo PCSC..."
apt install opensc -y
apt install -y build-essential cmake libssl-dev libusb-1.0-0-dev libpcsclite-dev libreadline-dev libncurses5-dev libcrypto++-dev git pkg-config pcscd
echo "Clonando o repositório OSCam..."
git clone https://git.streamboard.tv/common/oscam.git /opt/oscam
cd /opt/oscam
echo "Iniciando a compilação do OSCam com suporte a Cache Exchange e CW Cycle Check..."
mkdir build && cd build
cmake -DWITH_CACHEEX=1 -DWITH_CWCYCLECHECK=1 ..
make -j$(nproc)
if [ $? -ne 0 ]; then
echo "Erro na compilação do OSCam"
exit 1
fi
echo "Movendo o binário compilado para /usr/local/bin/..."
cp /opt/oscam/build/oscam /usr/local/bin/oscam
echo "Ajustando permissões..."
chmod +x /usr/local/bin/oscam
echo "Ativando o serviço pcscd (suporte a smartcards)..."
systemctl enable pcscd
systemctl start pcscd
########################################################################
echo "Criação do serviço systemd para o OSCam..."
cat <<EOF > /etc/systemd/system/oscam.service
[Unit]
Description=OSCam Service
After=network.target
[Service]
ExecStart=/usr/local/bin/oscam -b
WorkingDirectory=/usr/local/bin
User=root
Restart=always
[Install]
WantedBy=multi-user.target
EOF
echo "Ativando o serviço OSCam..."
systemctl daemon-reload
systemctl enable oscam
systemctl start oscam
echo "OSCam foi instalado, movido para /usr/local/bin e o serviço está em execução com Cache Exchange e CW Cycle Check."
########################################################################
echo "Instalação do OSCam finalizada sem copiar arquivos de configuração."
}
# Função para instalar todas as dependências e compilar o OSCam com arquivos de configuração
install_complete_oscam() {
install_oscam_with_options
echo "Baixando arquivos de configuração e o script restart-oscam.sh do repositório..."
git clone https://github.com/tauelektronik/auto_install_oscam.git /tmp/auto_oscam_temp
echo "Copiando arquivos de configuração para /usr/local/etc/..."
cp -r /tmp/auto_oscam_temp/etc/* /usr/local/etc/
echo "Movendo restart-oscam.sh para a raiz do Linux e dando permissão de execução..."
cp /tmp/auto_oscam_temp/restart-oscam.sh /restart-oscam.sh
chmod +x /restart-oscam.sh
echo "Limpando os arquivos temporários..."
rm -rf /tmp/auto_oscam_temp
echo "Instalação completa do OSCam finalizada com sucesso."
}
# Função para baixar apenas os scripts install_oscam.sh e restart-oscam.sh
download_scripts_only() {
echo "Baixando os scripts do repositório..."
git clone https://github.com/tauelektronik/auto_install_oscam.git /tmp/auto_oscam_temp
echo "Movendo restart-oscam.sh para a raiz do Linux e dando permissão de execução..."
cp /tmp/auto_oscam_temp/restart-oscam.sh /restart-oscam.sh
chmod +x /restart-oscam.sh
echo "Movendo install_oscam.sh para o diretório atual e dando permissão de execução..."
cp /tmp/auto_oscam_temp/install_oscam.sh ./install_oscam.sh
chmod +x ./install_oscam.sh
echo "Limpando os arquivos temporários..."
rm -rf /tmp/auto_oscam_temp
echo "Scripts baixados e prontos para uso."
}
# Função para perguntar qual tipo de instalação o usuário deseja
menu() {
echo "Deseja fazer uma instalação completa do OSCam (incluindo arquivos de configuração)? [s/n]"
read -p "Escolha [s/n]: " option
case $option in
s|S)
install_complete_oscam
;;
n|N)
install_oscam_with_options
;;
*)
echo "Opção inválida!"
menu
;;
esac
# Removendo o arquivo install_oscam.sh após a instalação
echo "Removendo o arquivo install_oscam.sh..."
rm -f ./install_oscam.sh
echo "Arquivo install_oscam.sh removido."
}
# Execução principal
check_root
menu