Use am from service manager (#1656)
This commit is contained in:
parent
4e33363729
commit
3bcb2867b7
|
|
@ -13,6 +13,7 @@ import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.ResultReceiver;
|
import android.os.ResultReceiver;
|
||||||
|
import android.os.ServiceManager;
|
||||||
import android.os.ShellCallback;
|
import android.os.ShellCallback;
|
||||||
import android.os.ShellCommand;
|
import android.os.ShellCommand;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
@ -101,7 +102,7 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return replaceMyControllerActivity(am, pw, getRawInputStream(), gdbPort, monkey);
|
return replaceMyControllerActivity(pw, getRawInputStream(), gdbPort, monkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -140,7 +141,7 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static private int replaceMyControllerActivity(IBinder am, PrintWriter pw, InputStream stream, String gdbPort, boolean monkey) {
|
static private int replaceMyControllerActivity(PrintWriter pw, InputStream stream, String gdbPort, boolean monkey) {
|
||||||
try {
|
try {
|
||||||
InvocationHandler handler = (proxy, method, args1) -> {
|
InvocationHandler handler = (proxy, method, args1) -> {
|
||||||
if (method.getName().equals("setActivityController")) {
|
if (method.getName().equals("setActivityController")) {
|
||||||
|
|
@ -150,7 +151,7 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
Log.e(TAG, "replace activity controller", e);
|
Log.e(TAG, "replace activity controller", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return method.invoke(am, args1);
|
return method.invoke(ServiceManager.getService("activity"), args1);
|
||||||
};
|
};
|
||||||
var amProxy = Proxy.newProxyInstance(BridgeService.class.getClassLoader(),
|
var amProxy = Proxy.newProxyInstance(BridgeService.class.getClassLoader(),
|
||||||
new Class[]{myActivityControllerConstructor.getParameterTypes()[0]}, handler);
|
new Class[]{myActivityControllerConstructor.getParameterTypes()[0]}, handler);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue