diff --git a/app/libs/hook-release.aar b/app/libs/hook-release.aar index f74b7fc70..cdd279c20 100644 Binary files a/app/libs/hook-release.aar and b/app/libs/hook-release.aar differ diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index 0e96213f1..01b785794 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -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(); } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Core.java b/app/src/main/java/com/fongmi/android/tv/bean/Core.java index f26f9d39f..c0cc527b2 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Core.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Core.java @@ -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 diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java index 5158c5385..96dc0aab6 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/TVBus.java @@ -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(); diff --git a/hook/src/main/java/com/fongmi/hook/Handler.java b/hook/src/main/java/com/fongmi/hook/Handler.java deleted file mode 100644 index 42154096e..000000000 --- a/hook/src/main/java/com/fongmi/hook/Handler.java +++ /dev/null @@ -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); - } -} \ No newline at end of file diff --git a/hook/src/main/java/com/fongmi/hook/Hook.java b/hook/src/main/java/com/fongmi/hook/Hook.java index 169cc2fc6..2df9ace25 100644 --- a/hook/src/main/java/com/fongmi/hook/Hook.java +++ b/hook/src/main/java/com/fongmi/hook/Hook.java @@ -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 queryPermissionsByGroup(String permissionGroup, int flags) { + return null; + } + + @Override + public PermissionGroupInfo getPermissionGroupInfo(String groupName, int flags) { + return null; + } + + @Override + public List 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 getInstalledPackages(int flags) { + return null; + } + + @Override + public List 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 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 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 queryIntentActivities(Intent intent, int flags) { + return null; + } + + @Override + public List queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags) { + return null; + } + + @Override + public List queryBroadcastReceivers(Intent intent, int flags) { + return null; + } + + @Override + public ResolveInfo resolveService(Intent intent, int flags) { + return null; + } + + @Override + public List queryIntentServices(Intent intent, int flags) { + return null; + } + + @Override + public List queryIntentContentProviders(Intent intent, int flags) { + return null; + } + + @Override + public ProviderInfo resolveContentProvider(String authority, int flags) { + return null; + } + + @Override + public List queryContentProviders(String processName, int uid, int flags) { + return null; + } + + @Override + public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) { + return null; + } + + @Override + public List 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 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 outFilters, List 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; } } diff --git a/hook/src/main/java/com/fongmi/hook/PackageManager.java b/hook/src/main/java/com/fongmi/hook/PackageManager.java deleted file mode 100644 index 81e38be15..000000000 --- a/hook/src/main/java/com/fongmi/hook/PackageManager.java +++ /dev/null @@ -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 queryPermissionsByGroup(String permissionGroup, int flags) { - return null; - } - - @Override - public PermissionGroupInfo getPermissionGroupInfo(String groupName, int flags) { - return null; - } - - @Override - public List 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 getInstalledPackages(int flags) { - return null; - } - - @Override - public List 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 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 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 queryIntentActivities(Intent intent, int flags) { - return null; - } - - @Override - public List queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags) { - return null; - } - - @Override - public List queryBroadcastReceivers(Intent intent, int flags) { - return null; - } - - @Override - public ResolveInfo resolveService(Intent intent, int flags) { - return null; - } - - @Override - public List queryIntentServices(Intent intent, int flags) { - return null; - } - - @Override - public List queryIntentContentProviders(Intent intent, int flags) { - return null; - } - - @Override - public ProviderInfo resolveContentProvider(String authority, int flags) { - return null; - } - - @Override - public List queryContentProviders(String processName, int uid, int flags) { - return null; - } - - @Override - public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) { - return null; - } - - @Override - public List 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 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 outFilters, List 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; - } -}