0 votes

Comment écrire un script qui supprime un certain ensemble d'applications à chaque fois que vous flashez un fichier de mise à jour ?

Je dirige un appareil LineageOS avec MicroG, mais comme l'application de messagerie par défaut ne peut pas être désactivée, je dois la supprimer à chaque fois que je flashe un fichier de mise à jour. Cela devient de plus en plus fastidieux à mesure que le nombre d'apps que je dois supprimer lors de la mise à jour augmente.

Comment écrire un script qui supprime ces applications à chaque flash pour que les changements de suppression persistent ? Quelque chose comme addon.d mais qui sert à sauvegarder les applications.

Edit : Les deux réponses sont correctes, celle que j'ai postée et celle de Death Mask Salesman. J'ai accepté celle de Death Mask Salesman car elle est pertinente pour la question, mais celle que j'ai postée a résolu mon problème.

1voto

Deviprasad Das Points 1140

J'ai essayé pm disable <app> , pm hide <app> y pm block <app> - mais ils crachent tous des messages d'erreur. Mais quand j'ai essayé pm disable-user <app> ça marche ! Et les changements persistent après le reflash, donc c'est génial ! Je n'ai pas besoin d'écrire un script après tout !

0voto

Grimoire Points 2908

En alternative à l'autre réponse, j'apporte une approche plus définitive, basée sur addon.d et ciblé sur la suppression des applications du système.

N'oubliez pas que, contrairement à l pm Les applications supprimées avec cette approche ne peuvent être récupérées qu'en commentant les lignes appropriées du script de déblocage et en appliquant à nouveau la mise à jour OTA.


Introduction

Tout script shell dans le répertoire /system/addon.d est exécuté juste après l'application d'une mise à jour OTA. L'ordre d'exécution dépend de l'entier qui figure au début du nom d'un fichier, car les scripts sont évalués dans un ordre croissant.


Le code

La suppression d'une application système consiste simplement à émettre rm -rf sur le répertoire parent de l'application. Nous pouvons donc écrire un script pour que ces suppressions soient effectuées de manière transparente après chaque mise à jour.

Si, par exemple, nous voulons supprimer l'action Email notre script ressemblera à

#!/sbin/sh

rm -rf "/system/app/Email"

Ici, le #!/sbin/sh est une ligne obligatoire qui indique à TWRP le programme qui évaluera le script. Ne la supprimez pas.

rm -rf est une commande utilisée pour supprimer de force tout ce qui la suit de manière récursive. Ainsi, rm -rf "/system/app/Email" supprime le /system/app/Email et tout ce qu'il contient, supprimant ainsi complètement l'application Email.

Pour ajouter d'autres applications à la liste, il suffit d'ajouter "more". rm -rf comme dans l'exemple, en remplaçant /system/app/Email avec le chemin de l'application que vous voulez supprimer.


Finalisation de

Une fois que vous avez fini d'écrire le script, vous devez le copier dans le dossier de l'entreprise. /system/addon.d . Pour être exécuté, son nom doit commencer par un nombre entier, suivi d'un trait d'union. Dans le cadre de cette réponse, je l'appellerai 99-debloat.sh ce qui fait qu'il est évalué après les autres scripts additionnels.

Après cela, vous devrez probablement modifier les autorisations et la propriété du script. Pour modifier les autorisations, utilisez

chmod 755 /system/addon.d/99-debloat.sh

Pour modifier la propriété, utilisez

chown 0.0 /system/addon.d/99-debloat.sh

Un exemple complet

La méthode décrite dans cette réponse est celle que j'utilise moi-même ; j'ajouterai mon propre avis. 99-debloat.sh ici pour référence.

#!/sbin/sh

app="/system/app"
priv_app="/system/priv-app"

rm -rf $app/Calendar
rm -rf $app/Email
rm -rf $app/FM2
rm -rf $app/PicoTts
rm -rf $app/Stk
rm -rf $priv_app/FlipFlap
rm -rf $priv_app/Gallery2
rm -rf $priv_app/Snap
rm -rf $priv_app/WeatherProvider

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X