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 [07/09/2019 10:57]
smolski [Installation]
utilisateurs:slyfox:scripts:accueil [07/08/2020 18:25] (Version actuelle)
Slyfox
Ligne 1: Ligne 1:
-====== ​Slymedia ​====== +====== ​Samsung supprimer APK constructeur ​======
- +
-  * Objet : Script Slymedia +
-  * 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à !.]] :-) +
-  * Création par [[user>​Slyfox]] 14.08.2018 +
-  * Suivi : {{tag>À compléter}}  +
- +
-===== Introduction ===== +
-Slymedia est un script (amateur) qui permet de convertir les fichiers vidéo et audio.+
  
 ===== Installation ===== ===== Installation =====
  
-Paquets pour le fonctionne du script:+<code root>apt install android-tools-adb</​code>​
  
-<code root>apt update</​code>​ 
-<code root>apt install aptitude</​code>​ 
-<code root>​aptitude install ffmpeg yad flac vorbis-tools eyed3 kid3-cli</​code>​ 
-<code root>apt upgrade</​code>​ 
-===== Script ===== 
-<note important>​En cours d'​écriture,​ peut fonctionner que partiellement.</​note>​ 
  
-<note tip>​Version du: 17.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: 20180817 +Puis Paramètres système 
-  +Aller dans « À propos ​du téléphone » 
-#​=========================================================================================================== +Tapoter 7 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"​ \ +
-"​${TabYadStream[@]}"​) +
-  +
-# 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 tous les tags et images cover":​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"​ \ +
-"​FALSE"​ "​Fichier avec analyse"​ \ +
-"​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 YADPROGRESS() +
-+
-yad --progress \ +
---title "​SlyEditImage ${version}"​ \ +
---geometry="​550x300"​ \ +
---borders="​25"​ \ +
---auto-close \ +
---auto-kill \ +
---button="​gtk-media-stop:​1"​+
  
-yadStatus="​$?"​ +===== Commandes ​=====
-+
-#=========================================================================================================== +
-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_SIMPLE() +
-+
- +
-[[ -f "​${dossierTmp}/​stream.txt"​ ]] && rm "​${dossierTmp}/​stream.txt"​ +
-TabYadStream=() +
-IFS=$'​\n'​ +
- +
- +
-# Initialisation +
-nbr="​0"​ +
-pourcent="​0"​ +
-timeGo="​$(date +%s)"+
  
-# Nombre de fichier +Lancer adb 
-nbrFichier=$(awk '/./ {print}' ​<<< "​${fileIn}"​ | wc -l)+<code root>adb start-server</code>
  
-# Calcul le pourcent par fichier +Lister les périphériques connectés au pc 
-pourcentFichier=$(echo "​scale=15;​ 100/${nbrFichier}"​ | bc)+<code root>adb devices</code>
  
 +===== Suppression APK =====
  
-for i in ${fileIn}; do+<code user> #! /bin/bash
  
-# Titre et durée 
-#​streamFormat=$(ffprobe -i "​${i}"​ -hide_banner -v quiet -show_entries format=bit_rate -of csv=s="​|"​) 
-#​rateTotal=$(ffmpeg -y -i "​${i}"​ 2>&1 | awk '/​Duration:/​ {printf "​%s\n"​ ,​$(NF-1)}'​) 
    
-Mise en mémoire dans tableau TabYadStream +###########################​ 
-TabYadStream=(${TabYadStream[@]} ​--field="<​b>​TITRE:</​b>​ $(basename ​"${i}"​)":​LBL " ")+# Phone apps and services # 
 +###########################​ 
 +adb shell "cmd package install-existing com.android.stk"​ # SIM toolkit 
 +adb shell "cmd package install-existing com.android.stk2" ​# SIM toolkit ​(maybe for dual-sim devices) 
 +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 icon, a name, and so on) 
 +adb shell "pm uninstall -k --user 0 com.samsung.android.smartcallprovider"​ # The 4th tab in the Phone app for 'local places'​ 
 +adb shell "pm uninstall -k --user 0 com.sec.vsim.ericssonnsds.webapp"​ # NSDSWebApp. The Non Sim Device Solution (NSDS) is linked to VoLTE and VoWifi (Wifi Calling). NSDS allows connecting non sim devices to IMS corehttps://​uk.linkedin.com/​in/​hemant-kumar-dewnarain-2b779679 
 +adb shell "pm uninstall -k --user 0 com.android.cts.ctsshim" ​# Probably linked to accessibility feature "​Captioned Telephone Service. No internet access required 
 +adb shell "pm uninstall -k --user 0 com.android.cts.priv.ctsshim"​ # Probably linked to accessibility feature "​Captioned Telephone Service. No internet access required 
 +adb shell "pm uninstall -k --user 0 com.samsung.crane"​ # Phone, with extended features: share rich data (doodles, location, text messages). Couldn'​t find a way to access it from an official interface 
 +adb shell "pm uninstall -k --user 0 com.hiya.star"​ # Possibly linked to the Phone app "​Caller ID and spam protection service"​ as well as the "​Places"​ feature
  
 +adb shell "cmd package install-existing com.sec.ims"​ # IMS (IP Multimedia Subsystem) is 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)
 +adb shell "cmd package install-existing com.sec.imsservice"​ # IMS Service (see above for IMS)
 +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 gateway) could be linked to WiFi Calling and possible VoLTE: http://​www.oracle.com/​us/​industries/​communications/​wifi-calling-epdg-wp-2874668.pdf
  
 +###############​
 +# System apps #
 +###############​
 +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
 +adb shell "cmd package install-existing com.samsung.android.allshare.service.fileshare"​ # Wi-Fi Direct (bluetooth-wifi sharing of files)
 +adb shell "cmd package install-existing com.samsung.android.allshare.service.mediashare"​ # Nearby service, maybe related to the previous wifi direct fileshare
  
- Nom du fichier +Ant+ wireless technology 
- fileNameExt=$(basename ​"${i}") +adb shell "pm uninstall -k --user 0 com.dsi.ant.plugins.antplus" ​# ANT+ Plugins Service 
- fileName="${fileNameExt%.*}"+adb shell "pm uninstall -k --user 0 com.dsi.ant.sample.acquirechannels" ​# ANT + DUT 
 +adb shell "pm uninstall -k --user 0 com.dsi.ant.server"​ # ANT+ HAL service 
 +adb shell "pm uninstall -k --user 0 com.dsi.ant.service.socket"​ # ANT Radio Service
  
- Envoi données vers YADPROGRESS +################################​ 
- pourcent=$(echo ​"scale=15; (${pourcent}+${pourcentFichier})" ​| bc) +# 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
  
- ((nbr+=1))+adb shell "pm uninstall -k --user 0 com.sec.android.cover.ledcover"​ # LED Cover Service
  
- # Calcul temps restant +adb shell "pm uninstall ​---user 0 com.sec.location.nsflp2" ​# Samsung Location SDK 
- timeT="​$(date +%s)"​ +adb shell "pm uninstall ​---user 0 com.samsung.android.location" ​# slocation
- timeRemainingS=$(echo ​"scale=15; ((${timeT}-${timeGo})*${nbrFichier}/​${nbr})-(${timeT}-${timeGo})"​ | bc | awk -F"." ​'​{print $1}') +
- timeRemainingHMS=$(date +%T -d "0000-01-01 ${timeRemainingS} seconds")+
  
- Envoi données à YADPROGRESS +Maybe Knox-related 
- echo  ​"${pourcent}+adb shell "cmd package install-existing com.samsung.ucs.agent.boot" ​# bootagent, probably linked to "eSE UCS Plugin"​ below, probably required by Knox  
- echo -"\n#Chargement ${nbr} fichiers sur ${nbrFichier} ​Temps restant environ: ${timeRemainingHMS}"+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
  
-done+# 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
  
-for i in "${TabYadStream[@]}"; do +################​ 
- echo "$i" ​>>"${dossierTmp}/​yadStream.txt+# Samsung Edge # 
-done +################​ 
-+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 
-function STREAM() +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 
-[[ -"${dossierTmp}/​stream.txt" ​]] && rm "${dossierTmp}/​stream.txt+adb shell "pm uninstall ​-k --user 0 com.samsung.android.app.sbrowseredge" ​# Samsung Internet panel 
-touch "${dossierTmp}/​yadStream.txt+adb shell "pm uninstall -k --user 0 com.samsung.android.app.taskedge" ​# Tasks edge 
-TabYadStream=()+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
  
-Initialisation +#################​ 
-nbr="​0"​ +# Samsung Bixby # 
-pourcent="​0"​ +#################​ 
-timeGo="$(date +%s)"+adb shell "pm uninstall -k --user ​com.samsung.android.app.spage" ​# Bixby Home 
 +adb shell "pm uninstall -k --user ​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?
  
-Nombre de fichier +###############​ 
-nbrFichier=$(awk '/./ {print}'​ <<< ​"${fileIn}" ​| wc -l)+# 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
  
-Calcul le pourcent par fichier +#######################################​ 
-pourcentFichier=$(echo "​scale=15;​ 100/​${nbrFichier}"​ | bc)+# Hidden apps (debug and diagnostics
 +#######################################​
  
-IFS=$'​\n'​+# 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
  
-for iFileIn in ${fileIn}; do +# Other apps 
- STREAMTITLE +adb shell "pm uninstall -k --user 0 com.samsung.android.networkdiagnostic"​ # Network diagnostic 
- STREAMVIDEO +adb shell "pm uninstall -k --user 0 com.sec.bcservice"​ # Linked to some diagnostics?​ It mentions TcpDump 
- STREAMAUDIO +adb shell "pm uninstall -k --user 0 com.sec.android.app.bluetoothtest"​ # BluetoothTest,​ probably a priviledged diagnostics app 
- STREAMSUBTITLE +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 ​---user 0 com.sec.factory" ​# DeviceTest 
- TabYadStream+=( ​--field=" ":LBL " ")+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?​
  
- Nom du fichier +################​ 
- fileNameExt=$(basename ​"${iFileIn}") +# Game-related # 
- fileName="${fileNameExt%.*}"+################​ 
 +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
  
- Envoi données vers YADPROGRESS +###############​ 
- pourcent=$(echo "​scale=15;​ (${pourcent}+${pourcentFichier})"​ | bc) +# Google apps # 
 +###############​
  
- ((nbr+=1))+# 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 RealityServices 
 +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
  
- Calcul temps restant +####################​ 
- timeT="$(date +%s)+# Third-party apps # 
- timeRemainingS=$(echo ​"scale=15; ((${timeT}-${timeGo})*${nbrFichier}/​${nbr})-(${timeT}-${timeGo})" ​| bc | awk -F"​." ​'​{print $1}') +####################​ 
- timeRemainingHMS=$(date +%T -"0000-01-01 ${timeRemainingS} seconds")+#adb shell "pm uninstall -k --user 0 com.skype.raider" ​# Skype 
 +adb shell "pm uninstall ​---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 ​---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"
  
- Envoi données à YADPROGRESS +################​ 
- echo  "​${pourcent}"​ +Unclassified ​
- echo -e "\n#Analyse ${nbr} fichiers sur ${nbrFichier} - Temps restant environ: ${timeRemainingHMS}"​ +################​ 
-done  +adb shell "pm uninstall ​---user 0 package:​com.sec.android.app.fm" ​# Radio FM 
- +adb shell "cmd package install-existing com.android.keychain
-for i in "​${TabYadStream[@]}";​ do +adb shell "cmd package install-existing com.android.nfc
- echo "​$i"​ >>"​${dossierTmp}/​yadStream.txt"​ +adb shell "cmd package install-existing com.android.providers.blockednumber
-done +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
-function STREAMTITLE() +adb shell "cmd package install-existing com.android.settings.intelligence
-{ +adb shell "cmd package install-existing com.android.wallpaperbackup
-Titre et durée +adb shell "cmd package install-existing com.android.wallpapercropper
-streamFormat=$(ffprobe -i "​${iFileIn}" -hide_banner ​-v quiet -show_entries format=duration,​bit_rate -of csv=s="|"+adb shell "cmd package install-existing com.sec.android.wallpapercropper2" # Background ​image and lock-screen cropping tool 
-durationS=$(awk ​-F [\|] '​{print $2}' <<< ​"${streamFormat}"​) +adb shell "cmd package install-existing com.android.wallpaper.livepicker
-durationHMS=$(date +%T -d "0000-01-01 ${durationS} seconds") +adb shell "cmd package install-existing com.samsung.android.app.smartcapture" 
-rateTotal=$(awk ​-F [\|] '​{printf ​"%d kb/s" ,​($3/​1000)}'​ <<<​ "​${streamFormat}"​) +adb shell "cmd package install-existing com.samsung.android.authfw
-  +adb shell "cmd package install-existing com.samsung.android.bio.face.service
-# Mise en mémoire dans tableau TabYadStream +adb shell "cmd package install-existing com.samsung.android.mdm
-TabYadStream+=( --field="<​b>​TITRE:​ $(basename "​${iFileIn}"​) ​${durationHMS} - ${rateTotal}</​b>​":LBL " ") +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
-function STREAMVIDEO() +adb shell "cmd package install-existing com.samsung.android.wallpaper.res" 
-+adb shell "cmd package install-existing com.samsung.sec.android.application.csc
-while read line; do +adb shell "cmd package install-existing com.sec.android.app.clockpackage
-  +adb shell "cmd package install-existing com.sec.android.emergencylauncher
- index=$(awk -F [\|] '​{print $2}' <<< ​"${line}"​) +adb shell "cmd package install-existing com.sec.android.ofviewer
- codec=$(awk ​-F [\|] '​{print $3}' <<< ​"${line}"​) +adb shell "cmd package install-existing com.sec.android.provider.emergencymode
- width=$(awk -F [\|] '​{print $4}' <<< ​"${line}"​) +adb shell "cmd package install-existing com.sec.android.providers.security
- height=$(awk ​-F [\|] '​{print $5}' <<< ​"${line}"​) +adb shell "cmd package install-existing com.sec.modem.settings
- fps1=$(awk -F [\|] '​{print $6}' <<< ​"${line}"​ | awk -F [\/] '​{print $1}'​) +adb shell "pm uninstall -k --user ​android.autoinstalls.config.samsung
- fps2=$(awk -F [\|] '​{print $6}' <<< ​"${line}"​ | awk -F [\/] '​{print $2}'​) +adb shell "pm uninstall ​---user com.android.backupconfirm
-  +adb shell "pm uninstall ​---user 0 com.android.bips" # Default ​print service 
- # Vérifiction si fps1 et fps2 sont des valeurs numériques +adb shell "pm uninstall ​-k --user 0 com.android.bluetoothmidiservice
-  +adb shell "pm uninstall -k --user ​com.android.bookmarkprovider
- if [[ "${fps1}"​ = +([0-9]) ]] && [[ "${fps2}"​ = +([0-9]) ]]; then +adb shell "pm uninstall ​---user com.android.calllogbackup
- fps=$(echo "​${fps1} / ${fps2}" ​| bc -l | awk '​{printf "%.3f" ​,​$1}'​) +adb shell "pm uninstall ​---user 0 com.android.captiveportallogin
-  +adb shell "pm uninstall -k --user 0 com.android.chrome
- elif [[ "${fps1}"​ = +([0-9]) ]] && [[ "${fps2}"​ != +([0-9]) ]]; then +adb shell "pm uninstall ​---user 0 com.android.dreams.basic
- fps=$(awk '​{printf "​%d"​ ,$1}' <<<​ "​${fps1}"​) +adb shell "pm uninstall ​---user 0 com.android.dreams.phototable
-  +adb shell "pm uninstall ​---user 0 com.android.egg
- else +adb shell "pm uninstall ​---user 0 com.android.htmlviewer
- fps="​N/​A"​ +adb shell "pm uninstall -k --user 0 com.android.inputdevices" # Input devices, only contains a receiver named "Android keyboard", possibly for an external keyboard 
- fi +adb shell "pm uninstall ​---user 0 com.android.managedprovisioning"​ # Work profile setup 
-  +adb shell "pm uninstall ​---user 0 com.android.mms.service" ​MmsService, no activity but a service, with permissions related to carrier connectivity. For receiving MMS? 
- Type d'image (Front, back, other) +adb shell "pm uninstall ​---user 0 com.android.pacprocessor"​ 
- if [[ "${codec}"​ == "​mjpeg"​ ]] || [[ "​${codec}"​ == "​png"​ ]]; then +adb shell "pm uninstall ​---user 0 com.android.printspooler" # Print spooler 
-  +adb shell "pm uninstall ​---user com.android.providers.partnerbookmarks
- # Recherche map depuis numéro id +adb shell "pm uninstall ​---user com.android.sharedstoragebackup" # One service ​(ObbBackupService), nothing ​else. No internet access, and might be useful 
- id=$(awk ​-F [\:] '​{print $2}' <<< ​"0:​${index}"​) +adb shell "pm uninstall ​---user 0 com.android.statementservice"​ # Intent Filter Verification Service 
- typeImage=$(ffprobe -i  "${i}" -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="|" ​| awk -F [\|] '​{print $2}'​) +adb shell "pm uninstall ​---user 0 com.diotek.sec.lookup.dictionary" # Dictionary 
-  +adb shell "pm uninstall -k --user 0 com.galaxyfirsatlari
-  +adb shell "pm uninstall ​---user 0 com.gd.mobicore.pa
- # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau TabYadStream) +adb shell "pm uninstall ​---user 0 com.mobeam.barcodeService
- if [[ "${index}"​ != ""​ ]]; then +adb shell "pm uninstall ​---user 0 com.monotype.android.font.chococooky
- printf ​"|${iFileIn}|0:​${index}|VIDEO|${typeImage}|${codec}|${width}|${height}\n"​ >> "​${dossierTmp}/​stream.txt+adb shell "pm uninstall ​---user 0 com.monotype.android.font.cooljazz" 
- TabYadStream+=( ​--field="0:${index} | VIDEO |${typeImage} ${codec} ${width}x${height}":​CHK "​TRUE"​) +adb shell "pm uninstall ​---user 0 com.monotype.android.font.foundation
- fi +adb shell "pm uninstall ​---user 0 com.monotype.android.font.rosemary
-  +adb shell "pm uninstall ​-k --user 0 com.osp.app.signin
- else +adb shell "pm uninstall ​---user 0 com.policydm
-  +adb shell "pm uninstall ​---user com.samsung.aasaservice
- # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau TabYadStream) +adb shell "pm uninstall ​---user 0 com.samsung.accessory
- if [[ "${index}" ​!= ""​ ]]; then +adb shell "pm uninstall ​---user 0 com.samsung.accessory.beansmgr
- printf ​"|${iFileIn}|0:​${index}|VIDEO|${codec}|${width}|${height}|${fps}\n"​ >> "​${dossierTmp}/​stream.txt+adb shell "pm uninstall ​---user 0 com.samsung.accessory.safiletransfer" 
- TabYadStream+=( ​--field="0:${index} | VIDEO |${codec} ${width}x${height} ${fps} fps":​CHK "​TRUE"​) +adb shell "pm uninstall ​---user 0 com.samsung.android.app.accesscontrol" 
- fi +adb shell "pm uninstall ​---user 0 com.samsung.android.app.advsounddetector" # Sound detectors 
- fi +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
-done <<<​ $(ffprobe -i  "​${iFileIn}" -hide_banner -v quiet -select_streams v -show_entries stream=index,​codec_name,​width,​height,​r_frame_rate -of csv=s="|"+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 ​---user com.samsung.android.app.ledcoverdream" # LEF icon editor, for LED covers 
-function STREAMAUDIO() +adb shell "pm uninstall ​---user 0 com.samsung.android.app.mirrorlink" # Samsung MirrorLink 1.1to connect the phone to a car 
-+adb shell "pm uninstall ​---user 0 com.samsung.android.app.multiwindow
-while read line; do +adb shell "pm uninstall ​---user 0 com.samsung.android.app.notes
- +adb shell "pm uninstall ​---user 0 com.samsung.android.app.omcagent" # Configuration update, some activities are very suspicious: "Recommended apps
- index=$(awk ​-F [\|] '​{print $2}' <<< ​"${line}"​) +adb shell "pm uninstall -k --user 0 com.samsung.android.app.panel.naver.v
- codec=$(awk -F [\|] '​{print $3}' <<< ​"${line}"​) +adb shell "pm uninstall ​---user 0 com.samsung.android.app.reminder" # Reminderdoes regular network access 
- rate=$(awk ​-F [\|] '​{print $4}' <<< ​"${line}"​) +adb shell "pm uninstall ​---user com.samsung.android.app.simplesharing" ​# Link sharing 
- channelOut=$(awk -F [\|] '​{print $5}' <<< ​"${line}"​) +adb shell "pm uninstall ​---user 0 com.samsung.android.app.social" # What's new 
- lang=$(awk ​-F [\|] '​{print $NF}' <<< ​"${line}"​) +adb shell "pm uninstall ​---user 0 com.samsung.android.app.talkback" ​Voice Assistant 
- +adb shell "pm uninstall ​---user com.samsung.android.app.watchmanager
- LANGUE +adb shell "pm uninstall ​---user 0 com.samsung.android.app.watchmanagerstub" ​# Wearable Manager Installer 
- +adb shell "pm uninstall ​---user 0 com.samsung.android.app.withtv
- # Affectation TRUE ou FALSE +adb shell "pm uninstall ​---user com.samsung.android.bbc.bbcagent" ​ # BBCAgent 
- if [[ "${language}"​ == "​${langAudio}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langAudio}"​ == "​Toutes les langues" ​]]; then +adb shell "pm uninstall ​---user 0 com.samsung.android.calendar" ​# Calendar 
- bol="TRUE+adb shell "pm uninstall ​---user 0 com.samsung.android.clipboarduiservice" # ClipboardUIService 
- +adb shell "pm uninstall -k --user 0 com.samsung.android.coreapps
- else +adb shell "pm uninstall ​---user com.samsung.android.da.daagent" # Dual messenger 
- bol="FALSE+adb shell "pm uninstall ​---user 0 com.samsung.android.dlp.service
- fi +adb shell "pm uninstall ​---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 
- # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau TabYadStream) +adb shell "pm uninstall -k --user 0 com.samsung.android.email.provider
- if [[ "${index}" ​!= ""​ ]]; then +adb shell "pm uninstall ​-k --user ​com.samsung.android.emojiupdater
- printf ​"|${iFileIn}|0:​${index}|AUDIO|${codec}|${language}|${languageISO}|${rate}|${channelOut}|\n"​ >> "​${dossierTmp}/​stream.txt+adb shell "pm uninstall ​---user 0 com.samsung.android.fingerprint.service
- TabYadStream+=( ​--field="​0:${index}| AUDIO | ${language} ${codec} ${rate} Hz ${channelOut}":CHK "​${bol}"​) +adb shell "pm uninstall ​---user 0 com.samsung.android.fmm" # Find my mobile 
- fi +adb shell "pm uninstall ​---user 0 com.samsung.android.gearoplugin
- +adb shell "pm uninstall -k --user com.samsung.android.hmt.vrsvc" # Gear VR Service 
-done <<<​ $(ffprobe -i  "​${iFileIn}" -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="|")  +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 ​---user 0 com.samsung.android.kidsinstaller" # Kids Home Installer 
-#=========================================================================================================== +adb shell "pm uninstall ​---user 0 com.samsung.android.oneconnect
-function STREAMSUBTITLE() +adb shell "pm uninstall ​---user 0 com.samsung.android.provider.shootingmodeprovider
-+adb shell "pm uninstall -k --user com.samsung.android.samsungpositioning" # Samsung Positioning 
-while read line; do +adb shell "pm uninstall -k --user 0 com.samsung.android.sdk.handwriting" # Handwriting Service 
-  +adb shell "pm uninstall ​---user 0 com.samsung.android.sdk.professionalaudio.app.audioconnectionservice
- index=$(awk -F [\|] '{print $2}' <<<​ "​${line}"​) +adb shell "pm uninstall ​---user com.samsung.android.sdk.professionalaudio.utility.jammonitor
- codec=$(awk -F [\|] '​{print $3}' <<< ​"${line}"​) +adb shell "pm uninstall -k --user 0 com.samsung.android.securitylogagent
- lang=$(awk ​-F [\|] '​{print $NF}' <<< ​"${line}"​) +adb shell "pm uninstall -k --user com.samsung.android.smartface" # SmartFaceService 
-  +adb shell "pm uninstall ​-k --user ​com.samsung.android.smartfitting" # SmartFittingService
- 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 TabYadStream) +
-  +
- if [[ "​${index}"​ != ""​ ]]; then  +
- printf "​|${iFileIn}|0:​${index}|SUBTITLE|${codec}|${language}|${languageISO}|\n"​ >> "​${dossierTmp}/​stream.txt+
- TabYadStream+=( ​--field="​0:${index} | SUBTITLE | ${language} ${codec}":CHK "​${bol}"​) +
- fi +
-  +
-done <<<​ $(ffprobe -i  "​${iFileIn}" -hide_banner ​-v quiet -select_streams s -show_entries stream=index,​codec_name -show_entries stream_tags=language -of csv=s="|") +
-+
-#​=========================================================================================================== +
-  +
-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 160k) +
- 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 2) +
- qAudio2=(-q:a 1.5) +
- qAudio3=(-q:a 1) +
- qAudio4=(-q:​a ​0.7) +
- qAudio5=(-q:​a 0.2) +
-  +
- elif [[ "${typeRate}"​ == "​CBR"​ ]]; then +
- qAudio1=(-b:​a 320k) +
- qAudio2=(-b:​a 256k) +
- qAudio3=(-b:​a 160k) +
- 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 1) +
- qAudio3=(-q:a 4) +
- qAudio4=(-q:​a 7) +
- qAudio5=(-q:​a 9) +
-  +
- elif [[ "${typeRate}"​ == "​CBR"​ ]]; then +
- qAudio1=(-b:a 320k) +
- qAudio2=(-b:a 256k) +
- qAudio3=(-b:a 160k) +
- qAudio4=(-b:​a 128k) +
- qAudio5=(-b:​a 64k) +
- fi +
-fi +
-+
-function FFMPEG_SIMPLE +
-+
- +
- +
- +
-IFS=$'​\n'​ +
-  +
-for iFileIn in ${fileIn}; do +
- +
- # Initialisation commandes +
- cdeVideo=() +
- cdeAudio=() +
- cdeSub=() +
-  +
- # Nom fichier source +
- fileNameExtension=$(basename "​${iFileIn}"​) +
- fileName="​${fileNameExtension%.*}" +
- extension="​${fileNameExtension##​*.}" +
- +
- +
- +
- STREAMAUDIO +
- +
- +
-cat "​${dossierTmp}/​stream.txt" +
- +
- +
-exit +
- +
- +
- +
- +
-  +
- +
-done +
-+
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
-#=========================================================================================================== +
-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 ​-v iFileIn="​${iFileIn}" ​-v iMapAudio="​${iMapAudio}" ​-F [\|] '{if ($4 == "VIDEO" && $2 == iFileIn) {printf "​%s"​ ,$3}}' <<<​ "​${stream}"​) +
- mapAudio=$(awk -v iFileIn="​${iFileIn}" -v iMapAudio="​${iMapAudio}" ​-F [\|] '{if ($4 == "AUDIO" && $2 == iFileIn) {printf "​%s"​ ,$3}}' <<<​ "​${stream}"​) +
- mapSub=$(awk -v iFileIn="​${iFileIn}" -v iMapAudio="​${iMapAudio}" ​-F [\|] '{if ($4 == "SUBTITLE"​ && $2 == iFileIn) {printf "​%s"​ ,$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[@]}" ​-t 10 "​${dirOut}/​${fileName}.${conteneur}"​ +
- ffmpeg ​-i "​${dirOut}/​${fileName}.${conteneur}" ​## TEST ## +
- +
- echo "​=============================================="​ +
- echo "ffmpeg ​--i ${iFileIn} ${cdeMetadata[@]} ${cdeVideo[@]} ${cdeAudio[@]} ​-t 10 ${dirOut}/​${fileName}.${conteneur} +
- rateTotal: ${rateTotal}" ​## TEST ## +
- echo "=============================================="​ +
- +
- # 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 ​-v iFileIn="​${iFileIn}" ​-v iMapVideo="​${iMapVideo}" ​-F [\|] '{if ($4 == "VIDEO" && $2 == iFileIn && $3 == iMapVideo){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 +
-+
- +
-#​=========================================================================================================== +
-function FFMPEG_AUDIO() +
-+
-numAudio="​0" +
- +
- +
-  +
-for iMapAudio in ${mapAudio};​ do +
-  +
- codecAudioIn=$(awk -v iFileIn="​${iFileIn}" -v iMapAudio="​${iMapAudio}" ​-F [\|] '{ +
-  +
- if ($4 == "​AUDIO"​ && $2 == iFileIn && $3 == iMapAudio) +
- {printf "​%s ​%s" ​,​$5,​iFileIn} +
-  +
- }' <<< ​"${stream}"​) +
- +
- languageISO=$(awk ​-v iFileIn="​${iFileIn}" ​-v iMapAudio="​${iMapAudio}" ​-F [\|] '{ +
-  +
- if ($4 == "AUDIO" && $2 == iFileIn && $3 == iMapAudio) +
- {printf ​"%s" ,$7} +
-  +
- }' <<<​ "​${stream}"​) +
-  +
- PROFIL +
- QUALITY_AUDIO +
-  +
- 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 ​-"${iFileIn}" -hide_banner ​-v quiet -show_entries format=bit_rate -of csv=s="|" | awk -F [\|] '​{printf "​%d\n"​ ,​($2/​1000)}'​) +
- +
-Commande selon la qualité +
-if [[ "​${cAudio}"​ = "​copy"​ ]] || [[ "​${cAudio}"​ == "​flac"​ ]]; then +
- cdeQualityAudio=() +
-  +
-elif [[ "​${quality}"​ == "​Excellente"​ ]]; then +
- +
- if [[ "​${rateTotal}" -gt "​320"​ ]]; then +
- cdeQualityAudio=(${qAudio1[@]}) +
-  +
- elif [[ "​${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
- else +
- cdeQualityAudio=(-b:​a "​${rateTotal}k") +
- fi +
- +
-elif [[ "​${quality}"​ == "​Elevée"​ ]]; then +
-  +
- if [[ "​${rateTotal}" ​-gt "256" ]]; then +
- cdeQualityAudio=(${qAudio2[@]}) +
- +
- elif [[ "${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
- else +
- cdeQualityAudio=(-b:a "​${rateTotal}k") +
- fi +
-  +
-elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then +
- if [[ "​${rateTotal}" ​-gt "192" ]]; then +
- cdeQualityAudio=(${qAudio3[@]}) +
-  +
- elif [[ "${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
- else +
- cdeQualityAudio=(-b:a "​${rateTotal}k") +
- fi +
- +
-elif [[ "​${quality}"​ == "​Minimum"​ ]]; then +
- if [[ "​${rateTotal}" ​-gt "128" ]]; then +
- cdeQualityAudio=(${qAudio4[@]}) +
-  +
- elif [[ "${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
- else +
- cdeQualityAudio=(-b:a "​${rateTotal}k") +
- fi +
- +
-elif [[ "​${quality}"​ == "​Faible"​ ]]; then +
- if [[ "​${rateTotal}" ​-gt "​64"​ ]]; then +
- cdeQualityAudio=(${qAudio5[@]}) +
-  +
- elif [[ "​${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then +
- cAudio="​copy"​ +
- cdeQualityAudio=() +
-  +
- else +
- cdeQualityAudio=(-b:a "​${rateTotal}k"​) +
- fi +
-fi +
- +
- 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 +
-nbrCopie="​1"​ +
-  +
-while [[ -f "​${dirOut}/​${fileName}.${conteneur}"​ ]]; do +
- fileName=$(awk '​{gsub(/ ​copie.*/, ""​);​ printf "​%s ​copie '​$nbrCopie'"​ ,$0}' <<< ​"${fileName}"​) +
- ((nbrCopie+=1)) +
-done +
-+
-#=========================================================================================================== +
-function COVER() +
-+
-# Si codecVideoIn = mjpeg --> jpeg +
-[[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] && codecVideoIn="​jpeg"​ +
-  +
-# Recherche numéro id depuis la map +
-id=$(awk ​-F [\:] '​{print $2}' <<< ​"${iMapVideo}"​) +
-  +
-Type d'​image (Frontback, other) +
-typeImage=$(ffprobe -i  "${i}" -hide_banner ​-v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="|" | awk -F [\|] '​{print $2}') +
-  +
-# 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}') +
-  +
-if [[ "${nameImage}"​ == ""​ ]]; then  +
- #​nameImage="​cover_${typeImage}"​ +
-  +
-  +
- if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then +
- nameImage="​Cover front"​ +
-  +
- elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then +
- 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 ​--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 (Frontback, other) +
-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 --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 -r -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 --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 +
- 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 avec analyse"​ +
- elif [[ "​${source}"​ == "​Fichier avec analyse"​ ]]; then +
- YADFILE +
- +
- # Si dossier selectionner,​ liste les fichiers contenu du dossier +
- [[ -"${fileIn}"​ ]] && fileIn=$(ls "​${fileIn}"/​*) +
-  +
- # 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 | YADPROGRESS +
- +
- IFS=$'​\n'​ +
- TabYadStream=($(cat "​${dossierTmp}/​yadStream.txt"​)) +
- rm "​${dossierTmp}/​yadStream.txt" +
-  +
- MAIN +
- fi +
-  +
- YADSOURCE choix "​Fichier"​ +
- elif [[ "${source}"​ == "​Fichier"​ ]]; then +
- YADFILE +
- +
- # Si dossier selectionner,​ liste les fichiers contenu du dossier +
- [[ -"${fileIn}"​ ]] && fileIn=$(ls "​${fileIn}"/​*) +
-  +
- 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_SIMPLE | YADPROGRESS +
- +
- IFS=$'​\n'​ +
- TabYadStream=($(cat "​${dossierTmp}/​yadStream.txt")) +
- rm "${dossierTmp}/​yadStream.txt+
-  +
- 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 +
- +
- if [[ "​${source}"​ == "​Fichier avec analyse"​ ]]; then +
- # Récupération de la valeur TRUE et FALSE depuis YADMAIN et fusion avec les données du fichier stream.txt +
- IFS=$"​|"​ +
- numLine="​4" # Ligne 4 première ligne avec valeur TRUE ou FALSE +
- 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 +
- +
- elif [[ "​${source}"​ == "​Fichier"​ ]]; then +
- +
- SAVE +
- FFMPEG_SIMPLE +
- MAIN +
- fi +
-fi +
-+
-#​=========================================================================================================== +
-CONFIGURATION +
- +
-#​fileIn="/​home/​$USER/​Bureau/​0in.m4a" ## TEST +
-#STREAM ## TEST +
- +
-MAIN+
  
 +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>​ </​code>​
- 
utilisateurs/slyfox/scripts/accueil.1567846672.txt.gz · Dernière modification: 07/09/2019 10:57 par smolski

Pied de page des forums

Propulsé par FluxBB