This commit is contained in:
kyodev 2017-07-13 17:08:36 +02:00
parent 51545907af
commit 9ce587968c
3 changed files with 128 additions and 61 deletions

View File

@ -1,23 +1,23 @@
# getFlashPlayer
**version 2.0.x**
**version 2.1.x**
**adaube a changé ses liens de chargement et augmenté sa protection anti-chargement direct**
**si vous installez ce script, flashplayer ne sera pas installé ni mis à jour**
**cette version se met à jour automatiquement, si possible, tous les 7 jours, si un contournement**
**est trouvé le fonctionnement redeviendra normal**
**adobe a changé ses liens de chargement et augmenté sa protection anti-chargement direct**
**si vous installez ce script, flashplayer ne sera pas installé ni mis à jour automatiquement**
**depuis la version 2.x, ce script se met à jour automatiquement, si possible, tous les 7 jours**
**si un contournement est trouvé le fonctionnement redeviendra normal**
**une page sur l'installation manuelle de ce plugin arrive**
**la version 2.1 permet l'installation manuelle d'un plugin téléchargé manuellement**
**[installation manuelle](#installation-manuelle)**
### installation script, raccourci rapide:
**en root**:
```shell
wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer && chmod +x getFlashPlayer && \
./getFlashPlayer && getFlashPlayer
wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer \
&& chmod +x getFlashPlayer && ./getFlashPlayer && getFlashPlayer
```
## charger le script
```shell
@ -25,7 +25,6 @@ wget https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer
chmod +x getFlashPlayer
```
## installation du script
en **root**, pour installer ou mettre à jour le script:
@ -35,7 +34,7 @@ su
exit
```
**le script est dans le système, prêt à gérer l'installation du plugin Flash et ses mises à jour**
le script est dans le système, prêt à gérer l'installation du plugin Flash et ses mises à jour
**le plugin n'est pas encore installé**
```text
@ -53,16 +52,15 @@ exit
```
* le script est maintenant dans le système (_/opt/bin/getFlashPlayer_ avec un lien (_/usr/local/bin/getFlashPlayer_)
et tout utilisateur peut s'en servir
* le script est inscrit dans la crontab utilisateur, une mise à jour de la version **release** sera faite
[périodiquement](#tache-planifiee)
si disponible (pas de téléchargement d'archive en aveugle).
* le script est inscrit dans la crontab utilisateur, une mise à jour du plugin et du script sera faite
[périodiquement](#tache-planifiee) si disponible (pas de téléchargement d'archive en aveugle).
* si le paquet `flashplugin-nonfree` est présent, il sera **désinstallé**.
* si ce paquet devait être ré-installé, il semble préférable de désinstaller le plugin auparavant
## help
lancer le script sans arguments: `getFlashPlayer`
lancer le script sans arguments: `getFlashPlayer` ou avec l'option help `getFlashPlayer help`
```text
_ _____ _ _ ____ _
@ -72,7 +70,7 @@ lancer le script sans arguments: `getFlashPlayer`
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/
pour Firefox sur Debian, version 2.0.0 - 12/07/2017
pour Firefox sur Debian, version 2.1.0 - 13/07/2017
-----------------------------------------------------------------------
./getFlashPlayer : installation du script dans le système, en ROOT
@ -82,6 +80,9 @@ lancer le script sans arguments: `getFlashPlayer`
getFlashPlayer version : version en ligne de FlashPlayer
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire
----
getFlashPlayer manuel fichier.tar.gz : installation d'une archive
téléchargée manuellement
----
getFlashPlayer sysremove : désinstall du script du système, en ROOT
-----------------------------------------------------------------------
Ce script doit être exécuté avec les droits root uniquement pour
@ -101,7 +102,7 @@ lancer le script sans arguments: `getFlashPlayer`
```
## installation version _release_
## installation plugin
`getFlashPlayer install`
@ -146,6 +147,38 @@ lancer le script sans arguments: `getFlashPlayer`
Pour tester: http://get.adobe.com/flashplayer/about/
```
## installation manuelle
* [charger manuellement](https://get.adobe.com/fr/flashplayer/) Flashplayer en choisissant une
archive linux tar.gz
* lancer l'installation habituelle, avec:
`getFlashPlayer manuel flash_player_npapi_linux.xxxxx.tar.gz`
```text
_ _____ _ _ ____ _
__ _ ___| |_| ___| | __ _ ___| |__ | _ \| | __ _ _ _ ___ _ __
/ _' |/ _ \ __| |_ | |/ _' / __| '_ \| |_) | |/ _' | | | |/ _ \ '__|
| (_| | __/ |_| _| | | (_| \__ \ | | | __/| | (_| | |_| | __/ |
\__, |\___|\__|_| |_|\__,_|___/_| |_|_| |_|\__,_|\__, |\___|_|
|___/ |___/
pour Firefox sur Debian, version 2.1.0 - 13/07/2017
installation manuelle flash_player_npapi_linux.i386.tar.gz
FlashPlayer n'est pas libre, c'est un programme propriétaire dont on
ne peut pas connaître le code source, ni l'utiliser sans conditions,
ni le distribuer librement.
Il souffre de nombreuses vulnérabilités chroniques, depuis des années
sans que l'éditeur fasse beaucoup d'efforts pour corriger cet état
de fait...
Il sera donc bloqué à plus ou moins court terme pas les navigateurs
majeurs, c'est à dire Firefox et Chrom(ium). Préparez vous à cela...
FlashPlayer 26.0.0.137 est installé pour kyodev
Pour tester: http://get.adobe.com/flashplayer/about/
```
## désinstallation plugin
@ -190,13 +223,15 @@ lancer le script sans arguments: `getFlashPlayer`
```
* affiche la version en ligne de FlashPlayer
* compare, si possible (version **release**) et installée, avec la version installée
* affiche la version en ligne du script
* compare avec les versions installées
## mise à jour
* mise à jour si une nouvelle version est disponible en ligne
* à la différence de [_getFlashPlayer install_](#installation-version-release) un téléchargement et
* mise à jour du script si une nouvelle version est disponible en ligne
* mise à jour du plugin si une nouvelle version est disponible en ligne
* à la différence de [_getFlashPlayer install_](#installation-plugin) un téléchargement et
une installation **ne sont pas forcés**. il n'y aura téléchargement que si nouvelle version possible
* cette tâche est exécutée périodiquement par cron/anachron toutes les semaines et n'a pas vraiment
d'utilité à être lancée manuellement
@ -249,9 +284,11 @@ pas de mise à jour disponible:
## tâche planifiée
* la mise à jour possible est testée toutes les **semaines***
* si une nouvelle version du plugin flash existe, le téléchargement est initié et l'installation du plugin est faite
* pas de nouvelle version du plugin flash: pas de téléchargement
* une mise à jour possible est testée toutes les **semaines***
* si une nouvelle version du script existe, la mise à jour du plugin est faite
* si une nouvelle version du plugin flash existe, le téléchargement est initié et l'installation du plugin
est faite
* pas de nouvelle version: pas de téléchargement
* _anacron_ est utilisé, c'est à dire que la mise à jour sera testée, même lors d'arrêts du Pc
dans le syslog: (en root) `cat /var/log/syslog | grep Flash`

View File

@ -1,9 +1,9 @@
#!/bin/bash
version=2.0.2
version=2.1.0
projet="Kyodev"
contact="https://framagit.org/kyodev/kyopages/issues"
date="12/07/2017"
date="13/07/2017"
script="getFlashPlayer"
urlScript="https://framagit.org/kyodev/kyopages/raw/master/scripts/getFlashPlayer"
@ -85,7 +85,7 @@ f__syslogInfo() { # inscription syslog $1, en user.info & f__info $1
f__info "$1"
}
# root? return 0 else 1
# root? return 0 si root else 1
f__root(){
if [ $EUID -eq 0 ]; then return 0; else return 1; fi
}
@ -101,6 +101,11 @@ f__testWget(){
wget -Sq --tries=1 --no-check-certificate --user-agent="$user_agent" -O /dev/null "$1"
}
# test validité archive, $1 fichier (gzip), return 1 si invalide
f__testArchive(){
file -b $1 | grep 'gzip compressed data' &>/dev/null && archive_detect="gzip" || return 1
}
#### fonctions script ==================================================
user_agent="Mozilla/5.0 (X11; Linux $architecture; rv:52.0) Gecko/ Firefox"
@ -187,7 +192,7 @@ esac
}
# version Flash en ligne & installée, $verFlash=x|na, $verInstall, $uptd_plug=""|ko, $urlOnline,
f_versionFlash(){
fflash_version(){
urlOnline="https://get.adobe.com/flashplayer/"
if ! f__cnxTest; then f__error "connection impossible ou site adobe injoignable"; fi
verFlash="$(wget --tries=2 --no-check-certificate --timeout=15 --user-agent="$user_agent" -nv -O - "$urlOnline" | \
@ -233,6 +238,9 @@ cat << 'EOF'
getFlashPlayer version : version en ligne de FlashPlayer
getFlashPlayer upgrade : MAJ si disponible, cron hebdomadaire
----
getFlashPlayer manuel fichier.tar.gz : installation d'une archive
téléchargée manuellement
----
getFlashPlayer sysremove : désinstall du script du système, en ROOT
EOF
printf $COLOR; cat << 'EOF'
@ -247,38 +255,42 @@ EOF
printf $COLOR
}
# install plugin dans config user mozilla, $1 "upgrade" si process maj
# install plugin dans config user mozilla, $1 upgrade|manuel (maj|install manuelle)
fflash_install(){
if [ $1 != "upgrade" ]; then fflash_avert; fi
architecture="$(getconf LONG_BIT)" # 32 | 64
# calcul $file, affichage version pendant l'install, calcul $url
file="flashplayer_npapi_linux.$architecture.tar.gz"
if [ $verFlash == "na" ] || [ $verFlash == "" ]; then f_versionFlash; fi
f__info "installation FlashPlayer, version $verFlash"
verFlash_major="$(echo $verFlash | cut -d '.' -f 1-2)"
url2="https://get.adobe.com/fr/flashplayer/download/?installer=FP_""$verFlash_major""_for_Linux_""$architecture"
url2="$url2""-bit_(.tar.gz)_-_NPAPI&sType=6625&standalone=1"
if [ $1 == "manuel" ]; then
file="$(basename $2)"
dirTemp="$(dirname $2)/$script-$RANDOM/"
mkdir -p "$dirTemp"
else
# calcul $file, affichage version pendant l'install, calcul $url
file="flashplayer_npapi_linux.$architecture.tar.gz"
if [ $verFlash == "na" ] || [ $verFlash == "" ]; then fflash_version; fi
f__info "installation FlashPlayer, version $verFlash"
verFlash_major="$(echo $verFlash | cut -d '.' -f 1-2)"
url2="https://get.adobe.com/fr/flashplayer/download/?installer=FP_""$verFlash_major""_for_Linux_""$architecture"
url2="$url2""-bit_(.tar.gz)_-_NPAPI&sType=6625&standalone=1"
# dossier temporaire de travail, création
dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp"
# dossier temporaire de travail, création
dirTemp="/tmp/$script-$RANDOM/"
mkdir -p "$dirTemp"
# chargement archive plugin flashplayer
wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \
--tries=1 -O "$dirTemp""$file" "$url2"
if [ "$?" != "0" ]; then
f__testWget "$url2"
f__error "Erreur wget\n" \
" réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes."
fi
if [ "$(wc -c < "$dirTemp""$file")" -lt 5000000 ]; then
f__error "Taille du chargement: $(wc -c < "$dirTemp""$file")\n" \
" Chargement incomplet, réessayer et si persistance,\n contacter $projet $contact\n"
# chargement archive plugin flashplayer
wget -cq --show-progress --no-check-certificate --user-agent="$user_agent" --referer="$urlOnline" \
--tries=1 -O "$dirTemp$file" "$url2"
if [ "$?" != "0" ]; then
f__testWget "$url2"
f__error "Erreur wget\n" \
" réessayer et si persistance, contacter $projet $contact\n en indiquant les erreurs précédentes."
fi
f__testArchive "$dirTemp$file" || f__error "\n Le fichier $dirTemp$file n'est pas une archive tar.gz valide"
fi
# décompression archive téléchargée dans dossier de travail
tar -xaf "$dirTemp""$file" -C "$dirTemp"
if [ -e "$file" ]; then tar -xaf "$file" -C "$dirTemp"; else tar -xaf "$dirTemp$file" -C "$dirTemp"; fi
if [ $1 == "manuel" ]; then verFlash="$(strings $dirTemp/libflashplayer.so | grep -Eo '[0-9]+_[0-9]+_[0-9]+_[0-9]+' | sed 's/_/./g')"; fi
# copie de la bibliothèque flash dans plugins/ user mozilla, effacement dir temporaire
cp -f "$dirTemp"libflashplayer.so "/home/$user_/.mozilla/plugins/"
@ -288,7 +300,7 @@ fflash_install(){
echo "$verFlash" > /home/"$user_"/.mozilla/plugins/libflashplayer.version
touch /home/"$user_"/.mozilla/plugins/libflashplayer.maj
# droits user si install par root
# droits user si jamais install par root
chown -R "$user_": /home/"$user_"/.mozilla/plugins
if [ $1 != "upgrade" ]; then
@ -316,34 +328,42 @@ fflash_remove(){
f__info "$GREEN""FlashPlayer $version désinstallé pour $user_\n"
}
# installation du plugin chargé manuellement, $1
fflash_manuelInstall(){
if [ ! -e "$1" ]; then f__error "fichier plugin $1 introuvable"; fi
f__testArchive "$1" || f__error "Le fichier $1 n'est pas une archive tar.gz valide"
f__info "installation manuelle $1"
fflash_install "manuel" $1
}
### début script =======================================================
# traitements arguments
if [ "$#" -gt 1 ]; then f__info "$RED trop d'arguments"; fflash_help; exit 1; fi
#initialisation
f__user
verFlash="na"
#### installation du script si pas dans le système =====================
# installation du script si pas dans le système
if ! f__scriptBin ; then fscript_install; fi
case "$1" in
"install" )
fflash_install ;; # installation plugin
fflash_install ;; # installation plugin
"remove" )
fflash_remove ;; # désinstallation plugin
fflash_remove ;; # désinstallation plugin
"version" )
f_versionFlash
fflash_version
fscript_version ;; # version plugin en ligne & installée
"sysremove" )
fscript_remove ;; # désinstallation du script
"upgrade" )
fscript_version
fscript_dl
f_versionFlash
fflash_upgrade ;; # upgrade plugin et script si MAJs possibles
fflash_version
fflash_upgrade ;; # upgrade plugin et script si MAJs possibles
"manuel" )
fflash_manuelInstall "$2" ;; # install manuelle d'un chargement
* )
fflash_help; fflash_avert ;; # affichage help par défaut
fflash_help; fflash_avert ;; # affichage help par défaut
esac
exit 0

View File

@ -1,6 +1,11 @@
# changelog getFlashPlayer
## 2.1.0 13/07/2017
* installation d'une archive téléchargée manuellement
## 2.0.2 13/07/2017
* fix mineurs
@ -9,10 +14,12 @@
* fix bug, test sur taille download
* fix bug test wget
## 2.0.1 13/07/2017
* fix mineur
## 2.0.0 13/07/2017
* nouveau
@ -30,17 +37,20 @@
* nouveau
* contournement éventuel pour imposer un utilisateur où installer (ou si échec sous debian7?)
## 1.0.2 02/07/2017
* mineur
* renommage appel install version de test: v-test (au lieu) de test
## 1.0.1 22/06/2017
* mineur
* suppression lignes de test commentées
* typos
## 1.0.0 21/06/2017
* 1ère publication