3 votes

Le processus 'system/bin/installd' provoque une fuite de mémoire

En examinant mes tâches en cours, j'ai remarqué une fuite de mémoire dans le processus system/bin/installd . Au démarrage, il commence à fonctionner en arrière-plan, consommant 20 à 30 Mo de RAM. Au fil du temps, son utilisation de la RAM augmente progressivement, jusqu'à atteindre 400 Mo, ce qui provoque un redémarrage aléatoire.

Je peux forcer l'arrêt de ce processus sans effet notable. Cependant, il redémarre de lui-même et continue à fuir la mémoire.

Avant de tenter de remédier à ce problème, je dois savoir exactement ce qu'est la system/bin/installd Je n'arrive pas à trouver d'informations à ce sujet.

Quelqu'un peut-il nous aider ?

Spécifications :

  • OnePlus One (rooté)
  • ROM Mahdi (base CM11), Android 4.4.4 KitKat
  • Construire # KTU84Q
  • Noyau 3.4.0-Mahdi-One-kk
  • Exécution de plusieurs modules Xposed, réglages init, etc.

1voto

Eric Platon Points 157

/system/bin/installd est un démon système qui participe à l'installation des applications. Les classes de système telles que PackageInstaller l'utiliser dans leur exécution.

Cet article de DZone date de 2013, mais elle donne des indications qui peuvent être mises sur la bonne voie :

PackageInstaller est l'application par défaut pour Android qui permet d'installer de manière interactive un paquet normal. PackageInstaller fournit une interface utilisateur pour gérer les applications/paquets. PackageInstaller appelle l'activité InstallAppProgress pour recevoir les instructions de l'utilisateur. InstallAppProgress demandera au service de gestion des paquets d'installer le paquet via installd. Le code source est disponible à l'adresse suivante : /packages/apps/PackageInstaller.

Le code Android d'aujourd'hui indique (par exemple : services/core/java/com/android/server/pm/Installer.java ):

 public void onStart() {
    Slog.i(TAG, "Waiting for installd to be ready.");
    mInstaller.waitForConnection();
}

Le même dossier commente le passage en caisse frameworks/native/cmds/installd/installd.h (Je n'ai pas cherché plus loin pour l'instant).

En bref, vous devrez peut-être consulter le code source pour en savoir plus sur les points suivants installd en fonction de ce que vous voulez faire.

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