logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:slyfox:scripts:accueil [14/08/2018 17:38]
Slyfox [Slymedia]
utilisateurs:slyfox:scripts:accueil [07/08/2020 18:25] (Version actuelle)
Slyfox
Ligne 1: Ligne 1:
-====== ​Slymedia ​======+====== ​Samsung supprimer APK constructeur ​======
  
-  * Objet : Script Slymedia +===== Installation =====
-  * Niveau requis : {{tag>​débutant}} +
-  * Commentaires : - +
-  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) +
-  * Suivi : {{tag>​à-placer}} ​+
  
-===== Script =====+<code root>apt install android-tools-adb</​code>​
  
-<note warning>​En cours d'​écriture,​ peut fonctionner que partiellement !</​note>​ 
  
-<note tip>​Version du: 02.08.2018</​note>​ 
  
-<code user>#! /bin/bash +===== Configurer le téléphone ​===== 
-  +Activer le mode développeur 
-# Paquets à installer: ffmpeg yad flac vorbis-tools eyed3 kid3-cli +Aller dans Paramètres 
-# Version: 20180802 +Puis Paramètres système 
-  +Aller dans « À propos ​du téléphone » 
-#​=========================================================================================================== +Tapoter ​fois sur le « numéro ​de build » 
-function YADMAIN() +Le menu « options pour les développeurs » apparaît ​dans les paramètres système
-{ +Activer le «debogage USB« 
-yadMain=$(yad --form \ +
---geometry="​640x720"​ \ +
---borders="​20"​ \ +
---title "​SlyMedia"​ \ +
---item-separator="​!"​ \ +
---columns=1 \ +
---scroll \ +
---field="​ ":LBL " " \ +
---field="<​b>​Profil</​b>":​CB "​${profile}!Audio FLAC!Audio vorbis!Audio aac!Audio mp3!Vidéo mkv - x264 - vorbis!Vidéo mkv - x264 - aac!Vidéo mkv - x264 - mp3!Vidéo mkv - x265 - vorbis!Vidéo mkv - x265 - aac!Vidéo mkv - x265 - mp3" \ +
---field="​ ":LBL " " \ +
---field="<​b>​Qualité</​b>":​CB "​${quality}!Excellente!Elevée!Moyenne!Minimum!Faible"​ \ +
---field="​ ":LBL " " \ +
---field="<​b>​Dossier destination</​b>":​DIR "​${dirOut}"​ \ +
---field="​ ":LBL " " \ +
---field="":​LBL ""​ \ +
---field="<​b>​Source</​b>":​LBL " " \ +
---field="​ ":LBL " " \ +
---button="​Quitter!gtk-quit!:​1"​ \ +
---button="​Options par défaut!gtk-refresh!:​3"​ \ +
---button="​Préférences!gtk-preferences!:​2"​ \ +
---button="​Source!gtk-file!:​4"​ \ +
---button="​Lancer conversion!gtk-convert!:​0"​ \ +
-"​${cdeYadStream[@]}"​) +
-  +
-# Status de sortie Yad +
-status="​$?"​ +
-  +
-# Récupération variables +
-profile=$(awk -F [\|] '​{print $2}' <<<​ "​${yadMain}"​) +
-quality=$(awk -F [\|] '​{print $4}' <<<​ "​${yadMain}"​) +
-dirOut=$(awk -F [\|] '​{print $6}' <<<​ "​${yadMain}"​) +
-+
-#​=========================================================================================================== +
-function YADPREFERENCE() +
-+
-# Sélection ​du ou des fichiers source +
-yadPreference=$(yad --form \ +
---title "​SlyMedia"​ \ +
---geometry="​640x720"​ \ +
---borders="​20"​ \ +
---field="<​b>​Préférences vidéo</​b>":​LBL " " \ +
---field="​Définition de la vidéo":​CB "​${definition}!Identique à la source!3840x2160 (UHD 16:​9)!1920x1080 (FULL-HD 16:​9)!1280x720 (HD 16:​9)!1024x576 (16:​9)!768x432 (16:​9)!512x288 (16:​9)!256x144 (16:​9)!720x576 (SD PAL)!720x480 (SD NTSC)!640x480 (4:​3)!320x240 (4:​3)!1024x768 (4:​3)!1280x960 (4:​3)!1280x800 (16:​10)!1440x900 (16:​10)!1680x1050 (16:​10)!1920x1200 (16:​10)!2560x1600 (16:​10)"​ \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="<​b>​Préférences audio</​b>":​LBL " " \ +
---field="​Langue audio préférée":​CB "​${langAudio}!Toutes les langues!Aucune!Français!Allemand!Anglais!Arabe!Espagnol!Espéranto!Italien!Japonais!Latin!Luxembourgeois!Néerlandais!Portugais!Romanche!Russe"​ \ +
---field="​ ":LBL " " \ +
---field="​Débit binaire":​CB "​${typeRate}!VBR!CBR"​ \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="<​b>​Préférences sous-titre</​b>":​LBL " " \ +
---field="​Langue sous-titre préférée":​CB "​${langSub}!Toutes les langues!Aucune!Français!Allemand!Anglais!Arabe!Espagnol!Espéranto!Italien!Japonais!Latin!Luxembourgeois!Néerlandais!Portugais!Romanche!Russe"​ \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="​ ":LBL " " \ +
---field="<​b>​Options</​b>":​LBL " " \ +
---field="​Supprimer toutes les métadonnées":​CHK "​${metadata}"​ \ +
---field="​Ne pas encoder si même codec que l'​original":​CHK "​${nocopy}"​ \ +
---field="​Dossier source":​DIR "​${dirIn}"​ \ +
---button="​gtk-quit:​1"​ \ +
---button="​gtk-cancel:​2"​ \ +
---button="​gtk-ok:​0"​) +
-  +
-# Status de sortie Yad +
-status="​$?"​ +
-  +
-# Récupération variables +
-definition=$(awk -F [\|] '​{print $2}' <<<​ "​${yadPreference}"​) +
-langAudio=$(awk -F [\|] '​{print $7}' <<<​ "​${yadPreference}"​) +
-typeRate=$(awk -F [\|] '​{print $9}' <<<​ "​${yadPreference}"​) +
-langSub=$(awk -F [\|] '​{print $14}' <<<​ "​${yadPreference}"​) +
-metadata=$(awk -F [\|] '​{print $19}' <<<​ "​${yadPreference}"​) +
-nocopy=$(awk -F [\|] '​{print $20}' <<<​ "​${yadPreference}"​) +
-dirIn=$(awk -F [\|] '​{print $21}' <<<​ "​${yadPreference}"​) +
-  +
-  +
-+
-#​=========================================================================================================== +
-function YADSOURCE() +
-+
-IFS=$"​|"​ +
-  +
-yadSource=$(yad --list \ +
---radiolist \ +
---title="​Slymedia"​ \ +
---text="​Choississez une source"​ \ +
---print-all \ +
---geometry="​320x300"​ \ +
---borders="​20"​ \ +
---center \ +
---button="​gtk-quit:​1"​ \ +
---button="​gtk-cancel:​2"​ \ +
---button="​gtk-ok:​0"​ \ +
---column=""​ \ +
---column="​Type ​de source"​ \ +
-"​TRUE"​ "​Fichier"​ \ +
-"​FALSE"​ "​DVD"​ \ +
-"​FALSE"​ "​CD"​ \ +
-"​FALSE"​ "​DDL"​) +
-  +
-# Status de sortie Yad +
-status="​$?"​ +
-  +
-# Récupération variables +
-source=$(awk -F [\|] '/​TRUE/​ {print $2}' <<<​ "​${yadSource}"​) +
-+
-#​=========================================================================================================== +
-function YADFILE() +
-+
-# Sélection du ou des fichiers source +
-fileIn=$(yad --file \ +
---multiple \ +
---title "​SlyMedia"​ \ +
---geometry="​640x720"​ \ +
---borders="​20"​ \ +
---separator="​\n"​ \ +
---center \ +
---file-filter="​Fichier media | *mkv *.ogg *.mp4 *.avi *.vob *.flac *.mp3 *.m4a" \ +
---file-filter "Tous | *" \ +
---filename="​${dirIn}"​ \ +
---button="​gtk-quit:​1"​ \ +
---button="​gtk-cancel:​2"​ \ +
---button="​gtk-ok:​0"​) +
-  +
-# Status de sortie Yad +
-status="​$?"​ +
-+
-#​=========================================================================================================== +
-function CONFIGURATION() +
-+
-# Création du dossier .slymedia +
-dirSylmedia="/​home/​$USER/​.slymedia"​ +
-[[ ! -d "​${dirSylmedia}"​ ]] && mkdir "​${dirSylmedia}"​ +
-  +
-# Suppression des anciens dossiers temporaires +
-rm -rf "​${dirSylmedia}"/​tmp* +
-  +
-# Création du dossier temporaire +
-dossierTmp="​$(mktemp -d "​${dirSylmedia}/​tmp-XXXXXXXXXXX"​)"​ +
-  +
-# Création du fichier de configurations +
-fileConfig="​${dirSylmedia}/​config.txt"​ +
-  +
-[[ ! -f "​${fileConfig}"​ ]] && CONFIGDEFAUT +
-+
-#​=========================================================================================================== +
-function CONFIGDEFAUT() +
-+
-# Options par défaut +
-echo -e "​profile=\"​Vidéo mkv - x264 - vorbis\"​\nquality=\"​Elevée\"​\ndirOut=\"​${HOME}\"​\ndefinition=\"​Identique à la source\"​\nlangAudio=\"​Toutes ​les langues\"​\ntypeRate=\"​VBR\"​\nlangSub=\"​Toutes les langues\"​\nmetadata=\"​FALSE\"​\nnocopy=\"​FALSE\"​\ndirIn=\"​${HOME}/​\""​ > "​${fileConfig}"​ +
-+
-#​=========================================================================================================== +
-function SAVE() +
-+
-# Sauvegarde variables ​dans fichier de configuaration utilisateur +
-echo -e "​profile=\"​${profile}\"​\nquality=\"​${quality}\"​\ndirOut=\"​${dirOut}\"​\ndefinition=\"​${definition}\"​\nlangAudio=\"​${langAudio}\"​\ntypeRate=\"​${typeRate}\"​\nlangSub=\"​${langSub}\"​\nmetadata=\"​${metadata}\"​\nnocopy=\"​${nocopy}\"​\ndirIn=\"​${dirIn}\""​ > "​${fileConfig}"​ +
-  +
-echo "​profile:​ ${profile}"​ +
-echo "​quality:​ ${quality}"​ +
-echo "​dirOut:​ ${dirOut}"​ +
-echo "​definition:​ ${definition}"​ +
-echo "​langAudio:​ ${langAudio}"​ +
-echo "​typeRate:​ ${typeRate}"​ +
-echo "​langSub:​ ${langSub}"​ +
-echo "​metadata:​ ${metadata}"​ +
-echo "​nocopy:​ ${nocopy}"​ +
-echo "​dirIn:​ ${dirIn}"​ +
-echo "​=============================================="​ +
-+
-#​=========================================================================================================== +
-function LANGUE() +
-+
- if [[ "​${lang}"​ == "​fre"​ ]] || [[ "​${lang}"​ == "​fra"​ ]] || [[ "​${lang}"​ == "​fr"​ ]]; then +
- language="​Français"​ +
- languageISO="​fre"​ +
-  +
- elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​deu"​ ]] || [[ "​${lang}"​ == "​de"​ ]]; then +
- language="​Allemand"​ +
- languageISO="​deu"​ +
-  +
- elif [[ "​${lang}"​ == "​eng"​ ]] || [[ "​${lang}"​ == "​en"​ ]]; then +
- language="​Anglais"​ +
- languageISO="​eng"​ +
-  +
-  +
- elif [[ "​${lang}"​ == "​ara"​ ]] || [[ "​${lang}"​ == "​ar"​ ]]; then +
- language="​Arabe"​ +
- languageISO="​ara"​ +
-  +
- elif [[ "​${lang}"​ == "​bre"​ ]] || [[ "​${lang}"​ == "​br"​ ]]; then +
- language="​Breton"​ +
- languageISO="​bre"​  +
-  +
- elif [[ "​${lang}"​ == "​cat"​ ]] || [[ "​${lang}"​ == "​ca"​ ]]; then +
- language="​Catalan"​ +
- languageISO="​cat"​ +
-  +
- elif [[ "​${lang}"​ == "​chi"​ ]] || [[ "​${lang}"​ == "​zho"​ ]] || [[ "​${lang}"​ == "​zh"​ ]]; then +
- language="​Chinois"​ +
- languageISO="​chi"​ +
-  +
- elif [[ "​${lang}"​ == "​kor"​ ]] || [[ "​${lang}"​ == "​ko"​ ]]; then +
- language="​Coréen"​ +
- languageISO="​kor"​ +
-  +
- elif [[ "​${lang}"​ == "​cos"​ ]] || [[ "​${lang}"​ == "​co"​ ]]; then +
- language="​Corse"​ +
- languageISO="​cos"​ +
-  +
- elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then +
- language="​Créole_haïtien"​ +
- languageISO="​hat"​ +
-  +
- elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then +
- language="​Créole_haïtien"​ +
- languageISO="​hat"​ +
-  +
- elif [[ "​${lang}"​ == "​rcf"​ ]] || [[ "​${lang}"​ == "​rc"​ ]]; then +
- language="​Créole_Réunionnais"​ +
- languageISO="​rcf"​ +
-  +
- elif [[ "​${lang}"​ == "​gla"​ ]] || [[ "​${lang}"​ == "​gd"​ ]]; then +
- language="​Écossais"​ +
- languageISO="​gla"​ +
-  +
- elif [[ "​${lang}"​ == "​spa"​ ]] || [[ "​${lang}"​ == "​es"​ ]]; then +
- language="​Espagnol"​ +
- languageISO="​spa"​ +
-  +
- elif [[ "​${lang}"​ == "​epo"​ ]] || [[ "​${lang}"​ == "​eo"​ ]]; then +
- language="​Espéranto"​ +
- languageISO="​epo"​ +
-  +
- elif [[ "​${lang}"​ == "​fin"​ ]] || [[ "​${lang}"​ == "​fi"​ ]]; then +
- language="​Finnois"​ +
- languageISO="​fin"​ +
-  +
- elif [[ "​${lang}"​ == "​glg"​ ]] || [[ "​${lang}"​ == "​gl"​ ]]; then +
- language="​Galicien"​ +
- languageISO="​glg"​ +
-  +
-  +
- elif [[ "​${lang}"​ == "​wel"​ ]] || [[ "​${lang}"​ == "​cym"​ ]] || [[ "​${lang}"​ == "​cy"​ ]]; then +
- language="​Gallois"​ +
- languageISO="​wel"​ +
-  +
- elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​ell"​ ]] || [[ "​${lang}"​ == "​el"​ ]]; then +
- language="​Grec"​ +
- languageISO="​gre"​ +
-  +
- elif [[ "​${lang}"​ == "​heb"​ ]] || [[ "​${lang}"​ == "​he"​ ]]; then +
- language="​Hébreu"​ +
- languageISO="​heb"​ +
-  +
- elif [[ "​${lang}"​ == "​hin"​ ]] || [[ "​${lang}"​ == "​hi"​ ]]; then +
- language="​Hindi"​ +
- languageISO="​hin"​ +
-  +
- elif [[ "​${lang}"​ == "​hun"​ ]] || [[ "​${lang}"​ == "​hu"​ ]]; then +
- language="​Hongrois"​ +
- languageISO="​hun"​ +
-  +
- elif [[ "​${lang}"​ == "​gle"​ ]] || [[ "​${lang}"​ == "​ga"​ ]]; then +
- language="​Irlandais"​ +
- languageISO="​gle"​ +
-  +
- elif [[ "​${lang}"​ == "​ice"​ ]] || [[ "​${lang}"​ == "​isl"​ ]] || [[ "​${lang}"​ == "​is"​ ]]; then +
- language="​Islandais"​ +
- languageISO="​ice"​  +
-  +
- elif [[ "​${lang}"​ == "​ita"​ ]] || [[ "​${lang}"​ == "​it"​ ]]; then +
- language="​Italien"​ +
- languageISO="​ita"​ +
-  +
- elif [[ "​${lang}"​ == "​jpn"​ ]] || [[ "​${lang}"​ == "​jp"​ ]]; then +
- language="​Japonais"​ +
- languageISO="​jpn"​ +
-  +
- elif [[ "​${lang}"​ == "​lat"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then +
- language="​Latin"​ +
- languageISO="​lat"​ +
-  +
- elif [[ "​${lang}"​ == "​ltz"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then +
- language="​Luxembourgeois"​ +
- languageISO="​ltz"​ +
-  +
- elif [[ "​${lang}"​ == "​dut"​ ]] || [[ "​${lang}"​ == "​nld"​ ]] || [[ "​${lang}"​ == "​lb"​ ]]; then +
- language="​Néerlandais"​ +
- languageISO="​dut"​ +
-  +
- elif [[ "​${lang}"​ == "​nor"​ ]] || [[ "​${lang}"​ == "​no"​ ]]; then +
- language="​Norvégien"​ +
- languageISO="​nor"​ +
-  +
- elif [[ "​${lang}"​ == "​por"​ ]] || [[ "​${lang}"​ == "​pt"​ ]]; then +
- language="​Portugais"​ +
- languageISO="​por"​ +
-  +
- elif [[ "​${lang}"​ == "​roh"​ ]] || [[ "​${lang}"​ == "​rm"​ ]]; then +
- language="​Romanche"​ +
- languageISO="​roh"​ +
-  +
- elif [[ "​${lang}"​ == "​rus"​ ]] || [[ "​${lang}"​ == "​ru"​ ]]; then +
- language="​Russe"​ +
- languageISO="​rus"​ +
-  +
- elif [[ "​${lang}"​ == "​swe"​ ]] || [[ "​${lang}"​ == "​sv"​ ]]; then +
- language="​Suédois"​ +
- languageISO="​swe"​ +
-  +
- else +
- language="​Inconnu"​ +
- languageISO="​und"​ +
- fi  +
-+
-#​=========================================================================================================== +
-function STREAM() +
-+
-[[ -f "​${dossierTmp}/​stream.txt"​ ]] && rm "​${dossierTmp}/​stream.txt"​ +
-cdeYadStream=() +
-  +
-IFS=$'​\n'​ +
-  +
-for i in ${fileIn}; do +
- STREAMTITLE +
- STREAMVIDEO +
- STREAMAUDIO +
- STREAMSUBTITLE +
- cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ") +
-  +
-done +
-+
-#​=========================================================================================================== +
-function STREAMTITLE() +
-+
-# Titre et durée +
-streamFormat=$(ffprobe -i "​${i}"​ -hide_banner -v quiet -show_entries format=duration,​bit_rate -of csv=s="​|"​) +
-  +
-durationS=$(awk -F [\|] '​{print $2}' <<<​ "​${streamFormat}"​) +
-durationHMS=$(date -d@"​${durationS}"​ -u +%H:​%M:​%S) +
-rateTotal=$(awk -F [\|] '​{printf "%d kb/s" ,​($3/​1000)}'​ <<<​ "​${streamFormat}"​) +
-  +
-# Mise en mémoire dans tableau cdeYadStream +
-cdeYadStream=(${cdeYadStream[@]} --field="<​b>​TITRE:​ $(basename "​${i}"​) - ${durationHMS} - ${rateTotal}</​b>":​LBL " ") +
-+
-#​=========================================================================================================== +
-function STREAMVIDEO() +
-+
-streamVideo=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams v -show_entries stream=index,​codec_name,​width,​height,​r_frame_rate -of csv=s="​|"​) +
-  +
-while read line; do +
-  +
- index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​) +
- codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​) +
- width=$(awk -F [\|] '​{print $4}' <<<​ "​${line}"​) +
- height=$(awk -F [\|] '​{print $5}' <<<​ "​${line}"​) +
- fps1=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $1}'​) +
- fps2=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $2}'​) +
-  +
- # Vérifiction si fps1 et fps2 sont des valeurs numériques +
-  +
- if [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ = +([0-9]) ]]; then +
- fps=$(echo "​${fps1} / ${fps2}"​ | bc -l | awk '​{printf "​%.3f"​ ,​$1}'​) +
-  +
- elif [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ != +([0-9]) ]]; then +
- fps=$(awk '​{printf "​%d"​ ,$1}' <<<​ "​${fps1}"​) +
-  +
- else +
- fps="​N/​A"​ +
- fi +
-  +
- # Type d'​image (Front, back, other) +
- if [[ "​${codec}"​ == "​mjpeg"​ ]] || [[ "​${codec}"​ == "​png"​ ]]; then +
-  +
- # Recherche numéro id depuis la map +
- id=$(awk -F [\:] '​{print $2}' <<<​ "​0:​${index}"​) +
- typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}'​) +
-  +
-  +
- # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau cdeYadStream) +
- if [[ "​${index}"​ != ""​ ]]; then +
- printf "​|${i}|0:​${index}|VIDEO|${typeImage}|${codec}|${width}|${height}\n"​ >> "​${dossierTmp}/​stream.txt"​ +
- cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | VIDEO |${typeImage} ${codec} ${width}x${height}":​CHK "​TRUE"​) +
-  +
- fi +
-  +
- else +
-  +
- # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau cdeYadStream) +
- if [[ "​${index}"​ != ""​ ]]; then +
- printf "​|${i}|0:​${index}|VIDEO|${codec}|${width}|${height}|${fps}\n"​ >> "​${dossierTmp}/​stream.txt"​ +
- cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | VIDEO |${codec} ${width}x${height} ${fps} fps":​CHK "​TRUE"​) +
-  +
- fi +
- fi +
-  +
-  +
-  +
-done <<<​ "​${streamVideo}"​ +
-+
-#​=========================================================================================================== +
-function STREAMAUDIO() +
-+
-streamAudio=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams a -show_entries stream=index,​codec_name,​sample_rate,​channel_layout,​bit_rate -show_entries stream_tags=language -of csv=s="​|"​) +
-  +
- while read line; do +
-  +
- index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​) +
- codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​) +
- rate=$(awk -F [\|] '​{print $4}' <<<​ "​${line}"​) +
- channelOut=$(awk -F [\|] '​{print $5}' <<<​ "​${line}"​) +
- lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​) +
- #​debitAudio=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​) +
-  +
- LANGUE +
-  +
- # Affectation TRUE ou FALSE +
- if [[ "​${language}"​ == "​${langAudio}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langAudio}"​ == "​Toutes ​les langues"​ ]]; then +
- bol="​TRUE"​ +
-  +
- else +
- bol="​FALSE"​ +
- fi +
-  +
- # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream) +
- if [[ "​${index}"​ != ""​ ]]; then +
- printf "​|${i}|0:​${index}|AUDIO|${codec}|${language}|${languageISO}|${rate}|${channelOut}|\n"​ >> "​${dossierTmp}/​stream.txt" +
- cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index}| AUDIO | ${language} ${codec} ${rate} Hz ${channelOut}":​CHK "​${bol}"​) +
-  +
- fi +
-  +
- done <<<​ "​${streamAudio}"​  +
-+
-#​=========================================================================================================== +
-function STREAMSUBTITLE() +
-+
-streamSub=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams s -show_entries stream=index,​codec_name -show_entries stream_tags=language -of csv=s="​|"​) +
-  +
-while read line; do +
-  +
- index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​) +
- codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​) +
- lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​) +
-  +
- LANGUE +
-  +
- # Affectation TRUE ou FALSE +
- if [[ "​${language}"​ == "​${langSub}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langSub}"​ == "​Toutes les langues"​ ]]; then +
- bol="​TRUE"​ +
-  +
- else +
- bol="​FALSE"​ +
- fi +
-  +
- # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream) +
-  +
- if [[ "​${index}"​ != ""​ ]]; then  +
- printf "​|${i}|0:​${index}|SUBTITLE|${codec}|${language}|${languageISO}|\n"​ >> "​${dossierTmp}/​stream.txt"​ +
- cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | SUBTITLE | ${language} ${codec}":​CHK "​${bol}"​) +
-  +
- fi +
-  +
-done <<<​ "​${streamSub}"​ +
-+
-#​=========================================================================================================== +
-  +
-function PROFIL() +
-+
-if [[ "​${profile}"​ = "Audio FLAC" ]]; then +
- FLAC +
- conteneur="​flac"​ +
-  +
-elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then +
- VORBIS +
- conteneur="​ogg"​ +
-  +
-elif [[ "​${profile}"​ = "Audio aac" ]]; then +
- AAC +
- conteneur="​m4a"​ +
-  +
-elif [[ "​${profile}"​ = "Audio mp3" ]]; then +
- MP3 +
- conteneur="​mp3"​ +
-  +
-elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - vorbis"​ ]]; then +
- X264 +
- VORBIS +
- conteneur="​mkv"​ +
-  +
-elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - aac" ]]; then +
- X264 +
- AAC +
- conteneur="​mkv"​ +
-  +
-elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - mp3" ]]; then +
- X264 +
- MP3 +
- conteneur="​mkv"​ +
-  +
-elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - aac" ]]; then +
- X265 +
- AAC +
- conteneur="​mkv"​ +
-  +
-elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - mp3" ]]; then +
- X265 +
- MP3 +
- conteneur="​mkv"​ +
-fi +
-+
-#​=========================================================================================================== +
-function QUALITY_VIDEO() +
-+
-# Commande selon la qualité +
-if [[ "​${quality}"​ == "​Excellente"​ ]]; then +
- cdeQualityVideo=(${qVideo1[@]}) +
-  +
-elif [[ "​${quality}"​ == "​Elevée"​ ]]; then +
- cdeQualityVideo=(${qVideo2[@]}) +
-  +
-elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then +
- cdeQualityVideo=(${qVideo3[@]}) +
-  +
-elif [[ "​${quality}"​ == "​Minimum"​ ]]; then +
- cdeQualityVideo=(${qVideo4[@]}) +
-  +
-elif [[ "​${quality}"​ == "​Faible"​ ]]; then +
- cdeQualityVideo=(${qVideo5[@]}) +
-  +
-fi +
-+
-#​=========================================================================================================== +
-function X265() +
-+
-if [[ "​${codecVideoIn}"​ = "​h265"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cVideo="​copy"​ +
-else +
- cVideo="​libx265"​ +
-  +
- qVideo1=(-crf 18 -preset slow) +
- qVideo2=(-crf 24 -preset slow) +
- qVideo3=(-crf 30 -preset medium) +
- qVideo4=(-crf 36 -preset veryfast) +
- qVideo5=(-crf 42 -preset ultrafast)  +
-fi +
-  +
-  +
-+
-#​=========================================================================================================== +
-function X264() +
-+
-if [[ "​${codecVideoIn}"​ = "​h264"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cVideo="​copy"​ +
-else +
- cVideo="​libx264"​ +
-  +
- qVideo1=(-crf 18 -preset slow) +
- qVideo2=(-crf 24 -preset slow) +
- qVideo3=(-crf 30 -preset medium) +
- qVideo4=(-crf 36 -preset veryfast) +
- qVideo5=(-crf 42 -preset ultrafast) +
-  +
-fi  +
-+
-#​=========================================================================================================== +
-function FLAC() +
-+
-if [[ "​${codecAudioIn}"​ = "​flac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cAudio="​copy"​ +
-  +
-else +
- cAudio="​flac"​ +
-fi +
-+
-#​=========================================================================================================== +
-function VORBIS() +
-+
-if [[ "​${codecAudioIn}"​ = "​vorbis"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cAudio="​copy"​ +
-  +
-else +
- codecAudioOut="​vorbis"​ +
- cAudio="​libvorbis"​ +
-  +
- if [[ "​${typeRate}"​ == "​VBR"​ ]]; then +
- qAudio1=(-qscale:​a 10) +
- qAudio2=(-qscale:​a 8) +
- qAudio3=(-qscale:​a 5) +
- qAudio4=(-qscale:​a 4) +
- qAudio5=(-qscale:​a 0) +
-  +
- elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then +
- qAudio1=(-b:​a 320k) +
- qAudio2=(-b:​a 256k) +
- qAudio3=(-b:​a 192k) +
- qAudio4=(-b:​a 128k) +
- qAudio5=(-b:​a 64k) +
- fi +
-  +
-fi  +
-+
-#​=========================================================================================================== +
-function AAC() +
-+
-if [[ "​${codecAudioIn}"​ = "​aac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cAudio="​copy"​ +
-  +
-else +
- codecAudioOut="​aac"​ +
- cAudio="​aac"​ +
-  +
- if [[ "​${typeRate}"​ == "​VBR"​ ]]; then +
- qAudio1=(-q:​a 0) +
- qAudio2=(-q:​a 2) +
- qAudio3=(-q:​a 5) +
- qAudio4=(-q:​a 7) +
- qAudio5=(-q:​a 9) +
-  +
- elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then +
- qAudio1=(-b:​a 320k) +
- qAudio2=(-b:​a 256k) +
- qAudio3=(-b:​a 192k) +
- qAudio4=(-b:​a 128k) +
- qAudio5=(-b:​a 64k) +
- fi +
-  +
-fi +
-+
-#​=========================================================================================================== +
-function MP3() +
-+
-if [[ "​${codecAudioIn}"​ = "​mp3"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then +
- cAudio="​copy"​ +
-  +
-else +
- codecAudioOut="​mp3"​ +
- cAudio="​libmp3lame"​ +
-  +
- if [[ "​${typeRate}"​ == "​VBR"​ ]]; then +
- qAudio1=(-q:​a 0) +
- qAudio2=(-q:​a 2) +
- qAudio3=(-q:​a 5) +
- qAudio4=(-q:​a 7) +
- qAudio5=(-q:​a 9) +
-  +
- elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then +
- qAudio1=(-b:​a 320k) +
- qAudio2=(-b:​a 256k) +
- qAudio3=(-b:​a 192k) +
- qAudio4=(-b:​a 128k) +
- qAudio5=(-b:​a 64k) +
- fi +
-fi +
-+
-#​=========================================================================================================== +
-function FFMPEG() +
-+
-IFS=$'​\n'​ +
-  +
-for iFileIn in ${fileIn}; do +
-  +
- # Initialisation commandes +
- cdeVideo=() +
- cdeAudio=() +
- cdeSub=() +
-  +
- # Nom fichier source +
- fileNameExtension=$(basename "​${iFileIn}"​) +
- fileName="​${fileNameExtension%.*}"​ +
- extension="​${fileNameExtension##​*.}"​ +
-  +
- # Recherche map +
- mapVideo=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​) +
- mapAudio=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​) +
- mapSub=$(awk -F [\|] '{if ($4 ~ /SUBTITLE/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​) +
-  +
- echo "​=============================================="​ +
- echo " ​ iFileIn: ${iFileIn}"​ +
- echo " fileName: ${fileName}"​ +
- echo " mapVideo: ${mapVideo}"​ +
- echo " mapAudio: ${mapAudio}"​ +
- echo " ​  ​mapSub:​ ${mapSub}"​ +
-  +
- # Metadonnée +
- if [[ "​${metadata}"​ == "​TRUE"​ ]]; then +
- cdeMetadata=(-map_metadata -1) +
- else +
- cdeMetadata=() +
- fi +
-  +
- FFMPEG_VIDEO +
- FFMPEG_AUDIO +
- FFMPEG_OUT +
-  +
- # Conversion fichier +
- ffmpeg -y -i "​${iFileIn}"​ -loglevel debug "​${cdeMetadata[@]}"​ "​${cdeVideo[@]}"​ "​${cdeAudio[@]}"​ "​${dirOut}/​${fileName}.${conteneur}"​ +
- ffmpeg -i "​${dirOut}/​${fileName}.${conteneur}"​ ## TEST ## +
- echo "​ffmpeg -y -i ${iFileIn} ${cdeMetadata[@]} ${cdeVideo[@]} ${cdeAudio[@]} ${dirOut}/​${fileName}.${conteneur} -------- ${rateTotal}"​ ## TEST ## +
-  +
- # Image cover fichier audio +
- for iMapVideo in ${mapVideo};​ do +
-  +
- numImage="​1"​ +
-  +
- # Recherche codec vidéo (image) +
- codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​) +
-  +
- if [[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] || [[ "​${codecVideoIn}"​ == "​png"​ ]]; then +
-  +
- COVER +
- fi +
-  +
- done +
-  +
-done +
-+
-  +
-#​=========================================================================================================== +
-function FFMPEG_VIDEO() +
-+
-numFile=""​ +
-  +
-for iMapVideo in ${mapVideo};​ do +
-  +
- codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​) +
-  +
- PROFIL +
- QUALITY_VIDEO +
-  +
- if [[ "​${profile}"​ = "Audio FLAC" ]] || [[ "​${profile}"​ = "Audio vorbis"​ ]] || [[ "​${profile}"​ = "Audio aac" ]] || [[ "​${profile}"​ = "Audio mp3" ]]; then +
- cdeVideo=(-vn) +
-  +
- else +
- cdeVideo=(${cdeVideo[@]} -map ${iMapVideo} -c:v ${cVideo} ${cdeQualityVideo[@]}) +
-  +
- fi +
-  +
- echo "​cdeVideo:​ ${cdeVideo[@]}"​ +
-  +
-done +
-}+
  
-#=========================================================================================================== +===== Commandes ​=====
-function FFMPEG_AUDIO() +
-+
-numAudio="​0"​ +
-  +
-for iMapAudio in ${mapAudio};​ do +
-  +
- codecAudioIn=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​) +
- languageISO=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && $3 ~ /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$7}}' <<<​ "​${stream}"​) +
-  +
- PROFIL +
- QUALITY_AUDIO +
-  +
-  +
-  +
- #​cdeQualityAudio=(-b:​a "​${rateTotal}k"​) ## TEST +
-  +
-  +
-  +
-  +
-  +
- cdeAudio=(${cdeAudio[@]} -map ${iMapAudio} -metadata:​s:​a:​${numAudio} language="​${languageISO}"​ -c:a ${cAudio} ${cdeQualityAudio[@]} ${channel[@]} -cutoff 20000) +
- ((numAudio+=1)) +
-  +
-done +
-+
-#​=========================================================================================================== +
-function QUALITY_AUDIO() +
-+
-# Recherche debit total maximum du fichier source +
-rateTotal=$(ffprobe -i "​${iFileIn}"​ -hide_banner -v quiet -show_entries format=bit_rate -of csv=s="​|"​ | awk -F [\|] '​{printf "​%d\n"​ ,​($2/​1000)}'​)+
  
-# Commande selon la qualité +Lancer adb 
-if [[ "​${cAudio}"​ = "​copy"​ ]] || [[ "​${cAudio}"​ == "​flac"​ ]]; then +<code root>adb start-server</​code>​
- cdeQualityAudio=() +
-  +
-elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then +
-  +
- if [[ "​${quality}"​ == "​Excellente"​ ]] && [[ "​${rateTotal}" ​-gt "​320"​ ]]; then +
- cdeQualityAudio=(${qAudio1[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Elevée"​ ]] && [[ "​${rateTotal}"​ -gt "​256"​ ]]; then +
- cdeQualityAudio=(${qAudio2[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Moyenne"​ ]] && [[ "​${rateTotal}"​ -gt "​192"​ ]]; then +
- cdeQualityAudio=(${qAudio3[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Minimum"​ ]] && [[ "​${rateTotal}"​ -gt "​128"​ ]]; then +
- cdeQualityAudio=(${qAudio4[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Faible"​ ]] && [[ "​${rateTotal}"​ -gt "​64"​ ]]; then +
- cdeQualityAudio=(${qAudio5[@]}) +
-  +
- else +
-  +
- if [[ "​${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
-  +
- else +
- cdeQualityAudio=(-b:​a "​${rateTotal}k"​) +
- fi +
-  +
- fi +
-  +
-elif [[ "​${typeRate}"​ == "​VBR"​ ]]; then +
-  +
- if [[ "​${quality}"​ == "​Excellente"​ ]]; then +
- cdeQualityAudio=(${qAudio1[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Elevée"​ ]]; then +
- cdeQualityAudio=(${qAudio2[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then +
- cdeQualityAudio=(${qAudio3[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Minimum"​ ]]; then +
- cdeQualityAudio=(${qAudio4[@]}) +
-  +
- elif [[ "​${quality}"​ == "​Faible"​ ]]; then +
- cdeQualityAudio=(${qAudio5[@]}) +
-  +
- fi +
-fi+
  
 +Lister les périphériques connectés au pc
 +<code root>adb devices</​code>​
  
-#​cdeQualityAudio=(-b:a "​${rateTotal}k"​) ## TEST+===== Suppression APK =====
  
 +<code user> #! /bin/bash
  
- echo "​typeRate:​ ${typeRate}"​ ## TEST 
- echo "​rateTotal:​ ${rateTotal}"​ ## TEST 
- echo "​quality:​ ${quality}"​ ## TEST 
- echo "​cdeQualityAudio:​ ${cdeQualityAudio[@]}"​ ## TEST 
-} 
-#​=========================================================================================================== 
-function FFMPEG_OUT() 
-{ 
    
-  +###########################​ 
-Si fichier exsite déjà ajoute "​copie"​ et numéro de la copie +Phone apps and services # 
-nbrCopie="​1"​ +###########################​ 
-  +adb shell "cmd package install-existing com.android.stk" # SIM toolkit 
-while [[ -f "​${dirOut}/​${fileName}.${conteneur}"​ ]]; do +adb shell "cmd package install-existing com.android.stk2" # SIM toolkit ​(maybe for dual-sim devices
- fileName=$(awk '​{gsub(/​ - copie.*/, ""​);​ printf "%s - copie '​$nbrCopie'"​ ,$0}' <<<​ "​${fileName}"​) +adb shell "cmd package install-existing com.sec.android.app.simsettingmgr" # SIM card manager, maybe required, contains configuration and settings for handling dual SIM (give a SIM an icona nameand so on
- ((nbrCopie+=1)) +adb shell "pm uninstall ​---user 0 com.samsung.android.smartcallprovider" ​# The 4th tab in the Phone app for 'local places
-done +adb shell "pm uninstall ​---user 0 com.sec.vsim.ericssonnsds.webapp" # NSDSWebAppThe Non Sim Device Solution (NSDS) is linked to VoLTE and VoWifi (Wifi Calling). NSDS allows connecting non sim devices to IMS core: https://uk.linkedin.com/in/hemant-kumar-dewnarain-2b779679 
-+adb shell "pm uninstall -k --user com.android.cts.ctsshim" ​# Probably linked to accessibility feature ​"Captioned Telephone ServiceNo internet access required 
-#=========================================================================================================== +adb shell "pm uninstall ​---user 0 com.android.cts.priv.ctsshim" ​# Probably linked to accessibility feature ​"Captioned Telephone ServiceNo internet access required 
-function COVER() +adb shell "pm uninstall ​---user com.samsung.crane" ​# Phone, with extended featuresshare rich data (doodles, location, text messages)Couldn't find a way to access it from an official interface 
-+adb shell "pm uninstall ​---user com.hiya.star" # Possibly linked to the Phone app "Caller ID and spam protection service" ​as well as the "Places" ​feature 
-Si codecVideoIn = mjpeg --> jpeg + 
-[[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] && codecVideoIn="​jpeg"​ +adb shell "cmd package install-existing com.sec.ims" # IMS (IP Multimedia Subsystemis linked to VoLTE, WiFi Calling and Rich Communication Services ​(RCS): https://​en.wikipedia.org/​wiki/​IP_Multimedia_Subsystem 
-  +adb shell "cmd package install-existing com.sec.imslogger" # ImsLogger ​(see above for IMS
-Recherche numéro id depuis la map +adb shell "cmd package install-existing com.sec.imsservice" ​# IMS Service ​(see above for IMS
-id=$(awk -F [\:] '​{print $2}' <<<​ "​${iMapVideo}"​) +adb shell "cmd package install-existing com.samsung.advp.imssettings" # Seem linked to IMS 
-  +adb shell "cmd package install-existing com.sec.epdg" # ePDG (evolved packet data gatewaycould be linked to WiFi Calling and possible VoLTE: http://www.oracle.com/​us/​industries/​communications/​wifi-calling-epdg-wp-2874668.pdf 
-Type d'​image (Front, back, other) + 
-typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}'​) +###############​ 
-  +System apps # 
-Nom image cover +###############​ 
-nameImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=title -of csv=s="​|"​ | awk -F [\|] '​{print $2}'​) +adb shell "cmd package install-existing com.samsung.accessibility" # Accessibility settings (useful for apps creating virtual buttons such as a pie-menu) 
-  +adb shell "cmd package install-existing com.samsung.android.app.soundpicker" # The ringtone picker provided by the system for any Alarm app 
-if [[ "​${nameImage}"​ == ""​ ]]; then  +adb shell "cmd package install-existing com.samsung.android.allshare.service.fileshare" # Wi-Fi Direct (bluetooth-wifi sharing of files) 
- #nameImage="​cover_${typeImage}"​ +adb shell "cmd package install-existing com.samsung.android.allshare.service.mediashare" # Nearby service, maybe related to the previous wifi direct fileshare 
-  + 
-  +Ant+ wireless technology 
- if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then +adb shell "pm uninstall ​---user 0 com.dsi.ant.plugins.antplus" # ANT+ Plugins Service 
- nameImage="​Cover front"​ +adb shell "pm uninstall ​---user com.dsi.ant.sample.acquirechannels" # ANT + DUT 
-  +adb shell "pm uninstall ​-k --user ​com.dsi.ant.server" # ANTHAL service 
- elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then +adb shell "pm uninstall -k --user 0 com.dsi.ant.service.socket" # ANT Radio Service
- nameImage="​Cover back"​ +
-  +
- else [[ "​${typeImage}"​ == "​Other"​ ]] +
- nameImage="​Other"​ +
-  +
- fi +
-  +
-elif [[ "​${nameImage}"​ == "​${nameImageSave}"​ ]]; then +
- nameImage="​${nameImage}_${numImage}"​ +
-  +
-fi +
-  +
-Sauvegarde du nom de l'​image +
-nameImageSave="​${numImage}"​ +
-((numImage+=1)) +
-  +
-Extraction image du fichier source +
-ffmpeg -y -i "​${iFileIn}"​ -map ${iMapVideo} -an "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ +
-  +
-Image cover pour fichier audio flac +
-if [[ "​${profile}"​ = "Audio FLAC" ]]; then +
- COVER_FLAC +
-  +
-Image cover pour fichier audio vorbis +
-elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then +
- COVER_OGG +
-  +
-Image cover pour fichier audio mp3 +
-elif [[ "${profile}" ​= "Audio mp3" ]]; then +
- COVER_MP3 +
-  +
-Image cover pour fichier audio aac +
-elif [[ "${profile}" ​= "Audio aac" ]]; then +
- COVER_OTHER +
-fi +
-  +
-  +
-echo "=== COVER ===" +
-echo "id: ${id}"​ +
-echo "​typeImage:​ ${typeImage}"​ +
-echo "​nameImage:​ ${nameImage}"​ +
-+
-#=========================================================================================================== +
-function COVER_FLAC() +
-+
-  +
-if [[ "${typeImage}"​ == "Cover (front)"​ ]]; then +
- typeImage="​3"​ +
-  +
-elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then +
- typeImage="​4"​ +
-  +
-  +
-else [[ "​${typeImage}"​ == "​Other"​ ]] +
- typeImage="​0"​ +
-  +
-  +
-  +
-fi +
-  +
-# Ajout de l'​image au fichier audio +
-metaflac ​--import-picture-from="​${typeImage}||${nameImage}||${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dirOut}/​${fileName}.${conteneur}" +
-  +
-+
-#=========================================================================================================== +
-function COVER_OGG(+
-+
-  +
-# Type d'​image (Frontbackother+
-typeImage=$(ffprobe -i  "${i}" -hide_banner ​-v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="|" | awk -F [\|] '{print $2}') +
-  +
-if [[ "${typeImage}"​ == "Cover (front)"​ ]]; then +
- typeImage="​3"​ +
-  +
-elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then +
- typeImage="​4"​ +
-  +
-elif [[ "​${typeImage}"​ == "​Artist/​performer"​ ]]; then +
- typeImage="​8"​ +
-  +
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then +
- typeImage="​0"​  +
-  +
-else +
- typeImage="​3"​ +
-  +
-fi +
-  +
-# Sauvegarde données exsistantes du fichier source +
-vorbiscomment ​--list --raw "​${dirOut}/​out.${conteneur}"​ > "​${dossierTmp}/​fileSaveOgg.txt" +
-  +
-#Suppression image exsistante +
-#sed -i -e '/​^metadata_block_picture/​d'​ "​${dossierTmp}/​fileSaveOgg.txt" +
-  +
-# Metadata_block_picture format +
-#Lien: https://xiph.org/flac/format.html#​metadata_block_picture +
-imageMimeType=$(file ​---mime-type "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​) +
-  +
-printf ​"0: %.8x" "​${typeImage}"​ | xxd --g0 >> "​${dossierTmp}/​dataImage.txt"​ +
-printf "0: %.8x" $(echo -n "​${imageMimeType}"​ | wc -c) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt" +
-echo -n "${imageMimeType}"​ >> "​${dossierTmp}/​dataImage.txt" +
-printf ​"0: %.8x" $(echo ​-n "​${nameImage}"​ | wc -c) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt" +
-echo -n "​${nameImage}"​ >> "​${dossierTmp}/​dataImage.txt" +
-printf "0: %.8x" ​0 | xxd -r -g0  >> ​"${dossierTmp}/​dataImage.txt" +
-printf ​"0: %.8x" 0 | xxd --g0 >> "​${dossierTmp}/​dataImage.txt"​ +
-printf "0: %.8x" 0 | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ +
-printf "0: %.8x" 0 | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt" +
-printf "0%.8x" $(wc -c "​${dossierTmp}/​cover.${codecVideoIn}"​ | cut --delimiter=' ​' --fields=1) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ +
-  +
-#Image file +
-cat "${dossierTmp}/​cover.${codecVideoIn}"​ >> "​${dossierTmp}/​dataImage.txt"​ +
-  +
-echo "​metadata_block_picture=$(base64 ​--wrap=< "​${dossierTmp}/​dataImage.txt"​)"​ >> "​${dossierTmp}/​fileSaveOgg.txt" +
-  +
-#Update vorbis file comments +
-vorbiscomment --write --raw --commentfile ​"${dossierTmp}/​fileSaveOgg.txt" "${dirOut}/​${fileName}.${conteneur}+
-  +
-#Delete temp files +
-rm "${dossierTmp}/​dataImage.txt" +
-rm "​${dossierTmp}/​fileSaveOgg.txt" +
-+
-#=========================================================================================================== +
-function COVER_MP3() +
-+
-if [[ "​${typeImage}"​ == "​Cover ​(front)" ]]; then +
- typeImage="​FRONT_COVER"​ +
-  +
-elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then +
- typeImage="​BACK_COVER"​ +
-  +
-elif [[ "​${typeImage}"​ == "​Artist/performer"​ ]]; then +
- typeImage="ARTIST"​ +
-  +
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then +
- typeImage="​OTHER"​ +
-  +
-else +
- typeImage="​FRONT_COVER"​ +
-  +
-fi +
-  +
-# Ajout de l'​image au fichier audio +
-eyeD3 --add-image="​${dossierTmp}/​${nameImage}.${codecVideoIn}":"​${typeImage}":"​${nameImage}"​ "​${dirOut}/​${fileName}.${conteneur}" +
-+
-#=========================================================================================================== +
-function COVER_OTHER() +
-+
-if [[ "${typeImage}" ​== "Cover \(back\)" ]]; then +
-  +
- # renommage image cover en "cover"​ +
- mv "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dossierTmp}/​cover.${codecVideoIn}" +
-  +
- Ajout de l'​image au fichier audio +
- kid3-cli -c "set picture:"​${dossierTmp}/​cover.${codecVideoIn}"​ ''"​ "​${dirOut}/​${fileName}.${conteneur}" +
-  +
-fi +
-+
-  +
-#=========================================================================================================== +
-function MAIN() +
-+
-# Chargement fichier de configurations +
-"​${fileConfig}"​ +
-  +
-YADMAIN +
-  +
-# Si aucune source sélectionnée +
-if [[ "​${status}" ​-eq "​0"​ ]] && [[ "​${fileIn}"​ == ""​ ]]; then +
- status="​4"​ +
-fi +
-  +
-# YADMAIN Bouton "​Quitter"​ ou "Croix fenêtre"​ +
-if [[ "​${status}" ​-eq "​1"​ ]] || [[ "​${status}" ​-eq "​252"​ ]]; then +
- rm -rf "​${dossierTmp}"​ +
- exit +
-  +
-YADMAIN Bouton "​Configuration par défaut"​ +
-elif [[ "​${status}"​ -eq "​3"​ ]]; then +
- SAVE +
- CONFIGDEFAUT +
- MAIN +
-  +
-YADMAIN Bouton "​Préférences"​ +
-elif [[ "​${status}"​ -eq "​2"​ ]]; then +
- SAVE +
- YADPREFERENCE +
-  +
- YADPREFERENCE Bouton "​Quitter"​ ou "Croix fenêtre"​ +
- if [[ "​${status}" -eq "1" ]] || [[ "​${status}"​ -eq "​252"​ ]]; then +
- rm -rf "​${dossierTmp}"​ +
- exit +
-  +
- YADPREFERENCE Bouton "​Annuler"​ +
- elif [[ "​${status}" ​-eq "​2"​ ]]; then +
- MAIN +
-  +
- # YADPREFERENCE Bouton "​Valider"​ +
- elif [[ "​${status}" -eq "0" ]]; then +
- SAVE +
- #STREAM +
- MAIN +
-  +
- fi +
-  +
-# YADMAIN Bouton "​Source"​ ou aucune source sélectionnée +
-elif [[ "​${status}" -eq "4" ]]; then +
- SAVE +
- YADSOURCE +
-  +
- YADSOURCE Bouton "​Quitter"​ ou "Croix fenêtre"​ +
- if [[ "​${status}" ​-eq "​1"​ ]] || [[ "​${status}" ​-eq "​252"​ ]]; then +
- rm -rf "​${dossierTmp}"​ +
- exit +
-  +
- # YADSOURCE Bouton "​Annuler"​ +
- elif [[ "​${status}" -eq "2" ]]; then +
- MAIN +
-  +
- YADSOURCE choix "​Fichier"​ +
- elif [[ "​${source}"​ == "​Fichier"​ ]]; then +
- YADFILE +
-  +
- YADFILE Bouton "​Quitter"​ ou "Croix fenêtre"​ +
- if [[ "​${status}" -eq "​1"​ ]] || [[ "​${status}" ​-eq "​252"​ ]]; then +
- rm -rf "${dossierTmp}"​ +
- exit +
-  +
- YADFILE Bouton "​Annuler"​ +
- elif [[ "​${status}" -eq "​2"​ ]]; then +
- MAIN +
-  +
- # YADFILE Bouton "​Valider"​ +
- elif [[ "​${status}" ​-eq "0" ​]]; then +
- STREAM +
- MAIN +
- fi +
-  +
- YADSOURCE choix "​DVD"​ +
- elif [[ "​${source}"​ == "​DVD"​ ]]; then +
- echo "​Source DVD à finir"​ +
-  +
- # YADSOURCE choix "​CD"​ +
- elif [[ "​${source}"​ == "​CD"​ ]]; then +
- echo "​Source CD à finir"​ +
-  +
- # YADSOURCE choix "​DDL"​ +
- elif [[ "​${source}"​ == "​DDL"​ ]]; then +
- echo "​Source DDL à finir"​ +
-  +
- fi +
-  +
-# YADMAIN Bouton "​Lancer conversion"​ +
-elif [[ "​${status}" -eq "0" ​]]; then +
- SAVE +
-  +
- Récupération de la valeur TRUE et FALSE depuis YADMAIN et fusion avec les données du fichier stream.txt +
- IFS=$"​|"​ +
- numLine="​4"​ +
- stream=$( +
- while read line; do +
- bol=$(awk 'NR == '​${numLine}'​ {printf "​%s"​ ,$1}' <<<​ "​$(printf "​%s\n"​ ${yadMain} | awk NF)"​) +
- printf "​${bol}${line}\n"​ +
- ((numLine+=1)) +
- done <<<​ $(cat "${dossierTmp}/​stream.txt") | awk -F [\|] '{if ($1 ~ /TRUE/) {print $0}}'​) +
-  +
- SAVE +
- FFMPEG +
- MAIN +
-  +
-fi +
-+
-#=========================================================================================================== +
-CONFIGURATION +
-MAIN+
  
-</code>+################################​ 
 +# Samsung specific system apps # 
 +################################​ 
 +adb shell "cmd package install-existing com.samsung.android.lool"​ # The Setting entry "​Device Care" with battery, storage, memory, and security 
 +adb shell "cmd package install-existing com.samsung.android.app.aodservice"​ # Always-on-Display,​ handles most of the lockscreen 
 +adb shell "cmd package install-existing com.samsung.android.MtpApplication"​ # PC connection doesn'​t work well without this helper utility 
 +adb shell "cmd package install-existing com.wssyncmldm"​ # Software update: doesn'​t check OTA updates without 
 +adb shell "cmd package install-existing com.sec.android.emergencymode.service"​ # EmergencyManagerService,​ linked to the battery'​s "​Maximum power saving"​ mode 
 +adb shell "cmd package install-existing com.sec.android.sdhms"​ # Samsung Device Health Manager Service, most likely linked to "​battery habits"​ analysis 
 + 
 +adb shell "pm uninstall -k --user 0 com.sec.android.cover.ledcover"​ # LED Cover Service 
 + 
 +adb shell "pm uninstall -k --user 0 com.sec.location.nsflp2"​ # Samsung Location SDK 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.location"​ # slocation 
 + 
 +# Maybe Knox-related 
 +adb shell "cmd package install-existing com.samsung.ucs.agent.boot"​ # bootagent, probably linked to "eSE UCS Plugin"​ below, probably required by Knox  
 +adb shell "cmd package install-existing com.samsung.ucs.agent.ese"​ # eSE UCS Plugin, eSE is for "​embedded SEcurity",​ probably required by Knox 
 +adb shell "cmd package install-existing com.samsung.android.smartmirroring"​ # Smart View, for screen mirroring and Chromecast 
 + 
 +##################################################​ 
 +# Samsung user apps, customization,​ and services # 
 +##################################################​ 
 +adb shell "cmd package install-existing com.samsung.android.contacts"​ # Samsung "​Contacts"​ app 
 +adb shell "cmd package install-existing com.sec.android.app.myfiles"​ # My Files, file browser 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.video"​ # Video, the default video player 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.themecenter"​ # Samsung Themes 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.themestore"​ # Galaxy Themes 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.samsungapps"​ # Galaxy Store 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.sbrowser"​ # Samsung Galaxy Browser 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.rubin.app"​ # Customization Service 
 +adb shell "pm uninstall -k --user 0 com.samsung.daydream.customization"​ # Some daydream VR customization capability?​ 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.chromecustomizations"​ # Chrome browser customization 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.scloud"​ # Samsung Cloud 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.mateagent"​ # Samsung Galaxy Friends 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.mobileservice"​ # Samsung Experience Service, handling the Samsung account and experience 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.weather"​ 
 +adb shell "pm uninstall -k --user 0 com.sec.android.daemonapp"​ # Weather 
 + 
 + 
 +# Samsing SmartSwitch 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.smartswitchassistant"​ # Samsung SmartSwitch 
 +adb shell "pm uninstall -k --user 0 com.sec.android.easyMover"​ # Related Smart Switch 
 +adb shell "pm uninstall -k --user 0 com.sec.android.easyMover.Agent"​ # Smart Switch Agent 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.shortcutbackupservice"​ # ShortcutBNR,​ linked to SmartSwitch Samsung Cloud features 
 + 
 +# Equalizers 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.soundalive"​ # SoundAlive, responsible for Dobly Atmos and other equalizer stuff (accessible from the Settings app) 
 +adb shell "pm uninstall -k --user 0 com.sec.hearingadjust"​ # Adapt Sound, the sound equalizer in Accessibility services 
 + 
 +# SmartThings 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.beaconmanager"​ # SmartThings 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.ststub"​ # SmartThings 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.easysetup"​ # SmartThings 
 + 
 +# Samsung Health 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.shealth"​ # Samsung Health 
 +adb shell "pm uninstall -k --user 0 com.sec.android.service.health"​ # Health Service, from Samsung 
 + 
 +# Widgets 
 +adb shell "pm uninstall -k --user 0 com.sec.android.widgetapp.easymodecontactswidget"​ # Favorite Contacts, probably the favourite contacts when enabling the "​simple use" senior mode 
 +adb shell "pm uninstall -k --user 0 com.sec.android.widgetapp.samsungapps"​ # Galaxy Essentials Widget 
 +adb shell "pm uninstall -k --user 0 com.sec.android.widgetapp.webmanual"​ # User manual 
 + 
 +################################################​ 
 +# Mandatory Knox apps, and other security apps # 
 +################################################​ 
 +adb shell "cmd package install-existing com.samsung.android.knox.containeragent"​ # Knox thing that gets re-enabled at update 
 +adb shell "cmd package install-existing com.samsung.android.knox.containercore"​ # Knox thing that gets re-enabled at update 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.knox.analytics.uploader"​ # Knox Analytics Uploader 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.knox.containerdesktop"​ # KnowContainerDesktop 
 +adb shell "pm uninstall -k --user 0 com.knox.vpn.proxyhandler"​ # Samsung'​s Work profile for Entreprise proxy 
 +adb shell "pm uninstall -k --user 0 com.sec.enterprise.knox.attestation"​ # Knox-related 
 +adb shell "pm uninstall -k --user 0 com.sec.enterprise.knox.cloudmdm.smdms"​ # Knox Enrollment Service 
 +adb shell "pm uninstall -k --user 0 com.samsung.knox.securefolder"​ # Secure Folder 
 +adb shell "pm uninstall -k --user 0 com.samsung.knox.securefolder.setuppage"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.klmsagent"​ # KLMS Agent, most likely linked to Knox 
 +adb shell "pm uninstall -k --user 0 com.trustonic.teeservice"​ # TeeService, for Samsung Pay? Trustronic "​Trusted Execution Environment":​ https://​www.trustonic.com/​news/​blog/​devices-trustonic-tee/​ 
 +adb shell "pm uninstall -k --user 0 com.trustonic.tuiservice"​ # TuiService, for Samsung Pay? Trustronic "​Trusted User Interfaces":​ https://​www.trustonic.com/​news/​blog/​devices-trustonic-tee/​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.spay"​ # Samsung Pay 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.spayfw"​ # Samsung PaymentFramework 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.samsungpass"​ # Samsung Pass 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.samsungpassautofill"​ # Autofill with Samsung Pass 
 + 
 +###############################​ 
 +# Samsung camera related apps # 
 +###############################​ 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.camera"​ # Samsung Camera 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.interactivepanoramaviewer"​ # Interactive panorama viewer (taken with the Samsung Camera) 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.motionpanoramaviewer"​ # Motion panorama viewer (taken with the Samsung Camera) 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.selfmotionpanoramaviewer"​ # Self-motion panorama viewer (taken with the Samsung Camera) 
 +adb shell "pm uninstall -k --user 0 com.samsung.app.highlightplayer"​ # Useful for the Video editor 
 +adb shell "pm uninstall -k --user 0 com.samsung.app.slowmotion"​ # Slow-motion viewer, taken with the Samsung Camera 
 +adb shell "pm uninstall -k --user 0 com.sec.android.gallery3d"​ # Samsung Gallery 
 +adb shell "pm uninstall -k --user 0 com.sec.android.mimage.photoretouching"​ # Photo editor 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.provider.stickerprovider"​ # If disabled, the "AR Emoji" button crashed the Camera app 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.vepreload"​ # Video Editor 
 + 
 +# Gallery'​s recognition and identification of content (same "​shared user id") 
 +adb shell "pm uninstall -k --user 0 com.samsung.cmh"​ # CMHProvider (CMHProvider.apk),​ required by the Gallery. Responsible of face recognition in the Gallery 
 +adb shell "pm uninstall -k --user 0 com.samsung.mlp"​ # mlp (MediaLearningPlatform.apk),​ has permissions linked to cmh, and visionintelligence 
 +adb shell "pm uninstall -k --user 0 com.samsung.storyservice"​ # Gallery stories (StoryService.apk),​ creates stories from the user photos and videos 
 +adb shell "pm uninstall -k --user 0 com.samsung.faceservice"​ # (FaceService.apk) 
 +adb shell "pm uninstall -k --user 0 com.samsung.ipservice"​ # (IPService.apk) 
 + 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.camera.sticker.facear.preload"​ # Default live sticker 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.camera.sticker.stamp.preload"​ # Stamps 
 + 
 +################​ 
 +# Samsung Edge # 
 +################​ 
 +adb shell "pm uninstall -k --user 0 com.cnn.mobile.android.phone.edgepanel"​ # CNN edge app 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.appsedge"​ # Apps edge 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.clipboardedge"​ # Clipboard edge 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.cocktailbarservice"​ # Edge screen 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.sbrowseredge"​ # Samsung Internet panel 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.taskedge"​ # Tasks edge 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.service.peoplestripe"​ # People edge 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.widgetapp.yahooedge.finance"​ # Finance, edge widget 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.widgetapp.yahooedge.sport"​ # Sport, edge widget 
 + 
 +#################​ 
 +# Samsung Bixby # 
 +#################​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.spage"​ # Bixby Home 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.settings.bixby"​ # SettingsBixby 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.agent"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.agent.dummy"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.es.globalaction"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.plmsync"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.service"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.voiceinput"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bixby.wakeup"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.svoice"​ # SVoice 
 +adb shell "pm uninstall -k --user 0 com.samsung.svoice.sync"​ # Voice Service, S Voice is the ancestor of Bixby 
 +adb shell "pm uninstall -k --user 0 com.samsung.systemui.bixby"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.systemui.bixby2"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.visionintelligence"​ # Bixby Vision 
 +adb shell "pm uninstall -k --user 0 com.samsung.visionprovider"​ # VisionProvider,​ maybe linked to Bixby? 
 + 
 +###############​ 
 +# Samsung DeX # 
 +###############​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.desktopsystemui"​ # Samsung DeX System UI 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.desktoplauncher"​ # Samsung DeX Home 
 +adb shell "pm uninstall -k --user 0 com.sec.android.desktopcommunity"​ # Samsung DeX community 
 +adb shell "pm uninstall -k --user 0 com.sec.android.desktopmode.uiservice"​ # Samsung DeX 
 + 
 +#######################################​ 
 +# Hidden apps (debug and diagnostics) # 
 +#######################################​ 
 + 
 +# Dialable apps 
 +adb shell "cmd package install-existing com.sec.android.app.factorykeystring"​ # DeviceKeyString (dial *#0283# to open audio LoopbackTest control, dial *#2663# for TSP firmware update) 
 +adb shell "cmd package install-existing com.sec.android.app.hwmoduletest"​ # HwModuleTest,​ a hardware test app (dial *#0*# to open). Fun low-level stuff to see in there 
 +adb shell "cmd package install-existing com.sec.android.app.servicemodeapp"​ # SysDump, low-level debugging and diagnostics tools (dial *#9900# to open) 
 +adb shell "cmd package install-existing com.sec.android.RilServiceModeApp"​ # Service mode RIL, for diagnostics (dial *#0011# for modem connectivity info, *#9090# for diagnostics control) 
 +adb shell "cmd package install-existing com.sec.factory.camera"​ # Camera Test (dial *#34971539# to open CameraFirmware Standard) 
 +adb shell "cmd package install-existing com.sec.usbsettings"​ # USBSettings,​ choose from ADB, MTP, RNDIS, ACM, DM (dial *#0808# to open) 
 +adb shell "pm uninstall -k --user 0 com.sec.factory.iris.usercamera"​ # Camera Iris User Test, the test from the *#0*# menu 
 + 
 +# Other apps 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.networkdiagnostic"​ # Network diagnostic 
 +adb shell "pm uninstall -k --user 0 com.sec.bcservice"​ # Linked to some diagnostics?​ It mentions TcpDump 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.bluetoothtest"​ # BluetoothTest,​ probably a priviledged diagnostics app 
 +adb shell "pm uninstall -k --user 0 com.sec.android.diagmonagent"​ # DiagMonAgent,​ probably diagnostics data collection from Settings > Biometrics and security ​Send diagnostic data 
 +adb shell "pm uninstall -k --user 0 com.sec.factory"​ # DeviceTest 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.wlantest"​ # WlanTest 
 +adb shell "pm uninstall -k --user 0 com.sec.epdgtestapp"​ # EpdgTestApp,​ test app for ePDG functionnality?​ 
 + 
 +################​ 
 +# Game-related # 
 +################​ 
 +adb shell "pm uninstall -k --user 0 com.enhance.gameservice"​  
 +adb shell "pm uninstall -k --user 0 com.samsung.android.game.gamehome"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.game.gametools"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.game.gos"​ # Samsung Game Optimizing Service 
 + 
 +###############​ 
 +# Google apps # 
 +###############​ 
 + 
 +# Visible apps 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.docs"​ # Google Drive 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.maps"​ # Google Maps 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.photos"​ # Google Photos 
 +adb shell "pm uninstall -k --user 0 com.google.android.GoogleCamera"​ # Google Camera 
 +adb shell "pm uninstall -k --user 0 com.google.android.gm"​ # Gmail 
 +adb shell "pm uninstall -k --user 0 com.google.android.videos"​ # Google Movies 
 +adb shell "pm uninstall -k --user 0 com.google.android.youtube"​ # Google'​s YouTube 
 +adb shell "pm uninstall -k --user 0 com.google.android.music"​ # Google Music 
 +# More hidden apps 
 +adb shell "pm uninstall -k --user 0 com.google.ar.core"​ # Google Play Services for AR (Augmented Reality) 
 +adb shell "pm uninstall -k --user 0 com.google.vr.vrcore"​ # Google VR (Virtual Reality) Services 
 +adb shell "pm uninstall -k --user 0 com.google.android.tts"​ # Text-to-speech synthesis 
 +adb shell "pm uninstall -k --user 0 com.android.hotwordenrollment.okgoogle"​ # Enroll for "​OK-Google"​ 
 +adb shell "pm uninstall -k --user 0 com.android.hotwordenrollment.xgoogle"​ # Enroll for something 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.nexuslauncher"​ # Removes the Google launcher 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.restore"​ # Restore data from the cloud or transfer it from another device 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.tachyon"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.backuptransport"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.ext.shared"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.feedback"​ # Market feedback agent 
 +adb shell "pm uninstall -k --user 0 com.google.android.gms.policy_sidecar_aps"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.googlequicksearchbox"​ # The super fat Google app 
 +adb shell "pm uninstall -k --user 0 com.google.android.onetimeinitializer"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.partnersetup"​ 
 +adb shell "pm uninstall -k --user 0 com.google.android.printservice.recommendation"​ # Print Service Recommendation Service 
 +adb shell "pm uninstall -k --user 0 com.google.android.setupwizard"​ # The initial setup wizard, that can pop later to "​finish the setup" with recommended apps 
 +adb shell "pm uninstall -k --user 0 com.google.android.syncadapters.calendar"​ # Google Calendar Sync 
 +adb shell "pm uninstall -k --user 0 com.google.android.syncadapters.contacts"​ # Google Contacts Sync 
 +adb shell "pm uninstall -k --user 0 com.google.android.apps.turbo"​ # Device Health Services 
 + 
 +####################​ 
 +# Third-party apps # 
 +####################​ 
 +#adb shell "pm uninstall -k --user 0 com.skype.raider"​ # Skype 
 +adb shell "pm uninstall -k --user 0 com.linkedin.android"​ # LinkedIn 
 +adb shell "pm uninstall -k --user 0 com.microsoft.office.excel"​ # Microsoft Excel 
 +adb shell "pm uninstall -k --user 0 com.microsoft.office.powerpoint"​ # Microsoft PowerPoint 
 +adb shell "pm uninstall -k --user 0 com.microsoft.office.word"​ # Microsoft Word 
 +adb shell "pm uninstall -k --user 0 com.microsoft.skydrive"​ # Microsoft SkyDrive 
 +adb shell "pm uninstall -k --user 0 de.axelspringer.yana.zeropage"​ # upday 
 +adb shell "pm uninstall -k --user 0 flipboard.boxer.app"​ # Flipboard 
 +adb shell "pm uninstall -k --user 0 com.facebook.appmanager"​ # Facebook 
 +adb shell "pm uninstall -k --user 0 com.facebook.katana"​ # Facebook 
 +adb shell "pm uninstall -k --user 0 com.facebook.services"​ # Facebook 
 +adb shell "pm uninstall -k --user 0 com.facebook.system"​ # Facebook 
 +adb shell "pm uninstall -k --user 0 com.amazon.appmanager"​ 
 + 
 +################​ 
 +# Unclassified # 
 +################​ 
 +adb shell "pm uninstall -k --user 0 package:​com.sec.android.app.fm"​ # Radio FM 
 +adb shell "cmd package install-existing com.android.keychain"​ 
 +adb shell "cmd package install-existing com.android.nfc"​ 
 +adb shell "cmd package install-existing com.android.providers.blockednumber"​ 
 +adb shell "cmd package install-existing com.android.providers.calendar"​ 
 +adb shell "cmd package install-existing com.android.providers.settings"​ 
 +adb shell "cmd package install-existing com.android.proxyhandler"​ 
 +adb shell "cmd package install-existing com.android.settings.intelligence"​ 
 +adb shell "cmd package install-existing com.android.wallpaperbackup"​ 
 +adb shell "cmd package install-existing com.android.wallpapercropper"​ 
 +adb shell "cmd package install-existing com.sec.android.wallpapercropper2"​ # Background image and lock-screen cropping tool 
 +adb shell "cmd package install-existing com.android.wallpaper.livepicker"​ 
 +adb shell "cmd package install-existing com.samsung.android.app.smartcapture"​ 
 +adb shell "cmd package install-existing com.samsung.android.authfw"​ 
 +adb shell "cmd package install-existing com.samsung.android.bio.face.service"​ 
 +adb shell "cmd package install-existing com.samsung.android.mdm"​ 
 +adb shell "cmd package install-existing com.samsung.android.messaging"​ 
 +adb shell "cmd package install-existing com.samsung.android.providers.context"​ 
 +adb shell "cmd package install-existing com.samsung.android.server.iris"​ 
 +adb shell "cmd package install-existing com.samsung.android.wallpaper.res"​ 
 +adb shell "cmd package install-existing com.samsung.sec.android.application.csc"​ 
 +adb shell "cmd package install-existing com.sec.android.app.clockpackage"​ 
 +adb shell "cmd package install-existing com.sec.android.emergencylauncher"​ 
 +adb shell "cmd package install-existing com.sec.android.ofviewer"​ 
 +adb shell "cmd package install-existing com.sec.android.provider.emergencymode"​ 
 +adb shell "cmd package install-existing com.sec.android.providers.security"​ 
 +adb shell "cmd package install-existing com.sec.modem.settings"​ 
 +adb shell "pm uninstall -k --user 0 android.autoinstalls.config.samsung"​ 
 +adb shell "pm uninstall -k --user 0 com.android.backupconfirm"​ 
 +adb shell "pm uninstall -k --user 0 com.android.bips"​ # Default print service 
 +adb shell "pm uninstall -k --user 0 com.android.bluetoothmidiservice"​ 
 +adb shell "pm uninstall -k --user 0 com.android.bookmarkprovider"​ 
 +adb shell "pm uninstall -k --user 0 com.android.calllogbackup"​ 
 +adb shell "pm uninstall -k --user 0 com.android.captiveportallogin"​ 
 +adb shell "pm uninstall -k --user 0 com.android.chrome"​ 
 +adb shell "pm uninstall -k --user 0 com.android.dreams.basic"​ 
 +adb shell "pm uninstall -k --user 0 com.android.dreams.phototable"​ 
 +adb shell "pm uninstall -k --user 0 com.android.egg"​ 
 +adb shell "pm uninstall -k --user 0 com.android.htmlviewer"​ 
 +# adb shell "pm uninstall -k --user 0 com.android.inputdevices"​ # Input devices, only contains a receiver named "​Android keyboard",​ possibly for an external keyboard 
 +adb shell "pm uninstall -k --user 0 com.android.managedprovisioning"​ # Work profile setup 
 +adb shell "pm uninstall -k --user 0 com.android.mms.service"​ # MmsService, no activity but a service, with permissions related to carrier connectivity. For receiving MMS? 
 +adb shell "pm uninstall -k --user 0 com.android.pacprocessor"​ 
 +adb shell "pm uninstall -k --user 0 com.android.printspooler"​ # Print spooler 
 +adb shell "pm uninstall -k --user 0 com.android.providers.partnerbookmarks"​ 
 +# adb shell "pm uninstall -k --user 0 com.android.sharedstoragebackup"​ # One service (ObbBackupService),​ nothing else. No internet access, and might be useful 
 +adb shell "pm uninstall -k --user 0 com.android.statementservice"​ # Intent Filter Verification Service 
 +adb shell "pm uninstall -k --user 0 com.diotek.sec.lookup.dictionary"​ # Dictionary 
 +adb shell "pm uninstall -k --user 0 com.galaxyfirsatlari"​ 
 +adb shell "pm uninstall -k --user 0 com.gd.mobicore.pa"​ 
 +adb shell "pm uninstall -k --user 0 com.mobeam.barcodeService"​ 
 +adb shell "pm uninstall -k --user 0 com.monotype.android.font.chococooky"​ 
 +adb shell "pm uninstall -k --user 0 com.monotype.android.font.cooljazz"​ 
 +adb shell "pm uninstall -k --user 0 com.monotype.android.font.foundation"​ 
 +adb shell "pm uninstall -k --user 0 com.monotype.android.font.rosemary"​ 
 +adb shell "pm uninstall -k --user 0 com.osp.app.signin"​ 
 +adb shell "pm uninstall -k --user 0 com.policydm"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.aasaservice"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.accessory"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.accessory.beansmgr"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.accessory.safiletransfer"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.accesscontrol"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.advsounddetector"​ # Sound detectors 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.assistantmenu"​ # Assistant menu 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.color"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.filterinstaller"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.galaxyfinder"​ # Finder, the "​search in device"​ feature 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.ledcoverdream"​ # LEF icon editor, for LED covers 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.mirrorlink"​ # Samsung MirrorLink 1.1, to connect the phone to a car 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.multiwindow"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.notes"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.omcagent"​ # Configuration update, some activities are very suspicious: "​Recommended apps"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.panel.naver.v"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.reminder"​ # Reminder, does regular network access 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.simplesharing"​ # Link sharing 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.social"​ # What's new 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.talkback"​ # Voice Assistant 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.watchmanager"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.watchmanagerstub"​ # Wearable Manager Installer 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.app.withtv"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.bbc.bbcagent" ​ # BBCAgent 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.calendar"​ # Calendar 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.clipboarduiservice"​ # ClipboardUIService 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.coreapps"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.da.daagent"​ # Dual messenger 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.dlp.service"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.dqagent"​ # DQA (Device Quality Agent), reportedely keeps tabs on Wi-Fi quality throughout the device 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.drivelink.stub"​ # CarmodeStub 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.email.provider"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.emojiupdater"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.fingerprint.service"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.fmm"​ # Find my mobile 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.gearoplugin"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.hmt.vrsvc"​ # Gear VR Service 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.keyguardwallpaperupdator"​ # Keyguard Wallpaper Updator, seems linked to selecting multiple lockscreen wallpapers, features removed in S8 but app stayed 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.kidsinstaller"​ # Kids Home Installer 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.oneconnect"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.provider.shootingmodeprovider"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.samsungpositioning"​ # Samsung Positioning 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.sdk.handwriting"​ # Handwriting Service 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.sdk.professionalaudio.app.audioconnectionservice"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.sdk.professionalaudio.utility.jammonitor"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.securitylogagent"​ 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.smartface"​ # SmartFaceService 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.smartfitting"​ # SmartFittingService
  
 +adb shell "pm uninstall -k --user 0 com.samsung.android.sm.devicesecurity"​ # This is the antivirus in Settings -> Device care -> Security
 +# adb shell "pm uninstall -k --user 0 com.samsung.android.sm.policy"​ # SCPM Client, *might* be used for power savings: https://​www.reddit.com/​r/​GalaxyS6/​comments/​4cg70v/​what_is_scpm_client/​d2ij0ep/​ but performs network requests
 +# adb shell "pm uninstall -k --user 0 com.samsung.android.spdclient"​ # Security policy updates, updates the SELinux policies according to Security Enhancements for Android (SE for Android)
 +# adb shell "pm uninstall -k --user 0 com.samsung.android.spdfnote"​ # Write on PDF
 +adb shell "pm uninstall -k --user 0 com.samsung.android.stickercenter"​ # StickerCenter,​ related to Samsung stickers: https://​developer.samsung.com/​galaxy/​stickers
 +
 +adb shell "pm uninstall -k --user 0 com.samsung.android.svcagent"​ # SVC Agent
 +adb shell "pm uninstall -k --user 0 com.samsung.android.timezone.autoupdate_O"​
 +# adb shell "pm uninstall -k --user 0 com.samsung.android.timezone.data_P"​ # Samsung Time Zone Data
 +# adb shell "pm uninstall -k --user 0 com.samsung.android.timezone.updater"​ # Time Zone Updater
 +adb shell "pm uninstall -k --user 0 com.samsung.android.universalswitch"​ # Universal switch, accessibility feature to control the phone: https://​www.samsung.com/​uk/​accessibility/​mobile-universal-switch/​
 +adb shell "pm uninstall -k --user 0 com.samsung.android.visioncloudagent"​
 +adb shell "pm uninstall -k --user 0 com.samsung.android.voc"​
 +
 +# adb shell "pm uninstall -k --user 0 com.samsung.app.newtrim"​ # Video trimmer
 +adb shell "pm uninstall -k --user 0 com.samsung.clipboardsaveservice"​ # ClipboardSaveService,​ probably the clipboard history sometimes accessible
 +adb shell "pm uninstall -k --user 0 com.samsung.dcmservice"​
 +adb shell "pm uninstall -k --user 0 com.samsung.enhanceservice"​
 +adb shell "pm uninstall -k --user 0 com.samsung.hiddennetworksetting" ​
 +adb shell "pm uninstall -k --user 0 com.samsung.rcs"​ # RcsSettings (Rich Communication Services "​joyn"​),​ has permissions linked to cmh, and visionintelligence:​ https://​en.wikipedia.org/​wiki/​Rich_Communication_Services
 +adb shell "pm uninstall -k --user 0 com.samsung.safetyinformation"​ # Some safety information,​ telling you not to put your phone in you eyes (I'm serious)
 +adb shell "pm uninstall -k --user 0 com.samsung.SMT"​
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.apex"​ # Samsung ApexService,​ provides a Motion Photo player/​viewer
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.applinker"​ # AppLinker, talks about firmware update and FeliCa Networks.
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.billing"​ # Samsung Checkout
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.DataCreate"​ # 
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.magnifier"​ # Magnifier, uses the phone'​s camera
 +# adb shell "pm uninstall -k --user 0 com.sec.android.app.parser"​ # DRParser Mode, maybe linked to IME (Input Method Engine?) Secret Codes
 +# adb shell "pm uninstall -k --user 0 com.sec.android.app.personalization"​ # Perso, related to read/write phone state according to the app's permissions
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.popupcalculator"​
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.quicktool"​ # Quick tools
 +# adb shell "pm uninstall -k --user 0 com.sec.android.app.ringtoneBR"​ # ringtonebackup
 +# adb shell "pm uninstall -k --user 0 com.sec.android.app.safetyassurance"​ # Safety assistance, related to phone-based emergency services. Keep for safety
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.SecSetupWizard" ​
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.setupwizardlegalprovider"​ # SetupWizardLegalProvider
 +
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.suwscriptplayer"​ # SuwScriptPlayer
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.sysscope"​
 +adb shell "pm uninstall -k --user 0 com.sec.android.app.voicenote"​
 +adb shell "pm uninstall -k --user 0 com.sec.android.AutoPreconfig"​
 +# adb shell "pm uninstall -k --user 0 com.sec.android.easyonehand"​ # Probably the shrinked display for a 1-hand use feature
 +adb shell "pm uninstall -k --user 0 com.sec.android.mimage.gear360editor"​ # 360° Photo Editor, the photo editor for the Samsung Gear 360 device
 +adb shell "pm uninstall -k --user 0 com.sec.android.preloadinstaller"​ # Application Installer, the Internet says it's responsible of (re-)installing junk on your mobile
 +adb shell "pm uninstall -k --user 0 com.sec.android.provider.badge"​ # BadgeProvider
 +# adb shell "pm uninstall -k --user 0 com.sec.android.soagent"​ # Software update, works along com.wssyncmldm?​
 +# adb shell "pm uninstall -k --user 0 com.sec.android.splitsound"​ # SplitSoundService,​ probably the capability to play different music on the local device and on a bluetooth speaker ​
 +adb shell "pm uninstall -k --user 0 com.sec.android.uibcvirtualsoftkey"​ # UIBCVirtualSoftkey,​ probably the service to get a software button for accessibility
 +adb shell "pm uninstall -k --user 0 com.sec.app.RilErrorNotifier"​ # RilNotifier
 +adb shell "pm uninstall -k --user 0 com.sec.automation"​ # TetheringAutomation,​ linked to an "​always on tethering"​ option
 +adb shell "pm uninstall -k --user 0 com.sec.downloadablekeystore"​
 +adb shell "pm uninstall -k --user 0 com.sec.enterprise.mdm.services.simpin"​ # Entreprise Sim Pin Service
 +adb shell "pm uninstall -k --user 0 com.sec.enterprise.mdm.vpn"​
 +adb shell "pm uninstall -k --user 0 com.sec.mldapchecker"​ # MLDAPlog
 +adb shell "pm uninstall -k --user 0 com.sec.smartcard.manager"​
 +adb shell "pm uninstall -k --user 0 com.sec.spp.push"​ # Samsung Push Service
 +adb shell "pm uninstall -k --user 0 com.sec.sve"​ # SecVideoEngineService
 +adb shell "pm uninstall -k --user 0 com.sem.factoryapp"​ # SEMFactoryApp
 +adb shell "pm uninstall -k --user 0 com.setk.widget"​
 +adb shell "pm uninstall -k --user 0 com.skms.android.agent"​ # SKMSAgentService,​ Samsung KMS (Key Managment Service?) talks with the eSE device (embedded SEcurity): https://​android-apk.org/​com.skms.android.agent/​
 +# adb shell "pm uninstall -k --user 0 com.wsomacp"​ # Configuration message, linked to OMA (Open Mobile Alliance) CP (Client Provisioning) messages: carrier related, but can cause problems: https://​gbhackers.com/​single-sms-wap-crap-can-break-samsung-galaxy/​
 +adb shell "pm uninstall -k --user 0 com.wssnps"​
 +adb shell "pm uninstall -k --user 0 org.simalliance.openmobileapi.service"​
 +</​code>​
utilisateurs/slyfox/scripts/accueil.1534261113.txt.gz · Dernière modification: 14/08/2018 17:38 par Slyfox

Pied de page des forums

Propulsé par FluxBB