pull/137/head
FongMi 3 years ago
parent dc0443d8ca
commit a50ed9f202
  1. 8
      app/src/main/java/com/fongmi/android/tv/App.java
  2. 13
      tvbus/src/main/java/com/tvbus/engine/PmsHook.java
  3. 1
      tvbus/src/main/java/com/tvbus/engine/TVCore.java

@ -2,7 +2,6 @@ package com.fongmi.android.tv;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@ -16,7 +15,6 @@ import com.fongmi.android.tv.utils.Prefers;
import com.github.catvod.bean.Doh;
import com.github.catvod.net.OkHttp;
import com.google.gson.Gson;
import com.tvbus.engine.PmsHook;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ -75,12 +73,6 @@ public class App extends Application {
this.activity = activity;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
PmsHook.inject(base);
}
@Override
public void onCreate() {
super.onCreate();

@ -19,11 +19,17 @@ public class PmsHook implements InvocationHandler {
private String name;
private Object base;
public static void inject(Context context) {
new PmsHook().hook(context);
public static void inject() {
new PmsHook().hook();
}
private void hook(Context context) {
private Context getCtx() throws Throwable {
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
Method method = activityThreadClass.getMethod("currentApplication");
return (Context) method.invoke(null);
}
private void hook() {
try {
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
Class<?> iPackageManagerInterface = Class.forName("android.content.pm.IPackageManager");
@ -31,6 +37,7 @@ public class PmsHook implements InvocationHandler {
Field sPackageManagerField = activityThreadClass.getDeclaredField("sPackageManager");
Object currentActivityThread = currentActivityThreadMethod.invoke(null);
sPackageManagerField.setAccessible(true);
Context context = getCtx();
this.sign = getSign(context);
this.name = context.getPackageName();
this.base = sPackageManagerField.get(currentActivityThread);

@ -8,6 +8,7 @@ public class TVCore {
public TVCore() {
try {
PmsHook.inject();
System.loadLibrary("tvcore");
handle = initialise();
} catch (Throwable ignored) {

Loading…
Cancel
Save