4 votes

Supprimer /lib de l'apk installé

La plupart des apks ont un répertoire /lib à l'intérieur avec des fichiers .so qui peuvent faire plusieurs mégaoctets. Certains sont même livrés avec des librairies pour différentes architectures (arm, mips, x86). Les librairies pour l'architecture concernée sont copiées dans /data/app-lib/[package name] au moment de l'installation, donc ils prennent deux fois plus de place.

J'ai essayé de retirer l'apk du dossier /lib, de le réécrire, zipalign et remettre à l'emplacement d'installation /data/app o /system/app o /system/priv-app pour récupérer de l'espace.

J'ai essayé avec Chrome v78, il est passé de 45 mb apk à 15 mb... D'autres applications aussi. Tout semble fonctionner.

Quelqu'un pense que c'est une mauvaise idée ? IMO le système Android même devrait effectuer cette opération par défaut au moment de l'installation...

edit 13 Nov

J'ai écrit un script pour automatiser l'opération de dépouillement, il suffit de copier l'apk à dépouiller dans un répertoire où réside ce script, ainsi que zip y zipalign binaires.

#!/system/bin/sh
for filename in `find . -name '*.apk'`
do
        ./zip -d $filename "lib/*"
        ./zipalign -fv 4 $filename $filename.new|tail
        mv $filename.new $filename
        chmod 644 $filename
done;

Sur mon appareil, je peux échanger les apks originales avec les apks dépouillées à la volée et elles fonctionnent (généralement) sans redémarrage, même les applications système.

5voto

pr0nin Points 353

D'après mon expérience, modifier un fichier APK après l'installation n'est pas un gros problème tant que vous ne touchez pas aux fichiers DEX. En particulier, les bibliothèques natives pour d'autres architectures que celle de votre appareil peuvent généralement être retirées sans problème car elles sont totalement ignorées après l'installation.

Cependant, certaines applications qui mettent en œuvre des contrôles de sécurité supplémentaires (généralement des applications bancaires, financières, de streaming avec DRM ou d'autres applications renforcées) effectuent une sorte d'auto-test pour vérifier si elles ont été modifiées ou non. Si vous modifiez ces applications, elles ne fonctionneront plus.

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