Support Android 14 DP2 (#2434)
close #2433 But the notification cannot send broadcast now.
This commit is contained in:
parent
d09b2fe44e
commit
7087c6f752
|
|
@ -254,7 +254,7 @@ public class App extends Application {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, intentFilter);
|
}, intentFilter, Context.RECEIVER_NOT_EXPORTED);
|
||||||
|
|
||||||
UpdateUtil.loadRemoteVersion();
|
UpdateUtil.loadRemoteVersion();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,14 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
try {
|
try {
|
||||||
myActivityControllerConstructor = myActivityControllerClass.getDeclaredConstructor(IActivityManager.class, PrintWriter.class, InputStream.class,
|
myActivityControllerConstructor = myActivityControllerClass.getDeclaredConstructor(IActivityManager.class, PrintWriter.class, InputStream.class,
|
||||||
String.class, boolean.class);
|
String.class, boolean.class);
|
||||||
} catch (NoSuchMethodException ignored) {
|
} catch (NoSuchMethodException e1) {
|
||||||
|
try {
|
||||||
myActivityControllerConstructor = myActivityControllerClass.getDeclaredConstructor(IActivityManager.class, PrintWriter.class, InputStream.class,
|
myActivityControllerConstructor = myActivityControllerClass.getDeclaredConstructor(IActivityManager.class, PrintWriter.class, InputStream.class,
|
||||||
String.class, boolean.class, boolean.class, String.class, boolean.class);
|
String.class, boolean.class, boolean.class, String.class, boolean.class);
|
||||||
|
} catch (NoSuchMethodException e2) {
|
||||||
|
myActivityControllerConstructor = myActivityControllerClass.getDeclaredConstructor(IActivityManager.class, PrintWriter.class, InputStream.class,
|
||||||
|
String.class, boolean.class, boolean.class, String.class, boolean.class, boolean.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
myActivityControllerConstructor.setAccessible(true);
|
myActivityControllerConstructor.setAccessible(true);
|
||||||
myActivityControllerRunner = myActivityControllerClass.getDeclaredMethod("run");
|
myActivityControllerRunner = myActivityControllerClass.getDeclaredMethod("run");
|
||||||
|
|
@ -99,12 +104,13 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
boolean simpleMode = false;
|
boolean simpleMode = false;
|
||||||
String target = null;
|
String target = null;
|
||||||
boolean alwaysContinue = false;
|
boolean alwaysContinue = false;
|
||||||
|
boolean alwaysKill = false;
|
||||||
while ((opt = getNextOption()) != null) {
|
while ((opt = getNextOption()) != null) {
|
||||||
if (opt.equals("--gdb")) {
|
if (opt.equals("--gdb")) {
|
||||||
gdbPort = getNextArgRequired();
|
gdbPort = getNextArgRequired();
|
||||||
} else if (opt.equals("-m")) {
|
} else if (opt.equals("-m")) {
|
||||||
monkey = true;
|
monkey = true;
|
||||||
} else if (myActivityControllerConstructor.getParameterCount() > 5) {
|
} else if (myActivityControllerConstructor.getParameterCount() == 8) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case "-p":
|
case "-p":
|
||||||
target = getNextArgRequired();
|
target = getNextArgRequired();
|
||||||
|
|
@ -116,13 +122,19 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
alwaysContinue = true;
|
alwaysContinue = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (myActivityControllerConstructor.getParameterCount() > 8) {
|
||||||
|
switch (opt) {
|
||||||
|
case "-k":
|
||||||
|
alwaysKill = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
getErrPrintWriter().println("Error: Unknown option: " + opt);
|
getErrPrintWriter().println("Error: Unknown option: " + opt);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return replaceMyControllerActivity(pw, getRawInputStream(), gdbPort, monkey, simpleMode, target, alwaysContinue);
|
return replaceMyControllerActivity(pw, getRawInputStream(), gdbPort, monkey, simpleMode, target, alwaysContinue, alwaysKill);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -161,7 +173,7 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static private int replaceMyControllerActivity(PrintWriter pw, InputStream stream, String gdbPort, boolean monkey, boolean simpleMode, String target, boolean alwaysContinue) {
|
static private int replaceMyControllerActivity(PrintWriter pw, InputStream stream, String gdbPort, boolean monkey, boolean simpleMode, String target, boolean alwaysContinue, boolean alwaysKill) {
|
||||||
try {
|
try {
|
||||||
InvocationHandler handler = (proxy, method, args1) -> {
|
InvocationHandler handler = (proxy, method, args1) -> {
|
||||||
if (method.getName().equals("setActivityController")) {
|
if (method.getName().equals("setActivityController")) {
|
||||||
|
|
@ -178,8 +190,10 @@ public class ActivityController extends IActivityController.Stub {
|
||||||
Object ctrl;
|
Object ctrl;
|
||||||
if (myActivityControllerConstructor.getParameterCount() == 5) {
|
if (myActivityControllerConstructor.getParameterCount() == 5) {
|
||||||
ctrl = myActivityControllerConstructor.newInstance(amProxy, pw, stream, gdbPort, monkey);
|
ctrl = myActivityControllerConstructor.newInstance(amProxy, pw, stream, gdbPort, monkey);
|
||||||
} else {
|
} else if (myActivityControllerConstructor.getParameterCount() == 8){
|
||||||
ctrl = myActivityControllerConstructor.newInstance(amProxy, pw, stream, gdbPort, monkey, simpleMode, target, alwaysContinue);
|
ctrl = myActivityControllerConstructor.newInstance(amProxy, pw, stream, gdbPort, monkey, simpleMode, target, alwaysContinue);
|
||||||
|
} else {
|
||||||
|
ctrl = myActivityControllerConstructor.newInstance(amProxy, pw, stream, gdbPort, monkey, simpleMode, target, alwaysContinue, alwaysKill);
|
||||||
}
|
}
|
||||||
myActivityControllerRunner.invoke(ctrl);
|
myActivityControllerRunner.invoke(ctrl);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue