3

When reviewing my running tasks, I've noticed a memory leak in process system/bin/installd. On boot completed, it begins running in the background, consuming 20-30MB RAM. Over time, its RAM usage gradually increases, going as high as 400MB at which time it causes a random reboot.

I am able force kill this process with no noticeable effects. However, it does restart itself and continue to leak memory.

Before I can attempt to remedy this issue, I need to know exactly what system/bin/installd is/what it does - something I cannot seem to find any information on.

Can anyone help?

Specs:

  • OnePlus One (rooted)
  • Mahdi ROM (CM11 base), Android 4.4.4 KitKat
  • Build # KTU84Q
  • Kernel 3.4.0-Mahdi-One-kk
  • Running multiple Xposed modules, init tweaks, etc.
2
  • 1
    May I know how did you detect that process was leaking memory? I never know if it's possible to check memory usage for non-APK.
    – Andrew T.
    Commented Jul 20, 2015 at 4:15
  • 1
    @AndrewT. I am using "3C Toolbox Pro"; it's task manager displays all running processes. I highly recommend it- it's a great app with tons of tools for power users.
    – Tee Wrecks
    Commented Jul 20, 2015 at 18:04

1 Answer 1

1

/system/bin/installd is a system daemon that is involved in the installation of applications. System classes like PackageInstaller use it in their execution.

This article from DZone dates back to 2013, but it gives some pointers that can put on track:

PackageInstaller is the default application for Android to interactively install a normal package. PackageInstaller provide user interface to manage applications/packages. PackageInstaller calls InstallAppProgress activity to receive instructions from the user. InstallAppProgress will ask Package Manager Service to install package via installd. Source code is available at /packages/apps/PackageInstaller.

Today's Android code states (for example: services/core/java/com/android/server/pm/Installer.java):

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

The same file comments on checking out frameworks/native/cmds/installd/installd.h (I did not look further for now).

In short, you may need to look at the source code to know more about installd, depending on what you are up to.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .