* commit 'da6f7dbf9f8bf90c84147dbc57b885b3ece03e81': Remove the APIs for the old encryption scheme.
This commit is contained in:
@@ -16,6 +16,11 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import com.android.internal.backup.BackupConstants;
|
||||
import com.android.internal.backup.IBackupTransport;
|
||||
import com.android.internal.backup.LocalTransport;
|
||||
import com.android.server.PackageManagerBackupAgent.Metadata;
|
||||
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.AppGlobals;
|
||||
@@ -23,10 +28,10 @@ import android.app.IActivityManager;
|
||||
import android.app.IApplicationThread;
|
||||
import android.app.IBackupAgent;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.backup.RestoreSet;
|
||||
import android.app.backup.IBackupManager;
|
||||
import android.app.backup.IRestoreObserver;
|
||||
import android.app.backup.IRestoreSession;
|
||||
import android.app.backup.RestoreSet;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -38,8 +43,8 @@ import android.content.pm.IPackageDataObserver;
|
||||
import android.content.pm.IPackageManager;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.Signature;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.pm.Signature;
|
||||
import android.net.Uri;
|
||||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
@@ -61,11 +66,6 @@ import android.util.Slog;
|
||||
import android.util.SparseArray;
|
||||
import android.util.SparseIntArray;
|
||||
|
||||
import com.android.internal.backup.BackupConstants;
|
||||
import com.android.internal.backup.IBackupTransport;
|
||||
import com.android.internal.backup.LocalTransport;
|
||||
import com.android.server.PackageManagerBackupAgent.Metadata;
|
||||
|
||||
import java.io.EOFException;
|
||||
import java.io.File;
|
||||
import java.io.FileDescriptor;
|
||||
@@ -145,6 +145,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
fullBackup = isFull;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BackupRequest{app=" + appInfo + " full=" + fullBackup + "}";
|
||||
}
|
||||
@@ -271,6 +272,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
super(looper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
|
||||
switch (msg.what) {
|
||||
@@ -443,7 +445,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
Settings.Secure.BACKUP_AUTO_RESTORE, 1) != 0;
|
||||
// If Encrypted file systems is enabled or disabled, this call will return the
|
||||
// correct directory.
|
||||
mBaseStateDir = new File(Environment.getSecureDataDirectory(), "backup");
|
||||
mBaseStateDir = new File(Environment.getDataDirectory(), "backup");
|
||||
mBaseStateDir.mkdirs();
|
||||
mDataDir = Environment.getDownloadCacheDirectory();
|
||||
|
||||
@@ -533,6 +535,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
}
|
||||
|
||||
private class RunBackupReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (RUN_BACKUP_ACTION.equals(intent.getAction())) {
|
||||
synchronized (mQueueLock) {
|
||||
@@ -569,6 +572,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
}
|
||||
|
||||
private class RunInitializeReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (RUN_INITIALIZE_ACTION.equals(intent.getAction())) {
|
||||
synchronized (mQueueLock) {
|
||||
@@ -812,6 +816,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
|
||||
// ----- Track installation/removal of packages -----
|
||||
BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (DEBUG) Slog.d(TAG, "Received broadcast " + intent);
|
||||
|
||||
|
||||
@@ -17,16 +17,13 @@
|
||||
package com.android.server;
|
||||
|
||||
import android.content.pm.PackageStats;
|
||||
import android.net.LocalSocketAddress;
|
||||
import android.net.LocalSocket;
|
||||
import android.util.Config;
|
||||
import android.net.LocalSocketAddress;
|
||||
import android.util.Slog;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
|
||||
|
||||
class Installer {
|
||||
private static final String TAG = "Installer";
|
||||
@@ -101,7 +98,7 @@ class Installer {
|
||||
int len;
|
||||
buflen = 0;
|
||||
if (!readBytes(buf, 2)) return false;
|
||||
len = (((int) buf[0]) & 0xff) | ((((int) buf[1]) & 0xff) << 8);
|
||||
len = ((buf[0]) & 0xff) | (((buf[1]) & 0xff) << 8);
|
||||
if ((len < 1) || (len > 1024)) {
|
||||
Slog.e(TAG,"invalid reply length ("+len+")");
|
||||
disconnect();
|
||||
@@ -166,17 +163,11 @@ class Installer {
|
||||
}
|
||||
}
|
||||
|
||||
public int install(String name, boolean useEncryptedFilesystem, int uid, int gid) {
|
||||
public int install(String name, int uid, int gid) {
|
||||
StringBuilder builder = new StringBuilder("install");
|
||||
builder.append(' ');
|
||||
builder.append(name);
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
builder.append(' ');
|
||||
builder.append(uid);
|
||||
builder.append(' ');
|
||||
builder.append(gid);
|
||||
@@ -209,57 +200,34 @@ class Installer {
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
public int remove(String name, boolean useEncryptedFilesystem) {
|
||||
public int remove(String name) {
|
||||
StringBuilder builder = new StringBuilder("remove");
|
||||
builder.append(' ');
|
||||
builder.append(name);
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
public int rename(String oldname, String newname, boolean useEncryptedFilesystem) {
|
||||
public int rename(String oldname, String newname) {
|
||||
StringBuilder builder = new StringBuilder("rename");
|
||||
builder.append(' ');
|
||||
builder.append(oldname);
|
||||
builder.append(' ');
|
||||
builder.append(newname);
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
public int deleteCacheFiles(String name, boolean useEncryptedFilesystem) {
|
||||
public int deleteCacheFiles(String name) {
|
||||
StringBuilder builder = new StringBuilder("rmcache");
|
||||
builder.append(' ');
|
||||
builder.append(name);
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
public int clearUserData(String name, boolean useEncryptedFilesystem) {
|
||||
public int clearUserData(String name) {
|
||||
StringBuilder builder = new StringBuilder("rmuserdata");
|
||||
builder.append(' ');
|
||||
builder.append(name);
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
@@ -292,8 +260,8 @@ class Installer {
|
||||
return execute(builder.toString());
|
||||
}
|
||||
|
||||
public int getSizeInfo(String pkgName, String apkPath,
|
||||
String fwdLockApkPath, PackageStats pStats, boolean useEncryptedFilesystem) {
|
||||
public int getSizeInfo(String pkgName, String apkPath, String fwdLockApkPath,
|
||||
PackageStats pStats) {
|
||||
StringBuilder builder = new StringBuilder("getsize");
|
||||
builder.append(' ');
|
||||
builder.append(pkgName);
|
||||
@@ -301,12 +269,6 @@ class Installer {
|
||||
builder.append(apkPath);
|
||||
builder.append(' ');
|
||||
builder.append(fwdLockApkPath != null ? fwdLockApkPath : "!");
|
||||
builder.append(' ');
|
||||
if (useEncryptedFilesystem) {
|
||||
builder.append('1');
|
||||
} else {
|
||||
builder.append('0');
|
||||
}
|
||||
|
||||
String s = transaction(builder.toString());
|
||||
String res[] = s.split(" ");
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
|
||||
import com.android.internal.app.IMediaContainerService;
|
||||
import com.android.internal.app.ResolverActivity;
|
||||
import com.android.internal.content.NativeLibraryHelper;
|
||||
@@ -24,22 +28,18 @@ import com.android.internal.util.FastXmlSerializer;
|
||||
import com.android.internal.util.JournaledFile;
|
||||
import com.android.internal.util.XmlUtils;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
import org.xmlpull.v1.XmlSerializer;
|
||||
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.app.IActivityManager;
|
||||
import android.app.admin.IDevicePolicyManager;
|
||||
import android.app.backup.IBackupManager;
|
||||
import android.content.Context;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.IIntentReceiver;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.IntentSender;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.IntentSender.SendIntentException;
|
||||
import android.content.ServiceConnection;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.ComponentInfo;
|
||||
@@ -54,13 +54,10 @@ import android.content.pm.InstrumentationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageInfoLite;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageStats;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
|
||||
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||
import android.content.pm.PackageParser;
|
||||
import android.content.pm.PermissionInfo;
|
||||
import android.content.pm.PackageStats;
|
||||
import android.content.pm.PermissionGroupInfo;
|
||||
import android.content.pm.PermissionInfo;
|
||||
import android.content.pm.ProviderInfo;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
@@ -70,24 +67,30 @@ import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Debug;
|
||||
import android.os.Environment;
|
||||
import android.os.FileObserver;
|
||||
import android.os.FileUtils;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.IBinder;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import android.os.Environment;
|
||||
import android.os.FileObserver;
|
||||
import android.os.FileUtils;
|
||||
import android.os.Handler;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.os.Process;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.SystemClock;
|
||||
import android.os.SystemProperties;
|
||||
import android.provider.Settings;
|
||||
import android.security.SystemKeyStore;
|
||||
import android.util.*;
|
||||
import android.util.Config;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
import android.util.LogPrinter;
|
||||
import android.util.Slog;
|
||||
import android.util.SparseArray;
|
||||
import android.util.Xml;
|
||||
import android.view.Display;
|
||||
import android.view.WindowManager;
|
||||
|
||||
@@ -114,15 +117,17 @@ import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipException;
|
||||
import java.util.zip.ZipFile;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
import org.xmlpull.v1.XmlSerializer;
|
||||
|
||||
/**
|
||||
* Keep track of all those .apks everywhere.
|
||||
*
|
||||
@@ -430,6 +435,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
super(looper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
try {
|
||||
doHandleMessage(msg);
|
||||
@@ -571,7 +577,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
// Send broadcasts
|
||||
for (int i = 0; i < size; i++) {
|
||||
sendPackageChangedBroadcast(packages[i], true,
|
||||
(ArrayList<String>)components[i], uids[i]);
|
||||
components[i], uids[i]);
|
||||
}
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
|
||||
break;
|
||||
@@ -964,9 +970,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
+ " no longer exists; wiping its data";
|
||||
reportSettingsProblem(Log.WARN, msg);
|
||||
if (mInstaller != null) {
|
||||
// XXX how to set useEncryptedFSDir for packages that
|
||||
// are not encrypted?
|
||||
mInstaller.remove(ps.name, true);
|
||||
mInstaller.remove(ps.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1050,8 +1054,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
void cleanupInstallFailedPackage(PackageSetting ps) {
|
||||
Slog.i(TAG, "Cleaning up incompletely installed app: " + ps.name);
|
||||
if (mInstaller != null) {
|
||||
boolean useSecureFS = useEncryptedFilesystemForPackage(ps.pkg);
|
||||
int retCode = mInstaller.remove(ps.name, useSecureFS);
|
||||
int retCode = mInstaller.remove(ps.name);
|
||||
if (retCode < 0) {
|
||||
Slog.w(TAG, "Couldn't remove app data directory for package: "
|
||||
+ ps.name + ", retcode=" + retCode);
|
||||
@@ -2079,12 +2082,12 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
synchronized (mPackages) {
|
||||
String pkgName = intent.getPackage();
|
||||
if (pkgName == null) {
|
||||
return (List<ResolveInfo>)mActivities.queryIntent(intent,
|
||||
return mActivities.queryIntent(intent,
|
||||
resolvedType, flags);
|
||||
}
|
||||
PackageParser.Package pkg = mPackages.get(pkgName);
|
||||
if (pkg != null) {
|
||||
return (List<ResolveInfo>) mActivities.queryIntentForPackage(intent,
|
||||
return mActivities.queryIntentForPackage(intent,
|
||||
resolvedType, flags, pkg.activities);
|
||||
}
|
||||
return null;
|
||||
@@ -2269,12 +2272,12 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
synchronized (mPackages) {
|
||||
String pkgName = intent.getPackage();
|
||||
if (pkgName == null) {
|
||||
return (List<ResolveInfo>)mReceivers.queryIntent(intent,
|
||||
return mReceivers.queryIntent(intent,
|
||||
resolvedType, flags);
|
||||
}
|
||||
PackageParser.Package pkg = mPackages.get(pkgName);
|
||||
if (pkg != null) {
|
||||
return (List<ResolveInfo>) mReceivers.queryIntentForPackage(intent,
|
||||
return mReceivers.queryIntentForPackage(intent,
|
||||
resolvedType, flags, pkg.receivers);
|
||||
}
|
||||
return null;
|
||||
@@ -2312,12 +2315,12 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
synchronized (mPackages) {
|
||||
String pkgName = intent.getPackage();
|
||||
if (pkgName == null) {
|
||||
return (List<ResolveInfo>)mServices.queryIntent(intent,
|
||||
return mServices.queryIntent(intent,
|
||||
resolvedType, flags);
|
||||
}
|
||||
PackageParser.Package pkg = mPackages.get(pkgName);
|
||||
if (pkg != null) {
|
||||
return (List<ResolveInfo>)mServices.queryIntentForPackage(intent,
|
||||
return mServices.queryIntentForPackage(intent,
|
||||
resolvedType, flags, pkg.services);
|
||||
}
|
||||
return null;
|
||||
@@ -2416,6 +2419,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
@Deprecated
|
||||
public void querySyncProviders(List outNames, List outInfo) {
|
||||
synchronized (mPackages) {
|
||||
Iterator<Map.Entry<String, PackageParser.Provider>> i
|
||||
@@ -2780,11 +2784,6 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return performed ? DEX_OPT_PERFORMED : DEX_OPT_SKIPPED;
|
||||
}
|
||||
|
||||
private static boolean useEncryptedFilesystemForPackage(PackageParser.Package pkg) {
|
||||
return Environment.isEncryptedFilesystemEnabled() &&
|
||||
((pkg.applicationInfo.flags & ApplicationInfo.FLAG_NEVER_ENCRYPT) == 0);
|
||||
}
|
||||
|
||||
private boolean verifyPackageUpdate(PackageSetting oldPkg, PackageParser.Package newPkg) {
|
||||
if ((oldPkg.pkgFlags&ApplicationInfo.FLAG_SYSTEM) == 0) {
|
||||
Slog.w(TAG, "Unable to update from " + oldPkg.name
|
||||
@@ -2801,14 +2800,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
|
||||
private File getDataPathForPackage(PackageParser.Package pkg) {
|
||||
boolean useEncryptedFSDir = useEncryptedFilesystemForPackage(pkg);
|
||||
File dataPath;
|
||||
if (useEncryptedFSDir) {
|
||||
dataPath = new File(mSecureAppDataDir, pkg.packageName);
|
||||
} else {
|
||||
dataPath = new File(mAppDataDir, pkg.packageName);
|
||||
}
|
||||
return dataPath;
|
||||
return new File(mAppDataDir, pkg.packageName);
|
||||
}
|
||||
|
||||
private PackageParser.Package scanPackageLI(PackageParser.Package pkg,
|
||||
@@ -3157,7 +3149,6 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
pkg.applicationInfo.dataDir = dataPath.getPath();
|
||||
} else {
|
||||
// This is a normal package, need to make its data directory.
|
||||
boolean useEncryptedFSDir = useEncryptedFilesystemForPackage(pkg);
|
||||
dataPath = getDataPathForPackage(pkg);
|
||||
|
||||
boolean uidError = false;
|
||||
@@ -3174,7 +3165,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
// If this is a system app, we can at least delete its
|
||||
// current data so the application will still work.
|
||||
if (mInstaller != null) {
|
||||
int ret = mInstaller.remove(pkgName, useEncryptedFSDir);
|
||||
int ret = mInstaller.remove(pkgName);
|
||||
if (ret >= 0) {
|
||||
// Old data gone!
|
||||
String msg = "System package " + pkg.packageName
|
||||
@@ -3185,7 +3176,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
recovered = true;
|
||||
|
||||
// And now re-install the app.
|
||||
ret = mInstaller.install(pkgName, useEncryptedFSDir, pkg.applicationInfo.uid,
|
||||
ret = mInstaller.install(pkgName, pkg.applicationInfo.uid,
|
||||
pkg.applicationInfo.uid);
|
||||
if (ret == -1) {
|
||||
// Ack should not happen!
|
||||
@@ -3226,7 +3217,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
Log.v(TAG, "Want this data dir: " + dataPath);
|
||||
//invoke installer to do the actual installation
|
||||
if (mInstaller != null) {
|
||||
int ret = mInstaller.install(pkgName, useEncryptedFSDir, pkg.applicationInfo.uid,
|
||||
int ret = mInstaller.install(pkgName, pkg.applicationInfo.uid,
|
||||
pkg.applicationInfo.uid);
|
||||
if(ret < 0) {
|
||||
// Error from installer
|
||||
@@ -4047,6 +4038,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
|
||||
private final class ActivityIntentResolver
|
||||
extends IntentResolver<PackageParser.ActivityIntentInfo, ResolveInfo> {
|
||||
@Override
|
||||
public List queryIntent(Intent intent, String resolvedType, boolean defaultOnly) {
|
||||
mFlags = defaultOnly ? PackageManager.MATCH_DEFAULT_ONLY : 0;
|
||||
return super.queryIntent(intent, resolvedType, defaultOnly);
|
||||
@@ -4206,6 +4198,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
|
||||
private final class ServiceIntentResolver
|
||||
extends IntentResolver<PackageParser.ServiceIntentInfo, ResolveInfo> {
|
||||
@Override
|
||||
public List queryIntent(Intent intent, String resolvedType, boolean defaultOnly) {
|
||||
mFlags = defaultOnly ? PackageManager.MATCH_DEFAULT_ONLY : 0;
|
||||
return super.queryIntent(intent, resolvedType, defaultOnly);
|
||||
@@ -4301,7 +4294,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
@Override
|
||||
protected ResolveInfo newResult(PackageParser.ServiceIntentInfo filter,
|
||||
int match) {
|
||||
final PackageParser.ServiceIntentInfo info = (PackageParser.ServiceIntentInfo)filter;
|
||||
final PackageParser.ServiceIntentInfo info = filter;
|
||||
if (!mSettings.isEnabledLP(info.service.info, mFlags)) {
|
||||
return null;
|
||||
}
|
||||
@@ -4462,6 +4455,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
mIsRom = isrom;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(int event, String path) {
|
||||
String removedPackage = null;
|
||||
int removedUid = -1;
|
||||
@@ -4846,6 +4840,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
* policy if needed and then create install arguments based
|
||||
* on the install location.
|
||||
*/
|
||||
@Override
|
||||
public void handleStartCopy() throws RemoteException {
|
||||
int ret = PackageManager.INSTALL_SUCCEEDED;
|
||||
boolean fwdLocked = (flags & PackageManager.INSTALL_FORWARD_LOCK) != 0;
|
||||
@@ -4955,6 +4950,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleStartCopy() throws RemoteException {
|
||||
mRet = PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE;
|
||||
// Check for storage space on target medium
|
||||
@@ -5084,6 +5080,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
libraryPath = new File(dataDir, LIB_DIR_NAME).getPath();
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean checkFreeStorage(IMediaContainerService imcs) throws RemoteException {
|
||||
try {
|
||||
mContext.grantUriPermission(DEFAULT_CONTAINER_PACKAGE, packageURI,
|
||||
@@ -5094,10 +5091,12 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
String getCodePath() {
|
||||
return codeFileName;
|
||||
}
|
||||
|
||||
@Override
|
||||
void createCopyFile() {
|
||||
installDir = isFwdLocked() ? mDrmAppPrivateInstallDir : mAppInstallDir;
|
||||
codeFileName = createTempPackageFile(installDir).getPath();
|
||||
@@ -5105,6 +5104,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
created = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
int copyApk(IMediaContainerService imcs, boolean temp) throws RemoteException {
|
||||
if (temp) {
|
||||
// Generate temp file name
|
||||
@@ -5148,6 +5148,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
int doPreInstall(int status) {
|
||||
if (status != PackageManager.INSTALL_SUCCEEDED) {
|
||||
cleanUp();
|
||||
@@ -5155,6 +5156,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean doRename(int status, final String pkgName, String oldCodePath) {
|
||||
if (status != PackageManager.INSTALL_SUCCEEDED) {
|
||||
cleanUp();
|
||||
@@ -5179,6 +5181,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
int doPostInstall(int status) {
|
||||
if (status != PackageManager.INSTALL_SUCCEEDED) {
|
||||
cleanUp();
|
||||
@@ -5186,6 +5189,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
String getResourcePath() {
|
||||
return resourceFileName;
|
||||
}
|
||||
@@ -5230,6 +5234,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
void cleanUpResourcesLI() {
|
||||
String sourceDir = getCodePath();
|
||||
if (cleanUp() && mInstaller != null) {
|
||||
@@ -5262,6 +5267,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean doPostDeleteLI(boolean delete) {
|
||||
// XXX err, shouldn't we respect the delete flag?
|
||||
cleanUpResourcesLI();
|
||||
@@ -5306,10 +5312,12 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
this.cid = cid;
|
||||
}
|
||||
|
||||
@Override
|
||||
void createCopyFile() {
|
||||
cid = getTempContainerId();
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean checkFreeStorage(IMediaContainerService imcs) throws RemoteException {
|
||||
try {
|
||||
mContext.grantUriPermission(DEFAULT_CONTAINER_PACKAGE, packageURI,
|
||||
@@ -5320,6 +5328,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
int copyApk(IMediaContainerService imcs, boolean temp) throws RemoteException {
|
||||
if (temp) {
|
||||
createCopyFile();
|
||||
@@ -5358,6 +5367,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return libraryPath;
|
||||
}
|
||||
|
||||
@Override
|
||||
int doPreInstall(int status) {
|
||||
if (status != PackageManager.INSTALL_SUCCEEDED) {
|
||||
// Destroy container
|
||||
@@ -5377,6 +5387,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return status;
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean doRename(int status, final String pkgName,
|
||||
String oldCodePath) {
|
||||
String newCacheId = getNextCodePath(oldCodePath, pkgName, "/" + RES_FILE_NAME);
|
||||
@@ -5428,6 +5439,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
packagePath = new File(cachePath, RES_FILE_NAME).getPath();
|
||||
}
|
||||
|
||||
@Override
|
||||
int doPostInstall(int status) {
|
||||
if (status != PackageManager.INSTALL_SUCCEEDED) {
|
||||
cleanUp();
|
||||
@@ -5446,6 +5458,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
PackageHelper.destroySdDir(cid);
|
||||
}
|
||||
|
||||
@Override
|
||||
void cleanUpResourcesLI() {
|
||||
String sourceFile = getCodePath();
|
||||
// Remove dex file
|
||||
@@ -5476,6 +5489,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
return cid.substring(0, idx);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean doPostDeleteLI(boolean delete) {
|
||||
boolean ret = false;
|
||||
boolean mounted = PackageHelper.isContainerMounted(cid);
|
||||
@@ -6261,9 +6275,8 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
deletedPs = mSettings.mPackages.get(packageName);
|
||||
}
|
||||
if ((flags&PackageManager.DONT_DELETE_DATA) == 0) {
|
||||
boolean useEncryptedFSDir = useEncryptedFilesystemForPackage(p);
|
||||
if (mInstaller != null) {
|
||||
int retCode = mInstaller.remove(packageName, useEncryptedFSDir);
|
||||
int retCode = mInstaller.remove(packageName);
|
||||
if (retCode < 0) {
|
||||
Slog.w(TAG, "Couldn't remove app data or cache directory for package: "
|
||||
+ packageName + ", retcode=" + retCode);
|
||||
@@ -6516,10 +6529,9 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
Slog.w(TAG, "Package " + packageName + " has no applicationInfo.");
|
||||
return false;
|
||||
}
|
||||
useEncryptedFSDir = useEncryptedFilesystemForPackage(p);
|
||||
}
|
||||
if (mInstaller != null) {
|
||||
int retCode = mInstaller.clearUserData(packageName, useEncryptedFSDir);
|
||||
int retCode = mInstaller.clearUserData(packageName);
|
||||
if (retCode < 0) {
|
||||
Slog.w(TAG, "Couldn't remove cache files for package: "
|
||||
+ packageName);
|
||||
@@ -6570,9 +6582,8 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
Slog.w(TAG, "Package " + packageName + " has no applicationInfo.");
|
||||
return false;
|
||||
}
|
||||
boolean useEncryptedFSDir = useEncryptedFilesystemForPackage(p);
|
||||
if (mInstaller != null) {
|
||||
int retCode = mInstaller.deleteCacheFiles(packageName, useEncryptedFSDir);
|
||||
int retCode = mInstaller.deleteCacheFiles(packageName);
|
||||
if (retCode < 0) {
|
||||
Slog.w(TAG, "Couldn't remove cache files for package: "
|
||||
+ packageName);
|
||||
@@ -6634,10 +6645,8 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
publicSrcDir = isForwardLocked(p) ? applicationInfo.publicSourceDir : null;
|
||||
}
|
||||
boolean useEncryptedFSDir = useEncryptedFilesystemForPackage(p);
|
||||
if (mInstaller != null) {
|
||||
int res = mInstaller.getSizeInfo(packageName, p.mPath,
|
||||
publicSrcDir, pStats, useEncryptedFSDir);
|
||||
int res = mInstaller.getSizeInfo(packageName, p.mPath, publicSrcDir, pStats);
|
||||
if (res < 0) {
|
||||
return false;
|
||||
} else {
|
||||
@@ -7443,6 +7452,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
protectionLevel = PermissionInfo.PROTECTION_SIGNATURE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BasePermission{"
|
||||
+ Integer.toHexString(System.identityHashCode(this))
|
||||
@@ -7739,6 +7749,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
mSetComponents = myComponents;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToXml(XmlSerializer serializer) throws IOException {
|
||||
final int NS = mSetClasses != null ? mSetClasses.length : 0;
|
||||
serializer.attribute(null, "name", mShortActivity);
|
||||
@@ -7792,8 +7803,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
this.pkgFlags = pkgFlags & (
|
||||
ApplicationInfo.FLAG_SYSTEM |
|
||||
ApplicationInfo.FLAG_FORWARD_LOCK |
|
||||
ApplicationInfo.FLAG_EXTERNAL_STORAGE |
|
||||
ApplicationInfo.FLAG_NEVER_ENCRYPT);
|
||||
ApplicationInfo.FLAG_EXTERNAL_STORAGE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7937,7 +7947,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
}
|
||||
|
||||
public void copyFrom(PackageSetting base) {
|
||||
super.copyFrom((PackageSettingBase) base);
|
||||
super.copyFrom(base);
|
||||
|
||||
userId = base.userId;
|
||||
sharedUser = base.sharedUser;
|
||||
@@ -8750,7 +8760,7 @@ class PackageManagerService extends IPackageManager.Stub {
|
||||
sb.setLength(0);
|
||||
sb.append(ai.packageName);
|
||||
sb.append(" ");
|
||||
sb.append((int)ai.uid);
|
||||
sb.append(ai.uid);
|
||||
sb.append(isDebug ? " 1 " : " 0 ");
|
||||
sb.append(dataPath);
|
||||
sb.append("\n");
|
||||
|
||||
Reference in New Issue
Block a user