From 1989172645d916e02429193938e399f6684002a9 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 11 Aug 2023 15:50:11 +0800 Subject: [PATCH] Clean code --- .../main/java/com/fongmi/android/tv/App.java | 2 +- .../java/com/fongmi/android/tv/bean/Core.java | 15 +- .../android/tv/player/extractor/TVBus.java | 2 +- .../java/com/fongmi/hook/PackageManager.java | 488 ++++++++++++++++++ 4 files changed, 494 insertions(+), 13 deletions(-) create mode 100644 hook/src/main/java/com/fongmi/hook/PackageManager.java 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 d66821beb..88e54bc8c 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -148,7 +148,7 @@ public class App extends Application { @Override public PackageManager getPackageManager() { if (!hook) return getBaseContext().getPackageManager(); - return LiveConfig.get().getHome().getCore().getPackageManager(); + return LiveConfig.get().getHome().getCore(); } @Override 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 7ae8e2b97..dcd0bc521 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,15 +1,14 @@ package com.fongmi.android.tv.bean; -import android.content.pm.PackageManager; import android.text.TextUtils; import androidx.annotation.Nullable; -import com.fongmi.android.tv.App; import com.fongmi.android.tv.utils.Utils; +import com.fongmi.hook.PackageManager; import com.google.gson.annotations.SerializedName; -public class Core { +public class Core extends PackageManager { @SerializedName("auth") private String auth; @@ -21,8 +20,6 @@ public class Core { private String broker; @SerializedName("resp") private String resp; - @SerializedName("sign") - private String sign; @SerializedName("pkg") private String pkg; @SerializedName("so") @@ -48,10 +45,6 @@ public class Core { return TextUtils.isEmpty(resp) ? "" : resp; } - public String getSign() { - return TextUtils.isEmpty(sign) ? "" : sign; - } - public String getPkg() { return TextUtils.isEmpty(pkg) ? "" : pkg; } @@ -60,8 +53,8 @@ public class Core { return TextUtils.isEmpty(so) ? "" : so; } - public PackageManager getPackageManager() { - return App.get().getPackageManager(); + public boolean hook() { + return false; } @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 987497b1a..da40edf09 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 @@ -21,7 +21,7 @@ public class TVBus implements Source.Extractor, Listener { } private void init(Core core) { - App.get().setHook(true); + App.get().setHook(core.hook()); tvcore = new TVCore(core.getSo()); tvcore.auth(core.getAuth()).broker(core.getBroker()); tvcore.name(core.getName()).pass(core.getPass()); diff --git a/hook/src/main/java/com/fongmi/hook/PackageManager.java b/hook/src/main/java/com/fongmi/hook/PackageManager.java new file mode 100644 index 000000000..81e38be15 --- /dev/null +++ b/hook/src/main/java/com/fongmi/hook/PackageManager.java @@ -0,0 +1,488 @@ +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; + } +}