pull/586/head
FongMi 1 year ago
parent 9df3edfe6e
commit 032d006262
  1. BIN
      app/libs/hook-release.aar
  2. 12
      app/src/main/java/com/fongmi/android/tv/App.java
  3. 17
      app/src/main/java/com/fongmi/android/tv/bean/Core.java
  4. 4
      app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java
  5. 38
      hook/src/main/java/com/fongmi/hook/Handler.java
  6. 523
      hook/src/main/java/com/fongmi/hook/Hook.java
  7. 488
      hook/src/main/java/com/fongmi/hook/PackageManager.java

Binary file not shown.

@ -12,9 +12,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.os.HandlerCompat;
import com.fongmi.android.tv.api.config.LiveConfig;
import com.fongmi.android.tv.ui.activity.CrashActivity;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.hook.Hook;
import com.github.catvod.Init;
import com.github.catvod.bean.Doh;
import com.github.catvod.net.OkHttp;
@ -36,7 +36,7 @@ public class App extends Application {
private static App instance;
private Activity activity;
private final Gson gson;
private boolean hook;
private Hook hook;
public App() {
instance = this;
@ -78,7 +78,7 @@ public class App extends Application {
for (Runnable r : runnable) get().handler.removeCallbacks(r);
}
public void setHook(boolean hook) {
public void setHook(Hook hook) {
this.hook = hook;
}
@ -148,13 +148,11 @@ public class App extends Application {
@Override
public PackageManager getPackageManager() {
if (!hook) return getBaseContext().getPackageManager();
return LiveConfig.get().getHome().getCore();
return hook != null ? hook : getBaseContext().getPackageManager();
}
@Override
public String getPackageName() {
if (!hook) return getBaseContext().getPackageName();
return LiveConfig.get().getHome().getCore().getPkg();
return hook != null ? hook.getPackageName() : getBaseContext().getPackageName();
}
}

@ -1,16 +1,14 @@
package com.fongmi.android.tv.bean;
import android.content.pm.PackageInfo;
import android.content.pm.Signature;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import com.fongmi.android.tv.utils.UrlUtil;
import com.fongmi.hook.PackageManager;
import com.fongmi.hook.Hook;
import com.google.gson.annotations.SerializedName;
public class Core extends PackageManager {
public class Core {
@SerializedName("auth")
private String auth;
@ -61,15 +59,8 @@ public class Core extends PackageManager {
return TextUtils.isEmpty(so) ? "" : so;
}
public boolean hook() {
return getPkg().length() > 0 && getSign().length() > 0;
}
@Override
public PackageInfo getPackageInfo(String packageName, int flags) {
PackageInfo info = super.getPackageInfo(packageName, flags);
info.signatures = new Signature[]{new Signature(getSign())};
return info;
public Hook getHook() {
return !getPkg().isEmpty() && !getSign().isEmpty() ? new Hook(getSign(), getPkg()) : null;
}
@Override

@ -22,12 +22,11 @@ public class TVBus implements Source.Extractor, Listener {
}
private void init(Core core) {
App.get().setHook(core.hook());
App.get().setHook(core.getHook());
tvcore = new TVCore(core.getSo());
tvcore.auth(core.getAuth()).broker(core.getBroker());
tvcore.name(core.getName()).pass(core.getPass());
tvcore.serv(0).play(8902).mode(1).listener(this);
App.get().setHook(false);
tvcore.init();
}
@ -35,6 +34,7 @@ public class TVBus implements Source.Extractor, Listener {
public String fetch(String url) throws Exception {
if (core != null && !core.equals(LiveConfig.get().getHome().getCore())) change();
if (tvcore == null) init(core = LiveConfig.get().getHome().getCore());
App.get().setHook(null);
tvcore.start(url);
onWait();
onCheck();

@ -1,38 +0,0 @@
package com.fongmi.hook;
import android.content.pm.PackageInfo;
import android.content.pm.Signature;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class Handler implements InvocationHandler {
private String sign;
private Object base;
private String pkg;
public Handler(Object base, String sign, String pkg) {
try {
this.base = base;
this.sign = sign;
this.pkg = pkg;
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if ("getPackageInfo".equals(method.getName())) {
String pkgName = (String) args[0];
Number flag = (Number) args[1];
if (flag.intValue() == 64 && this.pkg.equals(pkgName)) {
PackageInfo info = (PackageInfo) method.invoke(this.base, args);
info.signatures[0] = new Signature(sign);
return info;
}
}
return method.invoke(this.base, args);
}
}

@ -1,31 +1,504 @@
package com.fongmi.hook;
import android.content.Context;
import android.annotation.TargetApi;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ChangedPackages;
import android.content.pm.FeatureInfo;
import android.content.pm.InstrumentationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
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.content.pm.SharedLibraryInfo;
import android.content.pm.Signature;
import android.content.pm.VersionedPackage;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class Hook {
public static void pm(Context context, String sign) {
try {
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
Method currentActivityThreadMethod = activityThreadClass.getDeclaredMethod("currentActivityThread", new Class[0]);
Object currentActivityThread = currentActivityThreadMethod.invoke(null, new Object[0]);
Field sPackageManagerField = activityThreadClass.getDeclaredField("sPackageManager");
sPackageManagerField.setAccessible(true);
Object sPackageManager = sPackageManagerField.get(currentActivityThread);
Class<?> iPackageManagerInterface = Class.forName("android.content.pm.IPackageManager");
Object proxy = Proxy.newProxyInstance(iPackageManagerInterface.getClassLoader(), new Class[]{iPackageManagerInterface}, new Handler(sPackageManager, sign, context.getPackageName()));
sPackageManagerField.set(currentActivityThread, proxy);
PackageManager pm = context.getPackageManager();
Field mPmField = pm.getClass().getDeclaredField("mPM");
mPmField.setAccessible(true);
mPmField.set(pm, proxy);
} catch (Exception e) {
e.printStackTrace();
}
import java.util.List;
public class Hook extends PackageManager {
private final String sign;
private final String pkgn;
public Hook(String sign, String pkgn) {
this.sign = sign;
this.pkgn = pkgn;
}
public String getPackageName() {
return pkgn;
}
@Override
public PackageInfo getPackageInfo(String packageName, int flags) {
PackageInfo info = new PackageInfo();
info.signatures = new Signature[]{new Signature(sign)};
return info;
}
@Override
@TargetApi(26)
public PackageInfo getPackageInfo(VersionedPackage versionedPackage, int flags) {
return getPackageInfo(versionedPackage.getPackageName(), flags);
}
@Override
public String[] currentToCanonicalPackageNames(String[] packageNames) {
return new String[0];
}
@Override
public String[] canonicalToCurrentPackageNames(String[] packageNames) {
return new String[0];
}
@Override
public Intent getLaunchIntentForPackage(String packageName) {
return null;
}
@Override
public Intent getLeanbackLaunchIntentForPackage(String packageName) {
return null;
}
@Override
public int[] getPackageGids(String packageName) {
return new int[0];
}
@Override
public int[] getPackageGids(String packageName, int flags) {
return new int[0];
}
@Override
public int getPackageUid(String packageName, int flags) {
return 0;
}
@Override
public PermissionInfo getPermissionInfo(String permName, int flags) {
return null;
}
@Override
public List<PermissionInfo> queryPermissionsByGroup(String permissionGroup, int flags) {
return null;
}
@Override
public PermissionGroupInfo getPermissionGroupInfo(String groupName, int flags) {
return null;
}
@Override
public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
return null;
}
@Override
public ApplicationInfo getApplicationInfo(String packageName, int flags) {
return null;
}
@Override
public ActivityInfo getActivityInfo(ComponentName component, int flags) {
return null;
}
@Override
public ActivityInfo getReceiverInfo(ComponentName component, int flags) {
return null;
}
@Override
public ServiceInfo getServiceInfo(ComponentName component, int flags) {
return null;
}
@Override
public ProviderInfo getProviderInfo(ComponentName component, int flags) {
return null;
}
@Override
public List<PackageInfo> getInstalledPackages(int flags) {
return null;
}
@Override
public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
return null;
}
@Override
public int checkPermission(String permName, String packageName) {
return android.content.pm.PackageManager.PERMISSION_GRANTED;
}
@Override
public boolean isPermissionRevokedByPolicy(String permName, String packageName) {
return false;
}
@Override
public boolean addPermission(PermissionInfo info) {
return false;
}
@Override
public boolean addPermissionAsync(PermissionInfo info) {
return false;
}
@Override
public void removePermission(String permName) {
}
@Override
public int checkSignatures(String packageName1, String packageName2) {
return android.content.pm.PackageManager.SIGNATURE_MATCH;
}
@Override
public int checkSignatures(int uid1, int uid2) {
return android.content.pm.PackageManager.SIGNATURE_MATCH;
}
@Override
public String[] getPackagesForUid(int uid) {
return new String[0];
}
@Override
public String getNameForUid(int uid) {
return null;
}
@Override
public List<ApplicationInfo> getInstalledApplications(int flags) {
return null;
}
@Override
public boolean isInstantApp() {
return false;
}
@Override
public boolean isInstantApp(String packageName) {
return false;
}
@Override
public int getInstantAppCookieMaxBytes() {
return 0;
}
@Override
public byte[] getInstantAppCookie() {
return new byte[0];
}
@Override
public void clearInstantAppCookie() {
}
@Override
public void updateInstantAppCookie(byte[] cookie) {
}
@Override
public String[] getSystemSharedLibraryNames() {
return new String[0];
}
@Override
public List<SharedLibraryInfo> getSharedLibraries(int flags) {
return null;
}
@Override
public ChangedPackages getChangedPackages(int sequenceNumber) {
return null;
}
@Override
public FeatureInfo[] getSystemAvailableFeatures() {
return new FeatureInfo[0];
}
@Override
public boolean hasSystemFeature(String featureName) {
return false;
}
@Override
public boolean hasSystemFeature(String featureName, int version) {
return false;
}
@Override
public ResolveInfo resolveActivity(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
return null;
}
@Override
public ResolveInfo resolveService(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentServices(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
return null;
}
@Override
public ProviderInfo resolveContentProvider(String authority, int flags) {
return null;
}
@Override
public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
return null;
}
@Override
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) {
return null;
}
@Override
public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
return null;
}
@Override
public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public Drawable getActivityIcon(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityIcon(Intent intent) {
return null;
}
@Override
public Drawable getActivityBanner(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityBanner(Intent intent) {
return null;
}
@Override
public Drawable getDefaultActivityIcon() {
return null;
}
@Override
public Drawable getApplicationIcon(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationIcon(String packageName) {
return null;
}
@Override
public Drawable getApplicationBanner(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationBanner(String packageName) {
return null;
}
@Override
public Drawable getActivityLogo(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityLogo(Intent intent) {
return null;
}
@Override
public Drawable getApplicationLogo(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationLogo(String packageName) {
return null;
}
@Override
public Drawable getUserBadgedIcon(Drawable drawable, UserHandle user) {
return null;
}
@Override
public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity) {
return null;
}
@Override
public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) {
return null;
}
@Override
public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public CharSequence getApplicationLabel(ApplicationInfo info) {
return null;
}
@Override
public Resources getResourcesForActivity(ComponentName activityName) {
return null;
}
@Override
public Resources getResourcesForApplication(ApplicationInfo app) {
return null;
}
@Override
public Resources getResourcesForApplication(String packageName) {
return null;
}
@Override
public void verifyPendingInstall(int id, int verificationCode) {
}
@Override
public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay) {
}
@Override
public void setInstallerPackageName(String targetPackage, String installerPackageName) {
}
@Override
public String getInstallerPackageName(String packageName) {
return null;
}
@Override
public void addPackageToPreferred(String packageName) {
}
@Override
public void removePackageFromPreferred(String packageName) {
}
@Override
public List<PackageInfo> getPreferredPackages(int flags) {
return null;
}
@Override
public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) {
}
@Override
public void clearPackagePreferredActivities(String packageName) {
}
@Override
public int getPreferredActivities(List<IntentFilter> outFilters, List<ComponentName> outActivities, String packageName) {
return 0;
}
@Override
public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
}
@Override
public int getComponentEnabledSetting(ComponentName componentName) {
return android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
}
@Override
public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
}
@Override
public int getApplicationEnabledSetting(String packageName) {
return android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
}
@Override
public boolean isSafeMode() {
return false;
}
@Override
public void setApplicationCategoryHint(String packageName, int categoryHint) {
}
@Override
public PackageInstaller getPackageInstaller() {
return null;
}
@Override
public boolean canRequestPackageInstalls() {
return false;
}
}

@ -1,488 +0,0 @@
package com.fongmi.hook;
import android.annotation.TargetApi;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ChangedPackages;
import android.content.pm.FeatureInfo;
import android.content.pm.InstrumentationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
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.content.pm.SharedLibraryInfo;
import android.content.pm.VersionedPackage;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import java.util.List;
public class PackageManager extends android.content.pm.PackageManager {
@Override
public PackageInfo getPackageInfo(String packageName, int flags) {
return new PackageInfo();
}
@Override
@TargetApi(26)
public PackageInfo getPackageInfo(VersionedPackage versionedPackage, int flags) {
return getPackageInfo(versionedPackage.getPackageName(), flags);
}
@Override
public String[] currentToCanonicalPackageNames(String[] packageNames) {
return new String[0];
}
@Override
public String[] canonicalToCurrentPackageNames(String[] packageNames) {
return new String[0];
}
@Override
public Intent getLaunchIntentForPackage(String packageName) {
return null;
}
@Override
public Intent getLeanbackLaunchIntentForPackage(String packageName) {
return null;
}
@Override
public int[] getPackageGids(String packageName) {
return new int[0];
}
@Override
public int[] getPackageGids(String packageName, int flags) {
return new int[0];
}
@Override
public int getPackageUid(String packageName, int flags) {
return 0;
}
@Override
public PermissionInfo getPermissionInfo(String permName, int flags) {
return null;
}
@Override
public List<PermissionInfo> queryPermissionsByGroup(String permissionGroup, int flags) {
return null;
}
@Override
public PermissionGroupInfo getPermissionGroupInfo(String groupName, int flags) {
return null;
}
@Override
public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
return null;
}
@Override
public ApplicationInfo getApplicationInfo(String packageName, int flags) {
return null;
}
@Override
public ActivityInfo getActivityInfo(ComponentName component, int flags) {
return null;
}
@Override
public ActivityInfo getReceiverInfo(ComponentName component, int flags) {
return null;
}
@Override
public ServiceInfo getServiceInfo(ComponentName component, int flags) {
return null;
}
@Override
public ProviderInfo getProviderInfo(ComponentName component, int flags) {
return null;
}
@Override
public List<PackageInfo> getInstalledPackages(int flags) {
return null;
}
@Override
public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
return null;
}
@Override
public int checkPermission(String permName, String packageName) {
return android.content.pm.PackageManager.PERMISSION_GRANTED;
}
@Override
public boolean isPermissionRevokedByPolicy(String permName, String packageName) {
return false;
}
@Override
public boolean addPermission(PermissionInfo info) {
return false;
}
@Override
public boolean addPermissionAsync(PermissionInfo info) {
return false;
}
@Override
public void removePermission(String permName) {
}
@Override
public int checkSignatures(String packageName1, String packageName2) {
return android.content.pm.PackageManager.SIGNATURE_MATCH;
}
@Override
public int checkSignatures(int uid1, int uid2) {
return android.content.pm.PackageManager.SIGNATURE_MATCH;
}
@Override
public String[] getPackagesForUid(int uid) {
return new String[0];
}
@Override
public String getNameForUid(int uid) {
return null;
}
@Override
public List<ApplicationInfo> getInstalledApplications(int flags) {
return null;
}
@Override
public boolean isInstantApp() {
return false;
}
@Override
public boolean isInstantApp(String packageName) {
return false;
}
@Override
public int getInstantAppCookieMaxBytes() {
return 0;
}
@Override
public byte[] getInstantAppCookie() {
return new byte[0];
}
@Override
public void clearInstantAppCookie() {
}
@Override
public void updateInstantAppCookie(byte[] cookie) {
}
@Override
public String[] getSystemSharedLibraryNames() {
return new String[0];
}
@Override
public List<SharedLibraryInfo> getSharedLibraries(int flags) {
return null;
}
@Override
public ChangedPackages getChangedPackages(int sequenceNumber) {
return null;
}
@Override
public FeatureInfo[] getSystemAvailableFeatures() {
return new FeatureInfo[0];
}
@Override
public boolean hasSystemFeature(String featureName) {
return false;
}
@Override
public boolean hasSystemFeature(String featureName, int version) {
return false;
}
@Override
public ResolveInfo resolveActivity(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
return null;
}
@Override
public ResolveInfo resolveService(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentServices(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
return null;
}
@Override
public ProviderInfo resolveContentProvider(String authority, int flags) {
return null;
}
@Override
public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
return null;
}
@Override
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) {
return null;
}
@Override
public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
return null;
}
@Override
public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public Drawable getActivityIcon(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityIcon(Intent intent) {
return null;
}
@Override
public Drawable getActivityBanner(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityBanner(Intent intent) {
return null;
}
@Override
public Drawable getDefaultActivityIcon() {
return null;
}
@Override
public Drawable getApplicationIcon(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationIcon(String packageName) {
return null;
}
@Override
public Drawable getApplicationBanner(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationBanner(String packageName) {
return null;
}
@Override
public Drawable getActivityLogo(ComponentName activityName) {
return null;
}
@Override
public Drawable getActivityLogo(Intent intent) {
return null;
}
@Override
public Drawable getApplicationLogo(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationLogo(String packageName) {
return null;
}
@Override
public Drawable getUserBadgedIcon(Drawable drawable, UserHandle user) {
return null;
}
@Override
public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity) {
return null;
}
@Override
public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) {
return null;
}
@Override
public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public CharSequence getApplicationLabel(ApplicationInfo info) {
return null;
}
@Override
public Resources getResourcesForActivity(ComponentName activityName) {
return null;
}
@Override
public Resources getResourcesForApplication(ApplicationInfo app) {
return null;
}
@Override
public Resources getResourcesForApplication(String packageName) {
return null;
}
@Override
public void verifyPendingInstall(int id, int verificationCode) {
}
@Override
public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay) {
}
@Override
public void setInstallerPackageName(String targetPackage, String installerPackageName) {
}
@Override
public String getInstallerPackageName(String packageName) {
return null;
}
@Override
public void addPackageToPreferred(String packageName) {
}
@Override
public void removePackageFromPreferred(String packageName) {
}
@Override
public List<PackageInfo> getPreferredPackages(int flags) {
return null;
}
@Override
public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) {
}
@Override
public void clearPackagePreferredActivities(String packageName) {
}
@Override
public int getPreferredActivities(List<IntentFilter> outFilters, List<ComponentName> outActivities, String packageName) {
return 0;
}
@Override
public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
}
@Override
public int getComponentEnabledSetting(ComponentName componentName) {
return android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
}
@Override
public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
}
@Override
public int getApplicationEnabledSetting(String packageName) {
return android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
}
@Override
public boolean isSafeMode() {
return false;
}
@Override
public void setApplicationCategoryHint(String packageName, int categoryHint) {
}
@Override
public PackageInstaller getPackageInstaller() {
return null;
}
@Override
public boolean canRequestPackageInstalls() {
return false;
}
}
Loading…
Cancel
Save