package cm.android.hook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import android.os.IBinder;
import java.util.HashMap;
import java.util.Map;
import cm.java.util.Reflect;
public class HookHelper {
private static Logger logger = LoggerFactory.getLogger("HookHelper");
public static IBinder getService(String serviceName){
IBinder binder = null;
try {
binder = Reflect.load("android.os.ServiceManager").method("getService", String.class).call(serviceName);
}catch (Reflect.ReflectException e){
logger.error("error = {}", e.getMessage());
}
return binder;
}
public static Class<?> load(String clazz){
Class<?> klass = null;
try {
klass = Class.forName(clazz);
} catch (ClassNotFoundException e) {
logger.error("error = {}", e.getMessage());
}
return klass;
}
public static Map<String, IBinder> getsCache(){
Map<String, IBinder> sCache = new HashMap<>();
try {
sCache = Reflect.load("android.os.ServiceManager").field("sCache");
}catch (Reflect.ReflectException e){
logger.error("error = {}", e.getMessage());
}
return sCache;
}
}