Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 305bcbf0 authored by Kenny Root's avatar Kenny Root
Browse files

Decrease PackageManagerService wait time for vold

Up the blocking queue maximum to twice the number of containers we
allow which should let "asec list" complete without blocking the thread
several times.

Change the threads for the NativeDaemonConnector to vold and netd to be
more descriptive instead of the same name.

Bug: 2501075
Change-Id: I7e7949845a6c70a3d619aec0fa79ceef3c17a4be
parent 12da9d74
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -68,6 +68,8 @@ class MountService extends IMountService.Stub

    private static final String TAG = "MountService";

    private static final String VOLD_TAG = "VoldConnector";

    /*
     * Internal vold volume state constants
     */
@@ -993,9 +995,15 @@ class MountService extends IMountService.Stub
            return;
        }

        mConnector = new NativeDaemonConnector(this, "vold", 10, "VoldConnector");
        /*
         * Create the connection to vold with a maximum queue of twice the
         * amount of containers we'd ever expect to have. This keeps an
         * "asec list" from blocking a thread repeatedly.
         */
        mConnector = new NativeDaemonConnector(this, "vold",
                PackageManagerService.MAX_CONTAINERS * 2, VOLD_TAG);
        mReady = false;
        Thread thread = new Thread(mConnector, NativeDaemonConnector.class.getName());
        Thread thread = new Thread(mConnector, VOLD_TAG);
        thread.start();
    }

+4 −2
Original line number Diff line number Diff line
@@ -55,6 +55,8 @@ class NetworkManagementService extends INetworkManagementService.Stub {

    private static final String TAG = "NetworkManagmentService";

    private static final String NETD_TAG = "NetdConnector";

    class NetdResponseCode {
        public static final int InterfaceListResult       = 110;
        public static final int TetherInterfaceListResult = 111;
@@ -101,8 +103,8 @@ class NetworkManagementService extends INetworkManagementService.Stub {
        }

        mConnector = new NativeDaemonConnector(
                new NetdCallbackReceiver(), "netd", 10, "NetdConnector");
        Thread thread = new Thread(mConnector, NativeDaemonConnector.class.getName());
                new NetdCallbackReceiver(), "netd", 10, NETD_TAG);
        Thread thread = new Thread(mConnector, NETD_TAG);
        thread.start();
    }

+7 −6
Original line number Diff line number Diff line
@@ -9383,17 +9383,18 @@ class PackageManagerService extends IPackageManager.Stub {

    // ------- apps on sdcard specific code -------
    static final boolean DEBUG_SD_INSTALL = false;
    final private String mSdEncryptKey = "AppsOnSD";
    final private String mSdEncryptAlg = "AES";
    private static final String SD_ENCRYPTION_KEYSTORE_NAME = "AppsOnSD";
    private static final String SD_ENCRYPTION_ALGORITHM = "AES";
    static final int MAX_CONTAINERS = 250;
    private boolean mMediaMounted = false;
    private static final int MAX_CONTAINERS = 250;

    private String getEncryptKey() {
        try {
            String sdEncKey = SystemKeyStore.getInstance().retrieveKeyHexString(mSdEncryptKey);
            String sdEncKey = SystemKeyStore.getInstance().retrieveKeyHexString(
                    SD_ENCRYPTION_KEYSTORE_NAME);
            if (sdEncKey == null) {
                sdEncKey = SystemKeyStore.getInstance().
                        generateNewKeyHexString(128, mSdEncryptAlg, mSdEncryptKey);
                sdEncKey = SystemKeyStore.getInstance().generateNewKeyHexString(128,
                        SD_ENCRYPTION_ALGORITHM, SD_ENCRYPTION_KEYSTORE_NAME);
                if (sdEncKey == null) {
                    Slog.e(TAG, "Failed to create encryption keys");
                    return null;