diff --git a/app/build.gradle b/app/build.gradle index 1150d13e5..66f021e9f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -81,6 +81,7 @@ android { } dependencies { + implementation project(':hook') implementation project(':tvbus') implementation project(':catvod') implementation project(':quickjs') 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 b38e59b43..ffdd6f434 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -3,6 +3,7 @@ package com.fongmi.android.tv; import android.app.Activity; import android.app.Application; import android.content.Context; +import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Handler; import android.os.Looper; @@ -11,6 +12,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.os.HandlerCompat; +import com.fongmi.android.tv.api.LiveConfig; import com.fongmi.android.tv.ui.activity.CrashActivity; import com.fongmi.android.tv.utils.Notify; import com.github.catvod.Init; @@ -34,6 +36,7 @@ public class App extends Application { private static App instance; private Activity activity; private final Gson gson; + private boolean hook; public App() { instance = this; @@ -79,6 +82,10 @@ public class App extends Application { this.activity = activity; } + public void setHook(boolean hook) { + this.hook = hook; + } + @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); @@ -129,6 +136,18 @@ public class App extends Application { }); } + @Override + public PackageManager getPackageManager() { + if (!hook) return getBaseContext().getPackageManager(); + return LiveConfig.get().getHome().getCore().getPackageManager(); + } + + @Override + public String getPackageName() { + if (!hook) return getBaseContext().getPackageName(); + return LiveConfig.get().getHome().getCore().getPkg(); + } + private LogAdapter getLogAdapter() { return new AndroidLogAdapter(PrettyFormatStrategy.newBuilder().showThreadInfo(false).tag("").build()) { @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 0a3799da6..092c29ff5 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,5 +1,6 @@ package com.fongmi.android.tv.bean; +import android.content.pm.PackageManager; import android.text.TextUtils; import androidx.annotation.Nullable; @@ -21,6 +22,8 @@ public class Core { private String resp; @SerializedName("sign") private String sign; + @SerializedName("pkg") + private String pkg; @SerializedName("so") private String so; @@ -45,11 +48,19 @@ public class Core { } public String getSign() { - return !TextUtils.isEmpty(sign) ? sign : "3082034f30820237a003020102020447424f83300d06092a864886f70d01010b05003057310b300906035504061302434e310b300906035504081302484b310b300906035504071302484b3110300e060355040a130779737874656368310f300d060355040b1306686b2d797378310b300906035504031302686b3020170d3139303530363032303932395a180f32303734303230363032303932395a3057310b300906035504061302434e310b300906035504081302484b310b300906035504071302484b3110300e060355040a130779737874656368310f300d060355040b1306686b2d797378310b300906035504031302686b30820122300d06092a864886f70d01010105000382010f003082010a0282010100a0a51a8c28632cae9fea86712c054b3aa2a4d1051375dfe371d39db3df880b66c4f689c8cf47c511e53ae85fb20b3f8d2ce384ddf293a752ab2835b54c7d0edc24b6726f1224bd0d75cc5c63e48a8cb0272f64f92e50ca5526f8cadf2299508e3f029eb4dabacf2888837bf4d23352bb781990999b9f6c09a5762db6cf636203e7643fe06fdebd0650d8eca53af9942946e708edfd519fe940d3b83d8a1e8b11a168b1bd9b29c9d06a0cb7756933b5f8e7ebefc7c107904861b1499dd45d2d308ae7f0529accbfc6b4f0c6f7cfbf9f94a7cb95c4821fd32e1094d974d76f1edd37ce059e93474e5436fedca42c9754bfc8ade524f0fefd588e22c6888b7cfb530203010001a321301f301d0603551d0e041604142947601345e322f12e3d52611f2f55f6b50bd75d300d06092a864886f70d01010b05000382010100844fe39a6e017b6968817e0e94d34068ecb9d00c11b4585a9581c2b9dfc559a2d8ca1a998c49dab292a7c99e655fe64d66a6a879823c7bcb77275228db4fc1c2d685ce6e9fcfc5cbb4b2253866e4b4191cf03527d8ecc3f58d4ca463dc23b0ec88a6e2054a1b898a6a5a5425b03e59b1663b43a2f61690d5c1aa92a5d7e8f87cd6eddaa76c709075b12c5d460b8750cecde7e9bee10954103f437b182f5f242fe0d5337e52957d2502c31a65631fdd3863f0b5c4f348718b33dfd00b90c743c3fea97c715a3a05212921bba50daebf71ce7997aa599eab69570294b38571b3543e5c2af85a402fa3274659dec133bb4b593ff55c14fd8234039cbcc2394dd0a7"; + return TextUtils.isEmpty(sign) ? "" : sign; + } + + public String getPkg() { + return TextUtils.isEmpty(pkg) ? "" : pkg; } public String getSo() { - return !TextUtils.isEmpty(so) ? so : "tvcore"; + return TextUtils.isEmpty(so) ? "" : so; + } + + public PackageManager getPackageManager() { + return 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 6ac095988..ef6186b3b 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,8 @@ public class TVBus implements Source.Extractor, Listener { } private void init(Core core) { - tvcore = new TVCore(core.getSo(), core.getSign()); + App.get().setHook(true); + 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); diff --git a/tvbus/build.gradle b/tvbus/build.gradle index b405dc13c..a3fd7cbb8 100644 --- a/tvbus/build.gradle +++ b/tvbus/build.gradle @@ -14,6 +14,5 @@ android { } dependencies { - implementation project(':hook') implementation project(':catvod') } \ No newline at end of file diff --git a/tvbus/src/main/java/com/tvbus/engine/TVCore.java b/tvbus/src/main/java/com/tvbus/engine/TVCore.java index 5da9d99e2..90f5eb3cb 100644 --- a/tvbus/src/main/java/com/tvbus/engine/TVCore.java +++ b/tvbus/src/main/java/com/tvbus/engine/TVCore.java @@ -2,7 +2,6 @@ package com.tvbus.engine; import android.content.Context; -import com.fongmi.hook.Hook; import com.github.catvod.Init; import com.github.catvod.utils.Github; @@ -10,9 +9,8 @@ public class TVCore { private long handle; - public TVCore(String so, String sign) { + public TVCore(String so) { try { - Hook.pm(Init.context(), sign); System.load(Github.getSo(so)); handle = initialise(); } catch (Throwable ignored) {