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
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user