PluginManager.java 源代码
package com.x8zs.morgoo.droidplugin.pm;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
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;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.text.TextUtils;
import com.x8zs.morgoo.droidplugin.PluginManagerService;
import com.x8zs.morgoo.droidplugin.pm.IApplicationCallback;
import com.x8zs.morgoo.droidplugin.pm.IPackageDataObserver;
import com.x8zs.morgoo.droidplugin.pm.IPluginManager;
import com.x8zs.morgoo.droidplugin.reflect.MethodUtils;
import com.x8zs.morgoo.helper.Log;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class PluginManager implements ServiceConnection {
public static final String ACTION_DROIDPLUGIN_INIT = "com.morgoo.droidplugin.ACTION_DROIDPLUGIN_INIT";
public static final String ACTION_MAINACTIVITY_ONCREATE = "com.morgoo.droidplugin.ACTION_MAINACTIVITY_ONCREATE";
public static final String ACTION_MAINACTIVITY_ONDESTORY = "com.morgoo.droidplugin.ACTION_MAINACTIVITY_ONDESTORY";
public static final String ACTION_PACKAGE_ADDED = "com.morgoo.doirplugin.PACKAGE_ADDED";
public static final String ACTION_PACKAGE_REMOVED = "com.morgoo.doirplugin.PACKAGE_REMOVED";
public static final String ACTION_SETTING = "com.morgoo.droidplugin.ACTION_SETTING";
public static final String ACTION_SHORTCUT_PROXY = "com.morgoo.droidplugin.ACTION_SHORTCUT_PROXY";
public static final String EXTRA_APP_PERSISTENT = "com.morgoo.droidplugin.EXTRA_APP_PERSISTENT";
public static final String EXTRA_PACKAGENAME = "com.morgoo.droidplugin.EXTRA_EXTRA_PACKAGENAME";
public static final String EXTRA_PID = "com.morgoo.droidplugin.EXTRA_PID";
public static final int INSTALL_FAILED_NO_REQUESTEDPERMISSION = -100001;
public static final String STUB_AUTHORITY_NAME = "com.morgoo.droidplugin_stub";
public static final int STUB_NO_ACTIVITY_MAX_NUM = 4;
private static final String TAG = "PluginManager";
private static PluginManager sInstance;
private Context mHostContext;
private IPluginManager mPluginManager;
private List<WeakReference<ServiceConnection>> sServiceConnection = Collections.synchronizedList(new ArrayList(1));
private Object mWaitLock = new Object();
public static PluginManager getInstance() {
if (sInstance == null) {
sInstance = new PluginManager();
}
return sInstance;
}
public void addServiceConnection(ServiceConnection serviceConnection) {
this.sServiceConnection.add(new WeakReference<>(serviceConnection));
}
public int checkSignatures(String str, String str2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.checkSignatures(str, str2);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return -3;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "deletePackage", e7, new Object[0]);
return -3;
}
}
public void clearApplicationUserData(String str, final Object obj) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
iPluginManager.clearApplicationUserData(str, new IPackageDataObserver.Stub() {
@Override
public void onRemoveCompleted(String str2, boolean z6) {
Object obj2 = obj;
if (obj2 != null) {
try {
MethodUtils.invokeMethod(obj2, "onRemoveCompleted", str2, Boolean.valueOf(z6));
} catch (Exception unused) {
Throwable remoteException = new RemoteException();
remoteException.initCause(remoteException);
throw remoteException;
}
}
}
});
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "clearApplicationUserData", e7, new Object[0]);
}
}
public void connectToService() {
if (this.mPluginManager == null) {
try {
Intent intent = new Intent(this.mHostContext, (Class<?>) PluginManagerService.class);
intent.setPackage(this.mHostContext.getPackageName());
this.mHostContext.startService(intent);
this.mHostContext.bindService(intent, this, 1);
} catch (Exception e6) {
Log.e(TAG, "connectToService", e6, new Object[0]);
}
}
}
public void deleteApplicationCacheFiles(String str, final Object obj) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
iPluginManager.deleteApplicationCacheFiles(str, new IPackageDataObserver.Stub() {
@Override
public void onRemoveCompleted(String str2, boolean z6) {
Object obj2 = obj;
if (obj2 != null) {
try {
MethodUtils.invokeMethod(obj2, "onRemoveCompleted", str2, Boolean.valueOf(z6));
} catch (Exception unused) {
Throwable remoteException = new RemoteException();
remoteException.initCause(remoteException);
throw remoteException;
}
}
}
});
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "deleteApplicationCacheFiles", e7, new Object[0]);
}
}
public void deletePackage(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.deletePackage(str, i6);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "deletePackage", e7, new Object[0]);
}
}
public void forceStopPackage(String str) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.forceStopPackage(str);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "forceStopPackage", e7, new Object[0]);
}
}
public ActivityInfo getActivityInfo(ComponentName componentName, int i6) {
IPluginManager iPluginManager;
if (componentName == null) {
return null;
}
try {
iPluginManager = this.mPluginManager;
} catch (RemoteException e6) {
Log.e(TAG, "getActivityInfo RemoteException", e6, new Object[0]);
} catch (Exception e7) {
Log.e(TAG, "getActivityInfo", e7, new Object[0]);
}
if (iPluginManager != null) {
return iPluginManager.getActivityInfo(componentName, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
}
public List<PermissionGroupInfo> getAllPermissionGroups(int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getAllPermissionGroups(i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getAllPermissionGroups", e7, new Object[0]);
return null;
}
}
public ApplicationInfo getApplicationInfo(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.getApplicationInfo(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
Log.e(TAG, "getApplicationInfo RemoteException", e6, new Object[0]);
return null;
} catch (Exception e7) {
Log.e(TAG, "getApplicationInfo", e7, new Object[0]);
return null;
}
}
public Context getHostContext() {
return this.mHostContext;
}
public List<ApplicationInfo> getInstalledApplications(int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getInstalledApplications(i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getInstalledApplications", e7, new Object[0]);
return null;
}
}
public List<PackageInfo> getInstalledPackages(int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getInstalledPackages(i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
Log.e(TAG, "getInstalledPackages RemoteException", e6, new Object[0]);
return null;
} catch (Exception e7) {
Log.e(TAG, "getInstalledPackages", e7, new Object[0]);
return null;
}
}
public int getMyPid() {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getMyPid();
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return -1;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getMyPid", e7, new Object[0]);
return -1;
}
}
public PackageInfo getPackageInfo(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getPackageInfo(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getPackageInfo", e7, new Object[0]);
return null;
}
}
public List<String> getPackageNameByPid(int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getPackageNameByPid(i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "forceStopPackage", e7, new Object[0]);
return null;
}
}
public PermissionGroupInfo getPermissionGroupInfo(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.getPermissionGroupInfo(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getPermissionGroupInfo", e7, new Object[0]);
return null;
}
}
public PermissionInfo getPermissionInfo(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.getPermissionInfo(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getPermissionInfo", e7, new Object[0]);
return null;
}
}
public String getProcessNameByPid(int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getProcessNameByPid(i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "forceStopPackage", e7, new Object[0]);
return null;
}
}
public ProviderInfo getProviderInfo(ComponentName componentName, int i6) {
IPluginManager iPluginManager;
if (componentName == null) {
return null;
}
try {
iPluginManager = this.mPluginManager;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getProviderInfo", e7, new Object[0]);
}
if (iPluginManager != null) {
return iPluginManager.getProviderInfo(componentName, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
}
public ActivityInfo getReceiverInfo(ComponentName componentName, int i6) {
IPluginManager iPluginManager;
if (componentName == null) {
return null;
}
try {
iPluginManager = this.mPluginManager;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getReceiverInfo", e7, new Object[0]);
}
if (iPluginManager != null) {
return iPluginManager.getReceiverInfo(componentName, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
}
public List<IntentFilter> getReceiverIntentFilter(ActivityInfo activityInfo) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getReceiverIntentFilter(activityInfo);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getReceiverIntentFilter", e7, new Object[0]);
return null;
}
}
public List<ActivityInfo> getReceivers(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getReceivers(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getReceivers", e7, new Object[0]);
return null;
}
}
public ServiceInfo getServiceInfo(ComponentName componentName, int i6) {
IPluginManager iPluginManager;
if (componentName == null) {
return null;
}
try {
iPluginManager = this.mPluginManager;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getServiceInfo", e7, new Object[0]);
}
if (iPluginManager != null) {
return iPluginManager.getServiceInfo(componentName, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
}
public ServiceInfo getTargetServiceInfo(ServiceInfo serviceInfo) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.getTargetServiceInfo(serviceInfo);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "getTargetServiceInfo", e7, new Object[0]);
return null;
}
}
public void init(Context context) {
this.mHostContext = context;
connectToService();
}
public int installPackage(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
int installPackage = iPluginManager.installPackage(str, i6);
Log.w(TAG, String.format("%s install result %d", str, Integer.valueOf(installPackage)), new Object[0]);
return installPackage;
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return -1;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "forceStopPackage", e7, new Object[0]);
return -1;
}
}
public boolean isConnected() {
return (this.mHostContext == null || this.mPluginManager == null) ? false : true;
}
public boolean isPluginPackage(String str) {
Context context;
try {
context = this.mHostContext;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "isPluginPackage", e7, new Object[0]);
}
if (context == null || TextUtils.equals(context.getPackageName(), str)) {
return false;
}
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.isPluginPackage(str);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return false;
}
public boolean killApplicationProcess(String str) {
IPluginManager iPluginManager;
try {
iPluginManager = this.mPluginManager;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "killApplicationProcess", e7, new Object[0]);
}
if (iPluginManager != null) {
return iPluginManager.killApplicationProcess(str);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return false;
}
public void killBackgroundProcesses(String str) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.killBackgroundProcesses(str);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "killBackgroundProcesses", e7, new Object[0]);
}
}
public void onActivityCreated(ActivityInfo activityInfo, ActivityInfo activityInfo2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onActivityCreated(activityInfo, activityInfo2);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "onActivityCreated", e7, new Object[0]);
}
}
public void onActivityDestory(ActivityInfo activityInfo, ActivityInfo activityInfo2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onActivityDestory(activityInfo, activityInfo2);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "onActivityDestory", e7, new Object[0]);
}
}
public void onActivtyOnNewIntent(ActivityInfo activityInfo, ActivityInfo activityInfo2, Intent intent) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onActivtyOnNewIntent(activityInfo, activityInfo2, intent);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "onActivtyOnNewIntent", e7, new Object[0]);
}
}
public void onProviderCreated(ProviderInfo providerInfo, ProviderInfo providerInfo2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onProviderCreated(providerInfo, providerInfo2);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "onProviderCreated", e7, new Object[0]);
}
}
@Override
public void onServiceConnected(final ComponentName componentName, final IBinder iBinder) {
this.mPluginManager = IPluginManager.Stub.asInterface(iBinder);
new Thread() {
@Override
public void run() {
try {
PluginManager.this.mPluginManager.waitForReady();
PluginManager.this.mPluginManager.registerApplicationCallback(new IApplicationCallback.Stub() {
@Override
public Bundle onCallback(Bundle bundle) {
return bundle;
}
});
Iterator it = PluginManager.this.sServiceConnection.iterator();
while (it.hasNext()) {
WeakReference weakReference = (WeakReference) it.next();
ServiceConnection serviceConnection = weakReference != null ? (ServiceConnection) weakReference.get() : null;
if (serviceConnection != null) {
serviceConnection.onServiceConnected(componentName, iBinder);
} else {
it.remove();
}
}
PluginManager.this.mPluginManager.asBinder().linkToDeath(new IBinder.DeathRecipient() {
@Override
public void binderDied() {
AnonymousClass1 anonymousClass1 = AnonymousClass1.this;
PluginManager.this.onServiceDisconnected(componentName);
}
}, 0);
Log.i(PluginManager.TAG, "PluginManager ready!", new Object[0]);
try {
synchronized (PluginManager.this.mWaitLock) {
PluginManager.this.mWaitLock.notifyAll();
}
} catch (Exception e6) {
Log.i(PluginManager.TAG, "PluginManager notifyAll:" + e6.getMessage(), new Object[0]);
}
} catch (Throwable th) {
try {
Log.e(PluginManager.TAG, "Lost the mPluginManager connect...", th, new Object[0]);
try {
synchronized (PluginManager.this.mWaitLock) {
PluginManager.this.mWaitLock.notifyAll();
}
} catch (Exception e7) {
Log.i(PluginManager.TAG, "PluginManager notifyAll:" + e7.getMessage(), new Object[0]);
}
} catch (Throwable th2) {
try {
} catch (Exception e8) {
Log.i(PluginManager.TAG, "PluginManager notifyAll:" + e8.getMessage(), new Object[0]);
}
synchronized (PluginManager.this.mWaitLock) {
PluginManager.this.mWaitLock.notifyAll();
throw th2;
}
}
}
}
}.start();
Log.i(TAG, "onServiceConnected connected OK!", new Object[0]);
}
public void onServiceCreated(ServiceInfo serviceInfo, ServiceInfo serviceInfo2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onServiceCreated(serviceInfo, serviceInfo2);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "onServiceCreated", e7, new Object[0]);
}
}
public void onServiceDestory(ServiceInfo serviceInfo, ServiceInfo serviceInfo2) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.onServiceDestory(serviceInfo, serviceInfo2);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (Exception e6) {
Log.e(TAG, "onServiceDestory", e6, new Object[0]);
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
ServiceConnection serviceConnection;
Log.i(TAG, "onServiceDisconnected disconnected!", new Object[0]);
this.mPluginManager = null;
Iterator<WeakReference<ServiceConnection>> it = this.sServiceConnection.iterator();
while (it.hasNext()) {
WeakReference<ServiceConnection> next = it.next();
if (next != null) {
serviceConnection = next.get();
} else {
serviceConnection = null;
}
if (serviceConnection != null) {
serviceConnection.onServiceDisconnected(componentName);
} else {
it.remove();
}
}
connectToService();
}
public List<ResolveInfo> queryIntentActivities(Intent intent, String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.queryIntentActivities(intent, str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
Log.e(TAG, "queryIntentActivities RemoteException", e6, new Object[0]);
return null;
} catch (Exception e7) {
Log.e(TAG, "queryIntentActivities", e7, new Object[0]);
return null;
}
}
public List<ResolveInfo> queryIntentContentProviders(Intent intent, String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.queryIntentContentProviders(intent, str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "queryIntentContentProviders", e7, new Object[0]);
return null;
}
}
public List<ResolveInfo> queryIntentReceivers(Intent intent, String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.queryIntentReceivers(intent, str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "queryIntentReceivers", e7, new Object[0]);
return null;
}
}
public List<ResolveInfo> queryIntentServices(Intent intent, String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.queryIntentServices(intent, str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
Log.e(TAG, "queryIntentServices RemoteException", e6, new Object[0]);
return null;
} catch (Exception e7) {
Log.e(TAG, "queryIntentServices", e7, new Object[0]);
return null;
}
}
public List<PermissionInfo> queryPermissionsByGroup(String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.queryPermissionsByGroup(str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "queryPermissionsByGroup", e7, new Object[0]);
return null;
}
}
public void removeServiceConnection(ServiceConnection serviceConnection) {
Iterator<WeakReference<ServiceConnection>> it = this.sServiceConnection.iterator();
while (it.hasNext()) {
if (it.next().get() == serviceConnection) {
it.remove();
}
}
}
public void reportMyProcessName(String str, String str2, String str3) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
iPluginManager.reportMyProcessName(str, str2, str3);
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "reportMyProcessName", e7, new Object[0]);
}
}
public ActivityInfo resolveActivityInfo(Intent intent, int i6) {
ActivityInfo activityInfo;
try {
if (this.mPluginManager != null) {
if (intent.getComponent() != null) {
return this.mPluginManager.getActivityInfo(intent.getComponent(), i6);
}
ResolveInfo resolveIntent = this.mPluginManager.resolveIntent(intent, intent.resolveTypeIfNeeded(this.mHostContext.getContentResolver()), i6);
if (resolveIntent != null && (activityInfo = resolveIntent.activityInfo) != null) {
return activityInfo;
}
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubActivityInfo", e7, new Object[0]);
return null;
}
}
public ProviderInfo resolveContentProvider(String str, Integer num) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && str != null) {
return iPluginManager.resolveContentProvider(str, num.intValue());
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "resolveContentProvider", e7, new Object[0]);
return null;
}
}
public ResolveInfo resolveIntent(Intent intent, String str, int i6) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.resolveIntent(intent, str, i6);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "resolveIntent", e7, new Object[0]);
return null;
}
}
public ResolveInfo resolveService(Intent intent, String str, Integer num) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null && intent != null) {
return iPluginManager.resolveService(intent, str, num.intValue());
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "resolveService", e7, new Object[0]);
return null;
}
}
public ServiceInfo resolveServiceInfo(Intent intent, int i6) {
ServiceInfo serviceInfo;
try {
if (this.mPluginManager != null) {
if (intent.getComponent() != null) {
return this.mPluginManager.getServiceInfo(intent.getComponent(), i6);
}
ResolveInfo resolveIntent = this.mPluginManager.resolveIntent(intent, intent.resolveTypeIfNeeded(this.mHostContext.getContentResolver()), i6);
if (resolveIntent != null && (serviceInfo = resolveIntent.serviceInfo) != null) {
return serviceInfo;
}
} else {
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
}
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "resolveServiceInfo", e7, new Object[0]);
return null;
}
}
public ActivityInfo selectStubActivityInfo(ActivityInfo activityInfo) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.selectStubActivityInfo(activityInfo);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubActivityInfo", e7, new Object[0]);
return null;
}
}
public ProviderInfo selectStubProviderInfo(String str) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.selectStubProviderInfo(str);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubProviderInfo", e7, new Object[0]);
return null;
}
}
public ServiceInfo selectStubServiceInfo(ServiceInfo serviceInfo) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.selectStubServiceInfo(serviceInfo);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubServiceInfo", e7, new Object[0]);
return null;
}
}
public void waitForConnected() {
if (isConnected()) {
return;
}
try {
synchronized (this.mWaitLock) {
this.mWaitLock.wait();
}
} catch (InterruptedException e6) {
Log.i(TAG, "waitForConnected:" + e6.getMessage(), new Object[0]);
}
Log.i(TAG, "waitForConnected finish", new Object[0]);
}
public ActivityInfo selectStubActivityInfo(Intent intent) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.selectStubActivityInfoByIntent(intent);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubActivityInfo", e7, new Object[0]);
return null;
}
}
public ServiceInfo selectStubServiceInfo(Intent intent) {
try {
IPluginManager iPluginManager = this.mPluginManager;
if (iPluginManager != null) {
return iPluginManager.selectStubServiceInfoByIntent(intent);
}
Log.w(TAG, "Plugin Package Manager Service not be connect", new Object[0]);
return null;
} catch (RemoteException e6) {
throw e6;
} catch (Exception e7) {
Log.e(TAG, "selectStubServiceInfo", e7, new Object[0]);
return null;
}
}
public void waitForConnected(long j6) {
if (j6 > 0) {
if (isConnected()) {
return;
}
try {
synchronized (this.mWaitLock) {
this.mWaitLock.wait(j6);
}
} catch (InterruptedException e6) {
Log.i(TAG, "waitForConnected:" + e6.getMessage(), new Object[0]);
}
Log.i(TAG, "waitForConnected finish", new Object[0]);
return;
}
waitForConnected();
}
public boolean isPluginPackage(ComponentName componentName) {
if (componentName == null) {
return false;
}
return isPluginPackage(componentName.getPackageName());
}
}