|
|
|
@ -82,40 +82,40 @@ public final class ClipboardManager {
|
|
|
|
|
private static ClipData getPrimaryClip(Method method, int methodVersion, IInterface manager)
|
|
|
|
|
throws InvocationTargetException, IllegalAccessException {
|
|
|
|
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic());
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (methodVersion) {
|
|
|
|
|
case 0:
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic(), FakeContext.ROOT_UID);
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID);
|
|
|
|
|
case 1:
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID);
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID);
|
|
|
|
|
case 2:
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
case 3:
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic(), FakeContext.ROOT_UID, null);
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID, null);
|
|
|
|
|
default:
|
|
|
|
|
// The last boolean parameter is "userOperate"
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID, 0, true);
|
|
|
|
|
return (ClipData) method.invoke(manager, FakeContext.FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void setPrimaryClip(Method method, int methodVersion, IInterface manager, ClipData clipData)
|
|
|
|
|
throws InvocationTargetException, IllegalAccessException {
|
|
|
|
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.getPackageNameStatic());
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.PACKAGE_NAME);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (methodVersion) {
|
|
|
|
|
case 0:
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.getPackageNameStatic(), FakeContext.ROOT_UID);
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID);
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
method.invoke(manager, clipData, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -149,19 +149,19 @@ public final class ClipboardManager {
|
|
|
|
|
private static void addPrimaryClipChangedListener(Method method, int methodVersion, IInterface manager, IOnPrimaryClipChangedListener listener)
|
|
|
|
|
throws InvocationTargetException, IllegalAccessException {
|
|
|
|
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
|
|
|
|
method.invoke(manager, listener, FakeContext.getPackageNameStatic());
|
|
|
|
|
method.invoke(manager, listener, FakeContext.PACKAGE_NAME);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (methodVersion) {
|
|
|
|
|
case 0:
|
|
|
|
|
method.invoke(manager, listener, FakeContext.getPackageNameStatic(), FakeContext.ROOT_UID);
|
|
|
|
|
method.invoke(manager, listener, FakeContext.PACKAGE_NAME, FakeContext.ROOT_UID);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
method.invoke(manager, listener, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID);
|
|
|
|
|
method.invoke(manager, listener, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
method.invoke(manager, listener, FakeContext.getPackageNameStatic(), null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
method.invoke(manager, listener, FakeContext.PACKAGE_NAME, null, FakeContext.ROOT_UID, 0);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|