content: package top.niunaijun.blackbox.fake.hook;
  
  import android.os.IBinder;
  import android.os.IInterface;
  import android.os.Parcel;
  import android.os.RemoteException;
  
  import androidx.annotation.NonNull;
  import androidx.annotation.Nullable;
  
  import java.io.FileDescriptor;
  import java.util.Map;
  
  import black.android.os.BRServiceManager;
  
  /**
   * updated by alex5402 on 3/30/21.
   * * ∧＿∧
   * (`･ω･∥
   * 丶　つ０
   * しーＪ
   * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20)
   */
  public abstract class BinderInvocationStub extends ClassInvocationStub implements IBinder {
      private IBinder mBaseBinder;
  
      public BinderInvocationStub(IBinder baseBinder) {
          mBaseBinder = baseBinder;
      }
  
      @Override
      protected void onBindMethod() {
      }
  
      @Nullable
      @Override
      public String getInterfaceDescriptor() throws RemoteException {
          return mBaseBinder.getInterfaceDescriptor();
      }
  
      @Override
      public boolean pingBinder() {
          return mBaseBinder.pingBinder();
      }
  
      @Override
      public boolean isBinderAlive() {
          return mBaseBinder.isBinderAlive();
      }
  
      @Nullable
      @Override
      public IInterface queryLocalInterface(@NonNull String descriptor) {
          return (IInterface) getProxyInvocation();
      }
  
      @Override
      public void dump(@NonNull FileDescriptor fd, @Nullable String[] args) throws RemoteException {
          mBaseBinder.dump(fd, args);
      }
  
      @Override
      public void dumpAsync(@NonNull FileDescriptor fd, @Nullable String[] args) throws RemoteException {
          mBaseBinder.dumpAsync(fd, args);
      }
  
      @Override
      public boolean transact(int code, @NonNull Parcel data, @Nullable Parcel reply, int flags) throws RemoteException {
          return mBaseBinder.transact(code, data, reply, flags);
      }
  
      @Override
      public void linkToDeath(@NonNull DeathRecipient recipient, int flags) throws RemoteException {
          mBaseBinder.linkToDeath(recipient, flags);
      }
  
      @Override
      public boolean unlinkToDeath(@NonNull DeathRecipient recipient, int flags) {
          return mBaseBinder.unlinkToDeath(recipient, flags);
      }
  
  
      protected void replaceSystemService(String name) {
          Map<String, IBinder> services = BRServiceManager.get().sCache();
          services.put(name, this);
      }
  }
  